|
NTPoly
|
A Module For Performing Distributed Sparse Matrix Algebra Operations. More...
Functions/Subroutines | |
| subroutine, public | computesigma (this, sigma_value) |
| Compute sigma for the inversion method. See [9] for details. More... | |
| subroutine, public | distributedgemm (matA, matB, matC, alpha_in, beta_in, threshold_in, memory_pool_in) |
| Multiply two matrices together, and add to the third. C := alpha*matA*matB+ beta*matC. More... | |
| real(ntreal) function, public | distributedgrandsum (matA) |
| Sum up the elements in a matrix into a single value. More... | |
| subroutine, public | distributedpairwisemultiply (matA, matB, matC) |
| Elementwise multiplication. C_ij = A_ij * B_ij. Also known as a Hadamard product. More... | |
| real(ntreal) function, public | distributedsparsenorm (this) |
| Compute the norm of a distributed sparse matrix along the rows. More... | |
| real(ntreal) function, public | dotdistributedsparsematrix (matA, matB) |
| product = dot(Matrix A,Matrix B) Note that a dot product is the sum of elementwise multiplication, not traditional matrix multiplication. More... | |
| subroutine, public | incrementdistributedsparsematrix (matA, matB, alpha_in, threshold_in) |
| Matrix B = alpha*Matrix A + Matrix B (AXPY) This will utilize the sparse vector increment routine. More... | |
| subroutine, public | scaledistributedsparsematrix (this, constant) |
| Will scale a distributed sparse matrix by a constant. More... | |
| real(ntreal) function, public | trace (this) |
| Compute the trace of the matrix. More... | |
A Module For Performing Distributed Sparse Matrix Algebra Operations.
| subroutine, public distributedsparsematrixalgebramodule::computesigma | ( | type(distributedsparsematrix_t), intent(in) | this, |
| real(ntreal), intent(out) | sigma_value | ||
| ) |
Compute sigma for the inversion method. See [9] for details.
| [in] | this | the matrix to compute the sigma value of. |
| [out] | sigma_value | sigma. |
| subroutine, public distributedsparsematrixalgebramodule::distributedgemm | ( | type(distributedsparsematrix_t), intent(in) | matA, |
| type(distributedsparsematrix_t), intent(in) | matB, | ||
| type(distributedsparsematrix_t), intent(inout) | matC, | ||
| real(ntreal), intent(in), optional | alpha_in, | ||
| real(ntreal), intent(in), optional | beta_in, | ||
| real(ntreal), intent(in), optional | threshold_in, | ||
| type(distributedmatrixmemorypool_t), intent(inout), optional | memory_pool_in | ||
| ) |
Multiply two matrices together, and add to the third. C := alpha*matA*matB+ beta*matC.
| [in] | matA | Matrix A |
| [in] | matB | Matrix B |
| [out] | matC | = alpha*matA*matB + beta*matC |
| [in] | alpha_in | scales the multiplication |
| [in] | beta_in | scales matrix we sum on to |
| [in] | threshold_in | for flushing values to zero (Optional, default=0). |
| [in,out] | memory_pool_in | a memory pool for the calculation (Optional). |
| real(ntreal) function, public distributedsparsematrixalgebramodule::distributedgrandsum | ( | type(distributedsparsematrix_t), intent(in) | matA | ) |
Sum up the elements in a matrix into a single value.
| [in] | matA | Matrix A. |
| subroutine, public distributedsparsematrixalgebramodule::distributedpairwisemultiply | ( | type(distributedsparsematrix_t), intent(in) | matA, |
| type(distributedsparsematrix_t), intent(in) | matB, | ||
| type(distributedsparsematrix_t), intent(inout) | matC | ||
| ) |
Elementwise multiplication. C_ij = A_ij * B_ij. Also known as a Hadamard product.
| [in] | matA | Matrix A. |
| [in] | matB | Matrix B. |
| [in,out] | matC | = MatA mult MatB. |
| real(ntreal) function, public distributedsparsematrixalgebramodule::distributedsparsenorm | ( | type(distributedsparsematrix_t), intent(in) | this | ) |
Compute the norm of a distributed sparse matrix along the rows.
| [in] | this | the matrix to compute the norm of. |
| real(ntreal) function, public distributedsparsematrixalgebramodule::dotdistributedsparsematrix | ( | type(distributedsparsematrix_t), intent(in) | matA, |
| type(distributedsparsematrix_t), intent(in) | matB | ||
| ) |
product = dot(Matrix A,Matrix B) Note that a dot product is the sum of elementwise multiplication, not traditional matrix multiplication.
| [in] | matA | Matrix A. |
| [in,out] | matB | Matrix B. |
| subroutine, public distributedsparsematrixalgebramodule::incrementdistributedsparsematrix | ( | type(distributedsparsematrix_t), intent(in) | matA, |
| type(distributedsparsematrix_t), intent(inout) | matB, | ||
| real(ntreal), intent(in), optional | alpha_in, | ||
| real(ntreal), intent(in), optional | threshold_in | ||
| ) |
Matrix B = alpha*Matrix A + Matrix B (AXPY) This will utilize the sparse vector increment routine.
| [in] | matA | Matrix A. |
| [in,out] | matB | Matrix B. |
| [in] | alpha_in | multiplier. (Optional, default= 1.0) |
| [in] | threshold_in | for flushing values to zero. (Optional, default=0) |
| subroutine, public distributedsparsematrixalgebramodule::scaledistributedsparsematrix | ( | type(distributedsparsematrix_t), intent(inout) | this, |
| real(ntreal), intent(in) | constant | ||
| ) |
Will scale a distributed sparse matrix by a constant.
| [in,out] | this | Matrix to scale. |
| [in] | constant | scale factor. |
| real(ntreal) function, public distributedsparsematrixalgebramodule::trace | ( | type(distributedsparsematrix_t), intent(in) | this | ) |
Compute the trace of the matrix.
| [in] | this | the matrix to compute the trace of. |
1.8.14