PaStiX Handbook  6.2.1
Solve step

This group describes all the routines to solve the system. More...

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

## Detailed Description

This group describes all the routines to solve the system.

## Function Documentation

 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.

Parameters
 [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.
Return values
 PASTIX_SUCCESS on successful exit, PASTIX_ERR_BADPARAMETER if one parameter is incorrect.

Definition at line 122 of file pastix_task_solve.c.

 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.

Parameters
 [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.
Return values
 PASTIX_SUCCESS on successful exit, PASTIX_ERR_BADPARAMETER if one parameter is incorrect.

Definition at line 236 of file pastix_task_solve.c.

 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.

Parameters
 [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.
Return values
 PASTIX_SUCCESS on successful exit, PASTIX_ERR_BADPARAMETER if one parameter is incorrect.

Definition at line 369 of file pastix_task_solve.c.

 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.

Warning
The input vector is considered already permuted. For a solve step with permutation, see pastix_task_solve()

This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION.

Parameters
 [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.
Return values
 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.

 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.

Warning
The input vector is considered already permuted. For a solve step with permutation, see pastix_task_solve()

This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION, IPARM_TRANSPOSE_SOLVE.

Parameters
 [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.
Return values
 PASTIX_SUCCESS on successful exit, PASTIX_ERR_BADPARAMETER if one parameter is incorrect.

Definition at line 641 of file pastix_task_solve.c.