# symbol_costi.c

Part of a parallel direct block solver.  This module computes the block solving cost of incomplete symbolic matrices, using the cost functions of “Fonctions de Complexite pour la Resolution par Blocs de Systemes Lineaires Denses et Creux”, by Pierre Ramet.

#### Authors

• Francois PELLEGRINI

#### Dates

 Version 1.0 from 24 jun 2002 to 26 jun 2002 Version 3.0 from 29 feb 2004 to 29 feb 2004
Summary
 symbol_costi.c Part of a parallel direct block solver. symbolCosti This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure. symbolCosti2 This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.

## symbolCosti

 int symbolCosti ( const SymbolMatrix * const symbptr, const Dof * const deofptr, const SymbolCostType typeval, const INT levfval, double * const nnzptr, double * const opcptr )

This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.

To ensure maximum accuracy and minimum loss of precision, costs are summed-up recursively.

In fact it calls symbolCosti2.

#### Parameters

 symbptr Symbolic matrix to evaluate deofptr DOF structure associated with the matrix typeval Type of cost computation levfval Level of fill nnzptr Size of the structure, to be filled opcptr Operation count, to be filled

#### Returns

 0 on success. !0 on error.

## symbolCosti2

 static void symbolCosti2 ( const SymbolCblk * restrict const cblktax, const SymbolBlok * restrict const bloktax, const Dof * restrict const deofptr, const INT levfval, double * restrict const nnzptr, double * restrict const opcptr, const INT cblkmin, const INT cblknbr )

This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.

To ensure maximum accuracy and minimum loss of precision, costs are summed-up recursively.

#### Parameters

 cblktax Based access to cblktab bloktax Based access to bloktab deofptr DOF structure associated with the matrix levfval Level of fill nnzptr Size of the structure, to be filled opcptr Operation count, to be filled cblkmin Minimum column block index to consider cblknbr Number of column blocks to consider
 int symbolCosti ( const SymbolMatrix * const symbptr, const Dof * const deofptr, const SymbolCostType typeval, const INT levfval, double * const nnzptr, double * const opcptr )
This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.
 static void symbolCosti2 ( const SymbolCblk * restrict const cblktax, const SymbolBlok * restrict const bloktax, const Dof * restrict const deofptr, const INT levfval, double * restrict const nnzptr, double * restrict const opcptr, const INT cblkmin, const INT cblknbr )
This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.