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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1202 - (hide annotations) (download) (as text)
Mon Jan 22 13:37:33 2007 UTC (17 years, 7 months ago) by johnpye
File MIME type: text/x-chdr
File size: 2638 byte(s)
Rearranged doxygen groups so that stuff that just deals with slv_system_t is in a module called 'system'.
1 jds 54 /*
2     * SLV type definition for ASCEND solvers
3 aw0a 1 * SLV: Ascend Nonlinear Solver
4     * by Benjamin Andrew Allan
5     * Created: 6/1/96
6     * Version: $Revision: 1.4 $
7     * Version control file: $RCSfile: slv_types.h,v $
8     * Date last modified: $Date: 1997/07/18 12:17:21 $
9     * Last modified by: $Author: mthomas $
10     *
11     * This file is part of the SLV solver.
12     *
13     * Copyright (C) 1996 Benjamin Andrew Allan
14 jds 54 *
15 aw0a 1 * 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    
31 jds 54 /** @file
32 johnpye 709 Type definitions as they should be seen by solver engines.
33 aw0a 1
34 johnpye 709 We're trying to hide the implementation detail from the solver engines,
35     to force them to use the API defined in slv_common.h, slv_client.h, etc.
36    
37     Requires: (none)
38     *//*
39     by Ben Allan
40     06/96 - original version
41     */
42    
43 johnpye 67 #ifndef ASC_SLV_TYPES_H
44     #define ASC_SLV_TYPES_H
45 aw0a 1
46 johnpye 1202 /** @addtogroup system System
47 johnpye 1066 @{
48     */
49    
50 aw0a 1 typedef void *SlvBackendToken;
51 jds 54 /**<
52 johnpye 709 Backends that provide the residuals, gradients, and so forth
53     may be object-oriented and associate some sort of pointer
54     with each of the variables or relations they are serving up.
55 aw0a 1
56 johnpye 709 <b>In the case of ASCEND, a SlvBackendToken is simply a pointer to an
57     Instance structure.</b>
58    
59     Since we want the Slv interface to appear totally backend
60     independent (in particular because it is convenient), we
61     define our interface in terms of SlvBackendTokens.
62     Any backend can be connected by an appropriate set of
63     routines conforming to the headers of slv_*, rel.h, var.h
64     and system.h.
65    
66     We haven't yet been able to think through the possibilities of
67     having multiple backends operating _simultaneously_, mainly
68     because the ASCEND backend is quite capable of wrapping all
69     the other backends we can think of.
70     */
71    
72 aw0a 1 typedef struct slv_system_structure *slv_system_t;
73 jds 54 /**<
74 johnpye 709 This is the handle which should be used in all of the functions
75     in slv and system to reference a mathematical problem.
76     */
77 jds 54
78 johnpye 1066 /* @} */
79    
80 johnpye 67 #endif /* ASC_SLV_TYPES_H */
81 jds 54

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