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: ***