File numerics/src/tools/NumericsMatrix_internal.h

Go to the source code of this file

non-public functions and data structures

Typedefs

typedef struct NM_MKL_pardiso_WS NM_MKL_pardiso_WS
typedef struct NM_SuperLU_MT_WS NM_SuperLU_MT_WS
typedef struct NM_SuperLU_WS NM_SuperLU_WS

Functions

void NM_internalData_free(NumericsMatrix *m)

Free the internalData of a NumericsMatrix.

Parameters
  • m: the matrix

void NM_MKL_pardiso_extra_display(NM_MKL_pardiso_WS *MKL_pardiso_ws)

Display extra information about the solve.

Parameters
  • MKL_pardiso_ws: the working space of MKL_pardiso

NM_MKL_pardiso_WS *NM_MKL_pardiso_factorize(NumericsMatrix *A)

Factorize a matrix using MKL_pardiso.

Return

the workspace containing the factorized form and other infos

Parameters
  • A: the matrix to factorize

void NM_MKL_pardiso_free(void *p)

Free the working data for MKL_pardiso.

Parameters

int NM_MKL_pardiso_solve(NumericsMatrix *A, double *b, NM_MKL_pardiso_WS *superlu_ws)

Solve Ax = b using MKL_pardiso.

Return

the information code

Parameters
  • A: the matrix

  • [inout] b: on input the rhs, on output the solution

  • superlu_ws: the workspace for MKL_pardiso

NM_MKL_pardiso_WS *NM_MKL_pardiso_ws(NumericsMatrix *A)

Get (and create if necessary) the working data for MKL_pardiso.

Parameters
  • A: the matrix to be factorized

void NM_SuperLU_extra_display(NM_SuperLU_WS *superlu_ws)

Display extra information about the solve.

Parameters
  • superlu_ws: the working space of SuperLU

NM_SuperLU_WS *NM_SuperLU_factorize(NumericsMatrix *A)

Factorize a matrix using SuperLU.

Return

the workspace containing the factorized form and other infos

Parameters
  • A: the matrix to factorize

void NM_SuperLU_free(void *p)

Free the working data for SuperLU.

Parameters

void NM_SuperLU_MT_extra_display(NM_SuperLU_MT_WS *superlu_mt_ws)

Display extra information about the solve.

Parameters
  • superlu_mt_ws: the working space of SuperLU_MT

NM_SuperLU_MT_WS *NM_SuperLU_MT_factorize(NumericsMatrix *A)

Factorize a matrix using SuperLU_MT.

Return

the workspace containing the factorized form and other infos

Parameters
  • A: the matrix to factorize

void NM_SuperLU_MT_free(void *p)

Free the working data for SuperLU_MT.

Parameters

int NM_SuperLU_MT_solve(NumericsMatrix *A, double *b, NM_SuperLU_MT_WS *superlu_mt_ws)

Solve Ax = b using SuperLU_MT.

Return

the information code

Parameters
  • A: the matrix

  • [inout] b: on input the rhs, on output the solution

  • superlu_mt_ws: the workspace for SuperLU_MT

NM_SuperLU_MT_WS *NM_SuperLU_MT_ws(NumericsMatrix *A)

Get (and create if necessary) the working data for SuperLU_MT.

Parameters
  • A: the matrix to be factorized

int NM_SuperLU_solve(NumericsMatrix *A, double *b, NM_SuperLU_WS *superlu_ws)

Solve Ax = b using SuperLU.

Return

the information code

Parameters
  • A: the matrix

  • [inout] b: on input the rhs, on output the solution

  • superlu_ws: the workspace for SuperLU

NM_SuperLU_WS *NM_SuperLU_ws(NumericsMatrix *A)

Get (and create if necessary) the working data for SuperLU.

Parameters
  • A: the matrix to be factorized

void NM_UMFPACK_extra_display(NM_UMFPACK_WS *umfpack_ws)

Display extra information about the solve.

Parameters
  • umfpack_ws: the working space of UMFPACK

NM_UMFPACK_WS *NM_UMFPACK_factorize(NumericsMatrix *A)

Factorize a matrix.

Return

the workspace containing the factorized form and other infos

Parameters
  • A: the matrix to factorize

void NM_UMFPACK_free(void *p)

Free the working data for UMFPACK.

Parameters

NM_UMFPACK_WS *NM_UMFPACK_ws(NumericsMatrix *A)

Get (and create if necessary) the working data for UMPFACK.

Parameters
  • A: the matrix to be factorized

struct NM_UMFPACK_WS
#include <NumericsMatrix_internal.h>

Structure for holding the data UMFPACK needs.

Public Members

double control[UMFPACK_CONTROL]

control parameters

double info[UMFPACK_INFO]

information from UMFPACK

void *numeric

for the numerical factorization

void *symbolic

for the symbolic analysis

double *wd

double workspace, size: with iterative refinement: 5n, without: n

CS_INT *wi

integer workspace, size n

double *x

solution of the problem, size n