Ipopt Documentation
Loading...
Searching...
No Matches
hsl_mc68i.h
Go to the documentation of this file.
1
/*
2
* COPYRIGHT (c) 2011 Science and Technology Facilities Council (STFC)
3
* Original date 2 March 2011
4
* All rights reserved
5
*
6
* Written by: Jonathan Hogg
7
*
8
* THIS FILE ONLY may be redistributed under the below modified BSD licence.
9
* All other files distributed as part of the HSL_MC68 package
10
* require a licence to be obtained from STFC and may NOT be redistributed
11
* without permission. Please refer to your licence for HSL_MC68 for full terms
12
* and conditions. STFC may be contacted via hsl(at)stfc.ac.uk.
13
*
14
* Modified BSD licence (this header file only):
15
*
16
* Redistribution and use in source and binary forms, with or without
17
* modification, are permitted provided that the following conditions are met:
18
* * Redistributions of source code must retain the above copyright
19
* notice, this list of conditions and the following disclaimer.
20
* * Redistributions in binary form must reproduce the above copyright
21
* notice, this list of conditions and the following disclaimer in the
22
* documentation and/or other materials provided with the distribution.
23
* * Neither the name of STFC nor the names of its contributors may be used
24
* to endorse or promote products derived from this software without
25
* specific prior written permission.
26
*
27
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30
* ARE DISCLAIMED. IN NO EVENT SHALL STFC BE LIABLE FOR ANY DIRECT, INDIRECT,
31
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
33
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
36
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
*
38
*/
39
40
#ifndef HSL_MC68I
41
#define HSL_MC68I
42
43
#ifndef mc68_default_control
44
#define mc68_control mc68_control_i
45
#define mc68_info mc68_info_i
46
#define mc68_default_control mc68_default_control_i
47
#define mc68_order mc68_order_i
48
#endif
49
50
struct
mc68_control_i
{
51
/* Extra options for C version */
52
int
f_array_in
;
/* 0 for C array indexing, 1 for Fortran indexing */
53
int
f_array_out
;
/* 0 for C array indexing, 1 for Fortran indexing
54
* NOTE: 2x2 pivot information discarded if C indexing
55
* is used for output! */
56
int
min_l_workspace
;
/* Initial size of workspace, as argument in Fortran */
57
/* Options from Fortran version */
58
int
lp
;
/* stream number for error messages */
59
int
wp
;
/* stream number for warning messages */
60
int
mp
;
/* stream number for diagnostic messages */
61
int
nemin
;
/* stream number for diagnostic messages */
62
int
print_level
;
/* amount of informational output required */
63
int
row_full_thresh
;
/* percentage threshold for full row */
64
int
row_search
;
/* Number of rows searched for pivot with ord=6 */
65
};
66
67
struct
mc68_info_i
{
68
int
flag
;
/* error/warning flag */
69
int
iostat
;
/* holds Fortran iostat parameter */
70
int
stat
;
/* holds Fortran stat parameter */
71
int
out_range
;
/* holds number of out of range entries ignored */
72
int
duplicate
;
/* holds number of duplicate entries */
73
int
n_compressions
;
/* holds number of compressions in order */
74
int
n_zero_eigs
;
/* holds the number of zero eigs from ma47 */
75
long
l_workspace
;
/* holds length of workspace iw used in order */
76
int
zb01_info
;
/* holds flag from zb01_expand1 call */
77
int
n_dense_rows
;
/* holds number of dense rows from amdd */
78
};
79
80
/* Set default values for control struct */
81
void
mc68_default_control_i
(
struct
mc68_control
*control);
82
/* Perform ordering */
83
void
mc68_order_i
(
int
ord,
int
n,
const
int
ptr[],
const
int
row[],
84
int
perm[],
const
struct
mc68_control_i
*control,
struct
mc68_info_i
*info);
85
86
#endif
mc68_default_control_i
void mc68_default_control_i(struct mc68_control *control)
mc68_order_i
void mc68_order_i(int ord, int n, const int ptr[], const int row[], int perm[], const struct mc68_control_i *control, struct mc68_info_i *info)
mc68_control
#define mc68_control
Definition
hsl_mc68i.h:44
mc68_control_i
Definition
hsl_mc68i.h:50
mc68_control_i::mp
int mp
Definition
hsl_mc68i.h:60
mc68_control_i::lp
int lp
Definition
hsl_mc68i.h:58
mc68_control_i::row_search
int row_search
Definition
hsl_mc68i.h:64
mc68_control_i::min_l_workspace
int min_l_workspace
Definition
hsl_mc68i.h:56
mc68_control_i::print_level
int print_level
Definition
hsl_mc68i.h:62
mc68_control_i::row_full_thresh
int row_full_thresh
Definition
hsl_mc68i.h:63
mc68_control_i::f_array_out
int f_array_out
Definition
hsl_mc68i.h:53
mc68_control_i::nemin
int nemin
Definition
hsl_mc68i.h:61
mc68_control_i::wp
int wp
Definition
hsl_mc68i.h:59
mc68_control_i::f_array_in
int f_array_in
Definition
hsl_mc68i.h:52
mc68_info_i
Definition
hsl_mc68i.h:67
mc68_info_i::duplicate
int duplicate
Definition
hsl_mc68i.h:72
mc68_info_i::zb01_info
int zb01_info
Definition
hsl_mc68i.h:76
mc68_info_i::flag
int flag
Definition
hsl_mc68i.h:68
mc68_info_i::stat
int stat
Definition
hsl_mc68i.h:70
mc68_info_i::iostat
int iostat
Definition
hsl_mc68i.h:69
mc68_info_i::n_zero_eigs
int n_zero_eigs
Definition
hsl_mc68i.h:74
mc68_info_i::out_range
int out_range
Definition
hsl_mc68i.h:71
mc68_info_i::n_dense_rows
int n_dense_rows
Definition
hsl_mc68i.h:77
mc68_info_i::n_compressions
int n_compressions
Definition
hsl_mc68i.h:73
mc68_info_i::l_workspace
long l_workspace
Definition
hsl_mc68i.h:75