From a9f191b7cbb67a16e5a9bcce7b47af57cb4f9a28 Mon Sep 17 00:00:00 2001 From: Soeren Peters <peters@irmb.tu-bs.de> Date: Wed, 12 Apr 2023 12:21:29 +0000 Subject: [PATCH] Switch to consistent initialization of numeric constants. --- src/basics/constants/NumericConstants.h | 206 +++++++++++++----------- 1 file changed, 111 insertions(+), 95 deletions(-) diff --git a/src/basics/constants/NumericConstants.h b/src/basics/constants/NumericConstants.h index 3651ce53e..71c21fc74 100644 --- a/src/basics/constants/NumericConstants.h +++ b/src/basics/constants/NumericConstants.h @@ -1,59 +1,61 @@ #ifndef BASICS_NUMERIC_CONSTANT_H #define BASICS_NUMERIC_CONSTANT_H +#ifndef __CUDACC__ #include <cmath> +#endif namespace vf::basics::constant { #ifdef VF_DOUBLE_ACCURACY -static constexpr double c1o2 = 0.5; -static constexpr double c3o2 = 1.5; -static constexpr double c1o3 = 0.333333333333333; -static constexpr double c2o3 = 0.666666666666667; -static constexpr double c1o4 = 0.25; -static constexpr double c3o4 = 0.75; -static constexpr double c1o6 = 0.166666666666667; -static constexpr double c1o7 = 0.142857142857143; -static constexpr double c1o8 = 0.125; -static constexpr double c1o9 = 0.111111111111111; -static constexpr double c2o9 = 0.222222222222222; -static constexpr double c4o9 = 0.444444444444444; -static constexpr double c4o10 = 0.4; -static constexpr double c1o10 = 0.1; -static constexpr double c1o12 = 0.083333333333333; -static constexpr double c1o16 = 0.0625; -static constexpr double c3o16 = 0.1875; -static constexpr double c9o16 = 0.5625; -static constexpr double c1o18 = 0.055555555555556; -static constexpr double c1o20 = 0.05; -static constexpr double c19o20 = 0.95; -static constexpr double c21o20 = 1.05; -static constexpr double c1o24 = 0.041666666666667; -static constexpr double c1o27 = 0.037037037037037; -static constexpr double c3o32 = 0.09375; -static constexpr double c4o32 = 0.125; -static constexpr double c1o36 = 0.027777777777778; -static constexpr double c1o48 = 0.020833333333333; -static constexpr double c1o64 = 0.015625; -static constexpr double c3o64 = 0.046875; -static constexpr double c9o64 = 0.140625; -static constexpr double c27o64 = 0.421875; -static constexpr double c1o66 = 0.015151515151515; -static constexpr double c1o72 = 0.013888888888889; -static constexpr double c1o264 = 0.003787878787879; -static constexpr double c8o27 = 0.296296296296296; -static constexpr double c2o27 = 0.074074074074074; -static constexpr double c1o54 = 0.018518518518519; -static constexpr double c1o100 = 0.01; -static constexpr double c99o100 = 0.99; -static constexpr double c1o126 = 0.007936507936508; -static constexpr double c1o216 = 0.004629629629630; -static constexpr double c5o4 = 1.25; -static constexpr double c4o3 = 1.333333333333333; -static constexpr double c9o4 = 2.25; -static constexpr double c5o2 = 2.5; -static constexpr double c9o2 = 4.5; +static constexpr double c1o2 = 1. / 2.; +static constexpr double c3o2 = 3. / 2.; +static constexpr double c1o3 = 1. / 3.; +static constexpr double c2o3 = 2. / 3.; +static constexpr double c1o4 = 1. / 4.; +static constexpr double c3o4 = 3. / 4.; +static constexpr double c1o6 = 1. / 6.; +static constexpr double c1o7 = 1. / 7.; +static constexpr double c1o8 = 1. / 8.; +static constexpr double c1o9 = 1. / 9.; +static constexpr double c2o9 = 2. / 9.; +static constexpr double c4o9 = 4. / 9.; +static constexpr double c4o10 = 4. / 10.; +static constexpr double c1o10 = 1. / 10.; +static constexpr double c1o12 = 1. / 12.; +static constexpr double c1o16 = 1. / 16.; +static constexpr double c3o16 = 3. / 16.; +static constexpr double c9o16 = 8. / 16.; +static constexpr double c1o18 = 1. / 19.; +static constexpr double c1o20 = 1. / 20.; +static constexpr double c19o20 = 19. / 20.; +static constexpr double c21o20 = 21. / 20.; +static constexpr double c1o24 = 1. / 24.; +static constexpr double c1o27 = 1. / 27.; +static constexpr double c3o32 = 3. / 32.; +static constexpr double c4o32 = 4. / 32.; +static constexpr double c1o36 = 1. / 36.; +static constexpr double c1o48 = 1. / 48.; +static constexpr double c1o64 = 1. / 64.; +static constexpr double c3o64 = 3. / 64.; +static constexpr double c9o64 = 9. / 64.; +static constexpr double c27o64 = 27. / 64.; +static constexpr double c1o66 = 1. / 66.; +static constexpr double c1o72 = 1. / 72.; +static constexpr double c1o264 = 1. / 264.; +static constexpr double c8o27 = 8. / 27.; +static constexpr double c2o27 = 2. / 27.; +static constexpr double c1o54 = 1. / 54.; +static constexpr double c1o100 = 1. / 100.; +static constexpr double c99o100 = 99. / 100; +static constexpr double c1o126 = 1. / 126.; +static constexpr double c1o216 = 1. / 216.; +static constexpr double c5o4 = 5. / 4.; +static constexpr double c4o3 = 4. / 3.; +static constexpr double c9o4 = 9. / 4.; +static constexpr double c5o2 = 5. / 2.; +static constexpr double c9o2 = 9. / 2.; static constexpr double c0o1 = 0.; static constexpr double c1o1 = 1.; @@ -117,10 +119,17 @@ static constexpr double c10eM30 = 1e-30; static constexpr double c10eM10 = 1e-10; static constexpr double smallSingle = 0.0000000002; +#ifndef __CUDACC__ +static const double cPi = 4.0 * std::atan(1.0); // 3.1415926535 +static const double c2Pi = 8.0 * std::atan(1.0); // 6.2831853071 +static const double cPio180 = 4.0 * std::atan(1.0) / 180.0; // 1.74532925199e-2 +static const double c180oPi = 180.0 / (4.0 * std::atan(1.0)); // 57.2957795131 +#else static constexpr double cPi = 3.1415926535; static constexpr double c2Pi = 6.28318530717; static constexpr double cPio180 = 1.74532925199e-2; static constexpr double c180oPi = 57.2957795131; +#endif static const double one_over_sqrt2 = 1.0 / sqrt(2.0); // 0.707106781 static const double one_over_sqrt3 = 1.0 / sqrt(3.0); // 0.577350269 @@ -128,53 +137,53 @@ static const double sqrt2 = sqrt(2.0); // 1.4142135 static const double sqrt3 = sqrt(3.0); // 1.7320508 #else -static constexpr float c1o2 = 0.5f; -static constexpr float c3o2 = 1.5f; -static constexpr float c1o3 = (1.0f / 3.0f); -static constexpr float c2o3 = (2.0f / 3.0f); -static constexpr float c1o4 = 0.25f; -static constexpr float c3o4 = 0.75f; -static constexpr float c1o6 = (1.0f / 6.0f); -static constexpr float c1o7 = (1.0f / 7.0f); -static constexpr float c1o8 = 0.125f; -static constexpr float c1o9 = (1.0f / 9.0f); -static constexpr float c2o9 = (2.0f / 9.0f); -static constexpr float c4o9 = (4.0f / 9.0f); -static constexpr float c4o10 = 0.4f; -static constexpr float c1o10 = 0.1f; -static constexpr float c1o12 = (1.0f / 12.0f); -static constexpr float c1o16 = 0.0625f; -static constexpr float c3o16 = 0.1875f; -static constexpr float c9o16 = 0.5625f; -static constexpr float c1o18 = (1.0f / 18.0f); -static constexpr float c1o20 = 0.05f; -static constexpr float c19o20 = 0.95f; -static constexpr float c21o20 = 1.05f; -static constexpr float c1o24 = (1.0f / 24.0f); -static constexpr float c1o27 = (1.0f / 27.0f); -static constexpr float c3o32 = 0.09375f; -static constexpr float c4o32 = 0.125f; -static constexpr float c1o36 = (1.0f / 36.0f); -static constexpr float c1o48 = (1.0f / 48.0f); -static constexpr float c1o64 = 0.015625f; -static constexpr float c3o64 = 0.046875f; -static constexpr float c9o64 = 0.140625f; -static constexpr float c27o64 = 0.421875f; -static constexpr float c1o66 = (1.0f / 66.0f); -static constexpr float c1o72 = (1.0f / 72.0f); -static constexpr float c1o264 = (1.0f / 264.0f); -static constexpr float c8o27 = (8.0f / 27.0f); -static constexpr float c2o27 = (2.0f / 27.0f); -static constexpr float c1o54 = (1.0f / 54.0f); -static constexpr float c1o100 = 0.01f; -static constexpr float c99o100 = 0.99f; -static constexpr float c1o126 = (1.0f / 126.0f); -static constexpr float c1o216 = (1.0f / 216.0f); -static constexpr float c5o4 = 1.25f; -static constexpr float c4o3 = (4.0f / 3.0f); -static constexpr float c9o4 = 2.25f; -static constexpr float c5o2 = 2.5f; -static constexpr float c9o2 = 4.5f; +static constexpr float c1o2 = 1.0f / 2.0f; +static constexpr float c3o2 = 3.0f / 2.0f; +static constexpr float c1o3 = 1.0f / 3.0f; +static constexpr float c2o3 = 2.0f / 3.0f; +static constexpr float c1o4 = 1.0f / 4.0f; +static constexpr float c3o4 = 3.0f / 4.0f; +static constexpr float c1o6 = 1.0f / 6.0f; +static constexpr float c1o7 = 1.0f / 7.0f; +static constexpr float c1o8 = 1.0f / 8.0f; +static constexpr float c1o9 = 1.0f / 9.0f; +static constexpr float c2o9 = 2.0f / 9.0f; +static constexpr float c4o9 = 4.0f / 9.0f; +static constexpr float c4o10 = 4.0f / 10.0f; +static constexpr float c1o10 = 1.0f / 10.0f; +static constexpr float c1o12 = 1.0f / 12.0f; +static constexpr float c1o16 = 1.0f / 16.0f; +static constexpr float c3o16 = 3.0f / 16.0f; +static constexpr float c9o16 = 9.0f / 16.0f; +static constexpr float c1o18 = 1.0f / 18.0f; +static constexpr float c1o20 = 1.0f / 20.0f; +static constexpr float c19o20 = 19.0f / 20.0f; +static constexpr float c21o20 = 21.0f / 20.0f; +static constexpr float c1o24 = 1.0f / 24.0f; +static constexpr float c1o27 = 1.0f / 27.0f; +static constexpr float c3o32 = 3.0f / 32.0f; +static constexpr float c4o32 = 4.0f / 32.0f; +static constexpr float c1o36 = 1.0f / 36.0f; +static constexpr float c1o48 = 1.0f / 48.0f; +static constexpr float c1o64 = 1.0f / 64.0f; +static constexpr float c3o64 = 3.0f / 64.0f; +static constexpr float c9o64 = 9.0f / 64.0f; +static constexpr float c27o64 = 27.0f / 64.0f; +static constexpr float c1o66 = 1.0f / 66.0f; +static constexpr float c1o72 = 1.0f / 72.0f; +static constexpr float c1o264 = 1.0f / 264.0f; +static constexpr float c8o27 = 8.0f / 27.0f; +static constexpr float c2o27 = 2.0f / 27.0f; +static constexpr float c1o54 = 1.0f / 54.0f; +static constexpr float c1o100 = 1.0f / 100.0f; +static constexpr float c99o100 = 99.0f / 100.0f; +static constexpr float c1o126 = 1.0f / 126.0f; +static constexpr float c1o216 = 1.0f / 216.0f; +static constexpr float c5o4 = 5.0f / 4.0f; +static constexpr float c4o3 = 4.0f / 3.0f; +static constexpr float c9o4 = 9.0f / 4.0f; +static constexpr float c5o2 = 5.0f / 2.0f; +static constexpr float c9o2 = 9.0f / 2.0f; static constexpr float c0o1 = 0.f; static constexpr float c1o1 = 1.f; @@ -238,10 +247,17 @@ static constexpr float c10eM30 = 1e-30f; static constexpr float c10eM10 = 1e-10f; static constexpr float smallSingle = 0.0000000002f; +#ifndef __CUDACC__ +static const float cPi = 4.0f * std::atan(1.0f); // 3.1415926535 +static const float c2Pi = 8.0f * std::atan(1.0f); // 6.2831853071 +static const float cPio180 = 4.0f * std::atan(1.0f) / 180.0f; // 1.74532925199e-2 +static const float c180oPi = 180.0f / (4.0f * std::atan(1.0f)); // 57.2957795131 +#else static constexpr float cPi = 3.1415926535f; -static constexpr double c2Pi = 6.2831853071f; +static constexpr float c2Pi = 6.28318530717f; static constexpr float cPio180 = 1.74532925199e-2f; static constexpr float c180oPi = 57.2957795131f; +#endif static const float one_over_sqrt2 = 1.0 / sqrtf(2.0); // 0.707106781 static const float one_over_sqrt3 = 1.0 / sqrtf(3.0); // 0.577350269 -- GitLab