19 #ifndef ma77_default_control
20 #define ma77_control ma77_control_d
21 #define ma77_info ma77_info_d
22 #define ma77_default_control ma77_default_control_d
23 #define ma77_open_nelt ma77_open_nelt_d
24 #define ma77_open ma77_open_d
25 #define ma77_input_vars ma77_input_vars_d
26 #define ma77_input_reals ma77_input_reals_d
27 #define ma77_analyse ma77_analyse_d
28 #define ma77_factor ma77_factor_d
29 #define ma77_factor_solve ma77_factor_solve_d
30 #define ma77_solve ma77_solve_d
31 #define ma77_resid ma77_resid_d
32 #define ma77_scale ma77_scale_d
33 #define ma77_enquire_posdef ma77_enquire_posdef_d
34 #define ma77_enquire_indef ma77_enquire_indef_d
35 #define ma77_alter ma77_alter_d
36 #define ma77_restart ma77_restart_d
37 #define ma77_finalise ma77_finalise_d
45 #ifndef ma86_default_control
46 #define ma86_control ma86_control_d
47 #define ma86_info ma86_info_d
48 #define ma86_default_control ma86_default_control_d
49 #define ma86_analyse ma86_analyse_d
50 #define ma86_factor ma86_factor_d
51 #define ma86_factor_solve ma86_factor_solve_d
52 #define ma86_solve ma86_solve_d
53 #define ma86_finalise ma86_finalise_d
61 #ifndef ma97_default_control
62 #define ma97_control ma97_control_d
63 #define ma97_info ma97_info_d
64 #define ma97_default_control ma97_default_control_d
65 #define ma97_analyse ma97_analyse_d
66 #define ma97_factor ma97_factor_d
67 #define ma97_factor_solve ma97_factor_solve_d
68 #define ma97_solve ma97_solve_d
69 #define ma97_finalise ma97_finalise_d
70 #define ma97_free_akeep ma97_free_akeep_d
78 struct mc68_control_i;
81 #ifndef __IPTYPES_HPP__
86 typedef void (*
ma27ad_t)(ipfint *N, ipfint *NZ,
const ipfint *IRN,
const ipfint* ICN,
87 ipfint *IW, ipfint* LIW, ipfint* IKEEP, ipfint *IW1,
88 ipfint* NSTEPS, ipfint* IFLAG, ipfint* ICNTL,
89 double* CNTL, ipfint *INFO,
double* OPS);
90 typedef void (*
ma27bd_t)(ipfint *N, ipfint *NZ,
const ipfint *IRN,
const ipfint* ICN,
91 double* A, ipfint* LA, ipfint* IW, ipfint* LIW,
92 ipfint* IKEEP, ipfint* NSTEPS, ipfint* MAXFRT,
93 ipfint* IW1, ipfint* ICNTL,
double* CNTL,
95 typedef void (*
ma27cd_t)(ipfint *N,
double* A, ipfint* LA, ipfint* IW,
96 ipfint* LIW,
double* W, ipfint* MAXFRT,
97 double* RHS, ipfint* IW1, ipfint* NSTEPS,
98 ipfint* ICNTL,
double* CNTL);
99 typedef void (*
ma27id_t)(ipfint* ICNTL,
double* CNTL);
101 typedef void (*
ma28ad_t)(
void* nsize,
void* nz,
void* rw,
void* licn,
void* iw,
102 void* lirn,
void* iw2,
void* pivtol,
void* iw3,
void* iw4,
void* rw2,
void* iflag);
163 typedef void (*
ma57id_t) (
double *cntl, ipfint *icntl);
167 const char *fname3,
const char *fname4,
void **keep,
170 typedef void (*
ma77_open_t)(
const int n,
const char* fname1,
const char* fname2,
171 const char *fname3,
const char *fname4,
void **keep,
176 const double reals[],
void **keep,
const struct ma77_control_d *control,
182 const double *scale);
185 const double *scale,
const int nrhs,
const int lx,
187 typedef void (*
ma77_solve_t)(
const int job,
const int nrhs,
const int lx,
double x[],
189 const double *scale);
190 typedef void (*
ma77_resid_t)(
const int nrhs,
const int lx,
const double x[],
191 const int lresid,
double resid[],
void **keep,
204 const char *fname2,
const char *fname3,
const char *fname4,
void **keep,
211 int order[],
void **keep,
const struct ma86_control *control,
213 typedef void (*
ma86_factor_t)(
const int n,
const int ptr[],
const int row[],
214 const ma86pkgtype_d_
val[],
const int order[],
void **keep,
216 const ma86pkgtype_d_ scale[]);
218 const int row[],
const ma86pkgtype_d_ val[],
const int order[],
void **keep,
220 const int ldx, ma86pkgtype_d_ x[],
const ma86pkgtype_d_ scale[]);
221 typedef void (*
ma86_solve_t)(
const int job,
const int nrhs,
const int ldx,
222 ma86pkgtype_d_ *
x,
const int order[],
void **keep,
224 const ma86pkgtype_d_ scale[]);
230 const int row[], ma97pkgtype_d_ val[],
void **akeep,
233 const int row[],
const ma97pkgtype_d_ val[],
void **akeep,
void **fkeep,
235 const ma97pkgtype_d_ scale[]);
237 const int row[],
const ma97pkgtype_d_ val[],
const int nrhs,
238 ma97pkgtype_d_ x[],
const int ldx,
void **akeep,
void **fkeep,
240 const ma97pkgtype_d_ scale[]);
241 typedef void (*
ma97_solve_t)(
const int job,
const int nrhs, ma97pkgtype_d_ *
x,
242 const int ldx,
void **akeep,
void **fkeep,
247 typedef void (*
mc19ad_t)(ipfint *N, ipfint *NZ,
double* A, ipfint *IRN, ipfint* ICN,
float* R,
float* C,
float* W);
251 const int row[],
int perm[],
const struct mc68_control_i *control,
252 struct mc68_info_i *info);
269 int LSL_loadHSL(
const char* libname,
char* msgbuf,
int msglen);
Number * x
Input: Starting point Output: Optimal solution.
void(* ma86_finalise_t)(void **keep, const struct ma86_control *control)
void LSL_setMC19(mc19ad_t mc19ad)
sets pointer to MC19 function
void(* ma77_factor_solve_t)(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const double *scale, const int nrhs, const int lx, double rhs[])
void(* ma97_factor_t)(const int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, const ma97pkgtype_d_ scale[])
FORTRAN_INTEGER_TYPE ipfint
void LSL_setMA57(ma57ad_t ma57ad, ma57bd_t ma57bd, ma57cd_t ma57cd, ma57ed_t ma57ed, ma57id_t ma57id)
sets pointers to MA57 functions
void(* ma77_default_control_t)(struct ma77_control_d *control)
int LSL_isMA77available()
Indicates whether a HSL library is loaded and all symbols necessary to use MA77 have been found...
void(* ma86_default_control_t)(struct ma86_control *control)
void(* ma77_enquire_posdef_t)(double d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
void(* ma77_input_vars_t)(const int idx, const int nvar, const int list[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
#define ma77_default_control
void(* ma86_analyse_t)(const int n, const int ptr[], const int row[], int order[], void **keep, const struct ma86_control *control, struct ma86_info *info)
void(* mc68_order_t)(int ord, int n, const int ptr[], const int row[], int perm[], const struct mc68_control_i *control, struct mc68_info_i *info)
void(* ma27bd_t)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint *ICN, double *A, ipfint *LA, ipfint *IW, ipfint *LIW, ipfint *IKEEP, ipfint *NSTEPS, ipfint *MAXFRT, ipfint *IW1, ipfint *ICNTL, double *CNTL, ipfint *INFO)
void(* ma86_factor_t)(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const ma86pkgtype_d_ scale[])
void(* mc68_default_control_t)(struct mc68_control_i *control)
int LSL_isMC68available()
Indicates whether a HSL library is loaded and all symbols necessary to use HSL_MC68 have been found...
void(* ma27cd_t)(ipfint *N, double *A, ipfint *LA, ipfint *IW, ipfint *LIW, double *W, ipfint *MAXFRT, double *RHS, ipfint *IW1, ipfint *NSTEPS, ipfint *ICNTL, double *CNTL)
void mc68_default_control(struct mc68_control *control)
int LSL_isMA97available()
Indicates whether a HSL library is loaded and all symbols necessary to use HSL_MA97 have been found...
int LSL_isMA86available()
Indicates whether a HSL library is loaded and all symbols necessary to use HSL_MA86 have been found...
void(* ma97_finalise_t)(void **akeep, void **fkeep)
void(* ma77_solve_t)(const int job, const int nrhs, const int lx, double x[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const double *scale)
int LSL_unloadHSL()
Unloads a loaded HSL library.
#define ma97_default_control
void(* ma57ad_t)(ipfint *n, ipfint *ne, const ipfint *irn, const ipfint *jcn, ipfint *lkeep, ipfint *keep, ipfint *iwork, ipfint *icntl, ipfint *info, double *rinfo)
#define FORTRAN_INTEGER_TYPE
void(* ma77_scale_t)(double scale[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, double *anorm)
int LSL_isMA27available()
Indicates whether a HSL library is loaded and all symbols necessary to use MA27 have been found...
#define ma86_default_control
void(* ma77_enquire_indef_t)(int piv_order[], double d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
void(* ma57id_t)(double *cntl, ipfint *icntl)
void(* ma77_restart_t)(const char *restart_file, const char *fname1, const char *fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
#define ma77_enquire_posdef
void(* ma77_finalise_t)(void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
void(* ma27id_t)(ipfint *ICNTL, double *CNTL)
#define ma77_factor_solve
void(* ma27ad_t)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint *ICN, ipfint *IW, ipfint *LIW, ipfint *IKEEP, ipfint *IW1, ipfint *NSTEPS, ipfint *IFLAG, ipfint *ICNTL, double *CNTL, ipfint *INFO, double *OPS)
void(* ma57cd_t)(ipfint *job, ipfint *n, double *fact, ipfint *lfact, ipfint *ifact, ipfint *lifact, ipfint *nrhs, double *rhs, ipfint *lrhs, double *work, ipfint *lwork, ipfint *iwork, ipfint *icntl, ipfint *info)
int LSL_isMA28available()
Indicates whether a HSL library is loaded and all symbols necessary to use MA28 have been found...
int LSL_isHSLLoaded()
Indicates whether a HSL library has been loaded.
void LSL_setMA97(ma97_default_control_t ma97_default_control, ma97_analyse_t ma97_analyse, ma97_factor_t ma97_factor, ma97_factor_solve_t ma97_factor_solve, ma97_solve_t ma97_solve, ma97_finalise_t ma97_finalise, ma97_free_akeep_t ma97_free_akeep)
sets pointers to MA97 functions
int LSL_loadHSL(const char *libname, char *msgbuf, int msglen)
Tries to load a dynamically linked library with HSL routines.
char * LSL_HSLLibraryName()
Returns name of the shared library that should contain HSL.
void LSL_setMA77(ma77_default_control_t ma77_default_control, ma77_open_nelt_t ma77_open_nelt, ma77_open_t ma77_open, ma77_input_vars_t ma77_input_vars, ma77_input_reals_t ma77_input_reals, ma77_analyse_t ma77_analyse, ma77_factor_t ma77_factor, ma77_factor_solve_t ma77_factor_solve, ma77_solve_t ma77_solve, ma77_resid_t ma77_resid, ma77_scale_t ma77_scale, ma77_enquire_posdef_t ma77_enquire_posdef, ma77_enquire_indef_t ma77_enquire_indef, ma77_alter_t ma77_alter, ma77_restart_t ma77_restart, ma77_finalise_t ma77_finalise)
sets pointers to MA77 functions
void(* ma86_factor_solve_t)(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const int nrhs, const int ldx, ma86pkgtype_d_ x[], const ma86pkgtype_d_ scale[])
void(* ma77_alter_t)(const double d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
void(* ma77_open_nelt_t)(const int n, const char *fname1, const char *fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const int nelt)
void LSL_setMA28(ma28ad_t ma28ad)
sets pointers to MA28 functions
void LSL_setMA27(ma27ad_t ma27ad, ma27bd_t ma27bd, ma27cd_t ma27cd, ma27id_t ma27id)
sets pointers to MA27 functions
void(* ma97_default_control_t)(struct ma97_control *control)
void(* ma77_input_reals_t)(const int idx, const int length, const double reals[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
void mc68_order(int ord, int n, const int ptr[], const int row[], int perm[], const struct mc68_control *control, struct mc68_info *info)
void(* ma97_free_akeep_t)(void **akeep)
#define ma77_enquire_indef
void LSL_setMC68(mc68_default_control_t mc68_default_control, mc68_order_t mc68_order)
sets pointers to MC68 functions
void(* ma77_factor_t)(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const double *scale)
#define ma97_factor_solve
void(* ma57bd_t)(ipfint *n, ipfint *ne, double *a, double *fact, ipfint *lfact, ipfint *ifact, ipfint *lifact, ipfint *lkeep, ipfint *keep, ipfint *iwork, ipfint *icntl, double *cntl, ipfint *info, double *rinfo)
int LSL_isMC19available()
Indicates whether a HSL library is loaded and all symbols necessary to use MA57 have been found...
void(* ma97_factor_solve_t)(const int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], const int nrhs, ma97pkgtype_d_ x[], const int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, const ma97pkgtype_d_ scale[])
void(* ma57ed_t)(ipfint *n, ipfint *ic, ipfint *keep, double *fact, ipfint *lfact, double *newfac, ipfint *lnew, ipfint *ifact, ipfint *lifact, ipfint *newifc, ipfint *linew, ipfint *info)
void(* ma97_analyse_t)(const int check, const int n, const int ptr[], const int row[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control *control, struct ma97_info *info, int order[])
void(* mc19ad_t)(ipfint *N, ipfint *NZ, double *A, ipfint *IRN, ipfint *ICN, float *R, float *C, float *W)
void(* ma97_solve_t)(const int job, const int nrhs, ma97pkgtype_d_ *x, const int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info)
void(* ma77_open_t)(const int n, const char *fname1, const char *fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
int LSL_isMA57available()
Indicates whether a HSL library is loaded and all symbols necessary to use MA57 have been found...
void LSL_setMA86(ma86_default_control_t ma86_default_control, ma86_analyse_t ma86_analyse, ma86_factor_t ma86_factor, ma86_factor_solve_t ma86_factor_solve, ma86_solve_t ma86_solve, ma86_finalise_t ma86_finalise)
sets pointers to MA86 functions
void(* ma77_analyse_t)(const int order[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info)
void(* ma28ad_t)(void *nsize, void *nz, void *rw, void *licn, void *iw, void *lirn, void *iw2, void *pivtol, void *iw3, void *iw4, void *rw2, void *iflag)
void(* ma77_resid_t)(const int nrhs, const int lx, const double x[], const int lresid, double resid[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, double *anorm_bnd)
void(* ma86_solve_t)(const int job, const int nrhs, const int ldx, ma86pkgtype_d_ *x, const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const ma86pkgtype_d_ scale[])
#define ma86_factor_solve