NTPoly
|
A Module For Performing Distributed Sparse Matrix Operations. More...
#include <DistributedSparseMatrix.h>
Public Member Functions | |
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. | |
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) |
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. | |
Friends | |
class | LoadBalancer |
class | SolverBase |
class | TripletList |
A Module For Performing Distributed Sparse Matrix Operations.
NTPoly::DistributedSparseMatrix::DistributedSparseMatrix | ( | int | matrix_dimension | ) |
Construct an empty matrix.
matrix_dimension | size fo the matrix. |
NTPoly::DistributedSparseMatrix::DistributedSparseMatrix | ( | std::string | file_name, |
bool | is_binary = false |
||
) |
Construct a matrix from file.
file_name | name of the file to build from. |
is_binary | true if the file is a binary file. |
NTPoly::DistributedSparseMatrix::DistributedSparseMatrix | ( | const DistributedSparseMatrix & | matB | ) |
Copy constructor.
matB | matrix to opy from. |
double NTPoly::DistributedSparseMatrix::Dot | ( | const DistributedSparseMatrix & | matB | ) |
this = dot(this,matB)
matB | the matrix to dot. |
void NTPoly::DistributedSparseMatrix::FillDistributedPermutation | ( | const Permutation & | lb, |
bool | permuterows = true |
||
) |
Fill the matrix based on a permutation.
lb | the permutation. |
permuterows | true if this is a row permutation matrix. |
void NTPoly::DistributedSparseMatrix::FillFromTripletList | ( | const TripletList & | triplet_list | ) |
Fill in the matrix based on the contents of triplet lists.
triplet_list | list of values. Need to be absolute coordinates. |
void NTPoly::DistributedSparseMatrix::Gemm | ( | const DistributedSparseMatrix & | matA, |
const DistributedSparseMatrix & | matB, | ||
DistributedMatrixMemoryPool & | memory_pool, | ||
double | alpha = 1.0 , |
||
double | beta = 0.0 , |
||
double | threshold = 0.0 |
||
) |
this := alpha*matA*matB+ beta*this (GEMM)
matA | first mat. |
matB | second mat. |
memory_pool | memory pool for intermediates. |
alpha | scaling factor. |
beta | scaling factor. |
threshold | for flushing small values. |
void NTPoly::DistributedSparseMatrix::Increment | ( | const DistributedSparseMatrix & | matB, |
double | alpha = 1.0 , |
||
double | threshold = 0.0 |
||
) |
this = alpha*MatB + this (AXPY)
matB | the matrix to add. |
alpha | scaling factor. |
threshold | for flushing small values. |
void NTPoly::DistributedSparseMatrix::PairwiseMultiply | ( | const DistributedSparseMatrix & | matA, |
const DistributedSparseMatrix & | matB | ||
) |
Pairwise multiply two matrices.
matA | first mat. |
matB | second mat. |
void NTPoly::DistributedSparseMatrix::Scale | ( | double | constant | ) |
scale the matrix by a constatn. constant the value to scale by.
void NTPoly::DistributedSparseMatrix::WriteToBinary | ( | std::string | file_name | ) | const |
Write the matrix to a custom binary format.
file_name | file to write to. |
void NTPoly::DistributedSparseMatrix::WriteToMatrixMarket | ( | std::string | file_name | ) | const |
Write the matrix to the matrix market format.
file_name | file to write to. |