Ipopt 3.11.9
Loading...
Searching...
No Matches
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
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
48struct 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 */
66void mc68_default_control(struct mc68_control *control);
67/* Perform ordering */
68void 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
#define mc68_order
Definition hsl_mc68i.h:23
#define mc68_default_control
Definition hsl_mc68i.h:22
int f_array_out
Definition hsl_mc68i.h:30
long min_l_workspace
Definition hsl_mc68i.h:34
int row_full_thresh
Definition hsl_mc68i.h:44
int print_level
Definition hsl_mc68i.h:43
int out_range
Definition hsl_mc68i.h:52
int zb01_info
Definition hsl_mc68i.h:61
int n_compressions
Definition hsl_mc68i.h:54
long l_workspace
Definition hsl_mc68i.h:57
int n_zero_eigs
Definition hsl_mc68i.h:55
int n_dense_rows
Definition hsl_mc68i.h:62
int duplicate
Definition hsl_mc68i.h:53
int iostat
Definition hsl_mc68i.h:50