prec.h File Reference
#include "bsr.h"
Include dependency graph for prec.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  prec_t
 Preconditioner struct. More...
 

Typedefs

typedef struct prec_t prec_t
 Preconditioner struct. More...
 

Functions

prec_tprec_alloc ()
 Create empty preconditioner object. More...
 
void prec_free (prec_t *P)
 Delete preconditioner object. More...
 
void prec_init (prec_t *P, bsr_matrix const *A)
 Initialize preconditioner object. More...
 
int prec_analyze (bsr_matrix *M, int(*offsets)[3])
 Identify off-diagonal ILU0 targets. More...
 
void prec_dilu_factorize (prec_t *P, bsr_matrix *A)
 DILU factorization. More...
 
void prec_ilu0_factorize (prec_t *P, bsr_matrix *A)
 ILU0 factorization. More...
 
void prec_mapply3c (prec_t *P, double *x)
 Preconditioner application in mixed-precision. More...
 
void prec_dapply3c (prec_t *P, double *x)
 Preconditioner applicationin double-precision. More...
 
void prec_downcast (prec_t *P)
 Make single-precision copy of double-precision values. More...
 
void prec_info (prec_t *P)
 Display preconditioner statistics. More...
 

Typedef Documentation

◆ prec_t

typedef struct prec_t prec_t

Preconditioner struct.

Function Documentation

◆ prec_alloc()

prec_t * prec_alloc ( )

Create empty preconditioner object.

Returns
Pointer to preconditioner object.

◆ prec_analyze()

int prec_analyze ( bsr_matrix M,
int(*)  offsets[3] 
)

Identify off-diagonal ILU0 targets.

Parameters
MPointer to bsr matrix.
offsetsPointer to offsets identifying off-diagonal targets.
Returns
number of offdiagonal targets.

◆ prec_dapply3c()

void prec_dapply3c ( prec_t P,
double *  x 
)

Preconditioner applicationin double-precision.

Note
Algorithm onsists of lower and upper triangular solves
Parameters
PPointer to preconditioner object. @apram x Pointer to input/output vector

◆ prec_dilu_factorize()

void prec_dilu_factorize ( prec_t P,
bsr_matrix A 
)

DILU factorization.

Parameters
PPointer preconditioner object.
APointer to bsr matrix.

◆ prec_downcast()

void prec_downcast ( prec_t P)

Make single-precision copy of double-precision values.

Parameters
PPointer to preconditioner object.

◆ prec_free()

void prec_free ( prec_t P)

Delete preconditioner object.

Parameters
APointer to preconditioner object.

◆ prec_ilu0_factorize()

void prec_ilu0_factorize ( prec_t P,
bsr_matrix A 
)

ILU0 factorization.

Parameters
PPointer preconditioner object.
APointer to bsr matrix.

◆ prec_info()

void prec_info ( prec_t P)

Display preconditioner statistics.

Parameters
PPointer to preconditioner object.

◆ prec_init()

void prec_init ( prec_t P,
bsr_matrix const *  A 
)

Initialize preconditioner object.

Parameters
PPointer preconditioner object.
APointer to bsr matrix.

◆ prec_mapply3c()

void prec_mapply3c ( prec_t P,
double *  x 
)

Preconditioner application in mixed-precision.

Note
Algorithm onsists of lower and upper triangular solves
Parameters
PPointer to preconditioner object. @apram x Pointer to input/output vector