/[ascend]/trunk/base/generic/solver/slv2.h
ViewVC logotype

Annotation of /trunk/base/generic/solver/slv2.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 466 - (hide annotations) (download) (as text)
Sun Apr 16 15:07:48 2006 UTC (19 years, 7 months ago) by johnpye
File MIME type: text/x-chdr
File size: 4317 byte(s)
Rolled back revision 451, since the DLL loading issue on Windows is now resolved.
Fixed up some #ifdef brackets in slv*.h headers.
Added NSIS functionality to SConstruct file
Renamed default installer to 'ascend-setup.exe' pending a more clever approach to version numbers.
1 jds 54 /*
2 aw0a 1 * SLV: Ascend Numeric Solver
3     * by Karl Michael Westerberg
4     * Created: 2/6/90
5     * Version: $Revision: 1.8 $
6     * Version control file: $RCSfile: slv2.h,v $
7     * Date last modified: $Date: 1997/07/18 12:16:05 $
8     * Last modified by: $Author: mthomas $
9     *
10     * This file is part of the SLV solver.
11     *
12     * Copyright (C) 1990 Karl Michael Westerberg
13     * Copyright (C) 1994 Joseph Zaher, Benjamin Andrew Allan
14     *
15     * The SLV solver is free software; you can redistribute
16     * it and/or modify it under the terms of the GNU General Public License as
17     * published by the Free Software Foundation; either version 2 of the
18     * License, or (at your option) any later version.
19     *
20     * The SLV solver is distributed in hope that it will be
21     * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
22     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23     * General Public License for more details.
24     *
25     * You should have received a copy of the GNU General Public License along with
26     * the program; if not, write to the Free Software Foundation, Inc., 675
27     * Mass Ave, Cambridge, MA 02139 USA. Check the file named COPYING.
28     * COPYING is found in ../compiler.
29     */
30 jds 54
31     /** @file
32     * Opt solver registration module.
33     * <pre>
34     * Contents: OPT module
35     *
36     * Requires: #include "utilities/ascConfig.h"
37     * #include "slv_client.h"
38     * </pre>
39     * @todo Remove deprecated declarations from solver/slv2.h.
40     */
41    
42 johnpye 466 #ifndef ASC_SLV2_H
43     #define ASC_SLV2_H
44 aw0a 1
45     typedef struct slv2_system_structure *slv2_system_t;
46    
47 jds 54 int slv2_register(SlvFunctionsT *sft);
48     /**<
49 jds 59 * Registration function for the Opt solver.
50 jds 54 * This is the function that tells the system about the Opt solver.
51     * Our index is not necessarily going to be 2. That everything here is
52     * named slv2* is just a historical event.
53 jds 59 *
54     * @param sft SlvFunctionsT to receive the solver registration info.
55     * @return Returns non-zero on error (e.g. f == NULL), zero if all is ok.
56 jds 54 */
57 aw0a 1
58 johnpye 466 #endif /* ASC_SLV2_H */
59 aw0a 1
60 jds 54 /**< REMOVE EVERYTHING BELOW THIS POINT */
61     # if 0
62 aw0a 1 /*********************************************************************
63     This file created by make_slv_header, so don't modify it yourself.
64     All functions defined in this header have identical protocols to the
65     corresponding functions in slv.h except that slv_system_t ==>
66     slv2_system_t and slv2_eligible_solver() only takes one parameter:
67     the system. Note also that the select solver functions don't exist.
68     *********************************************************************/
69    
70     typedef struct slv2_system_structure *slv2_system_t;
71    
72     #ifdef STATIC_OPTSQP
73 ben.allan 33 #define slv2_solver_name "OPT" /**< Solver's name */
74     #define slv2_solver_number 2 /**< Solver's number */
75 aw0a 1
76     extern slv2_system_t slv2_create();
77 ben.allan 33 extern int slv2_destroy(); /**< note error return needs to be implemented */
78 aw0a 1 extern void slv2_set_rel_list();
79     extern struct rel_relation **slv2_get_rel_list();
80     extern void slv2_set_extrel_list();
81     extern struct ExtRelCache **slv2_get_extrel_list();
82     extern void slv2_set_var_list();
83     extern struct var_variable **slv2_get_var_list();
84     extern void slv2_set_bnd_list();
85     extern bnd_boundary_t *slv2_get_bnd_list();
86     extern int slv2_count_rels();
87     extern int slv2_count_vars();
88     extern int slv2_count_bnds();
89     extern void slv2_set_obj_relation();
90     extern expr_t slv2_get_obj_relation();
91     extern boolean slv2_eligible_solver();
92     extern void slv2_get_parameters();
93     extern void slv2_set_parameters();
94     extern void slv2_get_status();
95     extern linsol_system_t slv2_get_linsol_sys();
96     extern slv2_dump_internals();
97     extern int slv2_presolve();
98     extern boolean slv2_change_basis();
99     extern void slv2_resolve();
100     extern void slv2_iterate();
101     extern void slv2_solve();
102    
103 ben.allan 33 /**< the following will be stomped on by make_slvheaders. beware. */
104 aw0a 1 #define slv2_IA_SIZE 9
105     #define slv2_RA_SIZE 2
106     #define slv2_CA_SIZE 0
107     #define slv2_VA_SIZE 0
108    
109     /*** subscripts for ia ***/
110     #define SP2_OPTION 0
111     #define SP2_ISCALE 1
112     #define SP2_ICHOOSE 2
113     #define SP2_IMULT 3
114     #define SP2_ISAFE 4
115     #define SP2_ICORR 5
116     #define SP2_KPRINT 6
117     #define SP2_IIEXACT 7
118     #define SP2_IDEBUG 8
119    
120     /*** subscripts for ra ***/
121     #define SP2_EPS 0
122     #define SP2_VV 1
123    
124     /*** subscripts for ca ***/
125    
126     /*** subscripts for va ***/
127    
128     #else
129 ben.allan 33 #define slv2_solver_name "no_opt" /**< Solver's name */
130     #define slv2_solver_number 2 /**< Solver's number */
131 aw0a 1 #endif
132    
133     #endif

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22