Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/limits.c

    r2701c91 r5b639ee  
    1010// Created On       : Wed Apr  6 18:06:52 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Mar  1 16:22:51 2018
    13 // Update Count     : 74
     12// Last Modified On : Mon Sep 12 10:34:48 2016
     13// Update Count     : 17
    1414//
    1515
    16 #include <limits.h>
    17 #include <float.h>
    18 #define __USE_GNU                                                                               // get M_* constants
    19 #include <math.h>
    20 #include <complex.h>
    2116#include "limits"
    2217
    2318// Integral Constants
    2419
    25 const signed char MIN = SCHAR_MIN;
    26 const unsigned char MIN = 0;
    27 const short int MIN = SHRT_MIN;
    28 const unsigned short int MIN = 0;
    29 const int MIN = INT_MIN;
    30 const unsigned int MIN = 0;
    31 const long int MIN = LONG_MIN;
    32 const unsigned long int MIN = 0;
    33 const long long int MIN = LLONG_MIN;
    34 const unsigned long long int MIN = 0;
     20const short int MIN = -32768;
     21const int MIN = -2147483648;
     22#if __WORDSIZE == 64
     23const long int MIN = -9223372036854775807L - 1L;
     24#else
     25const long int MIN = (int)MIN;
     26#endif // M64
     27const long long int MIN = -9223372036854775807LL - 1LL;
    3528
    36 const signed char MAX = SCHAR_MAX;
    37 const unsigned char MAX = UCHAR_MAX;
    38 const short int MAX = SHRT_MAX;
    39 const unsigned short int MAX = USHRT_MAX;
    40 const int MAX = INT_MAX;
    41 const unsigned int MAX = UINT_MAX;
    42 const long int MAX = LONG_MAX;
    43 const unsigned long int MAX = ULONG_MAX;
    44 const long long int MAX = LLONG_MAX;
    45 const unsigned long long int MAX = ULLONG_MAX;
     29const short int MAX = 32767;
     30const unsigned short int MAX = 65535;
     31const int MAX = 2147483647;
     32const unsigned int MAX = 4294967295_U;
     33#if __WORDSIZE == 64
     34const long int MAX = 9223372036854775807_L;
     35#else
     36const long int MAX = (int)MAX;
     37#endif // M64
     38const unsigned long int MAX = 4294967295_U;
     39const long long int MAX = 9223372036854775807_LL;
     40const unsigned long long int MAX = 18446744073709551615_ULL;
    4641
    4742// Floating-Point Constants
    4843
    49 const float MIN = FLT_MIN;
    50 const double MIN = DBL_MIN;
    51 const long double MIN = LDBL_MIN;
    52 const float _Complex MIN = __FLT_MIN__ + __FLT_MIN__ * I;
    53 const double _Complex MIN = DBL_MIN +  DBL_MIN * I;
    54 const long double _Complex MIN = LDBL_MIN + LDBL_MIN * I;
     44const float PI = 3.141592_F;                                                    // pi
     45const float PI_2 = 1.570796_F;                                                  // pi / 2
     46const float PI_4 = 0.7853981_F;                                                 // pi / 4
     47const float _1_PI = 0.3183098_F;                                                // 1 / pi
     48const float _2_PI = 0.6366197_F;                                                // 2 / pi
     49const float _2_SQRT_PI = 1.128379_F;                                    // 2 / sqrt(pi)
    5550
    56 const float MAX = FLT_MAX;
    57 const double MAX = DBL_MAX;
    58 const long double MAX = LDBL_MAX;
    59 const float _Complex MAX = FLT_MAX + FLT_MAX * I;
    60 const double _Complex MAX = DBL_MAX + DBL_MAX * I;
    61 const long double _Complex MAX = LDBL_MAX + LDBL_MAX * I;
     51const double PI = 3.14159265358979323846_D;                             // pi
     52const double PI_2 = 1.57079632679489661923_D;                   // pi / 2
     53const double PI_4 = 0.78539816339744830962_D;                   // pi / 4
     54const double _1_PI = 0.31830988618379067154_D;                  // 1 / pi
     55const double _2_PI = 0.63661977236758134308_D;                  // 2 / pi
     56const double _2_SQRT_PI = 1.12837916709551257390_D;             // 2 / sqrt(pi)
    6257
    63 const float PI = (float)M_PI;                                                   // pi
    64 const float PI_2 = (float)M_PI_2;                                               // pi / 2
    65 const float PI_4 = (float)M_PI_4;                                               // pi / 4
    66 const float _1_PI = (float)M_1_PI;                                              // 1 / pi
    67 const float _2_PI = (float)M_2_PI;                                              // 2 / pi
    68 const float _2_SQRT_PI = (float)M_2_SQRTPI;                             // 2 / sqrt(pi)
     58const long double PI = 3.1415926535897932384626433832795029_DL; // pi
     59const long double PI_2 = 1.5707963267948966192313216916397514_DL; // pi / 2
     60const long double PI_4 = 0.7853981633974483096156608458198757_DL; // pi / 4
     61const long double _1_PI = 0.3183098861837906715377675267450287_DL; // 1 / pi
     62const long double _2_PI = 0.6366197723675813430755350534900574_DL; // 2 / pi
     63const long double _2_SQRT_PI = 1.1283791670955125738961589031215452_DL; // 2 / sqrt(pi)
    6964
    70 const double PI = M_PI;                                                                 // pi
    71 const double PI_2 = M_PI_2;                                                             // pi / 2
    72 const double PI_4 = M_PI_4;                                                             // pi / 4
    73 const double _1_PI = M_1_PI;                                                    // 1 / pi
    74 const double _2_PI = M_2_PI;                                                    // 2 / pi
    75 const double _2_SQRT_PI = M_2_SQRTPI;                                   // 2 / sqrt(pi)
     65const double _Complex PI = 3.14159265358979323846_D+0.0_iD;     // pi
     66const double _Complex PI_2 = 1.57079632679489661923_D+0.0_iD; // pi / 2
     67const double _Complex PI_4 = 0.78539816339744830962_D+0.0_iD; // pi / 4
     68const double _Complex _1_PI = 0.31830988618379067154_D+0.0_iD; // 1 / pi
     69const double _Complex _2_PI = 0.63661977236758134308_D+0.0_iD; // 2 / pi
     70const double _Complex _2_SQRT_PI = 1.12837916709551257390_D+0.0_iD; // 2 / sqrt(pi)
    7671
    77 const long double PI = M_PIl;                                                   // pi
    78 const long double PI_2 = M_PI_2l;                                               // pi / 2
    79 const long double PI_4 = M_PI_4l;                                               // pi / 4
    80 const long double _1_PI = M_1_PIl;                                              // 1 / pi
    81 const long double _2_PI = M_2_PIl;                                              // 2 / pi
    82 const long double _2_SQRT_PI = M_2_SQRTPIl;                             // 2 / sqrt(pi)
     72const long double _Complex PI = 3.1415926535897932384626433832795029_L+0.0iL; // pi
     73const long double _Complex PI_2 = 1.5707963267948966192313216916397514_L+0.0iL; // pi / 2
     74const long double _Complex PI_4 = 0.7853981633974483096156608458198757_L+0.0iL; // pi / 4
     75const long double _Complex _1_PI = 0.3183098861837906715377675267450287_L+0.0iL; // 1 / pi
     76const long double _Complex _2_PI = 0.6366197723675813430755350534900574_L+0.0iL; // 2 / pi
     77const long double _Complex _2_SQRT_PI = 1.1283791670955125738961589031215452_L+0.0iL; // 2 / sqrt(pi)
    8378
    84 const float _Complex PI = (float)M_PI + 0.0_iF;                 // pi
    85 const float _Complex PI_2 = (float)M_PI_2 + 0.0_iF;             // pi / 2
    86 const float _Complex PI_4 = (float)M_PI_4 + 0.0_iF;             // pi / 4
    87 const float _Complex _1_PI = (float)M_1_PI + 0.0_iF;    // 1 / pi
    88 const float _Complex _2_PI = (float)M_2_PI + 0.0_iF;    // 2 / pi
    89 const float _Complex _2_SQRT_PI = (float)M_2_SQRTPI + 0.0_iF; // 2 / sqrt(pi)
     79const float E = 2.718281;                                                               // e
     80const float LOG2_E = 1.442695;                                                  // log_2(e)
     81const float LOG10_E = 0.4342944;                                                // log_10(e)
     82const float LN_2 = 0.6931471;                                                   // log_e(2)
     83const float LN_10 = 2.302585;                                                   // log_e(10)
     84const float SQRT_2 = 1.414213;                                                  // sqrt(2)
     85const float _1_SQRT_2 = 0.7071067;                                              // 1 / sqrt(2)
    9086
    91 const double _Complex PI = M_PI + 0.0_iD;                               // pi
    92 const double _Complex PI_2 = M_PI_2 + 0.0_iD;                   // pi / 2
    93 const double _Complex PI_4 = M_PI_4 + 0.0_iD;                   // pi / 4
    94 const double _Complex _1_PI = M_1_PI + 0.0_iD;                  // 1 / pi
    95 const double _Complex _2_PI = M_2_PI + 0.0_iD;                  // 2 / pi
    96 const double _Complex _2_SQRT_PI = M_2_SQRTPI + 0.0_iD; // 2 / sqrt(pi)
     87const double E = 2.7182818284590452354_D;                               // e
     88const double LOG2_E = 1.4426950408889634074_D;                  // log_2(e)
     89const double LOG10_E = 0.43429448190325182765_D;                // log_10(e)
     90const double LN_2 = 0.69314718055994530942_D;                   // log_e(2)
     91const double LN_10 = 2.30258509299404568402_D;                  // log_e(10)
     92const double SQRT_2 = 1.41421356237309504880_D;                 // sqrt(2)
     93const double _1_SQRT_2 = 0.70710678118654752440_D;              // 1 / sqrt(2)
    9794
    98 const long double _Complex PI = M_PIl + 0.0_iL;                 // pi
    99 const long double _Complex PI_2 = M_PI_2l + 0.0_iL;             // pi / 2
    100 const long double _Complex PI_4 = M_PI_4l + 0.0_iL;             // pi / 4
    101 const long double _Complex _1_PI = M_1_PIl + 0.0_iL;    // 1 / pi
    102 const long double _Complex _2_PI = M_2_PIl + 0.0_iL;    // 2 / pi
    103 const long double _Complex _2_SQRT_PI = M_2_SQRTPIl + 0.0_iL; // 2 / sqrt(pi)
     95const long double E = 2.7182818284590452353602874713526625_DL; // e
     96const long double LOG2_E = 1.4426950408889634073599246810018921_DL; // log_2(e)
     97const long double LOG10_E = 0.4342944819032518276511289189166051_DL; // log_10(e)
     98const long double LN_2 = 0.6931471805599453094172321214581766_DL; // log_e(2)
     99const long double LN_10 = 2.3025850929940456840179914546843642_DL; // log_e(10)
     100const long double SQRT_2 = 1.4142135623730950488016887242096981_DL; // sqrt(2)
     101const long double _1_SQRT_2 = 0.7071067811865475244008443621048490_DL; // 1/sqrt(2)
    104102
    105 const float E = (float)M_E;                                                             // e
    106 const float LOG2_E = (float)M_LOG2E;                                    // log_2(e)
    107 const float LOG10_E = (float)M_LOG10E;                                  // log_10(e)
    108 const float LN_2 = (float)M_LN2;                                                // log_e(2)
    109 const float LN_10 = (float)M_LN10;                                              // log_e(10)
    110 const float SQRT_2 = (float)M_SQRT2;                                    // sqrt(2)
    111 const float _1_SQRT_2 = (float)M_SQRT1_2;                               // 1 / sqrt(2)
     103const double _Complex E = 2.7182818284590452354_D+0.0_iD; // e
     104const double _Complex LOG2_E = 1.4426950408889634074_D+0.0_iD; // log_2(e)
     105const double _Complex LOG10_E = 0.43429448190325182765_D+0.0_iD; // log_10(e)
     106const double _Complex LN_2 = 0.69314718055994530942_D+0.0_iD; // log_e(2)
     107const double _Complex LN_10 = 2.30258509299404568402_D+0.0_iD; // log_e(10)
     108const double _Complex SQRT_2 = 1.41421356237309504880_D+0.0_iD; // sqrt(2)
     109const double _Complex _1_SQRT_2 = 0.70710678118654752440_D+0.0_iD; // 1 / sqrt(2)
    112110
    113 const double E = M_E;                                                                   // e
    114 const double LOG2_E = M_LOG2E;                                                  // log_2(e)
    115 const double LOG10_E = M_LOG10E;                                                // log_10(e)
    116 const double LN_2 = M_LN2;                                                              // log_e(2)
    117 const double LN_10 = M_LN10;                                                    // log_e(10)
    118 const double SQRT_2 = M_SQRT2;                                                  // sqrt(2)
    119 const double _1_SQRT_2 = M_SQRT1_2;                                             // 1 / sqrt(2)
    120 
    121 const long double E = M_El;                                                             // e
    122 const long double LOG2_E = M_LOG2El;                                    // log_2(e)
    123 const long double LOG10_E = M_LOG10El;                                  // log_10(e)
    124 const long double LN_2 = M_LN2l;                                                // log_e(2)
    125 const long double LN_10 = M_LN10l;                                              // log_e(10)
    126 const long double SQRT_2 = M_SQRT2l;                                    // sqrt(2)
    127 const long double _1_SQRT_2 = M_SQRT1_2l;                               // 1 / sqrt(2)
    128 
    129 const float _Complex E = M_E + 0.0_iF;                                  // e
    130 const float _Complex LOG2_E = M_LOG2E + 0.0_iF;                 // log_2(e)
    131 const float _Complex LOG10_E = M_LOG10E + 0.0_iF;               // log_10(e)
    132 const float _Complex LN_2 = M_LN2 + 0.0_iF;                             // log_e(2)
    133 const float _Complex LN_10 = M_LN10 + 0.0_iF;                   // log_e(10)
    134 const float _Complex SQRT_2 = M_SQRT2 + 0.0_iF;                 // sqrt(2)
    135 const float _Complex _1_SQRT_2 = M_SQRT1_2 + 0.0_iF;    // 1 / sqrt(2)
    136 
    137 const double _Complex E = M_E + 0.0_iD;                                 // e
    138 const double _Complex LOG2_E = M_LOG2E + 0.0_iD;                // log_2(e)
    139 const double _Complex LOG10_E = M_LOG10E + 0.0_iD;              // log_10(e)
    140 const double _Complex LN_2 = M_LN2 + 0.0_iD;                    // log_e(2)
    141 const double _Complex LN_10 = M_LN10 + 0.0_iD;                  // log_e(10)
    142 const double _Complex SQRT_2 = M_SQRT2 + 0.0_iD;                // sqrt(2)
    143 const double _Complex _1_SQRT_2 = M_SQRT1_2 + 0.0_iD;   // 1 / sqrt(2)
    144 
    145 const long double _Complex E = M_El + 0.0_iL;                   // e
    146 const long double _Complex LOG2_E = M_LOG2El + 0.0_iL;  // log_2(e)
    147 const long double _Complex LOG10_E = M_LOG10El + 0.0_iL; // log_10(e)
    148 const long double _Complex LN_2 = M_LN2l + 0.0_iL;              // log_e(2)
    149 const long double _Complex LN_10 = M_LN10l + 0.0_iL;    // log_e(10)
    150 const long double _Complex SQRT_2 = M_SQRT2l + 0.0_iL;  // sqrt(2)
    151 const long double _Complex _1_SQRT_2 = M_SQRT1_2l + 0.0_iL; // 1 / sqrt(2)
     111const long double _Complex E = 2.7182818284590452353602874713526625_L+0.0_iL; // e
     112const long double _Complex LOG2_E = 1.4426950408889634073599246810018921_L+0.0_iL; // log_2(e)
     113const long double _Complex LOG10_E = 0.4342944819032518276511289189166051_L+0.0_iL; // log_10(e)
     114const long double _Complex LN_2 = 0.6931471805599453094172321214581766_L+0.0_iL; // log_e(2)
     115const long double _Complex LN_10 = 2.3025850929940456840179914546843642_L+0.0_iL; // log_e(10)
     116const long double _Complex SQRT_2 = 1.4142135623730950488016887242096981_L+0.0_iL; // sqrt(2)
     117const long double _Complex _1_SQRT_2 = 0.7071067811865475244008443621048490_L+0.0_iL; // 1 / sqrt(2)
    152118
    153119// Local Variables: //
Note: See TracChangeset for help on using the changeset viewer.