# compute_diag.c

Computation functions.

Pierre Ramet : fev 2003 Mathieu Faverge Xavier Lacoste

Summary
 compute_diag.c Computation functions. Constants MAXSIZEOFBLOCKS Maximum size of blocks given to blas in factorisation API_CALL(FactorizationLDLT) API_CALL(FactorizationLU) API_CALL(DimTrans) FactorizationLLT Factorisation LLt BLAS2 3 terms FactorizationLLT_block Computes the block LL^T factorisation of the matrix A. FactorizationLDLT Factorisation LDLt BLAS2 3 terms FactorizationLDLT_block Computes the block LDL^T factorisation of the matrix A. FactorizationLU LU Factorisation of one (diagonal) block \$A = LU\$ FactorizationLU_block Block LU Factorisation of one (diagonal) big block API_CALL(DimTrans) API_CALL(factor_diag)

### MAXSIZEOFBLOCKS

Maximum size of blocks given to blas in factorisation

## API_CALL(FactorizationLDLT)

 void API_CALL( FactorizationLDLT ) (FLOAT *A, INT n, INT stride, INT *nbpivot, double critere)

## API_CALL(FactorizationLU)

 void API_CALL( FactorizationLU )(FLOAT *A, INT m, INT n, INT stride, INT *nbpivot, double critere)

## API_CALL(DimTrans)

 void API_CALL( DimTrans ) (FLOAT *A, INT stride, INT size, FLOAT *B)

## FactorizationLLT

 void API_CALL( FactorizationLLT )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere)

Factorisation LLt BLAS2 3 terms

`A = LDL^T`

#### Parameters

 A Matrix to factorize n Size of A stride Stide between 2 columns of the matrix nbpivot IN/OUT pivot number. critere Pivoting threshold.

## FactorizationLLT_block

 void API_CALL( FactorizationLLT_block )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere)

Computes the block LL^T factorisation of the matrix A.

`A = LL^T`

#### Parameters

 A Matrix to factorize n Size of A stride Stide between 2 columns of the matrix nbpivot IN/OUT pivot number. critere Pivoting threshold.

## FactorizationLDLT

 void API_CALL( FactorizationLDLT )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere)

Factorisation LDLt BLAS2 3 terms

`A = LDL^T`

#### Parameters

 A Matrix to factorize n Size of A stride Stide between 2 columns of the matrix nbpivot IN/OUT pivot number. critere Pivoting threshold.

## FactorizationLDLT_block

 void API_CALL( FactorizationLDLT_block )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere, FLOAT * tmp4)

Computes the block LDL^T factorisation of the matrix A.

`A = LDL^T`

#### Parameters

 A Matrix to factorize n Size of A stride Stide between 2 columns of the matrix nbpivot IN/OUT pivot number. critere Pivoting threshold.

## FactorizationLU

 void API_CALL( FactorizationLU )(FLOAT *A, INT m, INT n, INT stride, INT *nbpivot, double critere)

LU Factorisation of one (diagonal) block \$A = LU\$

For each column :

• Divide the column by the diagonal element.
• Substract the product of the subdiagonal part by the line after the diagonal element from the matrix under the diagonal element.

#### Parameters

 A Matrix to factorize m number of rows of the Matrix A n number of cols of the Matrix A stride Stide between 2 columns of the matrix nbpivot IN/OUT pivot number. critere Pivoting threshold.

## FactorizationLU_block

 void API_CALL( FactorizationLU_block )(FLOAT *A, INT n, INT stride, INT *nbpivot, double critere)

Block LU Factorisation of one (diagonal) big block

`A = LU`

#### Parameters

 A Matrix to factorize n Size of A stride Stide between 2 columns of the matrix nbpivot IN/OUT pivot number. critere Pivoting threshold.

## API_CALL(DimTrans)

 void API_CALL( DimTrans )(FLOAT *A, INT stride, INT size, FLOAT *B)

## API_CALL(factor_diag)

 void API_CALL( factor_diag )(Sopalin_Data_t *sopalin_data, INT me, INT c)
 void API_CALL( FactorizationLDLT ) (FLOAT *A, INT n, INT stride, INT *nbpivot, double critere)
 void API_CALL( FactorizationLU )(FLOAT *A, INT m, INT n, INT stride, INT *nbpivot, double critere)
 void API_CALL( DimTrans ) (FLOAT *A, INT stride, INT size, FLOAT *B)
 void API_CALL( FactorizationLLT )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere)
Factorisation LLt BLAS2 3 terms
 void API_CALL( FactorizationLLT_block )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere)
Computes the block LL^T factorisation of the matrix A.
 void API_CALL( FactorizationLDLT )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere)
Factorisation LDLt BLAS2 3 terms
 void API_CALL( FactorizationLDLT_block )(FLOAT * A, INT n, INT stride, INT *nbpivot, double critere, FLOAT * tmp4)
Computes the block LDL^T factorisation of the matrix A.
 void API_CALL( FactorizationLU )(FLOAT *A, INT m, INT n, INT stride, INT *nbpivot, double critere)
LU Factorisation of one (diagonal) block \$A = LU\$
 void API_CALL( FactorizationLU_block )(FLOAT *A, INT n, INT stride, INT *nbpivot, double critere)
Block LU Factorisation of one (diagonal) big block
 void API_CALL( factor_diag )(Sopalin_Data_t *sopalin_data, INT me, INT c)