Mercurial > hg > octave-jordi
comparison liboctave/oct-inttypes.h @ 4906:6754342ef7ad
[project @ 2004-06-23 11:11:50 by jwe]
author | jwe |
---|---|
date | Wed, 23 Jun 2004 11:11:51 +0000 |
parents | bd043a433918 |
children | 5c9e36402f17 |
comparison
equal
deleted
inserted
replaced
4905:f7a337f3fd9e | 4906:6754342ef7ad |
---|---|
178 | 178 |
179 T value (void) const { return ival; } | 179 T value (void) const { return ival; } |
180 | 180 |
181 bool operator ! (void) const { return ! ival; } | 181 bool operator ! (void) const { return ! ival; } |
182 | 182 |
183 T operator + (void) const { return ival; } | 183 octave_int<T> operator + (void) const { return *this; } |
184 | 184 |
185 T operator - (void) const | 185 octave_int<T> operator - (void) const |
186 { | 186 { |
187 return std::numeric_limits<T>::is_signed ? -ival : 0; | 187 return std::numeric_limits<T>::is_signed ? -ival : 0; |
188 } | 188 } |
189 | 189 |
190 operator double (void) const { return static_cast<double> (value ()); } | 190 operator double (void) const { return static_cast<double> (value ()); } |
203 double tx = static_cast<double> (x.value ()); | 203 double tx = static_cast<double> (x.value ()); |
204 ival = OCTAVE_INT_FIT_TO_RANGE (t - tx, T); | 204 ival = OCTAVE_INT_FIT_TO_RANGE (t - tx, T); |
205 return *this; | 205 return *this; |
206 } | 206 } |
207 | 207 |
208 octave_int<T> min (void) const { return std::numeric_limits<T>::min (); } | |
209 octave_int<T> max (void) const { return std::numeric_limits<T>::max (); } | |
210 | |
208 private: | 211 private: |
209 | 212 |
210 T ival; | 213 T ival; |
211 }; | 214 }; |
212 | 215 |
246 { \ | 249 { \ |
247 double tx = static_cast<double> (x.value ()); \ | 250 double tx = static_cast<double> (x.value ()); \ |
248 double ty = static_cast<double> (y.value ()); \ | 251 double ty = static_cast<double> (y.value ()); \ |
249 double r = tx OP ty; \ | 252 double r = tx OP ty; \ |
250 return OCTAVE_INT_FIT_TO_RANGE2 (r, T1, T2); \ | 253 return OCTAVE_INT_FIT_TO_RANGE2 (r, T1, T2); \ |
251 } \ | 254 } |
252 | 255 |
253 OCTAVE_INT_BIN_OP(+) | 256 OCTAVE_INT_BIN_OP(+) |
254 OCTAVE_INT_BIN_OP(-) | 257 OCTAVE_INT_BIN_OP(-) |
255 OCTAVE_INT_BIN_OP(*) | 258 OCTAVE_INT_BIN_OP(*) |
256 OCTAVE_INT_BIN_OP(/) | 259 OCTAVE_INT_BIN_OP(/) |
260 | |
261 #define OCTAVE_INT_BITCMP_OP(OP) \ | |
262 \ | |
263 template <class T> \ | |
264 octave_int<T> \ | |
265 operator OP (const octave_int<T>& x, const octave_int<T>& y) \ | |
266 { \ | |
267 return x.value () OP y.value (); \ | |
268 } | |
269 | |
270 OCTAVE_INT_BITCMP_OP (&) | |
271 OCTAVE_INT_BITCMP_OP (|) | |
272 OCTAVE_INT_BITCMP_OP (^) | |
273 | |
274 #define OCTAVE_INT_BITSHIFT_OP(OP) \ | |
275 \ | |
276 template <class T1, class T2> \ | |
277 octave_int<T1> \ | |
278 operator OP (const octave_int<T1>& x, const T2& y) \ | |
279 { \ | |
280 return x.value () OP y; \ | |
281 } | |
282 | |
283 OCTAVE_INT_BITSHIFT_OP (<<) | |
284 OCTAVE_INT_BITSHIFT_OP (>>) | |
257 | 285 |
258 #define OCTAVE_INT_CMP_OP(OP) \ | 286 #define OCTAVE_INT_CMP_OP(OP) \ |
259 \ | 287 \ |
260 template <class T1, class T2> \ | 288 template <class T1, class T2> \ |
261 bool \ | 289 bool \ |
262 operator OP (const octave_int<T1>& x, const octave_int<T2>& y) \ | 290 operator OP (const octave_int<T1>& x, const octave_int<T2>& y) \ |
263 { \ | 291 { \ |
264 return x.value () OP y.value (); \ | 292 return x.value () OP y.value (); \ |
265 } \ | 293 } |
266 | 294 |
267 OCTAVE_INT_CMP_OP (<) | 295 OCTAVE_INT_CMP_OP (<) |
268 OCTAVE_INT_CMP_OP (<=) | 296 OCTAVE_INT_CMP_OP (<=) |
269 OCTAVE_INT_CMP_OP (>=) | 297 OCTAVE_INT_CMP_OP (>=) |
270 OCTAVE_INT_CMP_OP (>) | 298 OCTAVE_INT_CMP_OP (>) |