Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hsl_mc68i.h
Go to the documentation of this file.
1 /*
2 * COPYRIGHT (c) 2011, 2013 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_MC68I_H
10 #define HSL_MC68I_H
11
12 #include "IpoptConfig.h"
13 #ifdef COIN_HAS_HSL
14 #include "CoinHslConfig.h"
15 #endif
16
17 /* if we do not have MC68, we assume its is loaded via the linear solver loader, for which we assume HSL 2013 */
18 #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MC68)
19 #ifndef mc68_default_control
20 #define mc68_control mc68_control_i
21 #define mc68_info mc68_info_i
22 #define mc68_default_control mc68_default_control_i
23 #define mc68_order mc68_order_i
24 #endif
25 #endif
26
27 struct mc68_control {
28 /* Extra options for C version */
29 int f_array_in; /* 0 for C array indexing, 1 for Fortran indexing */
30 int f_array_out; /* 0 for C array indexing, 1 for Fortran indexing
31 * NOTE: 2x2 pivot information discarded if C indexing
32 * is used for output! */
33 #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MC68)
34 long min_l_workspace; /* Initial size of workspace, as argument in Fortran */
35 #else
36 int min_l_workspace; /* Initial size of workspace, as argument in Fortran */
37 #endif
38 /* Options from Fortran version */
39 int lp; /* stream number for error messages */
40 int wp; /* stream number for warning messages */
41 int mp; /* stream number for diagnostic messages */
42 int nemin; /* stream number for diagnostic messages */
43 int print_level; /* amount of informational output required */
44 int row_full_thresh; /* percentage threshold for full row */
45 int row_search; /* Number of rows searched for pivot with ord=6 */
46 };
47
48 struct mc68_info {
49 int flag; /* error/warning flag */
50 int iostat; /* holds Fortran iostat parameter */
51 int stat; /* holds Fortran stat parameter */
52 int out_range; /* holds number of out of range entries ignored */
53 int duplicate; /* holds number of duplicate entries */
54 int n_compressions; /* holds number of compressions in order */
55 int n_zero_eigs; /* holds the number of zero eigs from ma47 */
56 #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MC68)
57 long l_workspace; /* holds length of workspace iw used in order */
58 #else
59 int l_workspace; /* holds length of workspace iw used in order */
60 #endif
61 int zb01_info; /* holds flag from zb01_expand1 call */
62 int n_dense_rows; /* holds number of dense rows from amdd */
63 };
64
65 /* Set default values for control struct */
66 void mc68_default_control(struct mc68_control *control);
67 /* Perform ordering */
68 void mc68_order(int ord, int n, const int ptr[], const int row[],
69 int perm[], const struct mc68_control *control, struct mc68_info *info);
70
71 #endif
mc68_control::f_array_out
int f_array_out
Definition: hsl_mc68i.h:30
mc68_info::l_workspace
long l_workspace
Definition: hsl_mc68i.h:57
mc68_control::row_search
int row_search
Definition: hsl_mc68i.h:45
mc68_info::out_range
int out_range
Definition: hsl_mc68i.h:52
mc68_control::lp
int lp
Definition: hsl_mc68i.h:39
mc68_control::mp
int mp
Definition: hsl_mc68i.h:41
mc68_control::min_l_workspace
long min_l_workspace
Definition: hsl_mc68i.h:34
mc68_info::zb01_info
int zb01_info
Definition: hsl_mc68i.h:61
mc68_order
#define mc68_order
Definition: hsl_mc68i.h:23
mc68_control::print_level
int print_level
Definition: hsl_mc68i.h:43
mc68_control::f_array_in
int f_array_in
Definition: hsl_mc68i.h:29
mc68_control::nemin
int nemin
Definition: hsl_mc68i.h:42
mc68_info::stat
int stat
Definition: hsl_mc68i.h:51
mc68_info::n_zero_eigs
int n_zero_eigs
Definition: hsl_mc68i.h:55
IpoptConfig.h
mc68_info::n_compressions
int n_compressions
Definition: hsl_mc68i.h:54
mc68_info
Definition: hsl_mc68i.h:48
mc68_info::iostat
int iostat
Definition: hsl_mc68i.h:50
mc68_info::n_dense_rows
int n_dense_rows
Definition: hsl_mc68i.h:62
mc68_control
Definition: hsl_mc68i.h:27
mc68_info::duplicate
int duplicate
Definition: hsl_mc68i.h:53
mc68_control::row_full_thresh
int row_full_thresh
Definition: hsl_mc68i.h:44
mc68_info::flag
int flag
Definition: hsl_mc68i.h:49
mc68_control::wp
int wp
Definition: hsl_mc68i.h:40
mc68_default_control
#define mc68_default_control
Definition: hsl_mc68i.h:22