28 #ifndef SCIMATH_NUMERICTRAITS_H 29 #define SCIMATH_NUMERICTRAITS_H 32 #include <casacore/casa/aips.h> 33 #include <casacore/casa/BasicSL/Complex.h> 242 static void setImag(T &,
const BaseType &) {;}
249 #if defined NumericTraits_F 250 #undef NumericTraits_F 252 #define NumericTraits_F NumericTraits 275 static void setImag(value_type &,
const BaseType &) {;}
280 static void setValue(value_type &other,
const BaseType &val,
const uInt) {
284 #undef NumericTraits_F 286 #if defined NumericTraits_D 287 #undef NumericTraits_D 289 #define NumericTraits_D NumericTraits 312 static void setImag(value_type &,
const BaseType &) {;}
317 static void setValue(value_type &other,
const BaseType &val,
const uInt) {
321 #undef NumericTraits_D 323 #if defined NumericTraits_C 324 #undef NumericTraits_C 326 #define NumericTraits_C NumericTraits 349 static void setImag(value_type &other,
const BaseType &val) {
353 return ((n%2 == 0) ? other.real() : other.imag()); }
355 static void setValue(value_type &other,
const BaseType &val,
const uInt n) {
356 other = (n%2 == 0) ?
value_type(val, other.imag()) :
360 #undef NumericTraits_C 362 #if defined NumericTraits_DC 363 #undef NumericTraits_DC 365 #define NumericTraits_DC NumericTraits 388 static void setImag(value_type &other,
const BaseType &val) {
392 return ((n%2 == 0) ? other.real() : other.imag()); }
394 static void setValue(value_type &other,
const BaseType &val,
const uInt n) {
395 other = (n%2 == 0) ?
value_type(val, other.imag()) :
399 #undef NumericTraits_DC static void setImag(value_type &, const BaseType &)
Set the imaginary part of a complex value only (a NOP for reals)
static BaseType getValue(const value_type &other, const uInt n)
Get the nsize()-th numeric value.
std::complex< Float > Complex
static uInt size()
Number of relevant numeric values.
static const Double & minimum
static void setValue(T &, const BaseType &, const uInt)
Set the nsize()-th numeric value.
Float BaseType
Numeric type.
static const Double & epsilon
Relevant minimum and maximum numbers.
DComplex PrecisionType
Higher precision type (Float->Double)
Relationships between numeric data types.
static const Double & epsilon
Relevant minimum and maximum numbers.
Double ConjugateType
Conjugate (real<->complex) type.
static const Double & epsilon
Relevant minimum and maximum numbers.
static void setImag(value_type &other, const BaseType &val)
Set the imaginary part of a complex value only (a NOP for reals)
static BaseType getValue(const value_type &other, const uInt)
Get the nsize()-th numeric value.
Double PrecisionType
Higher precision type (Float->Double)
static void setImag(T &, const BaseType &)
Set the imaginary part of a complex value only (a NOP for reals)
static const Double & epsilon
Relevant minimum and maximum numbers.
DComplex ConjugateType
Conjugate (real<->complex) type.
Double value_type
Template argument.
static BaseType getValue(const T &, const uInt)
Get the nsize()-th numeric value.
Float value_type
Template argument.
Char ConjugateType
Conjugate (real<->complex) type.
static const Double & maximum
T value_type
Template argument.
Char PrecisionType
Higher precision type (Float->Double)
static const Double & maximum
Complex ConjugateType
Conjugate (real<->complex) type.
Float ConjugateType
Conjugate (real<->complex) type.
static const Double & minimum
static void setImag(value_type &other, const BaseType &val)
Set the imaginary part of a complex value only (a NOP for reals)
static void setValue(value_type &other, const BaseType &val, const uInt)
Set the nsize()-th numeric value.
static void setValue(value_type &other, const BaseType &val, const uInt n)
Set the nsize()-th numeric value.
static void setValue(value_type &other, const BaseType &val, const uInt)
Set the nsize()-th numeric value.
std::complex< Double > DComplex
Complex value_type
Template argument.
static BaseType getValue(const value_type &other, const uInt n)
Get the nsize()-th numeric value.
Double BaseType
Numeric type.
static const Double & epsilon
Relevant minimum and maximum numbers.
DComplex value_type
Template argument.
static uInt size()
Number of relevant numeric values.
static const Double & maximum
Double PrecisionType
Higher precision type (Float->Double)
static const Double & minimum
DComplex PrecisionType
Higher precision type (Float->Double)
static uInt size()
Number of relevant numeric values.
static BaseType getValue(const value_type &other, const uInt)
Get the nsize()-th numeric value.
Float BaseType
Numeric type.
Char BaseType
Numeric type.
static void setImag(value_type &, const BaseType &)
Set the imaginary part of a complex value only (a NOP for reals)
static void setValue(value_type &other, const BaseType &val, const uInt n)
Set the nsize()-th numeric value.
static uInt size()
Number of relevant numeric values.
static const Double & maximum
Double BaseType
Numeric type.
static const Double & minimum
this file contains all the compiler specific defines
static const Double & minimum
static const Double & maximum
static uInt size()
Number of relevant numeric values.