annotate liboctave/ODESSA.h @ 4665:dece11da64ed ss-2-1-52

[project @ 2003-11-25 15:37:32 by jwe]
author jwe
date Tue, 25 Nov 2003 15:37:32 +0000
parents 1032fb9ec0d1
children e35b034d3523
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3984
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
1 /*
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
2
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
3 Copyright (C) 2002 John W. Eaton
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
4
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
6
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
10 later version.
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
11
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
15 for more details.
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
16
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
20
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
21 */
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
22
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
23 #if !defined (octave_ODESSA_h)
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
24 #define octave_ODESSA_h 1
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
25
4192
5719210fff4c [project @ 2002-11-20 16:56:47 by jwe]
jwe
parents: 4066
diff changeset
26 #if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)
3984
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
27 #pragma interface
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
28 #endif
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
29
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
30 #include <cfloat>
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
31 #include <cmath>
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
32
3998
f6df65db67f9 [project @ 2002-07-24 18:10:39 by jwe]
jwe
parents: 3997
diff changeset
33 #include "ODESSA-opts.h"
3984
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
34
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
35 class
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
36 ODESSA_result
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
37 {
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
38 public:
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
39
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
40 ODESSA_result (void) { }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
41
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
42 ODESSA_result (const Matrix& xx,
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
43 const Array<Matrix>& xx_s)
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
44
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
45 : x (xx), x_s (xx_s) { }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
46
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
47 ODESSA_result (const ODESSA_result& r)
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
48 : x (r.x), x_s (r.x_s) { }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
49
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
50 ODESSA_result& operator = (const ODESSA_result& r)
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
51 {
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
52 if (this != &r)
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
53 {
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
54 x = r.x;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
55 x_s = r.x_s;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
56 }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
57 return *this;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
58 }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
59
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
60 ~ODESSA_result (void) { }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
61
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
62 Matrix state (void) const { return x; }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
63 Array<Matrix> state_sensitivity (void) const { return x_s; }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
64
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
65 private:
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
66
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
67 Matrix x;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
68 Array<Matrix> x_s;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
69 };
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
70
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
71 class
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
72 ODESSA : public ODES, public ODESSA_options
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
73 {
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
74 public:
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
75
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
76 ODESSA (void);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
77
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
78 ODESSA (const ColumnVector& x, double time, ODESFunc& f);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
79
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
80 ODESSA (const ColumnVector& x, const ColumnVector& theta,
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
81 const Matrix& sensitivity_guess, double time, ODESFunc& f);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
82
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
83 ~ODESSA (void) { }
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
84
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
85 ODESSA_result integrate (const ColumnVector& tout);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
86
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
87 ODESSA_result integrate (const ColumnVector& tout,
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
88 const ColumnVector& tcrit);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
89
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
90 std::string error_message (void) const;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
91
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
92 private:
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
93
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
94 bool initialized;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
95
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
96 bool sanity_checked;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
97
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
98 int liw;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
99 int lrw;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
100 int method_flag;
4231
1032fb9ec0d1 [project @ 2002-12-19 19:58:29 by jwe]
jwe
parents: 4192
diff changeset
101 int maxord;
3984
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
102 Array<int> iwork;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
103 Array<double> rwork;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
104 int itask;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
105 Array<int> iopt;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
106 int isopt;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
107
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
108 Array<int> neq;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
109
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
110 int n;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
111 int npar;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
112
4049
a35a3c5d4740 [project @ 2002-08-16 08:54:31 by jwe]
jwe
parents: 4044
diff changeset
113 // XXX FIXME XXX -- ???
3984
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
114 Array<double> par;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
115
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
116 Matrix sx0;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
117
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
118 Matrix y;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
119
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
120 double *py;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
121 double *ppar;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
122 int *piwork;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
123 int *piopt;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
124 int *pneq;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
125 double *prwork;
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
126
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
127 void init_work_size (int);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
128
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
129 void integrate (double t);
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
130 };
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
131
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
132 #endif
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
133
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
134 /*
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
135 ;;; Local Variables: ***
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
136 ;;; mode: C++ ***
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
137 ;;; End: ***
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents:
diff changeset
138 */