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")]]
349 inline constexpr double sqrt2 = 1.4142135623730950488;
351 inline constexpr double sqrt3 = 1.7320508075688772935;
353 [[deprecated(
"use M_SQRT1_2")]]
354 inline constexpr double _1_sqrt2 = 0.70710678118654752440;
356 inline constexpr double _1_sqrt3 = 0.57735026918962576451;
362 [[deprecated(
"use M_PI")]]
363 inline constexpr double pi = 3.141592653589793238462643;
365 [[deprecated(
"use (2.0*M_PI)")]]
366 inline constexpr double _2pi = 6.283185307179586476925286;
368 [[deprecated(
"use M_PI_2")]]
369 inline constexpr double pi_2 = 1.570796326794896619231322;
371 [[deprecated(
"use M_PI_4")]]
372 inline constexpr double pi_4 = 0.7853981633974483096156608;
374 [[deprecated(
"use M_1_PI")]]
375 inline constexpr double _1_pi = 0.3183098861837906715377675;
377 [[deprecated(
"use M_2_PI")]]
378 inline constexpr double _2_pi = 0.6366197723675813430755350;
380 [[deprecated(
"use (0.5 * M_2_SQRTPI)")]]
381 inline constexpr double _1_sqrtpi = 0.5641895835477562869480795;
383 [[deprecated(
"use M_2_SQRTPI")]]
384 inline constexpr double _2_sqrtpi = 1.1283791670955125738961590;
390 [[deprecated(
"use M_E")]]
391 inline constexpr double e = 2.718281828459045235360287;
393 [[deprecated(
"use M_LN2")]]
394 inline constexpr double ln2 = 0.6931471805599453094172321;
396 [[deprecated(
"use M_LN10")]]
397 inline constexpr double ln10 = 2.3025850929940456840179915;
399 [[deprecated(
"use M_LOG2E")]]
400 inline constexpr double log2e = 1.4426950408889634074;
402 [[deprecated(
"use M_LOG10E")]]
403 inline constexpr double log10e = 0.4342944819032518276511289;
410 inline constexpr double gamma = 0.577215664901532860606512;
413 inline constexpr double lngamma = -0.549539312981644822337662;
416 inline 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")]]
480 inline constexpr double c = 2.99792458e+08;
503 inline constexpr double quetta = 1.0e+30;
505 inline constexpr double ronna = 1.0e+27;
507 inline constexpr double yotta = 1.0e+24;
509 inline constexpr double zetta = 1.0e+21;
511 inline constexpr double exa = 1.0e+18;
513 inline constexpr double peta = 1.0e+15;
515 inline constexpr double tera = 1.0e+12;
517 inline constexpr double giga = 1.0e+09;
519 inline constexpr double mega = 1.0e+06;
521 inline constexpr double kilo = 1.0e+03;
523 inline constexpr double hecto = 1.0e+02;
525 inline constexpr double deka = 1.0e+01;
527 inline constexpr double deci = 1.0e-01;
529 inline constexpr double centi = 1.0e-02;
531 inline constexpr double milli = 1.0e-03;
533 inline constexpr double micro = 1.0e-06;
535 inline constexpr double nano = 1.0e-09;
537 inline constexpr double pico = 1.0e-12;
539 inline constexpr double femto = 1.0e-15;
541 inline constexpr double atto = 1.0e-18;
543 inline constexpr double zepto = 1.0e-21;
545 inline constexpr double yocto = 1.0e-24;
547 inline constexpr double ronto = 1.0e-27;
549 inline constexpr double quecto = 1.0e-30;
557 inline constexpr double circle = 6.2831853071795864769252867;
559 inline constexpr double degree = 0.0174532925199432957692369;
561 inline constexpr double arcmin = 0.000290888208665721596153948459;
563 inline constexpr double arcsec = 0.00000484813681109535993589914098765;
571 inline constexpr double sphere = 12.56637061435917295385057344;
575 inline constexpr double square_arcmin = 0.8461594994075238870742876246233e-7;
577 inline constexpr double square_arcsec= 0.235044305390978857520635451284e-10;
598 inline constexpr double hour = 3600.0;
600 inline constexpr double day = 86400.0;
602 inline 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
this file contains all the compiler specific defines