a68g-numbers.h

You can download the current version of Algol 68 Genie and its documentation here.

   1 //! @file a68g-numbers.h
   2 //! @author J. Marcel van der Veer
   3 //!
   4 //! @section Copyright
   5 //!
   6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
   7 //! Copyright 2001-2023 J. Marcel van der Veer .
   8 //!
   9 //! @section License
  10 //!
  11 //! This program is free software; you can redistribute it and/or modify it 
  12 //! under the terms of the GNU General Public License as published by the 
  13 //! Free Software Foundation; either version 3 of the License, or 
  14 //! (at your option) any later version.
  15 //!
  16 //! This program is distributed in the hope that it will be useful, but 
  17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 
  19 //! more details. You should have received a copy of the GNU General Public 
  20 //! License along with this program. If not, see .
  21 
  22 #if !defined (__A68G_NUMBERS_H__)
  23 #define __A68G_NUMBERS_H__
  24 
  25 #define CONST_LOG2_10 3.32192809488736234787031942948939017586483139302458061205475640
  26 #define CONST_PI_OVER_180 0.01745329251994329576923690768488612713442871888541725456097191
  27 #define CONST_180_OVER_PI 57.2957795130823208767981548141051703324054724665643215491602439
  28 #define CONST_PI_OVER_180_Q 0.01745329251994329576923690768488612713442871888541725456097191q
  29 #define CONST_180_OVER_PI_Q 57.2957795130823208767981548141051703324054724665643215491602439q
  30 
  31 // Abramowitz, Milton and Stegun, Irene A.
  32 // Handbook of Mathematical Functions.
  33 // New York:  Dover publications, Inc. (1970).
  34 // All constants taken from this text are given to 25 significant digits.
  35 
  36 #define CONST_E        2.718281828459045235360287471353    /* e */
  37 #define CONST_EULER    0.577215664901532860606512090082    // Euler-Mascheroni
  38 #define CONST_LOG2E    1.442695040888963407359924681002    /* log2(e) */
  39 #define CONST_LOG10E   0.434294481903251827651128918917    /* log10(e) */
  40 #define CONST_LN2      0.693147180559945309417232121458    /* ln(2) */
  41 #define CONST_LN10     2.302585092994045684017991454684    /* ln(10) */
  42 #define CONST_PI       3.141592653589793238462643383280    /* pi */
  43 #define CONST_PI_Q     3.141592653589793238462643383280q   /* pi */
  44 #define CONST_2PI      6.283185307179586476925286766559    /* 2*pi */
  45 #define CONST_PI_2     1.570796326794896619231321691640    /* pi/2 */
  46 #define CONST_PI_4     0.785398163397448309615660845820    /* pi/4 */
  47 #define CONST_1_PI     0.318309886183790671537767526745    /* 1/pi */
  48 #define CONST_2_PI     0.636619772367581343075535053490    /* 2/pi */
  49 #define CONST_2_SQRTPI 1.128379167095512573896158903122    /* 2/sqrt(pi) */
  50 #define CONST_SQRT2    1.414213562373095048801688724210    /* sqrt(2) */
  51 #define CONST_SQRT1_2  0.707106781186547524400844362105    /* 1/sqrt(2) */
  52 
  53 // R-Specific Constants
  54 
  55 #define CONST_SQRT_3 1.732050807568877293527446341506   /* sqrt(3) */
  56 #define CONST_SQRT_32 5.656854249492380195206754896838  /* sqrt(32) */
  57 #define CONST_LOG10_2 0.301029995663981195213738894724  /* log10(2) */
  58 #define CONST_SQRT_PI 1.772453850905516027298167483341  /* sqrt(pi) */
  59 #define CONST_1_SQRT_2PI 0.398942280401432677939946059934       /* 1/sqrt(2pi) */
  60 #define CONST_SQRT_2dPI 0.797884560802865355879892119869        /* sqrt(2/pi) */
  61 #define CONST_LN_2PI 1.837877066409345483560659472811   /* log(2*pi) */
  62 #define CONST_LN_SQRT_PI 0.572364942924700087071713675677       /* log(sqrt(pi)) == log(pi)/2 */
  63 #define CONST_LN_SQRT_2PI 0.918938533204672741780329736406      /* log(sqrt(2*pi)) == log(2*pi)/2 */
  64 #define CONST_LN_SQRT_PId2 0.225791352644727432363097614947     /* log(sqrt(pi/2)) */
  65 
  66 #endif