Functions | |
magma_int_t | magma_z_precond (magma_z_sparse_matrix A, magma_z_vector b, magma_z_vector *x, magma_z_preconditioner *precond) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective preconditioner is chosen. | |
magma_int_t | magma_z_precondsetup (magma_z_sparse_matrix A, magma_z_vector b, magma_z_preconditioner *precond) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective preconditioner is preprocessed. | |
magma_int_t | magma_z_applyprecond (magma_z_sparse_matrix A, magma_z_vector b, magma_z_vector *x, magma_z_preconditioner *precond) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective preconditioner is applied. | |
magma_int_t | magma_z_applyprecond_left (magma_z_sparse_matrix A, magma_z_vector b, magma_z_vector *x, magma_z_preconditioner *precond) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective left preconditioner is applied. | |
magma_int_t | magma_z_applyprecond_right (magma_z_sparse_matrix A, magma_z_vector b, magma_z_vector *x, magma_z_preconditioner *precond) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective right-preconditioner is applied. | |
magma_int_t | magma_z_solver (magma_z_sparse_matrix A, magma_z_vector b, magma_z_vector *x, magma_zopts *zopts) |
ALlows the user to choose a solver. | |
magma_int_t | magma_zresidual (magma_z_sparse_matrix A, magma_z_vector b, magma_z_vector x, double *res) |
Computes the residual ||b-Ax|| for a solution approximation x. | |
magma_int_t | magma_z_vfree (magma_z_vector *x) |
Free the memory of a magma_z_vector. | |
magma_int_t | magma_z_mfree (magma_z_sparse_matrix *A) |
Free the memory of a magma_z_sparse_matrix. | |
magma_int_t | magma_z_vinit (magma_z_vector *x, magma_location_t mem_loc, magma_int_t num_rows, magmaDoubleComplex values) |
Initialize a magma_z_vector. | |
magma_int_t | magma_zrowentries (magma_z_sparse_matrix *A) |
Checks the maximal number of nonzeros in a row of matrix A. | |
magma_int_t | magma_zdiameter (magma_z_sparse_matrix *A) |
Computes the diameter of a sparse matrix and stores the value in diameter. | |
magma_int_t | magma_z_csr_compressor (magmaDoubleComplex **val, magma_index_t **row, magma_index_t **col, magmaDoubleComplex **valn, magma_index_t **rown, magma_index_t **coln, magma_int_t *n) |
Helper function to compress CSR containing zero-entries. | |
magma_int_t | magma_z_mconvert (magma_z_sparse_matrix A, magma_z_sparse_matrix *B, magma_storage_t old_format, magma_storage_t new_format) |
Converter between different sparse storage formats. | |
magma_int_t | magma_z_LUmergein (magma_z_sparse_matrix L, magma_z_sparse_matrix U, magma_z_sparse_matrix *B) |
Merges an ILU factorization into one matrix. | |
magma_int_t | magma_z_mtransfer (magma_z_sparse_matrix A, magma_z_sparse_matrix *B, magma_location_t src, magma_location_t dst) |
Copies a matrix from memory location src to memory location dst. | |
magma_int_t | magma_z_vtransfer (magma_z_vector x, magma_z_vector *y, magma_location_t src, magma_location_t dst) |
Copies a vector from memory location src to memory location dst. | |
magma_int_t | magma_z_vvisu (magma_z_vector x, magma_int_t offset, magma_int_t visulen) |
Visualizes part of a vector of type magma_z_vector. | |
magma_int_t | magma_z_vread (magma_z_vector *x, magma_int_t length, char *filename) |
Reads in a double vector of length "length". | |
magma_int_t | magma_zmgenerator (magma_int_t n, magma_int_t offdiags, magma_index_t *diag_offset, magmaDoubleComplex *diag_vals, magma_z_sparse_matrix *A) |
Generate a symmetric n x n CSR matrix for a stencil. | |
magma_int_t | magma_zm_27stencil (magma_int_t n, magma_z_sparse_matrix *A) |
Generate a 27-point stencil for a 3D FD discretization. | |
magma_int_t | magma_zm_5stencil (magma_int_t n, magma_z_sparse_matrix *A) |
Generate a 5-point stencil for a 2D FD discretization. | |
magma_int_t | magma_zmdiff (magma_z_sparse_matrix A, magma_z_sparse_matrix B, real_Double_t *res) |
Computes the Frobenius norm of the difference between the CSR matrices A and B. | |
magma_int_t | magma_zmscale (magma_z_sparse_matrix *A, magma_scale_t scaling) |
Scales a matrix. | |
magma_int_t | magma_zmdiagadd (magma_z_sparse_matrix *A, magmaDoubleComplex add) |
Adds a multiple of the Identity matrix to a matrix: A = A+add * I. | |
magma_int_t | magma_z_initP2P (magma_int_t *bw_bmark, magma_int_t *num_gpus) |
Initializes P2P communication between GPUs. | |
magma_int_t | magma_zsolverinfo (magma_z_solver_par *solver_par, magma_z_preconditioner *precond_par) |
Prints information about a previously called solver. | |
magma_int_t | magma_zsolverinfo_free (magma_z_solver_par *solver_par, magma_z_preconditioner *precond_par) |
Frees any memory assocoiated with the verbose mode of solver_par. | |
magma_int_t | magma_zsolverinfo_init (magma_z_solver_par *solver_par, magma_z_preconditioner *precond_par) |
Initializes all solver and preconditioner parameters. | |
magma_int_t | z_transpose_csr (magma_int_t n_rows, magma_int_t n_cols, magma_int_t nnz, magmaDoubleComplex *val, magma_index_t *row, magma_index_t *col, magma_int_t *new_n_rows, magma_int_t *new_n_cols, magma_int_t *new_nnz, magmaDoubleComplex **new_val, magma_index_t **new_row, magma_index_t **new_col) |
Transposes a matrix stored in CSR format. | |
magma_int_t | magma_z_csrtranspose (magma_z_sparse_matrix A, magma_z_sparse_matrix *B) |
Helper function to transpose CSR matrix. | |
magma_int_t | magma_z_cucsrtranspose (magma_z_sparse_matrix A, magma_z_sparse_matrix *B) |
Helper function to transpose CSR matrix. | |
magma_int_t | read_z_csr_from_binary (magma_int_t *n_row, magma_int_t *n_col, magma_int_t *nnz, magmaDoubleComplex **val, magma_index_t **row, magma_index_t **col, const char *filename) |
Reads in a matrix stored in coo format from a binary and converts it into CSR format. | |
magma_int_t | read_z_csr_from_mtx (magma_storage_t *type, magma_location_t *location, magma_int_t *n_row, magma_int_t *n_col, magma_int_t *nnz, magmaDoubleComplex **val, magma_index_t **row, magma_index_t **col, const char *filename) |
Reads in a matrix stored in coo format from a Matrix Market (.mtx) file and converts it into CSR format. | |
magma_int_t | write_z_csr_mtx (magma_int_t n_row, magma_int_t n_col, magma_int_t nnz, magmaDoubleComplex **val, magma_index_t **row, magma_index_t **col, magma_order_t MajorType, const char *filename) |
Writes a CSR matrix to a file using Matrix Market format. | |
magma_int_t | print_z_csr_mtx (magma_int_t n_row, magma_int_t n_col, magma_int_t nnz, magmaDoubleComplex **val, magma_index_t **row, magma_index_t **col, magma_order_t MajorType) |
Prints a CSR matrix in Matrix Market format. | |
magma_int_t | print_z_csr (magma_int_t n_row, magma_int_t n_col, magma_int_t nnz, magmaDoubleComplex **val, magma_index_t **row, magma_index_t **col) |
Prints a CSR matrix in CSR format. | |
magma_int_t | magma_z_mvisu (magma_z_sparse_matrix A) |
Prints a sparse matrix in CSR format. | |
magma_int_t | magma_z_csr_mtx (magma_z_sparse_matrix *A, const char *filename) |
Reads in a matrix stored in coo format from a Matrix Market (.mtx) file and converts it into CSR format. | |
magma_int_t | magma_z_csr_mtxsymm (magma_z_sparse_matrix *A, const char *filename) |
Reads in a SYMMETRIC matrix stored in coo format from a Matrix Market (.mtx) file and converts it into CSR format. | |
void | magmablas_dlag2s_sparse (magma_int_t M, magma_int_t N, const double *A, magma_int_t lda, float *SA, magma_int_t ldsa, magma_int_t *info) |
DLAG2S converts a DOUBLE PRECISION matrix A to a SINGLE PRECISION matrix SA. | |
magma_int_t | magma_vector_dlag2s (magma_d_vector x, magma_s_vector *y) |
convertes magma_d_vector from Z to C | |
magma_int_t | magma_z_spmv_shift (magmaDoubleComplex alpha, magma_z_sparse_matrix A, magmaDoubleComplex lambda, magma_z_vector x, magmaDoubleComplex beta, magma_int_t offset, magma_int_t blocksize, magma_index_t *add_rows, magma_z_vector y) |
For a given input matrix A and vectors x, y and scalars alpha, beta the wrapper determines the suitable SpMV computing y = alpha * ( A - lambda I ) * x + beta * y. | |
magma_int_t | magma_vector_zlag2c (magma_z_vector x, magma_c_vector *y) |
convertes magma_z_vector from Z to C | |
void | magmablas_zlag2c_sparse (magma_int_t M, magma_int_t N, const magmaDoubleComplex *A, magma_int_t lda, magmaFloatComplex *SA, magma_int_t ldsa, magma_int_t *info) |
ZLAG2C converts a COMPLEX_16 matrix A to a COMPLEX matrix SA. | |
magma_int_t | magma_zlobpcg_res (magma_int_t num_rows, magma_int_t num_vecs, double *evalues, magmaDoubleComplex *X, magmaDoubleComplex *R, double *res) |
This routine computes for Block-LOBPCG, the set of residuals. | |
magma_int_t | magma_zlobpcg_shift (magma_int_t num_rows, magma_int_t num_vecs, magma_int_t shift, magmaDoubleComplex *x) |
For a Block-LOBPCG, the set of residuals (entries consecutive in memory) shrinks and the vectors are shifted in case shift residuals drop below threshold. | |
magma_int_t | magma_zcopyscale (int n, int k, magmaDoubleComplex *r, magmaDoubleComplex *v, magmaDoubleComplex *skp) |
Computes the correction term of the pipelined GMRES according to P. |
magma_int_t magma_vector_dlag2s | ( | magma_d_vector | x, | |
magma_s_vector * | y | |||
) |
convertes magma_d_vector from Z to C
x | magma_d_vector input vector descriptor | |
y | magma_s_vector* output vector descriptor |
magma_int_t magma_vector_zlag2c | ( | magma_z_vector | x, | |
magma_c_vector * | y | |||
) |
convertes magma_z_vector from Z to C
x | magma_z_vector input vector descriptor | |
y | magma_c_vector* output vector descriptor |
magma_int_t magma_z_applyprecond | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_vector * | x, | |||
magma_z_preconditioner * | precond | |||
) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective preconditioner is applied.
E.g. for Jacobi: the scaling-vetor, for ILU the triangular solves.
A | magma_z_sparse_matrix sparse matrix A | |
b | magma_z_vector input vector b | |
x | magma_z_vector* output vector x | |
precond | magma_z_preconditioner preconditioner |
magma_int_t magma_z_applyprecond_left | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_vector * | x, | |||
magma_z_preconditioner * | precond | |||
) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective left preconditioner is applied.
E.g. for Jacobi: the scaling-vetor, for ILU the left triangular solve.
A | magma_z_sparse_matrix sparse matrix A | |
b | magma_z_vector input vector b | |
x | magma_z_vector* output vector x | |
precond | magma_z_preconditioner preconditioner |
magma_int_t magma_z_applyprecond_right | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_vector * | x, | |||
magma_z_preconditioner * | precond | |||
) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective right-preconditioner is applied.
E.g. for Jacobi: the scaling-vetor, for ILU the right triangular solve.
A | magma_z_sparse_matrix sparse matrix A | |
b | magma_z_vector input vector b | |
x | magma_z_vector* output vector x | |
precond | magma_z_preconditioner preconditioner |
magma_int_t magma_z_csr_compressor | ( | magmaDoubleComplex ** | val, | |
magma_index_t ** | row, | |||
magma_index_t ** | col, | |||
magmaDoubleComplex ** | valn, | |||
magma_index_t ** | rown, | |||
magma_index_t ** | coln, | |||
magma_int_t * | n | |||
) |
Helper function to compress CSR containing zero-entries.
val | magmaDoubleComplex** input val pointer to compress | |
row | magma_int_t** input row pointer to modify | |
col | magma_int_t** input col pointer to compress | |
valn | magmaDoubleComplex** output val pointer | |
rown | magma_int_t** output row pointer | |
coln | magma_int_t** output col pointer | |
n | magma_int_t* number of rows in matrix |
magma_int_t magma_z_csr_mtx | ( | magma_z_sparse_matrix * | A, | |
const char * | filename | |||
) |
Reads in a matrix stored in coo format from a Matrix Market (.mtx) file and converts it into CSR format.
It duplicates the off-diagonal entries in the symmetric case.
A | magma_z_sparse_matrix* matrix in magma sparse matrix format | |
filename | const char* filname of the mtx matrix |
magma_int_t magma_z_csr_mtxsymm | ( | magma_z_sparse_matrix * | A, | |
const char * | filename | |||
) |
Reads in a SYMMETRIC matrix stored in coo format from a Matrix Market (.mtx) file and converts it into CSR format.
It does not duplicate the off-diagonal entries!
A | magma_z_sparse_matrix* matrix in magma sparse matrix format | |
filename | const char* filname of the mtx matrix |
magma_int_t magma_z_csrtranspose | ( | magma_z_sparse_matrix | A, | |
magma_z_sparse_matrix * | B | |||
) |
Helper function to transpose CSR matrix.
A | magma_z_sparse_matrix input matrix (CSR) | |
B | magma_z_sparse_matrix* output matrix (CSR) |
magma_int_t magma_z_cucsrtranspose | ( | magma_z_sparse_matrix | A, | |
magma_z_sparse_matrix * | B | |||
) |
Helper function to transpose CSR matrix.
Using the CUSPARSE CSR2CSC function.
A | magma_z_sparse_matrix input matrix (CSR) | |
B | magma_z_sparse_matrix* output matrix (CSR) |
magma_int_t magma_z_initP2P | ( | magma_int_t * | bw_bmark, | |
magma_int_t * | num_gpus | |||
) |
Initializes P2P communication between GPUs.
bw_bmark | magma_int_t* input: run the benchmark (1/0) | |
num_gpus | magma_int_t* output: number of GPUs |
magma_int_t magma_z_LUmergein | ( | magma_z_sparse_matrix | L, | |
magma_z_sparse_matrix | U, | |||
magma_z_sparse_matrix * | B | |||
) |
Merges an ILU factorization into one matrix.
works only for the symmetric case!!!
L | magma_z_sparse_matrix sparse matrix L | |
U | magma_z_sparse_matrix sparse matrix U | |
B | magma_z_sparse_matrix* output sparse matrix B |
magma_int_t magma_z_mconvert | ( | magma_z_sparse_matrix | A, | |
magma_z_sparse_matrix * | B, | |||
magma_storage_t | old_format, | |||
magma_storage_t | new_format | |||
) |
Converter between different sparse storage formats.
A | magma_z_sparse_matrix sparse matrix A | |
B | magma_z_sparse_matrix* copy of A in new format | |
old_format | magma_storage_t original storage format | |
new_format | magma_storage_t new storage format |
magma_int_t magma_z_mfree | ( | magma_z_sparse_matrix * | A | ) |
Free the memory of a magma_z_sparse_matrix.
A | magma_z_sparse_matrix* matrix to free |
magma_int_t magma_z_mtransfer | ( | magma_z_sparse_matrix | A, | |
magma_z_sparse_matrix * | B, | |||
magma_location_t | src, | |||
magma_location_t | dst | |||
) |
Copies a matrix from memory location src to memory location dst.
A | magma_z_sparse_matrix sparse matrix A | |
B | magma_z_sparse_matrix* copy of A | |
src | magma_location_t original location A | |
dst | magma_location_t location of the copy of A |
magma_int_t magma_z_mvisu | ( | magma_z_sparse_matrix | A | ) |
Prints a sparse matrix in CSR format.
A | magma_z_sparse_matrix sparse matrix in Magma_CSR format |
magma_int_t magma_z_precond | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_vector * | x, | |||
magma_z_preconditioner * | precond | |||
) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective preconditioner is chosen.
It approximates x for A x = y.
A | magma_z_sparse_matrix sparse matrix A | |
b | magma_z_vector input vector b | |
x | magma_z_vector* output vector x | |
precond | magma_z_preconditioner preconditioner |
magma_int_t magma_z_precondsetup | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_preconditioner * | precond | |||
) |
For a given input matrix A and vectors x, y and the preconditioner parameters, the respective preconditioner is preprocessed.
E.g. for Jacobi: the scaling-vetor, for ILU the factorization.
A | magma_z_sparse_matrix sparse matrix A | |
b | magma_z_vector input vector y | |
precond | magma_z_preconditioner preconditioner |
magma_int_t magma_z_solver | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_vector * | x, | |||
magma_zopts * | zopts | |||
) |
ALlows the user to choose a solver.
A | magma_z_sparse_matrix sparse matrix A | |
b | magma_z_vector input vector b | |
x | magma_z_vector* output vector x | |
zopts | magma_zopts options for solver and preconditioner |
magma_int_t magma_z_spmv_shift | ( | magmaDoubleComplex | alpha, | |
magma_z_sparse_matrix | A, | |||
magmaDoubleComplex | lambda, | |||
magma_z_vector | x, | |||
magmaDoubleComplex | beta, | |||
magma_int_t | offset, | |||
magma_int_t | blocksize, | |||
magma_index_t * | add_rows, | |||
magma_z_vector | y | |||
) |
For a given input matrix A and vectors x, y and scalars alpha, beta the wrapper determines the suitable SpMV computing y = alpha * ( A - lambda I ) * x + beta * y.
alpha | magmaDoubleComplex scalar alpha | |
A | magma_z_sparse_matrix sparse matrix A | |
lambda | magmaDoubleComplex scalar lambda | |
x | magma_z_vector input vector x | |
beta | magmaDoubleComplex scalar beta | |
offset | magma_int_t in case not the main diagonal is scaled | |
blocksize | magma_int_t in case of processing multiple vectors | |
add_rows | magma_int_t* in case the matrixpowerskernel is used | |
y | magma_z_vector output vector y |
magma_int_t magma_z_vfree | ( | magma_z_vector * | x | ) |
Free the memory of a magma_z_vector.
x | magma_z_vector* vector to free |
magma_int_t magma_z_vinit | ( | magma_z_vector * | x, | |
magma_location_t | mem_loc, | |||
magma_int_t | num_rows, | |||
magmaDoubleComplex | values | |||
) |
Initialize a magma_z_vector.
x | magma_z_vector vector to initialize | |
mem_loc | magma_location_t memory for vector | |
num_rows | magma_int_t desired length of vector | |
values | magmaDoubleComplex entries in vector |
magma_int_t magma_z_vread | ( | magma_z_vector * | x, | |
magma_int_t | length, | |||
char * | filename | |||
) |
Reads in a double vector of length "length".
x | magma_z_vector vector to read in | |
length | magma_int_t length of vector | |
filename | char* file where vector is stored |
magma_int_t magma_z_vtransfer | ( | magma_z_vector | x, | |
magma_z_vector * | y, | |||
magma_location_t | src, | |||
magma_location_t | dst | |||
) |
Copies a vector from memory location src to memory location dst.
x | magma_z_vector vector x | |
y | magma_z_vector* copy of x | |
src | magma_location_t original location x | |
dst | magma_location_t location of the copy of x |
magma_int_t magma_z_vvisu | ( | magma_z_vector | x, | |
magma_int_t | offset, | |||
magma_int_t | visulen | |||
) |
Visualizes part of a vector of type magma_z_vector.
With input vector x , offset, visulen, the entries offset - (offset + visulen) of x are visualized.
x | magma_z_vector vector to visualize | |
offset | magma_int_t start inex of visualization | |
visulen | magma_int_t number of entries to visualize |
magma_int_t magma_zcopyscale | ( | int | n, | |
int | k, | |||
magmaDoubleComplex * | r, | |||
magmaDoubleComplex * | v, | |||
magmaDoubleComplex * | skp | |||
) |
Computes the correction term of the pipelined GMRES according to P.
Ghysels and scales and copies the new search direction
Returns the vector v = r/ ( skp[k] - (sum_i=1^k skp[i]^2) ) .
n | int length of v_i | |
k | int # skp entries v_i^T * r ( without r ) | |
r | magmaDoubleComplex* vector of length n | |
v | magmaDoubleComplex* vector of length n | |
skp | magmaDoubleComplex* array of parameters |
magma_int_t magma_zdiameter | ( | magma_z_sparse_matrix * | A | ) |
Computes the diameter of a sparse matrix and stores the value in diameter.
A | magma_z_sparse_matrix* sparse matrix |
magma_int_t magma_zlobpcg_res | ( | magma_int_t | num_rows, | |
magma_int_t | num_vecs, | |||
double * | evalues, | |||
magmaDoubleComplex * | X, | |||
magmaDoubleComplex * | R, | |||
double * | res | |||
) |
This routine computes for Block-LOBPCG, the set of residuals.
R = Ax - x evalues It replaces: for(int i=0; i < n; i++){ magma_zaxpy(m, MAGMA_Z_MAKE(-evalues[i],0),blockX+i*m,1,blockR+i*m,1); } The memory layout of x is:
/ x1[0] x2[0] x3[0] \ | x1[1] x2[1] x3[1] | x = | x1[2] x2[2] x3[2] | = x1[0] x1[1] x1[2] x1[3] x1[4] x2[0] x2[1] . | x1[3] x2[3] x3[3] | \ x1[4] x2[4] x3[4] /
num_rows | magma_int_t number of rows | |
num_vecs | magma_int_t number of vectors | |
evalues | double* array of eigenvalues/approximations | |
X | magmaDoubleComplex* block of eigenvector approximations | |
R | magmaDoubleComplex* block of residuals | |
res | double* array of residuals |
magma_int_t magma_zlobpcg_shift | ( | magma_int_t | num_rows, | |
magma_int_t | num_vecs, | |||
magma_int_t | shift, | |||
magmaDoubleComplex * | x | |||
) |
For a Block-LOBPCG, the set of residuals (entries consecutive in memory) shrinks and the vectors are shifted in case shift residuals drop below threshold.
The memory layout of x is:
/ x1[0] x2[0] x3[0] \ | x1[1] x2[1] x3[1] | x = | x1[2] x2[2] x3[2] | = x1[0] x2[0] x3[0] x1[1] x2[1] x3[1] x1[2] . | x1[3] x2[3] x3[3] | \ x1[4] x2[4] x3[4] /
num_rows | magma_int_t number of rows | |
num_vecs | magma_int_t number of vectors | |
shift | magma_int_t shift number | |
x | magmaDoubleComplex* input/output vector x |
magma_int_t magma_zm_27stencil | ( | magma_int_t | n, | |
magma_z_sparse_matrix * | A | |||
) |
Generate a 27-point stencil for a 3D FD discretization.
n | magma_int_t number of rows | |
A | magma_z_sparse_matrix* matrix to generate |
magma_int_t magma_zm_5stencil | ( | magma_int_t | n, | |
magma_z_sparse_matrix * | A | |||
) |
Generate a 5-point stencil for a 2D FD discretization.
n | magma_int_t number of rows | |
A | magma_z_sparse_matrix* matrix to generate |
magma_int_t magma_zmdiagadd | ( | magma_z_sparse_matrix * | A, | |
magmaDoubleComplex | add | |||
) |
Adds a multiple of the Identity matrix to a matrix: A = A+add * I.
A | magma_z_sparse_matrix* input/output matrix | |
add | magmaDoubleComplex scaling for the identity matrix |
magma_int_t magma_zmdiff | ( | magma_z_sparse_matrix | A, | |
magma_z_sparse_matrix | B, | |||
real_Double_t * | res | |||
) |
Computes the Frobenius norm of the difference between the CSR matrices A and B.
They do not need to share the same sparsity pattern!
res = ||A-B||_F = sqrt( sum_ij (A_ij-B_ij)^2 )
A | magma_z_sparse_matrix sparse matrix in CSR | |
B | magma_z_sparse_matrix sparse matrix in CSR | |
res | real_Double_t* residual |
magma_int_t magma_zmgenerator | ( | magma_int_t | n, | |
magma_int_t | offdiags, | |||
magma_index_t * | diag_offset, | |||
magmaDoubleComplex * | diag_vals, | |||
magma_z_sparse_matrix * | A | |||
) |
Generate a symmetric n x n CSR matrix for a stencil.
n | magma_int_t number of rows | |
offdiags | magma_int_t number of offdiagonals | |
diag_offset | magma_int_t* array containing the offsets |
(length offsets+1)
diag_vals | magmaDoubleComplex* array containing the values |
(length offsets+1)
A | magma_z_sparse_matrix* matrix to generate |
magma_int_t magma_zmscale | ( | magma_z_sparse_matrix * | A, | |
magma_scale_t | scaling | |||
) |
Scales a matrix.
A | magma_z_sparse_matrix* input/output matrix | |
scaling | magma_scale_t scaling type (unit rownorm / unit diagonal) |
magma_int_t magma_zresidual | ( | magma_z_sparse_matrix | A, | |
magma_z_vector | b, | |||
magma_z_vector | x, | |||
double * | res | |||
) |
Computes the residual ||b-Ax|| for a solution approximation x.
A | magma_z_sparse_matrix input matrix A | |
b | magma_z_vector RHS b | |
x | magma_z_vector solution approximation | |
res | magmaDoubleComplex* return residual |
magma_int_t magma_zrowentries | ( | magma_z_sparse_matrix * | A | ) |
Checks the maximal number of nonzeros in a row of matrix A.
Inserts the data into max_nnz_row.
A | magma_z_sparse_matrix* sparse matrix |
magma_int_t magma_zsolverinfo | ( | magma_z_solver_par * | solver_par, | |
magma_z_preconditioner * | precond_par | |||
) |
Prints information about a previously called solver.
solver_par | magma_z_solver_par* structure containing all solver information | |
precond_par | magma_z_preconditioner* structure containing all preconditioner information |
magma_int_t magma_zsolverinfo_free | ( | magma_z_solver_par * | solver_par, | |
magma_z_preconditioner * | precond_par | |||
) |
Frees any memory assocoiated with the verbose mode of solver_par.
The other values are set to default.
solver_par | magma_z_solver_par* structure containing all solver information | |
precond_par | magma_z_preconditioner* structure containing all preconditioner information |
magma_int_t magma_zsolverinfo_init | ( | magma_z_solver_par * | solver_par, | |
magma_z_preconditioner * | precond_par | |||
) |
Initializes all solver and preconditioner parameters.
solver_par | magma_z_solver_par* structure containing all solver information | |
precond_par | magma_z_preconditioner* structure containing all preconditioner information |
void magmablas_dlag2s_sparse | ( | magma_int_t | M, | |
magma_int_t | N, | |||
const double * | A, | |||
magma_int_t | lda, | |||
float * | SA, | |||
magma_int_t | ldsa, | |||
magma_int_t * | info | |||
) |
DLAG2S converts a DOUBLE PRECISION matrix A to a SINGLE PRECISION matrix SA.
RMAX is the overflow for the SINGLE PRECISION arithmetic. DLAG2S checks that all the entries of A are between -RMAX and RMAX. If not the convertion is aborted and a flag is raised.
[in] | M | INTEGER The number of lines of the matrix A. M >= 0. |
[in] | N | INTEGER The number of columns of the matrix A. N >= 0. |
[in] | A | DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N coefficient matrix A. |
[in] | lda | INTEGER The leading dimension of the array A. LDA >= max(1,M). |
[out] | SA | SINGLE PRECISION array, dimension (LDSA,N) On exit, if INFO=0, the M-by-N coefficient matrix SA; if INFO>0, the content of SA is unspecified. |
[in] | ldsa | INTEGER The leading dimension of the array SA. LDSA >= max(1,M). |
[out] | info | INTEGER
|
void magmablas_zlag2c_sparse | ( | magma_int_t | M, | |
magma_int_t | N, | |||
const magmaDoubleComplex * | A, | |||
magma_int_t | lda, | |||
magmaFloatComplex * | SA, | |||
magma_int_t | ldsa, | |||
magma_int_t * | info | |||
) |
ZLAG2C converts a COMPLEX_16 matrix A to a COMPLEX matrix SA.
RMAX is the overflow for the COMPLEX arithmetic. ZLAG2C checks that all the entries of A are between -RMAX and RMAX. If not the convertion is aborted and a flag is raised.
[in] | M | INTEGER The number of lines of the matrix A. M >= 0. |
[in] | N | INTEGER The number of columns of the matrix A. N >= 0. |
[in] | A | COMPLEX_16 array, dimension (LDA,N) On entry, the M-by-N coefficient matrix A. |
[in] | lda | INTEGER The leading dimension of the array A. LDA >= max(1,M). |
[out] | SA | COMPLEX array, dimension (LDSA,N) On exit, if INFO=0, the M-by-N coefficient matrix SA; if INFO>0, the content of SA is unspecified. |
[in] | ldsa | INTEGER The leading dimension of the array SA. LDSA >= max(1,M). |
[out] | info | INTEGER
|
magma_int_t print_z_csr | ( | magma_int_t | n_row, | |
magma_int_t | n_col, | |||
magma_int_t | nnz, | |||
magmaDoubleComplex ** | val, | |||
magma_index_t ** | row, | |||
magma_index_t ** | col | |||
) |
Prints a CSR matrix in CSR format.
n_row | magma_int_t* number of rows in matrix | |
n_col | magma_int_t* number of columns in matrix | |
nnz | magma_int_t* number of nonzeros in matrix | |
val | magmaDoubleComplex** value array of CSR | |
row | magma_index_t** row pointer of CSR | |
col | magma_index_t** column indices of CSR |
magma_int_t print_z_csr_mtx | ( | magma_int_t | n_row, | |
magma_int_t | n_col, | |||
magma_int_t | nnz, | |||
magmaDoubleComplex ** | val, | |||
magma_index_t ** | row, | |||
magma_index_t ** | col, | |||
magma_order_t | MajorType | |||
) |
Prints a CSR matrix in Matrix Market format.
n_row | magma_int_t* number of rows in matrix | |
n_col | magma_int_t* number of columns in matrix | |
nnz | magma_int_t* number of nonzeros in matrix | |
val | magmaDoubleComplex** value array of CSR | |
row | magma_index_t** row pointer of CSR | |
col | magma_index_t** column indices of CSR | |
MajorType | magma_index_t Row or Column sort default: 0 = RowMajor, 1 = ColMajor |
magma_int_t read_z_csr_from_binary | ( | magma_int_t * | n_row, | |
magma_int_t * | n_col, | |||
magma_int_t * | nnz, | |||
magmaDoubleComplex ** | val, | |||
magma_index_t ** | row, | |||
magma_index_t ** | col, | |||
const char * | filename | |||
) |
Reads in a matrix stored in coo format from a binary and converts it into CSR format.
It duplicates the off-diagonal entries in the symmetric case.
n_row | magma_int_t* number of rows in matrix | |
n_col | magma_int_t* number of columns in matrix | |
nnz | magma_int_t* number of nonzeros in matrix | |
val | magmaDoubleComplex** value array of CSR output | |
row | magma_index_t** row pointer of CSR output | |
col | magma_index_t** column indices of CSR output | |
filename | const char* filname of the mtx matrix |
magma_int_t read_z_csr_from_mtx | ( | magma_storage_t * | type, | |
magma_location_t * | location, | |||
magma_int_t * | n_row, | |||
magma_int_t * | n_col, | |||
magma_int_t * | nnz, | |||
magmaDoubleComplex ** | val, | |||
magma_index_t ** | row, | |||
magma_index_t ** | col, | |||
const char * | filename | |||
) |
Reads in a matrix stored in coo format from a Matrix Market (.mtx) file and converts it into CSR format.
It duplicates the off-diagonal entries in the symmetric case.
type | magma_storage_t* storage type of matrix | |
location | magma_location_t* location of matrix | |
n_row | magma_int_t* number of rows in matrix | |
n_col | magma_int_t* number of columns in matrix | |
nnz | magma_int_t* number of nonzeros in matrix | |
val | magmaDoubleComplex** value array of CSR output | |
row | magma_index_t** row pointer of CSR output | |
col | magma_index_t** column indices of CSR output | |
filename | const char* filname of the mtx matrix |
magma_int_t write_z_csr_mtx | ( | magma_int_t | n_row, | |
magma_int_t | n_col, | |||
magma_int_t | nnz, | |||
magmaDoubleComplex ** | val, | |||
magma_index_t ** | row, | |||
magma_index_t ** | col, | |||
magma_order_t | MajorType, | |||
const char * | filename | |||
) |
Writes a CSR matrix to a file using Matrix Market format.
n_row | magma_int_t* number of rows in matrix | |
n_col | magma_int_t* number of columns in matrix | |
nnz | magma_int_t* number of nonzeros in matrix | |
val | magmaDoubleComplex** value array of CSR | |
row | magma_index_t** row pointer of CSR | |
col | magma_index_t** column indices of CSR | |
MajorType | magma_index_t Row or Column sort default: 0 = RowMajor, 1 = ColMajor | |
filename | const char* output-filname of the mtx matrix |
magma_int_t z_transpose_csr | ( | magma_int_t | n_rows, | |
magma_int_t | n_cols, | |||
magma_int_t | nnz, | |||
magmaDoubleComplex * | val, | |||
magma_index_t * | row, | |||
magma_index_t * | col, | |||
magma_int_t * | new_n_rows, | |||
magma_int_t * | new_n_cols, | |||
magma_int_t * | new_nnz, | |||
magmaDoubleComplex ** | new_val, | |||
magma_index_t ** | new_row, | |||
magma_index_t ** | new_col | |||
) |
Transposes a matrix stored in CSR format.
n_rows | magma_int_t number of rows in input matrix | |
n_cols | magma_int_t number of columns in input matrix | |
nnz | magma_int_t number of nonzeros in input matrix | |
val | magmaDoubleComplex* value array of input matrix | |
row | magma_index_t* row pointer of input matrix | |
col | magma_index_t* column indices of input matrix | |
new_n_rows | magma_index_t* number of rows in transposed matrix | |
new_n_cols | magma_index_t* number of columns in transposed matrix | |
new_nnz | magma_index_t* number of nonzeros in transposed matrix | |
new_val | magmaDoubleComplex** value array of transposed matrix | |
new_row | magma_index_t** row pointer of transposed matrix | |
new_col | magma_index_t** column indices of transposed matrix |