PaStiX Handbook
6.2.1
|
This group describes all the routines to solve the system. More...
Modules | |
Solve kernels | |
Functions | |
int | pastix_subtask_applyorder (pastix_data_t *pastix_data, pastix_coeftype_t flttype, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, void *b, pastix_int_t ldb) |
Apply a permutation on the right-and-side vector before the solve step. More... | |
int | pastix_subtask_trsm (pastix_data_t *pastix_data, pastix_coeftype_t flttype, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, pastix_int_t nrhs, void *b, pastix_int_t ldb) |
Apply a triangular solve on the right-and-side vectors. More... | |
int | pastix_subtask_diag (pastix_data_t *pastix_data, pastix_coeftype_t flttype, pastix_int_t nrhs, void *b, pastix_int_t ldb) |
Apply a diagonal operation on the right-and-side vectors. More... | |
int | pastix_subtask_solve_adv (pastix_data_t *pastix_data, pastix_trans_t transA, pastix_int_t nrhs, void *b, pastix_int_t ldb) |
Solve the given problem without applying the permutation. More... | |
int | pastix_subtask_solve (pastix_data_t *pastix_data, pastix_int_t nrhs, void *b, pastix_int_t ldb) |
Solve the given problem without applying the permutation. More... | |
This group describes all the routines to solve the system.
int pastix_subtask_applyorder | ( | pastix_data_t * | pastix_data, |
pastix_coeftype_t | flttype, | ||
pastix_dir_t | dir, | ||
pastix_int_t | m, | ||
pastix_int_t | n, | ||
void * | b, | ||
pastix_int_t | ldb | ||
) |
Apply a permutation on the right-and-side vector before the solve step.
This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION, IPARM_APPLYPERM_WS.
[in,out] | pastix_data | The pastix_data structure that describes the solver instance. |
[in] | flttype | This arithmetic of the sparse matrix. |
[in] | dir | Forward or backword application of the permutation. |
[in] | m | Size of the right-and-side vectors. |
[in] | n | Number of right-and-side vectors. |
[in,out] | b | The right-and-side vectors (can be multiple RHS). |
[in] | ldb | The leading dimension of the right-and-side vectors. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Definition at line 122 of file pastix_task_solve.c.
References PASTIX_ERR_BADPARAMETER.
int pastix_subtask_trsm | ( | pastix_data_t * | pastix_data, |
pastix_coeftype_t | flttype, | ||
pastix_side_t | side, | ||
pastix_uplo_t | uplo, | ||
pastix_trans_t | trans, | ||
pastix_diag_t | diag, | ||
pastix_int_t | nrhs, | ||
void * | b, | ||
pastix_int_t | ldb | ||
) |
Apply a triangular solve on the right-and-side vectors.
This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION.
[in,out] | pastix_data | The pastix_data structure that describes the solver instance. |
[in] | flttype | This arithmetic of the sparse matrix. |
[in] | side | Left or right application. |
[in] | uplo | Upper or Lower part. |
[in] | trans | With or without transposition (or conjugate transposition). |
[in] | diag | Diagonal terms are unit or not. |
[in] | nrhs | The number of right-and-side vectors. |
[in,out] | b | The right-and-side vector (can be multiple RHS). On exit, the solution is stored in place of the right-hand-side vector. |
[in] | ldb | The leading dimension of the right-and-side vectors. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Definition at line 236 of file pastix_task_solve.c.
References PASTIX_ERR_BADPARAMETER.
int pastix_subtask_diag | ( | pastix_data_t * | pastix_data, |
pastix_coeftype_t | flttype, | ||
pastix_int_t | nrhs, | ||
void * | b, | ||
pastix_int_t | ldb | ||
) |
Apply a diagonal operation on the right-and-side vectors.
This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION.
[in,out] | pastix_data | The pastix_data structure that describes the solver instance. |
[in] | flttype | This arithmetic of the sparse matrix. |
[in] | nrhs | The number of right-and-side vectors. |
[in,out] | b | The right-and-side vector (can be multiple RHS). On exit, the solution is stored in place of the right-hand-side vector. |
[in] | ldb | The leading dimension of the right-and-side vectors. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Definition at line 369 of file pastix_task_solve.c.
References PASTIX_ERR_BADPARAMETER.
int pastix_subtask_solve_adv | ( | pastix_data_t * | pastix_data, |
pastix_trans_t | transA, | ||
pastix_int_t | nrhs, | ||
void * | b, | ||
pastix_int_t | ldb | ||
) |
Solve the given problem without applying the permutation.
This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION.
[in,out] | pastix_data | The pastix_data structure that describes the solver instance. |
[in] | transA | PastixNoTrans: A is not transposed (CSC matrix) PastixTrans: A is transposed (CSR of symmetric/general matrix) PastixConjTrans: A is conjugate transposed (CSR of hermitian matrix) |
[in] | nrhs | The number of right-and-side vectors. |
[in,out] | b | The right-and-side vectors (can be multiple RHS). On exit, the solution is stored in place of the right-hand-side vector. |
[in] | ldb | The leading dimension of the right-and-side vectors. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Summary of the operations to perform the full solve if the original A was either transposed or conjugate transposed.
op(A) | Factorization | Step 1 | Step 2 -------—+------------------—+--------—+--------— NoTrans | L U | L y = b | U x = y NoTrans | L L^t | L y = b | L^t x = y NoTrans | L L^h | L y = b | L^h x = y Trans |(L U )^t = U^t L^t | U^t y = b | L^t x = y Trans |(L L^t)^t = L L^t | L y = b | L^t x = y Trans |(L L^h)^t = c(L) L^t | Not handled (c(L)) ConjTrans |(L U )^h = U^h L^h | Not handled (U^h) ConjTrans |(L L^t)^h = c(L) L^h | Not handled (c(L)) ConjTrans |(L L^h)^h = L L^h | L y = b | L^h x = y
Definition at line 470 of file pastix_task_solve.c.
References PASTIX_ERR_BADPARAMETER, and PastixTrans.
Referenced by pastix_subtask_solve().
int pastix_subtask_solve | ( | pastix_data_t * | pastix_data, |
pastix_int_t | nrhs, | ||
void * | b, | ||
pastix_int_t | ldb | ||
) |
Solve the given problem without applying the permutation.
This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION, IPARM_TRANSPOSE_SOLVE.
[in,out] | pastix_data | The pastix_data structure that describes the solver instance. |
[in] | nrhs | The number of right-and-side vectors. |
[in,out] | b | The right-and-side vectors (can be multiple RHS). On exit, the solution is stored in place of the right-hand-side vector. |
[in] | ldb | The leading dimension of the right-and-side vectors. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Definition at line 641 of file pastix_task_solve.c.
References IPARM_TRANSPOSE_SOLVE, and pastix_subtask_solve_adv().
Referenced by bcsc_cspsv(), bcsc_dspsv(), bcsc_sspsv(), and bcsc_zspsv().