umfpack_wrapper.c 7.19 KB
#include "umfpack.h"
#include <ctype.h>
#include <stdio.h>
#ifdef NULL
#undef NULL
#endif
#define NULL 0
#define LEN 200
/* for umfpack 4.1 */
/* #define UF_long long */
/*
set of routines used by fvn_sparse
complex(8) and integer(8)
*/
/* defaults */
void umfpack_zl_defaults_ (double Control [UMFPACK_CONTROL])
{
umfpack_zl_defaults (Control) ;
}
/* free the Numeric object */
void umfpack_zl_free_numeric_(void **Numeric)
{
umfpack_zl_free_numeric (Numeric) ;
}
/* free th Symbolic object */
void umfpack_zl_free_symbolic_(void **Symbolic)
{
umfpack_zl_free_symbolic (Symbolic) ;
}
/* numeric factorization */
void umfpack_zl_numeric_ (UF_long Ap [ ], UF_long Ai [ ], double Ax [ ], double Az [ ],
void **Symbolic, void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_zl_numeric (Ap, Ai, Ax, Az, *Symbolic, Numeric, Control, Info);
}
/* pre-ordering and symbolic factorization */
void umfpack_zl_symbolic_ (UF_long *m, UF_long *n, UF_long Ap [ ], UF_long Ai [ ],
double Ax [ ], double Az [ ], void **Symbolic,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_zl_symbolic (*m, *n, Ap, Ai, Ax, Az, Symbolic, Control, Info) ;
}
/* solve a linear system */
void umfpack_zl_solve_ (UF_long *sys, UF_long Ap [ ], UF_long Ai [ ], double Ax [ ], double Az [ ],
double x [ ], double xz [ ], double b [ ], double bz [ ], void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_zl_solve (*sys, Ap, Ai, Ax, Az, x, xz, b, bz,
*Numeric, Control, Info) ;
}
/* triplet 2 col */
void umfpack_zl_triplet_to_col_ (UF_long *m, UF_long *n, UF_long *nz, UF_long Ti [ ], UF_long Tj [ ],
double Tx [ ], double Tz [ ], UF_long Ap [ ], UF_long Ai [ ],
double Ax [ ], double Az [ ], UF_long *status)
{
*status = umfpack_zl_triplet_to_col (*m, *n, *nz, Ti, Tj, Tx, Tz, Ap, Ai, Ax, Az, (UF_long *) NULL);
}
/* get determinant */
void umfpack_zl_get_determinant_ ( double *Mx, double *Mz, double *Ex, void **Numeric, double Info [UMFPACK_INFO], UF_long *status )
{
*status = umfpack_zl_get_determinant (Mx,Mz,Ex,*Numeric, Info);
}
/* complex(8) and integer(4) */
/* defaults */
void umfpack_zi_defaults_ (double Control [UMFPACK_CONTROL])
{
umfpack_zi_defaults (Control) ;
}
/* free the Numeric object */
void umfpack_zi_free_numeric_(void **Numeric)
{
umfpack_zi_free_numeric (Numeric) ;
}
/* free the Symbolic object */
void umfpack_zi_free_symbolic_(void **Symbolic)
{
umfpack_zi_free_symbolic (Symbolic) ;
}
/* numeric factorization */
void umfpack_zi_numeric_ (int Ap [ ], int Ai [ ], double Ax [ ], double Az [ ],
void **Symbolic, void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_zi_numeric (Ap, Ai, Ax, Az, *Symbolic, Numeric, Control, Info);
}
/* pre-ordering and symbolic factorization */
void umfpack_zi_symbolic_ (int *m, int *n, int Ap [ ], int Ai [ ],
double Ax [ ], double Az [ ], void **Symbolic,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_zi_symbolic (*m, *n, Ap, Ai, Ax, Az, Symbolic, Control, Info) ;
}
/* solve a linear system */
void umfpack_zi_solve_ (int *sys, int Ap [ ], int Ai [ ], double Ax [ ], double Az [ ],
double x [ ], double xz [ ], double b [ ], double bz [ ], void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_zi_solve (*sys, Ap, Ai, Ax, Az, x, xz, b, bz,
*Numeric, Control, Info) ;
}
/* triplet 2 col */
void umfpack_zi_triplet_to_col_ (int *m, int *n, int *nz, int Ti [ ], int Tj [ ],
double Tx [ ], double Tz [ ], int Ap [ ], int Ai [ ],
double Ax [ ], double Az [ ], int *status)
{
*status = umfpack_zi_triplet_to_col (*m, *n, *nz, Ti, Tj, Tx, Tz, Ap, Ai, Ax, Az, (int *) NULL);
}
/* get determinant */
void umfpack_zi_get_determinant_ ( double *Mx, double *Mz, double *Ex, void **Numeric, double Info [UMFPACK_INFO], int *status )
{
*status = umfpack_zi_get_determinant (Mx,Mz,Ex,*Numeric, Info);
}
/* real(8) and integer(8) */
/* defaults */
void umfpack_dl_defaults_ (double Control [UMFPACK_CONTROL])
{
umfpack_dl_defaults (Control) ;
}
void umfpack_dl_free_numeric_ (void **Numeric)
{
umfpack_dl_free_numeric (Numeric) ;
}
void umfpack_dl_free_symbolic_ (void **Symbolic)
{
umfpack_dl_free_symbolic (Symbolic) ;
}
void umfpack_dl_numeric_ (UF_long Ap [ ], UF_long Ai [ ], double Ax [ ],
void **Symbolic, void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_dl_numeric (Ap, Ai, Ax, *Symbolic, Numeric, Control, Info);
}
void umfpack_dl_symbolic_ (UF_long *m, UF_long *n, UF_long Ap [ ], UF_long Ai [ ],
double Ax [ ], void **Symbolic,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_dl_symbolic (*m, *n, Ap, Ai, Ax, Symbolic, Control, Info) ;
}
void umfpack_dl_solve_ (UF_long *sys, UF_long Ap [ ], UF_long Ai [ ], double Ax [ ],
double x [ ], double b [ ], void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_dl_solve (*sys, Ap, Ai, Ax, x, b, *Numeric, Control, Info) ;
}
void umfpack_dl_triplet_to_col_ (UF_long *m, UF_long *n, UF_long *nz, UF_long Ti [ ], UF_long Tj [ ],
double T [ ], UF_long Ap [ ], UF_long Ai [ ],
double A [ ], UF_long *status)
{
*status = umfpack_dl_triplet_to_col (*m, *n, *nz, Ti, Tj, T, Ap, Ai, A, (UF_long *) NULL);
}
/* get determinant */
void umfpack_dl_get_determinant_ ( double *Mx, double *Ex, void **Numeric, double Info [UMFPACK_INFO], UF_long *status )
{
*status = umfpack_dl_get_determinant (Mx,Ex,*Numeric, Info);
}
/* real(8) and integer(4) */
/* defaults */
void umfpack_di_defaults_ (double Control [UMFPACK_CONTROL])
{
umfpack_di_defaults (Control) ;
}
void umfpack_di_free_numeric_ (void **Numeric)
{
umfpack_di_free_numeric (Numeric) ;
}
void umfpack_di_free_symbolic_ (void **Symbolic)
{
umfpack_di_free_symbolic (Symbolic) ;
}
void umfpack_di_numeric_ (int Ap [ ], int Ai [ ], double Ax [ ],
void **Symbolic, void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_di_numeric (Ap, Ai, Ax, *Symbolic, Numeric, Control, Info);
}
void umfpack_di_symbolic_ (int *m, int *n, int Ap [ ], int Ai [ ],
double Ax [ ], void **Symbolic,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_di_symbolic (*m, *n, Ap, Ai, Ax, Symbolic, Control, Info) ;
}
void umfpack_di_solve_ (int *sys, int Ap [ ], int Ai [ ], double Ax [ ],
double x [ ], double b [ ], void **Numeric,
double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
{
(void) umfpack_di_solve (*sys, Ap, Ai, Ax, x, b, *Numeric, Control, Info) ;
}
void umfpack_di_triplet_to_col_ (int *m, int *n, int *nz, int Ti [ ], int Tj [ ],
double T [ ], int Ap [ ], int Ai [ ],
double A [ ], int *status)
{
*status = umfpack_di_triplet_to_col (*m, *n, *nz, Ti, Tj, T, Ap, Ai, A, (int *) NULL);
}
/* get determinant */
void umfpack_di_get_determinant_ ( double *Mx, double *Ex, void **Numeric, double Info [UMFPACK_INFO], int *status )
{
*status = umfpack_di_get_determinant (Mx,Ex,*Numeric, Info);
}