| 
    XGCa
    
   | 
 
Data Types | |
| type | mat_ptr_type | 
| type | mat_type | 
Functions/Subroutines | |
| subroutine | new_mat (mat, m, n, w) | 
| create a empty matrix  More... | |
| subroutine | set_non_square_mat (mat, n) | 
| set non squre matrix This can change matrix size m easily. needed??  More... | |
| subroutine | convert_org_to_csr (mat) | 
| converting original format to csr format  More... | |
| subroutine | del_mat (mat) | 
| delete a matrix  More... | |
| subroutine | set_value (mat, i, j, value, flag) | 
| set value of matrix component on in-house matrix structure  More... | |
| subroutine | get_max_width (mat, mwidth) | 
| get matrix width – maximum non-zero component of each row  More... | |
| subroutine | output_matrix (mat, filename) | 
| txt file output of matrix  More... | |
| subroutine | mat_mult (mat, x, y) | 
| Matrix multiplication wrapper. y = M * x.  More... | |
| subroutine | mat_mult_org (mat, x, y) | 
| Matrix multiplication of original data structure.  More... | |
| subroutine | mat_mult_csr (mat, x, y) | 
| Matrix multiplication of petsc data structure.  More... | |
| subroutine | mat_transpose_mult (mat, x, y) | 
| matrix multiplication of transpose of M : y= Mat^T x  More... | |
| subroutine | mat_transpose_mult_org (mat, x, y) | 
| matrix multiplication of transpose of M : y= Mat^T x  More... | |
| subroutine | mat_transpose_mult_csr (mat, x, y) | 
| matrix multiplication of transpose of M : y= Mat^T x  More... | |
| subroutine | mat_mult_tensor (mat, x, nv, y) | 
| matrix multiplication of tensor (array of vector)  More... | |
| subroutine | mat_mult_tensor_org (mat, x, nv, y) | 
| matrix multiplication of tensor (array of vector)  More... | |
| subroutine | mat_mult_tensor_csr (mat, x, nv, y) | 
| matrix multiplication of tensor (array of vector)  More... | |
| subroutine | mat_copy_mat_org (mat1, mat2) | 
| copy org matrix - required for verification routine  More... | |
| subroutine | mat_verification (mat) | 
| code for matrix routine verifications - can use for csr, openmp, etc  More... | |
| subroutine mat_class::convert_org_to_csr | ( | type(mat_type) | mat | ) | 
converting original format to csr format

| subroutine mat_class::del_mat | ( | type(mat_type) | mat | ) | 
delete a matrix

| subroutine mat_class::get_max_width | ( | type(mat_type) | mat, | 
| integer, intent(out) | mwidth | ||
| ) | 
get matrix width – maximum non-zero component of each row
copy org matrix - required for verification routine

| subroutine mat_class::mat_mult | ( | type(mat_type) | mat, | 
| real (8), dimension(mat%n), intent(in) | x, | ||
| real (8), dimension(mat%m), intent(out) | y | ||
| ) | 
Matrix multiplication wrapper. y = M * x.


| subroutine mat_class::mat_mult_csr | ( | type(mat_type) | mat, | 
| real (8), dimension(0:mat%n-1), intent(in) | x, | ||
| real (8), dimension(0:mat%m-1), intent(out) | y | ||
| ) | 
| subroutine mat_class::mat_mult_org | ( | type(mat_type) | mat, | 
| real (8), dimension(mat%n), intent(in) | x, | ||
| real (8), dimension(mat%m), intent(out) | y | ||
| ) | 
Matrix multiplication of original data structure.


| subroutine mat_class::mat_mult_tensor | ( | type(mat_type) | mat, | 
| real (8), dimension(nv,mat%n), intent(in) | x, | ||
| integer, intent(in) | nv, | ||
| real (8), dimension(nv,mat%m), intent(out) | y | ||
| ) | 
matrix multiplication of tensor (array of vector)

| subroutine mat_class::mat_mult_tensor_csr | ( | type(mat_type) | mat, | 
| real (8), dimension(nv,0:mat%n-1), intent(in) | x, | ||
| integer, intent(in) | nv, | ||
| real (8), dimension(nv,0:mat%m-1), intent(out) | y | ||
| ) | 
matrix multiplication of tensor (array of vector)


| subroutine mat_class::mat_mult_tensor_org | ( | type(mat_type) | mat, | 
| real (8), dimension(nv,mat%n), intent(in) | x, | ||
| integer, intent(in) | nv, | ||
| real (8), dimension(nv,mat%m), intent(out) | y | ||
| ) | 
matrix multiplication of tensor (array of vector)


| subroutine mat_class::mat_transpose_mult | ( | type(mat_type) | mat, | 
| real (8), dimension(mat%m), intent(in) | x, | ||
| real (8), dimension(mat%n), intent(out) | y | ||
| ) | 
matrix multiplication of transpose of M : y= Mat^T x


| subroutine mat_class::mat_transpose_mult_csr | ( | type(mat_type) | mat, | 
| real (8), dimension(0:mat%m-1), intent(in) | x, | ||
| real (8), dimension(0:mat%n-1), intent(out) | y | ||
| ) | 
matrix multiplication of transpose of M : y= Mat^T x


| subroutine mat_class::mat_transpose_mult_org | ( | type(mat_type) | mat, | 
| real (8), dimension(mat%m), intent(in) | x, | ||
| real (8), dimension(mat%n), intent(out) | y | ||
| ) | 
matrix multiplication of transpose of M : y= Mat^T x


| subroutine mat_class::mat_verification | ( | type(mat_type) | mat | ) | 
code for matrix routine verifications - can use for csr, openmp, etc

| subroutine mat_class::new_mat | ( | type(mat_type) | mat, | 
| integer, intent(in) | m, | ||
| integer, intent(in) | n, | ||
| integer, intent(in) | w | ||
| ) | 
create a empty matrix

| subroutine mat_class::output_matrix | ( | type(mat_type) | mat, | 
| character (len=20) | filename | ||
| ) | 
txt file output of matrix
| subroutine mat_class::set_non_square_mat | ( | type(mat_type) | mat, | 
| integer, intent(in) | n | ||
| ) | 
set non squre matrix This can change matrix size m easily. needed??
| subroutine mat_class::set_value | ( | type(mat_type) | mat, | 
| integer, intent(in) | i, | ||
| integer, intent(in) | j, | ||
| real (8) | value, | ||
| integer, intent(in) | flag | ||
| ) | 
set value of matrix component on in-house matrix structure
| [in] | i | row index | 
| [in] | j | column index | 
| [in] | flag | 0 for replace, 1 for adding | 
| value | value of matrix | 
