MAGMA 2.9.0
Matrix Algebra for GPU and Multicore Architectures
Loading...
Searching...
No Matches
Deprecated MAGMA-sparse

Functions

magma_int_t magma_corderstatistics (magmaFloatComplex *val, magma_int_t length, magma_int_t k, magma_int_t r, magmaFloatComplex *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array.
 
magma_int_t magma_corderstatistics_inc (magmaFloatComplex *val, magma_int_t length, magma_int_t k, magma_int_t inc, magma_int_t r, magmaFloatComplex *element, magma_queue_t queue)
 Approximates the k-th smallest element in an array by using order-statistics with step-size inc.
 
magma_int_t magma_cmorderstatistics (magmaFloatComplex *val, magma_index_t *col, magma_index_t *row, magma_int_t length, magma_int_t k, magma_int_t r, magmaFloatComplex *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.
 
magma_int_t magma_cpartition (magmaFloatComplex *a, magma_int_t size, magma_int_t pivot, magma_queue_t queue)
 
magma_int_t magma_cmedian5 (magmaFloatComplex *a, magma_queue_t queue)
 
magma_int_t magma_cselect (magmaFloatComplex *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_cselectrandom (magmaFloatComplex *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_cdomainoverlap (magma_index_t num_rows, magma_int_t *num_indices, magma_index_t *rowptr, magma_index_t *colidx, magma_index_t *x, magma_queue_t queue)
 Generates the update list.
 
magma_int_t magma_cvspread (magma_c_matrix *x, const char *filename, magma_queue_t queue)
 Reads in a sparse vector-block stored in COO format.
 
magma_int_t magma_cdiameter (magma_c_matrix *A, magma_queue_t queue)
 Computes the diameter of a sparse matrix and stores the value in diameter.
 
magma_int_t magma_cparilusetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the iterative ILU iteration.
 
magma_int_t magma_cparilu_gpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_cparilu_cpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_cparic_gpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_cparic_cpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_cparicsetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the IC preconditioner via the iterative IC iteration.
 
magma_int_t magma_cparicupdate (magma_c_matrix A, magma_c_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_capplyiteric_l (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_capplyiteric_r (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_cparilu_csr (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_cpariluupdate (magma_c_matrix A, magma_c_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_cparic_csr (magma_c_matrix A, magma_c_matrix A_CSR, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_cnonlinres (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *LU, real_Double_t *res, magma_queue_t queue)
 Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_cilures (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_cicres (magma_c_matrix A, magma_c_matrix C, magma_c_matrix CT, magma_c_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_cinitguess (magma_c_matrix A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 Computes an initial guess for the ParILU/ParIC.
 
magma_int_t magma_cinitrecursiveLU (magma_c_matrix A, magma_c_matrix *B, magma_queue_t queue)
 Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.
 
magma_int_t magma_cmLdiagadd (magma_c_matrix *L, magma_queue_t queue)
 Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.
 
magma_int_t magma_cmatrix_cup (magma_c_matrix A, magma_c_matrix B, magma_c_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_cmatrix_cup_gpu (magma_c_matrix A, magma_c_matrix B, magma_c_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_cmatrix_cap (magma_c_matrix A, magma_c_matrix B, magma_c_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being in both matrices: \(U = A \cap B\).
 
magma_int_t magma_cmatrix_negcap (magma_c_matrix A, magma_c_matrix B, magma_c_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of A but not of B.
 
magma_int_t magma_cmatrix_tril_negcap (magma_c_matrix A, magma_c_matrix B, magma_c_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of tril(A) but not of B.
 
magma_int_t magma_cmatrix_triu_negcap (magma_c_matrix A, magma_c_matrix B, magma_c_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being part of triu(A) but not of B.
 
magma_int_t magma_cmatrix_abssum (magma_c_matrix A, float *sum, magma_queue_t queue)
 Computes the sum of the absolute values in a matrix.
 
magma_int_t magma_cparilut_thrsrm (magma_int_t order, magma_c_matrix *A, float *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_cparilut_thrsrm_semilinked (magma_c_matrix *U, magma_c_matrix *UT, float *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller thrs from the matrix.
 
magma_int_t magma_cparilut_rmselected (magma_c_matrix R, magma_c_matrix *A, magma_queue_t queue)
 Removes a selected list of elements from the matrix.
 
magma_int_t magma_cparilut_selectoneperrow (magma_int_t order, magma_c_matrix *A, magma_c_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_cparilut_selecttwoperrow (magma_int_t order, magma_c_matrix *A, magma_c_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_cparilut_selectoneperrowthrs_lower (magma_c_matrix L, magma_c_matrix U, magma_c_matrix *A, float rtol, magma_c_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_cparilut_selectoneperrowthrs_upper (magma_c_matrix L, magma_c_matrix U, magma_c_matrix *A, float rtol, magma_c_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_cparilut_selectonepercol (magma_int_t order, magma_c_matrix *A, magma_c_matrix *oneA, magma_queue_t queue)
 
magma_int_t magma_cparilut_transpose_select_one (magma_c_matrix A, magma_c_matrix *B, magma_queue_t queue)
 This is a special routine with very limited scope.
 
magma_int_t magma_cparilut_insert_LU (magma_int_t num_rm, magma_index_t *rm_loc, magma_index_t *rm_loc2, magma_c_matrix *LU_new, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 
magma_int_t magma_cparilut_set_thrs (magma_int_t num_rm, magma_c_matrix *LU, magma_int_t order, magmaFloatComplex *thrs, magma_queue_t queue)
 
magma_int_t magma_cparilut_set_approx_thrs (magma_int_t num_rm, magma_c_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_cparilut_set_thrs_randomselect (magma_int_t num_rm, magma_c_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_cparilut_set_thrs_randomselect_approx (magma_int_t num_rm, magma_c_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_cparilut_set_thrs_randomselect_factors (magma_int_t num_rm, magma_c_matrix *L, magma_c_matrix *U, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_cparilut_set_exact_thrs (magma_int_t num_rm, magma_c_matrix *LU, magma_int_t order, magmaFloatComplex *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_cparilut_set_approx_thrs_inc (magma_int_t num_rm, magma_c_matrix *LU, magma_int_t order, magmaFloatComplex *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_cparilut_LU_approx_thrs (magma_int_t num_rm, magma_c_matrix *L, magma_c_matrix *U, magma_int_t order, magmaFloatComplex *thrs, magma_queue_t queue)
 
magma_int_t magma_cparilut_reorder (magma_c_matrix *LU, magma_queue_t queue)
 This routine reorders the matrix (inplace) for easier access.
 
magma_int_t magma_cparict_sweep (magma_c_matrix *A, magma_c_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_cparilut_zero (magma_c_matrix *A, magma_queue_t queue)
 
magma_int_t magma_cparilu_sweep (magma_c_matrix A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 This function does one asynchronous ParILU sweep.
 
magma_int_t magma_cparilu_sweep_sync (magma_c_matrix A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_cparic_sweep (magma_c_matrix A, magma_c_matrix *L, magma_queue_t queue)
 This function does one asynchronous ParILU sweep (symmetric case).
 
magma_int_t magma_cparic_sweep_sync (magma_c_matrix A, magma_c_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep (symmetric case).
 
magma_int_t magma_cparict_sweep_sync (magma_c_matrix *A, magma_c_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_cparilut_sweep_sync (magma_c_matrix *A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_cparilut_sweep_gpu (magma_c_matrix *A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_cparilut_residuals_gpu (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *R, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_cthrsholdrm_gpu (magma_int_t order, magma_c_matrix *A, float *thrs, magma_queue_t queue)
 
magma_int_t magma_cget_row_ptr (const magma_int_t num_rows, magma_int_t *nnz, const magma_index_t *rowidx, magma_index_t *rowptr, magma_queue_t queue)
 
magma_int_t magma_cparilut_align_residuals (magma_c_matrix L, magma_c_matrix U, magma_c_matrix *Lnew, magma_c_matrix *Unew, magma_queue_t queue)
 This function scales the residuals of a lower triangular factor L with the diagonal of U.
 
magma_int_t magma_cparilut_preselect_scale (magma_c_matrix *L, magma_c_matrix *oneL, magma_c_matrix *U, magma_c_matrix *oneU, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_cparilut_thrsrm_U (magma_int_t order, magma_c_matrix L, magma_c_matrix *A, float *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_cparilut_residuals (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *L_new, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_cparilut_residuals_transpose (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_cparilut_residuals_semilinked (magma_c_matrix A, magma_c_matrix L, magma_c_matrix US, magma_c_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_cparilut_sweep_semilinked (magma_c_matrix *A, magma_c_matrix *L, magma_c_matrix *US, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_cparilut_sweep_list (magma_c_matrix *A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_cparilut_residuals_list (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_cparilut_sweep_linkedlist (magma_c_matrix *A, magma_c_matrix *L, magma_c_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_cparilut_residuals_linkedlist (magma_c_matrix A, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_cparilut_colmajor (magma_c_matrix A, magma_c_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_cparilut_colmajorup (magma_c_matrix A, magma_c_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_cparict (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner.
 
magma_int_t magma_cparict_cpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.
 
magma_int_t magma_cparilut (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete LU preconditioner.
 
magma_int_t magma_cparilut_cpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_cparilut_gpu (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_cparilut_gpu_nodp (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_cparilut_insert (magma_int_t *num_rmL, magma_int_t *num_rmU, magma_index_t *rm_locL, magma_index_t *rm_locU, magma_c_matrix *L_new, magma_c_matrix *U_new, magma_c_matrix *L, magma_c_matrix *U, magma_c_matrix *UR, magma_queue_t queue)
 Inserts for the iterative dynamic ILU an new element in the (empty) place.
 
magma_int_t magma_cparilut_create_collinkedlist (magma_c_matrix A, magma_c_matrix *B, magma_queue_t queue)
 For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.
 
magma_int_t magma_cparilut_candidates (magma_c_matrix L0, magma_c_matrix U0, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *L_new, magma_c_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_cparilut_candidates_gpu (magma_c_matrix L0, magma_c_matrix U0, magma_c_matrix L, magma_c_matrix U, magma_c_matrix *L_new, magma_c_matrix *U_new, magma_queue_t queue)
 This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.
 
magma_int_t magma_cparict_candidates (magma_c_matrix L0, magma_c_matrix L, magma_c_matrix LT, magma_c_matrix *L_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_cparilut_candidates_semilinked (magma_c_matrix L0, magma_c_matrix U0, magma_c_matrix L, magma_c_matrix U, magma_c_matrix UT, magma_c_matrix *L_new, magma_c_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_cparilut_candidates_linkedlist (magma_c_matrix L0, magma_c_matrix U0, magma_c_matrix L, magma_c_matrix U, magma_c_matrix UR, magma_c_matrix *L_new, magma_c_matrix *U_new, magma_queue_t queue)
 
magma_int_t magma_cparilut_rm_thrs (float *thrs, magma_int_t *num_rm, magma_c_matrix *LU, magma_c_matrix *LU_new, magma_index_t *rm_loc, magma_queue_t queue)
 This routine removes matrix entries from the structure that are smaller than the threshold.
 
magma_int_t magma_cparilut_count (magma_c_matrix L, magma_int_t *num, magma_queue_t queue)
 This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.
 
magma_int_t magma_cparilut_randlist (magma_c_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_cparilut_select_candidates_L (magma_int_t *num_rm, magma_index_t *rm_loc, magma_c_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_cparilut_select_candidates_U (magma_int_t *num_rm, magma_index_t *rm_loc, magma_c_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_cparilut_preselect (magma_int_t order, magma_c_matrix *A, magma_c_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_cpreselect_gpu (magma_int_t order, magma_c_matrix *A, magma_c_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_csampleselect (magma_int_t total_size, magma_int_t subset_size, magmaFloatComplex *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_csampleselect_approx (magma_int_t total_size, magma_int_t subset_size, magmaFloatComplex *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_csampleselect_nodp (magma_int_t total_size, magma_int_t subset_size, magmaFloatComplex *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_csampleselect_approx_nodp (magma_int_t total_size, magma_int_t subset_size, magmaFloatComplex *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_cmprepare_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix L, magma_c_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaFloatComplex *trisystems, magmaFloatComplex *rhs, magma_queue_t queue)
 Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.
 
magma_int_t magma_cmtrisolve_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix L, magma_c_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaFloatComplex *trisystems, magmaFloatComplex *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_cmbackinsert_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix *M, magma_index_t *sizes, magma_index_t *locations, magmaFloatComplex *trisystems, magmaFloatComplex *rhs, magma_queue_t queue)
 Inserts the values into the preconditioner matrix.
 
magma_int_t magma_cmprepare_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix L, magma_c_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaFloatComplex *trisystems, magmaFloatComplex *rhs, magma_queue_t queue)
 
magma_int_t magma_cmtrisolve_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix L, magma_c_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaFloatComplex *trisystems, magmaFloatComplex *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_cmbackinsert_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix *M, magma_index_t *sizes, magma_index_t *locations, magmaFloatComplex *trisystems, magmaFloatComplex *rhs, magma_queue_t queue)
 
magma_int_t magma_ciluisaisetup_lower (magma_c_matrix L, magma_c_matrix S, magma_c_matrix *ISAIL, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_ciluisaisetup_upper (magma_c_matrix U, magma_c_matrix S, magma_c_matrix *ISAIU, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_cicisaisetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_cisai_l (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_cisai_r (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_cisai_l_t (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_cisai_r_t (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_cmiluisai_sizecheck (magma_c_matrix A, magma_index_t batchsize, magma_index_t *maxsize, magma_queue_t queue)
 
magma_int_t magma_cgeisai_maxblock (magma_c_matrix L, magma_c_matrix *MT, magma_queue_t queue)
 This routine maximizes the pattern for the ISAI preconditioner.
 
magma_int_t magma_cisai_generator_regs (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_c_matrix L, magma_c_matrix *M, magma_queue_t queue)
 This routine is designet to combine all kernels into one.
 
magma_int_t magma_cmsupernodal (magma_int_t *max_bs, magma_c_matrix A, magma_c_matrix *S, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with block-size bs.
 
magma_int_t magma_cmvarsizeblockstruct (magma_int_t n, magma_int_t *bs, magma_int_t bsl, magma_uplo_t uplotype, magma_c_matrix *A, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with variable block-size.
 
magma_int_t magma_ctfqmr_unrolled (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a complex matrix A.
 
magma_int_t magma_cbicgstab_merge2 (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_cbicgstab_merge3 (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_cjacobidomainoverlap (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.
 
magma_int_t magma_cbaiter (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_c_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_cbaiter_overlap (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_c_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_cftjacobicontractions (magma_c_matrix xkm2, magma_c_matrix xkm1, magma_c_matrix xk, magma_c_matrix *z, magma_c_matrix *c, magma_queue_t queue)
 Computes the contraction coefficients c_i:
 
magma_int_t magma_cftjacobiupdatecheck (float delta, magma_c_matrix *xold, magma_c_matrix *xnew, magma_c_matrix *zprev, magma_c_matrix c, magma_int_t *flag_t, magma_int_t *flag_fp, magma_queue_t queue)
 Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.
 
magma_int_t magma_citerref (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_c_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.
 
magma_int_t magma_cjacobiiter_sys (magma_c_matrix A, magma_c_matrix b, magma_c_matrix d, magma_c_matrix t, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_cftjacobi (magma_c_matrix A, magma_c_matrix b, magma_c_matrix *x, magma_c_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_cilut_saad (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_cilut_saad_apply (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_ccustomilusetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete LU preconditioner.
 
magma_int_t magma_ccustomicsetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete Cholesky preconditioner.
 
magma_int_t magma_cbajac_csr (magma_int_t localiters, magma_c_matrix D, magma_c_matrix R, magma_c_matrix b, magma_c_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.
 
magma_int_t magma_cbajac_csr_overlap (magma_int_t localiters, magma_int_t matrices, magma_int_t overlap, magma_c_matrix *D, magma_c_matrix *R, magma_c_matrix b, magma_c_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.
 
magma_int_t magma_cmlumerge (magma_c_matrix L, magma_c_matrix U, magma_c_matrix *A, magma_queue_t queue)
 Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.
 
magma_int_t magma_cgeaxpy (magmaFloatComplex alpha, magma_c_matrix X, magmaFloatComplex beta, magma_c_matrix *Y, magma_queue_t queue)
 This routine computes Y = alpha * X + beta * Y on the GPU.
 
magma_int_t magma_cgecsrreimsplit (magma_c_matrix A, magma_c_matrix *ReA, magma_c_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_cgedensereimsplit (magma_c_matrix A, magma_c_matrix *ReA, magma_c_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_cgecsr5mv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t p, magmaFloatComplex alpha, magma_int_t sigma, magma_int_t bit_y_offset, magma_int_t bit_scansum_offset, magma_int_t num_packet, magmaUIndex_ptr dtile_ptr, magmaUIndex_ptr dtile_desc, magmaIndex_ptr dtile_desc_offset_ptr, magmaIndex_ptr dtile_desc_offset, magmaFloatComplex_ptr dcalibrator, magma_int_t tail_tile_start, magmaFloatComplex_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaFloatComplex_ptr dx, magmaFloatComplex beta, magmaFloatComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
 
magma_int_t magma_ccopyscale (magma_int_t n, magma_int_t k, magmaFloatComplex_ptr dr, magmaFloatComplex_ptr dv, magmaFloatComplex_ptr dskp, magma_queue_t queue)
 Computes the correction term of the pipelined GMRES according to P.
 
magma_int_t magma_scnrm2scale (magma_int_t m, magmaFloatComplex_ptr dr, magma_int_t lddr, magmaFloatComplex *drnorm, magma_queue_t queue)
 
magma_int_t magma_cjacobispmvupdate_bw (magma_int_t maxiter, magma_c_matrix A, magma_c_matrix t, magma_c_matrix b, magma_c_matrix d, magma_c_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_cjacobispmvupdateselect (magma_int_t maxiter, magma_int_t num_updates, magma_index_t *indices, magma_c_matrix A, magma_c_matrix t, magma_c_matrix b, magma_c_matrix d, magma_c_matrix tmp, magma_c_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_cmergeblockkrylov (magma_int_t num_rows, magma_int_t num_cols, magmaFloatComplex_ptr alpha, magmaFloatComplex_ptr p, magmaFloatComplex_ptr x, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_cbicgmerge1 (magma_int_t n, magmaFloatComplex_ptr dskp, magmaFloatComplex_ptr dv, magmaFloatComplex_ptr dr, magmaFloatComplex_ptr dp, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_cbicgmerge2 (magma_int_t n, magmaFloatComplex_ptr dskp, magmaFloatComplex_ptr dr, magmaFloatComplex_ptr dv, magmaFloatComplex_ptr ds, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_cbicgmerge3 (magma_int_t n, magmaFloatComplex_ptr dskp, magmaFloatComplex_ptr dp, magmaFloatComplex_ptr ds, magmaFloatComplex_ptr dt, magmaFloatComplex_ptr dx, magmaFloatComplex_ptr dr, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_cbicgmerge4 (magma_int_t type, magmaFloatComplex_ptr dskp, magma_queue_t queue)
 Performs some parameter operations for the BiCGSTAB with scalars on GPU.
 
magma_int_t magma_cbicgmerge_spmv1 (magma_c_matrix A, magmaFloatComplex_ptr dd1, magmaFloatComplex_ptr dd2, magmaFloatComplex_ptr dp, magmaFloatComplex_ptr dr, magmaFloatComplex_ptr dv, magmaFloatComplex_ptr dskp, magma_queue_t queue)
 Merges the first SpmV using CSR with the dot product and the computation of alpha.
 
magma_int_t magma_cbicgmerge_spmv2 (magma_c_matrix A, magmaFloatComplex_ptr dd1, magmaFloatComplex_ptr dd2, magmaFloatComplex_ptr ds, magmaFloatComplex_ptr dt, magmaFloatComplex_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_cbicgmerge_xrbeta (magma_int_t n, magmaFloatComplex_ptr dd1, magmaFloatComplex_ptr dd2, magmaFloatComplex_ptr drr, magmaFloatComplex_ptr dr, magmaFloatComplex_ptr dp, magmaFloatComplex_ptr ds, magmaFloatComplex_ptr dt, magmaFloatComplex_ptr dx, magmaFloatComplex_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_cbcsrswp (magma_int_t n, magma_int_t size_b, magma_int_t *ipiv, magmaFloatComplex_ptr dx, magma_queue_t queue)
 
magma_int_t magma_cbcsrtrsv (magma_uplo_t uplo, magma_int_t r_blocks, magma_int_t c_blocks, magma_int_t size_b, magmaFloatComplex_ptr dA, magma_index_t *blockinfo, magmaFloatComplex_ptr dx, magma_queue_t queue)
 
magma_int_t magma_cbcsrvalcpy (magma_int_t size_b, magma_int_t num_blocks, magma_int_t num_zero_blocks, magmaFloatComplex_ptr *dAval, magmaFloatComplex_ptr *dBval, magmaFloatComplex_ptr *dBval2, magma_queue_t queue)
 
magma_int_t magma_cbcsrluegemm (magma_int_t size_b, magma_int_t num_block_rows, magma_int_t kblocks, magmaFloatComplex_ptr *dA, magmaFloatComplex_ptr *dB, magmaFloatComplex_ptr *dC, magma_queue_t queue)
 
magma_int_t magma_cbcsrlupivloc (magma_int_t size_b, magma_int_t kblocks, magmaFloatComplex_ptr *dA, magma_int_t *ipiv, magma_queue_t queue)
 
magma_int_t magma_cbcsrblockinfo5 (magma_int_t lustep, magma_int_t num_blocks, magma_int_t c_blocks, magma_int_t size_b, magma_index_t *blockinfo, magmaFloatComplex_ptr dval, magmaFloatComplex_ptr *AII, magma_queue_t queue)
 
magma_int_t magma_cthrsholdselect (magma_int_t sampling, magma_int_t total_size, magma_int_t subset_size, magmaFloatComplex *val, float *thrs, magma_queue_t queue)
 
magma_int_t magma_dorderstatistics (double *val, magma_int_t length, magma_int_t k, magma_int_t r, double *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array.
 
magma_int_t magma_dorderstatistics_inc (double *val, magma_int_t length, magma_int_t k, magma_int_t inc, magma_int_t r, double *element, magma_queue_t queue)
 Approximates the k-th smallest element in an array by using order-statistics with step-size inc.
 
magma_int_t magma_dmorderstatistics (double *val, magma_index_t *col, magma_index_t *row, magma_int_t length, magma_int_t k, magma_int_t r, double *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.
 
magma_int_t magma_dpartition (double *a, magma_int_t size, magma_int_t pivot, magma_queue_t queue)
 
magma_int_t magma_dmedian5 (double *a, magma_queue_t queue)
 
magma_int_t magma_dselect (double *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_dselectrandom (double *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_ddomainoverlap (magma_index_t num_rows, magma_int_t *num_indices, magma_index_t *rowptr, magma_index_t *colidx, magma_index_t *x, magma_queue_t queue)
 Generates the update list.
 
magma_int_t magma_dvspread (magma_d_matrix *x, const char *filename, magma_queue_t queue)
 Reads in a sparse vector-block stored in COO format.
 
magma_int_t magma_ddiameter (magma_d_matrix *A, magma_queue_t queue)
 Computes the diameter of a sparse matrix and stores the value in diameter.
 
magma_int_t magma_dparilusetup (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the iterative ILU iteration.
 
magma_int_t magma_dparilu_gpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_dparilu_cpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_dparic_gpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_dparic_cpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_dparicsetup (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Prepares the IC preconditioner via the iterative IC iteration.
 
magma_int_t magma_dparicupdate (magma_d_matrix A, magma_d_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_dapplyiteric_l (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_dapplyiteric_r (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_dparilu_csr (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_dpariluupdate (magma_d_matrix A, magma_d_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_dparic_csr (magma_d_matrix A, magma_d_matrix A_CSR, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_dnonlinres (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *LU, real_Double_t *res, magma_queue_t queue)
 Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_dilures (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_dicres (magma_d_matrix A, magma_d_matrix C, magma_d_matrix CT, magma_d_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_dinitguess (magma_d_matrix A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 Computes an initial guess for the ParILU/ParIC.
 
magma_int_t magma_dinitrecursiveLU (magma_d_matrix A, magma_d_matrix *B, magma_queue_t queue)
 Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.
 
magma_int_t magma_dmLdiagadd (magma_d_matrix *L, magma_queue_t queue)
 Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.
 
magma_int_t magma_dmatrix_cup (magma_d_matrix A, magma_d_matrix B, magma_d_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_dmatrix_cup_gpu (magma_d_matrix A, magma_d_matrix B, magma_d_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_dmatrix_cap (magma_d_matrix A, magma_d_matrix B, magma_d_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being in both matrices: \(U = A \cap B\).
 
magma_int_t magma_dmatrix_negcap (magma_d_matrix A, magma_d_matrix B, magma_d_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of A but not of B.
 
magma_int_t magma_dmatrix_tril_negcap (magma_d_matrix A, magma_d_matrix B, magma_d_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of tril(A) but not of B.
 
magma_int_t magma_dmatrix_triu_negcap (magma_d_matrix A, magma_d_matrix B, magma_d_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being part of triu(A) but not of B.
 
magma_int_t magma_dmatrix_abssum (magma_d_matrix A, double *sum, magma_queue_t queue)
 Computes the sum of the absolute values in a matrix.
 
magma_int_t magma_dparilut_thrsrm (magma_int_t order, magma_d_matrix *A, double *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_dparilut_thrsrm_semilinked (magma_d_matrix *U, magma_d_matrix *UT, double *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller thrs from the matrix.
 
magma_int_t magma_dparilut_rmselected (magma_d_matrix R, magma_d_matrix *A, magma_queue_t queue)
 Removes a selected list of elements from the matrix.
 
magma_int_t magma_dparilut_selectoneperrow (magma_int_t order, magma_d_matrix *A, magma_d_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dparilut_selecttwoperrow (magma_int_t order, magma_d_matrix *A, magma_d_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dparilut_selectoneperrowthrs_lower (magma_d_matrix L, magma_d_matrix U, magma_d_matrix *A, double rtol, magma_d_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dparilut_selectoneperrowthrs_upper (magma_d_matrix L, magma_d_matrix U, magma_d_matrix *A, double rtol, magma_d_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dparilut_selectonepercol (magma_int_t order, magma_d_matrix *A, magma_d_matrix *oneA, magma_queue_t queue)
 
magma_int_t magma_dparilut_transpose_select_one (magma_d_matrix A, magma_d_matrix *B, magma_queue_t queue)
 This is a special routine with very limited scope.
 
magma_int_t magma_dparilut_insert_LU (magma_int_t num_rm, magma_index_t *rm_loc, magma_index_t *rm_loc2, magma_d_matrix *LU_new, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 
magma_int_t magma_dparilut_set_thrs (magma_int_t num_rm, magma_d_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 
magma_int_t magma_dparilut_set_approx_thrs (magma_int_t num_rm, magma_d_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_dparilut_set_thrs_randomselect (magma_int_t num_rm, magma_d_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_dparilut_set_thrs_randomselect_approx (magma_int_t num_rm, magma_d_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_dparilut_set_thrs_randomselect_factors (magma_int_t num_rm, magma_d_matrix *L, magma_d_matrix *U, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_dparilut_set_exact_thrs (magma_int_t num_rm, magma_d_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_dparilut_set_approx_thrs_inc (magma_int_t num_rm, magma_d_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_dparilut_LU_approx_thrs (magma_int_t num_rm, magma_d_matrix *L, magma_d_matrix *U, magma_int_t order, double *thrs, magma_queue_t queue)
 
magma_int_t magma_dparilut_reorder (magma_d_matrix *LU, magma_queue_t queue)
 This routine reorders the matrix (inplace) for easier access.
 
magma_int_t magma_dparict_sweep (magma_d_matrix *A, magma_d_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_dparilut_zero (magma_d_matrix *A, magma_queue_t queue)
 
magma_int_t magma_dparilu_sweep (magma_d_matrix A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 This function does one asynchronous ParILU sweep.
 
magma_int_t magma_dparilu_sweep_sync (magma_d_matrix A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_dparic_sweep (magma_d_matrix A, magma_d_matrix *L, magma_queue_t queue)
 This function does one asynchronous ParILU sweep (symmetric case).
 
magma_int_t magma_dparic_sweep_sync (magma_d_matrix A, magma_d_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep (symmetric case).
 
magma_int_t magma_dparict_sweep_sync (magma_d_matrix *A, magma_d_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_dparilut_sweep_sync (magma_d_matrix *A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_dparilut_sweep_gpu (magma_d_matrix *A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_dparilut_residuals_gpu (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *R, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_dthrsholdrm_gpu (magma_int_t order, magma_d_matrix *A, double *thrs, magma_queue_t queue)
 
magma_int_t magma_dget_row_ptr (const magma_int_t num_rows, magma_int_t *nnz, const magma_index_t *rowidx, magma_index_t *rowptr, magma_queue_t queue)
 
magma_int_t magma_dparilut_align_residuals (magma_d_matrix L, magma_d_matrix U, magma_d_matrix *Lnew, magma_d_matrix *Unew, magma_queue_t queue)
 This function scales the residuals of a lower triangular factor L with the diagonal of U.
 
magma_int_t magma_dparilut_preselect_scale (magma_d_matrix *L, magma_d_matrix *oneL, magma_d_matrix *U, magma_d_matrix *oneU, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dparilut_thrsrm_U (magma_int_t order, magma_d_matrix L, magma_d_matrix *A, double *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_dparilut_residuals (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *L_new, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_dparilut_residuals_transpose (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_dparilut_residuals_semilinked (magma_d_matrix A, magma_d_matrix L, magma_d_matrix US, magma_d_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_dparilut_sweep_semilinked (magma_d_matrix *A, magma_d_matrix *L, magma_d_matrix *US, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_dparilut_sweep_list (magma_d_matrix *A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_dparilut_residuals_list (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_dparilut_sweep_linkedlist (magma_d_matrix *A, magma_d_matrix *L, magma_d_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_dparilut_residuals_linkedlist (magma_d_matrix A, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_dparilut_colmajor (magma_d_matrix A, magma_d_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_dparilut_colmajorup (magma_d_matrix A, magma_d_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_dparict (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner.
 
magma_int_t magma_dparict_cpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.
 
magma_int_t magma_dparilut (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete LU preconditioner.
 
magma_int_t magma_dparilut_cpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_dparilut_gpu (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_dparilut_gpu_nodp (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_dparilut_insert (magma_int_t *num_rmL, magma_int_t *num_rmU, magma_index_t *rm_locL, magma_index_t *rm_locU, magma_d_matrix *L_new, magma_d_matrix *U_new, magma_d_matrix *L, magma_d_matrix *U, magma_d_matrix *UR, magma_queue_t queue)
 Inserts for the iterative dynamic ILU an new element in the (empty) place.
 
magma_int_t magma_dparilut_create_collinkedlist (magma_d_matrix A, magma_d_matrix *B, magma_queue_t queue)
 For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.
 
magma_int_t magma_dparilut_candidates (magma_d_matrix L0, magma_d_matrix U0, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *L_new, magma_d_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_dparilut_candidates_gpu (magma_d_matrix L0, magma_d_matrix U0, magma_d_matrix L, magma_d_matrix U, magma_d_matrix *L_new, magma_d_matrix *U_new, magma_queue_t queue)
 This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.
 
magma_int_t magma_dparict_candidates (magma_d_matrix L0, magma_d_matrix L, magma_d_matrix LT, magma_d_matrix *L_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_dparilut_candidates_semilinked (magma_d_matrix L0, magma_d_matrix U0, magma_d_matrix L, magma_d_matrix U, magma_d_matrix UT, magma_d_matrix *L_new, magma_d_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_dparilut_candidates_linkedlist (magma_d_matrix L0, magma_d_matrix U0, magma_d_matrix L, magma_d_matrix U, magma_d_matrix UR, magma_d_matrix *L_new, magma_d_matrix *U_new, magma_queue_t queue)
 
magma_int_t magma_dparilut_rm_thrs (double *thrs, magma_int_t *num_rm, magma_d_matrix *LU, magma_d_matrix *LU_new, magma_index_t *rm_loc, magma_queue_t queue)
 This routine removes matrix entries from the structure that are smaller than the threshold.
 
magma_int_t magma_dparilut_count (magma_d_matrix L, magma_int_t *num, magma_queue_t queue)
 This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.
 
magma_int_t magma_dparilut_randlist (magma_d_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_dparilut_select_candidates_L (magma_int_t *num_rm, magma_index_t *rm_loc, magma_d_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_dparilut_select_candidates_U (magma_int_t *num_rm, magma_index_t *rm_loc, magma_d_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_dparilut_preselect (magma_int_t order, magma_d_matrix *A, magma_d_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dpreselect_gpu (magma_int_t order, magma_d_matrix *A, magma_d_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_dsampleselect (magma_int_t total_size, magma_int_t subset_size, double *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_dsampleselect_approx (magma_int_t total_size, magma_int_t subset_size, double *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_dsampleselect_nodp (magma_int_t total_size, magma_int_t subset_size, double *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_dsampleselect_approx_nodp (magma_int_t total_size, magma_int_t subset_size, double *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_dmprepare_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix L, magma_d_matrix LC, magma_index_t *sizes, magma_index_t *locations, double *trisystems, double *rhs, magma_queue_t queue)
 Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.
 
magma_int_t magma_dmtrisolve_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix L, magma_d_matrix LC, magma_index_t *sizes, magma_index_t *locations, double *trisystems, double *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_dmbackinsert_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix *M, magma_index_t *sizes, magma_index_t *locations, double *trisystems, double *rhs, magma_queue_t queue)
 Inserts the values into the preconditioner matrix.
 
magma_int_t magma_dmprepare_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix L, magma_d_matrix LC, magma_index_t *sizes, magma_index_t *locations, double *trisystems, double *rhs, magma_queue_t queue)
 
magma_int_t magma_dmtrisolve_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix L, magma_d_matrix LC, magma_index_t *sizes, magma_index_t *locations, double *trisystems, double *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_dmbackinsert_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix *M, magma_index_t *sizes, magma_index_t *locations, double *trisystems, double *rhs, magma_queue_t queue)
 
magma_int_t magma_diluisaisetup_lower (magma_d_matrix L, magma_d_matrix S, magma_d_matrix *ISAIL, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_diluisaisetup_upper (magma_d_matrix U, magma_d_matrix S, magma_d_matrix *ISAIU, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_dicisaisetup (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_disai_l (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_disai_r (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_disai_l_t (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_disai_r_t (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_dmiluisai_sizecheck (magma_d_matrix A, magma_index_t batchsize, magma_index_t *maxsize, magma_queue_t queue)
 
magma_int_t magma_dgeisai_maxblock (magma_d_matrix L, magma_d_matrix *MT, magma_queue_t queue)
 This routine maximizes the pattern for the ISAI preconditioner.
 
magma_int_t magma_disai_generator_regs (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_d_matrix L, magma_d_matrix *M, magma_queue_t queue)
 This routine is designet to combine all kernels into one.
 
magma_int_t magma_dmsupernodal (magma_int_t *max_bs, magma_d_matrix A, magma_d_matrix *S, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with block-size bs.
 
magma_int_t magma_dmvarsizeblockstruct (magma_int_t n, magma_int_t *bs, magma_int_t bsl, magma_uplo_t uplotype, magma_d_matrix *A, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with variable block-size.
 
magma_int_t magma_dtfqmr_unrolled (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a real matrix A.
 
magma_int_t magma_dbicgstab_merge2 (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_dbicgstab_merge3 (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_djacobidomainoverlap (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.
 
magma_int_t magma_dbaiter (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_d_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_dbaiter_overlap (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_d_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_dftjacobicontractions (magma_d_matrix xkm2, magma_d_matrix xkm1, magma_d_matrix xk, magma_d_matrix *z, magma_d_matrix *c, magma_queue_t queue)
 Computes the contraction coefficients c_i:
 
magma_int_t magma_dftjacobiupdatecheck (double delta, magma_d_matrix *xold, magma_d_matrix *xnew, magma_d_matrix *zprev, magma_d_matrix c, magma_int_t *flag_t, magma_int_t *flag_fp, magma_queue_t queue)
 Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.
 
magma_int_t magma_diterref (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_d_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.
 
magma_int_t magma_djacobiiter_sys (magma_d_matrix A, magma_d_matrix b, magma_d_matrix d, magma_d_matrix t, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_dftjacobi (magma_d_matrix A, magma_d_matrix b, magma_d_matrix *x, magma_d_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_dilut_saad (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_dilut_saad_apply (magma_d_matrix b, magma_d_matrix *x, magma_d_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_dcustomilusetup (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete LU preconditioner.
 
magma_int_t magma_dcustomicsetup (magma_d_matrix A, magma_d_matrix b, magma_d_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete Cholesky preconditioner.
 
magma_int_t magma_dbajac_csr (magma_int_t localiters, magma_d_matrix D, magma_d_matrix R, magma_d_matrix b, magma_d_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.
 
magma_int_t magma_dbajac_csr_overlap (magma_int_t localiters, magma_int_t matrices, magma_int_t overlap, magma_d_matrix *D, magma_d_matrix *R, magma_d_matrix b, magma_d_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.
 
magma_int_t magma_dmlumerge (magma_d_matrix L, magma_d_matrix U, magma_d_matrix *A, magma_queue_t queue)
 Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.
 
magma_int_t magma_dgeaxpy (double alpha, magma_d_matrix X, double beta, magma_d_matrix *Y, magma_queue_t queue)
 This routine computes Y = alpha * X + beta * Y on the GPU.
 
magma_int_t magma_dgecsrreimsplit (magma_d_matrix A, magma_d_matrix *ReA, magma_d_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_dgedensereimsplit (magma_d_matrix A, magma_d_matrix *ReA, magma_d_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_dgecsr5mv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t p, double alpha, magma_int_t sigma, magma_int_t bit_y_offset, magma_int_t bit_scansum_offset, magma_int_t num_packet, magmaUIndex_ptr dtile_ptr, magmaUIndex_ptr dtile_desc, magmaIndex_ptr dtile_desc_offset_ptr, magmaIndex_ptr dtile_desc_offset, magmaDouble_ptr dcalibrator, magma_int_t tail_tile_start, magmaDouble_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDouble_ptr dx, double beta, magmaDouble_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
 
magma_int_t magma_dcopyscale (magma_int_t n, magma_int_t k, magmaDouble_ptr dr, magmaDouble_ptr dv, magmaDouble_ptr dskp, magma_queue_t queue)
 Computes the correction term of the pipelined GMRES according to P.
 
magma_int_t magma_dnrm2scale (magma_int_t m, magmaDouble_ptr dr, magma_int_t lddr, double *drnorm, magma_queue_t queue)
 
magma_int_t magma_djacobispmvupdate_bw (magma_int_t maxiter, magma_d_matrix A, magma_d_matrix t, magma_d_matrix b, magma_d_matrix d, magma_d_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_djacobispmvupdateselect (magma_int_t maxiter, magma_int_t num_updates, magma_index_t *indices, magma_d_matrix A, magma_d_matrix t, magma_d_matrix b, magma_d_matrix d, magma_d_matrix tmp, magma_d_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_dmergeblockkrylov (magma_int_t num_rows, magma_int_t num_cols, magmaDouble_ptr alpha, magmaDouble_ptr p, magmaDouble_ptr x, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_dbicgmerge1 (magma_int_t n, magmaDouble_ptr dskp, magmaDouble_ptr dv, magmaDouble_ptr dr, magmaDouble_ptr dp, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_dbicgmerge2 (magma_int_t n, magmaDouble_ptr dskp, magmaDouble_ptr dr, magmaDouble_ptr dv, magmaDouble_ptr ds, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_dbicgmerge3 (magma_int_t n, magmaDouble_ptr dskp, magmaDouble_ptr dp, magmaDouble_ptr ds, magmaDouble_ptr dt, magmaDouble_ptr dx, magmaDouble_ptr dr, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_dbicgmerge4 (magma_int_t type, magmaDouble_ptr dskp, magma_queue_t queue)
 Performs some parameter operations for the BiCGSTAB with scalars on GPU.
 
magma_int_t magma_dbicgmerge_spmv1 (magma_d_matrix A, magmaDouble_ptr dd1, magmaDouble_ptr dd2, magmaDouble_ptr dp, magmaDouble_ptr dr, magmaDouble_ptr dv, magmaDouble_ptr dskp, magma_queue_t queue)
 Merges the first SpmV using CSR with the dot product and the computation of alpha.
 
magma_int_t magma_dbicgmerge_spmv2 (magma_d_matrix A, magmaDouble_ptr dd1, magmaDouble_ptr dd2, magmaDouble_ptr ds, magmaDouble_ptr dt, magmaDouble_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_dbicgmerge_xrbeta (magma_int_t n, magmaDouble_ptr dd1, magmaDouble_ptr dd2, magmaDouble_ptr drr, magmaDouble_ptr dr, magmaDouble_ptr dp, magmaDouble_ptr ds, magmaDouble_ptr dt, magmaDouble_ptr dx, magmaDouble_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_dbcsrswp (magma_int_t n, magma_int_t size_b, magma_int_t *ipiv, magmaDouble_ptr dx, magma_queue_t queue)
 
magma_int_t magma_dbcsrtrsv (magma_uplo_t uplo, magma_int_t r_blocks, magma_int_t c_blocks, magma_int_t size_b, magmaDouble_ptr dA, magma_index_t *blockinfo, magmaDouble_ptr dx, magma_queue_t queue)
 
magma_int_t magma_dbcsrvalcpy (magma_int_t size_b, magma_int_t num_blocks, magma_int_t num_zero_blocks, magmaDouble_ptr *dAval, magmaDouble_ptr *dBval, magmaDouble_ptr *dBval2, magma_queue_t queue)
 
magma_int_t magma_dbcsrluegemm (magma_int_t size_b, magma_int_t num_block_rows, magma_int_t kblocks, magmaDouble_ptr *dA, magmaDouble_ptr *dB, magmaDouble_ptr *dC, magma_queue_t queue)
 
magma_int_t magma_dbcsrlupivloc (magma_int_t size_b, magma_int_t kblocks, magmaDouble_ptr *dA, magma_int_t *ipiv, magma_queue_t queue)
 
magma_int_t magma_dbcsrblockinfo5 (magma_int_t lustep, magma_int_t num_blocks, magma_int_t c_blocks, magma_int_t size_b, magma_index_t *blockinfo, magmaDouble_ptr dval, magmaDouble_ptr *AII, magma_queue_t queue)
 
magma_int_t magma_dthrsholdselect (magma_int_t sampling, magma_int_t total_size, magma_int_t subset_size, double *val, double *thrs, magma_queue_t queue)
 
magma_int_t magma_vector_dlag2s (magma_d_matrix x, magma_s_matrix *y, magma_queue_t queue)
 
magma_int_t magma_sparse_matrix_dlag2s (magma_d_matrix A, magma_s_matrix *B, magma_queue_t queue)
 
magma_int_t magma_vector_slag2d (magma_s_matrix x, magma_d_matrix *y, magma_queue_t queue)
 
magma_int_t magma_sparse_matrix_slag2d (magma_s_matrix A, magma_d_matrix *B, magma_queue_t queue)
 
void magmablas_dlag2s_sparse (magma_int_t M, magma_int_t N, magmaDouble_const_ptr dA, magma_int_t lda, magmaFloat_ptr dSA, magma_int_t ldsa, magma_queue_t queue, magma_int_t *info)
 
void magmablas_slag2d_sparse (magma_int_t M, magma_int_t N, magmaFloat_const_ptr dSA, magma_int_t ldsa, magmaDouble_ptr dA, magma_int_t lda, magma_queue_t queue, magma_int_t *info)
 
void magma_dlag2s_CSR_DENSE (magma_d_matrix A, magma_s_matrix *B, magma_queue_t queue)
 
void magma_dlag2s_CSR_DENSE_alloc (magma_d_matrix A, magma_s_matrix *B, magma_queue_t queue)
 
void magma_dlag2s_CSR_DENSE_convert (magma_d_matrix A, magma_s_matrix *B, magma_queue_t queue)
 
magma_int_t magma_dsgecsrmv_mixed_prec (magma_trans_t transA, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr ddiagval, magmaFloat_ptr doffdiagval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDouble_ptr dx, double beta, magmaDouble_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
 
int mm_write_mtx_crd (char fname[], magma_index_t M, magma_index_t N, magma_index_t nz, magma_index_t I[], magma_index_t J[], double val[], MM_typecode matcode)
 
int mm_read_mtx_crd_data (FILE *f, magma_index_t M, magma_index_t N, magma_index_t nz, magma_index_t I[], magma_index_t J[], double val[], MM_typecode matcode)
 
int mm_read_mtx_crd_entry (FILE *f, magma_index_t *I, magma_index_t *J, double *real, double *img, MM_typecode matcode)
 
int mm_read_unsymmetric_sparse (const char *fname, magma_index_t *M_, magma_index_t *N_, magma_index_t *nz_, double **val_, magma_index_t **I_, magma_index_t **J_)
 
magma_int_t magma_sorderstatistics (float *val, magma_int_t length, magma_int_t k, magma_int_t r, float *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array.
 
magma_int_t magma_sorderstatistics_inc (float *val, magma_int_t length, magma_int_t k, magma_int_t inc, magma_int_t r, float *element, magma_queue_t queue)
 Approximates the k-th smallest element in an array by using order-statistics with step-size inc.
 
magma_int_t magma_smorderstatistics (float *val, magma_index_t *col, magma_index_t *row, magma_int_t length, magma_int_t k, magma_int_t r, float *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.
 
magma_int_t magma_spartition (float *a, magma_int_t size, magma_int_t pivot, magma_queue_t queue)
 
magma_int_t magma_smedian5 (float *a, magma_queue_t queue)
 
magma_int_t magma_sselect (float *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_sselectrandom (float *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_sdomainoverlap (magma_index_t num_rows, magma_int_t *num_indices, magma_index_t *rowptr, magma_index_t *colidx, magma_index_t *x, magma_queue_t queue)
 Generates the update list.
 
magma_int_t magma_svspread (magma_s_matrix *x, const char *filename, magma_queue_t queue)
 Reads in a sparse vector-block stored in COO format.
 
magma_int_t magma_sdiameter (magma_s_matrix *A, magma_queue_t queue)
 Computes the diameter of a sparse matrix and stores the value in diameter.
 
magma_int_t magma_sparilusetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the iterative ILU iteration.
 
magma_int_t magma_sparilu_gpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_sparilu_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_sparic_gpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_sparic_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_sparicsetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Prepares the IC preconditioner via the iterative IC iteration.
 
magma_int_t magma_sparicupdate (magma_s_matrix A, magma_s_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_sapplyiteric_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_sapplyiteric_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_sparilu_csr (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_spariluupdate (magma_s_matrix A, magma_s_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_sparic_csr (magma_s_matrix A, magma_s_matrix A_CSR, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_snonlinres (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *LU, real_Double_t *res, magma_queue_t queue)
 Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_silures (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_sicres (magma_s_matrix A, magma_s_matrix C, magma_s_matrix CT, magma_s_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_sinitguess (magma_s_matrix A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 Computes an initial guess for the ParILU/ParIC.
 
magma_int_t magma_sinitrecursiveLU (magma_s_matrix A, magma_s_matrix *B, magma_queue_t queue)
 Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.
 
magma_int_t magma_smLdiagadd (magma_s_matrix *L, magma_queue_t queue)
 Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.
 
magma_int_t magma_smatrix_cup (magma_s_matrix A, magma_s_matrix B, magma_s_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_smatrix_cup_gpu (magma_s_matrix A, magma_s_matrix B, magma_s_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_smatrix_cap (magma_s_matrix A, magma_s_matrix B, magma_s_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being in both matrices: \(U = A \cap B\).
 
magma_int_t magma_smatrix_negcap (magma_s_matrix A, magma_s_matrix B, magma_s_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of A but not of B.
 
magma_int_t magma_smatrix_tril_negcap (magma_s_matrix A, magma_s_matrix B, magma_s_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of tril(A) but not of B.
 
magma_int_t magma_smatrix_triu_negcap (magma_s_matrix A, magma_s_matrix B, magma_s_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being part of triu(A) but not of B.
 
magma_int_t magma_smatrix_abssum (magma_s_matrix A, float *sum, magma_queue_t queue)
 Computes the sum of the absolute values in a matrix.
 
magma_int_t magma_sparilut_thrsrm (magma_int_t order, magma_s_matrix *A, float *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_sparilut_thrsrm_semilinked (magma_s_matrix *U, magma_s_matrix *UT, float *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller thrs from the matrix.
 
magma_int_t magma_sparilut_rmselected (magma_s_matrix R, magma_s_matrix *A, magma_queue_t queue)
 Removes a selected list of elements from the matrix.
 
magma_int_t magma_sparilut_selectoneperrow (magma_int_t order, magma_s_matrix *A, magma_s_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_sparilut_selecttwoperrow (magma_int_t order, magma_s_matrix *A, magma_s_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_sparilut_selectoneperrowthrs_lower (magma_s_matrix L, magma_s_matrix U, magma_s_matrix *A, float rtol, magma_s_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_sparilut_selectoneperrowthrs_upper (magma_s_matrix L, magma_s_matrix U, magma_s_matrix *A, float rtol, magma_s_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_sparilut_selectonepercol (magma_int_t order, magma_s_matrix *A, magma_s_matrix *oneA, magma_queue_t queue)
 
magma_int_t magma_sparilut_transpose_select_one (magma_s_matrix A, magma_s_matrix *B, magma_queue_t queue)
 This is a special routine with very limited scope.
 
magma_int_t magma_sparilut_insert_LU (magma_int_t num_rm, magma_index_t *rm_loc, magma_index_t *rm_loc2, magma_s_matrix *LU_new, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 
magma_int_t magma_sparilut_set_thrs (magma_int_t num_rm, magma_s_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 
magma_int_t magma_sparilut_set_approx_thrs (magma_int_t num_rm, magma_s_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_sparilut_set_thrs_randomselect (magma_int_t num_rm, magma_s_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_sparilut_set_thrs_randomselect_approx (magma_int_t num_rm, magma_s_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_sparilut_set_thrs_randomselect_factors (magma_int_t num_rm, magma_s_matrix *L, magma_s_matrix *U, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_sparilut_set_exact_thrs (magma_int_t num_rm, magma_s_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_sparilut_set_approx_thrs_inc (magma_int_t num_rm, magma_s_matrix *LU, magma_int_t order, float *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_sparilut_LU_approx_thrs (magma_int_t num_rm, magma_s_matrix *L, magma_s_matrix *U, magma_int_t order, float *thrs, magma_queue_t queue)
 
magma_int_t magma_sparilut_reorder (magma_s_matrix *LU, magma_queue_t queue)
 This routine reorders the matrix (inplace) for easier access.
 
magma_int_t magma_sparict_sweep (magma_s_matrix *A, magma_s_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_sparilut_zero (magma_s_matrix *A, magma_queue_t queue)
 
magma_int_t magma_sparilu_sweep (magma_s_matrix A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 This function does one asynchronous ParILU sweep.
 
magma_int_t magma_sparilu_sweep_sync (magma_s_matrix A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_sparic_sweep (magma_s_matrix A, magma_s_matrix *L, magma_queue_t queue)
 This function does one asynchronous ParILU sweep (symmetric case).
 
magma_int_t magma_sparic_sweep_sync (magma_s_matrix A, magma_s_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep (symmetric case).
 
magma_int_t magma_sparict_sweep_sync (magma_s_matrix *A, magma_s_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_sparilut_sweep_sync (magma_s_matrix *A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_sparilut_sweep_gpu (magma_s_matrix *A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_sparilut_residuals_gpu (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *R, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_sthrsholdrm_gpu (magma_int_t order, magma_s_matrix *A, float *thrs, magma_queue_t queue)
 
magma_int_t magma_sget_row_ptr (const magma_int_t num_rows, magma_int_t *nnz, const magma_index_t *rowidx, magma_index_t *rowptr, magma_queue_t queue)
 
magma_int_t magma_sparilut_align_residuals (magma_s_matrix L, magma_s_matrix U, magma_s_matrix *Lnew, magma_s_matrix *Unew, magma_queue_t queue)
 This function scales the residuals of a lower triangular factor L with the diagonal of U.
 
magma_int_t magma_sparilut_preselect_scale (magma_s_matrix *L, magma_s_matrix *oneL, magma_s_matrix *U, magma_s_matrix *oneU, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_sparilut_thrsrm_U (magma_int_t order, magma_s_matrix L, magma_s_matrix *A, float *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_sparilut_residuals (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *L_new, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_sparilut_residuals_transpose (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_sparilut_residuals_semilinked (magma_s_matrix A, magma_s_matrix L, magma_s_matrix US, magma_s_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_sparilut_sweep_semilinked (magma_s_matrix *A, magma_s_matrix *L, magma_s_matrix *US, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_sparilut_sweep_list (magma_s_matrix *A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_sparilut_residuals_list (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_sparilut_sweep_linkedlist (magma_s_matrix *A, magma_s_matrix *L, magma_s_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_sparilut_residuals_linkedlist (magma_s_matrix A, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_sparilut_colmajor (magma_s_matrix A, magma_s_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_sparilut_colmajorup (magma_s_matrix A, magma_s_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_sparict (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner.
 
magma_int_t magma_sparict_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.
 
magma_int_t magma_sparilut (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete LU preconditioner.
 
magma_int_t magma_sparilut_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_sparilut_gpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_sparilut_gpu_nodp (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_sparilut_insert (magma_int_t *num_rmL, magma_int_t *num_rmU, magma_index_t *rm_locL, magma_index_t *rm_locU, magma_s_matrix *L_new, magma_s_matrix *U_new, magma_s_matrix *L, magma_s_matrix *U, magma_s_matrix *UR, magma_queue_t queue)
 Inserts for the iterative dynamic ILU an new element in the (empty) place.
 
magma_int_t magma_sparilut_create_collinkedlist (magma_s_matrix A, magma_s_matrix *B, magma_queue_t queue)
 For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.
 
magma_int_t magma_sparilut_candidates (magma_s_matrix L0, magma_s_matrix U0, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *L_new, magma_s_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_sparilut_candidates_gpu (magma_s_matrix L0, magma_s_matrix U0, magma_s_matrix L, magma_s_matrix U, magma_s_matrix *L_new, magma_s_matrix *U_new, magma_queue_t queue)
 This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.
 
magma_int_t magma_sparict_candidates (magma_s_matrix L0, magma_s_matrix L, magma_s_matrix LT, magma_s_matrix *L_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_sparilut_candidates_semilinked (magma_s_matrix L0, magma_s_matrix U0, magma_s_matrix L, magma_s_matrix U, magma_s_matrix UT, magma_s_matrix *L_new, magma_s_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_sparilut_candidates_linkedlist (magma_s_matrix L0, magma_s_matrix U0, magma_s_matrix L, magma_s_matrix U, magma_s_matrix UR, magma_s_matrix *L_new, magma_s_matrix *U_new, magma_queue_t queue)
 
magma_int_t magma_sparilut_rm_thrs (float *thrs, magma_int_t *num_rm, magma_s_matrix *LU, magma_s_matrix *LU_new, magma_index_t *rm_loc, magma_queue_t queue)
 This routine removes matrix entries from the structure that are smaller than the threshold.
 
magma_int_t magma_sparilut_count (magma_s_matrix L, magma_int_t *num, magma_queue_t queue)
 This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.
 
magma_int_t magma_sparilut_randlist (magma_s_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_sparilut_select_candidates_L (magma_int_t *num_rm, magma_index_t *rm_loc, magma_s_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_sparilut_select_candidates_U (magma_int_t *num_rm, magma_index_t *rm_loc, magma_s_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_sparilut_preselect (magma_int_t order, magma_s_matrix *A, magma_s_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_spreselect_gpu (magma_int_t order, magma_s_matrix *A, magma_s_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_ssampleselect (magma_int_t total_size, magma_int_t subset_size, float *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_ssampleselect_approx (magma_int_t total_size, magma_int_t subset_size, float *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_ssampleselect_nodp (magma_int_t total_size, magma_int_t subset_size, float *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_ssampleselect_approx_nodp (magma_int_t total_size, magma_int_t subset_size, float *val, float *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_smprepare_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix L, magma_s_matrix LC, magma_index_t *sizes, magma_index_t *locations, float *trisystems, float *rhs, magma_queue_t queue)
 Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.
 
magma_int_t magma_smtrisolve_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix L, magma_s_matrix LC, magma_index_t *sizes, magma_index_t *locations, float *trisystems, float *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_smbackinsert_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix *M, magma_index_t *sizes, magma_index_t *locations, float *trisystems, float *rhs, magma_queue_t queue)
 Inserts the values into the preconditioner matrix.
 
magma_int_t magma_smprepare_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix L, magma_s_matrix LC, magma_index_t *sizes, magma_index_t *locations, float *trisystems, float *rhs, magma_queue_t queue)
 
magma_int_t magma_smtrisolve_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix L, magma_s_matrix LC, magma_index_t *sizes, magma_index_t *locations, float *trisystems, float *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_smbackinsert_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix *M, magma_index_t *sizes, magma_index_t *locations, float *trisystems, float *rhs, magma_queue_t queue)
 
magma_int_t magma_siluisaisetup_lower (magma_s_matrix L, magma_s_matrix S, magma_s_matrix *ISAIL, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_siluisaisetup_upper (magma_s_matrix U, magma_s_matrix S, magma_s_matrix *ISAIU, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_sicisaisetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_sisai_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_sisai_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_sisai_l_t (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_sisai_r_t (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_smiluisai_sizecheck (magma_s_matrix A, magma_index_t batchsize, magma_index_t *maxsize, magma_queue_t queue)
 
magma_int_t magma_sgeisai_maxblock (magma_s_matrix L, magma_s_matrix *MT, magma_queue_t queue)
 This routine maximizes the pattern for the ISAI preconditioner.
 
magma_int_t magma_sisai_generator_regs (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_s_matrix L, magma_s_matrix *M, magma_queue_t queue)
 This routine is designet to combine all kernels into one.
 
magma_int_t magma_smsupernodal (magma_int_t *max_bs, magma_s_matrix A, magma_s_matrix *S, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with block-size bs.
 
magma_int_t magma_smvarsizeblockstruct (magma_int_t n, magma_int_t *bs, magma_int_t bsl, magma_uplo_t uplotype, magma_s_matrix *A, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with variable block-size.
 
magma_int_t magma_stfqmr_unrolled (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a real matrix A.
 
magma_int_t magma_sbicgstab_merge2 (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_sbicgstab_merge3 (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_sjacobidomainoverlap (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.
 
magma_int_t magma_sbaiter (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_s_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_sbaiter_overlap (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_s_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_sftjacobicontractions (magma_s_matrix xkm2, magma_s_matrix xkm1, magma_s_matrix xk, magma_s_matrix *z, magma_s_matrix *c, magma_queue_t queue)
 Computes the contraction coefficients c_i:
 
magma_int_t magma_sftjacobiupdatecheck (float delta, magma_s_matrix *xold, magma_s_matrix *xnew, magma_s_matrix *zprev, magma_s_matrix c, magma_int_t *flag_t, magma_int_t *flag_fp, magma_queue_t queue)
 Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.
 
magma_int_t magma_siterref (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_s_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.
 
magma_int_t magma_sjacobiiter_sys (magma_s_matrix A, magma_s_matrix b, magma_s_matrix d, magma_s_matrix t, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_sftjacobi (magma_s_matrix A, magma_s_matrix b, magma_s_matrix *x, magma_s_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_silut_saad (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_silut_saad_apply (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_scustomilusetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete LU preconditioner.
 
magma_int_t magma_scustomicsetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete Cholesky preconditioner.
 
magma_int_t magma_sbajac_csr (magma_int_t localiters, magma_s_matrix D, magma_s_matrix R, magma_s_matrix b, magma_s_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.
 
magma_int_t magma_sbajac_csr_overlap (magma_int_t localiters, magma_int_t matrices, magma_int_t overlap, magma_s_matrix *D, magma_s_matrix *R, magma_s_matrix b, magma_s_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.
 
magma_int_t magma_smlumerge (magma_s_matrix L, magma_s_matrix U, magma_s_matrix *A, magma_queue_t queue)
 Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.
 
magma_int_t magma_sgeaxpy (float alpha, magma_s_matrix X, float beta, magma_s_matrix *Y, magma_queue_t queue)
 This routine computes Y = alpha * X + beta * Y on the GPU.
 
magma_int_t magma_sgecsrreimsplit (magma_s_matrix A, magma_s_matrix *ReA, magma_s_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_sgedensereimsplit (magma_s_matrix A, magma_s_matrix *ReA, magma_s_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_sgecsr5mv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t p, float alpha, magma_int_t sigma, magma_int_t bit_y_offset, magma_int_t bit_scansum_offset, magma_int_t num_packet, magmaUIndex_ptr dtile_ptr, magmaUIndex_ptr dtile_desc, magmaIndex_ptr dtile_desc_offset_ptr, magmaIndex_ptr dtile_desc_offset, magmaFloat_ptr dcalibrator, magma_int_t tail_tile_start, magmaFloat_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaFloat_ptr dx, float beta, magmaFloat_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
 
magma_int_t magma_scopyscale (magma_int_t n, magma_int_t k, magmaFloat_ptr dr, magmaFloat_ptr dv, magmaFloat_ptr dskp, magma_queue_t queue)
 Computes the correction term of the pipelined GMRES according to P.
 
magma_int_t magma_snrm2scale (magma_int_t m, magmaFloat_ptr dr, magma_int_t lddr, float *drnorm, magma_queue_t queue)
 
magma_int_t magma_sjacobispmvupdate_bw (magma_int_t maxiter, magma_s_matrix A, magma_s_matrix t, magma_s_matrix b, magma_s_matrix d, magma_s_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_sjacobispmvupdateselect (magma_int_t maxiter, magma_int_t num_updates, magma_index_t *indices, magma_s_matrix A, magma_s_matrix t, magma_s_matrix b, magma_s_matrix d, magma_s_matrix tmp, magma_s_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_smergeblockkrylov (magma_int_t num_rows, magma_int_t num_cols, magmaFloat_ptr alpha, magmaFloat_ptr p, magmaFloat_ptr x, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_sbicgmerge1 (magma_int_t n, magmaFloat_ptr dskp, magmaFloat_ptr dv, magmaFloat_ptr dr, magmaFloat_ptr dp, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_sbicgmerge2 (magma_int_t n, magmaFloat_ptr dskp, magmaFloat_ptr dr, magmaFloat_ptr dv, magmaFloat_ptr ds, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_sbicgmerge3 (magma_int_t n, magmaFloat_ptr dskp, magmaFloat_ptr dp, magmaFloat_ptr ds, magmaFloat_ptr dt, magmaFloat_ptr dx, magmaFloat_ptr dr, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_sbicgmerge4 (magma_int_t type, magmaFloat_ptr dskp, magma_queue_t queue)
 Performs some parameter operations for the BiCGSTAB with scalars on GPU.
 
magma_int_t magma_sbicgmerge_spmv1 (magma_s_matrix A, magmaFloat_ptr dd1, magmaFloat_ptr dd2, magmaFloat_ptr dp, magmaFloat_ptr dr, magmaFloat_ptr dv, magmaFloat_ptr dskp, magma_queue_t queue)
 Merges the first SpmV using CSR with the dot product and the computation of alpha.
 
magma_int_t magma_sbicgmerge_spmv2 (magma_s_matrix A, magmaFloat_ptr dd1, magmaFloat_ptr dd2, magmaFloat_ptr ds, magmaFloat_ptr dt, magmaFloat_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_sbicgmerge_xrbeta (magma_int_t n, magmaFloat_ptr dd1, magmaFloat_ptr dd2, magmaFloat_ptr drr, magmaFloat_ptr dr, magmaFloat_ptr dp, magmaFloat_ptr ds, magmaFloat_ptr dt, magmaFloat_ptr dx, magmaFloat_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_sbcsrswp (magma_int_t n, magma_int_t size_b, magma_int_t *ipiv, magmaFloat_ptr dx, magma_queue_t queue)
 
magma_int_t magma_sbcsrtrsv (magma_uplo_t uplo, magma_int_t r_blocks, magma_int_t c_blocks, magma_int_t size_b, magmaFloat_ptr dA, magma_index_t *blockinfo, magmaFloat_ptr dx, magma_queue_t queue)
 
magma_int_t magma_sbcsrvalcpy (magma_int_t size_b, magma_int_t num_blocks, magma_int_t num_zero_blocks, magmaFloat_ptr *dAval, magmaFloat_ptr *dBval, magmaFloat_ptr *dBval2, magma_queue_t queue)
 
magma_int_t magma_sbcsrluegemm (magma_int_t size_b, magma_int_t num_block_rows, magma_int_t kblocks, magmaFloat_ptr *dA, magmaFloat_ptr *dB, magmaFloat_ptr *dC, magma_queue_t queue)
 
magma_int_t magma_sbcsrlupivloc (magma_int_t size_b, magma_int_t kblocks, magmaFloat_ptr *dA, magma_int_t *ipiv, magma_queue_t queue)
 
magma_int_t magma_sbcsrblockinfo5 (magma_int_t lustep, magma_int_t num_blocks, magma_int_t c_blocks, magma_int_t size_b, magma_index_t *blockinfo, magmaFloat_ptr dval, magmaFloat_ptr *AII, magma_queue_t queue)
 
magma_int_t magma_sthrsholdselect (magma_int_t sampling, magma_int_t total_size, magma_int_t subset_size, float *val, float *thrs, magma_queue_t queue)
 
magma_int_t magma_zorderstatistics (magmaDoubleComplex *val, magma_int_t length, magma_int_t k, magma_int_t r, magmaDoubleComplex *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array.
 
magma_int_t magma_zorderstatistics_inc (magmaDoubleComplex *val, magma_int_t length, magma_int_t k, magma_int_t inc, magma_int_t r, magmaDoubleComplex *element, magma_queue_t queue)
 Approximates the k-th smallest element in an array by using order-statistics with step-size inc.
 
magma_int_t magma_zmorderstatistics (magmaDoubleComplex *val, magma_index_t *col, magma_index_t *row, magma_int_t length, magma_int_t k, magma_int_t r, magmaDoubleComplex *element, magma_queue_t queue)
 Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.
 
magma_int_t magma_zpartition (magmaDoubleComplex *a, magma_int_t size, magma_int_t pivot, magma_queue_t queue)
 
magma_int_t magma_zmedian5 (magmaDoubleComplex *a, magma_queue_t queue)
 
magma_int_t magma_zselect (magmaDoubleComplex *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_zselectrandom (magmaDoubleComplex *a, magma_int_t size, magma_int_t k, magma_queue_t queue)
 An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.
 
magma_int_t magma_zdomainoverlap (magma_index_t num_rows, magma_int_t *num_indices, magma_index_t *rowptr, magma_index_t *colidx, magma_index_t *x, magma_queue_t queue)
 Generates the update list.
 
magma_int_t magma_zvspread (magma_z_matrix *x, const char *filename, magma_queue_t queue)
 Reads in a sparse vector-block stored in COO format.
 
magma_int_t magma_zdiameter (magma_z_matrix *A, magma_queue_t queue)
 Computes the diameter of a sparse matrix and stores the value in diameter.
 
magma_int_t magma_zparilusetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the iterative ILU iteration.
 
magma_int_t magma_zparilu_gpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_zparilu_cpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an ILU(0) preconditer via fixed-point iterations.
 
magma_int_t magma_zparic_gpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_zparic_cpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an IC(0) preconditer via fixed-point iterations.
 
magma_int_t magma_zparicsetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the IC preconditioner via the iterative IC iteration.
 
magma_int_t magma_zparicupdate (magma_z_matrix A, magma_z_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_zapplyiteric_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_zapplyiteric_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the IC preconditioner via Jacobi.
 
magma_int_t magma_zparilu_csr (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_zpariluupdate (magma_z_matrix A, magma_z_preconditioner *precond, magma_int_t updates, magma_queue_t queue)
 Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).
 
magma_int_t magma_zparic_csr (magma_z_matrix A, magma_z_matrix A_CSR, magma_queue_t queue)
 This routine iteratively computes an incomplete LU factorization.
 
magma_int_t magma_znonlinres (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *LU, real_Double_t *res, magma_queue_t queue)
 Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_zilures (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_zicres (magma_z_matrix A, magma_z_matrix C, magma_z_matrix CT, magma_z_matrix *LU, real_Double_t *res, real_Double_t *nonlinres, magma_queue_t queue)
 Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.
 
magma_int_t magma_zinitguess (magma_z_matrix A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 Computes an initial guess for the ParILU/ParIC.
 
magma_int_t magma_zinitrecursiveLU (magma_z_matrix A, magma_z_matrix *B, magma_queue_t queue)
 Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.
 
magma_int_t magma_zmLdiagadd (magma_z_matrix *L, magma_queue_t queue)
 Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.
 
magma_int_t magma_zmatrix_cup (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_zmatrix_cup_gpu (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *U, magma_queue_t queue)
 Generates a matrix \(U = A \cup B\).
 
magma_int_t magma_zmatrix_cap (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being in both matrices: \(U = A \cap B\).
 
magma_int_t magma_zmatrix_negcap (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of A but not of B.
 
magma_int_t magma_zmatrix_tril_negcap (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *U, magma_queue_t queue)
 Generates a list of matrix entries being part of tril(A) but not of B.
 
magma_int_t magma_zmatrix_triu_negcap (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *U, magma_queue_t queue)
 Generates a matrix with entries being part of triu(A) but not of B.
 
magma_int_t magma_zmatrix_abssum (magma_z_matrix A, double *sum, magma_queue_t queue)
 Computes the sum of the absolute values in a matrix.
 
magma_int_t magma_zparilut_thrsrm (magma_int_t order, magma_z_matrix *A, double *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_zparilut_thrsrm_semilinked (magma_z_matrix *U, magma_z_matrix *UT, double *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller thrs from the matrix.
 
magma_int_t magma_zparilut_rmselected (magma_z_matrix R, magma_z_matrix *A, magma_queue_t queue)
 Removes a selected list of elements from the matrix.
 
magma_int_t magma_zparilut_selectoneperrow (magma_int_t order, magma_z_matrix *A, magma_z_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zparilut_selecttwoperrow (magma_int_t order, magma_z_matrix *A, magma_z_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zparilut_selectoneperrowthrs_lower (magma_z_matrix L, magma_z_matrix U, magma_z_matrix *A, double rtol, magma_z_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zparilut_selectoneperrowthrs_upper (magma_z_matrix L, magma_z_matrix U, magma_z_matrix *A, double rtol, magma_z_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zparilut_selectonepercol (magma_int_t order, magma_z_matrix *A, magma_z_matrix *oneA, magma_queue_t queue)
 
magma_int_t magma_zparilut_transpose_select_one (magma_z_matrix A, magma_z_matrix *B, magma_queue_t queue)
 This is a special routine with very limited scope.
 
magma_int_t magma_zparilut_insert_LU (magma_int_t num_rm, magma_index_t *rm_loc, magma_index_t *rm_loc2, magma_z_matrix *LU_new, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 
magma_int_t magma_zparilut_set_thrs (magma_int_t num_rm, magma_z_matrix *LU, magma_int_t order, magmaDoubleComplex *thrs, magma_queue_t queue)
 
magma_int_t magma_zparilut_set_approx_thrs (magma_int_t num_rm, magma_z_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_zparilut_set_thrs_randomselect (magma_int_t num_rm, magma_z_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_zparilut_set_thrs_randomselect_approx (magma_int_t num_rm, magma_z_matrix *LU, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_zparilut_set_thrs_randomselect_factors (magma_int_t num_rm, magma_z_matrix *L, magma_z_matrix *U, magma_int_t order, double *thrs, magma_queue_t queue)
 This routine approximates the threshold for removing num_rm elements.
 
magma_int_t magma_zparilut_set_exact_thrs (magma_int_t num_rm, magma_z_matrix *LU, magma_int_t order, magmaDoubleComplex *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_zparilut_set_approx_thrs_inc (magma_int_t num_rm, magma_z_matrix *LU, magma_int_t order, magmaDoubleComplex *thrs, magma_queue_t queue)
 This routine provides the exact threshold for removing num_rm elements.
 
magma_int_t magma_zparilut_LU_approx_thrs (magma_int_t num_rm, magma_z_matrix *L, magma_z_matrix *U, magma_int_t order, magmaDoubleComplex *thrs, magma_queue_t queue)
 
magma_int_t magma_zparilut_reorder (magma_z_matrix *LU, magma_queue_t queue)
 This routine reorders the matrix (inplace) for easier access.
 
magma_int_t magma_zparict_sweep (magma_z_matrix *A, magma_z_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_zparilut_zero (magma_z_matrix *A, magma_queue_t queue)
 
magma_int_t magma_zparilu_sweep (magma_z_matrix A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 This function does one asynchronous ParILU sweep.
 
magma_int_t magma_zparilu_sweep_sync (magma_z_matrix A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_zparic_sweep (magma_z_matrix A, magma_z_matrix *L, magma_queue_t queue)
 This function does one asynchronous ParILU sweep (symmetric case).
 
magma_int_t magma_zparic_sweep_sync (magma_z_matrix A, magma_z_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep (symmetric case).
 
magma_int_t magma_zparict_sweep_sync (magma_z_matrix *A, magma_z_matrix *L, magma_queue_t queue)
 This function does one synchronized ParILU sweep.
 
magma_int_t magma_zparilut_sweep_sync (magma_z_matrix *A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_zparilut_sweep_gpu (magma_z_matrix *A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 This function does an ParILUT sweep.
 
magma_int_t magma_zparilut_residuals_gpu (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *R, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_zthrsholdrm_gpu (magma_int_t order, magma_z_matrix *A, double *thrs, magma_queue_t queue)
 
magma_int_t magma_zget_row_ptr (const magma_int_t num_rows, magma_int_t *nnz, const magma_index_t *rowidx, magma_index_t *rowptr, magma_queue_t queue)
 
magma_int_t magma_zparilut_align_residuals (magma_z_matrix L, magma_z_matrix U, magma_z_matrix *Lnew, magma_z_matrix *Unew, magma_queue_t queue)
 This function scales the residuals of a lower triangular factor L with the diagonal of U.
 
magma_int_t magma_zparilut_preselect_scale (magma_z_matrix *L, magma_z_matrix *oneL, magma_z_matrix *U, magma_z_matrix *oneU, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zparilut_thrsrm_U (magma_int_t order, magma_z_matrix L, magma_z_matrix *A, double *thrs, magma_queue_t queue)
 Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.
 
magma_int_t magma_zparilut_residuals (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *L_new, magma_queue_t queue)
 This function computes the ILU residual in the locations included in the sparsity pattern of R.
 
magma_int_t magma_zparilut_residuals_transpose (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_zparilut_residuals_semilinked (magma_z_matrix A, magma_z_matrix L, magma_z_matrix US, magma_z_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_zparilut_sweep_semilinked (magma_z_matrix *A, magma_z_matrix *L, magma_z_matrix *US, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_zparilut_sweep_list (magma_z_matrix *A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_zparilut_residuals_list (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_zparilut_sweep_linkedlist (magma_z_matrix *A, magma_z_matrix *L, magma_z_matrix *U, magma_queue_t queue)
 This function does an ParILU sweep.
 
magma_int_t magma_zparilut_residuals_linkedlist (magma_z_matrix A, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *L_new, magma_queue_t queue)
 This function computes the residuals.
 
magma_int_t magma_zparilut_colmajor (magma_z_matrix A, magma_z_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_zparilut_colmajorup (magma_z_matrix A, magma_z_matrix *AC, magma_queue_t queue)
 This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.
 
magma_int_t magma_zparict (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner.
 
magma_int_t magma_zparict_cpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.
 
magma_int_t magma_zparilut (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete LU preconditioner.
 
magma_int_t magma_zparilut_cpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_zparilut_gpu (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_zparilut_gpu_nodp (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
 
magma_int_t magma_zparilut_insert (magma_int_t *num_rmL, magma_int_t *num_rmU, magma_index_t *rm_locL, magma_index_t *rm_locU, magma_z_matrix *L_new, magma_z_matrix *U_new, magma_z_matrix *L, magma_z_matrix *U, magma_z_matrix *UR, magma_queue_t queue)
 Inserts for the iterative dynamic ILU an new element in the (empty) place.
 
magma_int_t magma_zparilut_create_collinkedlist (magma_z_matrix A, magma_z_matrix *B, magma_queue_t queue)
 For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.
 
magma_int_t magma_zparilut_candidates (magma_z_matrix L0, magma_z_matrix U0, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *L_new, magma_z_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_zparilut_candidates_gpu (magma_z_matrix L0, magma_z_matrix U0, magma_z_matrix L, magma_z_matrix U, magma_z_matrix *L_new, magma_z_matrix *U_new, magma_queue_t queue)
 This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.
 
magma_int_t magma_zparict_candidates (magma_z_matrix L0, magma_z_matrix L, magma_z_matrix LT, magma_z_matrix *L_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_zparilut_candidates_semilinked (magma_z_matrix L0, magma_z_matrix U0, magma_z_matrix L, magma_z_matrix U, magma_z_matrix UT, magma_z_matrix *L_new, magma_z_matrix *U_new, magma_queue_t queue)
 This function identifies the candidates like they appear as ILU1 fill-in.
 
magma_int_t magma_zparilut_candidates_linkedlist (magma_z_matrix L0, magma_z_matrix U0, magma_z_matrix L, magma_z_matrix U, magma_z_matrix UR, magma_z_matrix *L_new, magma_z_matrix *U_new, magma_queue_t queue)
 
magma_int_t magma_zparilut_rm_thrs (double *thrs, magma_int_t *num_rm, magma_z_matrix *LU, magma_z_matrix *LU_new, magma_index_t *rm_loc, magma_queue_t queue)
 This routine removes matrix entries from the structure that are smaller than the threshold.
 
magma_int_t magma_zparilut_count (magma_z_matrix L, magma_int_t *num, magma_queue_t queue)
 This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.
 
magma_int_t magma_zparilut_randlist (magma_z_matrix *LU, magma_queue_t queue)
 
magma_int_t magma_zparilut_select_candidates_L (magma_int_t *num_rm, magma_index_t *rm_loc, magma_z_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_zparilut_select_candidates_U (magma_int_t *num_rm, magma_index_t *rm_loc, magma_z_matrix *L_new, magma_queue_t queue)
 Screens the new candidates for multiple elements in the same row.
 
magma_int_t magma_zparilut_preselect (magma_int_t order, magma_z_matrix *A, magma_z_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zpreselect_gpu (magma_int_t order, magma_z_matrix *A, magma_z_matrix *oneA, magma_queue_t queue)
 This function takes a list of candidates with residuals, and selects the largest in every row.
 
magma_int_t magma_zsampleselect (magma_int_t total_size, magma_int_t subset_size, magmaDoubleComplex *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_zsampleselect_approx (magma_int_t total_size, magma_int_t subset_size, magmaDoubleComplex *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_zsampleselect_nodp (magma_int_t total_size, magma_int_t subset_size, magmaDoubleComplex *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_zsampleselect_approx_nodp (magma_int_t total_size, magma_int_t subset_size, magmaDoubleComplex *val, double *thrs, magma_ptr *tmp_ptr, magma_int_t *tmp_size, magma_queue_t queue)
 This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_zmprepare_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix L, magma_z_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaDoubleComplex *trisystems, magmaDoubleComplex *rhs, magma_queue_t queue)
 Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.
 
magma_int_t magma_zmtrisolve_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix L, magma_z_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaDoubleComplex *trisystems, magmaDoubleComplex *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_zmbackinsert_batched (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix *M, magma_index_t *sizes, magma_index_t *locations, magmaDoubleComplex *trisystems, magmaDoubleComplex *rhs, magma_queue_t queue)
 Inserts the values into the preconditioner matrix.
 
magma_int_t magma_zmprepare_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix L, magma_z_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaDoubleComplex *trisystems, magmaDoubleComplex *rhs, magma_queue_t queue)
 This routine prepares the batch of small triangular systems that need to be solved for computing the ISAI preconditioner.
 
magma_int_t magma_zmtrisolve_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix L, magma_z_matrix LC, magma_index_t *sizes, magma_index_t *locations, magmaDoubleComplex *trisystems, magmaDoubleComplex *rhs, magma_queue_t queue)
 Does all triangular solves.
 
magma_int_t magma_zmbackinsert_batched_gpu (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix *M, magma_index_t *sizes, magma_index_t *locations, magmaDoubleComplex *trisystems, magmaDoubleComplex *rhs, magma_queue_t queue)
 Inserts the values into the preconditioner matrix.
 
magma_int_t magma_ziluisaisetup_lower (magma_z_matrix L, magma_z_matrix S, magma_z_matrix *ISAIL, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_ziluisaisetup_upper (magma_z_matrix U, magma_z_matrix S, magma_z_matrix *ISAIU, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_zicisaisetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares Incomplete Cholesky preconditioner using a sparse approximate inverse instead of sparse triangular solves.
 
magma_int_t magma_zisai_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_zisai_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_zisai_l_t (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner.
 
magma_int_t magma_zisai_r_t (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner.
 
magma_int_t magma_zmiluisai_sizecheck (magma_z_matrix A, magma_index_t batchsize, magma_index_t *maxsize, magma_queue_t queue)
 
magma_int_t magma_zgeisai_maxblock (magma_z_matrix L, magma_z_matrix *MT, magma_queue_t queue)
 This routine maximizes the pattern for the ISAI preconditioner.
 
magma_int_t magma_zisai_generator_regs (magma_uplo_t uplotype, magma_trans_t transtype, magma_diag_t diagtype, magma_z_matrix L, magma_z_matrix *M, magma_queue_t queue)
 This routine is designet to combine all kernels into one.
 
magma_int_t magma_zmsupernodal (magma_int_t *max_bs, magma_z_matrix A, magma_z_matrix *S, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with block-size bs.
 
magma_int_t magma_zmvarsizeblockstruct (magma_int_t n, magma_int_t *bs, magma_int_t bsl, magma_uplo_t uplotype, magma_z_matrix *A, magma_queue_t queue)
 Generates a block-diagonal sparsity pattern with variable block-size.
 
magma_int_t magma_ztfqmr_unrolled (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a complex matrix A.
 
magma_int_t magma_zbicgstab_merge2 (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_zbicgstab_merge3 (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a general matrix.
 
magma_int_t magma_zjacobidomainoverlap (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.
 
magma_int_t magma_zbaiter (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_z_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_zbaiter_overlap (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_z_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.
 
magma_int_t magma_zftjacobicontractions (magma_z_matrix xkm2, magma_z_matrix xkm1, magma_z_matrix xk, magma_z_matrix *z, magma_z_matrix *c, magma_queue_t queue)
 Computes the contraction coefficients c_i:
 
magma_int_t magma_zftjacobiupdatecheck (double delta, magma_z_matrix *xold, magma_z_matrix *xnew, magma_z_matrix *zprev, magma_z_matrix c, magma_int_t *flag_t, magma_int_t *flag_fp, magma_queue_t queue)
 Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.
 
magma_int_t magma_ziterref (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_z_preconditioner *precond_par, magma_queue_t queue)
 Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.
 
magma_int_t magma_zjacobiiter_sys (magma_z_matrix A, magma_z_matrix b, magma_z_matrix d, magma_z_matrix t, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_zftjacobi (magma_z_matrix A, magma_z_matrix b, magma_z_matrix *x, magma_z_solver_par *solver_par, magma_queue_t queue)
 Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.
 
magma_int_t magma_zilut_saad (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_zilut_saad_apply (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 
magma_int_t magma_zcustomilusetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete LU preconditioner.
 
magma_int_t magma_zcustomicsetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete Cholesky preconditioner.
 
magma_int_t magma_zbajac_csr (magma_int_t localiters, magma_z_matrix D, magma_z_matrix R, magma_z_matrix b, magma_z_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.
 
magma_int_t magma_zbajac_csr_overlap (magma_int_t localiters, magma_int_t matrices, magma_int_t overlap, magma_z_matrix *D, magma_z_matrix *R, magma_z_matrix b, magma_z_matrix *x, magma_queue_t queue)
 This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.
 
magma_int_t magma_zmlumerge (magma_z_matrix L, magma_z_matrix U, magma_z_matrix *A, magma_queue_t queue)
 Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.
 
magma_int_t magma_zgeaxpy (magmaDoubleComplex alpha, magma_z_matrix X, magmaDoubleComplex beta, magma_z_matrix *Y, magma_queue_t queue)
 This routine computes Y = alpha * X + beta * Y on the GPU.
 
magma_int_t magma_zgecsrreimsplit (magma_z_matrix A, magma_z_matrix *ReA, magma_z_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_zgedensereimsplit (magma_z_matrix A, magma_z_matrix *ReA, magma_z_matrix *ImA, magma_queue_t queue)
 This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.
 
magma_int_t magma_zgecsr5mv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t p, magmaDoubleComplex alpha, magma_int_t sigma, magma_int_t bit_y_offset, magma_int_t bit_scansum_offset, magma_int_t num_packet, magmaUIndex_ptr dtile_ptr, magmaUIndex_ptr dtile_desc, magmaIndex_ptr dtile_desc_offset_ptr, magmaIndex_ptr dtile_desc_offset, magmaDoubleComplex_ptr dcalibrator, magma_int_t tail_tile_start, magmaDoubleComplex_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
 
magma_int_t magma_zcopyscale (magma_int_t n, magma_int_t k, magmaDoubleComplex_ptr dr, magmaDoubleComplex_ptr dv, magmaDoubleComplex_ptr dskp, magma_queue_t queue)
 Computes the correction term of the pipelined GMRES according to P.
 
magma_int_t magma_dznrm2scale (magma_int_t m, magmaDoubleComplex_ptr dr, magma_int_t lddr, magmaDoubleComplex *drnorm, magma_queue_t queue)
 
magma_int_t magma_zjacobispmvupdate_bw (magma_int_t maxiter, magma_z_matrix A, magma_z_matrix t, magma_z_matrix b, magma_z_matrix d, magma_z_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_zjacobispmvupdateselect (magma_int_t maxiter, magma_int_t num_updates, magma_index_t *indices, magma_z_matrix A, magma_z_matrix t, magma_z_matrix b, magma_z_matrix d, magma_z_matrix tmp, magma_z_matrix *x, magma_queue_t queue)
 Updates the iteration vector x for the Jacobi iteration according to x=x+d.
 
magma_int_t magma_zmergeblockkrylov (magma_int_t num_rows, magma_int_t num_cols, magmaDoubleComplex_ptr alpha, magmaDoubleComplex_ptr p, magmaDoubleComplex_ptr x, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_zbicgmerge1 (magma_int_t n, magmaDoubleComplex_ptr dskp, magmaDoubleComplex_ptr dv, magmaDoubleComplex_ptr dr, magmaDoubleComplex_ptr dp, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_zbicgmerge2 (magma_int_t n, magmaDoubleComplex_ptr dskp, magmaDoubleComplex_ptr dr, magmaDoubleComplex_ptr dv, magmaDoubleComplex_ptr ds, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_zbicgmerge3 (magma_int_t n, magmaDoubleComplex_ptr dskp, magmaDoubleComplex_ptr dp, magmaDoubleComplex_ptr ds, magmaDoubleComplex_ptr dt, magmaDoubleComplex_ptr dx, magmaDoubleComplex_ptr dr, magma_queue_t queue)
 Mergels multiple operations into one kernel:
 
magma_int_t magma_zbicgmerge4 (magma_int_t type, magmaDoubleComplex_ptr dskp, magma_queue_t queue)
 Performs some parameter operations for the BiCGSTAB with scalars on GPU.
 
magma_int_t magma_zbicgmerge_spmv1 (magma_z_matrix A, magmaDoubleComplex_ptr dd1, magmaDoubleComplex_ptr dd2, magmaDoubleComplex_ptr dp, magmaDoubleComplex_ptr dr, magmaDoubleComplex_ptr dv, magmaDoubleComplex_ptr dskp, magma_queue_t queue)
 Merges the first SpmV using CSR with the dot product and the computation of alpha.
 
magma_int_t magma_zbicgmerge_spmv2 (magma_z_matrix A, magmaDoubleComplex_ptr dd1, magmaDoubleComplex_ptr dd2, magmaDoubleComplex_ptr ds, magmaDoubleComplex_ptr dt, magmaDoubleComplex_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_zbicgmerge_xrbeta (magma_int_t n, magmaDoubleComplex_ptr dd1, magmaDoubleComplex_ptr dd2, magmaDoubleComplex_ptr drr, magmaDoubleComplex_ptr dr, magmaDoubleComplex_ptr dp, magmaDoubleComplex_ptr ds, magmaDoubleComplex_ptr dt, magmaDoubleComplex_ptr dx, magmaDoubleComplex_ptr dskp, magma_queue_t queue)
 Merges the second SpmV using CSR with the dot product and the computation of omega.
 
magma_int_t magma_zbcsrswp (magma_int_t n, magma_int_t size_b, magma_int_t *ipiv, magmaDoubleComplex_ptr dx, magma_queue_t queue)
 
magma_int_t magma_zbcsrtrsv (magma_uplo_t uplo, magma_int_t r_blocks, magma_int_t c_blocks, magma_int_t size_b, magmaDoubleComplex_ptr dA, magma_index_t *blockinfo, magmaDoubleComplex_ptr dx, magma_queue_t queue)
 For a Block-CSR ILU factorization, this routine performs the triangular solves.
 
magma_int_t magma_zbcsrvalcpy (magma_int_t size_b, magma_int_t num_blocks, magma_int_t num_zero_blocks, magmaDoubleComplex_ptr *dAval, magmaDoubleComplex_ptr *dBval, magmaDoubleComplex_ptr *dBval2, magma_queue_t queue)
 For a Block-CSR ILU factorization, this routine copies the filled blocks from the original matrix A and initializes the blocks that will later be filled in the factorization process with zeros.
 
magma_int_t magma_zbcsrluegemm (magma_int_t size_b, magma_int_t num_block_rows, magma_int_t kblocks, magmaDoubleComplex_ptr *dA, magmaDoubleComplex_ptr *dB, magmaDoubleComplex_ptr *dC, magma_queue_t queue)
 For a Block-CSR ILU factorization, this routine updates all blocks in the trailing matrix.
 
magma_int_t magma_zbcsrlupivloc (magma_int_t size_b, magma_int_t kblocks, magmaDoubleComplex_ptr *dA, magma_int_t *ipiv, magma_queue_t queue)
 
magma_int_t magma_zbcsrblockinfo5 (magma_int_t lustep, magma_int_t num_blocks, magma_int_t c_blocks, magma_int_t size_b, magma_index_t *blockinfo, magmaDoubleComplex_ptr dval, magmaDoubleComplex_ptr *AII, magma_queue_t queue)
 For a Block-CSR ILU factorization, this routine copies the filled blocks from the original matrix A and initializes the blocks that will later be filled in the factorization process with zeros.
 
magma_int_t magma_zthrsholdselect (magma_int_t sampling, magma_int_t total_size, magma_int_t subset_size, magmaDoubleComplex *val, double *thrs, magma_queue_t queue)
 This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.
 
magma_int_t magma_vector_zlag2c (magma_z_matrix x, magma_c_matrix *y, magma_queue_t queue)
 convertes magma_z_matrix from Z to C
 
magma_int_t magma_sparse_matrix_zlag2c (magma_z_matrix A, magma_c_matrix *B, magma_queue_t queue)
 convertes magma_z_matrix from Z to C
 
magma_int_t magma_vector_clag2z (magma_c_matrix x, magma_z_matrix *y, magma_queue_t queue)
 convertes magma_c_vector from C to Z
 
magma_int_t magma_sparse_matrix_clag2z (magma_c_matrix A, magma_z_matrix *B, magma_queue_t queue)
 convertes magma_c_sparse_matrix from C to Z
 
void magmablas_zlag2c_sparse (magma_int_t M, magma_int_t N, magmaDoubleComplex_const_ptr dA, magma_int_t lda, magmaFloatComplex_ptr dSA, magma_int_t ldsa, magma_queue_t queue, magma_int_t *info)
 
void magmablas_clag2z_sparse (magma_int_t M, magma_int_t N, magmaFloatComplex_const_ptr dSA, magma_int_t ldsa, magmaDoubleComplex_ptr dA, magma_int_t lda, magma_queue_t queue, magma_int_t *info)
 
void magma_zlag2c_CSR_DENSE (magma_z_matrix A, magma_c_matrix *B, magma_queue_t queue)
 
void magma_zlag2c_CSR_DENSE_alloc (magma_z_matrix A, magma_c_matrix *B, magma_queue_t queue)
 
void magma_zlag2c_CSR_DENSE_convert (magma_z_matrix A, magma_c_matrix *B, magma_queue_t queue)
 
magma_int_t magma_zcgecsrmv_mixed_prec (magma_trans_t transA, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr ddiagval, magmaFloatComplex_ptr doffdiagval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
 

Detailed Description

Function Documentation

◆ magma_corderstatistics()

magma_int_t magma_corderstatistics ( magmaFloatComplex *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
magmaFloatComplex *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array.

Deprecated:
Parameters
[in,out]valmagmaFloatComplex* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementmagmaFloatComplex* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_corderstatistics_inc()

magma_int_t magma_corderstatistics_inc ( magmaFloatComplex *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  inc,
magma_int_t  r,
magmaFloatComplex *  element,
magma_queue_t  queue 
)

Approximates the k-th smallest element in an array by using order-statistics with step-size inc.

Deprecated:
Parameters
[in,out]valmagmaFloatComplex* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]incmagma_int_t Stepsize in the approximation.
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementmagmaFloatComplex* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmorderstatistics()

magma_int_t magma_cmorderstatistics ( magmaFloatComplex *  val,
magma_index_t *  col,
magma_index_t *  row,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
magmaFloatComplex *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.

Deprecated:

The related arrays col and row are also reordered.

Parameters
[in,out]valmagmaFloatComplex* Target array, will be modified during operation.
[in,out]colmagma_index_t* Target array, will be modified during operation.
[in,out]rowmagma_index_t* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementmagmaFloatComplex* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cpartition()

magma_int_t magma_cpartition ( magmaFloatComplex *  a,
magma_int_t  size,
magma_int_t  pivot,
magma_queue_t  queue 
)

◆ magma_cmedian5()

magma_int_t magma_cmedian5 ( magmaFloatComplex *  a,
magma_queue_t  queue 
)

◆ magma_cselect()

magma_int_t magma_cselect ( magmaFloatComplex *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]amagmaFloatComplex* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cselectrandom()

magma_int_t magma_cselectrandom ( magmaFloatComplex *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]amagmaFloatComplex* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cdomainoverlap()

magma_int_t magma_cdomainoverlap ( magma_index_t  num_rows,
magma_int_t *  num_indices,
magma_index_t *  rowptr,
magma_index_t *  colidx,
magma_index_t *  x,
magma_queue_t  queue 
)

Generates the update list.

Deprecated:
Parameters
[in]xmagma_index_t* array to sort
[in]num_rowsmagma_int_t number of rows in matrix
[out]num_indicesmagma_int_t* number of indices in array
[in]rowptrmagma_index_t* rowpointer of matrix
[in]colidxmagma_index_t* colindices of matrix
[in]xmagma_index_t* array containing indices for domain overlap
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cvspread()

magma_int_t magma_cvspread ( magma_c_matrix x,
const char *  filename,
magma_queue_t  queue 
)

Reads in a sparse vector-block stored in COO format.

Deprecated:
Parameters
[out]xmagma_c_matrix * vector to read in
[in]filenamechar* file where vector is stored
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cdiameter()

magma_int_t magma_cdiameter ( magma_c_matrix A,
magma_queue_t  queue 
)

Computes the diameter of a sparse matrix and stores the value in diameter.

Deprecated:
Parameters
[in,out]Amagma_c_matrix* sparse matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilusetup()

magma_int_t magma_cparilusetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the iterative ILU iteration.

Deprecated:
Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilu_gpu()

magma_int_t magma_cparilu_gpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParILU

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilu_cpu()

magma_int_t magma_cparilu_cpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParILU

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparic_gpu()

magma_int_t magma_cparic_gpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParIC

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparic_cpu()

magma_int_t magma_cparic_cpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParIC

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparicsetup()

magma_int_t magma_cparicsetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Prepares the IC preconditioner via the iterative IC iteration.

Deprecated:
Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparicupdate()

magma_int_t magma_cparicupdate ( magma_c_matrix  A,
magma_c_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_c_matrix input matrix A, current target system
[in]precondmagma_c_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_capplyiteric_l()

magma_int_t magma_capplyiteric_l ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_c_matrix RHS
[out]xmagma_c_matrix* vector to precondition
[in]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_capplyiteric_r()

magma_int_t magma_capplyiteric_r ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_c_matrix RHS
[out]xmagma_c_matrix* vector to precondition
[in]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilu_csr()

magma_int_t magma_cparilu_csr ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the system matrix is COO, the lower triangular factor L is stored in CSR, the upper triangular factor U is transposed, then also stored in CSR (equivalent to CSC format for the non-transposed U). Every component of L and U is handled by one thread.

Parameters
[in]Amagma_c_matrix input matrix A determing initial guess & processing order
[in,out]Lmagma_c_matrix input/output matrix L containing the lower triangular factor
[in,out]Umagma_c_matrix input/output matrix U containing the upper triangular factor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cpariluupdate()

magma_int_t magma_cpariluupdate ( magma_c_matrix  A,
magma_c_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_c_matrix input matrix A, current target system
[in]precondmagma_c_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparic_csr()

magma_int_t magma_cparic_csr ( magma_c_matrix  A,
magma_c_matrix  A_CSR,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the initial guess matrix A is Magma_CSRCOO, A_CSR is CSR or CSRCOO format.

Parameters
[in]Amagma_c_matrix input matrix A - initial guess (lower triangular)
[in,out]A_CSRmagma_c_matrix input/output matrix containing the IC approximation
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cnonlinres()

magma_int_t magma_cnonlinres ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix LU,
real_Double_t *  res,
magma_queue_t  queue 
)

Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_c_matrix input sparse matrix in CSR
[in]Lmagma_c_matrix input sparse matrix in CSR
[in]Umagma_c_matrix input sparse matrix in CSR
[out]LUmagma_c_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cilures()

magma_int_t magma_cilures ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_c_matrix input sparse matrix in CSR
[in]Lmagma_c_matrix input sparse matrix in CSR
[in]Umagma_c_matrix input sparse matrix in CSR
[out]LUmagma_c_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[out]nonlinresreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cicres()

magma_int_t magma_cicres ( magma_c_matrix  A,
magma_c_matrix  C,
magma_c_matrix  CT,
magma_c_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_c_matrix input sparse matrix in CSR
[in]Cmagma_c_matrix input sparse matrix in CSR
[in]CTmagma_c_matrix input sparse matrix in CSR
[in]LUmagma_c_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* IC residual
[out]nonlinresreal_Double_t* nonlinear residual
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cinitguess()

magma_int_t magma_cinitguess ( magma_c_matrix  A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

Computes an initial guess for the ParILU/ParIC.

Deprecated:
Parameters
[in]Amagma_c_matrix sparse matrix in CSR
[out]Lmagma_c_matrix* sparse matrix in CSR
[out]Umagma_c_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cinitrecursiveLU()

magma_int_t magma_cinitrecursiveLU ( magma_c_matrix  A,
magma_c_matrix B,
magma_queue_t  queue 
)

Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.

Deprecated:
Parameters
[in]Amagma_c_matrix* sparse matrix in CSR
[out]Bmagma_c_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmLdiagadd()

magma_int_t magma_cmLdiagadd ( magma_c_matrix L,
magma_queue_t  queue 
)

Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.

Deprecated:

It does this in-place.

Parameters
[in,out]Lmagma_c_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_cup()

magma_int_t magma_cmatrix_cup ( magma_c_matrix  A,
magma_c_matrix  B,
magma_c_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

Parameters
[in]Amagma_c_matrix Input matrix 1.
[in]Bmagma_c_matrix Input matrix 2.
[out]Umagma_c_matrix* Not a real matrix, but the list of all matrix entries included in either A or B. No duplicates.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_cup_gpu()

magma_int_t magma_cmatrix_cup_gpu ( magma_c_matrix  A,
magma_c_matrix  B,
magma_c_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

This is the GPU version of the operation.

Parameters
[in]Amagma_c_matrix Input matrix 1.
[in]Bmagma_c_matrix Input matrix 2.
[out]Umagma_c_matrix* \(U = A \cup B\). If both matrices have a nonzero value in the same location, the value of A is used.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_cap()

magma_int_t magma_cmatrix_cap ( magma_c_matrix  A,
magma_c_matrix  B,
magma_c_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being in both matrices: \(U = A \cap B\).

Deprecated:

The values in U are all ones.

Parameters
[in]Amagma_c_matrix Input matrix 1.
[in]Bmagma_c_matrix Input matrix 2.
[out]Umagma_c_matrix* Not a real matrix, but the list of all matrix entries included in both A and B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_negcap()

magma_int_t magma_cmatrix_negcap ( magma_c_matrix  A,
magma_c_matrix  B,
magma_c_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of A but not of B.

Deprecated:

U = A \ B The values of A are preserved.

Parameters
[in]Amagma_c_matrix Element part of this.
[in,out]Bmagma_c_matrix Not part of this.
[out]Umagma_c_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_tril_negcap()

magma_int_t magma_cmatrix_tril_negcap ( magma_c_matrix  A,
magma_c_matrix  B,
magma_c_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of tril(A) but not of B.

Deprecated:

U = tril(A) \ B The values of A are preserved.

Parameters
[in]Amagma_c_matrix Element part of this.
[in,out]Bmagma_c_matrix Not part of this.
[out]Umagma_c_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_triu_negcap()

magma_int_t magma_cmatrix_triu_negcap ( magma_c_matrix  A,
magma_c_matrix  B,
magma_c_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being part of triu(A) but not of B.

Deprecated:

U = triu(A) \ B The values of A are preserved.

Parameters
[in]Amagma_c_matrix Element part of this.
[in]Bmagma_c_matrix Not part of this.
[out]Umagma_c_matrix*
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmatrix_abssum()

magma_int_t magma_cmatrix_abssum ( magma_c_matrix  A,
float *  sum,
magma_queue_t  queue 
)

Computes the sum of the absolute values in a matrix.

Deprecated:
Parameters
[in]Amagma_c_matrix Element list/matrix.
[out]sumfloat* Sum of the absolute values.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_thrsrm()

magma_int_t magma_cparilut_thrsrm ( magma_int_t  order,
magma_c_matrix A,
float *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_c_matrix* Matrix where elements are removed.
[in]thrsfloat* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_thrsrm_semilinked()

magma_int_t magma_cparilut_thrsrm_semilinked ( magma_c_matrix U,
magma_c_matrix US,
float *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller thrs from the matrix.

Deprecated:

It only uses the linked list and skips the `‘removed’' elements

Parameters
[in,out]Amagma_c_matrix* Matrix where elements are removed.
[in]thrsfloat* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_rmselected()

magma_int_t magma_cparilut_rmselected ( magma_c_matrix  R,
magma_c_matrix A,
magma_queue_t  queue 
)

Removes a selected list of elements from the matrix.

Deprecated:
Parameters
[in]Rmagma_c_matrix Matrix containing elements to be removed.
[in,out]Amagma_c_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_selectoneperrow()

magma_int_t magma_cparilut_selectoneperrow ( magma_int_t  order,
magma_c_matrix A,
magma_c_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_c_matrix* Matrix where elements are removed.
[out]oneAmagma_c_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_selecttwoperrow()

magma_int_t magma_cparilut_selecttwoperrow ( magma_int_t  order,
magma_c_matrix A,
magma_c_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_c_matrix* Matrix where elements are removed.
[out]oneAmagma_c_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_selectoneperrowthrs_lower()

magma_int_t magma_cparilut_selectoneperrowthrs_lower ( magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix A,
float  rtol,
magma_c_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_c_matrix Current lower triangular factor.
[in]Umagma_c_matrix Current upper triangular factor.
[in]Amagma_c_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_c_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_selectoneperrowthrs_upper()

magma_int_t magma_cparilut_selectoneperrowthrs_upper ( magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix A,
float  rtol,
magma_c_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_c_matrix Current lower triangular factor.
[in]Umagma_c_matrix Current upper triangular factor.
[in]Amagma_c_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_c_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_selectonepercol()

magma_int_t magma_cparilut_selectonepercol ( magma_int_t  order,
magma_c_matrix A,
magma_c_matrix oneA,
magma_queue_t  queue 
)

◆ magma_cparilut_transpose_select_one()

magma_int_t magma_cparilut_transpose_select_one ( magma_c_matrix  A,
magma_c_matrix B,
magma_queue_t  queue 
)

This is a special routine with very limited scope.

Deprecated:

For a set of fill-in candidates in row-major format, it transposes the a submatrix, i.e. the submatrix consisting of the largest element in every column. This function is only useful for delta<=1.

Parameters
[in]Amagma_c_matrix Matrix to transpose.
[out]Bmagma_c_matrix* Transposed matrix containing only largest elements in each col.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_insert_LU()

magma_int_t magma_cparilut_insert_LU ( magma_int_t  num_rm,
magma_index_t *  rm_loc,
magma_index_t *  rm_loc2,
magma_c_matrix LU_new,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

◆ magma_cparilut_set_thrs()

magma_int_t magma_cparilut_set_thrs ( magma_int_t  num_rm,
magma_c_matrix LU,
magma_int_t  order,
magmaFloatComplex *  thrs,
magma_queue_t  queue 
)

◆ magma_cparilut_set_approx_thrs()

magma_int_t magma_cparilut_set_approx_thrs ( magma_int_t  num_rm,
magma_c_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_c_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsmagmaFloatComplex* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_set_thrs_randomselect()

magma_int_t magma_cparilut_set_thrs_randomselect ( magma_int_t  num_rm,
magma_c_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_c_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_set_thrs_randomselect_approx()

magma_int_t magma_cparilut_set_thrs_randomselect_approx ( magma_int_t  num_rm,
magma_c_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_c_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_set_thrs_randomselect_factors()

magma_int_t magma_cparilut_set_thrs_randomselect_factors ( magma_int_t  num_rm,
magma_c_matrix L,
magma_c_matrix U,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_c_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_set_exact_thrs()

magma_int_t magma_cparilut_set_exact_thrs ( magma_int_t  num_rm,
magma_c_matrix LU,
magma_int_t  order,
magmaFloatComplex *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_c_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsmagmaFloatComplex* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_set_approx_thrs_inc()

magma_int_t magma_cparilut_set_approx_thrs_inc ( magma_int_t  num_rm,
magma_c_matrix LU,
magma_int_t  order,
magmaFloatComplex *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_c_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsmagmaFloatComplex* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_LU_approx_thrs()

magma_int_t magma_cparilut_LU_approx_thrs ( magma_int_t  num_rm,
magma_c_matrix L,
magma_c_matrix U,
magma_int_t  order,
magmaFloatComplex *  thrs,
magma_queue_t  queue 
)

◆ magma_cparilut_reorder()

magma_int_t magma_cparilut_reorder ( magma_c_matrix LU,
magma_queue_t  queue 
)

This routine reorders the matrix (inplace) for easier access.

Deprecated:
Parameters
[in]LUmagma_c_matrix* Current ILU approximation.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparict_sweep()

magma_int_t magma_cparict_sweep ( magma_c_matrix A,
magma_c_matrix LU,
magma_queue_t  queue 
)

◆ magma_cparilut_zero()

magma_int_t magma_cparilut_zero ( magma_c_matrix A,
magma_queue_t  queue 
)

◆ magma_cparilu_sweep()

magma_int_t magma_cparilu_sweep ( magma_c_matrix  A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep.

Deprecated:

Input and output array are identical.

Parameters
[in]Amagma_c_matrix System matrix in COO.
[in]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_c_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilu_sweep_sync()

magma_int_t magma_cparilu_sweep_sync ( magma_c_matrix  A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_c_matrix System matrix in COO.
[in]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_c_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparic_sweep()

magma_int_t magma_cparic_sweep ( magma_c_matrix  A,
magma_c_matrix L,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep (symmetric case).

Deprecated:

Input and output array is identical.

Parameters
[in]Amagma_c_matrix System matrix in COO.
[in]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparic_sweep_sync()

magma_int_t magma_cparic_sweep_sync ( magma_c_matrix  A,
magma_c_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep (symmetric case).

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_c_matrix System matrix in COO.
[in]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparict_sweep_sync()

magma_int_t magma_cparict_sweep_sync ( magma_c_matrix A,
magma_c_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_c_matrix* System matrix.
[in]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_c_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[out]L_newmagma_c_matrix* Current approximation for the lower triangular factor The format is unsorted CSR.
[out]U_newmagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_sweep_sync()

magma_int_t magma_cparilut_sweep_sync ( magma_c_matrix A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A.

This is the CPU version of the synchronous ParILUT sweep.

Parameters
[in]Amagma_c_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_c_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_sweep_gpu()

magma_int_t magma_cparilut_sweep_gpu ( magma_c_matrix A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A. L has a unit diagonal.

This is the GPU version of the asynchronous ParILUT sweep.

Parameters
[in]Amagma_c_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_c_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_residuals_gpu()

magma_int_t magma_cparilut_residuals_gpu ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_c_matrix System matrix. The format is sorted CSR.
[in]Lmagma_c_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]Umagma_c_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Rmagma_c_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cthrsholdrm_gpu()

magma_int_t magma_cthrsholdrm_gpu ( magma_int_t  order,
magma_c_matrix A,
float *  thrs,
magma_queue_t  queue 
)
Deprecated:
Purpose

This routine selects a threshold separating the subset_size smallest
magnitude elements from the rest.




@param[in]
order       magma_int_t 
            dummy variable for now.

@param[in,out]
A           magma_c_matrix*  
            input/output matrix where elements are removed

@param[out]
thrs        float*  
            computed threshold

@param[in]
queue       magma_queue_t
            Queue to execute in.

@ingroup magmasparse_caux

◆ magma_cget_row_ptr()

magma_int_t magma_cget_row_ptr ( const magma_int_t  num_rows,
magma_int_t *  nnz,
const magma_index_t *  rowidx,
magma_index_t *  rowptr,
magma_queue_t  queue 
)

◆ magma_cparilut_align_residuals()

magma_int_t magma_cparilut_align_residuals ( magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix Lnew,
magma_c_matrix Unew,
magma_queue_t  queue 
)

This function scales the residuals of a lower triangular factor L with the diagonal of U.

Deprecated:

The intention is to generate a good initial guess for inserting the elements.

Parameters
[in]Lmagma_c_matrix Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_c_matrix Current approximation for the upper triangular factor The format is sorted CSC.
[in]hLmagma_c_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]hUmagma_c_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_preselect_scale()

magma_int_t magma_cparilut_preselect_scale ( magma_c_matrix L,
magma_c_matrix oneL,
magma_c_matrix U,
magma_c_matrix oneU,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_c_matrix* Matrix where elements are removed.
[in]Umagma_c_matrix* Matrix where elements are removed.
[out]oneLmagma_c_matrix* Matrix where elements are removed.
[out]oneUmagma_c_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_thrsrm_U()

magma_int_t magma_cparilut_thrsrm_U ( magma_int_t  order,
magma_c_matrix  L,
magma_c_matrix A,
float *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_c_matrix* Matrix where elements are removed.
[in]thrsfloat* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_residuals()

magma_int_t magma_cparilut_residuals ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_c_matrix System matrix A.
[in]Lmagma_c_matrix Current approximation for the lower triangular factor. The format is sorted CSR.
[in]Umagma_c_matrix Current approximation for the upper triangular factor. The format is sorted CSR.
[in,out]Rmagma_c_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_residuals_transpose()

magma_int_t magma_cparilut_residuals_transpose ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix U_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_c_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_residuals_semilinked()

magma_int_t magma_cparilut_residuals_semilinked ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  US,
magma_c_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_c_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_sweep_semilinked()

magma_int_t magma_cparilut_sweep_semilinked ( magma_c_matrix A,
magma_c_matrix L,
magma_c_matrix US,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_c_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_sweep_list()

magma_int_t magma_cparilut_sweep_list ( magma_c_matrix A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_c_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_residuals_list()

magma_int_t magma_cparilut_residuals_list ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_c_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_sweep_linkedlist()

magma_int_t magma_cparilut_sweep_linkedlist ( magma_c_matrix A,
magma_c_matrix L,
magma_c_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_c_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_c_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_residuals_linkedlist()

magma_int_t magma_cparilut_residuals_linkedlist ( magma_c_matrix  A,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_c_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_colmajor()

magma_int_t magma_cparilut_colmajor ( magma_c_matrix  A,
magma_c_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_c_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_c_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_colmajorup()

magma_int_t magma_cparilut_colmajorup ( magma_c_matrix  A,
magma_c_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_c_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_c_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A. Already allocated.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparict()

magma_int_t magma_cparict ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete Cholesky preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.

This function requires OpenMP, and is only available if OpenMP is activated.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparict_cpu()

magma_int_t magma_cparict_cpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern. It is the variant for SPD systems.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut()

magma_int_t magma_cparilut ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete LU preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_cpu()

magma_int_t magma_cparilut_cpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_gpu()

magma_int_t magma_cparilut_gpu ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_gpu_nodp()

magma_int_t magma_cparilut_gpu_nodp ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

This routine is the same as magma_cparilut_gpu(), except that it uses no dynamic paralellism

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_insert()

magma_int_t magma_cparilut_insert ( magma_int_t *  num_rmL,
magma_int_t *  num_rmU,
magma_index_t *  rm_locL,
magma_index_t *  rm_locU,
magma_c_matrix L_new,
magma_c_matrix U_new,
magma_c_matrix L,
magma_c_matrix U,
magma_c_matrix UR,
magma_queue_t  queue 
)

Inserts for the iterative dynamic ILU an new element in the (empty) place.

Deprecated:
Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced in L.
[in]num_rmUmagma_int_t Number of Elements that are replaced in U.
[in]rm_locLmagma_index_t* List containing the locations of the deleted elements.
[in]rm_locUmagma_index_t* List containing the locations of the deleted elements.
[in]L_newmagma_c_matrix Elements that will be inserted in L stored in COO format (unsorted).
[in]U_newmagma_c_matrix Elements that will be inserted in U stored in COO format (unsorted).
[in,out]Lmagma_c_matrix* matrix where new elements are inserted. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]Umagma_c_matrix* matrix where new elements are inserted. Row-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]URmagma_c_matrix* Same matrix as U, but column-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_create_collinkedlist()

magma_int_t magma_cparilut_create_collinkedlist ( magma_c_matrix  A,
magma_c_matrix B,
magma_queue_t  queue 
)

For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.

Deprecated:
Parameters
[in]Amagma_c_matrix Matrix to transpose.
[out]Bmagma_c_matrix* Transposed matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_candidates()

magma_int_t magma_cparilut_candidates ( magma_c_matrix  L0,
magma_c_matrix  U0,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix L_new,
magma_c_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_c_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_c_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_c_matrix Current lower triangular factor.
[in]Umagma_c_matrix Current upper triangular factor.
[in,out]LU_newmagma_c_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_c_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_candidates_gpu()

magma_int_t magma_cparilut_candidates_gpu ( magma_c_matrix  L0,
magma_c_matrix  U0,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix L_new,
magma_c_matrix U_new,
magma_queue_t  queue 
)

This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.

Deprecated:

Nonzero ILU residuals are possible 1 where A is nonzero but L and U have no nonzero entry 2 where the product L*U has fill-in but the location is not included in L or U

We assume that the incomplete factors are exact fro the elements included in the current pattern.

This is the GPU implementation of the candidate search.

2 GPU kernels are used: the first is a dry run assessing the memory need, the second then computes the candidate locations, the third eliminates float entries. The fourth kernel ensures the elements in a row are sorted for increasing column index.

Parameters
[in]L0magma_c_matrix tril(ILU(0) ) pattern of original system matrix.
[in]U0magma_c_matrix triu(ILU(0) ) pattern of original system matrix.
[in]Lmagma_c_matrix Current lower triangular factor.
[in]Umagma_c_matrix Current upper triangular factor.
[in,out]L_newmagma_c_matrix* List of candidates for L in COO format.
[in,out]U_newmagma_c_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparict_candidates()

magma_int_t magma_cparict_candidates ( magma_c_matrix  L0,
magma_c_matrix  L,
magma_c_matrix  LT,
magma_c_matrix L_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_c_matrix tril( ILU(0) ) pattern of original system matrix.
[in]Lmagma_c_matrix Current lower triangular factor.
[in]LTmagma_c_matrix Transose of the lower triangular factor.
[in,out]L_newmagma_c_matrix* List of candidates for L in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_candidates_semilinked()

magma_int_t magma_cparilut_candidates_semilinked ( magma_c_matrix  L0,
magma_c_matrix  U0,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix  UT,
magma_c_matrix L_new,
magma_c_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_c_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_c_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_c_matrix Current lower triangular factor.
[in]Umagma_c_matrix Current upper triangular factor transposed.
[in]URmagma_c_matrix Current upper triangular factor - col-pointer and col-list.
[in,out]LU_newmagma_c_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_c_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_candidates_linkedlist()

magma_int_t magma_cparilut_candidates_linkedlist ( magma_c_matrix  L0,
magma_c_matrix  U0,
magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix  UR,
magma_c_matrix L_new,
magma_c_matrix U_new,
magma_queue_t  queue 
)

◆ magma_cparilut_rm_thrs()

magma_int_t magma_cparilut_rm_thrs ( float *  thrs,
magma_int_t *  num_rm,
magma_c_matrix LU,
magma_c_matrix LU_new,
magma_index_t *  rm_loc,
magma_queue_t  queue 
)

This routine removes matrix entries from the structure that are smaller than the threshold.

Deprecated:

It only counts the elements deleted, does not save the locations.

Parameters
[out]thrsmagmaFloatComplex* Thrshold for removing elements.
[out]num_rmmagma_int_t* Number of Elements that have been removed.
[in,out]LUmagma_c_matrix* Current ILU approximation where the identified smallest components are deleted.
[in,out]LUCmagma_c_matrix* Corresponding col-list.
[in,out]LU_newmagma_c_matrix* List of candidates in COO format.
[out]rm_locmagma_index_t* List containing the locations of the elements deleted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_count()

magma_int_t magma_cparilut_count ( magma_c_matrix  L,
magma_int_t *  num,
magma_queue_t  queue 
)

This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.

Deprecated:
Parameters
[in]Lmagma_c_matrix* Matrix in Magm_CSRLIST format
[out]nummagma_index_t* Number of elements counted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_randlist()

magma_int_t magma_cparilut_randlist ( magma_c_matrix LU,
magma_queue_t  queue 
)

◆ magma_cparilut_select_candidates_L()

magma_int_t magma_cparilut_select_candidates_L ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_c_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_c_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_c_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_select_candidates_U()

magma_int_t magma_cparilut_select_candidates_U ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_c_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_c_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_c_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cparilut_preselect()

magma_int_t magma_cparilut_preselect ( magma_int_t  order,
magma_c_matrix A,
magma_c_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_c_matrix* Matrix where elements are removed.
[out]oneAmagma_c_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cpreselect_gpu()

magma_int_t magma_cpreselect_gpu ( magma_int_t  order,
magma_c_matrix A,
magma_c_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_c_matrix* Matrix where elements are removed.
[out]oneAmagma_c_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_csampleselect()

magma_int_t magma_csampleselect ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaFloatComplex *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaFloatComplex array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_csampleselect_approx()

magma_int_t magma_csampleselect_approx ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaFloatComplex *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaFloatComplex array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_csampleselect_nodp()

magma_int_t magma_csampleselect_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaFloatComplex *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaFloatComplex array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_csampleselect_approx_nodp()

magma_int_t magma_csampleselect_approx_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaFloatComplex *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaFloatComplex array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmprepare_batched()

magma_int_t magma_cmprepare_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix  L,
magma_c_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaFloatComplex *  trisystems,
magmaFloatComplex *  rhs,
magma_queue_t  queue 
)

Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.

Deprecated:
  • padded with zeros to size 32x32 an array containing the RHS
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_c_matrix Matrix in CSR format
[in]LCmagma_c_matrix same matrix, also CSR, but col-major
[in,out]sizesmagma_int_t* Number of Elements that are replaced.
[in,out]locationsmagma_int_t* Array indicating the locations.
[in,out]trisystemsmagmaFloatComplex* trisystems
[in,out]rhsmagmaFloatComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmtrisolve_batched()

magma_int_t magma_cmtrisolve_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix  L,
magma_c_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaFloatComplex *  trisystems,
magmaFloatComplex *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_c_matrix Matrix in CSR format
[in]LCmagma_c_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaFloatComplex* trisystems
[out]rhsmagmaFloatComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmbackinsert_batched()

magma_int_t magma_cmbackinsert_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaFloatComplex *  trisystems,
magmaFloatComplex *  rhs,
magma_queue_t  queue 
)

Inserts the values into the preconditioner matrix.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in,out]Mmagma_c_matrix* SPAI preconditioner CSR col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaFloatComplex* trisystems
[out]rhsmagmaFloatComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmprepare_batched_gpu()

magma_int_t magma_cmprepare_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix  L,
magma_c_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaFloatComplex *  trisystems,
magmaFloatComplex *  rhs,
magma_queue_t  queue 
)

◆ magma_cmtrisolve_batched_gpu()

magma_int_t magma_cmtrisolve_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix  L,
magma_c_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaFloatComplex *  trisystems,
magmaFloatComplex *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_c_matrix Matrix in CSR format
[in]LCmagma_c_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaFloatComplex* trisystems
[out]rhsmagmaFloatComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmbackinsert_batched_gpu()

magma_int_t magma_cmbackinsert_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaFloatComplex *  trisystems,
magmaFloatComplex *  rhs,
magma_queue_t  queue 
)

◆ magma_ciluisaisetup_lower()

magma_int_t magma_ciluisaisetup_lower ( magma_c_matrix  L,
magma_c_matrix  S,
magma_c_matrix ISAIL,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the lower triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Lmagma_c_matrix lower triangular factor
[in]Smagma_c_matrix pattern for the ISAI preconditioner for L
[out]ISAILmagma_c_matrix* ISAI preconditioner for L
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ciluisaisetup_upper()

magma_int_t magma_ciluisaisetup_upper ( magma_c_matrix  U,
magma_c_matrix  S,
magma_c_matrix ISAIU,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the upper triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Umagma_c_matrix lower triangular factor
[in]Smagma_c_matrix pattern for the ISAI preconditioner for U
[out]ISAIUmagma_c_matrix* ISAI preconditioner for U
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cicisaisetup()

magma_int_t magma_cicisaisetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_cisai_l()

magma_int_t magma_cisai_l ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cisai_r()

magma_int_t magma_cisai_r ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cisai_l_t()

magma_int_t magma_cisai_l_t ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cisai_r_t()

magma_int_t magma_cisai_r_t ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmiluisai_sizecheck()

magma_int_t magma_cmiluisai_sizecheck ( magma_c_matrix  A,
magma_index_t  batchsize,
magma_index_t *  maxsize,
magma_queue_t  queue 
)

◆ magma_cgeisai_maxblock()

magma_int_t magma_cgeisai_maxblock ( magma_c_matrix  L,
magma_c_matrix MT,
magma_queue_t  queue 
)

This routine maximizes the pattern for the ISAI preconditioner.

Deprecated:

Precisely, it computes L, L^2, L^3, L^4, L^5 and then selects the columns of M_L such that the nonzer-per-column are the lower max than the implementation-specific limit (32).

The input is the original matrix (row-major) The output is already col-major.

Parameters
[in,out]Lmagma_c_matrix Incomplete factor.
[in,out]MTmagma_c_matrix* SPAI preconditioner structure, CSR col-major.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cisai_generator_regs()

magma_int_t magma_cisai_generator_regs ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_c_matrix  L,
magma_c_matrix M,
magma_queue_t  queue 
)

This routine is designet to combine all kernels into one.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_c_matrix triangular factor for which the ISAI matrix is computed. Col-Major CSR storage.
[in,out]Mmagma_c_matrix* SPAI preconditioner CSR col-major
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmsupernodal()

magma_int_t magma_cmsupernodal ( magma_int_t *  max_bs,
magma_c_matrix  A,
magma_c_matrix S,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with block-size bs.

Deprecated:
Parameters
[in,out]max_bsmagma_int_t* Size of the largest diagonal block.
[in]Amagma_c_matrix System matrix.
[in,out]Smagma_c_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmvarsizeblockstruct()

magma_int_t magma_cmvarsizeblockstruct ( magma_int_t  n,
magma_int_t *  bs,
magma_int_t  bsl,
magma_uplo_t  uplotype,
magma_c_matrix A,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with variable block-size.

Deprecated:
Parameters
[in]nmagma_int_t Size of the matrix.
[in]bsmagma_int_t* Vector containing the size of the diagonal blocks.
[in]bslmagma_int_t Size of the vector containing the block sizes.
[in]uplotypemagma_uplo_t lower or upper triangular
[in,out]Amagma_c_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ctfqmr_unrolled()

magma_int_t magma_ctfqmr_unrolled ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a complex matrix A.

Deprecated:

This is a GPU implementation of the transpose-free Quasi-Minimal Residual method (TFQMR).

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgstab_merge2()

magma_int_t magma_cbicgstab_merge2 ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_cbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgstab_merge3()

magma_int_t magma_cbicgstab_merge3 ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_cbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cjacobidomainoverlap()

magma_int_t magma_cjacobidomainoverlap ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Jacobi method allowing for domain overlap.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbaiter()

magma_int_t magma_cbaiter ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_c_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:
Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]precond_parmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbaiter_overlap()

magma_int_t magma_cbaiter_overlap ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_c_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:

It used restricted additive Schwarz overlap in top-down direction.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]precond_parmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cftjacobicontractions()

magma_int_t magma_cftjacobicontractions ( magma_c_matrix  xkm2,
magma_c_matrix  xkm1,
magma_c_matrix  xk,
magma_c_matrix z,
magma_c_matrix c,
magma_queue_t  queue 
)

Computes the contraction coefficients c_i:

Deprecated:

c_i = z_i^{k-1} / z_i^{k}

= | x_i^{k-1} - x_i^{k-2} | / |  x_i^{k} - x_i^{k-1} |
Parameters
[in]xkm2magma_c_matrix vector x^{k-2}
[in]xkm1magma_c_matrix vector x^{k-2}
[in]xkmagma_c_matrix vector x^{k-2}
[out]zmagma_c_matrix* ratio
[out]cmagma_c_matrix* contraction coefficients
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cftjacobiupdatecheck()

magma_int_t magma_cftjacobiupdatecheck ( float  delta,
magma_c_matrix xold,
magma_c_matrix xnew,
magma_c_matrix zprev,
magma_c_matrix  c,
magma_int_t *  flag_t,
magma_int_t *  flag_fp,
magma_queue_t  queue 
)

Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.

Deprecated:
Parameters
[in]deltafloat threshold
[in,out]xoldmagma_c_matrix* vector xold
[in,out]xnewmagma_c_matrix* vector xnew
[in,out]zprevmagma_c_matrix* vector z = | x_k-1 - x_k |
[in]cmagma_c_matrix contraction coefficients
[in,out]flag_tmagma_int_t threshold condition
[in,out]flag_fpmagma_int_t false positive condition
[in]queuemagma_queue_t Queue to execute in.

◆ magma_citerref()

magma_int_t magma_citerref ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_c_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Iterative Refinement method. The inner solver is passed via the preconditioner argument.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix RHS b
[in,out]xmagma_c_matrix* solution approximation
[in,out]solver_parmagma_c_solver_par* solver parameters
[in,out]precond_parmagma_c_preconditioner* inner solver
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cjacobiiter_sys()

magma_int_t magma_cjacobiiter_sys ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix  d,
magma_c_matrix  t,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input.

Parameters
[in]Amagma_c_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_c_matrix input RHS b
[in]dmagma_c_matrix input matrix diagonal elements diag(A)
[in]tmagma_c_matrix temporary vector
[in,out]xmagma_c_matrix* iteration vector x
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cftjacobi()

magma_int_t magma_cftjacobi ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_matrix x,
magma_c_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input. This is the fault-tolerant version of Jacobi according to ScalLA'15.

Parameters
[in]Amagma_c_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix* iteration vector x
[in,out]solver_parmagma_c_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cilut_saad()

magma_int_t magma_cilut_saad ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_cilut_saad_apply()

magma_int_t magma_cilut_saad_apply ( magma_c_matrix  b,
magma_c_matrix x,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_ccustomilusetup()

magma_int_t magma_ccustomilusetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete LU preconditioner.

Deprecated:
Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ccustomicsetup()

magma_int_t magma_ccustomicsetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete Cholesky preconditioner.

Deprecated:
Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbajac_csr()

magma_int_t magma_cbajac_csr ( magma_int_t  localiters,
magma_c_matrix  D,
magma_c_matrix  R,
magma_c_matrix  b,
magma_c_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]Dmagma_c_matrix input matrix with diagonal blocks
[in]Rmagma_c_matrix input matrix with non-diagonal parts
[in]bmagma_c_matrix RHS
[in]xmagma_c_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbajac_csr_overlap()

magma_int_t magma_cbajac_csr_overlap ( magma_int_t  localiters,
magma_int_t  matrices,
magma_int_t  overlap,
magma_c_matrix D,
magma_c_matrix R,
magma_c_matrix  b,
magma_c_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]matricesmagma_int_t number of sub-matrices
[in]overlapmagma_int_t size of the overlap
[in]Dmagma_c_matrix* set of matrices with diagonal blocks
[in]Rmagma_c_matrix* set of matrices with non-diagonal parts
[in]bmagma_c_matrix RHS
[in]xmagma_c_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmlumerge()

magma_int_t magma_cmlumerge ( magma_c_matrix  L,
magma_c_matrix  U,
magma_c_matrix A,
magma_queue_t  queue 
)

Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.

Deprecated:
Parameters
[in]Lmagma_c_matrix input strictly lower triangular matrix L
[in]Umagma_c_matrix input upper triangular matrix U
[out]Amagma_c_matrix* output matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cgeaxpy()

magma_int_t magma_cgeaxpy ( magmaFloatComplex  alpha,
magma_c_matrix  X,
magmaFloatComplex  beta,
magma_c_matrix Y,
magma_queue_t  queue 
)

This routine computes Y = alpha * X + beta * Y on the GPU.

Deprecated:

The input format is magma_c_matrix. It can handle both, dense matrix (vector block) and CSR matrices. For the latter, it interfaces the cuSPARSE library.

Parameters
[in]alphamagmaFloatComplex scalar multiplier.
[in]Xmagma_c_matrix input/output matrix Y.
[in]betamagmaFloatComplex scalar multiplier.
[in,out]Ymagma_c_matrix* input matrix X.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cgecsrreimsplit()

magma_int_t magma_cgecsrreimsplit ( magma_c_matrix  A,
magma_c_matrix ReA,
magma_c_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_c_matrix input matrix A.
[out]ReAmagma_c_matrix* output matrix contaning real contributions.
[out]ImAmagma_c_matrix* output matrix contaning complex contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cgedensereimsplit()

magma_int_t magma_cgedensereimsplit ( magma_c_matrix  A,
magma_c_matrix ReA,
magma_c_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_c_matrix input matrix A.
[out]ReAmagma_c_matrix* output matrix contaning real contributions.
[out]ImAmagma_c_matrix* output matrix contaning complex contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cgecsr5mv()

magma_int_t magma_cgecsr5mv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  p,
magmaFloatComplex  alpha,
magma_int_t  sigma,
magma_int_t  bit_y_offset,
magma_int_t  bit_scansum_offset,
magma_int_t  num_packet,
magmaUIndex_ptr  dtile_ptr,
magmaUIndex_ptr  dtile_desc,
magmaIndex_ptr  dtile_desc_offset_ptr,
magmaIndex_ptr  dtile_desc_offset,
magmaFloatComplex_ptr  dcalibrator,
magma_int_t  tail_tile_start,
magmaFloatComplex_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaFloatComplex_ptr  dx,
magmaFloatComplex  beta,
magmaFloatComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Deprecated:

The input format is CSR5 (val (tile-wise column-major), row_pointer, col (tile-wise column-major), tile_pointer, tile_desc).

Parameters
[in]transAmagma_trans_t transposition parameter for A
[in]mmagma_int_t number of rows in A
[in]nmagma_int_t number of columns in A
[in]pmagma_int_t number of tiles in A
[in]alphamagmaFloatComplex scalar multiplier
[in]sigmamagma_int_t sigma in A in CSR5
[in]bit_y_offsetmagma_int_t bit_y_offset in A in CSR5
[in]bit_scansum_offsetmagma_int_t bit_scansum_offset in A in CSR5
[in]num_packetmagma_int_t num_packet in A in CSR5
[in]dtile_ptrmagmaUIndex_ptr tilepointer of A in CSR5
[in]dtile_descmagmaUIndex_ptr tiledescriptor of A in CSR5
[in]dtile_desc_offset_ptrmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dtile_desc_offsetmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dcalibratormagmaFloatComplex_ptr calibrator of A in CSR5
[in]tail_tile_startmagma_int_t start of the last tile in A
[in]dvalmagmaFloatComplex_ptr array containing values of A in CSR
[in]dvalmagmaFloatComplex_ptr array containing values of A in CSR
[in]drowptrmagmaIndex_ptr rowpointer of A in CSR
[in]dcolindmagmaIndex_ptr columnindices of A in CSR
[in]dxmagmaFloatComplex_ptr input vector x
[in]betamagmaFloatComplex scalar multiplier
[out]dymagmaFloatComplex_ptr input/output vector y
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ccopyscale()

magma_int_t magma_ccopyscale ( magma_int_t  n,
magma_int_t  k,
magmaFloatComplex_ptr  r,
magmaFloatComplex_ptr  v,
magmaFloatComplex_ptr  skp,
magma_queue_t  queue 
)

Computes the correction term of the pipelined GMRES according to P.

Deprecated:

Ghysels and scales and copies the new search direction

Returns the vector v = r/ ( skp[k] - (sum_i=1^k skp[i]^2) ) .

Parameters
[in]nint length of v_i
[in]kint

skp entries v_i^T * r ( without r )

Parameters
[in]rmagmaFloatComplex_ptr vector of length n
[in]vmagmaFloatComplex_ptr vector of length n
[in]skpmagmaFloatComplex_ptr array of parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_scnrm2scale()

magma_int_t magma_scnrm2scale ( magma_int_t  m,
magmaFloatComplex_ptr  dr,
magma_int_t  lddr,
magmaFloatComplex *  drnorm,
magma_queue_t  queue 
)

◆ magma_cjacobispmvupdate_bw()

magma_int_t magma_cjacobispmvupdate_bw ( magma_int_t  maxiter,
magma_c_matrix  A,
magma_c_matrix  t,
magma_c_matrix  b,
magma_c_matrix  d,
magma_c_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax) This kernel processes the thread blocks in reversed order.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]Amagma_c_matrix system matrix
[in]tmagma_c_matrix workspace
[in]bmagma_c_matrix RHS b
[in]dmagma_c_matrix vector with diagonal entries
[out]xmagma_c_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cjacobispmvupdateselect()

magma_int_t magma_cjacobispmvupdateselect ( magma_int_t  maxiter,
magma_int_t  num_updates,
magma_index_t *  indices,
magma_c_matrix  A,
magma_c_matrix  t,
magma_c_matrix  b,
magma_c_matrix  d,
magma_c_matrix  tmp,
magma_c_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax)

This kernel allows for overlapping domains: the indices-array contains the locations that are updated. Locations may be repeated to simulate overlapping domains.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]num_updatesmagma_int_t number of updates - length of the indices array
[in]indicesmagma_index_t* indices, which entries of x to update
[in]Amagma_c_matrix system matrix
[in]tmagma_c_matrix workspace
[in]bmagma_c_matrix RHS b
[in]dmagma_c_matrix vector with diagonal entries
[in]tmpmagma_c_matrix workspace
[out]xmagma_c_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cmergeblockkrylov()

magma_int_t magma_cmergeblockkrylov ( magma_int_t  num_rows,
magma_int_t  num_cols,
magmaFloatComplex_ptr  alpha,
magmaFloatComplex_ptr  p,
magmaFloatComplex_ptr  x,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

v = y / rho y = y / rho w = wt / psi z = z / psi

Parameters
[in]num_rowsmagma_int_t dimension m
[in]num_colsmagma_int_t dimension n
[in]alphamagmaFloatComplex_ptr matrix containing all SKP
[in]pmagmaFloatComplex_ptr search directions
[in,out]xmagmaFloatComplex_ptr approximation vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgmerge1()

magma_int_t magma_cbicgmerge1 ( magma_int_t  n,
magmaFloatComplex_ptr  skp,
magmaFloatComplex_ptr  v,
magmaFloatComplex_ptr  r,
magmaFloatComplex_ptr  p,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

p = beta*p p = p-omega*beta*v p = p+r

-> p = r + beta * ( p - omega * v )

Parameters
[in]nint dimension n
[in]skpmagmaFloatComplex_ptr set of scalar parameters
[in]vmagmaFloatComplex_ptr input vector v
[in]rmagmaFloatComplex_ptr input vector r
[in,out]pmagmaFloatComplex_ptr input/output vector p
[in]queuemagma_queue_t queue to execute in.

◆ magma_cbicgmerge2()

magma_int_t magma_cbicgmerge2 ( magma_int_t  n,
magmaFloatComplex_ptr  skp,
magmaFloatComplex_ptr  r,
magmaFloatComplex_ptr  v,
magmaFloatComplex_ptr  s,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

s=r s=s-alpha*v

-> s = r - alpha * v

Parameters
[in]nint dimension n
[in]skpmagmaFloatComplex_ptr set of scalar parameters
[in]rmagmaFloatComplex_ptr input vector r
[in]vmagmaFloatComplex_ptr input vector v
[out]smagmaFloatComplex_ptr output vector s
[in]queuemagma_queue_t queue to execute in.

◆ magma_cbicgmerge3()

magma_int_t magma_cbicgmerge3 ( magma_int_t  n,
magmaFloatComplex_ptr  skp,
magmaFloatComplex_ptr  p,
magmaFloatComplex_ptr  s,
magmaFloatComplex_ptr  t,
magmaFloatComplex_ptr  x,
magmaFloatComplex_ptr  r,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

x=x+alpha*p x=x+omega*s r=s r=r-omega*t

-> x = x + alpha * p + omega * s -> r = s - omega * t

Parameters
[in]nint dimension n
[in]skpmagmaFloatComplex_ptr set of scalar parameters
[in]pmagmaFloatComplex_ptr input p
[in]smagmaFloatComplex_ptr input s
[in]tmagmaFloatComplex_ptr input t
[in,out]xmagmaFloatComplex_ptr input/output x
[in,out]rmagmaFloatComplex_ptr input/output r
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgmerge4()

magma_int_t magma_cbicgmerge4 ( magma_int_t  type,
magmaFloatComplex_ptr  skp,
magma_queue_t  queue 
)

Performs some parameter operations for the BiCGSTAB with scalars on GPU.

Deprecated:
Parameters
[in]typeint kernel type
[in,out]skpmagmaFloatComplex_ptr vector with parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgmerge_spmv1()

magma_int_t magma_cbicgmerge_spmv1 ( magma_c_matrix  A,
magmaFloatComplex_ptr  d1,
magmaFloatComplex_ptr  d2,
magmaFloatComplex_ptr  dp,
magmaFloatComplex_ptr  dr,
magmaFloatComplex_ptr  dv,
magmaFloatComplex_ptr  skp,
magma_queue_t  queue 
)

Merges the first SpmV using CSR with the dot product and the computation of alpha.

Deprecated:
Parameters
[in]Amagma_c_matrix system matrix
[in]d1magmaFloatComplex_ptr temporary vector
[in]d2magmaFloatComplex_ptr temporary vector
[in]dpmagmaFloatComplex_ptr input vector p
[in]drmagmaFloatComplex_ptr input vector r
[in]dvmagmaFloatComplex_ptr output vector v
[in,out]skpmagmaFloatComplex_ptr array for parameters ( skp[0]=alpha )
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgmerge_spmv2()

magma_int_t magma_cbicgmerge_spmv2 ( magma_c_matrix  A,
magmaFloatComplex_ptr  d1,
magmaFloatComplex_ptr  d2,
magmaFloatComplex_ptr  ds,
magmaFloatComplex_ptr  dt,
magmaFloatComplex_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]Amagma_c_matrix input matrix
[in]d1magmaFloatComplex_ptr temporary vector
[in]d2magmaFloatComplex_ptr temporary vector
[in]dsmagmaFloatComplex_ptr input vector s
[in]dtmagmaFloatComplex_ptr output vector t
[in,out]skpmagmaFloatComplex_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbicgmerge_xrbeta()

magma_int_t magma_cbicgmerge_xrbeta ( magma_int_t  n,
magmaFloatComplex_ptr  d1,
magmaFloatComplex_ptr  d2,
magmaFloatComplex_ptr  rr,
magmaFloatComplex_ptr  r,
magmaFloatComplex_ptr  p,
magmaFloatComplex_ptr  s,
magmaFloatComplex_ptr  t,
magmaFloatComplex_ptr  x,
magmaFloatComplex_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]nint dimension n
[in]d1magmaFloatComplex_ptr temporary vector
[in]d2magmaFloatComplex_ptr temporary vector
[in]rrmagmaFloatComplex_ptr input vector rr
[in]rmagmaFloatComplex_ptr input/output vector r
[in]pmagmaFloatComplex_ptr input vector p
[in]smagmaFloatComplex_ptr input vector s
[in]tmagmaFloatComplex_ptr input vector t
[out]xmagmaFloatComplex_ptr output vector x
[in]skpmagmaFloatComplex_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_cbcsrswp()

magma_int_t magma_cbcsrswp ( magma_int_t  n,
magma_int_t  size_b,
magma_int_t *  ipiv,
magmaFloatComplex_ptr  dx,
magma_queue_t  queue 
)

◆ magma_cbcsrtrsv()

magma_int_t magma_cbcsrtrsv ( magma_uplo_t  uplo,
magma_int_t  r_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magmaFloatComplex_ptr  dA,
magma_index_t *  blockinfo,
magmaFloatComplex_ptr  dx,
magma_queue_t  queue 
)

◆ magma_cbcsrvalcpy()

magma_int_t magma_cbcsrvalcpy ( magma_int_t  size_b,
magma_int_t  num_blocks,
magma_int_t  num_zero_blocks,
magmaFloatComplex_ptr *  dAval,
magmaFloatComplex_ptr *  dBval,
magmaFloatComplex_ptr *  dBval2,
magma_queue_t  queue 
)

◆ magma_cbcsrluegemm()

magma_int_t magma_cbcsrluegemm ( magma_int_t  size_b,
magma_int_t  num_block_rows,
magma_int_t  kblocks,
magmaFloatComplex_ptr *  dA,
magmaFloatComplex_ptr *  dB,
magmaFloatComplex_ptr *  dC,
magma_queue_t  queue 
)

◆ magma_cbcsrlupivloc()

magma_int_t magma_cbcsrlupivloc ( magma_int_t  size_b,
magma_int_t  kblocks,
magmaFloatComplex_ptr *  dA,
magma_int_t *  ipiv,
magma_queue_t  queue 
)

◆ magma_cbcsrblockinfo5()

magma_int_t magma_cbcsrblockinfo5 ( magma_int_t  lustep,
magma_int_t  num_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magma_index_t *  blockinfo,
magmaFloatComplex_ptr  dval,
magmaFloatComplex_ptr *  AII,
magma_queue_t  queue 
)

◆ magma_cthrsholdselect()

magma_int_t magma_cthrsholdselect ( magma_int_t  sampling,
magma_int_t  total_size,
magma_int_t  subset_size,
magmaFloatComplex *  val,
float *  thrs,
magma_queue_t  queue 
)

◆ magma_dorderstatistics()

magma_int_t magma_dorderstatistics ( double *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
double *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array.

Deprecated:
Parameters
[in,out]valdouble* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementdouble* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dorderstatistics_inc()

magma_int_t magma_dorderstatistics_inc ( double *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  inc,
magma_int_t  r,
double *  element,
magma_queue_t  queue 
)

Approximates the k-th smallest element in an array by using order-statistics with step-size inc.

Deprecated:
Parameters
[in,out]valdouble* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]incmagma_int_t Stepsize in the approximation.
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementdouble* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmorderstatistics()

magma_int_t magma_dmorderstatistics ( double *  val,
magma_index_t *  col,
magma_index_t *  row,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
double *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.

Deprecated:

The related arrays col and row are also reordered.

Parameters
[in,out]valdouble* Target array, will be modified during operation.
[in,out]colmagma_index_t* Target array, will be modified during operation.
[in,out]rowmagma_index_t* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementdouble* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dpartition()

magma_int_t magma_dpartition ( double *  a,
magma_int_t  size,
magma_int_t  pivot,
magma_queue_t  queue 
)

◆ magma_dmedian5()

magma_int_t magma_dmedian5 ( double *  a,
magma_queue_t  queue 
)

◆ magma_dselect()

magma_int_t magma_dselect ( double *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]adouble* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dselectrandom()

magma_int_t magma_dselectrandom ( double *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]adouble* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ddomainoverlap()

magma_int_t magma_ddomainoverlap ( magma_index_t  num_rows,
magma_int_t *  num_indices,
magma_index_t *  rowptr,
magma_index_t *  colidx,
magma_index_t *  x,
magma_queue_t  queue 
)

Generates the update list.

Deprecated:
Parameters
[in]xmagma_index_t* array to sort
[in]num_rowsmagma_int_t number of rows in matrix
[out]num_indicesmagma_int_t* number of indices in array
[in]rowptrmagma_index_t* rowpointer of matrix
[in]colidxmagma_index_t* colindices of matrix
[in]xmagma_index_t* array containing indices for domain overlap
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dvspread()

magma_int_t magma_dvspread ( magma_d_matrix x,
const char *  filename,
magma_queue_t  queue 
)

Reads in a sparse vector-block stored in COO format.

Deprecated:
Parameters
[out]xmagma_d_matrix * vector to read in
[in]filenamechar* file where vector is stored
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ddiameter()

magma_int_t magma_ddiameter ( magma_d_matrix A,
magma_queue_t  queue 
)

Computes the diameter of a sparse matrix and stores the value in diameter.

Deprecated:
Parameters
[in,out]Amagma_d_matrix* sparse matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilusetup()

magma_int_t magma_dparilusetup ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the iterative ILU iteration.

Deprecated:
Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilu_gpu()

magma_int_t magma_dparilu_gpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParILU

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilu_cpu()

magma_int_t magma_dparilu_cpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParILU

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparic_gpu()

magma_int_t magma_dparic_gpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParIC

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparic_cpu()

magma_int_t magma_dparic_cpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParIC

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparicsetup()

magma_int_t magma_dparicsetup ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Prepares the IC preconditioner via the iterative IC iteration.

Deprecated:
Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparicupdate()

magma_int_t magma_dparicupdate ( magma_d_matrix  A,
magma_d_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_d_matrix input matrix A, current target system
[in]precondmagma_d_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dapplyiteric_l()

magma_int_t magma_dapplyiteric_l ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_d_matrix RHS
[out]xmagma_d_matrix* vector to precondition
[in]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dapplyiteric_r()

magma_int_t magma_dapplyiteric_r ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_d_matrix RHS
[out]xmagma_d_matrix* vector to precondition
[in]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilu_csr()

magma_int_t magma_dparilu_csr ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the system matrix is COO, the lower triangular factor L is stored in CSR, the upper triangular factor U is transposed, then also stored in CSR (equivalent to CSC format for the non-transposed U). Every component of L and U is handled by one thread.

Parameters
[in]Amagma_d_matrix input matrix A determing initial guess & processing order
[in,out]Lmagma_d_matrix input/output matrix L containing the lower triangular factor
[in,out]Umagma_d_matrix input/output matrix U containing the upper triangular factor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dpariluupdate()

magma_int_t magma_dpariluupdate ( magma_d_matrix  A,
magma_d_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_d_matrix input matrix A, current target system
[in]precondmagma_d_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparic_csr()

magma_int_t magma_dparic_csr ( magma_d_matrix  A,
magma_d_matrix  A_CSR,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the initial guess matrix A is Magma_CSRCOO, A_CSR is CSR or CSRCOO format.

Parameters
[in]Amagma_d_matrix input matrix A - initial guess (lower triangular)
[in,out]A_CSRmagma_d_matrix input/output matrix containing the IC approximation
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dnonlinres()

magma_int_t magma_dnonlinres ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix LU,
real_Double_t *  res,
magma_queue_t  queue 
)

Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_d_matrix input sparse matrix in CSR
[in]Lmagma_d_matrix input sparse matrix in CSR
[in]Umagma_d_matrix input sparse matrix in CSR
[out]LUmagma_d_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dilures()

magma_int_t magma_dilures ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_d_matrix input sparse matrix in CSR
[in]Lmagma_d_matrix input sparse matrix in CSR
[in]Umagma_d_matrix input sparse matrix in CSR
[out]LUmagma_d_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[out]nonlinresreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dicres()

magma_int_t magma_dicres ( magma_d_matrix  A,
magma_d_matrix  C,
magma_d_matrix  CT,
magma_d_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_d_matrix input sparse matrix in CSR
[in]Cmagma_d_matrix input sparse matrix in CSR
[in]CTmagma_d_matrix input sparse matrix in CSR
[in]LUmagma_d_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* IC residual
[out]nonlinresreal_Double_t* nonlinear residual
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dinitguess()

magma_int_t magma_dinitguess ( magma_d_matrix  A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

Computes an initial guess for the ParILU/ParIC.

Deprecated:
Parameters
[in]Amagma_d_matrix sparse matrix in CSR
[out]Lmagma_d_matrix* sparse matrix in CSR
[out]Umagma_d_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dinitrecursiveLU()

magma_int_t magma_dinitrecursiveLU ( magma_d_matrix  A,
magma_d_matrix B,
magma_queue_t  queue 
)

Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.

Deprecated:
Parameters
[in]Amagma_d_matrix* sparse matrix in CSR
[out]Bmagma_d_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmLdiagadd()

magma_int_t magma_dmLdiagadd ( magma_d_matrix L,
magma_queue_t  queue 
)

Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.

Deprecated:

It does this in-place.

Parameters
[in,out]Lmagma_d_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_cup()

magma_int_t magma_dmatrix_cup ( magma_d_matrix  A,
magma_d_matrix  B,
magma_d_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

Parameters
[in]Amagma_d_matrix Input matrix 1.
[in]Bmagma_d_matrix Input matrix 2.
[out]Umagma_d_matrix* Not a real matrix, but the list of all matrix entries included in either A or B. No duplicates.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_cup_gpu()

magma_int_t magma_dmatrix_cup_gpu ( magma_d_matrix  A,
magma_d_matrix  B,
magma_d_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

This is the GPU version of the operation.

Parameters
[in]Amagma_d_matrix Input matrix 1.
[in]Bmagma_d_matrix Input matrix 2.
[out]Umagma_d_matrix* \(U = A \cup B\). If both matrices have a nonzero value in the same location, the value of A is used.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_cap()

magma_int_t magma_dmatrix_cap ( magma_d_matrix  A,
magma_d_matrix  B,
magma_d_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being in both matrices: \(U = A \cap B\).

Deprecated:

The values in U are all ones.

Parameters
[in]Amagma_d_matrix Input matrix 1.
[in]Bmagma_d_matrix Input matrix 2.
[out]Umagma_d_matrix* Not a real matrix, but the list of all matrix entries included in both A and B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_negcap()

magma_int_t magma_dmatrix_negcap ( magma_d_matrix  A,
magma_d_matrix  B,
magma_d_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of A but not of B.

Deprecated:

U = A \ B The values of A are preserved.

Parameters
[in]Amagma_d_matrix Element part of this.
[in,out]Bmagma_d_matrix Not part of this.
[out]Umagma_d_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_tril_negcap()

magma_int_t magma_dmatrix_tril_negcap ( magma_d_matrix  A,
magma_d_matrix  B,
magma_d_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of tril(A) but not of B.

Deprecated:

U = tril(A) \ B The values of A are preserved.

Parameters
[in]Amagma_d_matrix Element part of this.
[in,out]Bmagma_d_matrix Not part of this.
[out]Umagma_d_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_triu_negcap()

magma_int_t magma_dmatrix_triu_negcap ( magma_d_matrix  A,
magma_d_matrix  B,
magma_d_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being part of triu(A) but not of B.

Deprecated:

U = triu(A) \ B The values of A are preserved.

Parameters
[in]Amagma_d_matrix Element part of this.
[in]Bmagma_d_matrix Not part of this.
[out]Umagma_d_matrix*
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmatrix_abssum()

magma_int_t magma_dmatrix_abssum ( magma_d_matrix  A,
double *  sum,
magma_queue_t  queue 
)

Computes the sum of the absolute values in a matrix.

Deprecated:
Parameters
[in]Amagma_d_matrix Element list/matrix.
[out]sumdouble* Sum of the absolute values.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_thrsrm()

magma_int_t magma_dparilut_thrsrm ( magma_int_t  order,
magma_d_matrix A,
double *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_d_matrix* Matrix where elements are removed.
[in]thrsdouble* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_thrsrm_semilinked()

magma_int_t magma_dparilut_thrsrm_semilinked ( magma_d_matrix U,
magma_d_matrix US,
double *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller thrs from the matrix.

Deprecated:

It only uses the linked list and skips the `‘removed’' elements

Parameters
[in,out]Amagma_d_matrix* Matrix where elements are removed.
[in]thrsdouble* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_rmselected()

magma_int_t magma_dparilut_rmselected ( magma_d_matrix  R,
magma_d_matrix A,
magma_queue_t  queue 
)

Removes a selected list of elements from the matrix.

Deprecated:
Parameters
[in]Rmagma_d_matrix Matrix containing elements to be removed.
[in,out]Amagma_d_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_selectoneperrow()

magma_int_t magma_dparilut_selectoneperrow ( magma_int_t  order,
magma_d_matrix A,
magma_d_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_d_matrix* Matrix where elements are removed.
[out]oneAmagma_d_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_selecttwoperrow()

magma_int_t magma_dparilut_selecttwoperrow ( magma_int_t  order,
magma_d_matrix A,
magma_d_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_d_matrix* Matrix where elements are removed.
[out]oneAmagma_d_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_selectoneperrowthrs_lower()

magma_int_t magma_dparilut_selectoneperrowthrs_lower ( magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix A,
double  rtol,
magma_d_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_d_matrix Current lower triangular factor.
[in]Umagma_d_matrix Current upper triangular factor.
[in]Amagma_d_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_d_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_selectoneperrowthrs_upper()

magma_int_t magma_dparilut_selectoneperrowthrs_upper ( magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix A,
double  rtol,
magma_d_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_d_matrix Current lower triangular factor.
[in]Umagma_d_matrix Current upper triangular factor.
[in]Amagma_d_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_d_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_selectonepercol()

magma_int_t magma_dparilut_selectonepercol ( magma_int_t  order,
magma_d_matrix A,
magma_d_matrix oneA,
magma_queue_t  queue 
)

◆ magma_dparilut_transpose_select_one()

magma_int_t magma_dparilut_transpose_select_one ( magma_d_matrix  A,
magma_d_matrix B,
magma_queue_t  queue 
)

This is a special routine with very limited scope.

Deprecated:

For a set of fill-in candidates in row-major format, it transposes the a submatrix, i.e. the submatrix consisting of the largest element in every column. This function is only useful for delta<=1.

Parameters
[in]Amagma_d_matrix Matrix to transpose.
[out]Bmagma_d_matrix* Transposed matrix containing only largest elements in each col.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_insert_LU()

magma_int_t magma_dparilut_insert_LU ( magma_int_t  num_rm,
magma_index_t *  rm_loc,
magma_index_t *  rm_loc2,
magma_d_matrix LU_new,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

◆ magma_dparilut_set_thrs()

magma_int_t magma_dparilut_set_thrs ( magma_int_t  num_rm,
magma_d_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

◆ magma_dparilut_set_approx_thrs()

magma_int_t magma_dparilut_set_approx_thrs ( magma_int_t  num_rm,
magma_d_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_d_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_set_thrs_randomselect()

magma_int_t magma_dparilut_set_thrs_randomselect ( magma_int_t  num_rm,
magma_d_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_d_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_set_thrs_randomselect_approx()

magma_int_t magma_dparilut_set_thrs_randomselect_approx ( magma_int_t  num_rm,
magma_d_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_d_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_set_thrs_randomselect_factors()

magma_int_t magma_dparilut_set_thrs_randomselect_factors ( magma_int_t  num_rm,
magma_d_matrix L,
magma_d_matrix U,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_d_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_set_exact_thrs()

magma_int_t magma_dparilut_set_exact_thrs ( magma_int_t  num_rm,
magma_d_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_d_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_set_approx_thrs_inc()

magma_int_t magma_dparilut_set_approx_thrs_inc ( magma_int_t  num_rm,
magma_d_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_d_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_LU_approx_thrs()

magma_int_t magma_dparilut_LU_approx_thrs ( magma_int_t  num_rm,
magma_d_matrix L,
magma_d_matrix U,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

◆ magma_dparilut_reorder()

magma_int_t magma_dparilut_reorder ( magma_d_matrix LU,
magma_queue_t  queue 
)

This routine reorders the matrix (inplace) for easier access.

Deprecated:
Parameters
[in]LUmagma_d_matrix* Current ILU approximation.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparict_sweep()

magma_int_t magma_dparict_sweep ( magma_d_matrix A,
magma_d_matrix LU,
magma_queue_t  queue 
)

◆ magma_dparilut_zero()

magma_int_t magma_dparilut_zero ( magma_d_matrix A,
magma_queue_t  queue 
)

◆ magma_dparilu_sweep()

magma_int_t magma_dparilu_sweep ( magma_d_matrix  A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep.

Deprecated:

Input and output array are identical.

Parameters
[in]Amagma_d_matrix System matrix in COO.
[in]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_d_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilu_sweep_sync()

magma_int_t magma_dparilu_sweep_sync ( magma_d_matrix  A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_d_matrix System matrix in COO.
[in]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_d_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparic_sweep()

magma_int_t magma_dparic_sweep ( magma_d_matrix  A,
magma_d_matrix L,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep (symmetric case).

Deprecated:

Input and output array is identical.

Parameters
[in]Amagma_d_matrix System matrix in COO.
[in]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparic_sweep_sync()

magma_int_t magma_dparic_sweep_sync ( magma_d_matrix  A,
magma_d_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep (symmetric case).

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_d_matrix System matrix in COO.
[in]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparict_sweep_sync()

magma_int_t magma_dparict_sweep_sync ( magma_d_matrix A,
magma_d_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_d_matrix* System matrix.
[in]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_d_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[out]L_newmagma_d_matrix* Current approximation for the lower triangular factor The format is unsorted CSR.
[out]U_newmagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_sweep_sync()

magma_int_t magma_dparilut_sweep_sync ( magma_d_matrix A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A.

This is the CPU version of the synchronous ParILUT sweep.

Parameters
[in]Amagma_d_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_d_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_sweep_gpu()

magma_int_t magma_dparilut_sweep_gpu ( magma_d_matrix A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A. L has a unit diagonal.

This is the GPU version of the asynchronous ParILUT sweep.

Parameters
[in]Amagma_d_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_d_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_residuals_gpu()

magma_int_t magma_dparilut_residuals_gpu ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_d_matrix System matrix. The format is sorted CSR.
[in]Lmagma_d_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]Umagma_d_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Rmagma_d_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dthrsholdrm_gpu()

magma_int_t magma_dthrsholdrm_gpu ( magma_int_t  order,
magma_d_matrix A,
double *  thrs,
magma_queue_t  queue 
)
Deprecated:
Purpose

This routine selects a threshold separating the subset_size smallest
magnitude elements from the rest.




@param[in]
order       magma_int_t 
            dummy variable for now.

@param[in,out]
A           magma_d_matrix*  
            input/output matrix where elements are removed

@param[out]
thrs        double*  
            computed threshold

@param[in]
queue       magma_queue_t
            Queue to execute in.

@ingroup magmasparse_daux

◆ magma_dget_row_ptr()

magma_int_t magma_dget_row_ptr ( const magma_int_t  num_rows,
magma_int_t *  nnz,
const magma_index_t *  rowidx,
magma_index_t *  rowptr,
magma_queue_t  queue 
)

◆ magma_dparilut_align_residuals()

magma_int_t magma_dparilut_align_residuals ( magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix Lnew,
magma_d_matrix Unew,
magma_queue_t  queue 
)

This function scales the residuals of a lower triangular factor L with the diagonal of U.

Deprecated:

The intention is to generate a good initial guess for inserting the elements.

Parameters
[in]Lmagma_d_matrix Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_d_matrix Current approximation for the upper triangular factor The format is sorted CSC.
[in]hLmagma_d_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]hUmagma_d_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_preselect_scale()

magma_int_t magma_dparilut_preselect_scale ( magma_d_matrix L,
magma_d_matrix oneL,
magma_d_matrix U,
magma_d_matrix oneU,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_d_matrix* Matrix where elements are removed.
[in]Umagma_d_matrix* Matrix where elements are removed.
[out]oneLmagma_d_matrix* Matrix where elements are removed.
[out]oneUmagma_d_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_thrsrm_U()

magma_int_t magma_dparilut_thrsrm_U ( magma_int_t  order,
magma_d_matrix  L,
magma_d_matrix A,
double *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_d_matrix* Matrix where elements are removed.
[in]thrsdouble* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_residuals()

magma_int_t magma_dparilut_residuals ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_d_matrix System matrix A.
[in]Lmagma_d_matrix Current approximation for the lower triangular factor. The format is sorted CSR.
[in]Umagma_d_matrix Current approximation for the upper triangular factor. The format is sorted CSR.
[in,out]Rmagma_d_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_residuals_transpose()

magma_int_t magma_dparilut_residuals_transpose ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix U_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_d_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_residuals_semilinked()

magma_int_t magma_dparilut_residuals_semilinked ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  US,
magma_d_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_d_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_sweep_semilinked()

magma_int_t magma_dparilut_sweep_semilinked ( magma_d_matrix A,
magma_d_matrix L,
magma_d_matrix US,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_d_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_sweep_list()

magma_int_t magma_dparilut_sweep_list ( magma_d_matrix A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_d_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_residuals_list()

magma_int_t magma_dparilut_residuals_list ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_d_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_sweep_linkedlist()

magma_int_t magma_dparilut_sweep_linkedlist ( magma_d_matrix A,
magma_d_matrix L,
magma_d_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_d_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_d_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_residuals_linkedlist()

magma_int_t magma_dparilut_residuals_linkedlist ( magma_d_matrix  A,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_d_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_colmajor()

magma_int_t magma_dparilut_colmajor ( magma_d_matrix  A,
magma_d_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_d_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_d_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_colmajorup()

magma_int_t magma_dparilut_colmajorup ( magma_d_matrix  A,
magma_d_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_d_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_d_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A. Already allocated.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparict()

magma_int_t magma_dparict ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete Cholesky preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.

This function requires OpenMP, and is only available if OpenMP is activated.

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparict_cpu()

magma_int_t magma_dparict_cpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern. It is the variant for SPD systems.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut()

magma_int_t magma_dparilut ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete LU preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_cpu()

magma_int_t magma_dparilut_cpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_gpu()

magma_int_t magma_dparilut_gpu ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_gpu_nodp()

magma_int_t magma_dparilut_gpu_nodp ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

This routine is the same as magma_dparilut_gpu(), except that it uses no dynamic paralellism

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_insert()

magma_int_t magma_dparilut_insert ( magma_int_t *  num_rmL,
magma_int_t *  num_rmU,
magma_index_t *  rm_locL,
magma_index_t *  rm_locU,
magma_d_matrix L_new,
magma_d_matrix U_new,
magma_d_matrix L,
magma_d_matrix U,
magma_d_matrix UR,
magma_queue_t  queue 
)

Inserts for the iterative dynamic ILU an new element in the (empty) place.

Deprecated:
Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced in L.
[in]num_rmUmagma_int_t Number of Elements that are replaced in U.
[in]rm_locLmagma_index_t* List containing the locations of the deleted elements.
[in]rm_locUmagma_index_t* List containing the locations of the deleted elements.
[in]L_newmagma_d_matrix Elements that will be inserted in L stored in COO format (unsorted).
[in]U_newmagma_d_matrix Elements that will be inserted in U stored in COO format (unsorted).
[in,out]Lmagma_d_matrix* matrix where new elements are inserted. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]Umagma_d_matrix* matrix where new elements are inserted. Row-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]URmagma_d_matrix* Same matrix as U, but column-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_create_collinkedlist()

magma_int_t magma_dparilut_create_collinkedlist ( magma_d_matrix  A,
magma_d_matrix B,
magma_queue_t  queue 
)

For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.

Deprecated:
Parameters
[in]Amagma_d_matrix Matrix to transpose.
[out]Bmagma_d_matrix* Transposed matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_candidates()

magma_int_t magma_dparilut_candidates ( magma_d_matrix  L0,
magma_d_matrix  U0,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix L_new,
magma_d_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_d_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_d_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_d_matrix Current lower triangular factor.
[in]Umagma_d_matrix Current upper triangular factor.
[in,out]LU_newmagma_d_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_d_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_candidates_gpu()

magma_int_t magma_dparilut_candidates_gpu ( magma_d_matrix  L0,
magma_d_matrix  U0,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix L_new,
magma_d_matrix U_new,
magma_queue_t  queue 
)

This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.

Deprecated:

Nonzero ILU residuals are possible 1 where A is nonzero but L and U have no nonzero entry 2 where the product L*U has fill-in but the location is not included in L or U

We assume that the incomplete factors are exact fro the elements included in the current pattern.

This is the GPU implementation of the candidate search.

2 GPU kernels are used: the first is a dry run assessing the memory need, the second then computes the candidate locations, the third eliminates double entries. The fourth kernel ensures the elements in a row are sorted for increasing column index.

Parameters
[in]L0magma_d_matrix tril(ILU(0) ) pattern of original system matrix.
[in]U0magma_d_matrix triu(ILU(0) ) pattern of original system matrix.
[in]Lmagma_d_matrix Current lower triangular factor.
[in]Umagma_d_matrix Current upper triangular factor.
[in,out]L_newmagma_d_matrix* List of candidates for L in COO format.
[in,out]U_newmagma_d_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparict_candidates()

magma_int_t magma_dparict_candidates ( magma_d_matrix  L0,
magma_d_matrix  L,
magma_d_matrix  LT,
magma_d_matrix L_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_d_matrix tril( ILU(0) ) pattern of original system matrix.
[in]Lmagma_d_matrix Current lower triangular factor.
[in]LTmagma_d_matrix Transose of the lower triangular factor.
[in,out]L_newmagma_d_matrix* List of candidates for L in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_candidates_semilinked()

magma_int_t magma_dparilut_candidates_semilinked ( magma_d_matrix  L0,
magma_d_matrix  U0,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix  UT,
magma_d_matrix L_new,
magma_d_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_d_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_d_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_d_matrix Current lower triangular factor.
[in]Umagma_d_matrix Current upper triangular factor transposed.
[in]URmagma_d_matrix Current upper triangular factor - col-pointer and col-list.
[in,out]LU_newmagma_d_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_d_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_candidates_linkedlist()

magma_int_t magma_dparilut_candidates_linkedlist ( magma_d_matrix  L0,
magma_d_matrix  U0,
magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix  UR,
magma_d_matrix L_new,
magma_d_matrix U_new,
magma_queue_t  queue 
)

◆ magma_dparilut_rm_thrs()

magma_int_t magma_dparilut_rm_thrs ( double *  thrs,
magma_int_t *  num_rm,
magma_d_matrix LU,
magma_d_matrix LU_new,
magma_index_t *  rm_loc,
magma_queue_t  queue 
)

This routine removes matrix entries from the structure that are smaller than the threshold.

Deprecated:

It only counts the elements deleted, does not save the locations.

Parameters
[out]thrsdouble* Thrshold for removing elements.
[out]num_rmmagma_int_t* Number of Elements that have been removed.
[in,out]LUmagma_d_matrix* Current ILU approximation where the identified smallest components are deleted.
[in,out]LUCmagma_d_matrix* Corresponding col-list.
[in,out]LU_newmagma_d_matrix* List of candidates in COO format.
[out]rm_locmagma_index_t* List containing the locations of the elements deleted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_count()

magma_int_t magma_dparilut_count ( magma_d_matrix  L,
magma_int_t *  num,
magma_queue_t  queue 
)

This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.

Deprecated:
Parameters
[in]Lmagma_d_matrix* Matrix in Magm_CSRLIST format
[out]nummagma_index_t* Number of elements counted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_randlist()

magma_int_t magma_dparilut_randlist ( magma_d_matrix LU,
magma_queue_t  queue 
)

◆ magma_dparilut_select_candidates_L()

magma_int_t magma_dparilut_select_candidates_L ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_d_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_d_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_d_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_select_candidates_U()

magma_int_t magma_dparilut_select_candidates_U ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_d_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_d_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_d_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dparilut_preselect()

magma_int_t magma_dparilut_preselect ( magma_int_t  order,
magma_d_matrix A,
magma_d_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_d_matrix* Matrix where elements are removed.
[out]oneAmagma_d_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dpreselect_gpu()

magma_int_t magma_dpreselect_gpu ( magma_int_t  order,
magma_d_matrix A,
magma_d_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_d_matrix* Matrix where elements are removed.
[out]oneAmagma_d_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dsampleselect()

magma_int_t magma_dsampleselect ( magma_int_t  total_size,
magma_int_t  subset_size,
double *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valdouble array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dsampleselect_approx()

magma_int_t magma_dsampleselect_approx ( magma_int_t  total_size,
magma_int_t  subset_size,
double *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valdouble array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dsampleselect_nodp()

magma_int_t magma_dsampleselect_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
double *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valdouble array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dsampleselect_approx_nodp()

magma_int_t magma_dsampleselect_approx_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
double *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valdouble array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmprepare_batched()

magma_int_t magma_dmprepare_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix  L,
magma_d_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
double *  trisystems,
double *  rhs,
magma_queue_t  queue 
)

Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.

Deprecated:
  • padded with zeros to size 32x32 an array containing the RHS
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_d_matrix Matrix in CSR format
[in]LCmagma_d_matrix same matrix, also CSR, but col-major
[in,out]sizesmagma_int_t* Number of Elements that are replaced.
[in,out]locationsmagma_int_t* Array indicating the locations.
[in,out]trisystemsdouble* trisystems
[in,out]rhsdouble* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmtrisolve_batched()

magma_int_t magma_dmtrisolve_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix  L,
magma_d_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
double *  trisystems,
double *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_d_matrix Matrix in CSR format
[in]LCmagma_d_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsdouble* trisystems
[out]rhsdouble* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmbackinsert_batched()

magma_int_t magma_dmbackinsert_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
double *  trisystems,
double *  rhs,
magma_queue_t  queue 
)

Inserts the values into the preconditioner matrix.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in,out]Mmagma_d_matrix* SPAI preconditioner CSR col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsdouble* trisystems
[out]rhsdouble* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmprepare_batched_gpu()

magma_int_t magma_dmprepare_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix  L,
magma_d_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
double *  trisystems,
double *  rhs,
magma_queue_t  queue 
)

◆ magma_dmtrisolve_batched_gpu()

magma_int_t magma_dmtrisolve_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix  L,
magma_d_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
double *  trisystems,
double *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_d_matrix Matrix in CSR format
[in]LCmagma_d_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsdouble* trisystems
[out]rhsdouble* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmbackinsert_batched_gpu()

magma_int_t magma_dmbackinsert_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
double *  trisystems,
double *  rhs,
magma_queue_t  queue 
)

◆ magma_diluisaisetup_lower()

magma_int_t magma_diluisaisetup_lower ( magma_d_matrix  L,
magma_d_matrix  S,
magma_d_matrix ISAIL,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the lower triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Lmagma_d_matrix lower triangular factor
[in]Smagma_d_matrix pattern for the ISAI preconditioner for L
[out]ISAILmagma_d_matrix* ISAI preconditioner for L
[in]queuemagma_queue_t Queue to execute in.

◆ magma_diluisaisetup_upper()

magma_int_t magma_diluisaisetup_upper ( magma_d_matrix  U,
magma_d_matrix  S,
magma_d_matrix ISAIU,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the upper triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Umagma_d_matrix lower triangular factor
[in]Smagma_d_matrix pattern for the ISAI preconditioner for U
[out]ISAIUmagma_d_matrix* ISAI preconditioner for U
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dicisaisetup()

magma_int_t magma_dicisaisetup ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_disai_l()

magma_int_t magma_disai_l ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_d_matrix input RHS b
[in,out]xmagma_d_matrix solution x
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_disai_r()

magma_int_t magma_disai_r ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_d_matrix input RHS b
[in,out]xmagma_d_matrix solution x
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_disai_l_t()

magma_int_t magma_disai_l_t ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_d_matrix input RHS b
[in,out]xmagma_d_matrix solution x
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_disai_r_t()

magma_int_t magma_disai_r_t ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_d_matrix input RHS b
[in,out]xmagma_d_matrix solution x
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmiluisai_sizecheck()

magma_int_t magma_dmiluisai_sizecheck ( magma_d_matrix  A,
magma_index_t  batchsize,
magma_index_t *  maxsize,
magma_queue_t  queue 
)

◆ magma_dgeisai_maxblock()

magma_int_t magma_dgeisai_maxblock ( magma_d_matrix  L,
magma_d_matrix MT,
magma_queue_t  queue 
)

This routine maximizes the pattern for the ISAI preconditioner.

Deprecated:

Precisely, it computes L, L^2, L^3, L^4, L^5 and then selects the columns of M_L such that the nonzer-per-column are the lower max than the implementation-specific limit (32).

The input is the original matrix (row-major) The output is already col-major.

Parameters
[in,out]Lmagma_d_matrix Incomplete factor.
[in,out]MTmagma_d_matrix* SPAI preconditioner structure, CSR col-major.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_disai_generator_regs()

magma_int_t magma_disai_generator_regs ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_d_matrix  L,
magma_d_matrix M,
magma_queue_t  queue 
)

This routine is designet to combine all kernels into one.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_d_matrix triangular factor for which the ISAI matrix is computed. Col-Major CSR storage.
[in,out]Mmagma_d_matrix* SPAI preconditioner CSR col-major
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmsupernodal()

magma_int_t magma_dmsupernodal ( magma_int_t *  max_bs,
magma_d_matrix  A,
magma_d_matrix S,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with block-size bs.

Deprecated:
Parameters
[in,out]max_bsmagma_int_t* Size of the largest diagonal block.
[in]Amagma_d_matrix System matrix.
[in,out]Smagma_d_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmvarsizeblockstruct()

magma_int_t magma_dmvarsizeblockstruct ( magma_int_t  n,
magma_int_t *  bs,
magma_int_t  bsl,
magma_uplo_t  uplotype,
magma_d_matrix A,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with variable block-size.

Deprecated:
Parameters
[in]nmagma_int_t Size of the matrix.
[in]bsmagma_int_t* Vector containing the size of the diagonal blocks.
[in]bslmagma_int_t Size of the vector containing the block sizes.
[in]uplotypemagma_uplo_t lower or upper triangular
[in,out]Amagma_d_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dtfqmr_unrolled()

magma_int_t magma_dtfqmr_unrolled ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a real matrix A.

Deprecated:

This is a GPU implementation of the transpose-free Quasi-Minimal Residual method (TFQMR).

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgstab_merge2()

magma_int_t magma_dbicgstab_merge2 ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_dbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgstab_merge3()

magma_int_t magma_dbicgstab_merge3 ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_dbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_djacobidomainoverlap()

magma_int_t magma_djacobidomainoverlap ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Jacobi method allowing for domain overlap.

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbaiter()

magma_int_t magma_dbaiter ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_d_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:
Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]precond_parmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbaiter_overlap()

magma_int_t magma_dbaiter_overlap ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_d_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:

It used restricted additive Schwarz overlap in top-down direction.

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]precond_parmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dftjacobicontractions()

magma_int_t magma_dftjacobicontractions ( magma_d_matrix  xkm2,
magma_d_matrix  xkm1,
magma_d_matrix  xk,
magma_d_matrix z,
magma_d_matrix c,
magma_queue_t  queue 
)

Computes the contraction coefficients c_i:

Deprecated:

c_i = z_i^{k-1} / z_i^{k}

= | x_i^{k-1} - x_i^{k-2} | / |  x_i^{k} - x_i^{k-1} |
Parameters
[in]xkm2magma_d_matrix vector x^{k-2}
[in]xkm1magma_d_matrix vector x^{k-2}
[in]xkmagma_d_matrix vector x^{k-2}
[out]zmagma_d_matrix* ratio
[out]cmagma_d_matrix* contraction coefficients
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dftjacobiupdatecheck()

magma_int_t magma_dftjacobiupdatecheck ( double  delta,
magma_d_matrix xold,
magma_d_matrix xnew,
magma_d_matrix zprev,
magma_d_matrix  c,
magma_int_t *  flag_t,
magma_int_t *  flag_fp,
magma_queue_t  queue 
)

Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.

Deprecated:
Parameters
[in]deltadouble threshold
[in,out]xoldmagma_d_matrix* vector xold
[in,out]xnewmagma_d_matrix* vector xnew
[in,out]zprevmagma_d_matrix* vector z = | x_k-1 - x_k |
[in]cmagma_d_matrix contraction coefficients
[in,out]flag_tmagma_int_t threshold condition
[in,out]flag_fpmagma_int_t false positive condition
[in]queuemagma_queue_t Queue to execute in.

◆ magma_diterref()

magma_int_t magma_diterref ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_d_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Iterative Refinement method. The inner solver is passed via the preconditioner argument.

Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix RHS b
[in,out]xmagma_d_matrix* solution approximation
[in,out]solver_parmagma_d_solver_par* solver parameters
[in,out]precond_parmagma_d_preconditioner* inner solver
[in]queuemagma_queue_t Queue to execute in.

◆ magma_djacobiiter_sys()

magma_int_t magma_djacobiiter_sys ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix  d,
magma_d_matrix  t,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input.

Parameters
[in]Amagma_d_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_d_matrix input RHS b
[in]dmagma_d_matrix input matrix diagonal elements diag(A)
[in]tmagma_d_matrix temporary vector
[in,out]xmagma_d_matrix* iteration vector x
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dftjacobi()

magma_int_t magma_dftjacobi ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_matrix x,
magma_d_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input. This is the fault-tolerant version of Jacobi according to ScalLA'15.

Parameters
[in]Amagma_d_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_d_matrix input RHS b
[in,out]xmagma_d_matrix* iteration vector x
[in,out]solver_parmagma_d_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dilut_saad()

magma_int_t magma_dilut_saad ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_dilut_saad_apply()

magma_int_t magma_dilut_saad_apply ( magma_d_matrix  b,
magma_d_matrix x,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_dcustomilusetup()

magma_int_t magma_dcustomilusetup ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete LU preconditioner.

Deprecated:
Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dcustomicsetup()

magma_int_t magma_dcustomicsetup ( magma_d_matrix  A,
magma_d_matrix  b,
magma_d_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete Cholesky preconditioner.

Deprecated:
Parameters
[in]Amagma_d_matrix input matrix A
[in]bmagma_d_matrix input RHS b
[in,out]precondmagma_d_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbajac_csr()

magma_int_t magma_dbajac_csr ( magma_int_t  localiters,
magma_d_matrix  D,
magma_d_matrix  R,
magma_d_matrix  b,
magma_d_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]Dmagma_d_matrix input matrix with diagonal blocks
[in]Rmagma_d_matrix input matrix with non-diagonal parts
[in]bmagma_d_matrix RHS
[in]xmagma_d_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbajac_csr_overlap()

magma_int_t magma_dbajac_csr_overlap ( magma_int_t  localiters,
magma_int_t  matrices,
magma_int_t  overlap,
magma_d_matrix D,
magma_d_matrix R,
magma_d_matrix  b,
magma_d_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]matricesmagma_int_t number of sub-matrices
[in]overlapmagma_int_t size of the overlap
[in]Dmagma_d_matrix* set of matrices with diagonal blocks
[in]Rmagma_d_matrix* set of matrices with non-diagonal parts
[in]bmagma_d_matrix RHS
[in]xmagma_d_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmlumerge()

magma_int_t magma_dmlumerge ( magma_d_matrix  L,
magma_d_matrix  U,
magma_d_matrix A,
magma_queue_t  queue 
)

Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.

Deprecated:
Parameters
[in]Lmagma_d_matrix input strictly lower triangular matrix L
[in]Umagma_d_matrix input upper triangular matrix U
[out]Amagma_d_matrix* output matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dgeaxpy()

magma_int_t magma_dgeaxpy ( double  alpha,
magma_d_matrix  X,
double  beta,
magma_d_matrix Y,
magma_queue_t  queue 
)

This routine computes Y = alpha * X + beta * Y on the GPU.

Deprecated:

The input format is magma_d_matrix. It can handle both, dense matrix (vector block) and CSR matrices. For the latter, it interfaces the cuSPARSE library.

Parameters
[in]alphadouble scalar multiplier.
[in]Xmagma_d_matrix input/output matrix Y.
[in]betadouble scalar multiplier.
[in,out]Ymagma_d_matrix* input matrix X.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dgecsrreimsplit()

magma_int_t magma_dgecsrreimsplit ( magma_d_matrix  A,
magma_d_matrix ReA,
magma_d_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_d_matrix input matrix A.
[out]ReAmagma_d_matrix* output matrix contaning real contributions.
[out]ImAmagma_d_matrix* output matrix contaning real contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dgedensereimsplit()

magma_int_t magma_dgedensereimsplit ( magma_d_matrix  A,
magma_d_matrix ReA,
magma_d_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_d_matrix input matrix A.
[out]ReAmagma_d_matrix* output matrix contaning real contributions.
[out]ImAmagma_d_matrix* output matrix contaning real contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dgecsr5mv()

magma_int_t magma_dgecsr5mv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  p,
double  alpha,
magma_int_t  sigma,
magma_int_t  bit_y_offset,
magma_int_t  bit_scansum_offset,
magma_int_t  num_packet,
magmaUIndex_ptr  dtile_ptr,
magmaUIndex_ptr  dtile_desc,
magmaIndex_ptr  dtile_desc_offset_ptr,
magmaIndex_ptr  dtile_desc_offset,
magmaDouble_ptr  dcalibrator,
magma_int_t  tail_tile_start,
magmaDouble_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDouble_ptr  dx,
double  beta,
magmaDouble_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Deprecated:

The input format is CSR5 (val (tile-wise column-major), row_pointer, col (tile-wise column-major), tile_pointer, tile_desc).

Parameters
[in]transAmagma_trans_t transposition parameter for A
[in]mmagma_int_t number of rows in A
[in]nmagma_int_t number of columns in A
[in]pmagma_int_t number of tiles in A
[in]alphadouble scalar multiplier
[in]sigmamagma_int_t sigma in A in CSR5
[in]bit_y_offsetmagma_int_t bit_y_offset in A in CSR5
[in]bit_scansum_offsetmagma_int_t bit_scansum_offset in A in CSR5
[in]num_packetmagma_int_t num_packet in A in CSR5
[in]dtile_ptrmagmaUIndex_ptr tilepointer of A in CSR5
[in]dtile_descmagmaUIndex_ptr tiledescriptor of A in CSR5
[in]dtile_desc_offset_ptrmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dtile_desc_offsetmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dcalibratormagmaDouble_ptr calibrator of A in CSR5
[in]tail_tile_startmagma_int_t start of the last tile in A
[in]dvalmagmaDouble_ptr array containing values of A in CSR
[in]dvalmagmaDouble_ptr array containing values of A in CSR
[in]drowptrmagmaIndex_ptr rowpointer of A in CSR
[in]dcolindmagmaIndex_ptr columnindices of A in CSR
[in]dxmagmaDouble_ptr input vector x
[in]betadouble scalar multiplier
[out]dymagmaDouble_ptr input/output vector y
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dcopyscale()

magma_int_t magma_dcopyscale ( magma_int_t  n,
magma_int_t  k,
magmaDouble_ptr  r,
magmaDouble_ptr  v,
magmaDouble_ptr  skp,
magma_queue_t  queue 
)

Computes the correction term of the pipelined GMRES according to P.

Deprecated:

Ghysels and scales and copies the new search direction

Returns the vector v = r/ ( skp[k] - (sum_i=1^k skp[i]^2) ) .

Parameters
[in]nint length of v_i
[in]kint

skp entries v_i^T * r ( without r )

Parameters
[in]rmagmaDouble_ptr vector of length n
[in]vmagmaDouble_ptr vector of length n
[in]skpmagmaDouble_ptr array of parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dnrm2scale()

magma_int_t magma_dnrm2scale ( magma_int_t  m,
magmaDouble_ptr  dr,
magma_int_t  lddr,
double *  drnorm,
magma_queue_t  queue 
)

◆ magma_djacobispmvupdate_bw()

magma_int_t magma_djacobispmvupdate_bw ( magma_int_t  maxiter,
magma_d_matrix  A,
magma_d_matrix  t,
magma_d_matrix  b,
magma_d_matrix  d,
magma_d_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax) This kernel processes the thread blocks in reversed order.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]Amagma_d_matrix system matrix
[in]tmagma_d_matrix workspace
[in]bmagma_d_matrix RHS b
[in]dmagma_d_matrix vector with diagonal entries
[out]xmagma_d_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_djacobispmvupdateselect()

magma_int_t magma_djacobispmvupdateselect ( magma_int_t  maxiter,
magma_int_t  num_updates,
magma_index_t *  indices,
magma_d_matrix  A,
magma_d_matrix  t,
magma_d_matrix  b,
magma_d_matrix  d,
magma_d_matrix  tmp,
magma_d_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax)

This kernel allows for overlapping domains: the indices-array contains the locations that are updated. Locations may be repeated to simulate overlapping domains.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]num_updatesmagma_int_t number of updates - length of the indices array
[in]indicesmagma_index_t* indices, which entries of x to update
[in]Amagma_d_matrix system matrix
[in]tmagma_d_matrix workspace
[in]bmagma_d_matrix RHS b
[in]dmagma_d_matrix vector with diagonal entries
[in]tmpmagma_d_matrix workspace
[out]xmagma_d_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dmergeblockkrylov()

magma_int_t magma_dmergeblockkrylov ( magma_int_t  num_rows,
magma_int_t  num_cols,
magmaDouble_ptr  alpha,
magmaDouble_ptr  p,
magmaDouble_ptr  x,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

v = y / rho y = y / rho w = wt / psi z = z / psi

Parameters
[in]num_rowsmagma_int_t dimension m
[in]num_colsmagma_int_t dimension n
[in]alphamagmaDouble_ptr matrix containing all SKP
[in]pmagmaDouble_ptr search directions
[in,out]xmagmaDouble_ptr approximation vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgmerge1()

magma_int_t magma_dbicgmerge1 ( magma_int_t  n,
magmaDouble_ptr  skp,
magmaDouble_ptr  v,
magmaDouble_ptr  r,
magmaDouble_ptr  p,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

p = beta*p p = p-omega*beta*v p = p+r

-> p = r + beta * ( p - omega * v )

Parameters
[in]nint dimension n
[in]skpmagmaDouble_ptr set of scalar parameters
[in]vmagmaDouble_ptr input vector v
[in]rmagmaDouble_ptr input vector r
[in,out]pmagmaDouble_ptr input/output vector p
[in]queuemagma_queue_t queue to execute in.

◆ magma_dbicgmerge2()

magma_int_t magma_dbicgmerge2 ( magma_int_t  n,
magmaDouble_ptr  skp,
magmaDouble_ptr  r,
magmaDouble_ptr  v,
magmaDouble_ptr  s,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

s=r s=s-alpha*v

-> s = r - alpha * v

Parameters
[in]nint dimension n
[in]skpmagmaDouble_ptr set of scalar parameters
[in]rmagmaDouble_ptr input vector r
[in]vmagmaDouble_ptr input vector v
[out]smagmaDouble_ptr output vector s
[in]queuemagma_queue_t queue to execute in.

◆ magma_dbicgmerge3()

magma_int_t magma_dbicgmerge3 ( magma_int_t  n,
magmaDouble_ptr  skp,
magmaDouble_ptr  p,
magmaDouble_ptr  s,
magmaDouble_ptr  t,
magmaDouble_ptr  x,
magmaDouble_ptr  r,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

x=x+alpha*p x=x+omega*s r=s r=r-omega*t

-> x = x + alpha * p + omega * s -> r = s - omega * t

Parameters
[in]nint dimension n
[in]skpmagmaDouble_ptr set of scalar parameters
[in]pmagmaDouble_ptr input p
[in]smagmaDouble_ptr input s
[in]tmagmaDouble_ptr input t
[in,out]xmagmaDouble_ptr input/output x
[in,out]rmagmaDouble_ptr input/output r
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgmerge4()

magma_int_t magma_dbicgmerge4 ( magma_int_t  type,
magmaDouble_ptr  skp,
magma_queue_t  queue 
)

Performs some parameter operations for the BiCGSTAB with scalars on GPU.

Deprecated:
Parameters
[in]typeint kernel type
[in,out]skpmagmaDouble_ptr vector with parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgmerge_spmv1()

magma_int_t magma_dbicgmerge_spmv1 ( magma_d_matrix  A,
magmaDouble_ptr  d1,
magmaDouble_ptr  d2,
magmaDouble_ptr  dp,
magmaDouble_ptr  dr,
magmaDouble_ptr  dv,
magmaDouble_ptr  skp,
magma_queue_t  queue 
)

Merges the first SpmV using CSR with the dot product and the computation of alpha.

Deprecated:
Parameters
[in]Amagma_d_matrix system matrix
[in]d1magmaDouble_ptr temporary vector
[in]d2magmaDouble_ptr temporary vector
[in]dpmagmaDouble_ptr input vector p
[in]drmagmaDouble_ptr input vector r
[in]dvmagmaDouble_ptr output vector v
[in,out]skpmagmaDouble_ptr array for parameters ( skp[0]=alpha )
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgmerge_spmv2()

magma_int_t magma_dbicgmerge_spmv2 ( magma_d_matrix  A,
magmaDouble_ptr  d1,
magmaDouble_ptr  d2,
magmaDouble_ptr  ds,
magmaDouble_ptr  dt,
magmaDouble_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]Amagma_d_matrix input matrix
[in]d1magmaDouble_ptr temporary vector
[in]d2magmaDouble_ptr temporary vector
[in]dsmagmaDouble_ptr input vector s
[in]dtmagmaDouble_ptr output vector t
[in,out]skpmagmaDouble_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbicgmerge_xrbeta()

magma_int_t magma_dbicgmerge_xrbeta ( magma_int_t  n,
magmaDouble_ptr  d1,
magmaDouble_ptr  d2,
magmaDouble_ptr  rr,
magmaDouble_ptr  r,
magmaDouble_ptr  p,
magmaDouble_ptr  s,
magmaDouble_ptr  t,
magmaDouble_ptr  x,
magmaDouble_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]nint dimension n
[in]d1magmaDouble_ptr temporary vector
[in]d2magmaDouble_ptr temporary vector
[in]rrmagmaDouble_ptr input vector rr
[in]rmagmaDouble_ptr input/output vector r
[in]pmagmaDouble_ptr input vector p
[in]smagmaDouble_ptr input vector s
[in]tmagmaDouble_ptr input vector t
[out]xmagmaDouble_ptr output vector x
[in]skpmagmaDouble_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dbcsrswp()

magma_int_t magma_dbcsrswp ( magma_int_t  n,
magma_int_t  size_b,
magma_int_t *  ipiv,
magmaDouble_ptr  dx,
magma_queue_t  queue 
)

◆ magma_dbcsrtrsv()

magma_int_t magma_dbcsrtrsv ( magma_uplo_t  uplo,
magma_int_t  r_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magmaDouble_ptr  dA,
magma_index_t *  blockinfo,
magmaDouble_ptr  dx,
magma_queue_t  queue 
)

◆ magma_dbcsrvalcpy()

magma_int_t magma_dbcsrvalcpy ( magma_int_t  size_b,
magma_int_t  num_blocks,
magma_int_t  num_zero_blocks,
magmaDouble_ptr *  dAval,
magmaDouble_ptr *  dBval,
magmaDouble_ptr *  dBval2,
magma_queue_t  queue 
)

◆ magma_dbcsrluegemm()

magma_int_t magma_dbcsrluegemm ( magma_int_t  size_b,
magma_int_t  num_block_rows,
magma_int_t  kblocks,
magmaDouble_ptr *  dA,
magmaDouble_ptr *  dB,
magmaDouble_ptr *  dC,
magma_queue_t  queue 
)

◆ magma_dbcsrlupivloc()

magma_int_t magma_dbcsrlupivloc ( magma_int_t  size_b,
magma_int_t  kblocks,
magmaDouble_ptr *  dA,
magma_int_t *  ipiv,
magma_queue_t  queue 
)

◆ magma_dbcsrblockinfo5()

magma_int_t magma_dbcsrblockinfo5 ( magma_int_t  lustep,
magma_int_t  num_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magma_index_t *  blockinfo,
magmaDouble_ptr  dval,
magmaDouble_ptr *  AII,
magma_queue_t  queue 
)

◆ magma_dthrsholdselect()

magma_int_t magma_dthrsholdselect ( magma_int_t  sampling,
magma_int_t  total_size,
magma_int_t  subset_size,
double *  val,
double *  thrs,
magma_queue_t  queue 
)

◆ magma_vector_dlag2s()

magma_int_t magma_vector_dlag2s ( magma_d_matrix  x,
magma_s_matrix y,
magma_queue_t  queue 
)

◆ magma_sparse_matrix_dlag2s()

magma_int_t magma_sparse_matrix_dlag2s ( magma_d_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

◆ magma_vector_slag2d()

magma_int_t magma_vector_slag2d ( magma_s_matrix  x,
magma_d_matrix y,
magma_queue_t  queue 
)

◆ magma_sparse_matrix_slag2d()

magma_int_t magma_sparse_matrix_slag2d ( magma_s_matrix  A,
magma_d_matrix B,
magma_queue_t  queue 
)

◆ magmablas_dlag2s_sparse()

void magmablas_dlag2s_sparse ( magma_int_t  M,
magma_int_t  N,
magmaDouble_const_ptr  dA,
magma_int_t  lda,
magmaFloat_ptr  dSA,
magma_int_t  ldsa,
magma_queue_t  queue,
magma_int_t *  info 
)

◆ magmablas_slag2d_sparse()

void magmablas_slag2d_sparse ( magma_int_t  M,
magma_int_t  N,
magmaFloat_const_ptr  dSA,
magma_int_t  ldsa,
magmaDouble_ptr  dA,
magma_int_t  lda,
magma_queue_t  queue,
magma_int_t *  info 
)

◆ magma_dlag2s_CSR_DENSE()

void magma_dlag2s_CSR_DENSE ( magma_d_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

◆ magma_dlag2s_CSR_DENSE_alloc()

void magma_dlag2s_CSR_DENSE_alloc ( magma_d_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

◆ magma_dlag2s_CSR_DENSE_convert()

void magma_dlag2s_CSR_DENSE_convert ( magma_d_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

◆ magma_dsgecsrmv_mixed_prec()

magma_int_t magma_dsgecsrmv_mixed_prec ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
double  alpha,
magmaDouble_ptr  ddiagval,
magmaFloat_ptr  doffdiagval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDouble_ptr  dx,
double  beta,
magmaDouble_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Deprecated:

A is a matrix in mixed precision, i.e. the diagonal values are stored in high precision, the offdiagonal values in low precision. The input format is a CSR (val, row, col) in FloatComplex storing all offdiagonal elements and an array containing the diagonal values in DoubleComplex.

Parameters
[in]transAmagma_trans_t transposition parameter for A
[in]mmagma_int_t number of rows in A
[in]nmagma_int_t number of columns in A
[in]alphadouble scalar multiplier
[in]ddiagvalmagmaDouble_ptr array containing diagonal values of A in DoubleComplex
[in]doffdiagvalmagmaFloat_ptr array containing offdiag values of A in CSR
[in]drowptrmagmaIndex_ptr rowpointer of A in CSR
[in]dcolindmagmaIndex_ptr columnindices of A in CSR
[in]dxmagmaDouble_ptr input vector x
[in]betadouble scalar multiplier
[out]dymagmaDouble_ptr input/output vector y
[in]queuemagma_queue_t Queue to execute in.

◆ mm_write_mtx_crd()

int mm_write_mtx_crd ( char  fname[],
magma_index_t  M,
magma_index_t  N,
magma_index_t  nz,
magma_index_t  I[],
magma_index_t  J[],
double  val[],
MM_typecode  matcode 
)

◆ mm_read_mtx_crd_data()

int mm_read_mtx_crd_data ( FILE *  f,
magma_index_t  M,
magma_index_t  N,
magma_index_t  nz,
magma_index_t  I[],
magma_index_t  J[],
double  val[],
MM_typecode  matcode 
)

◆ mm_read_mtx_crd_entry()

int mm_read_mtx_crd_entry ( FILE *  f,
magma_index_t *  I,
magma_index_t *  J,
double *  real,
double *  img,
MM_typecode  matcode 
)

◆ mm_read_unsymmetric_sparse()

int mm_read_unsymmetric_sparse ( const char *  fname,
magma_index_t *  M_,
magma_index_t *  N_,
magma_index_t *  nz_,
double **  val_,
magma_index_t **  I_,
magma_index_t **  J_ 
)

◆ magma_sorderstatistics()

magma_int_t magma_sorderstatistics ( float *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
float *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array.

Deprecated:
Parameters
[in,out]valfloat* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementfloat* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sorderstatistics_inc()

magma_int_t magma_sorderstatistics_inc ( float *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  inc,
magma_int_t  r,
float *  element,
magma_queue_t  queue 
)

Approximates the k-th smallest element in an array by using order-statistics with step-size inc.

Deprecated:
Parameters
[in,out]valfloat* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]incmagma_int_t Stepsize in the approximation.
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementfloat* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smorderstatistics()

magma_int_t magma_smorderstatistics ( float *  val,
magma_index_t *  col,
magma_index_t *  row,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
float *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.

Deprecated:

The related arrays col and row are also reordered.

Parameters
[in,out]valfloat* Target array, will be modified during operation.
[in,out]colmagma_index_t* Target array, will be modified during operation.
[in,out]rowmagma_index_t* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementfloat* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_spartition()

magma_int_t magma_spartition ( float *  a,
magma_int_t  size,
magma_int_t  pivot,
magma_queue_t  queue 
)

◆ magma_smedian5()

magma_int_t magma_smedian5 ( float *  a,
magma_queue_t  queue 
)

◆ magma_sselect()

magma_int_t magma_sselect ( float *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]afloat* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sselectrandom()

magma_int_t magma_sselectrandom ( float *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]afloat* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sdomainoverlap()

magma_int_t magma_sdomainoverlap ( magma_index_t  num_rows,
magma_int_t *  num_indices,
magma_index_t *  rowptr,
magma_index_t *  colidx,
magma_index_t *  x,
magma_queue_t  queue 
)

Generates the update list.

Deprecated:
Parameters
[in]xmagma_index_t* array to sort
[in]num_rowsmagma_int_t number of rows in matrix
[out]num_indicesmagma_int_t* number of indices in array
[in]rowptrmagma_index_t* rowpointer of matrix
[in]colidxmagma_index_t* colindices of matrix
[in]xmagma_index_t* array containing indices for domain overlap
[in]queuemagma_queue_t Queue to execute in.

◆ magma_svspread()

magma_int_t magma_svspread ( magma_s_matrix x,
const char *  filename,
magma_queue_t  queue 
)

Reads in a sparse vector-block stored in COO format.

Deprecated:
Parameters
[out]xmagma_s_matrix * vector to read in
[in]filenamechar* file where vector is stored
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sdiameter()

magma_int_t magma_sdiameter ( magma_s_matrix A,
magma_queue_t  queue 
)

Computes the diameter of a sparse matrix and stores the value in diameter.

Deprecated:
Parameters
[in,out]Amagma_s_matrix* sparse matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilusetup()

magma_int_t magma_sparilusetup ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the iterative ILU iteration.

Deprecated:
Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilu_gpu()

magma_int_t magma_sparilu_gpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParILU

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilu_cpu()

magma_int_t magma_sparilu_cpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParILU

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparic_gpu()

magma_int_t magma_sparic_gpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParIC

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparic_cpu()

magma_int_t magma_sparic_cpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParIC

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparicsetup()

magma_int_t magma_sparicsetup ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Prepares the IC preconditioner via the iterative IC iteration.

Deprecated:
Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparicupdate()

magma_int_t magma_sparicupdate ( magma_s_matrix  A,
magma_s_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_s_matrix input matrix A, current target system
[in]precondmagma_s_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sapplyiteric_l()

magma_int_t magma_sapplyiteric_l ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_s_matrix RHS
[out]xmagma_s_matrix* vector to precondition
[in]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sapplyiteric_r()

magma_int_t magma_sapplyiteric_r ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_s_matrix RHS
[out]xmagma_s_matrix* vector to precondition
[in]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilu_csr()

magma_int_t magma_sparilu_csr ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the system matrix is COO, the lower triangular factor L is stored in CSR, the upper triangular factor U is transposed, then also stored in CSR (equivalent to CSC format for the non-transposed U). Every component of L and U is handled by one thread.

Parameters
[in]Amagma_s_matrix input matrix A determing initial guess & processing order
[in,out]Lmagma_s_matrix input/output matrix L containing the lower triangular factor
[in,out]Umagma_s_matrix input/output matrix U containing the upper triangular factor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_spariluupdate()

magma_int_t magma_spariluupdate ( magma_s_matrix  A,
magma_s_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_s_matrix input matrix A, current target system
[in]precondmagma_s_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparic_csr()

magma_int_t magma_sparic_csr ( magma_s_matrix  A,
magma_s_matrix  A_CSR,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the initial guess matrix A is Magma_CSRCOO, A_CSR is CSR or CSRCOO format.

Parameters
[in]Amagma_s_matrix input matrix A - initial guess (lower triangular)
[in,out]A_CSRmagma_s_matrix input/output matrix containing the IC approximation
[in]queuemagma_queue_t Queue to execute in.

◆ magma_snonlinres()

magma_int_t magma_snonlinres ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix LU,
real_Double_t *  res,
magma_queue_t  queue 
)

Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_s_matrix input sparse matrix in CSR
[in]Lmagma_s_matrix input sparse matrix in CSR
[in]Umagma_s_matrix input sparse matrix in CSR
[out]LUmagma_s_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_silures()

magma_int_t magma_silures ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_s_matrix input sparse matrix in CSR
[in]Lmagma_s_matrix input sparse matrix in CSR
[in]Umagma_s_matrix input sparse matrix in CSR
[out]LUmagma_s_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[out]nonlinresreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sicres()

magma_int_t magma_sicres ( magma_s_matrix  A,
magma_s_matrix  C,
magma_s_matrix  CT,
magma_s_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_s_matrix input sparse matrix in CSR
[in]Cmagma_s_matrix input sparse matrix in CSR
[in]CTmagma_s_matrix input sparse matrix in CSR
[in]LUmagma_s_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* IC residual
[out]nonlinresreal_Double_t* nonlinear residual
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sinitguess()

magma_int_t magma_sinitguess ( magma_s_matrix  A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

Computes an initial guess for the ParILU/ParIC.

Deprecated:
Parameters
[in]Amagma_s_matrix sparse matrix in CSR
[out]Lmagma_s_matrix* sparse matrix in CSR
[out]Umagma_s_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sinitrecursiveLU()

magma_int_t magma_sinitrecursiveLU ( magma_s_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.

Deprecated:
Parameters
[in]Amagma_s_matrix* sparse matrix in CSR
[out]Bmagma_s_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smLdiagadd()

magma_int_t magma_smLdiagadd ( magma_s_matrix L,
magma_queue_t  queue 
)

Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.

Deprecated:

It does this in-place.

Parameters
[in,out]Lmagma_s_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_cup()

magma_int_t magma_smatrix_cup ( magma_s_matrix  A,
magma_s_matrix  B,
magma_s_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

Parameters
[in]Amagma_s_matrix Input matrix 1.
[in]Bmagma_s_matrix Input matrix 2.
[out]Umagma_s_matrix* Not a real matrix, but the list of all matrix entries included in either A or B. No duplicates.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_cup_gpu()

magma_int_t magma_smatrix_cup_gpu ( magma_s_matrix  A,
magma_s_matrix  B,
magma_s_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

This is the GPU version of the operation.

Parameters
[in]Amagma_s_matrix Input matrix 1.
[in]Bmagma_s_matrix Input matrix 2.
[out]Umagma_s_matrix* \(U = A \cup B\). If both matrices have a nonzero value in the same location, the value of A is used.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_cap()

magma_int_t magma_smatrix_cap ( magma_s_matrix  A,
magma_s_matrix  B,
magma_s_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being in both matrices: \(U = A \cap B\).

Deprecated:

The values in U are all ones.

Parameters
[in]Amagma_s_matrix Input matrix 1.
[in]Bmagma_s_matrix Input matrix 2.
[out]Umagma_s_matrix* Not a real matrix, but the list of all matrix entries included in both A and B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_negcap()

magma_int_t magma_smatrix_negcap ( magma_s_matrix  A,
magma_s_matrix  B,
magma_s_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of A but not of B.

Deprecated:

U = A \ B The values of A are preserved.

Parameters
[in]Amagma_s_matrix Element part of this.
[in,out]Bmagma_s_matrix Not part of this.
[out]Umagma_s_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_tril_negcap()

magma_int_t magma_smatrix_tril_negcap ( magma_s_matrix  A,
magma_s_matrix  B,
magma_s_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of tril(A) but not of B.

Deprecated:

U = tril(A) \ B The values of A are preserved.

Parameters
[in]Amagma_s_matrix Element part of this.
[in,out]Bmagma_s_matrix Not part of this.
[out]Umagma_s_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_triu_negcap()

magma_int_t magma_smatrix_triu_negcap ( magma_s_matrix  A,
magma_s_matrix  B,
magma_s_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being part of triu(A) but not of B.

Deprecated:

U = triu(A) \ B The values of A are preserved.

Parameters
[in]Amagma_s_matrix Element part of this.
[in]Bmagma_s_matrix Not part of this.
[out]Umagma_s_matrix*
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smatrix_abssum()

magma_int_t magma_smatrix_abssum ( magma_s_matrix  A,
float *  sum,
magma_queue_t  queue 
)

Computes the sum of the absolute values in a matrix.

Deprecated:
Parameters
[in]Amagma_s_matrix Element list/matrix.
[out]sumfloat* Sum of the absolute values.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_thrsrm()

magma_int_t magma_sparilut_thrsrm ( magma_int_t  order,
magma_s_matrix A,
float *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_s_matrix* Matrix where elements are removed.
[in]thrsfloat* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_thrsrm_semilinked()

magma_int_t magma_sparilut_thrsrm_semilinked ( magma_s_matrix U,
magma_s_matrix US,
float *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller thrs from the matrix.

Deprecated:

It only uses the linked list and skips the `‘removed’' elements

Parameters
[in,out]Amagma_s_matrix* Matrix where elements are removed.
[in]thrsfloat* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_rmselected()

magma_int_t magma_sparilut_rmselected ( magma_s_matrix  R,
magma_s_matrix A,
magma_queue_t  queue 
)

Removes a selected list of elements from the matrix.

Deprecated:
Parameters
[in]Rmagma_s_matrix Matrix containing elements to be removed.
[in,out]Amagma_s_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_selectoneperrow()

magma_int_t magma_sparilut_selectoneperrow ( magma_int_t  order,
magma_s_matrix A,
magma_s_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_s_matrix* Matrix where elements are removed.
[out]oneAmagma_s_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_selecttwoperrow()

magma_int_t magma_sparilut_selecttwoperrow ( magma_int_t  order,
magma_s_matrix A,
magma_s_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_s_matrix* Matrix where elements are removed.
[out]oneAmagma_s_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_selectoneperrowthrs_lower()

magma_int_t magma_sparilut_selectoneperrowthrs_lower ( magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix A,
float  rtol,
magma_s_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_s_matrix Current lower triangular factor.
[in]Umagma_s_matrix Current upper triangular factor.
[in]Amagma_s_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_s_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_selectoneperrowthrs_upper()

magma_int_t magma_sparilut_selectoneperrowthrs_upper ( magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix A,
float  rtol,
magma_s_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_s_matrix Current lower triangular factor.
[in]Umagma_s_matrix Current upper triangular factor.
[in]Amagma_s_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_s_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_selectonepercol()

magma_int_t magma_sparilut_selectonepercol ( magma_int_t  order,
magma_s_matrix A,
magma_s_matrix oneA,
magma_queue_t  queue 
)

◆ magma_sparilut_transpose_select_one()

magma_int_t magma_sparilut_transpose_select_one ( magma_s_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

This is a special routine with very limited scope.

Deprecated:

For a set of fill-in candidates in row-major format, it transposes the a submatrix, i.e. the submatrix consisting of the largest element in every column. This function is only useful for delta<=1.

Parameters
[in]Amagma_s_matrix Matrix to transpose.
[out]Bmagma_s_matrix* Transposed matrix containing only largest elements in each col.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_insert_LU()

magma_int_t magma_sparilut_insert_LU ( magma_int_t  num_rm,
magma_index_t *  rm_loc,
magma_index_t *  rm_loc2,
magma_s_matrix LU_new,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

◆ magma_sparilut_set_thrs()

magma_int_t magma_sparilut_set_thrs ( magma_int_t  num_rm,
magma_s_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

◆ magma_sparilut_set_approx_thrs()

magma_int_t magma_sparilut_set_approx_thrs ( magma_int_t  num_rm,
magma_s_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_s_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_set_thrs_randomselect()

magma_int_t magma_sparilut_set_thrs_randomselect ( magma_int_t  num_rm,
magma_s_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_s_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_set_thrs_randomselect_approx()

magma_int_t magma_sparilut_set_thrs_randomselect_approx ( magma_int_t  num_rm,
magma_s_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_s_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_set_thrs_randomselect_factors()

magma_int_t magma_sparilut_set_thrs_randomselect_factors ( magma_int_t  num_rm,
magma_s_matrix L,
magma_s_matrix U,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_s_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_set_exact_thrs()

magma_int_t magma_sparilut_set_exact_thrs ( magma_int_t  num_rm,
magma_s_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_s_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_set_approx_thrs_inc()

magma_int_t magma_sparilut_set_approx_thrs_inc ( magma_int_t  num_rm,
magma_s_matrix LU,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_s_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsfloat* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_LU_approx_thrs()

magma_int_t magma_sparilut_LU_approx_thrs ( magma_int_t  num_rm,
magma_s_matrix L,
magma_s_matrix U,
magma_int_t  order,
float *  thrs,
magma_queue_t  queue 
)

◆ magma_sparilut_reorder()

magma_int_t magma_sparilut_reorder ( magma_s_matrix LU,
magma_queue_t  queue 
)

This routine reorders the matrix (inplace) for easier access.

Deprecated:
Parameters
[in]LUmagma_s_matrix* Current ILU approximation.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparict_sweep()

magma_int_t magma_sparict_sweep ( magma_s_matrix A,
magma_s_matrix LU,
magma_queue_t  queue 
)

◆ magma_sparilut_zero()

magma_int_t magma_sparilut_zero ( magma_s_matrix A,
magma_queue_t  queue 
)

◆ magma_sparilu_sweep()

magma_int_t magma_sparilu_sweep ( magma_s_matrix  A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep.

Deprecated:

Input and output array are identical.

Parameters
[in]Amagma_s_matrix System matrix in COO.
[in]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_s_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilu_sweep_sync()

magma_int_t magma_sparilu_sweep_sync ( magma_s_matrix  A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_s_matrix System matrix in COO.
[in]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_s_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparic_sweep()

magma_int_t magma_sparic_sweep ( magma_s_matrix  A,
magma_s_matrix L,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep (symmetric case).

Deprecated:

Input and output array is identical.

Parameters
[in]Amagma_s_matrix System matrix in COO.
[in]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparic_sweep_sync()

magma_int_t magma_sparic_sweep_sync ( magma_s_matrix  A,
magma_s_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep (symmetric case).

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_s_matrix System matrix in COO.
[in]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparict_sweep_sync()

magma_int_t magma_sparict_sweep_sync ( magma_s_matrix A,
magma_s_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_s_matrix* System matrix.
[in]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_s_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[out]L_newmagma_s_matrix* Current approximation for the lower triangular factor The format is unsorted CSR.
[out]U_newmagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_sweep_sync()

magma_int_t magma_sparilut_sweep_sync ( magma_s_matrix A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A.

This is the CPU version of the synchronous ParILUT sweep.

Parameters
[in]Amagma_s_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_s_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_sweep_gpu()

magma_int_t magma_sparilut_sweep_gpu ( magma_s_matrix A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A. L has a unit diagonal.

This is the GPU version of the asynchronous ParILUT sweep.

Parameters
[in]Amagma_s_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_s_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_residuals_gpu()

magma_int_t magma_sparilut_residuals_gpu ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_s_matrix System matrix. The format is sorted CSR.
[in]Lmagma_s_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]Umagma_s_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Rmagma_s_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sthrsholdrm_gpu()

magma_int_t magma_sthrsholdrm_gpu ( magma_int_t  order,
magma_s_matrix A,
float *  thrs,
magma_queue_t  queue 
)
Deprecated:
Purpose

This routine selects a threshold separating the subset_size smallest
magnitude elements from the rest.




@param[in]
order       magma_int_t 
            dummy variable for now.

@param[in,out]
A           magma_s_matrix*  
            input/output matrix where elements are removed

@param[out]
thrs        float*  
            computed threshold

@param[in]
queue       magma_queue_t
            Queue to execute in.

@ingroup magmasparse_saux

◆ magma_sget_row_ptr()

magma_int_t magma_sget_row_ptr ( const magma_int_t  num_rows,
magma_int_t *  nnz,
const magma_index_t *  rowidx,
magma_index_t *  rowptr,
magma_queue_t  queue 
)

◆ magma_sparilut_align_residuals()

magma_int_t magma_sparilut_align_residuals ( magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix Lnew,
magma_s_matrix Unew,
magma_queue_t  queue 
)

This function scales the residuals of a lower triangular factor L with the diagonal of U.

Deprecated:

The intention is to generate a good initial guess for inserting the elements.

Parameters
[in]Lmagma_s_matrix Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_s_matrix Current approximation for the upper triangular factor The format is sorted CSC.
[in]hLmagma_s_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]hUmagma_s_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_preselect_scale()

magma_int_t magma_sparilut_preselect_scale ( magma_s_matrix L,
magma_s_matrix oneL,
magma_s_matrix U,
magma_s_matrix oneU,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_s_matrix* Matrix where elements are removed.
[in]Umagma_s_matrix* Matrix where elements are removed.
[out]oneLmagma_s_matrix* Matrix where elements are removed.
[out]oneUmagma_s_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_thrsrm_U()

magma_int_t magma_sparilut_thrsrm_U ( magma_int_t  order,
magma_s_matrix  L,
magma_s_matrix A,
float *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_s_matrix* Matrix where elements are removed.
[in]thrsfloat* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_residuals()

magma_int_t magma_sparilut_residuals ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_s_matrix System matrix A.
[in]Lmagma_s_matrix Current approximation for the lower triangular factor. The format is sorted CSR.
[in]Umagma_s_matrix Current approximation for the upper triangular factor. The format is sorted CSR.
[in,out]Rmagma_s_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_residuals_transpose()

magma_int_t magma_sparilut_residuals_transpose ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix U_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_s_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_residuals_semilinked()

magma_int_t magma_sparilut_residuals_semilinked ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  US,
magma_s_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_s_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_sweep_semilinked()

magma_int_t magma_sparilut_sweep_semilinked ( magma_s_matrix A,
magma_s_matrix L,
magma_s_matrix US,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_s_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_sweep_list()

magma_int_t magma_sparilut_sweep_list ( magma_s_matrix A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_s_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_residuals_list()

magma_int_t magma_sparilut_residuals_list ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_s_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_sweep_linkedlist()

magma_int_t magma_sparilut_sweep_linkedlist ( magma_s_matrix A,
magma_s_matrix L,
magma_s_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_s_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_s_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_residuals_linkedlist()

magma_int_t magma_sparilut_residuals_linkedlist ( magma_s_matrix  A,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_s_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_colmajor()

magma_int_t magma_sparilut_colmajor ( magma_s_matrix  A,
magma_s_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_s_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_s_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_colmajorup()

magma_int_t magma_sparilut_colmajorup ( magma_s_matrix  A,
magma_s_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_s_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_s_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A. Already allocated.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparict()

magma_int_t magma_sparict ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete Cholesky preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.

This function requires OpenMP, and is only available if OpenMP is activated.

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparict_cpu()

magma_int_t magma_sparict_cpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern. It is the variant for SPD systems.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut()

magma_int_t magma_sparilut ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete LU preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_cpu()

magma_int_t magma_sparilut_cpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_gpu()

magma_int_t magma_sparilut_gpu ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_gpu_nodp()

magma_int_t magma_sparilut_gpu_nodp ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

This routine is the same as magma_sparilut_gpu(), except that it uses no dynamic paralellism

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_insert()

magma_int_t magma_sparilut_insert ( magma_int_t *  num_rmL,
magma_int_t *  num_rmU,
magma_index_t *  rm_locL,
magma_index_t *  rm_locU,
magma_s_matrix L_new,
magma_s_matrix U_new,
magma_s_matrix L,
magma_s_matrix U,
magma_s_matrix UR,
magma_queue_t  queue 
)

Inserts for the iterative dynamic ILU an new element in the (empty) place.

Deprecated:
Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced in L.
[in]num_rmUmagma_int_t Number of Elements that are replaced in U.
[in]rm_locLmagma_index_t* List containing the locations of the deleted elements.
[in]rm_locUmagma_index_t* List containing the locations of the deleted elements.
[in]L_newmagma_s_matrix Elements that will be inserted in L stored in COO format (unsorted).
[in]U_newmagma_s_matrix Elements that will be inserted in U stored in COO format (unsorted).
[in,out]Lmagma_s_matrix* matrix where new elements are inserted. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]Umagma_s_matrix* matrix where new elements are inserted. Row-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]URmagma_s_matrix* Same matrix as U, but column-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_create_collinkedlist()

magma_int_t magma_sparilut_create_collinkedlist ( magma_s_matrix  A,
magma_s_matrix B,
magma_queue_t  queue 
)

For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.

Deprecated:
Parameters
[in]Amagma_s_matrix Matrix to transpose.
[out]Bmagma_s_matrix* Transposed matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_candidates()

magma_int_t magma_sparilut_candidates ( magma_s_matrix  L0,
magma_s_matrix  U0,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix L_new,
magma_s_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_s_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_s_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_s_matrix Current lower triangular factor.
[in]Umagma_s_matrix Current upper triangular factor.
[in,out]LU_newmagma_s_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_s_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_candidates_gpu()

magma_int_t magma_sparilut_candidates_gpu ( magma_s_matrix  L0,
magma_s_matrix  U0,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix L_new,
magma_s_matrix U_new,
magma_queue_t  queue 
)

This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.

Deprecated:

Nonzero ILU residuals are possible 1 where A is nonzero but L and U have no nonzero entry 2 where the product L*U has fill-in but the location is not included in L or U

We assume that the incomplete factors are exact fro the elements included in the current pattern.

This is the GPU implementation of the candidate search.

2 GPU kernels are used: the first is a dry run assessing the memory need, the second then computes the candidate locations, the third eliminates float entries. The fourth kernel ensures the elements in a row are sorted for increasing column index.

Parameters
[in]L0magma_s_matrix tril(ILU(0) ) pattern of original system matrix.
[in]U0magma_s_matrix triu(ILU(0) ) pattern of original system matrix.
[in]Lmagma_s_matrix Current lower triangular factor.
[in]Umagma_s_matrix Current upper triangular factor.
[in,out]L_newmagma_s_matrix* List of candidates for L in COO format.
[in,out]U_newmagma_s_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparict_candidates()

magma_int_t magma_sparict_candidates ( magma_s_matrix  L0,
magma_s_matrix  L,
magma_s_matrix  LT,
magma_s_matrix L_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_s_matrix tril( ILU(0) ) pattern of original system matrix.
[in]Lmagma_s_matrix Current lower triangular factor.
[in]LTmagma_s_matrix Transose of the lower triangular factor.
[in,out]L_newmagma_s_matrix* List of candidates for L in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_candidates_semilinked()

magma_int_t magma_sparilut_candidates_semilinked ( magma_s_matrix  L0,
magma_s_matrix  U0,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix  UT,
magma_s_matrix L_new,
magma_s_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_s_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_s_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_s_matrix Current lower triangular factor.
[in]Umagma_s_matrix Current upper triangular factor transposed.
[in]URmagma_s_matrix Current upper triangular factor - col-pointer and col-list.
[in,out]LU_newmagma_s_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_s_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_candidates_linkedlist()

magma_int_t magma_sparilut_candidates_linkedlist ( magma_s_matrix  L0,
magma_s_matrix  U0,
magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix  UR,
magma_s_matrix L_new,
magma_s_matrix U_new,
magma_queue_t  queue 
)

◆ magma_sparilut_rm_thrs()

magma_int_t magma_sparilut_rm_thrs ( float *  thrs,
magma_int_t *  num_rm,
magma_s_matrix LU,
magma_s_matrix LU_new,
magma_index_t *  rm_loc,
magma_queue_t  queue 
)

This routine removes matrix entries from the structure that are smaller than the threshold.

Deprecated:

It only counts the elements deleted, does not save the locations.

Parameters
[out]thrsfloat* Thrshold for removing elements.
[out]num_rmmagma_int_t* Number of Elements that have been removed.
[in,out]LUmagma_s_matrix* Current ILU approximation where the identified smallest components are deleted.
[in,out]LUCmagma_s_matrix* Corresponding col-list.
[in,out]LU_newmagma_s_matrix* List of candidates in COO format.
[out]rm_locmagma_index_t* List containing the locations of the elements deleted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_count()

magma_int_t magma_sparilut_count ( magma_s_matrix  L,
magma_int_t *  num,
magma_queue_t  queue 
)

This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.

Deprecated:
Parameters
[in]Lmagma_s_matrix* Matrix in Magm_CSRLIST format
[out]nummagma_index_t* Number of elements counted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_randlist()

magma_int_t magma_sparilut_randlist ( magma_s_matrix LU,
magma_queue_t  queue 
)

◆ magma_sparilut_select_candidates_L()

magma_int_t magma_sparilut_select_candidates_L ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_s_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_s_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_s_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_select_candidates_U()

magma_int_t magma_sparilut_select_candidates_U ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_s_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_s_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_s_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparilut_preselect()

magma_int_t magma_sparilut_preselect ( magma_int_t  order,
magma_s_matrix A,
magma_s_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_s_matrix* Matrix where elements are removed.
[out]oneAmagma_s_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_spreselect_gpu()

magma_int_t magma_spreselect_gpu ( magma_int_t  order,
magma_s_matrix A,
magma_s_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_s_matrix* Matrix where elements are removed.
[out]oneAmagma_s_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ssampleselect()

magma_int_t magma_ssampleselect ( magma_int_t  total_size,
magma_int_t  subset_size,
float *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valfloat array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ssampleselect_approx()

magma_int_t magma_ssampleselect_approx ( magma_int_t  total_size,
magma_int_t  subset_size,
float *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valfloat array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ssampleselect_nodp()

magma_int_t magma_ssampleselect_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
float *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valfloat array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ssampleselect_approx_nodp()

magma_int_t magma_ssampleselect_approx_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
float *  val,
float *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valfloat array containing the values
[out]thrsfloat* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smprepare_batched()

magma_int_t magma_smprepare_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix  L,
magma_s_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
float *  trisystems,
float *  rhs,
magma_queue_t  queue 
)

Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.

Deprecated:
  • padded with zeros to size 32x32 an array containing the RHS
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_s_matrix Matrix in CSR format
[in]LCmagma_s_matrix same matrix, also CSR, but col-major
[in,out]sizesmagma_int_t* Number of Elements that are replaced.
[in,out]locationsmagma_int_t* Array indicating the locations.
[in,out]trisystemsfloat* trisystems
[in,out]rhsfloat* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smtrisolve_batched()

magma_int_t magma_smtrisolve_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix  L,
magma_s_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
float *  trisystems,
float *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_s_matrix Matrix in CSR format
[in]LCmagma_s_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsfloat* trisystems
[out]rhsfloat* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smbackinsert_batched()

magma_int_t magma_smbackinsert_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
float *  trisystems,
float *  rhs,
magma_queue_t  queue 
)

Inserts the values into the preconditioner matrix.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in,out]Mmagma_s_matrix* SPAI preconditioner CSR col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsfloat* trisystems
[out]rhsfloat* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smprepare_batched_gpu()

magma_int_t magma_smprepare_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix  L,
magma_s_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
float *  trisystems,
float *  rhs,
magma_queue_t  queue 
)

◆ magma_smtrisolve_batched_gpu()

magma_int_t magma_smtrisolve_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix  L,
magma_s_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
float *  trisystems,
float *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_s_matrix Matrix in CSR format
[in]LCmagma_s_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsfloat* trisystems
[out]rhsfloat* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smbackinsert_batched_gpu()

magma_int_t magma_smbackinsert_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
float *  trisystems,
float *  rhs,
magma_queue_t  queue 
)

◆ magma_siluisaisetup_lower()

magma_int_t magma_siluisaisetup_lower ( magma_s_matrix  L,
magma_s_matrix  S,
magma_s_matrix ISAIL,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the lower triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Lmagma_s_matrix lower triangular factor
[in]Smagma_s_matrix pattern for the ISAI preconditioner for L
[out]ISAILmagma_s_matrix* ISAI preconditioner for L
[in]queuemagma_queue_t Queue to execute in.

◆ magma_siluisaisetup_upper()

magma_int_t magma_siluisaisetup_upper ( magma_s_matrix  U,
magma_s_matrix  S,
magma_s_matrix ISAIU,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the upper triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Umagma_s_matrix lower triangular factor
[in]Smagma_s_matrix pattern for the ISAI preconditioner for U
[out]ISAIUmagma_s_matrix* ISAI preconditioner for U
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sicisaisetup()

magma_int_t magma_sicisaisetup ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_sisai_l()

magma_int_t magma_sisai_l ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_s_matrix input RHS b
[in,out]xmagma_s_matrix solution x
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sisai_r()

magma_int_t magma_sisai_r ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_s_matrix input RHS b
[in,out]xmagma_s_matrix solution x
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sisai_l_t()

magma_int_t magma_sisai_l_t ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_s_matrix input RHS b
[in,out]xmagma_s_matrix solution x
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sisai_r_t()

magma_int_t magma_sisai_r_t ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_s_matrix input RHS b
[in,out]xmagma_s_matrix solution x
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smiluisai_sizecheck()

magma_int_t magma_smiluisai_sizecheck ( magma_s_matrix  A,
magma_index_t  batchsize,
magma_index_t *  maxsize,
magma_queue_t  queue 
)

◆ magma_sgeisai_maxblock()

magma_int_t magma_sgeisai_maxblock ( magma_s_matrix  L,
magma_s_matrix MT,
magma_queue_t  queue 
)

This routine maximizes the pattern for the ISAI preconditioner.

Deprecated:

Precisely, it computes L, L^2, L^3, L^4, L^5 and then selects the columns of M_L such that the nonzer-per-column are the lower max than the implementation-specific limit (32).

The input is the original matrix (row-major) The output is already col-major.

Parameters
[in,out]Lmagma_s_matrix Incomplete factor.
[in,out]MTmagma_s_matrix* SPAI preconditioner structure, CSR col-major.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sisai_generator_regs()

magma_int_t magma_sisai_generator_regs ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_s_matrix  L,
magma_s_matrix M,
magma_queue_t  queue 
)

This routine is designet to combine all kernels into one.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_s_matrix triangular factor for which the ISAI matrix is computed. Col-Major CSR storage.
[in,out]Mmagma_s_matrix* SPAI preconditioner CSR col-major
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smsupernodal()

magma_int_t magma_smsupernodal ( magma_int_t *  max_bs,
magma_s_matrix  A,
magma_s_matrix S,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with block-size bs.

Deprecated:
Parameters
[in,out]max_bsmagma_int_t* Size of the largest diagonal block.
[in]Amagma_s_matrix System matrix.
[in,out]Smagma_s_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smvarsizeblockstruct()

magma_int_t magma_smvarsizeblockstruct ( magma_int_t  n,
magma_int_t *  bs,
magma_int_t  bsl,
magma_uplo_t  uplotype,
magma_s_matrix A,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with variable block-size.

Deprecated:
Parameters
[in]nmagma_int_t Size of the matrix.
[in]bsmagma_int_t* Vector containing the size of the diagonal blocks.
[in]bslmagma_int_t Size of the vector containing the block sizes.
[in]uplotypemagma_uplo_t lower or upper triangular
[in,out]Amagma_s_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_stfqmr_unrolled()

magma_int_t magma_stfqmr_unrolled ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a real matrix A.

Deprecated:

This is a GPU implementation of the transpose-free Quasi-Minimal Residual method (TFQMR).

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgstab_merge2()

magma_int_t magma_sbicgstab_merge2 ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_sbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgstab_merge3()

magma_int_t magma_sbicgstab_merge3 ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_sbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sjacobidomainoverlap()

magma_int_t magma_sjacobidomainoverlap ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Jacobi method allowing for domain overlap.

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbaiter()

magma_int_t magma_sbaiter ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_s_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:
Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]precond_parmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbaiter_overlap()

magma_int_t magma_sbaiter_overlap ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_s_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:

It used restricted additive Schwarz overlap in top-down direction.

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]precond_parmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sftjacobicontractions()

magma_int_t magma_sftjacobicontractions ( magma_s_matrix  xkm2,
magma_s_matrix  xkm1,
magma_s_matrix  xk,
magma_s_matrix z,
magma_s_matrix c,
magma_queue_t  queue 
)

Computes the contraction coefficients c_i:

Deprecated:

c_i = z_i^{k-1} / z_i^{k}

= | x_i^{k-1} - x_i^{k-2} | / |  x_i^{k} - x_i^{k-1} |
Parameters
[in]xkm2magma_s_matrix vector x^{k-2}
[in]xkm1magma_s_matrix vector x^{k-2}
[in]xkmagma_s_matrix vector x^{k-2}
[out]zmagma_s_matrix* ratio
[out]cmagma_s_matrix* contraction coefficients
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sftjacobiupdatecheck()

magma_int_t magma_sftjacobiupdatecheck ( float  delta,
magma_s_matrix xold,
magma_s_matrix xnew,
magma_s_matrix zprev,
magma_s_matrix  c,
magma_int_t *  flag_t,
magma_int_t *  flag_fp,
magma_queue_t  queue 
)

Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.

Deprecated:
Parameters
[in]deltafloat threshold
[in,out]xoldmagma_s_matrix* vector xold
[in,out]xnewmagma_s_matrix* vector xnew
[in,out]zprevmagma_s_matrix* vector z = | x_k-1 - x_k |
[in]cmagma_s_matrix contraction coefficients
[in,out]flag_tmagma_int_t threshold condition
[in,out]flag_fpmagma_int_t false positive condition
[in]queuemagma_queue_t Queue to execute in.

◆ magma_siterref()

magma_int_t magma_siterref ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_s_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a real symmetric N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Iterative Refinement method. The inner solver is passed via the preconditioner argument.

Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix RHS b
[in,out]xmagma_s_matrix* solution approximation
[in,out]solver_parmagma_s_solver_par* solver parameters
[in,out]precond_parmagma_s_preconditioner* inner solver
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sjacobiiter_sys()

magma_int_t magma_sjacobiiter_sys ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix  d,
magma_s_matrix  t,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input.

Parameters
[in]Amagma_s_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_s_matrix input RHS b
[in]dmagma_s_matrix input matrix diagonal elements diag(A)
[in]tmagma_s_matrix temporary vector
[in,out]xmagma_s_matrix* iteration vector x
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sftjacobi()

magma_int_t magma_sftjacobi ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_matrix x,
magma_s_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input. This is the fault-tolerant version of Jacobi according to ScalLA'15.

Parameters
[in]Amagma_s_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_s_matrix input RHS b
[in,out]xmagma_s_matrix* iteration vector x
[in,out]solver_parmagma_s_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_silut_saad()

magma_int_t magma_silut_saad ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_silut_saad_apply()

magma_int_t magma_silut_saad_apply ( magma_s_matrix  b,
magma_s_matrix x,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_scustomilusetup()

magma_int_t magma_scustomilusetup ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete LU preconditioner.

Deprecated:
Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_scustomicsetup()

magma_int_t magma_scustomicsetup ( magma_s_matrix  A,
magma_s_matrix  b,
magma_s_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete Cholesky preconditioner.

Deprecated:
Parameters
[in]Amagma_s_matrix input matrix A
[in]bmagma_s_matrix input RHS b
[in,out]precondmagma_s_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbajac_csr()

magma_int_t magma_sbajac_csr ( magma_int_t  localiters,
magma_s_matrix  D,
magma_s_matrix  R,
magma_s_matrix  b,
magma_s_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]Dmagma_s_matrix input matrix with diagonal blocks
[in]Rmagma_s_matrix input matrix with non-diagonal parts
[in]bmagma_s_matrix RHS
[in]xmagma_s_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbajac_csr_overlap()

magma_int_t magma_sbajac_csr_overlap ( magma_int_t  localiters,
magma_int_t  matrices,
magma_int_t  overlap,
magma_s_matrix D,
magma_s_matrix R,
magma_s_matrix  b,
magma_s_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]matricesmagma_int_t number of sub-matrices
[in]overlapmagma_int_t size of the overlap
[in]Dmagma_s_matrix* set of matrices with diagonal blocks
[in]Rmagma_s_matrix* set of matrices with non-diagonal parts
[in]bmagma_s_matrix RHS
[in]xmagma_s_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smlumerge()

magma_int_t magma_smlumerge ( magma_s_matrix  L,
magma_s_matrix  U,
magma_s_matrix A,
magma_queue_t  queue 
)

Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.

Deprecated:
Parameters
[in]Lmagma_s_matrix input strictly lower triangular matrix L
[in]Umagma_s_matrix input upper triangular matrix U
[out]Amagma_s_matrix* output matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sgeaxpy()

magma_int_t magma_sgeaxpy ( float  alpha,
magma_s_matrix  X,
float  beta,
magma_s_matrix Y,
magma_queue_t  queue 
)

This routine computes Y = alpha * X + beta * Y on the GPU.

Deprecated:

The input format is magma_s_matrix. It can handle both, dense matrix (vector block) and CSR matrices. For the latter, it interfaces the cuSPARSE library.

Parameters
[in]alphafloat scalar multiplier.
[in]Xmagma_s_matrix input/output matrix Y.
[in]betafloat scalar multiplier.
[in,out]Ymagma_s_matrix* input matrix X.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sgecsrreimsplit()

magma_int_t magma_sgecsrreimsplit ( magma_s_matrix  A,
magma_s_matrix ReA,
magma_s_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_s_matrix input matrix A.
[out]ReAmagma_s_matrix* output matrix contaning real contributions.
[out]ImAmagma_s_matrix* output matrix contaning real contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sgedensereimsplit()

magma_int_t magma_sgedensereimsplit ( magma_s_matrix  A,
magma_s_matrix ReA,
magma_s_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_s_matrix input matrix A.
[out]ReAmagma_s_matrix* output matrix contaning real contributions.
[out]ImAmagma_s_matrix* output matrix contaning real contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sgecsr5mv()

magma_int_t magma_sgecsr5mv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  p,
float  alpha,
magma_int_t  sigma,
magma_int_t  bit_y_offset,
magma_int_t  bit_scansum_offset,
magma_int_t  num_packet,
magmaUIndex_ptr  dtile_ptr,
magmaUIndex_ptr  dtile_desc,
magmaIndex_ptr  dtile_desc_offset_ptr,
magmaIndex_ptr  dtile_desc_offset,
magmaFloat_ptr  dcalibrator,
magma_int_t  tail_tile_start,
magmaFloat_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaFloat_ptr  dx,
float  beta,
magmaFloat_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Deprecated:

The input format is CSR5 (val (tile-wise column-major), row_pointer, col (tile-wise column-major), tile_pointer, tile_desc).

Parameters
[in]transAmagma_trans_t transposition parameter for A
[in]mmagma_int_t number of rows in A
[in]nmagma_int_t number of columns in A
[in]pmagma_int_t number of tiles in A
[in]alphafloat scalar multiplier
[in]sigmamagma_int_t sigma in A in CSR5
[in]bit_y_offsetmagma_int_t bit_y_offset in A in CSR5
[in]bit_scansum_offsetmagma_int_t bit_scansum_offset in A in CSR5
[in]num_packetmagma_int_t num_packet in A in CSR5
[in]dtile_ptrmagmaUIndex_ptr tilepointer of A in CSR5
[in]dtile_descmagmaUIndex_ptr tiledescriptor of A in CSR5
[in]dtile_desc_offset_ptrmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dtile_desc_offsetmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dcalibratormagmaFloat_ptr calibrator of A in CSR5
[in]tail_tile_startmagma_int_t start of the last tile in A
[in]dvalmagmaFloat_ptr array containing values of A in CSR
[in]dvalmagmaFloat_ptr array containing values of A in CSR
[in]drowptrmagmaIndex_ptr rowpointer of A in CSR
[in]dcolindmagmaIndex_ptr columnindices of A in CSR
[in]dxmagmaFloat_ptr input vector x
[in]betafloat scalar multiplier
[out]dymagmaFloat_ptr input/output vector y
[in]queuemagma_queue_t Queue to execute in.

◆ magma_scopyscale()

magma_int_t magma_scopyscale ( magma_int_t  n,
magma_int_t  k,
magmaFloat_ptr  r,
magmaFloat_ptr  v,
magmaFloat_ptr  skp,
magma_queue_t  queue 
)

Computes the correction term of the pipelined GMRES according to P.

Deprecated:

Ghysels and scales and copies the new search direction

Returns the vector v = r/ ( skp[k] - (sum_i=1^k skp[i]^2) ) .

Parameters
[in]nint length of v_i
[in]kint

skp entries v_i^T * r ( without r )

Parameters
[in]rmagmaFloat_ptr vector of length n
[in]vmagmaFloat_ptr vector of length n
[in]skpmagmaFloat_ptr array of parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_snrm2scale()

magma_int_t magma_snrm2scale ( magma_int_t  m,
magmaFloat_ptr  dr,
magma_int_t  lddr,
float *  drnorm,
magma_queue_t  queue 
)

◆ magma_sjacobispmvupdate_bw()

magma_int_t magma_sjacobispmvupdate_bw ( magma_int_t  maxiter,
magma_s_matrix  A,
magma_s_matrix  t,
magma_s_matrix  b,
magma_s_matrix  d,
magma_s_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax) This kernel processes the thread blocks in reversed order.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]Amagma_s_matrix system matrix
[in]tmagma_s_matrix workspace
[in]bmagma_s_matrix RHS b
[in]dmagma_s_matrix vector with diagonal entries
[out]xmagma_s_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sjacobispmvupdateselect()

magma_int_t magma_sjacobispmvupdateselect ( magma_int_t  maxiter,
magma_int_t  num_updates,
magma_index_t *  indices,
magma_s_matrix  A,
magma_s_matrix  t,
magma_s_matrix  b,
magma_s_matrix  d,
magma_s_matrix  tmp,
magma_s_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax)

This kernel allows for overlapping domains: the indices-array contains the locations that are updated. Locations may be repeated to simulate overlapping domains.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]num_updatesmagma_int_t number of updates - length of the indices array
[in]indicesmagma_index_t* indices, which entries of x to update
[in]Amagma_s_matrix system matrix
[in]tmagma_s_matrix workspace
[in]bmagma_s_matrix RHS b
[in]dmagma_s_matrix vector with diagonal entries
[in]tmpmagma_s_matrix workspace
[out]xmagma_s_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_smergeblockkrylov()

magma_int_t magma_smergeblockkrylov ( magma_int_t  num_rows,
magma_int_t  num_cols,
magmaFloat_ptr  alpha,
magmaFloat_ptr  p,
magmaFloat_ptr  x,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

v = y / rho y = y / rho w = wt / psi z = z / psi

Parameters
[in]num_rowsmagma_int_t dimension m
[in]num_colsmagma_int_t dimension n
[in]alphamagmaFloat_ptr matrix containing all SKP
[in]pmagmaFloat_ptr search directions
[in,out]xmagmaFloat_ptr approximation vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgmerge1()

magma_int_t magma_sbicgmerge1 ( magma_int_t  n,
magmaFloat_ptr  skp,
magmaFloat_ptr  v,
magmaFloat_ptr  r,
magmaFloat_ptr  p,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

p = beta*p p = p-omega*beta*v p = p+r

-> p = r + beta * ( p - omega * v )

Parameters
[in]nint dimension n
[in]skpmagmaFloat_ptr set of scalar parameters
[in]vmagmaFloat_ptr input vector v
[in]rmagmaFloat_ptr input vector r
[in,out]pmagmaFloat_ptr input/output vector p
[in]queuemagma_queue_t queue to execute in.

◆ magma_sbicgmerge2()

magma_int_t magma_sbicgmerge2 ( magma_int_t  n,
magmaFloat_ptr  skp,
magmaFloat_ptr  r,
magmaFloat_ptr  v,
magmaFloat_ptr  s,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

s=r s=s-alpha*v

-> s = r - alpha * v

Parameters
[in]nint dimension n
[in]skpmagmaFloat_ptr set of scalar parameters
[in]rmagmaFloat_ptr input vector r
[in]vmagmaFloat_ptr input vector v
[out]smagmaFloat_ptr output vector s
[in]queuemagma_queue_t queue to execute in.

◆ magma_sbicgmerge3()

magma_int_t magma_sbicgmerge3 ( magma_int_t  n,
magmaFloat_ptr  skp,
magmaFloat_ptr  p,
magmaFloat_ptr  s,
magmaFloat_ptr  t,
magmaFloat_ptr  x,
magmaFloat_ptr  r,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

x=x+alpha*p x=x+omega*s r=s r=r-omega*t

-> x = x + alpha * p + omega * s -> r = s - omega * t

Parameters
[in]nint dimension n
[in]skpmagmaFloat_ptr set of scalar parameters
[in]pmagmaFloat_ptr input p
[in]smagmaFloat_ptr input s
[in]tmagmaFloat_ptr input t
[in,out]xmagmaFloat_ptr input/output x
[in,out]rmagmaFloat_ptr input/output r
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgmerge4()

magma_int_t magma_sbicgmerge4 ( magma_int_t  type,
magmaFloat_ptr  skp,
magma_queue_t  queue 
)

Performs some parameter operations for the BiCGSTAB with scalars on GPU.

Deprecated:
Parameters
[in]typeint kernel type
[in,out]skpmagmaFloat_ptr vector with parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgmerge_spmv1()

magma_int_t magma_sbicgmerge_spmv1 ( magma_s_matrix  A,
magmaFloat_ptr  d1,
magmaFloat_ptr  d2,
magmaFloat_ptr  dp,
magmaFloat_ptr  dr,
magmaFloat_ptr  dv,
magmaFloat_ptr  skp,
magma_queue_t  queue 
)

Merges the first SpmV using CSR with the dot product and the computation of alpha.

Deprecated:
Parameters
[in]Amagma_s_matrix system matrix
[in]d1magmaFloat_ptr temporary vector
[in]d2magmaFloat_ptr temporary vector
[in]dpmagmaFloat_ptr input vector p
[in]drmagmaFloat_ptr input vector r
[in]dvmagmaFloat_ptr output vector v
[in,out]skpmagmaFloat_ptr array for parameters ( skp[0]=alpha )
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgmerge_spmv2()

magma_int_t magma_sbicgmerge_spmv2 ( magma_s_matrix  A,
magmaFloat_ptr  d1,
magmaFloat_ptr  d2,
magmaFloat_ptr  ds,
magmaFloat_ptr  dt,
magmaFloat_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]Amagma_s_matrix input matrix
[in]d1magmaFloat_ptr temporary vector
[in]d2magmaFloat_ptr temporary vector
[in]dsmagmaFloat_ptr input vector s
[in]dtmagmaFloat_ptr output vector t
[in,out]skpmagmaFloat_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbicgmerge_xrbeta()

magma_int_t magma_sbicgmerge_xrbeta ( magma_int_t  n,
magmaFloat_ptr  d1,
magmaFloat_ptr  d2,
magmaFloat_ptr  rr,
magmaFloat_ptr  r,
magmaFloat_ptr  p,
magmaFloat_ptr  s,
magmaFloat_ptr  t,
magmaFloat_ptr  x,
magmaFloat_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]nint dimension n
[in]d1magmaFloat_ptr temporary vector
[in]d2magmaFloat_ptr temporary vector
[in]rrmagmaFloat_ptr input vector rr
[in]rmagmaFloat_ptr input/output vector r
[in]pmagmaFloat_ptr input vector p
[in]smagmaFloat_ptr input vector s
[in]tmagmaFloat_ptr input vector t
[out]xmagmaFloat_ptr output vector x
[in]skpmagmaFloat_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sbcsrswp()

magma_int_t magma_sbcsrswp ( magma_int_t  n,
magma_int_t  size_b,
magma_int_t *  ipiv,
magmaFloat_ptr  dx,
magma_queue_t  queue 
)

◆ magma_sbcsrtrsv()

magma_int_t magma_sbcsrtrsv ( magma_uplo_t  uplo,
magma_int_t  r_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magmaFloat_ptr  dA,
magma_index_t *  blockinfo,
magmaFloat_ptr  dx,
magma_queue_t  queue 
)

◆ magma_sbcsrvalcpy()

magma_int_t magma_sbcsrvalcpy ( magma_int_t  size_b,
magma_int_t  num_blocks,
magma_int_t  num_zero_blocks,
magmaFloat_ptr *  dAval,
magmaFloat_ptr *  dBval,
magmaFloat_ptr *  dBval2,
magma_queue_t  queue 
)

◆ magma_sbcsrluegemm()

magma_int_t magma_sbcsrluegemm ( magma_int_t  size_b,
magma_int_t  num_block_rows,
magma_int_t  kblocks,
magmaFloat_ptr *  dA,
magmaFloat_ptr *  dB,
magmaFloat_ptr *  dC,
magma_queue_t  queue 
)

◆ magma_sbcsrlupivloc()

magma_int_t magma_sbcsrlupivloc ( magma_int_t  size_b,
magma_int_t  kblocks,
magmaFloat_ptr *  dA,
magma_int_t *  ipiv,
magma_queue_t  queue 
)

◆ magma_sbcsrblockinfo5()

magma_int_t magma_sbcsrblockinfo5 ( magma_int_t  lustep,
magma_int_t  num_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magma_index_t *  blockinfo,
magmaFloat_ptr  dval,
magmaFloat_ptr *  AII,
magma_queue_t  queue 
)

◆ magma_sthrsholdselect()

magma_int_t magma_sthrsholdselect ( magma_int_t  sampling,
magma_int_t  total_size,
magma_int_t  subset_size,
float *  val,
float *  thrs,
magma_queue_t  queue 
)

◆ magma_zorderstatistics()

magma_int_t magma_zorderstatistics ( magmaDoubleComplex *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
magmaDoubleComplex *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array.

Deprecated:
Parameters
[in,out]valmagmaDoubleComplex* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementmagmaDoubleComplex* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zorderstatistics_inc()

magma_int_t magma_zorderstatistics_inc ( magmaDoubleComplex *  val,
magma_int_t  length,
magma_int_t  k,
magma_int_t  inc,
magma_int_t  r,
magmaDoubleComplex *  element,
magma_queue_t  queue 
)

Approximates the k-th smallest element in an array by using order-statistics with step-size inc.

Deprecated:
Parameters
[in,out]valmagmaDoubleComplex* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]incmagma_int_t Stepsize in the approximation.
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementmagmaDoubleComplex* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmorderstatistics()

magma_int_t magma_zmorderstatistics ( magmaDoubleComplex *  val,
magma_index_t *  col,
magma_index_t *  row,
magma_int_t  length,
magma_int_t  k,
magma_int_t  r,
magmaDoubleComplex *  element,
magma_queue_t  queue 
)

Identifies the kth smallest/largest element in an array and reorders such that these elements come to the front.

Deprecated:

The related arrays col and row are also reordered.

Parameters
[in,out]valmagmaDoubleComplex* Target array, will be modified during operation.
[in,out]colmagma_index_t* Target array, will be modified during operation.
[in,out]rowmagma_index_t* Target array, will be modified during operation.
[in]lengthmagma_int_t Length of the target array.
[in]kmagma_int_t Element to be identified (largest/smallest).
[in]rmagma_int_t rule how to sort: '1' -> largest, '0' -> smallest
[out]elementmagmaDoubleComplex* location of the respective element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zpartition()

magma_int_t magma_zpartition ( magmaDoubleComplex *  a,
magma_int_t  size,
magma_int_t  pivot,
magma_queue_t  queue 
)

◆ magma_zmedian5()

magma_int_t magma_zmedian5 ( magmaDoubleComplex *  a,
magma_queue_t  queue 
)

◆ magma_zselect()

magma_int_t magma_zselect ( magmaDoubleComplex *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]amagmaDoubleComplex* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zselectrandom()

magma_int_t magma_zselectrandom ( magmaDoubleComplex *  a,
magma_int_t  size,
magma_int_t  k,
magma_queue_t  queue 
)

An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan's worst-case linear selection algorithm.

Deprecated:

Derrick Coetzee, webma.nosp@m.ster.nosp@m.@moon.nosp@m.flar.nosp@m.e.com January 22, 2004 http://moonflare.com/code/select/select.pdf

Parameters
[in,out]amagmaDoubleComplex* array to select from
[in]sizemagma_int_t size of array
[in]kmagma_int_t k-th smallest element
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zdomainoverlap()

magma_int_t magma_zdomainoverlap ( magma_index_t  num_rows,
magma_int_t *  num_indices,
magma_index_t *  rowptr,
magma_index_t *  colidx,
magma_index_t *  x,
magma_queue_t  queue 
)

Generates the update list.

Deprecated:
Parameters
[in]xmagma_index_t* array to sort
[in]num_rowsmagma_int_t number of rows in matrix
[out]num_indicesmagma_int_t* number of indices in array
[in]rowptrmagma_index_t* rowpointer of matrix
[in]colidxmagma_index_t* colindices of matrix
[in]xmagma_index_t* array containing indices for domain overlap
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zvspread()

magma_int_t magma_zvspread ( magma_z_matrix x,
const char *  filename,
magma_queue_t  queue 
)

Reads in a sparse vector-block stored in COO format.

Deprecated:
Parameters
[out]xmagma_z_matrix * vector to read in
[in]filenamechar* file where vector is stored
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zdiameter()

magma_int_t magma_zdiameter ( magma_z_matrix A,
magma_queue_t  queue 
)

Computes the diameter of a sparse matrix and stores the value in diameter.

Deprecated:
Parameters
[in,out]Amagma_z_matrix* sparse matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilusetup()

magma_int_t magma_zparilusetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the iterative ILU iteration.

Deprecated:
Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilu_gpu()

magma_int_t magma_zparilu_gpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParILU

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilu_cpu()

magma_int_t magma_zparilu_cpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an ILU(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParILU

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparic_gpu()

magma_int_t magma_zparic_gpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParIC

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparic_cpu()

magma_int_t magma_zparic_cpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an IC(0) preconditer via fixed-point iterations.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParIC

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparicsetup()

magma_int_t magma_zparicsetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Prepares the IC preconditioner via the iterative IC iteration.

Deprecated:
Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparicupdate()

magma_int_t magma_zparicupdate ( magma_z_matrix  A,
magma_z_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative IC sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_z_matrix input matrix A, current target system
[in]precondmagma_z_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zapplyiteric_l()

magma_int_t magma_zapplyiteric_l ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_z_matrix RHS
[out]xmagma_z_matrix* vector to precondition
[in]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zapplyiteric_r()

magma_int_t magma_zapplyiteric_r ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the IC preconditioner via Jacobi.

Deprecated:
Parameters
[in]bmagma_z_matrix RHS
[out]xmagma_z_matrix* vector to precondition
[in]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilu_csr()

magma_int_t magma_zparilu_csr ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the system matrix is COO, the lower triangular factor L is stored in CSR, the upper triangular factor U is transposed, then also stored in CSR (equivalent to CSC format for the non-transposed U). Every component of L and U is handled by one thread.

Parameters
[in]Amagma_z_matrix input matrix A determing initial guess & processing order
[in,out]Lmagma_z_matrix input/output matrix L containing the lower triangular factor
[in,out]Umagma_z_matrix input/output matrix U containing the upper triangular factor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zpariluupdate()

magma_int_t magma_zpariluupdate ( magma_z_matrix  A,
magma_z_preconditioner precond,
magma_int_t  updates,
magma_queue_t  queue 
)

Updates an existing preconditioner via additional iterative ILU sweeps for previous factorization initial guess (PFIG).

Deprecated:

See Anzt et al., Parallel Computing, 2015.

Parameters
[in]Amagma_z_matrix input matrix A, current target system
[in]precondmagma_z_preconditioner* preconditioner parameters
[in]updatesmagma_int_t number of updates
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparic_csr()

magma_int_t magma_zparic_csr ( magma_z_matrix  A,
magma_z_matrix  A_CSR,
magma_queue_t  queue 
)

This routine iteratively computes an incomplete LU factorization.

Deprecated:

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015). This routine was used in the ISC 2015 paper: E. Chow et al.: "Asynchronous Iterative Algorithm for Computing Incomplete Factorizations on GPUs", ISC High Performance 2015, LNCS 9137, pp. 1-16, 2015.

The input format of the initial guess matrix A is Magma_CSRCOO, A_CSR is CSR or CSRCOO format.

Parameters
[in]Amagma_z_matrix input matrix A - initial guess (lower triangular)
[in,out]A_CSRmagma_z_matrix input/output matrix containing the IC approximation
[in]queuemagma_queue_t Queue to execute in.

◆ magma_znonlinres()

magma_int_t magma_znonlinres ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix LU,
real_Double_t *  res,
magma_queue_t  queue 
)

Computes the nonlinear residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_z_matrix input sparse matrix in CSR
[in]Lmagma_z_matrix input sparse matrix in CSR
[in]Umagma_z_matrix input sparse matrix in CSR
[out]LUmagma_z_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zilures()

magma_int_t magma_zilures ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the ILU residual A - LU and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_z_matrix input sparse matrix in CSR
[in]Lmagma_z_matrix input sparse matrix in CSR
[in]Umagma_z_matrix input sparse matrix in CSR
[out]LUmagma_z_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* Frobenius norm of difference
[out]nonlinresreal_Double_t* Frobenius norm of difference
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zicres()

magma_int_t magma_zicres ( magma_z_matrix  A,
magma_z_matrix  C,
magma_z_matrix  CT,
magma_z_matrix LU,
real_Double_t *  res,
real_Double_t *  nonlinres,
magma_queue_t  queue 
)

Computes the IC residual A - CC^T and returns the difference as well es the Frobenius norm of the difference.

Deprecated:
Parameters
[in]Amagma_z_matrix input sparse matrix in CSR
[in]Cmagma_z_matrix input sparse matrix in CSR
[in]CTmagma_z_matrix input sparse matrix in CSR
[in]LUmagma_z_matrix* output sparse matrix in A-LU in CSR
[out]resreal_Double_t* IC residual
[out]nonlinresreal_Double_t* nonlinear residual
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zinitguess()

magma_int_t magma_zinitguess ( magma_z_matrix  A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

Computes an initial guess for the ParILU/ParIC.

Deprecated:
Parameters
[in]Amagma_z_matrix sparse matrix in CSR
[out]Lmagma_z_matrix* sparse matrix in CSR
[out]Umagma_z_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zinitrecursiveLU()

magma_int_t magma_zinitrecursiveLU ( magma_z_matrix  A,
magma_z_matrix B,
magma_queue_t  queue 
)

Using the iterative approach of computing ILU factorizations with increasing fill-in, it takes the input matrix A, containing the approximate factors, ( L and U as well ) computes a matrix with one higher level of fill-in, inserts the original approximation as initial guess, and provides the factors L and U also filled with the scaled initial guess.

Deprecated:
Parameters
[in]Amagma_z_matrix* sparse matrix in CSR
[out]Bmagma_z_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmLdiagadd()

magma_int_t magma_zmLdiagadd ( magma_z_matrix L,
magma_queue_t  queue 
)

Checks for a lower triangular matrix whether it is strictly lower triangular and in the negative case adds a unit diagonal.

Deprecated:

It does this in-place.

Parameters
[in,out]Lmagma_z_matrix* sparse matrix in CSR
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_cup()

magma_int_t magma_zmatrix_cup ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

Parameters
[in]Amagma_z_matrix Input matrix 1.
[in]Bmagma_z_matrix Input matrix 2.
[out]Umagma_z_matrix* Not a real matrix, but the list of all matrix entries included in either A or B. No duplicates.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_cup_gpu()

magma_int_t magma_zmatrix_cup_gpu ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix U,
magma_queue_t  queue 
)

Generates a matrix \(U = A \cup B\).

Deprecated:

If both matrices have a nonzero value in the same location, the value of A is used.

This is the GPU version of the operation.

Parameters
[in]Amagma_z_matrix Input matrix 1.
[in]Bmagma_z_matrix Input matrix 2.
[out]Umagma_z_matrix* \(U = A \cup B\). If both matrices have a nonzero value in the same location, the value of A is used.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_cap()

magma_int_t magma_zmatrix_cap ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being in both matrices: \(U = A \cap B\).

Deprecated:

The values in U are all ones.

Parameters
[in]Amagma_z_matrix Input matrix 1.
[in]Bmagma_z_matrix Input matrix 2.
[out]Umagma_z_matrix* Not a real matrix, but the list of all matrix entries included in both A and B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_negcap()

magma_int_t magma_zmatrix_negcap ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of A but not of B.

Deprecated:

U = A \ B The values of A are preserved.

Parameters
[in]Amagma_z_matrix Element part of this.
[in,out]Bmagma_z_matrix Not part of this.
[out]Umagma_z_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_tril_negcap()

magma_int_t magma_zmatrix_tril_negcap ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix U,
magma_queue_t  queue 
)

Generates a list of matrix entries being part of tril(A) but not of B.

Deprecated:

U = tril(A) \ B The values of A are preserved.

Parameters
[in]Amagma_z_matrix Element part of this.
[in,out]Bmagma_z_matrix Not part of this.
[out]Umagma_z_matrix* Not a real matrix, but the list of all matrix entries included in A not in B.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_triu_negcap()

magma_int_t magma_zmatrix_triu_negcap ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix U,
magma_queue_t  queue 
)

Generates a matrix with entries being part of triu(A) but not of B.

Deprecated:

U = triu(A) \ B The values of A are preserved.

Parameters
[in]Amagma_z_matrix Element part of this.
[in]Bmagma_z_matrix Not part of this.
[out]Umagma_z_matrix*
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmatrix_abssum()

magma_int_t magma_zmatrix_abssum ( magma_z_matrix  A,
double *  sum,
magma_queue_t  queue 
)

Computes the sum of the absolute values in a matrix.

Deprecated:
Parameters
[in]Amagma_z_matrix Element list/matrix.
[out]sumdouble* Sum of the absolute values.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_thrsrm()

magma_int_t magma_zparilut_thrsrm ( magma_int_t  order,
magma_z_matrix A,
double *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_z_matrix* Matrix where elements are removed.
[in]thrsdouble* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_thrsrm_semilinked()

magma_int_t magma_zparilut_thrsrm_semilinked ( magma_z_matrix U,
magma_z_matrix US,
double *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller thrs from the matrix.

Deprecated:

It only uses the linked list and skips the `‘removed’' elements

Parameters
[in,out]Amagma_z_matrix* Matrix where elements are removed.
[in]thrsdouble* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_rmselected()

magma_int_t magma_zparilut_rmselected ( magma_z_matrix  R,
magma_z_matrix A,
magma_queue_t  queue 
)

Removes a selected list of elements from the matrix.

Deprecated:
Parameters
[in]Rmagma_z_matrix Matrix containing elements to be removed.
[in,out]Amagma_z_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_selectoneperrow()

magma_int_t magma_zparilut_selectoneperrow ( magma_int_t  order,
magma_z_matrix A,
magma_z_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_z_matrix* Matrix where elements are removed.
[out]oneAmagma_z_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_selecttwoperrow()

magma_int_t magma_zparilut_selecttwoperrow ( magma_int_t  order,
magma_z_matrix A,
magma_z_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==1 -> largest order==0 -> smallest
[in]Amagma_z_matrix* Matrix where elements are removed.
[out]oneAmagma_z_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_selectoneperrowthrs_lower()

magma_int_t magma_zparilut_selectoneperrowthrs_lower ( magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix A,
double  rtol,
magma_z_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_z_matrix Current lower triangular factor.
[in]Umagma_z_matrix Current upper triangular factor.
[in]Amagma_z_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_z_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_selectoneperrowthrs_upper()

magma_int_t magma_zparilut_selectoneperrowthrs_upper ( magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix A,
double  rtol,
magma_z_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_z_matrix Current lower triangular factor.
[in]Umagma_z_matrix Current upper triangular factor.
[in]Amagma_z_matrix* All residuals in L.
[in]rtolthreshold rtol
[out]oneAmagma_z_matrix* at most one per row, if larger thrs.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_selectonepercol()

magma_int_t magma_zparilut_selectonepercol ( magma_int_t  order,
magma_z_matrix A,
magma_z_matrix oneA,
magma_queue_t  queue 
)

◆ magma_zparilut_transpose_select_one()

magma_int_t magma_zparilut_transpose_select_one ( magma_z_matrix  A,
magma_z_matrix B,
magma_queue_t  queue 
)

This is a special routine with very limited scope.

Deprecated:

For a set of fill-in candidates in row-major format, it transposes the a submatrix, i.e. the submatrix consisting of the largest element in every column. This function is only useful for delta<=1.

Parameters
[in]Amagma_z_matrix Matrix to transpose.
[out]Bmagma_z_matrix* Transposed matrix containing only largest elements in each col.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_insert_LU()

magma_int_t magma_zparilut_insert_LU ( magma_int_t  num_rm,
magma_index_t *  rm_loc,
magma_index_t *  rm_loc2,
magma_z_matrix LU_new,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

◆ magma_zparilut_set_thrs()

magma_int_t magma_zparilut_set_thrs ( magma_int_t  num_rm,
magma_z_matrix LU,
magma_int_t  order,
magmaDoubleComplex *  thrs,
magma_queue_t  queue 
)

◆ magma_zparilut_set_approx_thrs()

magma_int_t magma_zparilut_set_approx_thrs ( magma_int_t  num_rm,
magma_z_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_z_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsmagmaDoubleComplex* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_set_thrs_randomselect()

magma_int_t magma_zparilut_set_thrs_randomselect ( magma_int_t  num_rm,
magma_z_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_z_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_set_thrs_randomselect_approx()

magma_int_t magma_zparilut_set_thrs_randomselect_approx ( magma_int_t  num_rm,
magma_z_matrix LU,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_z_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_set_thrs_randomselect_factors()

magma_int_t magma_zparilut_set_thrs_randomselect_factors ( magma_int_t  num_rm,
magma_z_matrix L,
magma_z_matrix U,
magma_int_t  order,
double *  thrs,
magma_queue_t  queue 
)

This routine approximates the threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_z_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsdouble* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_set_exact_thrs()

magma_int_t magma_zparilut_set_exact_thrs ( magma_int_t  num_rm,
magma_z_matrix LU,
magma_int_t  order,
magmaDoubleComplex *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_z_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsmagmaDoubleComplex* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_set_approx_thrs_inc()

magma_int_t magma_zparilut_set_approx_thrs_inc ( magma_int_t  num_rm,
magma_z_matrix LU,
magma_int_t  order,
magmaDoubleComplex *  thrs,
magma_queue_t  queue 
)

This routine provides the exact threshold for removing num_rm elements.

Deprecated:
Parameters
[in]num_rmmagma_int_t Number of Elements that are replaced.
[in]LUmagma_z_matrix* Current ILU approximation.
[in]ordermagma_int_t Sort goal function: 0 = smallest, 1 = largest.
[out]thrsmagmaDoubleComplex* Size of the num_rm-th smallest element.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_LU_approx_thrs()

magma_int_t magma_zparilut_LU_approx_thrs ( magma_int_t  num_rm,
magma_z_matrix L,
magma_z_matrix U,
magma_int_t  order,
magmaDoubleComplex *  thrs,
magma_queue_t  queue 
)

◆ magma_zparilut_reorder()

magma_int_t magma_zparilut_reorder ( magma_z_matrix LU,
magma_queue_t  queue 
)

This routine reorders the matrix (inplace) for easier access.

Deprecated:
Parameters
[in]LUmagma_z_matrix* Current ILU approximation.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparict_sweep()

magma_int_t magma_zparict_sweep ( magma_z_matrix A,
magma_z_matrix LU,
magma_queue_t  queue 
)

◆ magma_zparilut_zero()

magma_int_t magma_zparilut_zero ( magma_z_matrix A,
magma_queue_t  queue 
)

◆ magma_zparilu_sweep()

magma_int_t magma_zparilu_sweep ( magma_z_matrix  A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep.

Deprecated:

Input and output array are identical.

Parameters
[in]Amagma_z_matrix System matrix in COO.
[in]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_z_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilu_sweep_sync()

magma_int_t magma_zparilu_sweep_sync ( magma_z_matrix  A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_z_matrix System matrix in COO.
[in]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_z_matrix* Current approximation for the upper triangular factor The format is sorted CSC (U^T in CSR).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparic_sweep()

magma_int_t magma_zparic_sweep ( magma_z_matrix  A,
magma_z_matrix L,
magma_queue_t  queue 
)

This function does one asynchronous ParILU sweep (symmetric case).

Deprecated:

Input and output array is identical.

Parameters
[in]Amagma_z_matrix System matrix in COO.
[in]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparic_sweep_sync()

magma_int_t magma_zparic_sweep_sync ( magma_z_matrix  A,
magma_z_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep (symmetric case).

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_z_matrix System matrix in COO.
[in]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparict_sweep_sync()

magma_int_t magma_zparict_sweep_sync ( magma_z_matrix A,
magma_z_matrix L,
magma_queue_t  queue 
)

This function does one synchronized ParILU sweep.

Deprecated:

Input and output are different arrays.

Parameters
[in]Amagma_z_matrix* System matrix.
[in]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_z_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[out]L_newmagma_z_matrix* Current approximation for the lower triangular factor The format is unsorted CSR.
[out]U_newmagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_sweep_sync()

magma_int_t magma_zparilut_sweep_sync ( magma_z_matrix A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A.

This is the CPU version of the synchronous ParILUT sweep.

Parameters
[in]Amagma_z_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_z_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_sweep_gpu()

magma_int_t magma_zparilut_sweep_gpu ( magma_z_matrix A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

This function does an ParILUT sweep.

Deprecated:

The difference to the ParILU sweep is that the nonzero pattern of A and the incomplete factors L and U can be different. The pattern determing which elements are iterated are hence the pattern of L and U, not A. L has a unit diagonal.

This is the GPU version of the asynchronous ParILUT sweep.

Parameters
[in]Amagma_z_matrix* System matrix. The format is sorted CSR.
[in,out]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Umagma_z_matrix* Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_residuals_gpu()

magma_int_t magma_zparilut_residuals_gpu ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_z_matrix System matrix. The format is sorted CSR.
[in]Lmagma_z_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in]Umagma_z_matrix Current approximation for the lower triangular factor The format is MAGMA_CSRCOO. This is sorted CSR plus the rowindexes being stored.
[in,out]Rmagma_z_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zthrsholdrm_gpu()

magma_int_t magma_zthrsholdrm_gpu ( magma_int_t  order,
magma_z_matrix A,
double *  thrs,
magma_queue_t  queue 
)
Deprecated:
Purpose

This routine selects a threshold separating the subset_size smallest
magnitude elements from the rest.




@param[in]
order       magma_int_t 
            dummy variable for now.

@param[in,out]
A           magma_z_matrix*  
            input/output matrix where elements are removed

@param[out]
thrs        double*  
            computed threshold

@param[in]
queue       magma_queue_t
            Queue to execute in.

@ingroup magmasparse_zaux

◆ magma_zget_row_ptr()

magma_int_t magma_zget_row_ptr ( const magma_int_t  num_rows,
magma_int_t *  nnz,
const magma_index_t *  rowidx,
magma_index_t *  rowptr,
magma_queue_t  queue 
)

◆ magma_zparilut_align_residuals()

magma_int_t magma_zparilut_align_residuals ( magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix Lnew,
magma_z_matrix Unew,
magma_queue_t  queue 
)

This function scales the residuals of a lower triangular factor L with the diagonal of U.

Deprecated:

The intention is to generate a good initial guess for inserting the elements.

Parameters
[in]Lmagma_z_matrix Current approximation for the lower triangular factor The format is sorted CSR.
[in]Umagma_z_matrix Current approximation for the upper triangular factor The format is sorted CSC.
[in]hLmagma_z_matrix* Current approximation for the lower triangular factor The format is sorted CSR.
[in]hUmagma_z_matrix* Current approximation for the upper triangular factor The format is sorted CSC.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_preselect_scale()

magma_int_t magma_zparilut_preselect_scale ( magma_z_matrix L,
magma_z_matrix oneL,
magma_z_matrix U,
magma_z_matrix oneU,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]Lmagma_z_matrix* Matrix where elements are removed.
[in]Umagma_z_matrix* Matrix where elements are removed.
[out]oneLmagma_z_matrix* Matrix where elements are removed.
[out]oneUmagma_z_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_thrsrm_U()

magma_int_t magma_zparilut_thrsrm_U ( magma_int_t  order,
magma_z_matrix  L,
magma_z_matrix A,
double *  thrs,
magma_queue_t  queue 
)

Removes any element with absolute value smaller equal or larger equal thrs from the matrix and compacts the whole thing.

Deprecated:
Parameters
[in]ordermagma_int_t order == 1: all elements smaller are discarded order == 0: all elements larger are discarded
[in,out]Amagma_z_matrix* Matrix where elements are removed.
[in]thrsdouble* Threshold: all elements smaller are discarded
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_residuals()

magma_int_t magma_zparilut_residuals ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix R,
magma_queue_t  queue 
)

This function computes the ILU residual in the locations included in the sparsity pattern of R.

Deprecated:
Parameters
[in]Amagma_z_matrix System matrix A.
[in]Lmagma_z_matrix Current approximation for the lower triangular factor. The format is sorted CSR.
[in]Umagma_z_matrix Current approximation for the upper triangular factor. The format is sorted CSR.
[in,out]Rmagma_z_matrix* Sparsity pattern on which the ILU residual is computed. R is in COO format. On output, R contains the ILU residual.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_residuals_transpose()

magma_int_t magma_zparilut_residuals_transpose ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix U_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_z_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_residuals_semilinked()

magma_int_t magma_zparilut_residuals_semilinked ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  US,
magma_z_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_z_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_sweep_semilinked()

magma_int_t magma_zparilut_sweep_semilinked ( magma_z_matrix A,
magma_z_matrix L,
magma_z_matrix US,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_z_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_sweep_list()

magma_int_t magma_zparilut_sweep_list ( magma_z_matrix A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_z_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_residuals_list()

magma_int_t magma_zparilut_residuals_list ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_z_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_sweep_linkedlist()

magma_int_t magma_zparilut_sweep_linkedlist ( magma_z_matrix A,
magma_z_matrix L,
magma_z_matrix U,
magma_queue_t  queue 
)

This function does an ParILU sweep.

Deprecated:
Parameters
[in,out]Amagma_z_matrix* Current ILU approximation The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Lmagma_z_matrix* Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_residuals_linkedlist()

magma_int_t magma_zparilut_residuals_linkedlist ( magma_z_matrix  A,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix L_new,
magma_queue_t  queue 
)

This function computes the residuals.

Deprecated:
Parameters
[in,out]Lmagma_z_matrix Current approximation for the lower triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* Current approximation for the upper triangular factor The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_colmajor()

magma_int_t magma_zparilut_colmajor ( magma_z_matrix  A,
magma_z_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_z_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_z_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_colmajorup()

magma_int_t magma_zparilut_colmajorup ( magma_z_matrix  A,
magma_z_matrix AC,
magma_queue_t  queue 
)

This function creates a col-pointer and a linked list along the columns for a row-major CSR matrix.

Deprecated:
Parameters
[in]Amagma_z_matrix The format is unsorted CSR, the list array is used as linked list pointing to the respectively next entry.
[in,out]ACmagma_z_matrix* The matrix A but with row-pointer being for col-major, same with linked list. The values, col and row indices are unchanged. The respective pointers point to the entities of A. Already allocated.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparict()

magma_int_t magma_zparict ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete Cholesky preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.

This function requires OpenMP, and is only available if OpenMP is activated.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparict_cpu()

magma_int_t magma_zparict_cpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern. It is the variant for SPD systems.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut()

magma_int_t magma_zparilut ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete LU preconditioner.

Deprecated:

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_cpu()

magma_int_t magma_zparilut_cpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_gpu()

magma_int_t magma_zparilut_gpu ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_gpu_nodp()

magma_int_t magma_zparilut_gpu_nodp ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

Deprecated:

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

This routine is the same as magma_zparilut_gpu(), except that it uses no dynamic paralellism

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_insert()

magma_int_t magma_zparilut_insert ( magma_int_t *  num_rmL,
magma_int_t *  num_rmU,
magma_index_t *  rm_locL,
magma_index_t *  rm_locU,
magma_z_matrix L_new,
magma_z_matrix U_new,
magma_z_matrix L,
magma_z_matrix U,
magma_z_matrix UR,
magma_queue_t  queue 
)

Inserts for the iterative dynamic ILU an new element in the (empty) place.

Deprecated:
Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced in L.
[in]num_rmUmagma_int_t Number of Elements that are replaced in U.
[in]rm_locLmagma_index_t* List containing the locations of the deleted elements.
[in]rm_locUmagma_index_t* List containing the locations of the deleted elements.
[in]L_newmagma_z_matrix Elements that will be inserted in L stored in COO format (unsorted).
[in]U_newmagma_z_matrix Elements that will be inserted in U stored in COO format (unsorted).
[in,out]Lmagma_z_matrix* matrix where new elements are inserted. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]Umagma_z_matrix* matrix where new elements are inserted. Row-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in,out]URmagma_z_matrix* Same matrix as U, but column-major. The format is unsorted CSR, list is used as linked list pointing to the respectively next entry.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_create_collinkedlist()

magma_int_t magma_zparilut_create_collinkedlist ( magma_z_matrix  A,
magma_z_matrix B,
magma_queue_t  queue 
)

For the matrix U in CSR (row-major) this creates B containing a row-ptr to the columns and a linked list for the elements.

Deprecated:
Parameters
[in]Amagma_z_matrix Matrix to transpose.
[out]Bmagma_z_matrix* Transposed matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_candidates()

magma_int_t magma_zparilut_candidates ( magma_z_matrix  L0,
magma_z_matrix  U0,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix L_new,
magma_z_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_z_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_z_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_z_matrix Current lower triangular factor.
[in]Umagma_z_matrix Current upper triangular factor.
[in,out]LU_newmagma_z_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_z_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_candidates_gpu()

magma_int_t magma_zparilut_candidates_gpu ( magma_z_matrix  L0,
magma_z_matrix  U0,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix L_new,
magma_z_matrix U_new,
magma_queue_t  queue 
)

This function identifies the locations with a potential nonzero ILU residual R = A - L*U where L and U are the current incomplete factors.

Deprecated:

Nonzero ILU residuals are possible 1 where A is nonzero but L and U have no nonzero entry 2 where the product L*U has fill-in but the location is not included in L or U

We assume that the incomplete factors are exact fro the elements included in the current pattern.

This is the GPU implementation of the candidate search.

2 GPU kernels are used: the first is a dry run assessing the memory need, the second then computes the candidate locations, the third eliminates double entries. The fourth kernel ensures the elements in a row are sorted for increasing column index.

Parameters
[in]L0magma_z_matrix tril(ILU(0) ) pattern of original system matrix.
[in]U0magma_z_matrix triu(ILU(0) ) pattern of original system matrix.
[in]Lmagma_z_matrix Current lower triangular factor.
[in]Umagma_z_matrix Current upper triangular factor.
[in,out]L_newmagma_z_matrix* List of candidates for L in COO format.
[in,out]U_newmagma_z_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparict_candidates()

magma_int_t magma_zparict_candidates ( magma_z_matrix  L0,
magma_z_matrix  L,
magma_z_matrix  LT,
magma_z_matrix L_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_z_matrix tril( ILU(0) ) pattern of original system matrix.
[in]Lmagma_z_matrix Current lower triangular factor.
[in]LTmagma_z_matrix Transose of the lower triangular factor.
[in,out]L_newmagma_z_matrix* List of candidates for L in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_candidates_semilinked()

magma_int_t magma_zparilut_candidates_semilinked ( magma_z_matrix  L0,
magma_z_matrix  U0,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix  UT,
magma_z_matrix L_new,
magma_z_matrix U_new,
magma_queue_t  queue 
)

This function identifies the candidates like they appear as ILU1 fill-in.

Deprecated:

In this version, the matrices are assumed unordered, the linked list is traversed to acces the entries of a row.

Parameters
[in]L0magma_z_matrix tril( ILU(0) ) pattern of original system matrix.
[in]U0magma_z_matrix triu( ILU(0) ) pattern of original system matrix.
[in]Lmagma_z_matrix Current lower triangular factor.
[in]Umagma_z_matrix Current upper triangular factor transposed.
[in]URmagma_z_matrix Current upper triangular factor - col-pointer and col-list.
[in,out]LU_newmagma_z_matrix* List of candidates for L in COO format.
[in,out]LU_newmagma_z_matrix* List of candidates for U in COO format.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_candidates_linkedlist()

magma_int_t magma_zparilut_candidates_linkedlist ( magma_z_matrix  L0,
magma_z_matrix  U0,
magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix  UR,
magma_z_matrix L_new,
magma_z_matrix U_new,
magma_queue_t  queue 
)

◆ magma_zparilut_rm_thrs()

magma_int_t magma_zparilut_rm_thrs ( double *  thrs,
magma_int_t *  num_rm,
magma_z_matrix LU,
magma_z_matrix LU_new,
magma_index_t *  rm_loc,
magma_queue_t  queue 
)

This routine removes matrix entries from the structure that are smaller than the threshold.

Deprecated:

It only counts the elements deleted, does not save the locations.

Parameters
[out]thrsmagmaDoubleComplex* Thrshold for removing elements.
[out]num_rmmagma_int_t* Number of Elements that have been removed.
[in,out]LUmagma_z_matrix* Current ILU approximation where the identified smallest components are deleted.
[in,out]LUCmagma_z_matrix* Corresponding col-list.
[in,out]LU_newmagma_z_matrix* List of candidates in COO format.
[out]rm_locmagma_index_t* List containing the locations of the elements deleted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_count()

magma_int_t magma_zparilut_count ( magma_z_matrix  L,
magma_int_t *  num,
magma_queue_t  queue 
)

This is a helper routine counting elements in a matrix in unordered Magma_CSRLIST format.

Deprecated:
Parameters
[in]Lmagma_z_matrix* Matrix in Magm_CSRLIST format
[out]nummagma_index_t* Number of elements counted.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_randlist()

magma_int_t magma_zparilut_randlist ( magma_z_matrix LU,
magma_queue_t  queue 
)

◆ magma_zparilut_select_candidates_L()

magma_int_t magma_zparilut_select_candidates_L ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_z_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_z_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_z_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_select_candidates_U()

magma_int_t magma_zparilut_select_candidates_U ( magma_int_t *  num_rm,
magma_index_t *  rm_loc,
magma_z_matrix L_new,
magma_queue_t  queue 
)

Screens the new candidates for multiple elements in the same row.

Deprecated:

We allow for at most one new element per row. This changes the algorithm, but pays off in performance.

Parameters
[in]num_rmLmagma_int_t Number of Elements that are replaced.
[in]num_rmUmagma_int_t Number of Elements that are replaced.
[in]rm_locmagma_int_t* Number of Elements that are replaced by distinct threads.
[in]L_newmagma_z_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]U_newmagma_z_matrix* Elements that will be inserted stored in COO format (unsorted).
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zparilut_preselect()

magma_int_t magma_zparilut_preselect ( magma_int_t  order,
magma_z_matrix A,
magma_z_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_z_matrix* Matrix where elements are removed.
[out]oneAmagma_z_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zpreselect_gpu()

magma_int_t magma_zpreselect_gpu ( magma_int_t  order,
magma_z_matrix A,
magma_z_matrix oneA,
magma_queue_t  queue 
)

This function takes a list of candidates with residuals, and selects the largest in every row.

Deprecated:

The output matrix only contains these largest elements (respectively a zero element if there is no candidate for a certain row).

Parameters
[in]ordermagma_int_t order==0 lower triangular order==1 upper triangular
[in]Amagma_z_matrix* Matrix where elements are removed.
[out]oneAmagma_z_matrix* Matrix where elements are removed.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zsampleselect()

magma_int_t magma_zsampleselect ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaDoubleComplex *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaDoubleComplex array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zsampleselect_approx()

magma_int_t magma_zsampleselect_approx ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaDoubleComplex *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:
Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaDoubleComplex array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zsampleselect_nodp()

magma_int_t magma_zsampleselect_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaDoubleComplex *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaDoubleComplex array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zsampleselect_approx_nodp()

magma_int_t magma_zsampleselect_approx_nodp ( magma_int_t  total_size,
magma_int_t  subset_size,
magmaDoubleComplex *  val,
double *  thrs,
magma_ptr *  tmp_ptr,
magma_int_t *  tmp_size,
magma_queue_t  queue 
)

This routine selects an approximate threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

This routine does not use dynamic parallelism (DP)

Parameters
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaDoubleComplex array containing the values
[out]thrsdouble* computed threshold
[in,out]tmp_ptrmagma_ptr* pointer to pointer to temporary storage. May be reallocated during execution.
[in,out]tmp_sizemagma_int_t* pointer to size of temporary storage. May be increased during execution.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmprepare_batched()

magma_int_t magma_zmprepare_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix  L,
magma_z_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaDoubleComplex *  trisystems,
magmaDoubleComplex *  rhs,
magma_queue_t  queue 
)

Takes a sparse matrix and generates an array containing the sizes of the different systems an array containing the indices with the locations in the sparse matrix where the data comes from and goes back to an array containing all the sparse triangular systems.

Deprecated:
  • padded with zeros to size 32x32 an array containing the RHS
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_z_matrix Matrix in CSR format
[in]LCmagma_z_matrix same matrix, also CSR, but col-major
[in,out]sizesmagma_int_t* Number of Elements that are replaced.
[in,out]locationsmagma_int_t* Array indicating the locations.
[in,out]trisystemsmagmaDoubleComplex* trisystems
[in,out]rhsmagmaDoubleComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmtrisolve_batched()

magma_int_t magma_zmtrisolve_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix  L,
magma_z_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaDoubleComplex *  trisystems,
magmaDoubleComplex *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_z_matrix Matrix in CSR format
[in]LCmagma_z_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaDoubleComplex* trisystems
[out]rhsmagmaDoubleComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmbackinsert_batched()

magma_int_t magma_zmbackinsert_batched ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaDoubleComplex *  trisystems,
magmaDoubleComplex *  rhs,
magma_queue_t  queue 
)

Inserts the values into the preconditioner matrix.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in,out]Mmagma_z_matrix* SPAI preconditioner CSR col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaDoubleComplex* trisystems
[out]rhsmagmaDoubleComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmprepare_batched_gpu()

magma_int_t magma_zmprepare_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix  L,
magma_z_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaDoubleComplex *  trisystems,
magmaDoubleComplex *  rhs,
magma_queue_t  queue 
)

This routine prepares the batch of small triangular systems that need to be solved for computing the ISAI preconditioner.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t input matrix
[in]transtypemagma_trans_t input matrix
[in]diagtypemagma_diag_t input matrix
[in]Lmagma_z_matrix triangular factor for which the ISAI matrix is computed. Col-Major CSR storage.
[in]LCmagma_z_matrix sparsity pattern of the ISAI matrix. Col-Major CSR storage.
[in,out]sizesmagma_index_t* array containing the sizes of the small triangular systems
[in,out]locationsmagma_index_t* array containing the locations in the respective column of L
[in,out]trisystemsmagmaDoubleComplex* batch of generated small triangular systems. All systems are embedded in uniform memory blocks of size BLOCKSIZE x BLOCKSIZE
[in,out]rhsmagmaDoubleComplex* RHS of the small triangular systems
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmtrisolve_batched_gpu()

magma_int_t magma_zmtrisolve_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix  L,
magma_z_matrix  LC,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaDoubleComplex *  trisystems,
magmaDoubleComplex *  rhs,
magma_queue_t  queue 
)

Does all triangular solves.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_z_matrix Matrix in CSR format
[in]LCmagma_z_matrix same matrix, also CSR, but col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaDoubleComplex* trisystems
[out]rhsmagmaDoubleComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmbackinsert_batched_gpu()

magma_int_t magma_zmbackinsert_batched_gpu ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix M,
magma_index_t *  sizes,
magma_index_t *  locations,
magmaDoubleComplex *  trisystems,
magmaDoubleComplex *  rhs,
magma_queue_t  queue 
)

Inserts the values into the preconditioner matrix.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in,out]Mmagma_z_matrix* SPAI preconditioner CSR col-major
[out]sizesmagma_int_t* Number of Elements that are replaced.
[out]locationsmagma_int_t* Array indicating the locations.
[out]trisystemsmagmaDoubleComplex* trisystems
[out]rhsmagmaDoubleComplex* right-hand sides
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ziluisaisetup_lower()

magma_int_t magma_ziluisaisetup_lower ( magma_z_matrix  L,
magma_z_matrix  S,
magma_z_matrix ISAIL,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the lower triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Lmagma_z_matrix lower triangular factor
[in]Smagma_z_matrix pattern for the ISAI preconditioner for L
[out]ISAILmagma_z_matrix* ISAI preconditioner for L
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ziluisaisetup_upper()

magma_int_t magma_ziluisaisetup_upper ( magma_z_matrix  U,
magma_z_matrix  S,
magma_z_matrix ISAIU,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This routine only handles the upper triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters
[in]Umagma_z_matrix lower triangular factor
[in]Smagma_z_matrix pattern for the ISAI preconditioner for U
[out]ISAIUmagma_z_matrix* ISAI preconditioner for U
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zicisaisetup()

magma_int_t magma_zicisaisetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Prepares Incomplete Cholesky preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Deprecated:

This is the symmetric variant of zgeisai.cpp.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zisai_l()

magma_int_t magma_zisai_l ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zisai_r()

magma_int_t magma_zisai_r ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:
Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zisai_l_t()

magma_int_t magma_zisai_l_t ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zisai_r_t()

magma_int_t magma_zisai_r_t ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Deprecated:

Transpose.

Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmiluisai_sizecheck()

magma_int_t magma_zmiluisai_sizecheck ( magma_z_matrix  A,
magma_index_t  batchsize,
magma_index_t *  maxsize,
magma_queue_t  queue 
)

◆ magma_zgeisai_maxblock()

magma_int_t magma_zgeisai_maxblock ( magma_z_matrix  L,
magma_z_matrix MT,
magma_queue_t  queue 
)

This routine maximizes the pattern for the ISAI preconditioner.

Deprecated:

Precisely, it computes L, L^2, L^3, L^4, L^5 and then selects the columns of M_L such that the nonzer-per-column are the lower max than the implementation-specific limit (32).

The input is the original matrix (row-major) The output is already col-major.

Parameters
[in,out]Lmagma_z_matrix Incomplete factor.
[in,out]MTmagma_z_matrix* SPAI preconditioner structure, CSR col-major.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zisai_generator_regs()

magma_int_t magma_zisai_generator_regs ( magma_uplo_t  uplotype,
magma_trans_t  transtype,
magma_diag_t  diagtype,
magma_z_matrix  L,
magma_z_matrix M,
magma_queue_t  queue 
)

This routine is designet to combine all kernels into one.

Deprecated:
Parameters
[in]uplotypemagma_uplo_t lower or upper triangular
[in]transtypemagma_trans_t possibility for transposed matrix
[in]diagtypemagma_diag_t unit diagonal or not
[in]Lmagma_z_matrix triangular factor for which the ISAI matrix is computed. Col-Major CSR storage.
[in,out]Mmagma_z_matrix* SPAI preconditioner CSR col-major
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmsupernodal()

magma_int_t magma_zmsupernodal ( magma_int_t *  max_bs,
magma_z_matrix  A,
magma_z_matrix S,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with block-size bs.

Deprecated:
Parameters
[in,out]max_bsmagma_int_t* Size of the largest diagonal block.
[in]Amagma_z_matrix System matrix.
[in,out]Smagma_z_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmvarsizeblockstruct()

magma_int_t magma_zmvarsizeblockstruct ( magma_int_t  n,
magma_int_t *  bs,
magma_int_t  bsl,
magma_uplo_t  uplotype,
magma_z_matrix A,
magma_queue_t  queue 
)

Generates a block-diagonal sparsity pattern with variable block-size.

Deprecated:
Parameters
[in]nmagma_int_t Size of the matrix.
[in]bsmagma_int_t* Vector containing the size of the diagonal blocks.
[in]bslmagma_int_t Size of the vector containing the block sizes.
[in]uplotypemagma_uplo_t lower or upper triangular
[in,out]Amagma_z_matrix* Generated sparsity pattern matrix.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ztfqmr_unrolled()

magma_int_t magma_ztfqmr_unrolled ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a complex matrix A.

Deprecated:

This is a GPU implementation of the transpose-free Quasi-Minimal Residual method (TFQMR).

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgstab_merge2()

magma_int_t magma_zbicgstab_merge2 ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_zbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgstab_merge3()

magma_int_t magma_zbicgstab_merge3 ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a general matrix.

Deprecated:

This is a GPU implementation of the Biconjugate Gradient Stabilized method. The difference to magma_zbicgstab is that we use specifically designed kernels merging multiple operations into one kernel.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zjacobidomainoverlap()

magma_int_t magma_zjacobidomainoverlap ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Jacobi method allowing for domain overlap.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbaiter()

magma_int_t magma_zbaiter ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_z_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:
Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]precond_parmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbaiter_overlap()

magma_int_t magma_zbaiter_overlap ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_z_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * x = b via the block asynchronous iteration method on GPU.

Deprecated:

It used restricted additive Schwarz overlap in top-down direction.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]precond_parmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zftjacobicontractions()

magma_int_t magma_zftjacobicontractions ( magma_z_matrix  xkm2,
magma_z_matrix  xkm1,
magma_z_matrix  xk,
magma_z_matrix z,
magma_z_matrix c,
magma_queue_t  queue 
)

Computes the contraction coefficients c_i:

Deprecated:

c_i = z_i^{k-1} / z_i^{k}

= | x_i^{k-1} - x_i^{k-2} | / |  x_i^{k} - x_i^{k-1} |
Parameters
[in]xkm2magma_z_matrix vector x^{k-2}
[in]xkm1magma_z_matrix vector x^{k-2}
[in]xkmagma_z_matrix vector x^{k-2}
[out]zmagma_z_matrix* ratio
[out]cmagma_z_matrix* contraction coefficients
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zftjacobiupdatecheck()

magma_int_t magma_zftjacobiupdatecheck ( double  delta,
magma_z_matrix xold,
magma_z_matrix xnew,
magma_z_matrix zprev,
magma_z_matrix  c,
magma_int_t *  flag_t,
magma_int_t *  flag_fp,
magma_queue_t  queue 
)

Checks the Jacobi updates accorting to the condition in the ScaLA'15 paper.

Deprecated:
Parameters
[in]deltadouble threshold
[in,out]xoldmagma_z_matrix* vector xold
[in,out]xnewmagma_z_matrix* vector xnew
[in,out]zprevmagma_z_matrix* vector z = | x_k-1 - x_k |
[in]cmagma_z_matrix contraction coefficients
[in,out]flag_tmagma_int_t threshold condition
[in,out]flag_fpmagma_int_t false positive condition
[in]queuemagma_queue_t Queue to execute in.

◆ magma_ziterref()

magma_int_t magma_ziterref ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_z_preconditioner precond_par,
magma_queue_t  queue 
)

Solves a system of linear equations A * X = B where A is a complex Hermitian N-by-N positive definite matrix A.

Deprecated:

This is a GPU implementation of the Iterative Refinement method. The inner solver is passed via the preconditioner argument.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix RHS b
[in,out]xmagma_z_matrix* solution approximation
[in,out]solver_parmagma_z_solver_par* solver parameters
[in,out]precond_parmagma_z_preconditioner* inner solver
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zjacobiiter_sys()

magma_int_t magma_zjacobiiter_sys ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix  d,
magma_z_matrix  t,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input.

Parameters
[in]Amagma_z_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_z_matrix input RHS b
[in]dmagma_z_matrix input matrix diagonal elements diag(A)
[in]tmagma_z_matrix temporary vector
[in,out]xmagma_z_matrix* iteration vector x
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zftjacobi()

magma_int_t magma_zftjacobi ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_matrix x,
magma_z_solver_par solver_par,
magma_queue_t  queue 
)

Iterates the solution approximation according to x^(k+1) = D^(-1) * b - D^(-1) * (L+U) * x^k x^(k+1) = c - M * x^k.

Deprecated:

This routine takes the system matrix A and the RHS b as input. This is the fault-tolerant version of Jacobi according to ScalLA'15.

Parameters
[in]Amagma_z_matrix input matrix M = D^(-1) * (L+U)
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix* iteration vector x
[in,out]solver_parmagma_z_solver_par* solver parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zilut_saad()

magma_int_t magma_zilut_saad ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_zilut_saad_apply()

magma_int_t magma_zilut_saad_apply ( magma_z_matrix  b,
magma_z_matrix x,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

◆ magma_zcustomilusetup()

magma_int_t magma_zcustomilusetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete LU preconditioner.

Deprecated:
Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zcustomicsetup()

magma_int_t magma_zcustomicsetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner precond,
magma_queue_t  queue 
)

Reads in an Incomplete Cholesky preconditioner.

Deprecated:
Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbajac_csr()

magma_int_t magma_zbajac_csr ( magma_int_t  localiters,
magma_z_matrix  D,
magma_z_matrix  R,
magma_z_matrix  b,
magma_z_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]Dmagma_z_matrix input matrix with diagonal blocks
[in]Rmagma_z_matrix input matrix with non-diagonal parts
[in]bmagma_z_matrix RHS
[in]xmagma_z_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbajac_csr_overlap()

magma_int_t magma_zbajac_csr_overlap ( magma_int_t  localiters,
magma_int_t  matrices,
magma_int_t  overlap,
magma_z_matrix D,
magma_z_matrix R,
magma_z_matrix  b,
magma_z_matrix x,
magma_queue_t  queue 
)

This routine is a block-asynchronous Jacobi iteration with directed restricted additive Schwarz overlap (top-down) performing s local Jacobi-updates within the block.

Deprecated:

Input format is two CSR matrices, one containing the diagonal blocks, one containing the rest.

Parameters
[in]localitersmagma_int_t number of local Jacobi-like updates
[in]matricesmagma_int_t number of sub-matrices
[in]overlapmagma_int_t size of the overlap
[in]Dmagma_z_matrix* set of matrices with diagonal blocks
[in]Rmagma_z_matrix* set of matrices with non-diagonal parts
[in]bmagma_z_matrix RHS
[in]xmagma_z_matrix* iterate/solution
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmlumerge()

magma_int_t magma_zmlumerge ( magma_z_matrix  L,
magma_z_matrix  U,
magma_z_matrix A,
magma_queue_t  queue 
)

Takes an strictly lower triangular matrix L and an upper triangular matrix U and merges them into a matrix A containing the upper and lower triangular parts.

Deprecated:
Parameters
[in]Lmagma_z_matrix input strictly lower triangular matrix L
[in]Umagma_z_matrix input upper triangular matrix U
[out]Amagma_z_matrix* output matrix
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zgeaxpy()

magma_int_t magma_zgeaxpy ( magmaDoubleComplex  alpha,
magma_z_matrix  X,
magmaDoubleComplex  beta,
magma_z_matrix Y,
magma_queue_t  queue 
)

This routine computes Y = alpha * X + beta * Y on the GPU.

Deprecated:

The input format is magma_z_matrix. It can handle both, dense matrix (vector block) and CSR matrices. For the latter, it interfaces the cuSPARSE library.

Parameters
[in]alphamagmaDoubleComplex scalar multiplier.
[in]Xmagma_z_matrix input/output matrix Y.
[in]betamagmaDoubleComplex scalar multiplier.
[in,out]Ymagma_z_matrix* input matrix X.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zgecsrreimsplit()

magma_int_t magma_zgecsrreimsplit ( magma_z_matrix  A,
magma_z_matrix ReA,
magma_z_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in CSR format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_z_matrix input matrix A.
[out]ReAmagma_z_matrix* output matrix contaning real contributions.
[out]ImAmagma_z_matrix* output matrix contaning complex contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zgedensereimsplit()

magma_int_t magma_zgedensereimsplit ( magma_z_matrix  A,
magma_z_matrix ReA,
magma_z_matrix ImA,
magma_queue_t  queue 
)

This routine takes an input matrix A in DENSE format and located on the GPU and splits it into two matrixes ReA and ImA containing the real and the imaginary contributions of A.

Deprecated:

The output matrices are allocated within the routine.

Parameters
[in]Amagma_z_matrix input matrix A.
[out]ReAmagma_z_matrix* output matrix contaning real contributions.
[out]ImAmagma_z_matrix* output matrix contaning complex contributions.
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zgecsr5mv()

magma_int_t magma_zgecsr5mv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  p,
magmaDoubleComplex  alpha,
magma_int_t  sigma,
magma_int_t  bit_y_offset,
magma_int_t  bit_scansum_offset,
magma_int_t  num_packet,
magmaUIndex_ptr  dtile_ptr,
magmaUIndex_ptr  dtile_desc,
magmaIndex_ptr  dtile_desc_offset_ptr,
magmaIndex_ptr  dtile_desc_offset,
magmaDoubleComplex_ptr  dcalibrator,
magma_int_t  tail_tile_start,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Deprecated:

The input format is CSR5 (val (tile-wise column-major), row_pointer, col (tile-wise column-major), tile_pointer, tile_desc).

Parameters
[in]transAmagma_trans_t transposition parameter for A
[in]mmagma_int_t number of rows in A
[in]nmagma_int_t number of columns in A
[in]pmagma_int_t number of tiles in A
[in]alphamagmaDoubleComplex scalar multiplier
[in]sigmamagma_int_t sigma in A in CSR5
[in]bit_y_offsetmagma_int_t bit_y_offset in A in CSR5
[in]bit_scansum_offsetmagma_int_t bit_scansum_offset in A in CSR5
[in]num_packetmagma_int_t num_packet in A in CSR5
[in]dtile_ptrmagmaUIndex_ptr tilepointer of A in CSR5
[in]dtile_descmagmaUIndex_ptr tiledescriptor of A in CSR5
[in]dtile_desc_offset_ptrmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dtile_desc_offsetmagmaIndex_ptr tiledescriptor_offsetpointer of A in CSR5
[in]dcalibratormagmaDoubleComplex_ptr calibrator of A in CSR5
[in]tail_tile_startmagma_int_t start of the last tile in A
[in]dvalmagmaDoubleComplex_ptr array containing values of A in CSR
[in]dvalmagmaDoubleComplex_ptr array containing values of A in CSR
[in]drowptrmagmaIndex_ptr rowpointer of A in CSR
[in]dcolindmagmaIndex_ptr columnindices of A in CSR
[in]dxmagmaDoubleComplex_ptr input vector x
[in]betamagmaDoubleComplex scalar multiplier
[out]dymagmaDoubleComplex_ptr input/output vector y
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zcopyscale()

magma_int_t magma_zcopyscale ( magma_int_t  n,
magma_int_t  k,
magmaDoubleComplex_ptr  r,
magmaDoubleComplex_ptr  v,
magmaDoubleComplex_ptr  skp,
magma_queue_t  queue 
)

Computes the correction term of the pipelined GMRES according to P.

Deprecated:

Ghysels and scales and copies the new search direction

Returns the vector v = r/ ( skp[k] - (sum_i=1^k skp[i]^2) ) .

Parameters
[in]nint length of v_i
[in]kint

skp entries v_i^T * r ( without r )

Parameters
[in]rmagmaDoubleComplex_ptr vector of length n
[in]vmagmaDoubleComplex_ptr vector of length n
[in]skpmagmaDoubleComplex_ptr array of parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_dznrm2scale()

magma_int_t magma_dznrm2scale ( magma_int_t  m,
magmaDoubleComplex_ptr  dr,
magma_int_t  lddr,
magmaDoubleComplex *  drnorm,
magma_queue_t  queue 
)

◆ magma_zjacobispmvupdate_bw()

magma_int_t magma_zjacobispmvupdate_bw ( magma_int_t  maxiter,
magma_z_matrix  A,
magma_z_matrix  t,
magma_z_matrix  b,
magma_z_matrix  d,
magma_z_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax) This kernel processes the thread blocks in reversed order.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]Amagma_z_matrix system matrix
[in]tmagma_z_matrix workspace
[in]bmagma_z_matrix RHS b
[in]dmagma_z_matrix vector with diagonal entries
[out]xmagma_z_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zjacobispmvupdateselect()

magma_int_t magma_zjacobispmvupdateselect ( magma_int_t  maxiter,
magma_int_t  num_updates,
magma_index_t *  indices,
magma_z_matrix  A,
magma_z_matrix  t,
magma_z_matrix  b,
magma_z_matrix  d,
magma_z_matrix  tmp,
magma_z_matrix x,
magma_queue_t  queue 
)

Updates the iteration vector x for the Jacobi iteration according to x=x+d.

Deprecated:

*(b-Ax)

This kernel allows for overlapping domains: the indices-array contains the locations that are updated. Locations may be repeated to simulate overlapping domains.

Parameters
[in]maxitermagma_int_t number of Jacobi iterations
[in]num_updatesmagma_int_t number of updates - length of the indices array
[in]indicesmagma_index_t* indices, which entries of x to update
[in]Amagma_z_matrix system matrix
[in]tmagma_z_matrix workspace
[in]bmagma_z_matrix RHS b
[in]dmagma_z_matrix vector with diagonal entries
[in]tmpmagma_z_matrix workspace
[out]xmagma_z_matrix* iteration vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zmergeblockkrylov()

magma_int_t magma_zmergeblockkrylov ( magma_int_t  num_rows,
magma_int_t  num_cols,
magmaDoubleComplex_ptr  alpha,
magmaDoubleComplex_ptr  p,
magmaDoubleComplex_ptr  x,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

v = y / rho y = y / rho w = wt / psi z = z / psi

Parameters
[in]num_rowsmagma_int_t dimension m
[in]num_colsmagma_int_t dimension n
[in]alphamagmaDoubleComplex_ptr matrix containing all SKP
[in]pmagmaDoubleComplex_ptr search directions
[in,out]xmagmaDoubleComplex_ptr approximation vector
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgmerge1()

magma_int_t magma_zbicgmerge1 ( magma_int_t  n,
magmaDoubleComplex_ptr  skp,
magmaDoubleComplex_ptr  v,
magmaDoubleComplex_ptr  r,
magmaDoubleComplex_ptr  p,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

p = beta*p p = p-omega*beta*v p = p+r

-> p = r + beta * ( p - omega * v )

Parameters
[in]nint dimension n
[in]skpmagmaDoubleComplex_ptr set of scalar parameters
[in]vmagmaDoubleComplex_ptr input vector v
[in]rmagmaDoubleComplex_ptr input vector r
[in,out]pmagmaDoubleComplex_ptr input/output vector p
[in]queuemagma_queue_t queue to execute in.

◆ magma_zbicgmerge2()

magma_int_t magma_zbicgmerge2 ( magma_int_t  n,
magmaDoubleComplex_ptr  skp,
magmaDoubleComplex_ptr  r,
magmaDoubleComplex_ptr  v,
magmaDoubleComplex_ptr  s,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

s=r s=s-alpha*v

-> s = r - alpha * v

Parameters
[in]nint dimension n
[in]skpmagmaDoubleComplex_ptr set of scalar parameters
[in]rmagmaDoubleComplex_ptr input vector r
[in]vmagmaDoubleComplex_ptr input vector v
[out]smagmaDoubleComplex_ptr output vector s
[in]queuemagma_queue_t queue to execute in.

◆ magma_zbicgmerge3()

magma_int_t magma_zbicgmerge3 ( magma_int_t  n,
magmaDoubleComplex_ptr  skp,
magmaDoubleComplex_ptr  p,
magmaDoubleComplex_ptr  s,
magmaDoubleComplex_ptr  t,
magmaDoubleComplex_ptr  x,
magmaDoubleComplex_ptr  r,
magma_queue_t  queue 
)

Mergels multiple operations into one kernel:

Deprecated:

x=x+alpha*p x=x+omega*s r=s r=r-omega*t

-> x = x + alpha * p + omega * s -> r = s - omega * t

Parameters
[in]nint dimension n
[in]skpmagmaDoubleComplex_ptr set of scalar parameters
[in]pmagmaDoubleComplex_ptr input p
[in]smagmaDoubleComplex_ptr input s
[in]tmagmaDoubleComplex_ptr input t
[in,out]xmagmaDoubleComplex_ptr input/output x
[in,out]rmagmaDoubleComplex_ptr input/output r
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgmerge4()

magma_int_t magma_zbicgmerge4 ( magma_int_t  type,
magmaDoubleComplex_ptr  skp,
magma_queue_t  queue 
)

Performs some parameter operations for the BiCGSTAB with scalars on GPU.

Deprecated:
Parameters
[in]typeint kernel type
[in,out]skpmagmaDoubleComplex_ptr vector with parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgmerge_spmv1()

magma_int_t magma_zbicgmerge_spmv1 ( magma_z_matrix  A,
magmaDoubleComplex_ptr  d1,
magmaDoubleComplex_ptr  d2,
magmaDoubleComplex_ptr  dp,
magmaDoubleComplex_ptr  dr,
magmaDoubleComplex_ptr  dv,
magmaDoubleComplex_ptr  skp,
magma_queue_t  queue 
)

Merges the first SpmV using CSR with the dot product and the computation of alpha.

Deprecated:
Parameters
[in]Amagma_z_matrix system matrix
[in]d1magmaDoubleComplex_ptr temporary vector
[in]d2magmaDoubleComplex_ptr temporary vector
[in]dpmagmaDoubleComplex_ptr input vector p
[in]drmagmaDoubleComplex_ptr input vector r
[in]dvmagmaDoubleComplex_ptr output vector v
[in,out]skpmagmaDoubleComplex_ptr array for parameters ( skp[0]=alpha )
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgmerge_spmv2()

magma_int_t magma_zbicgmerge_spmv2 ( magma_z_matrix  A,
magmaDoubleComplex_ptr  d1,
magmaDoubleComplex_ptr  d2,
magmaDoubleComplex_ptr  ds,
magmaDoubleComplex_ptr  dt,
magmaDoubleComplex_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]Amagma_z_matrix input matrix
[in]d1magmaDoubleComplex_ptr temporary vector
[in]d2magmaDoubleComplex_ptr temporary vector
[in]dsmagmaDoubleComplex_ptr input vector s
[in]dtmagmaDoubleComplex_ptr output vector t
[in,out]skpmagmaDoubleComplex_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbicgmerge_xrbeta()

magma_int_t magma_zbicgmerge_xrbeta ( magma_int_t  n,
magmaDoubleComplex_ptr  d1,
magmaDoubleComplex_ptr  d2,
magmaDoubleComplex_ptr  rr,
magmaDoubleComplex_ptr  r,
magmaDoubleComplex_ptr  p,
magmaDoubleComplex_ptr  s,
magmaDoubleComplex_ptr  t,
magmaDoubleComplex_ptr  x,
magmaDoubleComplex_ptr  skp,
magma_queue_t  queue 
)

Merges the second SpmV using CSR with the dot product and the computation of omega.

Deprecated:
Parameters
[in]nint dimension n
[in]d1magmaDoubleComplex_ptr temporary vector
[in]d2magmaDoubleComplex_ptr temporary vector
[in]rrmagmaDoubleComplex_ptr input vector rr
[in]rmagmaDoubleComplex_ptr input/output vector r
[in]pmagmaDoubleComplex_ptr input vector p
[in]smagmaDoubleComplex_ptr input vector s
[in]tmagmaDoubleComplex_ptr input vector t
[out]xmagmaDoubleComplex_ptr output vector x
[in]skpmagmaDoubleComplex_ptr array for parameters
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbcsrswp()

magma_int_t magma_zbcsrswp ( magma_int_t  n,
magma_int_t  size_b,
magma_int_t *  ipiv,
magmaDoubleComplex_ptr  dx,
magma_queue_t  queue 
)

◆ magma_zbcsrtrsv()

magma_int_t magma_zbcsrtrsv ( magma_uplo_t  uplo,
magma_int_t  r_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magmaDoubleComplex_ptr  A,
magma_index_t *  blockinfo,
magmaDoubleComplex_ptr  x,
magma_queue_t  queue 
)

For a Block-CSR ILU factorization, this routine performs the triangular solves.

Deprecated:
Parameters
[in]uplomagma_uplo_t upper/lower fill structure
[in]r_blocksmagma_int_t number of blocks in row
[in]c_blocksmagma_int_t number of blocks in column
[in]size_bmagma_int_t blocksize in BCSR
[in]AmagmaDoubleComplex_ptr upper/lower factor
[in]blockinfomagma_int_t* array containing matrix information
[in]xmagmaDoubleComplex_ptr input/output vector x
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbcsrvalcpy()

magma_int_t magma_zbcsrvalcpy ( magma_int_t  size_b,
magma_int_t  num_blocks,
magma_int_t  num_zblocks,
magmaDoubleComplex_ptr *  Aval,
magmaDoubleComplex_ptr *  Bval,
magmaDoubleComplex_ptr *  Bval2,
magma_queue_t  queue 
)

For a Block-CSR ILU factorization, this routine copies the filled blocks from the original matrix A and initializes the blocks that will later be filled in the factorization process with zeros.

Deprecated:
Parameters
[in]size_bmagma_int_t blocksize in BCSR
[in]num_blocksmagma_int_t number of nonzero blocks
[in]num_zblocksmagma_int_t number of zero-blocks (will later be filled)
[in]AvalmagmaDoubleComplex_ptr * pointers to the nonzero blocks in A
[in]BvalmagmaDoubleComplex_ptr * pointers to the nonzero blocks in B
[in]Bval2magmaDoubleComplex_ptr * pointers to the zero blocks in B
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbcsrluegemm()

magma_int_t magma_zbcsrluegemm ( magma_int_t  size_b,
magma_int_t  num_brows,
magma_int_t  kblocks,
magmaDoubleComplex_ptr *  dA,
magmaDoubleComplex_ptr *  dB,
magmaDoubleComplex_ptr *  dC,
magma_queue_t  queue 
)

For a Block-CSR ILU factorization, this routine updates all blocks in the trailing matrix.

Deprecated:
Parameters
[in]size_bmagma_int_t blocksize in BCSR
[in]num_browsmagma_int_t number of block rows
[in]kblocksmagma_int_t number of blocks in row
[in]dAmagmaDoubleComplex** input blocks of matrix A
[in]dBmagmaDoubleComplex** input blocks of matrix B
[in]dCmagmaDoubleComplex** output blocks of matrix C
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zbcsrlupivloc()

magma_int_t magma_zbcsrlupivloc ( magma_int_t  size_b,
magma_int_t  kblocks,
magmaDoubleComplex_ptr *  dA,
magma_int_t *  ipiv,
magma_queue_t  queue 
)

◆ magma_zbcsrblockinfo5()

magma_int_t magma_zbcsrblockinfo5 ( magma_int_t  lustep,
magma_int_t  num_blocks,
magma_int_t  c_blocks,
magma_int_t  size_b,
magma_index_t *  blockinfo,
magmaDoubleComplex_ptr  val,
magmaDoubleComplex_ptr *  AII,
magma_queue_t  queue 
)

For a Block-CSR ILU factorization, this routine copies the filled blocks from the original matrix A and initializes the blocks that will later be filled in the factorization process with zeros.

Deprecated:
Parameters
[in]lustepmagma_int_t lustep
[in]num_blocksmagma_int_t number of nonzero blocks
[in]c_blocksmagma_int_t number of column-blocks
[in]size_bmagma_int_t blocksize
[in]blockinfomagma_int_t* block filled? location?
[in]valmagmaDoubleComplex* pointers to the nonzero blocks in A
[in]AIImagmaDoubleComplex** pointers to the respective nonzero blocks in B
[in]queuemagma_queue_t Queue to execute in.

◆ magma_zthrsholdselect()

magma_int_t magma_zthrsholdselect ( magma_int_t  sampling,
magma_int_t  total_size,
magma_int_t  subset_size,
magmaDoubleComplex *  val,
double *  thrs,
magma_queue_t  queue 
)

This routine selects a threshold separating the subset_size smallest magnitude elements from the rest.

Deprecated:

Hilarious approach: Start a number of threads, each thread uses a pre-defined threshold, then checks for each element whether it is smaller than the threshold. In the end a global reduction identifies the threshold that is closest.

Assuming all values are in (0,1), the distinct thresholds are defined as:

threshold [ thread ] = thread / num_threads

We obviously need to launch many threads.

Parameters
[in]samplingmagma_int_t determines how many elements are considered (approximate method)
[in]total_sizemagma_int_t size of array val
[in]subset_sizemagma_int_t number of smallest elements to separate
[in]valmagmaDoubleComplex array containing the values
[out]thrsfloat*
computed threshold
[in]queuemagma_queue_t Queue to execute in.

◆ magma_vector_zlag2c()

magma_int_t magma_vector_zlag2c ( magma_z_matrix  x,
magma_c_vector y,
magma_queue_t  queue 
)

convertes magma_z_matrix from Z to C

Deprecated:
Parameters
xmagma_z_matrix input vector descriptor
ymagma_c_vector* output vector descriptor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparse_matrix_zlag2c()

magma_int_t magma_sparse_matrix_zlag2c ( magma_z_matrix  A,
magma_c_sparse_matrix B,
magma_queue_t  queue 
)

convertes magma_z_matrix from Z to C

Deprecated:
Parameters
Amagma_z_matrix input matrix descriptor
Bmagma_c_sparse_matrix* output matrix descriptor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_vector_clag2z()

magma_int_t magma_vector_clag2z ( magma_c_vector  x,
magma_z_matrix y,
magma_queue_t  queue 
)

convertes magma_c_vector from C to Z

Deprecated:
Parameters
[in]xmagma_c_vector input vector descriptor
[out]ymagma_z_matrix* output vector descriptor
[in]queuemagma_queue_t Queue to execute in.

◆ magma_sparse_matrix_clag2z()

magma_int_t magma_sparse_matrix_clag2z ( magma_c_sparse_matrix  A,
magma_z_matrix B,
magma_queue_t  queue 
)

convertes magma_c_sparse_matrix from C to Z

Deprecated:
Parameters
Amagma_c_sparse_matrix input matrix descriptor
Bmagma_z_matrix* output matrix descriptor
[in]queuemagma_queue_t Queue to execute in.

◆ magmablas_zlag2c_sparse()

void magmablas_zlag2c_sparse ( magma_int_t  M,
magma_int_t  N,
magmaDoubleComplex_const_ptr  dA,
magma_int_t  lda,
magmaFloatComplex_ptr  dSA,
magma_int_t  ldsa,
magma_queue_t  queue,
magma_int_t *  info 
)

◆ magmablas_clag2z_sparse()

void magmablas_clag2z_sparse ( magma_int_t  M,
magma_int_t  N,
magmaFloatComplex_const_ptr  dSA,
magma_int_t  ldsa,
magmaDoubleComplex_ptr  dA,
magma_int_t  lda,
magma_queue_t  queue,
magma_int_t *  info 
)

◆ magma_zlag2c_CSR_DENSE()

void magma_zlag2c_CSR_DENSE ( magma_z_matrix  A,
magma_c_matrix B,
magma_queue_t  queue 
)

◆ magma_zlag2c_CSR_DENSE_alloc()

void magma_zlag2c_CSR_DENSE_alloc ( magma_z_matrix  A,
magma_c_matrix B,
magma_queue_t  queue 
)

◆ magma_zlag2c_CSR_DENSE_convert()

void magma_zlag2c_CSR_DENSE_convert ( magma_z_matrix  A,
magma_c_matrix B,
magma_queue_t  queue 
)

◆ magma_zcgecsrmv_mixed_prec()

magma_int_t magma_zcgecsrmv_mixed_prec ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  ddiagval,
magmaFloatComplex_ptr  doffdiagval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Deprecated:

A is a matrix in mixed precision, i.e. the diagonal values are stored in high precision, the offdiagonal values in low precision. The input format is a CSR (val, row, col) in FloatComplex storing all offdiagonal elements and an array containing the diagonal values in DoubleComplex.

Parameters
[in]transAmagma_trans_t transposition parameter for A
[in]mmagma_int_t number of rows in A
[in]nmagma_int_t number of columns in A
[in]alphamagmaDoubleComplex scalar multiplier
[in]ddiagvalmagmaDoubleComplex_ptr array containing diagonal values of A in DoubleComplex
[in]doffdiagvalmagmaFloatComplex_ptr array containing offdiag values of A in CSR
[in]drowptrmagmaIndex_ptr rowpointer of A in CSR
[in]dcolindmagmaIndex_ptr columnindices of A in CSR
[in]dxmagmaDoubleComplex_ptr input vector x
[in]betamagmaDoubleComplex scalar multiplier
[out]dymagmaDoubleComplex_ptr input/output vector y
[in]queuemagma_queue_t Queue to execute in.