26#ifndef CASA_CONSTANTS_H
27#define CASA_CONSTANTS_H
29#include <casacore/casa/aips.h>
31#if defined(sun) && !defined(AIPS_SOLARIS)
32#include <sys/limits.h>
38#if !defined(AIPS_DARWIN) && !defined(AIPS_BSD)
43#define LN_MAXFLOAT (M_LN2 * FMAXEXP)
44#define LN_MINFLOAT (M_LN2 * (FMINEXP - 1))
348[[deprecated(
"use M_SQRT2")]]
349inline constexpr double sqrt2 = 1.4142135623730950488;
351inline constexpr double sqrt3 = 1.7320508075688772935;
353[[deprecated(
"use M_SQRT1_2")]]
354inline constexpr double _1_sqrt2 = 0.70710678118654752440;
356inline constexpr double _1_sqrt3 = 0.57735026918962576451;
362[[deprecated(
"use M_PI")]]
363inline constexpr double pi = 3.141592653589793238462643;
365[[deprecated(
"use (2.0*M_PI)")]]
366inline constexpr double _2pi = 6.283185307179586476925286;
368[[deprecated(
"use M_PI_2")]]
369inline constexpr double pi_2 = 1.570796326794896619231322;
371[[deprecated(
"use M_PI_4")]]
372inline constexpr double pi_4 = 0.7853981633974483096156608;
374[[deprecated(
"use M_1_PI")]]
375inline constexpr double _1_pi = 0.3183098861837906715377675;
377[[deprecated(
"use M_2_PI")]]
378inline constexpr double _2_pi = 0.6366197723675813430755350;
380[[deprecated(
"use (0.5 * M_2_SQRTPI)")]]
381inline constexpr double _1_sqrtpi = 0.5641895835477562869480795;
383[[deprecated(
"use M_2_SQRTPI")]]
384inline constexpr double _2_sqrtpi = 1.1283791670955125738961590;
390[[deprecated(
"use M_E")]]
391inline constexpr double e = 2.718281828459045235360287;
393[[deprecated(
"use M_LN2")]]
394inline constexpr double ln2 = 0.6931471805599453094172321;
396[[deprecated(
"use M_LN10")]]
397inline constexpr double ln10 = 2.3025850929940456840179915;
399[[deprecated(
"use M_LOG2E")]]
400inline constexpr double log2e = 1.4426950408889634074;
402[[deprecated(
"use M_LOG10E")]]
403inline constexpr double log10e = 0.4342944819032518276511289;
410inline constexpr double gamma = 0.577215664901532860606512;
413inline constexpr double lngamma = -0.549539312981644822337662;
416inline constexpr double etogamma = 1.7810724179901979852;
437[[deprecated(
"Use FLT_MIN")]]
441[[deprecated(
"Use FLT_MIN")]]
445[[deprecated(
"Use DBL_MIN")]]
449[[deprecated(
"Use DBL_MIN")]]
452[[deprecated(
"Use FLT_MAX")]]
455[[deprecated(
"Use DBL_MAX")]]
459[[deprecated(
"Use FLT_EPSILON")]]
463[[deprecated(
"Use DBL_EPSILON")]]
480inline constexpr double c = 2.99792458e+08;
503inline constexpr double ronna = 1.0e+27;
505inline constexpr double yotta = 1.0e+24;
507inline constexpr double zetta = 1.0e+21;
509inline constexpr double exa = 1.0e+18;
511inline constexpr double peta = 1.0e+15;
513inline constexpr double tera = 1.0e+12;
515inline constexpr double giga = 1.0e+09;
517inline constexpr double mega = 1.0e+06;
519inline constexpr double kilo = 1.0e+03;
521inline constexpr double hecto = 1.0e+02;
523inline constexpr double deka = 1.0e+01;
525inline constexpr double deci = 1.0e-01;
527inline constexpr double centi = 1.0e-02;
529inline constexpr double milli = 1.0e-03;
531inline constexpr double micro = 1.0e-06;
533inline constexpr double nano = 1.0e-09;
535inline constexpr double pico = 1.0e-12;
537inline constexpr double femto = 1.0e-15;
539inline constexpr double atto = 1.0e-18;
541inline constexpr double zepto = 1.0e-21;
543inline constexpr double yocto = 1.0e-24;
545inline constexpr double ronto = 1.0e-27;
555inline constexpr double circle = 6.2831853071795864769252867;
557inline constexpr double degree = 0.0174532925199432957692369;
559inline constexpr double arcmin = 0.000290888208665721596153948459;
561inline constexpr double arcsec = 0.00000484813681109535993589914098765;
569inline constexpr double sphere = 12.56637061435917295385057344;
573inline constexpr double square_arcmin = 0.8461594994075238870742876246233e-7;
575inline constexpr double square_arcsec = 0.235044305390978857520635451284e-10;
595inline constexpr double hour = 3600.0;
597inline constexpr double day = 86400.0;
599inline constexpr double MJD0 = 2400000.5;
constexpr double circle
circle
constexpr double sphere
sphere
constexpr double dbl_min
the minimum double precision floating point number, excluding denormalised numbers
constexpr double _2_pi
2/pi
constexpr double steradian
Solid angular measure:
constexpr double _1_sqrtpi
1/sqrt(pi)
constexpr double _1_pi
1/pi
constexpr double gamma
gamma and functions thereof:
constexpr double peta
e+15 (P)
constexpr double _1_sqrt2
1/sqrt(2)
constexpr double pi
Pi and functions thereof:
constexpr double minfloat
the minimum single precision floating point number, including denormalised numbers
constexpr double c
Fundamental physical constants (SI units):
constexpr double giga
e+09 (G)
constexpr double second
Time interval [T]:
constexpr double yocto
e-24 (y)
constexpr double ln2
ln(2)
constexpr double quetta
Numerical conversion factors.
constexpr double log10e
log10(e)
constexpr double probit_3_4
statistics related 1/(Phi^(-1)(3/4), see https://en.wikipedia.org/wiki/Median_absolute_deviation#Rela...
constexpr double square_arcmin
square arcminute
constexpr double log2e
log2(e)
constexpr double milli
e-03 (m)
constexpr double radian
Angular measure:
constexpr double sqrt3
sqrt(3)
constexpr double quecto
e-30 (q)
constexpr double yotta
e+24 (Y)
constexpr double _2pi
2*pi
constexpr double ronna
e+27 (R)
constexpr double square_arcsec
square arcsecond
constexpr double flt_max
the maximum single precision floating point number
constexpr double flt_min
Machine constants.
constexpr double micro
e-06 (u)
constexpr double ronto
e-27 (r)
constexpr double dbl_max
the maximum double precision floating point number
constexpr double femto
e-15 (f)
constexpr double sqrt2
Mathematical constants.
constexpr double zepto
e-21 (z)
constexpr double tera
e+12 (T)
constexpr double arcmin
arcminute
constexpr double ln10
ln(10)
constexpr double MJD0
Difference between Julian Day and Modified Julian Day.
constexpr double atto
e-18 (a)
constexpr double deci
e-01 (d)
constexpr double kilo
e+03 (k)
constexpr double _2_sqrtpi
2/sqrt(pi)
constexpr double degree
degree
constexpr double square_degree
square degree
constexpr double exa
e+18 (E)
constexpr double e
e and functions thereof:
constexpr double minute
minute
constexpr double mindouble
the minimum double precision floating point number, including denormalised numbers
constexpr double centi
e-02 (c)
constexpr double _1_sqrt3
1/sqrt(3)
constexpr double nano
e-09 (n)
constexpr double lngamma
ln(gamma) With C++20, could be deprecated and use std::log(std::numbers::gamma) instead
constexpr double etogamma
e**gamma With C++20, could be deprecated and use std::exp(std::numbers::gamma) instead
constexpr double hecto
e+02 (h)
constexpr double flt_epsilon
Minimum single precision floating point number X such that 1+X does not equal X.
constexpr double mega
e+06 (M)
constexpr double arcsec
arcsecond
constexpr double pi_2
pi/2
constexpr double dbl_epsilon
Minimum double precision floating point number X such that 1+X does not equal X.
constexpr double deka
e+01 (da)
constexpr double pico
e-12 (p)
constexpr double zetta
e+21 (Z)
constexpr double pi_4
pi/4
constexpr double hour
hour
For temporary backward namespace compatibility, use casa as alias for casacore.