Ipopt
3.12.12
Main Page
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
src
Algorithm
LinearSolvers
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
Generated on Sun Nov 18 2018 03:31:52 for Ipopt by
1.8.5