Ipopt Documentation  
hsl_ma86d.h
Go to the documentation of this file.
1 /* COPYRIGHT (c) 2011 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 2011-02-25
6  */
7 
8 #ifndef HSL_MA86D_H
9 #define HSL_MA86D_H
10 
11 #ifndef ma86_default_control
12 #define ma86_control ma86_control_d
13 #define ma86_info ma86_info_d
14 #define ma86_default_control ma86_default_control_d
15 #define ma86_analyse ma86_analyse_d
16 #define ma86_factor ma86_factor_d
17 #define ma86_factor_solve ma86_factor_solve_d
18 #define ma86_solve ma86_solve_d
19 #define ma86_finalise ma86_finalise_d
20 #endif
21 
22 typedef double ma86pkgtype_d_;
23 typedef double ma86realtype_d_;
24 
30 {
35  int f_arrays;
75  int nemin;
76  /* Controls the size of the blocks used within each node (used to set nb within node_type
77  */
78  int nb;
85  int action;
87  int nbi;
89  int pool_size;
99  int scaling;
100 };
101 
102 /***************************************************/
103 
106 {
108  int detsign;
109  int flag;
111  int maxdepth;
112  int num_delay;
113  long num_factor;
114  long num_flops;
115  int num_neg;
116  int num_nodes;
119  int num_two;
120  int pool_size;
121  int stat;
123 };
124 
127  struct ma86_control_d* control
128 );
129 
132  const int n,
133  const int ptr[],
134  const int row[],
135  int order[],
136  void** keep,
137  const struct ma86_control_d* control,
138  struct ma86_info_d* info
139 );
140 
143  const int n,
144  const int ptr[],
145  const int row[],
146  const ma86pkgtype_d_ val[],
147  const int order[],
148  void** keep,
149  const struct ma86_control_d* control,
150  struct ma86_info_d* info,
151  const ma86realtype_d_ scale[]
152 );
153 
156  const int n,
157  const int ptr[],
158  const int row[],
159  const ma86pkgtype_d_ val[],
160  const int order[],
161  void** keep,
162  const struct ma86_control_d* control,
163  struct ma86_info_d* info,
164  const int nrhs,
165  const int ldx,
166  ma86pkgtype_d_ x[],
167  const ma86realtype_d_ scale[]
168 );
169 
172  const int job,
173  const int nrhs,
174  const int ldx,
175  ma86pkgtype_d_* x,
176  const int order[],
177  void** keep,
178  const struct ma86_control_d* control,
179  struct ma86_info_d* info,
180  const ma86realtype_d_ scale[]
181 );
182 
185  void** keep,
186  const struct ma86_control_d* control
187 );
188 
189 #endif
void ma86_factor_d(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info, const ma86realtype_d_ scale[])
To factorize the matrix.
void ma86_finalise_d(void **keep, const struct ma86_control_d *control)
To clean up memory in keep.
void ma86_analyse_d(const int n, const int ptr[], const int row[], int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info)
Analyse the sparsity pattern and prepare for factorization.
double ma86realtype_d_
Definition: hsl_ma86d.h:23
void ma86_solve_d(const int job, const int nrhs, const int ldx, ma86pkgtype_d_ *x, const int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info, const ma86realtype_d_ scale[])
To solve AX = B using the computed factors.
double ma86pkgtype_d_
Definition: hsl_ma86d.h:22
void ma86_default_control_d(struct ma86_control_d *control)
Initialise control with default values.
void ma86_factor_solve_d(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info, const int nrhs, const int ldx, ma86pkgtype_d_ x[], const ma86realtype_d_ scale[])
To factorize the matrix AND solve AX = B.
Data type for user controls.
Definition: hsl_ma86d.h:30
int diagnostics_level
Controls diagnostic printing.
Definition: hsl_ma86d.h:50
int nemin
Node amalgamation parameter.
Definition: hsl_ma86d.h:75
ma86realtype_d_ static_
Control static pivoting.
Definition: hsl_ma86d.h:93
ma86realtype_d_ u
Pivot tolerance.
Definition: hsl_ma86d.h:95
int unit_warning
unit for warning messages
Definition: hsl_ma86d.h:65
int unit_diagnostics
unit for diagnostic messages
Definition: hsl_ma86d.h:55
int unit_error
unit for error messages
Definition: hsl_ma86d.h:60
int action
Keep going even if matrix is singular if true, or abort if false.
Definition: hsl_ma86d.h:85
ma86realtype_d_ small_
Pivots less than small are treated as zero.
Definition: hsl_ma86d.h:91
int scaling
Scaling algorithm to use.
Definition: hsl_ma86d.h:99
int f_arrays
Treat arrays as 1-based (Fortran) if true or 0-based (C) if false.
Definition: hsl_ma86d.h:35
int pool_size
Size of task pool arrays.
Definition: hsl_ma86d.h:89
ma86realtype_d_ umin
Minimum pivot tolerance.
Definition: hsl_ma86d.h:97
int nbi
Inner block size for use with ma64.
Definition: hsl_ma86d.h:87
data type for returning information to user
Definition: hsl_ma86d.h:106
long num_flops
Number of flops for factor.
Definition: hsl_ma86d.h:114
int num_delay
Number of delayed pivots.
Definition: hsl_ma86d.h:112
int stat
STAT value on error return -1.
Definition: hsl_ma86d.h:121
ma86realtype_d_ usmall
smallest threshold parameter used
Definition: hsl_ma86d.h:122
int num_nodes
Number of nodes.
Definition: hsl_ma86d.h:116
int num_two
Number of 2x2 pivots.
Definition: hsl_ma86d.h:119
int matrix_rank
Rank of matrix.
Definition: hsl_ma86d.h:110
int pool_size
Maximum size of task pool used.
Definition: hsl_ma86d.h:120
int num_nothresh
Number of pivots not satisfying u.
Definition: hsl_ma86d.h:117
int num_neg
Number of negative pivots.
Definition: hsl_ma86d.h:115
int num_perturbed
Number of perturbed pivots.
Definition: hsl_ma86d.h:118
int detsign
Holds sign of determinant (+/-1 or 0)
Definition: hsl_ma86d.h:108
int maxdepth
Maximum depth of the tree.
Definition: hsl_ma86d.h:111
long num_factor
Number of entries in the factor.
Definition: hsl_ma86d.h:113
ma86realtype_d_ detlog
Holds logarithm of abs det A (or 0)
Definition: hsl_ma86d.h:107
int flag
Error return flag (0 on success)
Definition: hsl_ma86d.h:109