Ipopt Documentation  
 
Loading...
Searching...
No Matches
hsl_ma97d.h
Go to the documentation of this file.
1/* COPYRIGHT (c) 2012 The Science and Technology Facilities Council (STFC)
2 * All Rights Reserved.
3 * This code is published under the Eclipse Public License.
4 *
5 * Authors: Jonathan Hogg STFC 2012-12-21
6 */
7
8#ifndef HSL_MA97D_H
9#define HSL_MA97D_H
10
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
29#endif
30
31typedef double ma97pkgtype_d_;
32typedef double ma97realtype_d_;
33
35{
37 int action;
38 int nemin;
51 int scaling;
59 long solve_min;
63 /* Reserve space for future interface changes */
64 int ispare[5];
66};
67
69{
70 int flag;
71 int flag68;
72 int flag77;
81 long num_flops;
82 int num_neg;
83 int num_sup;
84 int num_two;
86 int stat;
88 /* Reserve space for future interface changes */
89 int ispare[5];
91};
92
95 struct ma97_control_d* control
96);
97
100 int check,
101 int n,
102 const int ptr[],
103 const int row[],
104 ma97pkgtype_d_ val[],
105 void** akeep,
106 const struct ma97_control_d* control,
107 struct ma97_info_d* info,
108 int order[]
109);
110
113 int n,
114 int ne,
115 const int row[],
116 const int col[],
117 ma97pkgtype_d_ val[],
118 void** akeep,
119 const struct ma97_control_d* control,
120 struct ma97_info_d* info,
121 int order[]
122);
123
126 int matrix_type,
127 const int ptr[],
128 const int row[],
129 const ma97pkgtype_d_ val[],
130 void** akeep,
131 void** fkeep,
132 const struct ma97_control_d* control,
133 struct ma97_info_d* info,
134 ma97realtype_d_ scale[]
135);
136
139 int matrix_type,
140 const int ptr[],
141 const int row[],
142 const ma97pkgtype_d_ val[],
143 int nrhs,
144 ma97pkgtype_d_ x[],
145 int ldx,
146 void** akeep,
147 void** fkeep,
148 const struct ma97_control_d* control,
149 struct ma97_info_d* info,
150 ma97realtype_d_ scale[]
151);
152
155 int job,
156 int nrhs,
157 ma97pkgtype_d_ x[],
158 int ldx,
159 void** akeep,
160 void** fkeep,
161 const struct ma97_control_d* control,
162 struct ma97_info_d* info
163);
164
167 void** akeep
168);
169
172 void** fkeep
173);
174
177 void** akeep,
178 void** fkeep
179);
180
183 void** akeep,
184 void** fkeep,
185 const struct ma97_control* control,
186 struct ma97_info* info,
188);
189
192 void** akeep,
193 void** fkeep,
194 const struct ma97_control* control,
195 struct ma97_info* info,
196 int* piv_order,
198);
199
202 const ma97pkgtype_d_ d[],
203 void** akeep,
204 void** fkeep,
205 const struct ma97_control* control,
206 struct ma97_info* info
207);
208
211 int nrhs,
212 int flag_out[],
213 ma97pkgtype_d_ x[],
214 int ldx,
215 void** akeep,
216 void** fkeep,
217 const struct ma97_control* control,
218 struct ma97_info* info
219);
220
223 int trans,
224 int k,
225 const ma97pkgtype_d_ x[],
226 int ldx,
227 ma97pkgtype_d_ y[],
228 int ldy,
229 void** akeep,
230 void** fkeep,
231 const struct ma97_control_d* control,
232 struct ma97_info_d* info
233);
234
237 int nbi,
238 const int bindex[],
239 const ma97pkgtype_d_ b[],
240 const int order[],
241 int* nxi,
242 int xindex[],
243 ma97pkgtype_d_ x[],
244 void** akeep,
245 void** fkeep,
246 const struct ma97_control_d* control,
247 struct ma97_info_d* info
248);
249
250#endif
double ma97pkgtype_d_
Definition: hsl_ma97d.h:31
double ma97realtype_d_
Definition: hsl_ma97d.h:32
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.
void ma97_finalise_d(void **akeep, void **fkeep)
Free memory in akeep and fkeep.
void ma97_free_akeep_d(void **akeep)
Free memory in akeep.
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.
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.
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.
void ma97_default_control_d(struct ma97_control_d *control)
Set default values of control.
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)
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.
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.
#define ma97_control
Definition: hsl_ma97d.h:12
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.
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_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.
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.
int f_arrays
Use C or Fortran numbering.
Definition: hsl_ma97d.h:36
ma97realtype_d_ rspare[10]
Definition: hsl_ma97d.h:65
ma97realtype_d_ multiplier
Amount of extra memory to allow for delays.
Definition: hsl_ma97d.h:39
int ordering
Control scaling algorithm used:
Definition: hsl_ma97d.h:49
int action
Continue on singularity if !=0 (true), otherwise abort.
Definition: hsl_ma97d.h:37
int scaling
0 user/none, 1 mc64, 2 mc77
Definition: hsl_ma97d.h:51
int ispare[5]
Definition: hsl_ma97d.h:64
long solve_min
Min number of entries for parallel execution.
Definition: hsl_ma97d.h:59
int solve_blas3
Use BLAS3 in solve in true, else BLAS2.
Definition: hsl_ma97d.h:58
ma97realtype_d_ small
Minimum value to count as non-zero.
Definition: hsl_ma97d.h:52
int solve_mf
If true use m/f solve, else use s/n.
Definition: hsl_ma97d.h:60
ma97realtype_d_ u
Pivoting parameter.
Definition: hsl_ma97d.h:53
long factor_min
Min number of flops for parallel execution.
Definition: hsl_ma97d.h:57
int unit_warning
Fortran unit for warning msgs (<0 disables)
Definition: hsl_ma97d.h:56
ma97realtype_d_ consist_tol
Consistent equation tolerance.
Definition: hsl_ma97d.h:61
int unit_error
Fortran unit for error msgs (<0 disables)
Definition: hsl_ma97d.h:55
int nemin
Supernode amalgamation if parent and child have fewer than nemin eliminations.
Definition: hsl_ma97d.h:38
int unit_diagnostics
Fortran unit for diagnostics (<0 disables)
Definition: hsl_ma97d.h:54
int print_level
<0 for no printing, 0 for basic, >1 for most
Definition: hsl_ma97d.h:50
long num_factor
number of entries in L
Definition: hsl_ma97d.h:80
int stat
error code from failed memory allocation
Definition: hsl_ma97d.h:86
int ispare[5]
Definition: hsl_ma97d.h:89
int flag68
Definition: hsl_ma97d.h:71
long num_flops
number of floating point operations
Definition: hsl_ma97d.h:81
int matrix_outrange
number of out of range entries in A
Definition: hsl_ma97d.h:75
int flag
<0 on error
Definition: hsl_ma97d.h:70
int flag77
Definition: hsl_ma97d.h:72
int matrix_dup
number duplicate entries in A
Definition: hsl_ma97d.h:73
int num_neg
number of negative pivots
Definition: hsl_ma97d.h:82
int ordering
ordering used (as per control.ordering)
Definition: hsl_ma97d.h:85
int maxfront
maximum dimension of frontal matrix
Definition: hsl_ma97d.h:78
int maxdepth
height of assembly tree
Definition: hsl_ma97d.h:77
int matrix_rank
matrix rank
Definition: hsl_ma97d.h:74
int num_sup
number of supernodes in assembly tree
Definition: hsl_ma97d.h:83
int matrix_missing_diag
number of zero diagonal entries in A
Definition: hsl_ma97d.h:76
int num_two
number of 2x2 pivots
Definition: hsl_ma97d.h:84
int num_delay
number of times a pivot was delayed
Definition: hsl_ma97d.h:79
ma97realtype_d_ rspare[10]
Definition: hsl_ma97d.h:90