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