PaStiX Handbook
6.4.0
|
Functions | |
void | solve_blok_ctrsm (pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, int nrhs, const void *dataA, pastix_complex32_t *b, int ldb) |
Apply a solve trsm update related to a diagonal block of the matrix A. More... | |
void | solve_blok_cgemm (pastix_side_t side, pastix_trans_t trans, pastix_int_t nrhs, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, const void *dataA, const pastix_complex32_t *B, pastix_int_t ldb, pastix_complex32_t *C, pastix_int_t ldc) |
Apply a solve gemm update related to a single block of the matrix A. More... | |
void | solve_cblk_ctrsmsp_forward (const args_solve_t *enums, SolverMatrix *datacode, const SolverCblk *cblk, pastix_rhs_t b) |
Apply a forward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_ctrsmsp_backward (const args_solve_t *enums, SolverMatrix *datacode, SolverCblk *cblk, pastix_rhs_t b) |
Apply a backward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_cdiag (const SolverCblk *cblk, const void *dataA, int nrhs, pastix_complex32_t *b, int ldb, pastix_complex32_t *work) |
Apply the diagonal solve related to one cblk to all the right hand side. More... | |
void | solve_blok_strsm (pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, int nrhs, const void *dataA, float *b, int ldb) |
Apply a solve trsm update related to a diagonal block of the matrix A. More... | |
void | solve_blok_sgemm (pastix_side_t side, pastix_trans_t trans, pastix_int_t nrhs, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, const void *dataA, const float *B, pastix_int_t ldb, float *C, pastix_int_t ldc) |
Apply a solve gemm update related to a single block of the matrix A. More... | |
void | solve_cblk_strsmsp_forward (const args_solve_t *enums, SolverMatrix *datacode, const SolverCblk *cblk, pastix_rhs_t b) |
Apply a forward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_strsmsp_backward (const args_solve_t *enums, SolverMatrix *datacode, SolverCblk *cblk, pastix_rhs_t b) |
Apply a backward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_sdiag (const SolverCblk *cblk, const void *dataA, int nrhs, float *b, int ldb, float *work) |
Apply the diagonal solve related to one cblk to all the right hand side. More... | |
void | solve_blok_ztrsm (pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, int nrhs, const void *dataA, pastix_complex64_t *b, int ldb) |
Apply a solve trsm update related to a diagonal block of the matrix A. More... | |
void | solve_blok_zgemm (pastix_side_t side, pastix_trans_t trans, pastix_int_t nrhs, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, const void *dataA, const pastix_complex64_t *B, pastix_int_t ldb, pastix_complex64_t *C, pastix_int_t ldc) |
Apply a solve gemm update related to a single block of the matrix A. More... | |
void | solve_cblk_ztrsmsp_forward (const args_solve_t *enums, SolverMatrix *datacode, const SolverCblk *cblk, pastix_rhs_t b) |
Apply a forward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_ztrsmsp_backward (const args_solve_t *enums, SolverMatrix *datacode, SolverCblk *cblk, pastix_rhs_t b) |
Apply a backward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_zdiag (const SolverCblk *cblk, const void *dataA, int nrhs, pastix_complex64_t *b, int ldb, pastix_complex64_t *work) |
Apply the diagonal solve related to one cblk to all the right hand side. More... | |
void | solve_blok_dtrsm (pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, int nrhs, const void *dataA, double *b, int ldb) |
Apply a solve trsm update related to a diagonal block of the matrix A. More... | |
void | solve_blok_dgemm (pastix_side_t side, pastix_trans_t trans, pastix_int_t nrhs, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, const void *dataA, const double *B, pastix_int_t ldb, double *C, pastix_int_t ldc) |
Apply a solve gemm update related to a single block of the matrix A. More... | |
void | solve_cblk_dtrsmsp_forward (const args_solve_t *enums, SolverMatrix *datacode, const SolverCblk *cblk, pastix_rhs_t b) |
Apply a forward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_dtrsmsp_backward (const args_solve_t *enums, SolverMatrix *datacode, SolverCblk *cblk, pastix_rhs_t b) |
Apply a backward solve related to one cblk to all the right hand side. More... | |
void | solve_cblk_ddiag (const SolverCblk *cblk, const void *dataA, int nrhs, double *b, int ldb, double *work) |
Apply the diagonal solve related to one cblk to all the right hand side. More... | |
This module contains all the kernel working on the solver matrix structure for the solve step.
void solve_blok_ctrsm | ( | pastix_side_t | side, |
pastix_uplo_t | uplo, | ||
pastix_trans_t | trans, | ||
pastix_diag_t | diag, | ||
const SolverCblk * | cblk, | ||
int | nrhs, | ||
const void * | dataA, | ||
pastix_complex32_t * | b, | ||
int | ldb | ||
) |
Apply a solve trsm update related to a diagonal block of the matrix A.
[in] | side | Specify the side parameter of the TRSM. |
[in] | uplo | Specify the uplo parameter of the TRSM. |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixConjTrans. |
[in] | diag | Specify if the off-diagonal blocks are unit triangular. It has to be either PastixUnit or PastixNonUnit. |
[in] | cblk | The cblk structure that corresponds to the A and B matrix. |
[in] | nrhs | The number of right hand side. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in,out] | b | The pointer to the matrix B, that is a portion of the right hand side to solve. |
[in] | ldb | The leading dimension of B. |
Definition at line 76 of file solve_ctrsmsp.c.
References cblk_colnbr(), solver_cblk_s::cblktype, pastix_int_t, pastix_lrblock_s::rk, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_cgemm | ( | pastix_side_t | side, |
pastix_trans_t | trans, | ||
pastix_int_t | nrhs, | ||
const SolverCblk * | cblk, | ||
const SolverBlok * | blok, | ||
SolverCblk * | fcbk, | ||
const void * | dataA, | ||
const pastix_complex32_t * | B, | ||
pastix_int_t | ldb, | ||
pastix_complex32_t * | C, | ||
pastix_int_t | ldc | ||
) |
Apply a solve gemm update related to a single block of the matrix A.
[in] | side | Specify whether the blok parameter belongs to cblk (PastixLeft), or to fcbk (PastixRight). |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixConjTrans. |
[in] | nrhs | The number of right hand side. |
[in] | cblk | The cblk structure that corresponds to the B matrix. |
[in] | blok | The blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter. |
[in,out] | fcbk | The cblk structure that corresponds to the C matrix. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in] | B | The pointer to the matrix B, that is a portion of the right hand side. |
[in] | ldb | The leading dimension of B. |
[in,out] | C | The pointer to the matrix C, that is the updated portion of the right hand side. |
[in] | ldc | The leading dimension of C. |
Definition at line 160 of file solve_ctrsmsp.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_cblk_s::fcolnum, solver_blok_s::frownum, pastix_int_t, PastixLeft, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, solver_cblk_s::stride, pastix_lrblock_s::u, and pastix_lrblock_s::v.
void solve_cblk_ctrsmsp_forward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
const SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a forward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 302 of file solve_ctrsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixConjTrans, PastixKernelTRSMForw, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_ctrsmsp_backward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a backward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 468 of file solve_ctrsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixConjTrans, PastixKernelTRSMBack, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_cdiag | ( | const SolverCblk * | cblk, |
const void * | dataA, | ||
int | nrhs, | ||
pastix_complex32_t * | b, | ||
int | ldb, | ||
pastix_complex32_t * | work | ||
) |
Apply the diagonal solve related to one cblk to all the right hand side.
[in] | cblk | The cblk structure to which diagonal block belongs to. |
[in] | nrhs | The number of right hand side |
[in,out] | b | The pointer to vectors of the right hand side |
[in] | ldb | The leading dimension of b |
[in,out] | work | Workspace to temporarily store the diagonal when multiple RHS are involved. Might be set to NULL for internal allocation on need. |
Definition at line 664 of file solve_ctrsmsp.c.
References blok_rownbr(), solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, pastix_lrblock_s::rkmax, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_strsm | ( | pastix_side_t | side, |
pastix_uplo_t | uplo, | ||
pastix_trans_t | trans, | ||
pastix_diag_t | diag, | ||
const SolverCblk * | cblk, | ||
int | nrhs, | ||
const void * | dataA, | ||
float * | b, | ||
int | ldb | ||
) |
Apply a solve trsm update related to a diagonal block of the matrix A.
[in] | side | Specify the side parameter of the TRSM. |
[in] | uplo | Specify the uplo parameter of the TRSM. |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixTrans. |
[in] | diag | Specify if the off-diagonal blocks are unit triangular. It has to be either PastixUnit or PastixNonUnit. |
[in] | cblk | The cblk structure that corresponds to the A and B matrix. |
[in] | nrhs | The number of right hand side. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in,out] | b | The pointer to the matrix B, that is a portion of the right hand side to solve. |
[in] | ldb | The leading dimension of B. |
Definition at line 76 of file solve_strsmsp.c.
References cblk_colnbr(), solver_cblk_s::cblktype, pastix_int_t, pastix_lrblock_s::rk, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_sgemm | ( | pastix_side_t | side, |
pastix_trans_t | trans, | ||
pastix_int_t | nrhs, | ||
const SolverCblk * | cblk, | ||
const SolverBlok * | blok, | ||
SolverCblk * | fcbk, | ||
const void * | dataA, | ||
const float * | B, | ||
pastix_int_t | ldb, | ||
float * | C, | ||
pastix_int_t | ldc | ||
) |
Apply a solve gemm update related to a single block of the matrix A.
[in] | side | Specify whether the blok parameter belongs to cblk (PastixLeft), or to fcbk (PastixRight). |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixTrans. |
[in] | nrhs | The number of right hand side. |
[in] | cblk | The cblk structure that corresponds to the B matrix. |
[in] | blok | The blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter. |
[in,out] | fcbk | The cblk structure that corresponds to the C matrix. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in] | B | The pointer to the matrix B, that is a portion of the right hand side. |
[in] | ldb | The leading dimension of B. |
[in,out] | C | The pointer to the matrix C, that is the updated portion of the right hand side. |
[in] | ldc | The leading dimension of C. |
Definition at line 160 of file solve_strsmsp.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_cblk_s::fcolnum, solver_blok_s::frownum, pastix_int_t, PastixLeft, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, solver_cblk_s::stride, pastix_lrblock_s::u, and pastix_lrblock_s::v.
void solve_cblk_strsmsp_forward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
const SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a forward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 302 of file solve_strsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixKernelTRSMForw, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_strsmsp_backward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a backward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 468 of file solve_strsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixKernelTRSMBack, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_sdiag | ( | const SolverCblk * | cblk, |
const void * | dataA, | ||
int | nrhs, | ||
float * | b, | ||
int | ldb, | ||
float * | work | ||
) |
Apply the diagonal solve related to one cblk to all the right hand side.
[in] | cblk | The cblk structure to which diagonal block belongs to. |
[in] | nrhs | The number of right hand side |
[in,out] | b | The pointer to vectors of the right hand side |
[in] | ldb | The leading dimension of b |
[in,out] | work | Workspace to temporarily store the diagonal when multiple RHS are involved. Might be set to NULL for internal allocation on need. |
Definition at line 664 of file solve_strsmsp.c.
References blok_rownbr(), solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, pastix_lrblock_s::rkmax, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_ztrsm | ( | pastix_side_t | side, |
pastix_uplo_t | uplo, | ||
pastix_trans_t | trans, | ||
pastix_diag_t | diag, | ||
const SolverCblk * | cblk, | ||
int | nrhs, | ||
const void * | dataA, | ||
pastix_complex64_t * | b, | ||
int | ldb | ||
) |
Apply a solve trsm update related to a diagonal block of the matrix A.
[in] | side | Specify the side parameter of the TRSM. |
[in] | uplo | Specify the uplo parameter of the TRSM. |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixConjTrans. |
[in] | diag | Specify if the off-diagonal blocks are unit triangular. It has to be either PastixUnit or PastixNonUnit. |
[in] | cblk | The cblk structure that corresponds to the A and B matrix. |
[in] | nrhs | The number of right hand side. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in,out] | b | The pointer to the matrix B, that is a portion of the right hand side to solve. |
[in] | ldb | The leading dimension of B. |
Definition at line 76 of file solve_ztrsmsp.c.
References cblk_colnbr(), solver_cblk_s::cblktype, pastix_int_t, pastix_lrblock_s::rk, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_zgemm | ( | pastix_side_t | side, |
pastix_trans_t | trans, | ||
pastix_int_t | nrhs, | ||
const SolverCblk * | cblk, | ||
const SolverBlok * | blok, | ||
SolverCblk * | fcbk, | ||
const void * | dataA, | ||
const pastix_complex64_t * | B, | ||
pastix_int_t | ldb, | ||
pastix_complex64_t * | C, | ||
pastix_int_t | ldc | ||
) |
Apply a solve gemm update related to a single block of the matrix A.
[in] | side | Specify whether the blok parameter belongs to cblk (PastixLeft), or to fcbk (PastixRight). |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixConjTrans. |
[in] | nrhs | The number of right hand side. |
[in] | cblk | The cblk structure that corresponds to the B matrix. |
[in] | blok | The blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter. |
[in,out] | fcbk | The cblk structure that corresponds to the C matrix. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in] | B | The pointer to the matrix B, that is a portion of the right hand side. |
[in] | ldb | The leading dimension of B. |
[in,out] | C | The pointer to the matrix C, that is the updated portion of the right hand side. |
[in] | ldc | The leading dimension of C. |
Definition at line 160 of file solve_ztrsmsp.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_cblk_s::fcolnum, solver_blok_s::frownum, pastix_int_t, PastixLeft, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, solver_cblk_s::stride, pastix_lrblock_s::u, and pastix_lrblock_s::v.
void solve_cblk_ztrsmsp_forward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
const SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a forward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 302 of file solve_ztrsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixConjTrans, PastixKernelTRSMForw, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_ztrsmsp_backward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a backward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 468 of file solve_ztrsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixConjTrans, PastixKernelTRSMBack, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_zdiag | ( | const SolverCblk * | cblk, |
const void * | dataA, | ||
int | nrhs, | ||
pastix_complex64_t * | b, | ||
int | ldb, | ||
pastix_complex64_t * | work | ||
) |
Apply the diagonal solve related to one cblk to all the right hand side.
[in] | cblk | The cblk structure to which diagonal block belongs to. |
[in] | nrhs | The number of right hand side |
[in,out] | b | The pointer to vectors of the right hand side |
[in] | ldb | The leading dimension of b |
[in,out] | work | Workspace to temporarily store the diagonal when multiple RHS are involved. Might be set to NULL for internal allocation on need. |
Definition at line 664 of file solve_ztrsmsp.c.
References blok_rownbr(), solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, pastix_lrblock_s::rkmax, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_dtrsm | ( | pastix_side_t | side, |
pastix_uplo_t | uplo, | ||
pastix_trans_t | trans, | ||
pastix_diag_t | diag, | ||
const SolverCblk * | cblk, | ||
int | nrhs, | ||
const void * | dataA, | ||
double * | b, | ||
int | ldb | ||
) |
Apply a solve trsm update related to a diagonal block of the matrix A.
[in] | side | Specify the side parameter of the TRSM. |
[in] | uplo | Specify the uplo parameter of the TRSM. |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixTrans. |
[in] | diag | Specify if the off-diagonal blocks are unit triangular. It has to be either PastixUnit or PastixNonUnit. |
[in] | cblk | The cblk structure that corresponds to the A and B matrix. |
[in] | nrhs | The number of right hand side. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in,out] | b | The pointer to the matrix B, that is a portion of the right hand side to solve. |
[in] | ldb | The leading dimension of B. |
Definition at line 76 of file solve_dtrsmsp.c.
References cblk_colnbr(), solver_cblk_s::cblktype, pastix_int_t, pastix_lrblock_s::rk, solver_cblk_s::stride, and pastix_lrblock_s::u.
void solve_blok_dgemm | ( | pastix_side_t | side, |
pastix_trans_t | trans, | ||
pastix_int_t | nrhs, | ||
const SolverCblk * | cblk, | ||
const SolverBlok * | blok, | ||
SolverCblk * | fcbk, | ||
const void * | dataA, | ||
const double * | B, | ||
pastix_int_t | ldb, | ||
double * | C, | ||
pastix_int_t | ldc | ||
) |
Apply a solve gemm update related to a single block of the matrix A.
[in] | side | Specify whether the blok parameter belongs to cblk (PastixLeft), or to fcbk (PastixRight). |
[in] | trans | Specify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixTrans. |
[in] | nrhs | The number of right hand side. |
[in] | cblk | The cblk structure that corresponds to the B matrix. |
[in] | blok | The blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter. |
[in,out] | fcbk | The cblk structure that corresponds to the C matrix. |
[in] | dataA | The pointer to the correct representation of the data of A.
|
[in] | B | The pointer to the matrix B, that is a portion of the right hand side. |
[in] | ldb | The leading dimension of B. |
[in,out] | C | The pointer to the matrix C, that is the updated portion of the right hand side. |
[in] | ldc | The leading dimension of C. |
Definition at line 160 of file solve_dtrsmsp.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_cblk_s::fcolnum, solver_blok_s::frownum, pastix_int_t, PastixLeft, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, solver_cblk_s::stride, pastix_lrblock_s::u, and pastix_lrblock_s::v.
void solve_cblk_dtrsmsp_forward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
const SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a forward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 302 of file solve_dtrsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixKernelTRSMForw, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_dtrsmsp_backward | ( | const args_solve_t * | enums, |
SolverMatrix * | datacode, | ||
SolverCblk * | cblk, | ||
pastix_rhs_t | rhsb | ||
) |
Apply a backward solve related to one cblk to all the right hand side.
[in] | enums | Enums needed for the solve. |
[in] | datacode | The SolverMatrix structure from PaStiX. |
[in] | cblk | The cblk structure to which block belongs to. The A and B pointers must be the coeftab of this column block. Next column blok must be accessible through cblk[1]. |
[in,out] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 468 of file solve_dtrsmsp.c.
References solver_cblk_s::cblktype, kernel_trace_start(), pastix_int_t, PastixKernelTRSMBack, PastixLCoef, PastixLeft, PastixLower, PastixNoTrans, PastixRight, PastixTrans, PastixUCoef, and PastixUpper.
void solve_cblk_ddiag | ( | const SolverCblk * | cblk, |
const void * | dataA, | ||
int | nrhs, | ||
double * | b, | ||
int | ldb, | ||
double * | work | ||
) |
Apply the diagonal solve related to one cblk to all the right hand side.
[in] | cblk | The cblk structure to which diagonal block belongs to. |
[in] | nrhs | The number of right hand side |
[in,out] | b | The pointer to vectors of the right hand side |
[in] | ldb | The leading dimension of b |
[in,out] | work | Workspace to temporarily store the diagonal when multiple RHS are involved. Might be set to NULL for internal allocation on need. |
Definition at line 664 of file solve_dtrsmsp.c.
References blok_rownbr(), solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, pastix_lrblock_s::rkmax, solver_cblk_s::stride, and pastix_lrblock_s::u.