casacore
Loading...
Searching...
No Matches
Constants.h
Go to the documentation of this file.
1//# Constants.h: Mathematical and numerical constants
2//# Copyright (C) 1993,1994,1995,1997,1998,1999,2000,2001
3//# Associated Universities, Inc. Washington DC, USA.
4//#
5//# This library is free software; you can redistribute it and/or modify it
6//# under the terms of the GNU Library General Public License as published by
7//# the Free Software Foundation; either version 2 of the License, or (at your
8//# option) any later version.
9//#
10//# This library is distributed in the hope that it will be useful, but WITHOUT
11//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13//# License for more details.
14//#
15//# You should have received a copy of the GNU Library General Public License
16//# along with this library; if not, write to the Free Software Foundation,
17//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18//#
19//# Correspondence concerning AIPS++ should be addressed as follows:
20//# Internet email: casa-feedback@nrao.edu.
21//# Postal address: AIPS++ Project Office
22//# National Radio Astronomy Observatory
23//# 520 Edgemont Road
24//# Charlottesville, VA 22903-2475 USA
25
26#ifndef CASA_CONSTANTS_H
27#define CASA_CONSTANTS_H
28
29#include <casacore/casa/aips.h>
30
31#if defined (sun) && ! defined (AIPS_SOLARIS)
32# include <sys/limits.h>
33#else
34# include <limits.h>
35#endif
36
37#include <float.h>
38#if !defined(AIPS_DARWIN) && !defined(AIPS_BSD)
39#include <values.h>
40#endif
41
42#if defined (AIPS_OSF)
43# define LN_MAXFLOAT (M_LN2 * FMAXEXP)
44# define LN_MINFLOAT (M_LN2 * (FMINEXP -1))
45#endif
46
47namespace casacore { //# NAMESPACE CASACORE - BEGIN
48
49// <summary>Mathematical and numerical constants.</summary>
50
51// <use visibility=export>
52
53// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="tConstants" demos="">
54
55// <synopsis>
56// The constants and conversion factors are defined here as double precision
57// values. Where single precision calculations are done in a situation where
58// processing speed is of concern, for example within the inner loop of an
59// expensive algorithm, a separate single precision variable should be defined
60// for use within the loop.
61//
62// </synopsis>
63//
64// <note role=warning> The following list is generated by hand, and may be incomplete.
65// After future revision of ccx2html the real data will be displayed </note>
66
67// <h3>Floating point limits</h3>
68// <srcblock>
69// flt_min the minimum single precision floating point number,
70// excluding denormalised numbers
71// minfloat the minimum single precision floating point number,
72// including denormalised numbers
73// dbl_min the minimum double precision floating point number,
74// excluding denormalised numbers
75// mindouble the minimum double precision floating point number,
76// including denormalised numbers
77// flt_max the maximum single precision floating point number
78// dbl_max the maximum double precision floating point number
79// flt_epsilon Minimum single precision floating point number X
80// such that 1+X does not equal X
81// dbl_epsilon Minimum double precision floating point number X
82// such that 1+X does not equal X
83// </srcblock>
84// <h3> Irrationals </h3>
85// <srcblock>
86// sqrt2 sqrt(2)
87// sqrt3 sqrt(3)
88// _1_sqrt2 1/sqrt(2)
89// _1_sqrt3 1/sqrt(3)
90// </srcblock>
91
92// <h3>Pi and functions thereof</h3>
93// <srcblock>
94// pi pi
95// _2pi 2*pi
96// pi_2 pi/2
97// pi_4 pi/4
98// _1_pi 1/pi
99// _2_pi 2/pi
100// _1_sqrtpi 1/sqrt(pi)
101// _2_sqrtpi 2/sqrt(pi)
102// </srcblock>
103
104// <h3>e and functions thereof</h3>
105// <srcblock>
106// e e
107// ln2 ln(2)
108// ln10 ln(10)
109// log2e log2(e)
110// log10e log10(e)
111// </srcblock>
112
113// <h3>gamma and functions thereof</h3>
114// <srcblock>
115// gamma gamma
116// lngamma ln(gamma)
117// etogamma e**gamma
118// </srcblock>
119
120// <h3>Fundamental physical constants (SI units)</h3>
121// <note role=warning> Preserved for legacy reasons only.
122// See <linkto class=QC>QC class</linkto> for other physical constants. </note>
123// <srcblock>
124// c velocity of light (m/s)
125// </srcblock>
126
127// <h3>Numerical conversion factors</h3>
128// <srcblock>
129// quetta e+30 (Q)
130// ronna e+27 (R)
131// yotta e+24 (Y)
132// zetta e+21 (Z)
133// exa e+18 (E)
134// peta e+15 (P)
135// tera e+12 (T)
136// giga e+09 (G)
137// mega e+06 (M)
138// kilo e+03 (k)
139// hecto e+02 (h)
140// deka e+01 (da)
141// deci e-01 (d)
142// centi e-02 (c)
143// milli e-03 (m)
144// micro e-06 (u)
145// nano e-09 (n)
146// pico e-12 (p)
147// femto e-15 (f)
148// atto e-18 (a)
149// zepto e-21 (z)
150// yocto e-24 (y)
151// ronto e-27 (r)
152// quecto e-30 (q)
153// </srcblock>
154
155// <h3>Angular measure</h3>
156// <srcblock>
157// radian radian
158// circle circle
159// degree degree
160// arcmin arcminute
161// arcsec arcsecond
162// </srcblock>
163
164// <h3>Solid angular measure</h3>
165// <srcblock>
166// steradian steradian
167// sphere sphere
168// square_degree square degree
169// square_arcmin square arcminute
170// square_arcsec square arcsecond
171// </srcblock>
172
173// <h3>Time interval</h3>
174// <srcblock>
175// second second
176// minute minute
177// hour hour
178// day day
179// </srcblock>
180
181// <h3> Machine constants </h3>
182//
183// Implementation-defined limits usually defined in <src><limits.h></src>,
184// <src><float.h></src>, and <src><values.h></src> as preprocessor
185// defines. They are
186// Inclusion of <src><casa/BasicSL/Constants.h</src> is
187// sufficient to ensure that they are defined for any particular
188// implementation, and the correct functioning of the <src>tConstants</src>
189// test program guarantees this.
190//
191// In future use will be made of the (standard) <em>numeric_limits</em>
192// template from the <src><limits></src> include file.
193
194// <srcblock>
195//
196// Refer to Section 3.2c, pp28-30 of
197// "The Annotated C++ Reference Manual",
198// Ellis, M.A., and Stroustrup, B.,
199// Addison-Wesley Publishing Company, 1990.
200// IBSN 0-201-51459-1.
201//
202// and
203//
204// Appendix B11, pp257-8 of
205// "The C Programming Language", 2nd ed.,
206// Kernighan, B.W., and Ritchie, D.M.,
207// Prentice Hall Software Series, 1988.
208// IBSN 0-13-110362-8.
209//
210// </srcblock>
211
212// <h3> Constants defined in limits.h </h3>
213// (these are part of the ANSI C and hence POSIX standards).
214// Acceptable limits defined by the standard are quoted.
215// <srcblock>
216//
217// CHAR_BIT 8 Maximum bits in a byte.
218// CHAR_MIN 0 or Minimum value of 'char'.
219// SCHAR_MIN
220// CHAR_MAX UCHAR_MAX or Maximum value of 'char'.
221// SCHAR_MAX
222// SCHAR_MIN -127 Minimum value of 'signed char'.
223// SCHAR_MAX +127 Maximum value of 'signed char'.
224// UCHAR_MAX 255 Maximum value of 'unsigned char'.
225// MB_LEN_MAX Maximum bytes in multibyte character.
226//
227// SHRT_MIN -32767 Minimum value of 'short'.
228// SHRT_MAX +32767 Maximum value of 'short'.
229// USHRT_MAX 65535 Maximum value of 'unsigned short'.
230//
231// INT_MIN -32767 Minimum value of 'int'.
232// INT_MAX +32767 Maximum value of 'int'.
233// UINT_MAX 65535 Maximum value of 'unsigned int'.
234//
235// LONG_MIN -2147483647 Minimum value of 'long'.
236// LONG_MAX +2147483647 Maximum value of 'long'.
237// ULONG_MAX 4294967295 Maximum value of 'unsigned long'.
238//
239// </srcblock>
240
241// <h3> Constants defined in float.h </h3>
242// (these are part of the ANSI C and hence POSIX standards).
243// Acceptable limits defined by the standard are quoted.
244// <srcblock>
245//
246// FLT_RADIX 2 Radix of exponent representation.
247// FLT_ROUNDS Floating point rounding mode for addition
248// -1: indeterminate
249// 0: towards zero
250// 1: to nearest
251// 2: toward +infinity
252// 3: toward -infinity
253//
254// FLT_MIN_EXP Minimum negative integer N such that FLT_RADIX
255// DBL_MIN_EXP raised to the Nth minus 1 is a normalized
256// LDBL_MIN_EXP floating point number.
257//
258// FLT_MAX_EXP Maximum integer N such that FLT_RADIX raised to
259// DBL_MAX_EXP the Nth minus 1 is representable.
260// LDBL_MAX_EXP
261//
262// FLT_MIN_10_EXP -37 Minimum negative integer N such that 10 raised
263// DBL_MIN_10_EXP -37 to the Nth is in the range of normalized
264// LDBL_MIN_10_EXP -37 floating point numbers.
265//
266// FLT_MAX_10_EXP 37 Maximum integer N such that 10 raised to the
267// DBL_MAX_10_EXP 37 Nth minus 1 is representable.
268// LDBL_MAX_10_EXP 37
269//
270// FLT_MANT_DIG Number of base FLT_RADIX digits in mantissa.
271// DBL_MANT_DIG
272// LDBL_MANT_DIG
273//
274// FLT_DIG 6 Decimal digits of precision.
275// DBL_DIG 10
276// LDBL_DIG 10
277//
278// FLT_EPSILON 1E-5 Minimum floating point number X such that
279// (use C::flt_epsilon in preference to this)
280// DBL_EPSILON 1E-9 1.0 + X does not equal 1.0.
281// (use C::dbl_epsilon in preference to this)
282// LDBL_EPSILON 1E-9
283//
284// FLT_MIN 1E-37 Minimum normalized positive floating point
285// (use C::flt_min in preference to this)
286// DBL_MIN 1E-37 number
287// (use C::dbl_min in preference to this)
288// LDBL_MIN 1E-37
289//
290// FLT_MAX 1E+37 Maximum representable floating point number.
291// (use C::flt_max in preference to this)
292// DBL_MAX 1E+37
293// (use C::dbl_max in preference to this)
294// LDBL_MAX 1E+37
295//
296// </srcblock>
297
298// <h3> Constants defined in values.h </h3>
299// (not part of the POSIX standard).
300// <note role=warning> These constants will disappear in the near future.
301// Do not use them in new code. </note>
302
303// <srcblock>
304//
305// HIBITS Value of a short integer with only the high-order
306// bit set (in most implementations, 0x8000).
307//
308// HIBITL Value of a long integer with only the high-order
309// bit set (in most implementations, 0x80000000).
310//
311// MAXSHORT Maximum value of a signed short integer (in most
312// implementations, 0x7FFF = 32767).
313//
314// MAXLONG Maximum value of a signed long integer (in most
315// implementations, 0x7FFFFFFF = 2147483647).
316//
317// MAXINT Maximum value of a signed regular integer (usually
318// the same as MAXSHORT or MAXLONG).
319//
320// MINFLOAT Minimum positive value of a single-precision
321// floating-point number (use C::minfloat in preference
322// to this)
323//
324// MINDOUBLE Minimum positive value of a double-precision
325// floating-point number (use C::mindouble in preference
326// to this)
327//
328// MAXFLOAT Maximum value of a single-precision floating-point number
329//
330// MAXDOUBLE Maximum value of a double-precision floating-point number
331//
332// FSIGNIF Number of significant bits in the mantissa of a
333// single-precision floating-point number.
334//
335// DSIGNIF Number of significant bits in the mantissa of a
336// double-precision floating-point number.
337// </srcblock>
338
339namespace C {
340 //#--------------------------------------------------------------------
341 // Mathematical constants
342 //#--------------------------------------------------------------------
343 //# <group>
344
345 // Irrationals:
346 // <group>
347 // sqrt(2)
348 [[deprecated("use M_SQRT2")]]
349 inline constexpr double sqrt2 = 1.4142135623730950488;
350 // sqrt(3)
351 inline constexpr double sqrt3 = 1.7320508075688772935;
352 // 1/sqrt(2)
353 [[deprecated("use M_SQRT1_2")]]
354 inline constexpr double _1_sqrt2 = 0.70710678118654752440;
355 // 1/sqrt(3)
356 inline constexpr double _1_sqrt3 = 0.57735026918962576451;
357 // </group>
358
359 // Pi and functions thereof:
360 // <group>
361 // pi
362 [[deprecated("use M_PI")]]
363 inline constexpr double pi = 3.141592653589793238462643;
364 // 2*pi
365 [[deprecated("use (2.0*M_PI)")]]
366 inline constexpr double _2pi = 6.283185307179586476925286;
367 // pi/2
368 [[deprecated("use M_PI_2")]]
369 inline constexpr double pi_2 = 1.570796326794896619231322;
370 // pi/4
371 [[deprecated("use M_PI_4")]]
372 inline constexpr double pi_4 = 0.7853981633974483096156608;
373 // 1/pi
374 [[deprecated("use M_1_PI")]]
375 inline constexpr double _1_pi = 0.3183098861837906715377675;
376 // 2/pi
377 [[deprecated("use M_2_PI")]]
378 inline constexpr double _2_pi = 0.6366197723675813430755350;
379 // 1/sqrt(pi)
380 [[deprecated("use (0.5 * M_2_SQRTPI)")]]
381 inline constexpr double _1_sqrtpi = 0.5641895835477562869480795;
382 // 2/sqrt(pi)
383 [[deprecated("use M_2_SQRTPI")]]
384 inline constexpr double _2_sqrtpi = 1.1283791670955125738961590;
385 // </group>
386
387 // e and functions thereof:
388 // <group>
389 // e
390 [[deprecated("use M_E")]]
391 inline constexpr double e = 2.718281828459045235360287;
392 // ln(2)
393 [[deprecated("use M_LN2")]]
394 inline constexpr double ln2 = 0.6931471805599453094172321;
395 // ln(10)
396 [[deprecated("use M_LN10")]]
397 inline constexpr double ln10 = 2.3025850929940456840179915;
398 // log2(e)
399 [[deprecated("use M_LOG2E")]]
400 inline constexpr double log2e = 1.4426950408889634074;
401 // log10(e)
402 [[deprecated("use M_LOG10E")]]
403 inline constexpr double log10e = 0.4342944819032518276511289;
404 // </group>
405
406 // gamma and functions thereof:
407 // <group>
408 // gamma
409 // With C++20, could be deprecated and use std::numbers::gamma instead
410 inline constexpr double gamma = 0.577215664901532860606512;
411 // ln(gamma)
412 // With C++20, could be deprecated and use std::log(std::numbers::gamma) instead
413 inline constexpr double lngamma = -0.549539312981644822337662;
414 // e**gamma
415 // With C++20, could be deprecated and use std::exp(std::numbers::gamma) instead
416 inline constexpr double etogamma = 1.7810724179901979852;
417 // </group>
418
419 // statistics related
420 // 1/(Phi^(-1)(3/4), see https://en.wikipedia.org/wiki/Median_absolute_deviation#Relation_to_standard_deviation
421 inline constexpr double probit_3_4 = 1.482602218505602;
422
423 //#--------------------------------------------------------------------
424 //# Mathematical constants
425 //#--------------------------------------------------------------------
426 //# </group>
427
428
429 //#--------------------------------------------------------------------
430 // Machine constants
431 //#--------------------------------------------------------------------
432 //# <group>
433 // floating point limits
434 // <group>
435 // the minimum single precision floating point number,
436 // excluding denormalised numbers
437 [[deprecated("Use FLT_MIN")]]
438 inline constexpr double flt_min = FLT_MIN;
439 // the minimum single precision floating point number,
440 // including denormalised numbers
441 [[deprecated("Use FLT_MIN")]]
442 inline constexpr double minfloat = FLT_MIN;
443 // the minimum double precision floating point number,
444 // excluding denormalised numbers
445 [[deprecated("Use DBL_MIN")]]
446 inline constexpr double dbl_min = DBL_MIN;
447 // the minimum double precision floating point number,
448 // including denormalised numbers
449 [[deprecated("Use DBL_MIN")]]
450 inline constexpr double mindouble = DBL_MIN;
451 // the maximum single precision floating point number
452 [[deprecated("Use FLT_MAX")]]
453 inline constexpr double flt_max = FLT_MAX;
454 // the maximum double precision floating point number
455 [[deprecated("Use DBL_MAX")]]
456 inline constexpr double dbl_max = DBL_MAX;
457 // Minimum single precision floating point number X such that 1+X does not
458 // equal X
459 [[deprecated("Use FLT_EPSILON")]]
460 inline constexpr double flt_epsilon = FLT_EPSILON;
461 // Minimum double precision floating point number X such that 1+X does not
462 // equal X
463 [[deprecated("Use DBL_EPSILON")]]
464 inline constexpr double dbl_epsilon = DBL_EPSILON;
465 // </group>
466
467 //#--------------------------------------------------------------------
468 //# Machine constants
469 //#--------------------------------------------------------------------
470 //# </group>
471
472 //#--------------------------------------------------------------------
473 //# Physical constants, and quantities
474 //#--------------------------------------------------------------------
475 //# <group>
476
477 // Fundamental physical constants (SI units):
478 // <group>
479 // velocity of light -- for legacy reasons only -- refer to PC
480 inline constexpr double c = 2.99792458e+08;
481 // </group>
482
483 //#--------------------------------------------------------------------
484 //# Physical constants, and quantities
485 //#--------------------------------------------------------------------
486 //# </group>
487
488
489
490 //#--------------------------------------------------------------------
491 //# Physical units
492 //#--------------------------------------------------------------------
493 //# <group>
494
495 //#-----------------------------
496 //# Numerical conversion factors
497 //#-----------------------------
498 //# <group>
499
500 // Numerical conversion factors
501 // <group>
502 // e+30 (Q)
503 inline constexpr double quetta = 1.0e+30;
504 // e+27 (R)
505 inline constexpr double ronna = 1.0e+27;
506 // e+24 (Y)
507 inline constexpr double yotta = 1.0e+24;
508 // e+21 (Z)
509 inline constexpr double zetta = 1.0e+21;
510 // e+18 (E)
511 inline constexpr double exa = 1.0e+18;
512 // e+15 (P)
513 inline constexpr double peta = 1.0e+15;
514 // e+12 (T)
515 inline constexpr double tera = 1.0e+12;
516 // e+09 (G)
517 inline constexpr double giga = 1.0e+09;
518 // e+06 (M)
519 inline constexpr double mega = 1.0e+06;
520 // e+03 (k)
521 inline constexpr double kilo = 1.0e+03;
522 // e+02 (h)
523 inline constexpr double hecto = 1.0e+02;
524 // e+01 (da)
525 inline constexpr double deka = 1.0e+01;
526 // e-01 (d)
527 inline constexpr double deci = 1.0e-01;
528 // e-02 (c)
529 inline constexpr double centi = 1.0e-02;
530 // e-03 (m)
531 inline constexpr double milli = 1.0e-03;
532 // e-06 (u)
533 inline constexpr double micro = 1.0e-06;
534 // e-09 (n)
535 inline constexpr double nano = 1.0e-09;
536 // e-12 (p)
537 inline constexpr double pico = 1.0e-12;
538 // e-15 (f)
539 inline constexpr double femto = 1.0e-15;
540 // e-18 (a)
541 inline constexpr double atto = 1.0e-18;
542 // e-21 (z)
543 inline constexpr double zepto = 1.0e-21;
544 // e-24 (y)
545 inline constexpr double yocto = 1.0e-24;
546 // e-27 (r)
547 inline constexpr double ronto = 1.0e-27;
548 // e-30 (q)
549 inline constexpr double quecto = 1.0e-30;
550 // </group>
551
552 // Angular measure:
553 // <group>
554 // radian
555 inline constexpr double radian = 1.0;
556 // circle
557 inline constexpr double circle = 6.2831853071795864769252867;
558 // degree
559 inline constexpr double degree = 0.0174532925199432957692369;
560 // arcminute
561 inline constexpr double arcmin = 0.000290888208665721596153948459;
562 // arcsecond
563 inline constexpr double arcsec = 0.00000484813681109535993589914098765;
564 // </group>
565
566 // Solid angular measure:
567 // <group>
568 // steradian
569 inline constexpr double steradian = 1.0;
570 // sphere
571 inline constexpr double sphere = 12.56637061435917295385057344;
572 // square degree
573 inline constexpr double square_degree = 0.30461741978670859934674354486e-3;
574 // square arcminute
575 inline constexpr double square_arcmin = 0.8461594994075238870742876246233e-7;
576 // square arcsecond
577 inline constexpr double square_arcsec= 0.235044305390978857520635451284e-10;
578 // </group>
579
580 //#-----------------------------
581 //# Numerical conversion factors
582 //#-----------------------------
583 //# </group>
584
585
586 //#----------------------------
587 //# Physical conversion factors
588 //#----------------------------
589 //# <group>
590
591 // Time interval [T]:
592 // <group>
593 // second
594 inline constexpr double second = 1.0;
595 // minute
596 inline constexpr double minute = 60.0;
597 // hour
598 inline constexpr double hour = 3600.0;
599 // day
600 inline constexpr double day = 86400.0;
601 // Difference between Julian Day and Modified Julian Day
602 inline constexpr double MJD0 = 2400000.5;
603 // </group>
604
605}
606
607
608} //# NAMESPACE CASACORE - END
609
610#endif
constexpr double circle
circle
Definition Constants.h:557
constexpr double sphere
sphere
Definition Constants.h:571
constexpr double dbl_min
the minimum double precision floating point number, excluding denormalised numbers
Definition Constants.h:446
constexpr double _2_pi
2/pi
Definition Constants.h:378
constexpr double steradian
Solid angular measure:
Definition Constants.h:569
constexpr double _1_sqrtpi
1/sqrt(pi)
Definition Constants.h:381
constexpr double _1_pi
1/pi
Definition Constants.h:375
constexpr double gamma
gamma and functions thereof:
Definition Constants.h:410
constexpr double peta
e+15 (P)
Definition Constants.h:513
constexpr double _1_sqrt2
1/sqrt(2)
Definition Constants.h:354
constexpr double pi
Pi and functions thereof:
Definition Constants.h:363
constexpr double minfloat
the minimum single precision floating point number, including denormalised numbers
Definition Constants.h:442
constexpr double c
Fundamental physical constants (SI units):
Definition Constants.h:480
constexpr double giga
e+09 (G)
Definition Constants.h:517
constexpr double second
Time interval [T]:
Definition Constants.h:594
constexpr double yocto
e-24 (y)
Definition Constants.h:545
constexpr double ln2
ln(2)
Definition Constants.h:394
constexpr double quetta
Numerical conversion factors.
Definition Constants.h:503
constexpr double log10e
log10(e)
Definition Constants.h:403
constexpr double probit_3_4
statistics related 1/(Phi^(-1)(3/4), see https://en.wikipedia.org/wiki/Median_absolute_deviation#Rela...
Definition Constants.h:421
constexpr double square_arcmin
square arcminute
Definition Constants.h:575
constexpr double log2e
log2(e)
Definition Constants.h:400
constexpr double milli
e-03 (m)
Definition Constants.h:531
constexpr double radian
Angular measure:
Definition Constants.h:555
constexpr double sqrt3
sqrt(3)
Definition Constants.h:351
constexpr double quecto
e-30 (q)
Definition Constants.h:549
constexpr double yotta
e+24 (Y)
Definition Constants.h:507
constexpr double _2pi
2*pi
Definition Constants.h:366
constexpr double ronna
e+27 (R)
Definition Constants.h:505
constexpr double square_arcsec
square arcsecond
Definition Constants.h:577
constexpr double flt_max
the maximum single precision floating point number
Definition Constants.h:453
constexpr double flt_min
Machine constants.
Definition Constants.h:438
constexpr double micro
e-06 (u)
Definition Constants.h:533
constexpr double ronto
e-27 (r)
Definition Constants.h:547
constexpr double dbl_max
the maximum double precision floating point number
Definition Constants.h:456
constexpr double femto
e-15 (f)
Definition Constants.h:539
constexpr double sqrt2
Mathematical constants.
Definition Constants.h:349
constexpr double zepto
e-21 (z)
Definition Constants.h:543
constexpr double tera
e+12 (T)
Definition Constants.h:515
constexpr double arcmin
arcminute
Definition Constants.h:561
constexpr double ln10
ln(10)
Definition Constants.h:397
constexpr double MJD0
Difference between Julian Day and Modified Julian Day.
Definition Constants.h:602
constexpr double atto
e-18 (a)
Definition Constants.h:541
constexpr double deci
e-01 (d)
Definition Constants.h:527
constexpr double kilo
e+03 (k)
Definition Constants.h:521
constexpr double _2_sqrtpi
2/sqrt(pi)
Definition Constants.h:384
constexpr double degree
degree
Definition Constants.h:559
constexpr double square_degree
square degree
Definition Constants.h:573
constexpr double exa
e+18 (E)
Definition Constants.h:511
constexpr double e
e and functions thereof:
Definition Constants.h:391
constexpr double minute
minute
Definition Constants.h:596
constexpr double mindouble
the minimum double precision floating point number, including denormalised numbers
Definition Constants.h:450
constexpr double centi
e-02 (c)
Definition Constants.h:529
constexpr double _1_sqrt3
1/sqrt(3)
Definition Constants.h:356
constexpr double nano
e-09 (n)
Definition Constants.h:535
constexpr double lngamma
ln(gamma) With C++20, could be deprecated and use std::log(std::numbers::gamma) instead
Definition Constants.h:413
constexpr double etogamma
e**gamma With C++20, could be deprecated and use std::exp(std::numbers::gamma) instead
Definition Constants.h:416
constexpr double hecto
e+02 (h)
Definition Constants.h:523
constexpr double flt_epsilon
Minimum single precision floating point number X such that 1+X does not equal X.
Definition Constants.h:460
constexpr double mega
e+06 (M)
Definition Constants.h:519
constexpr double arcsec
arcsecond
Definition Constants.h:563
constexpr double pi_2
pi/2
Definition Constants.h:369
constexpr double dbl_epsilon
Minimum double precision floating point number X such that 1+X does not equal X.
Definition Constants.h:464
constexpr double deka
e+01 (da)
Definition Constants.h:525
constexpr double pico
e-12 (p)
Definition Constants.h:537
constexpr double zetta
e+21 (Z)
Definition Constants.h:509
constexpr double pi_4
pi/4
Definition Constants.h:372
constexpr double day
day
Definition Constants.h:600
constexpr double hour
hour
Definition Constants.h:598
this file contains all the compiler specific defines
Definition mainpage.dox:28