libflame revision_anchor
FLASH_Chol_solve.c File Reference

(r)

Functions

FLA_Error FLASH_Chol_solve (FLA_Uplo uplo, FLA_Obj A, FLA_Obj B, FLA_Obj X)
 

Function Documentation

◆ FLASH_Chol_solve()

FLA_Error FLASH_Chol_solve ( FLA_Uplo uplo,
FLA_Obj A,
FLA_Obj B,
FLA_Obj X )
14{
15 // Check parameters.
16 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
17 FLA_Chol_solve_check( uplo, A, B, X );
18
19 FLASH_Copy( B, X );
20
21 if ( uplo == FLA_LOWER_TRIANGULAR )
22 {
23 FLASH_Trsm( FLA_LEFT, FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE,
24 FLA_NONUNIT_DIAG, FLA_ONE, A, X );
25 FLASH_Trsm( FLA_LEFT, FLA_LOWER_TRIANGULAR, FLA_CONJ_TRANSPOSE,
26 FLA_NONUNIT_DIAG, FLA_ONE, A, X );
27 }
28 else // if ( uplo == FLA_UPPER_TRIANGULAR )
29 {
30 FLASH_Trsm( FLA_LEFT, FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE,
31 FLA_NONUNIT_DIAG, FLA_ONE, A, X );
32 FLASH_Trsm( FLA_LEFT, FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE,
33 FLA_NONUNIT_DIAG, FLA_ONE, A, X );
34 }
35
36 return FLA_SUCCESS;
37}
FLA_Error FLASH_Copy(FLA_Obj A, FLA_Obj B)
Definition FLASH_Copy.c:15
FLA_Error FLASH_Trsm(FLA_Side side, FLA_Uplo uplo, FLA_Trans trans, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B)
Definition FLASH_Trsm.c:15
FLA_Error FLA_Chol_solve_check(FLA_Uplo uplo, FLA_Obj A, FLA_Obj B, FLA_Obj X)
Definition FLA_Chol_solve_check.c:13
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18

References FLA_Check_error_level(), FLA_Chol_solve_check(), FLA_ONE, FLASH_Copy(), and FLASH_Trsm().