Go to the documentation of this file.
11 #ifndef ma97_default_control
12 #define ma97_control ma97_control_d
13 #define ma97_info ma97_info_d
14 #define ma97_default_control ma97_default_control_d
15 #define ma97_analyse ma97_analyse_d
16 #define ma97_analyse_coord ma97_analyse_coord_d
17 #define ma97_factor ma97_factor_d
18 #define ma97_factor_solve ma97_factor_solve_d
19 #define ma97_solve ma97_solve_d
20 #define ma97_free_akeep ma97_free_akeep_d
21 #define ma97_free_fkeep ma97_free_fkeep_d
22 #define ma97_finalise ma97_finalise_d
23 #define ma97_enquire_posdef ma97_enquire_posdef_d
24 #define ma97_enquire_indef ma97_enquire_indef_d
25 #define ma97_alter ma97_alter_d
26 #define ma97_solve_fredholm ma97_solve_fredholm_d
27 #define ma97_lmultiply ma97_lmultiply_d
28 #define ma97_sparse_fwd_solve ma97_sparse_fwd_solve_d
107 struct ma97_info_d* info,
120 struct ma97_info_d* info,
133 struct ma97_info_d* info,
149 struct ma97_info_d* info,
162 struct ma97_info_d* info
232 struct ma97_info_d* info
247 struct ma97_info_d* info
int ordering
Control scaling algorithm used:
void ma97_factor_solve_d(int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], int nrhs, ma97pkgtype_d_ x[], int ldx, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info, ma97realtype_d_ scale[])
Perform numerical factorization and solve, following call to ma97_analyse.
long solve_min
Min number of entries for parallel execution.
int unit_error
Fortran unit for error msgs (<0 disables)
int matrix_rank
matrix rank
ma97realtype_d_ u
Pivoting parameter.
int maxfront
maximum dimension of frontal matrix
ma97realtype_d_ small
Minimum value to count as non-zero.
int matrix_outrange
number of out of range entries in A
ma97realtype_d_ rspare[10]
void ma97_analyse_d(int check, int n, const int ptr[], const int row[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control_d *control, struct ma97_info_d *info, int order[])
Perform symbolic analysis of matrix (sparse column entry)
void ma97_analyse_coord_d(int n, int ne, const int row[], const int col[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control_d *control, struct ma97_info_d *info, int order[])
Perform symbolic analysis of matrix (coordinate entry)
ma97realtype_d_ rspare[10]
int nemin
Supernode amalgamation if parent and child have fewer than nemin eliminations.
void ma97_lmultiply_d(int trans, int k, const ma97pkgtype_d_ x[], int ldx, ma97pkgtype_d_ y[], int ldy, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info)
Form (S^{-1}PL) X or (S^{-1}PL)^T X.
void ma97_enquire_posdef_d(void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, ma97realtype_d_ d[])
Return diagonal entries of L.
int action
Continue on singularity if !=0 (true), otherwise abort.
void ma97_factor_d(int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info, ma97realtype_d_ scale[])
Perform numerical factorization, following call to ma97_analyse.
int print_level
<0 for no printing, 0 for basic, >1 for most
void ma97_sparse_fwd_solve_d(int nbi, const int bindex[], const ma97pkgtype_d_ b[], const int order[], int *nxi, int xindex[], ma97pkgtype_d_ x[], void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info)
Perform a sparse forward solve.
int stat
error code from failed memory allocation
ma97realtype_d_ multiplier
Amount of extra memory to allow for delays.
void ma97_finalise_d(void **akeep, void **fkeep)
Free memory in akeep and fkeep.
int matrix_missing_diag
number of zero diagonal entries in A
void ma97_alter_d(const ma97pkgtype_d_ d[], void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info)
Alter diagonal and subdiagonal of D.
ma97realtype_d_ consist_tol
Consistent equation tolerance.
int num_neg
number of negative pivots
int num_delay
number of times a pivot was delayed
int num_two
number of 2x2 pivots
long num_flops
number of floating point operations
void ma97_free_akeep_d(void **akeep)
Free memory in akeep.
int solve_blas3
Use BLAS3 in solve in true, else BLAS2.
int num_sup
number of supernodes in assembly tree
long num_factor
number of entries in L
int solve_mf
If true use m/f solve, else use s/n.
void ma97_free_fkeep_d(void **fkeep)
Free memory in fkeep.
void ma97_solve_d(int job, int nrhs, ma97pkgtype_d_ x[], int ldx, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info)
Perform forward and back substitutions, following call to ma97_factor.
int scaling
0 user/none, 1 mc64, 2 mc77
int matrix_dup
number duplicate entries in A
long factor_min
Min number of flops for parallel execution.
void ma97_enquire_indef_d(void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, int *piv_order, ma97pkgtype_d_ *d)
Return diagonal, subdiagonal and/or pivot order of D.
int unit_diagnostics
Fortran unit for diagnostics (<0 disables)
void ma97_default_control_d(struct ma97_control_d *control)
Set default values of control.
int maxdepth
height of assembly tree
int ordering
ordering used (as per control.ordering)
int unit_warning
Fortran unit for warning msgs (<0 disables)
void ma97_solve_fredholm_d(int nrhs, int flag_out[], ma97pkgtype_d_ x[], int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info)
Fredholm alternative for singular systems.
int f_arrays
Use C or Fortran numbering.