Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hsl_ma86d.h
Go to the documentation of this file.
1 /*
2 * COPYRIGHT (c) 2011 Science and Technology Facilities Council (STFC)
3 * All Rights Reserved.
4 * This code is published under the Eclipse Public License.
5 *
6 * Authors: Jonathan Hogg STFC 2011-02-25
7 */
8
9 #ifndef HSL_MA86D_H
10 #define HSL_MA86D_H
11
12 #ifndef ma86_default_control
13 #define ma86_control ma86_control_d
14 #define ma86_info ma86_info_d
15 #define ma86_default_control ma86_default_control_d
16 #define ma86_analyse ma86_analyse_d
17 #define ma86_factor ma86_factor_d
18 #define ma86_factor_solve ma86_factor_solve_d
19 #define ma86_solve ma86_solve_d
20 #define ma86_finalise ma86_finalise_d
21 #endif
22
23 typedef double ma86pkgtype_d_;
24 typedef double ma86realtype_d_;
25
26 /* Data type for user controls */
27 struct ma86_control_d {
28 /* Note: 0 is false, non-zero is true */
29
30 /* C/Fortran interface related controls */
31 int f_arrays; /* Treat arrays as 1-based (Fortran) if true or 0-based (C) if
32 false. */
33
34 /* Printing controls */
35 int diagnostics_level; /* Controls diagnostic printing.*/
36 /* Possible values are:
37 < 0: no printing.
38 0: error and warning messages only.
39 1: as 0 plus basic diagnostic printing.
40 2: as 1 plus some more detailed diagnostic messages.
41 3: as 2 plus all entries of user-supplied arrays. */
42 int unit_diagnostics; /* unit for diagnostic messages
43 Printing is suppressed if unit_diagnostics < 0. */
44 int unit_error; /* unit for error messages
45 Printing is suppressed if unit_error < 0. */
46 int unit_warning; /* unit for warning messages
47 Printing is suppressed if unit_warning < 0. */
48
49 /* Controls used by ma86_analyse */
50 int nemin; /* Node amalgamation parameter. A child node is merged with its
51 parent if they both involve fewer than nemin eliminations.*/
52 int nb; /* Controls the size of the blocks used within each node (used to
53 set nb within node_type)*/
54
55 /* Controls used by ma86_factor and ma86_factor_solve */
56 int action; /* Keep going even if matrix is singular if true, or abort
57 if false */
58 int nbi; /* Inner block size for use with ma64*/
59 int pool_size; /* Size of task pool arrays*/
60 ma86realtype_d_ small_; /* Pivots less than small are treated as zero*/
61 ma86realtype_d_ static_;/* Control static pivoting*/
62 ma86realtype_d_ u; /* Pivot tolerance*/
63 ma86realtype_d_ umin; /* Minimum pivot tolerance*/
64 int scaling; /* Scaling algorithm to use */
65 };
66
67 /***************************************************/
68
69 /* data type for returning information to user.*/
70 struct ma86_info_d {
71 ma86realtype_d_ detlog; /* Holds logarithm of abs det A (or 0) */
72 int detsign; /* Holds sign of determinant (+/-1 or 0) */
73 int flag; /* Error return flag (0 on success) */
74 int matrix_rank; /* Rank of matrix */
75 int maxdepth; /* Maximum depth of the tree. */
76 int num_delay; /* Number of delayed pivots */
77 long num_factor; /* Number of entries in the factor. */
78 long num_flops; /* Number of flops for factor. */
79 int num_neg; /* Number of negative pivots */
80 int num_nodes; /* Number of nodes */
81 int num_nothresh; /* Number of pivots not satisfying u */
82 int num_perturbed; /* Number of perturbed pivots */
83 int num_two; /* Number of 2x2 pivots */
84 int pool_size; /* Maximum size of task pool used */
85 int stat; /* STAT value on error return -1. */
86 ma86realtype_d_ usmall; /* smallest threshold parameter used */
87 };
88
89 /* Initialise control with default values */
90 void ma86_default_control_d(struct ma86_control_d *control);
91 /* Analyse the sparsity pattern and prepare for factorization */
92 void ma86_analyse_d(const int n, const int ptr[], const int row[], int order[],
93 void **keep, const struct ma86_control_d *control,
94 struct ma86_info_d *info);
95 /* To factorize the matrix */
96 void ma86_factor_d(const int n, const int ptr[], const int row[],
97 const ma86pkgtype_d_ val[], const int order[], void **keep,
98 const struct ma86_control_d *control, struct ma86_info_d *info,
99 const ma86realtype_d_ scale[]);
100 /* To factorize the matrix AND solve AX = B */
101 void ma86_factor_solve_d(const int n, const int ptr[], const int row[],
102 const ma86pkgtype_d_ val[], const int order[], void **keep,
103 const struct ma86_control_d *control, struct ma86_info_d *info,
104 const int nrhs, const int ldx, ma86pkgtype_d_ x[],
105 const ma86realtype_d_ scale[]);
106 /* To solve AX = B using the computed factors */
107 void ma86_solve_d(const int job, const int nrhs, const int ldx,
108 ma86pkgtype_d_ *x, const int order[], void **keep,
109 const struct ma86_control_d *control, struct ma86_info_d *info,
110 const ma86realtype_d_ scale[]);
111 /* To clean up memory in keep */
112 void ma86_finalise_d(void **keep, const struct ma86_control_d *control);
113
114 #endif
x
Number * x
Input: Starting point Output: Optimal solution.
Definition: IpStdCInterface.h:238
ma86_control_d::scaling
int scaling
Definition: hsl_ma86d.h:64
ma86_info_d::maxdepth
int maxdepth
Definition: hsl_ma86d.h:75
ma86_control_d::unit_error
int unit_error
Definition: hsl_ma86d.h:44
ma86_info_d::num_delay
int num_delay
Definition: hsl_ma86d.h:76
ma86_control_d::umin
ma86realtype_d_ umin
Definition: hsl_ma86d.h:63
ma86_solve_d
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[])
ma86_info_d::num_two
int num_two
Definition: hsl_ma86d.h:83
ma86_control_d::small_
ma86realtype_d_ small_
Definition: hsl_ma86d.h:60
ma86_control_d::u
ma86realtype_d_ u
Definition: hsl_ma86d.h:62
ma86_factor_solve_d
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[])
val
char char * val
Definition: IpStdCInterface.h:189
ma86_control_d::f_arrays
int f_arrays
Definition: hsl_ma86d.h:31
ma86_default_control_d
void ma86_default_control_d(struct ma86_control_d *control)
ma86_factor_d
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[])
ma86_control_d::nb
int nb
Definition: hsl_ma86d.h:52
ma86_info_d
Definition: hsl_ma86d.h:70
ma86_control_d::unit_diagnostics
int unit_diagnostics
Definition: hsl_ma86d.h:42
ma86_control_d::nbi
int nbi
Definition: hsl_ma86d.h:58
ma86realtype_d_
double ma86realtype_d_
Definition: hsl_ma86d.h:24
ma86_control_d
Definition: hsl_ma86d.h:27
ma86_info_d::pool_size
int pool_size
Definition: hsl_ma86d.h:84
ma86_info_d::num_nothresh
int num_nothresh
Definition: hsl_ma86d.h:81
ma86_info_d::num_flops
long num_flops
Definition: hsl_ma86d.h:78
ma86_control_d::unit_warning
int unit_warning
Definition: hsl_ma86d.h:46
ma86_control_d::diagnostics_level
int diagnostics_level
Definition: hsl_ma86d.h:35
ma86pkgtype_d_
double ma86pkgtype_d_
Definition: hsl_ma86d.h:23
ma86_finalise_d
void ma86_finalise_d(void **keep, const struct ma86_control_d *control)
ma86_info_d::detlog
ma86realtype_d_ detlog
Definition: hsl_ma86d.h:71
ma86_info_d::matrix_rank
int matrix_rank
Definition: hsl_ma86d.h:74
ma86_info_d::num_perturbed
int num_perturbed
Definition: hsl_ma86d.h:82
ma86_analyse_d
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)
ma86_info_d::flag
int flag
Definition: hsl_ma86d.h:73
ma86_info_d::detsign
int detsign
Definition: hsl_ma86d.h:72
ma86_info_d::num_neg
int num_neg
Definition: hsl_ma86d.h:79
ma86_control_d::static_
ma86realtype_d_ static_
Definition: hsl_ma86d.h:61
ma86_control_d::pool_size
int pool_size
Definition: hsl_ma86d.h:59
ma86_control_d::nemin
int nemin
Definition: hsl_ma86d.h:50
ma86_info_d::stat
int stat
Definition: hsl_ma86d.h:85
ma86_info_d::num_factor
long num_factor
Definition: hsl_ma86d.h:77
ma86_info_d::usmall
ma86realtype_d_ usmall
Definition: hsl_ma86d.h:86
ma86_info_d::num_nodes
int num_nodes
Definition: hsl_ma86d.h:80
ma86_control_d::action
int action
Definition: hsl_ma86d.h:56