Mercurial > hg > octave-jordi
comparison liboctave/CollocWt.h @ 1528:dc527156c38c
[project @ 1995-10-05 01:44:18 by jwe]
author | jwe |
---|---|
date | Thu, 05 Oct 1995 01:45:30 +0000 |
parents | 611d403c7f3d |
children | 51fd6b03c3bb |
comparison
equal
deleted
inserted
replaced
1527:13d27938e778 | 1528:dc527156c38c |
---|---|
31 class ostream; | 31 class ostream; |
32 | 32 |
33 #include "dMatrix.h" | 33 #include "dMatrix.h" |
34 #include "dColVector.h" | 34 #include "dColVector.h" |
35 | 35 |
36 #ifndef Vector | |
37 #define Vector ColumnVector | |
38 #endif | |
39 | |
40 class CollocWt | 36 class CollocWt |
41 { | 37 { |
42 public: | 38 public: |
43 | 39 |
44 CollocWt (void); | 40 CollocWt::CollocWt (void) |
45 CollocWt (int ncol, int include_left, int include_right); | 41 { |
46 CollocWt (int ncol, int include_left, int include_right, double left, | 42 n = 0; |
47 double right); | 43 inc_left = 0; |
48 CollocWt (int ncol, double alpha, double beta, int include_left, | 44 inc_right = 0; |
49 int include_right); | 45 lb = 0.0; |
50 CollocWt (int ncol, double alpha, double beta, int include_left, | 46 rb = 1.0; |
51 int include_right, double left, double right); | 47 |
52 | 48 Alpha = 0.0; |
53 CollocWt (const CollocWt&); | 49 Beta = 0.0; |
54 | 50 |
55 CollocWt& operator = (const CollocWt&); | 51 initialized = 0; |
56 | 52 } |
57 CollocWt& resize (int ncol); | 53 |
58 | 54 CollocWt::CollocWt (int nc, int il, int ir) |
59 CollocWt& add_left (void); | 55 { |
60 CollocWt& delete_left (void); | 56 n = nc; |
57 inc_left = il; | |
58 inc_right = ir; | |
59 lb = 0.0; | |
60 rb = 1.0; | |
61 | |
62 Alpha = 0.0; | |
63 Beta = 0.0; | |
64 | |
65 initialized = 0; | |
66 } | |
67 | |
68 CollocWt::CollocWt (int nc, int il, int ir, double l, double r) | |
69 { | |
70 n = nc; | |
71 inc_left = il; | |
72 inc_right = ir; | |
73 lb = l; | |
74 rb = r; | |
75 | |
76 Alpha = 0.0; | |
77 Beta = 0.0; | |
78 | |
79 initialized = 0; | |
80 } | |
81 | |
82 CollocWt::CollocWt (int nc, double a, double b, int il, int ir) | |
83 { | |
84 n = nc; | |
85 inc_left = il; | |
86 inc_right = ir; | |
87 lb = 0.0; | |
88 rb = 1.0; | |
89 | |
90 Alpha = a; | |
91 Beta = b; | |
92 | |
93 initialized = 0; | |
94 } | |
95 | |
96 CollocWt::CollocWt (int nc, double a, double b, int il, int ir, | |
97 double l, double r) | |
98 { | |
99 n = nc; | |
100 inc_left = il; | |
101 inc_right = ir; | |
102 lb = l; | |
103 rb = r; | |
104 | |
105 Alpha = a; | |
106 Beta = b; | |
107 | |
108 initialized = 0; | |
109 } | |
110 | |
111 CollocWt::CollocWt (const CollocWt& a) | |
112 { | |
113 n = a.n; | |
114 inc_left = a.inc_left; | |
115 inc_right = a.inc_right; | |
116 lb = a.lb; | |
117 rb = a.rb; | |
118 r = a.r; | |
119 q = a.q; | |
120 A = a.A; | |
121 B = a.B; | |
122 | |
123 nt = n + inc_left + inc_right; | |
124 | |
125 initialized = a.initialized; | |
126 } | |
127 | |
128 CollocWt& | |
129 CollocWt::operator = (const CollocWt& a) | |
130 { | |
131 n = a.n; | |
132 inc_left = a.inc_left; | |
133 inc_right = a.inc_right; | |
134 lb = a.lb; | |
135 rb = a.rb; | |
136 r = a.r; | |
137 q = a.q; | |
138 A = a.A; | |
139 B = a.B; | |
140 | |
141 nt = a.nt; | |
142 | |
143 initialized = a.initialized; | |
144 | |
145 return *this; | |
146 } | |
147 | |
148 CollocWt& resize (int ncol) | |
149 { | |
150 n = ncol; | |
151 initialized = 0; | |
152 return *this; | |
153 } | |
154 | |
155 CollocWt& add_left (void) | |
156 { | |
157 inc_left = 1; | |
158 initialized = 0; | |
159 return *this; | |
160 } | |
161 | |
162 CollocWt& delete_left (void) | |
163 { | |
164 inc_left = 0; | |
165 initialized = 0; | |
166 return *this; | |
167 } | |
168 | |
61 CollocWt& set_left (double val); | 169 CollocWt& set_left (double val); |
62 | 170 |
63 CollocWt& add_right (void); | 171 CollocWt& add_right (void) |
64 CollocWt& delete_right (void); | 172 { |
173 inc_right = 1; | |
174 initialized = 0; | |
175 return *this; | |
176 } | |
177 | |
178 CollocWt& delete_right (void) | |
179 { | |
180 inc_right = 0; | |
181 initialized = 0; | |
182 return *this; | |
183 } | |
184 | |
65 CollocWt& set_right (double val); | 185 CollocWt& set_right (double val); |
66 | 186 |
67 CollocWt& set_alpha (double val); | 187 CollocWt& set_alpha (double val) |
68 CollocWt& set_beta (double val); | 188 { |
69 | 189 Alpha = val; |
70 int ncol (void) const; | 190 initialized = 0; |
71 int left_included (void) const; | 191 return *this; |
72 int right_included (void) const; | 192 } |
73 | 193 |
74 double left (void) const; | 194 CollocWt& set_beta (double val) |
75 double right (void) const; | 195 { |
76 double width (void) const; | 196 Beta = val; |
77 | 197 initialized = 0; |
78 double alpha (void) const; | 198 return *this; |
79 double beta (void) const; | 199 } |
80 | 200 |
81 Vector roots (void); | 201 int ncol (void) const { return n; } |
82 Vector quad (void); | 202 |
83 Vector quad_weights (void); | 203 int left_included (void) const { return inc_left; } |
84 | 204 int right_included (void) const { return inc_right; } |
85 Matrix first (void); | 205 |
86 Matrix second (void); | 206 double left (void) const { return lb; } |
207 double right (void) const { return rb; } | |
208 | |
209 double width (void) const { return rb - lb; } | |
210 | |
211 double alpha (void) const { return Alpha; } | |
212 double beta (void) const { return Beta; } | |
213 | |
214 ColumnVector roots (void) { if (!initialized) init (); return r; } | |
215 ColumnVector quad (void) { if (!initialized) init (); return q; } | |
216 | |
217 ColumnVector quad_weights (void) { return quad (); } | |
218 | |
219 Matrix first (void) { if (!initialized) init (); return A; } | |
220 | |
221 Matrix second (void) { if (!initialized) init (); return B; } | |
87 | 222 |
88 friend ostream& operator << (ostream&, const CollocWt&); | 223 friend ostream& operator << (ostream&, const CollocWt&); |
89 | 224 |
90 protected: | 225 protected: |
91 | 226 |
99 double rb; | 234 double rb; |
100 | 235 |
101 double Alpha; | 236 double Alpha; |
102 double Beta; | 237 double Beta; |
103 | 238 |
104 Vector r; | 239 ColumnVector r; |
105 Vector q; | 240 ColumnVector q; |
106 | 241 |
107 Matrix A; | 242 Matrix A; |
108 Matrix B; | 243 Matrix B; |
109 | 244 |
110 int initialized; | 245 int initialized; |
111 | 246 |
112 void init (void); | 247 void init (void); |
113 | 248 |
114 void error (const char *msg); | 249 void error (const char *msg); |
115 }; | 250 }; |
116 | |
117 inline int | |
118 CollocWt::ncol (void) const | |
119 { | |
120 return n; | |
121 } | |
122 | |
123 inline int CollocWt::left_included (void) const { return inc_left; } | |
124 inline int CollocWt::right_included (void) const { return inc_right; } | |
125 inline double CollocWt::left (void) const { return lb; } | |
126 inline double CollocWt::right (void) const { return rb; } | |
127 inline double CollocWt::width (void) const { return rb - lb; } | |
128 inline double CollocWt::alpha (void) const { return Alpha; } | |
129 inline double CollocWt::beta (void) const { return Beta; } | |
130 | |
131 inline Vector CollocWt::roots (void) | |
132 { if (!initialized) init (); return r; } | |
133 | |
134 inline Vector CollocWt::quad (void) | |
135 { if (!initialized) init (); return q; } | |
136 | |
137 inline Vector CollocWt::quad_weights (void) | |
138 { return quad (); } | |
139 | |
140 inline Matrix CollocWt::first (void) | |
141 { if (!initialized) init (); return A; } | |
142 | |
143 inline Matrix CollocWt::second (void) | |
144 { if (!initialized) init (); return B; } | |
145 | 251 |
146 #endif | 252 #endif |
147 | 253 |
148 /* | 254 /* |
149 ;;; Local Variables: *** | 255 ;;; Local Variables: *** |