GetSubmatrix

Gets a (possibly non-contiguous) submatrix of a given matrix.

Python API

GetSubmatrix(A, I, J)

C++ API

Contiguous

void GetSubmatrix(const Matrix<T> &A, const Range<Int> &I, const Range<Int> &J, Matrix<T> &ASub)
Matrix<T> GetSubmatrix(const Matrix<T> &A, const Range<Int> &I, const Range<Int> &J)
void GetSubmatrix(const AbstractDistMatrix<T> &A, const Range<Int> &I, const Range<Int> &J, AbstractDistMatrix<T> &ASub)
AbstractDistMatrix<T> GetSubmatrix(const AbstractDistMatrix<T> &A, const Range<Int> &I, const Range<Int> &J)
void GetSubmatrix(const SparseMatrix<T> &A, const Range<Int> &I, const Range<Int> &J, SparseMatrix<T> &ASub)
SparseMatrix<T> GetSubmatrix(const SparseMatrix<T> &A, const Range<Int> &I, const Range<Int> &J)
void GetSubmatrix(const DistSparseMatrix<T> &A, const Range<Int> &I, const Range<Int> &J, DistSparseMatrix<T> &ASub)
DistSparseMatrix<T> GetSubmatrix(const DistSparseMatrix<T> &A, const Range<Int> &I, const Range<Int> &J)
void GetSubmatrix(const DistMultiVec<T> &A, const Range<Int> &I, const Range<Int> &J, DistMultiVec<T> &ASub)
DistMultiVec<T> GetSubmatrix(const DistMultiVec<T> &A, const Range<Int> &I, const Range<Int> &J)

Noncontiguous

void GetSubmatrix(const Matrix<T> &A, const std::vector<Int> &I, const std::vector<Int> &J, Matrix<T> &ASub)
Matrix<T> GetSubmatrix(const Matrix<T> &A, const std::vector<Int> &I, const std::vector<Int> &J)
void GetSubmatrix(const AbstractDistMatrix<T> &A, const std::vector<Int> &I, const std::vector<Int> &J, AbstractDistMatrix<T> &ASub)
DistMatrix<T> GetSubmatrix(const AbstractDistMatrix<T> &A, const std::vector<Int> &I, const std::vector<Int> &J)

C API

Contiguous

Integer

ElError ElGetContigSubmatrix_i(ElConstMatrix_i A, ElIndexRange I, ElIndexRange J, ElMatrix_i ASub)
ElError ElGetContigSubmatrixDist_i(ElConstDistMatrix_i A, ElIndexRange I, ElIndexRange J, ElDistMatrix_i ASub)
ElError ElGetContigSubmatrixSparse_i(ElConstSparseMatrix_i A, ElIndexRange I, ElIndexRange J, ElSparseMatrix_i ASub)
ElError ElGetContigSubmatrixDistSparse_i(ElConstDistSparseMatrix_i A, ElIndexRange I, ElIndexRange J, ElDistSparseMatrix_i ASub)
ElError ElGetContigSubmatrixDistMultiVec_i(ElConstDistMultiVec_i A, ElIndexRange I, ElIndexRange J, ElDistMultiVec_i ASub)

Single-precision

ElError ElGetContigSubmatrix_s(ElConstMatrix_s A, ElIndexRange I, ElIndexRange J, ElMatrix_s ASub)
ElError ElGetContigSubmatrixDist_s(ElConstDistMatrix_s A, ElIndexRange I, ElIndexRange J, ElDistMatrix_s ASub)
ElError ElGetContigSubmatrixSparse_s(ElConstSparseMatrix_s A, ElIndexRange I, ElIndexRange J, ElSparseMatrix_s ASub)
ElError ElGetContigSubmatrixDistSparse_s(ElConstDistSparseMatrix_s A, ElIndexRange I, ElIndexRange J, ElDistSparseMatrix_s ASub)
ElError ElGetContigSubmatrixDistMultiVec_s(ElConstDistMultiVec_s A, ElIndexRange I, ElIndexRange J, ElDistMultiVec_s ASub)

Double-precision

ElError ElGetContigSubmatrix_d(ElConstMatrix_d A, ElIndexRange I, ElIndexRange J, ElMatrix_d ASub)
ElError ElGetContigSubmatrixDist_d(ElConstDistMatrix_d A, ElIndexRange I, ElIndexRange J, ElDistMatrix_d ASub)
ElError ElGetContigSubmatrixSparse_d(ElConstSparseMatrix_d A, ElIndexRange I, ElIndexRange J, ElSparseMatrix_d ASub)
ElError ElGetContigSubmatrixDistSparse_d(ElConstDistSparseMatrix_d A, ElIndexRange I, ElIndexRange J, ElDistSparseMatrix_d ASub)
ElError ElGetContigSubmatrixDistMultiVec_d(ElConstDistMultiVec_d A, ElIndexRange I, ElIndexRange J, ElDistMultiVec_d ASub)

Single-precision complex

ElError ElGetContigSubmatrix_c(ElConstMatrix_c A, ElIndexRange I, ElIndexRange J, ElMatrix_c ASub)
ElError ElGetContigSubmatrixDist_c(ElConstDistMatrix_c A, ElIndexRange I, ElIndexRange J, ElDistMatrix_c ASub)
ElError ElGetContigSubmatrixSparse_c(ElConstSparseMatrix_c A, ElIndexRange I, ElIndexRange J, ElSparseMatrix_c ASub)
ElError ElGetContigSubmatrixDistSparse_c(ElConstDistSparseMatrix_c A, ElIndexRange I, ElIndexRange J, ElDistSparseMatrix_c ASub)
ElError ElGetContigSubmatrixDistMultiVec_c(ElConstDistMultiVec_c A, ElIndexRange I, ElIndexRange J, ElDistMultiVec_c ASub)

Double-precision complex

ElError ElGetContigSubmatrix_z(ElConstMatrix_z A, ElIndexRange I, ElIndexRange J, ElMatrix_z ASub)
ElError ElGetContigSubmatrixDist_z(ElConstDistMatrix_z A, ElIndexRange I, ElIndexRange J, ElDistMatrix_z ASub)
ElError ElGetContigSubmatrixSparse_z(ElConstSparseMatrix_z A, ElIndexRange I, ElIndexRange J, ElSparseMatrix_z ASub)
ElError ElGetContigSubmatrixDistSparse_z(ElConstDistSparseMatrix_z A, ElIndexRange I, ElIndexRange J, ElDistSparseMatrix_z ASub)
ElError ElGetContigSubmatrixDistMultiVec_z(ElConstDistMultiVec_z A, ElIndexRange I, ElIndexRange J, ElDistMultiVec_z ASub)

Noncontiguous

TODO