casa
$Rev:20696$
|
Mathematical and numerical constants. More...
#include <Constants.h>
Mathematical and numerical constants.
Public interface
<h3>Review Status</h3><dl><dt>Reviewed By:<dd>UNKNOWN<dt>Date Reviewed:<dd>before2004/08/25<dt>Test programs:<dd>tConstants</dl> <h3>Synopsis</h3> The constants and conversion factors are defined here as double precision values. Where single precision calculations are done in a situation where processing speed is of concern, for example within the inner loop of an expensive algorithm, a separate single precision variable should be defined for use within the loop. <br><strong>Warning:</strong><em> The following list is generated by hand, and may be incomplete; After future revision of ccx2html the real data will be displayed </em><br> <h3>Floating point limits</h3>
flt_min the minimum single precision floating point number, excluding denormalised numbers minfloat the minimum single precision floating point number, including denormalised numbers dbl_min the minimum double precision floating point number, excluding denormalised numbers mindouble the minimum double precision floating point number, including denormalised numbers flt_max the maximum single precision floating point number dbl_max the maximum double precision floating point number flt_epsilon Minimum single precision floating point number X such that 1+X does not equal X dbl_epsilon Minimum double precision floating point number X such that 1+X does not equal X
Warning: Preserved for legacy reasons only; See QC class for other physical constants;
c velocity of light (m/s)
yotta e+24 (Y) zetta e+21 (Z) exa e+18 (E) peta e+15 (P) tera e+12 (T) giga e+09 (G) mega e+06 (M) kilo e+03 (k) hecto e+02 (h) deka e+01 (da) deci e-01 (d) centi e-02 (c) milli e-03 (m) micro e-06 (u) nano e-09 (n) pico e-12 (p) femto e-15 (f) atto e-18 (a) zepto e-21 (z) yocto e-24 (y)
steradian steradian sphere sphere square_degree square degree square_arcmin square arcminute square_arcsec square arcsecond
Implementation-defined limits usually defined in <limits.h>
, <float.h>
, and <values.h>
as preprocessor defines. They are Inclusion of <casa/BasicSL/Constants.h
is sufficient to ensure that they are defined for any particular implementation, and the correct functioning of the tConstants
test program guarantees this.
In future use will be made of the (standard) numeric_limits template from the <limits>
include file.
Refer to Section 3.2c, pp28-30 of "The Annotated C++ Reference Manual", Ellis, M.A., and Stroustrup, B., Addison-Wesley Publishing Company, 1990. IBSN 0-201-51459-1. and Appendix B11, pp257-8 of "The C Programming Language", 2nd ed., Kernighan, B.W., and Ritchie, D.M., Prentice Hall Software Series, 1988. IBSN 0-13-110362-8.
(these are part of the ANSI C and hence POSIX standards). Acceptable limits defined by the standard are quoted.
CHAR_BIT 8 Maximum bits in a byte. CHAR_MIN 0 or Minimum value of 'char'. SCHAR_MIN CHAR_MAX UCHAR_MAX or Maximum value of 'char'. SCHAR_MAX SCHAR_MIN -127 Minimum value of 'signed char'. SCHAR_MAX +127 Maximum value of 'signed char'. UCHAR_MAX 255 Maximum value of 'unsigned char'. MB_LEN_MAX Maximum bytes in multibyte character. SHRT_MIN -32767 Minimum value of 'short'. SHRT_MAX +32767 Maximum value of 'short'. USHRT_MAX 65535 Maximum value of 'unsigned short'. INT_MIN -32767 Minimum value of 'int'. INT_MAX +32767 Maximum value of 'int'. UINT_MAX 65535 Maximum value of 'unsigned int'. LONG_MIN -2147483647 Minimum value of 'long'. LONG_MAX +2147483647 Maximum value of 'long'. ULONG_MAX 4294967295 Maximum value of 'unsigned long'.
(these are part of the ANSI C and hence POSIX standards). Acceptable limits defined by the standard are quoted.
FLT_RADIX 2 Radix of exponent representation. FLT_ROUNDS Floating point rounding mode for addition -1: indeterminate 0: towards zero 1: to nearest 2: toward +infinity 3: toward -infinity FLT_MIN_EXP Minimum negative integer N such that FLT_RADIX DBL_MIN_EXP raised to the Nth minus 1 is a normalized LDBL_MIN_EXP floating point number. FLT_MAX_EXP Maximum integer N such that FLT_RADIX raised to DBL_MAX_EXP the Nth minus 1 is representable. LDBL_MAX_EXP FLT_MIN_10_EXP -37 Minimum negative integer N such that 10 raised DBL_MIN_10_EXP -37 to the Nth is in the range of normalized LDBL_MIN_10_EXP -37 floating point numbers. FLT_MAX_10_EXP 37 Maximum integer N such that 10 raised to the DBL_MAX_10_EXP 37 Nth minus 1 is representable. LDBL_MAX_10_EXP 37 FLT_MANT_DIG Number of base FLT_RADIX digits in mantissa. DBL_MANT_DIG LDBL_MANT_DIG FLT_DIG 6 Decimal digits of precision. DBL_DIG 10 LDBL_DIG 10 FLT_EPSILON 1E-5 Minimum floating point number X such that (use C::flt_epsilon in preference to this) DBL_EPSILON 1E-9 1.0 + X does not equal 1.0. (use C::dbl_epsilon in preference to this) LDBL_EPSILON 1E-9 FLT_MIN 1E-37 Minimum normalized positive floating point (use C::flt_min in preference to this) DBL_MIN 1E-37 number (use C::dbl_min in preference to this) LDBL_MIN 1E-37 FLT_MAX 1E+37 Maximum representable floating point number. (use C::flt_max in preference to this) DBL_MAX 1E+37 (use C::dbl_max in preference to this) LDBL_MAX 1E+37
(not part of the POSIX standard).
Warning: These constants will disappear in the near future; Do not use them in new code;
HIBITS Value of a short integer with only the high-order bit set (in most implementations, 0x8000). HIBITL Value of a long integer with only the high-order bit set (in most implementations, 0x80000000). MAXSHORT Maximum value of a signed short integer (in most implementations, 0x7FFF = 32767). MAXLONG Maximum value of a signed long integer (in most implementations, 0x7FFFFFFF = 2147483647). MAXINT Maximum value of a signed regular integer (usually the same as MAXSHORT or MAXLONG). MINFLOAT Minimum positive value of a single-precision floating-point number (use C::minfloat in preference to this) MINDOUBLE Minimum positive value of a double-precision floating-point number (use C::mindouble in preference to this) MAXFLOAT Maximum value of a single-precision floating-point number MAXDOUBLE Maximum value of a double-precision floating-point number FSIGNIF Number of significant bits in the mantissa of a single-precision floating-point number. DSIGNIF Number of significant bits in the mantissa of a double-precision floating-point number.
Tip: Once cxx2html accepts the namespace type, the Dummy_Constants_Class can be removed;
Anyway, to use a constant (e;g; pi) use the C::pi construct now and later;
Definition at line 350 of file Constants.h.