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. |