Ipopt Documentation  
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 
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  long 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
void mc68_default_control_i(struct mc68_control *control)
int n_compressions
Definition: hsl_mc68i.h:73
long min_l_workspace
Definition: hsl_mc68i.h:56
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)
long l_workspace
Definition: hsl_mc68i.h:75
int zb01_info
Definition: hsl_mc68i.h:76
int row_full_thresh
Definition: hsl_mc68i.h:63
int duplicate
Definition: hsl_mc68i.h:72
int n_dense_rows
Definition: hsl_mc68i.h:77
int n_zero_eigs
Definition: hsl_mc68i.h:74
int iostat
Definition: hsl_mc68i.h:69
#define mc68_control
Definition: hsl_mc68i.h:44
int out_range
Definition: hsl_mc68i.h:71