A Module For Performing Distributed Sparse Matrix Operations.
More...
#include <DistributedSparseMatrix.h>
|
| DistributedSparseMatrix (int matrix_dimension) |
|
| DistributedSparseMatrix (std::string file_name, bool is_binary=false) |
|
| DistributedSparseMatrix (const DistributedSparseMatrix &matB) |
|
void | WriteToBinary (std::string file_name) const |
|
void | WriteToMatrixMarket (std::string file_name) const |
|
void | FillFromTripletList (const TripletList &triplet_list) |
|
void | FillDistributedPermutation (const Permutation &lb, bool permuterows=true) |
|
void | FillIdentity () |
| Fills this matrix as the identity matrix.
|
|
int | GetActualDimension () const |
| get the actual dimension of the matrix.
|
|
int | GetLogicalDimension () const |
| the logical dimension is scaled so each process has an even slice.
|
|
void | GetTripletList (TripletList &triplet_list) |
|
void | GetMatrixBlock (TripletList &triplet_list, int start_row, int end_row, int start_column, int end_column) |
|
void | Transpose (const NTPoly::DistributedSparseMatrix &matA) |
| Transpose a sparse matrix.
|
|
double | Dot (const DistributedSparseMatrix &matB) |
|
void | Increment (const DistributedSparseMatrix &matB, double alpha=1.0, double threshold=0.0) |
|
void | PairwiseMultiply (const DistributedSparseMatrix &matA, const DistributedSparseMatrix &matB) |
| Elementwise multiplication. C_ij = A_ij * B_ij. Also known as a Hadamard. More...
|
|
void | Gemm (const DistributedSparseMatrix &matA, const DistributedSparseMatrix &matB, DistributedMatrixMemoryPool &memory_pool, double alpha=1.0, double beta=0.0, double threshold=0.0) |
|
void | Scale (double constant) |
|
double | Norm () const |
| compute the norm of a matrix.
|
|
double | Trace () const |
| compute the trace of a matrix.
|
|
| ~DistributedSparseMatrix () |
| Destructor.
|
|
|
class | LoadBalancer |
|
class | SolverBase |
|
class | TripletList |
|
A Module For Performing Distributed Sparse Matrix Operations.
◆ DistributedSparseMatrix() [1/3]
NTPoly::DistributedSparseMatrix::DistributedSparseMatrix |
( |
int |
matrix_dimension | ) |
|
Construct an empty matrix.
- Parameters
-
matrix_dimension | size fo the matrix. |
◆ DistributedSparseMatrix() [2/3]
NTPoly::DistributedSparseMatrix::DistributedSparseMatrix |
( |
std::string |
file_name, |
|
|
bool |
is_binary = false |
|
) |
| |
Construct a matrix from file.
- Parameters
-
file_name | name of the file to build from. |
is_binary | true if the file is a binary file. |
◆ DistributedSparseMatrix() [3/3]
Copy constructor.
- Parameters
-
◆ Dot()
this = dot(this,matB)
- Parameters
-
◆ FillDistributedPermutation()
void NTPoly::DistributedSparseMatrix::FillDistributedPermutation |
( |
const Permutation & |
lb, |
|
|
bool |
permuterows = true |
|
) |
| |
Fill the matrix based on a permutation.
- Parameters
-
lb | the permutation. |
permuterows | true if this is a row permutation matrix. |
◆ FillFromTripletList()
void NTPoly::DistributedSparseMatrix::FillFromTripletList |
( |
const TripletList & |
triplet_list | ) |
|
Fill in the matrix based on the contents of triplet lists.
- Parameters
-
triplet_list | list of values. Need to be absolute coordinates. |
◆ Gemm()
this := alpha*matA*matB+ beta*this (GEMM)
- Parameters
-
matA | first mat. |
matB | second mat. |
memory_pool | memory pool for intermediates. |
alpha | scaling factor. |
beta | scaling factor. |
threshold | for flushing small values. |
◆ GetMatrixBlock()
void NTPoly::DistributedSparseMatrix::GetMatrixBlock |
( |
TripletList & |
triplet_list, |
|
|
int |
start_row, |
|
|
int |
end_row, |
|
|
int |
start_column, |
|
|
int |
end_column |
|
) |
| |
Extract an arbitrary block of a matrix into a triplet list. Block is defined by the row/column start/end values. This is slower than GetTripletList, because communication is required. Data is returned with absolute coordinates.
- Parameters
-
triplet_list | the list to fill. |
start_row | the starting row for data to store on this process. |
end_row | the ending row for data to store on this process. |
start_column | the starting col for data to store on this process |
end_column | the ending col for data to store on this process |
◆ GetTripletList()
void NTPoly::DistributedSparseMatrix::GetTripletList |
( |
TripletList & |
triplet_list | ) |
|
Extracts a triplet list of the data that is stored on this process. Data is returned with absolute coordinates.
- Parameters
-
triplet_list | the list to fill. |
◆ Increment()
void NTPoly::DistributedSparseMatrix::Increment |
( |
const DistributedSparseMatrix & |
matB, |
|
|
double |
alpha = 1.0 , |
|
|
double |
threshold = 0.0 |
|
) |
| |
this = alpha*MatB + this (AXPY)
- Parameters
-
matB | the matrix to add. |
alpha | scaling factor. |
threshold | for flushing small values. |
◆ PairwiseMultiply()
Elementwise multiplication. C_ij = A_ij * B_ij. Also known as a Hadamard.
- Parameters
-
matA | first mat. |
matB | second mat. |
◆ Scale()
void NTPoly::DistributedSparseMatrix::Scale |
( |
double |
constant | ) |
|
scale the matrix by a constatn. constant the value to scale by.
◆ WriteToBinary()
void NTPoly::DistributedSparseMatrix::WriteToBinary |
( |
std::string |
file_name | ) |
const |
Write the matrix to a custom binary format.
- Parameters
-
file_name | file to write to. |
◆ WriteToMatrixMarket()
void NTPoly::DistributedSparseMatrix::WriteToMatrixMarket |
( |
std::string |
file_name | ) |
const |
Write the matrix to the matrix market format.
- Parameters
-
file_name | file to write to. |
The documentation for this class was generated from the following files:
- /Users/dawson/Desktop/simple/Source/CPlusPlus/DistributedSparseMatrix.h
- /Users/dawson/Desktop/simple/Source/CPlusPlus/DistributedSparseMatrix.cc