diff options
author | vitamin-ca <vitamin-ca@yandex-team.ru> | 2022-02-10 16:50:47 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:50:47 +0300 |
commit | 1fc0bdffa16f1d19af9025338185cc8533b09606 (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 | |
parent | 33975e98548306c90ccdc156bc436408a213be00 (diff) | |
download | ydb-1fc0bdffa16f1d19af9025338185cc8533b09606.tar.gz |
Restoring authorship annotation for <vitamin-ca@yandex-team.ru>. Commit 2 of 2.
-rw-r--r-- | library/cpp/hyperloglog/hyperloglog.cpp | 178 | ||||
-rw-r--r-- | library/cpp/hyperloglog/hyperloglog.h | 50 | ||||
-rw-r--r-- | library/cpp/hyperloglog/hyperloglog_corrections.inc | 2440 | ||||
-rw-r--r-- | library/cpp/hyperloglog/hyperloglog_ut.cpp | 102 | ||||
-rw-r--r-- | library/cpp/packers/packers.h | 2 | ||||
-rw-r--r-- | util/charset/wide.h | 4 |
6 files changed, 1388 insertions, 1388 deletions
diff --git a/library/cpp/hyperloglog/hyperloglog.cpp b/library/cpp/hyperloglog/hyperloglog.cpp index df4637a7ee..ec8352abe1 100644 --- a/library/cpp/hyperloglog/hyperloglog.cpp +++ b/library/cpp/hyperloglog/hyperloglog.cpp @@ -1,55 +1,55 @@ #include "hyperloglog.h" - -#include <util/generic/bitops.h> -#include <util/generic/yexception.h> -#include <util/stream/output.h> - -#include <algorithm> -#include <array> -#include <cmath> -#include <functional> - -namespace { - using TLookup = std::array<double, 256>; - - struct TCorrection { - TLookup Estimations; - TLookup Biases; - - double GetBias(double e) const { - for (size_t idx = 0;; ++idx) { - const auto estr = Estimations[idx]; - if (estr >= e) { - if (idx == 0) { - return Biases[0]; - } - const auto estl = Estimations[idx - 1]; - const auto biasl = Biases[idx - 1]; - const auto biasr = Biases[idx]; - const auto de = estr - estl; - const auto db = biasr - biasl; - const auto scale = e - estl; - return biasl + scale * db / de; - } else if (std::fabs(estr) < 1e-4) { - //limiter - return Biases[idx - 1]; - } - } - } - }; - - double EstimateBias(double e, unsigned precision) { + +#include <util/generic/bitops.h> +#include <util/generic/yexception.h> +#include <util/stream/output.h> + +#include <algorithm> +#include <array> +#include <cmath> +#include <functional> + +namespace { + using TLookup = std::array<double, 256>; + + struct TCorrection { + TLookup Estimations; + TLookup Biases; + + double GetBias(double e) const { + for (size_t idx = 0;; ++idx) { + const auto estr = Estimations[idx]; + if (estr >= e) { + if (idx == 0) { + return Biases[0]; + } + const auto estl = Estimations[idx - 1]; + const auto biasl = Biases[idx - 1]; + const auto biasr = Biases[idx]; + const auto de = estr - estl; + const auto db = biasr - biasl; + const auto scale = e - estl; + return biasl + scale * db / de; + } else if (std::fabs(estr) < 1e-4) { + //limiter + return Biases[idx - 1]; + } + } + } + }; + + double EstimateBias(double e, unsigned precision) { static const TCorrection CORRECTIONS[1 + THyperLogLog::PRECISION_MAX - THyperLogLog::PRECISION_MIN] = { #include "hyperloglog_corrections.inc" - }; + }; if (precision < THyperLogLog::PRECISION_MIN || precision > THyperLogLog::PRECISION_MAX) { - return 0.; - } - + return 0.; + } + return CORRECTIONS[precision - THyperLogLog::PRECISION_MIN].GetBias(e); - } - - double GetThreshold(unsigned precision) { + } + + double GetThreshold(unsigned precision) { static const double THRESHOLD_DATA[1 + THyperLogLog::PRECISION_MAX - THyperLogLog::PRECISION_MIN] = { 10, // Precision 4 20, // Precision 5 @@ -66,16 +66,16 @@ namespace { 50000, // Precision 16 120000, // Precision 17 350000 // Precision 18 - }; + }; if (precision < THyperLogLog::PRECISION_MIN || precision > THyperLogLog::PRECISION_MAX) { - return 0.; - } - + return 0.; + } + return THRESHOLD_DATA[precision - THyperLogLog::PRECISION_MIN]; - } - - double EmpiricAlpha(size_t m) { - switch (m) { + } + + double EmpiricAlpha(size_t m) { + switch (m) { case 16: return 0.673; case 32: @@ -84,54 +84,54 @@ namespace { return 0.709; default: return 0.7213 / (1.0 + 1.079 / m); - } - } - + } + } + double RawEstimate(const ui8* counts, size_t size) { - double sum = {}; + double sum = {}; for (size_t i = 0; i < size; ++i) { sum += std::pow(2.0, -counts[i]); - } + } return EmpiricAlpha(size) * size * size / sum; - } - - double LinearCounting(size_t registers, size_t zeroed) { - return std::log(double(registers) / zeroed) * registers; - } -} - + } + + double LinearCounting(size_t registers, size_t zeroed) { + return std::log(double(registers) / zeroed) * registers; + } +} + THyperLogLogBase::THyperLogLogBase(unsigned precision) : Precision(precision) { - Y_ENSURE(precision >= PRECISION_MIN && precision <= PRECISION_MAX); -} - + Y_ENSURE(precision >= PRECISION_MIN && precision <= PRECISION_MAX); +} + void THyperLogLogBase::Update(ui64 hash) { - const unsigned subHashBits = 8 * sizeof(hash) - Precision; - const auto subHash = hash & MaskLowerBits(subHashBits); - const auto leadingZeroes = subHash ? (subHashBits - GetValueBitCount(subHash)) : subHashBits; + const unsigned subHashBits = 8 * sizeof(hash) - Precision; + const auto subHash = hash & MaskLowerBits(subHashBits); + const auto leadingZeroes = subHash ? (subHashBits - GetValueBitCount(subHash)) : subHashBits; const ui8 weight = static_cast<ui8>(leadingZeroes + 1); - - const size_t reg = static_cast<size_t>(hash >> subHashBits); + + const size_t reg = static_cast<size_t>(hash >> subHashBits); RegistersRef[reg] = std::max(RegistersRef[reg], weight); -} - +} + void THyperLogLogBase::Merge(const THyperLogLogBase& rh) { - Y_ENSURE(Precision == rh.Precision); - + Y_ENSURE(Precision == rh.Precision); + std::transform(RegistersRef.begin(), RegistersRef.end(), rh.RegistersRef.begin(), RegistersRef.begin(), [](ui8 l, ui8 r) { return std::max(l, r); }); -} - +} + ui64 THyperLogLogBase::Estimate() const { const auto m = RegistersRef.size(); const auto e = RawEstimate(RegistersRef.data(), m); - - const auto e_ = e <= 5 * m ? (e - EstimateBias(e, Precision)) : e; + + const auto e_ = e <= 5 * m ? (e - EstimateBias(e, Precision)) : e; const auto v = std::count(RegistersRef.begin(), RegistersRef.end(), ui8(0)); - const auto h = v != 0 ? LinearCounting(m, v) : e_; - return h <= GetThreshold(Precision) ? h : e_; -} - + const auto h = v != 0 ? LinearCounting(m, v) : e_; + return h <= GetThreshold(Precision) ? h : e_; +} + void THyperLogLogBase::Save(IOutputStream& out) const { - out.Write(static_cast<char>(Precision)); + out.Write(static_cast<char>(Precision)); out.Write(RegistersRef.data(), RegistersRef.size() * sizeof(RegistersRef.front())); -} +} diff --git a/library/cpp/hyperloglog/hyperloglog.h b/library/cpp/hyperloglog/hyperloglog.h index f5c09cdc41..e79ee0ed77 100644 --- a/library/cpp/hyperloglog/hyperloglog.h +++ b/library/cpp/hyperloglog/hyperloglog.h @@ -1,30 +1,30 @@ -#pragma once - -#include <util/system/types.h> +#pragma once + +#include <util/system/types.h> #include <util/stream/input.h> #include <util/generic/array_ref.h> - -#include <vector> - -class IOutputStream; - + +#include <vector> + +class IOutputStream; + class THyperLogLogBase { protected: explicit THyperLogLogBase(unsigned precision); - -public: - static const constexpr unsigned PRECISION_MIN = 4; - - static const constexpr unsigned PRECISION_MAX = 18; - - void Update(ui64 hash); - + +public: + static const constexpr unsigned PRECISION_MIN = 4; + + static const constexpr unsigned PRECISION_MAX = 18; + + void Update(ui64 hash); + void Merge(const THyperLogLogBase& rh); - - ui64 Estimate() const; - - void Save(IOutputStream& out) const; - + + ui64 Estimate() const; + + void Save(IOutputStream& out) const; + protected: unsigned Precision; @@ -38,8 +38,8 @@ private: : THyperLogLogBase(precision) { Registers.resize(1u << precision); RegistersRef = MakeArrayRef(Registers); - } - + } + public: THyperLogLogWithAlloc(THyperLogLogWithAlloc&&) = default; @@ -57,8 +57,8 @@ public: return res; } -private: +private: std::vector<ui8, Alloc> Registers; -}; +}; using THyperLogLog = THyperLogLogWithAlloc<std::allocator<ui8>>; diff --git a/library/cpp/hyperloglog/hyperloglog_corrections.inc b/library/cpp/hyperloglog/hyperloglog_corrections.inc index 1bfaea59c2..28c57157e7 100644 --- a/library/cpp/hyperloglog/hyperloglog_corrections.inc +++ b/library/cpp/hyperloglog/hyperloglog_corrections.inc @@ -1,1220 +1,1220 @@ -// Precision 4 -{ - {{ - 11.000000, 11.717000, 12.207000, 12.789600, 13.288200, 13.820400, - 14.377200, 14.934200, 15.520200, 16.161000, 16.772200, 17.463600, - 18.039600, 18.676600, 19.356600, 20.045400, 20.793600, 21.485600, - 22.266600, 22.994600, 23.766000, 24.469200, 25.363800, 26.076400, - 26.786400, 27.760200, 28.481400, 29.433000, 30.292600, 31.066400, - 31.999600, 32.795600, 33.536600, 34.589400, 35.573800, 36.269800, - 37.368200, 38.054400, 39.234200, 40.010800, 40.796600, 41.929800, - 42.870400, 43.635800, 44.519400, 45.773000, 46.677200, 47.617400, - 48.488800, 49.330400, 50.250600, 51.499600, 52.382400, 53.307800, - 54.398400, 55.583800, 56.661800, 57.217400, 58.351400, 59.080200, - 60.148200, 61.037600, 62.359800, 62.807800, 63.974400, 64.914000, - 65.781000, 67.180600, 68.059400, 68.844600, 69.792800, 70.824800, - 71.832400, 72.859800, 73.624600, 74.701400, 75.393000, 76.670800, - 77.239400 - }}, - {{ - 10.000000, 9.717000, 9.207000, 8.789600, 8.288200, 7.820400, - 7.377200, 6.934200, 6.520200, 6.161000, 5.772200, 5.463600, - 5.039600, 4.676600, 4.356600, 4.045400, 3.793600, 3.485600, - 3.266600, 2.994600, 2.766000, 2.469200, 2.363800, 2.076400, - 1.786400, 1.760200, 1.481400, 1.433000, 1.292600, 1.066400, - 0.999600, 0.795600, 0.536600, 0.589400, 0.573800, 0.269800, - 0.368200, 0.054400, 0.234200, 0.010800, -0.203400, -0.070200, - -0.129600, -0.364200, -0.480600, -0.227000, -0.322800, -0.382600, - -0.511200, -0.669600, -0.749400, -0.500400, -0.617600, -0.692200, - -0.601600, -0.416200, -0.338200, -0.782600, -0.648600, -0.919800, - -0.851800, -0.962400, -0.640200, -1.192200, -1.025600, -1.086000, - -1.219000, -0.819400, -0.940600, -1.155400, -1.207200, -1.175200, - -1.167600, -1.140200, -1.375400, -1.298600, -1.607000, -1.329200, - -1.760600 - }} -}, - -// Precision 5 -{ - {{ - 23.000000, 23.119400, 23.820800, 24.231800, 24.770000, 25.243600, - 25.777400, 26.284800, 26.822400, 27.374200, 27.933600, 28.503000, - 29.049400, 29.629200, 30.212400, 30.798000, 31.367000, 31.972800, - 32.594400, 33.217000, 33.843800, 34.369600, 35.095600, 35.704400, - 36.324000, 37.066800, 37.669800, 38.364400, 39.049000, 39.691800, - 40.414600, 41.082000, 41.687000, 42.539800, 43.246200, 43.857000, - 44.660600, 45.416800, 46.124800, 46.922200, 47.680400, 48.447000, - 49.345400, 49.959400, 50.763600, 51.577600, 52.331000, 53.190000, - 53.967600, 54.756400, 55.531400, 56.444200, 57.370800, 57.977400, - 58.962400, 59.879600, 60.755000, 61.472000, 62.207600, 63.102400, - 63.890800, 64.733800, 65.772800, 66.629000, 67.413000, 68.326600, - 69.152400, 70.264200, 71.180600, 72.056600, 72.919200, 73.759800, - 74.351600, 75.580200, 76.438600, 77.491600, 78.152400, 79.189200, - 79.841400, 80.879800, 81.837600, 82.469800, 83.765600, 84.331000, - 85.591400, 86.601200, 87.701600, 88.558200, 89.339400, 90.354400, - 91.491200, 92.308000, 93.355200, 93.974600, 95.205200, 95.727000, - 97.132200, 98.394400, 98.758800, 100.242000, 101.191400, 102.253800, - 102.877600, 103.629200, 105.193200, 105.915200, 107.086800, 107.672800, - 108.714400, 110.311400, 110.871600, 111.245000, 112.790800, 113.706400, - 114.636000, 115.746400, 116.178800, 117.746400, 118.489600, 119.616600, - 120.508200, 121.779800, 122.902800, 123.442600, 124.885400, 125.705000, - 126.465200, 128.346200, 128.346400, 130.039800, 131.004200, 131.034200, - 132.476600, 133.511000, 134.725200, 135.425000, 136.517200, 138.057200, - 138.669400, 139.371200, 140.859800, 141.459400, 142.554000, 143.400600, - 144.737400, 146.163400, 146.899400, 147.605000, 147.930400, 149.163600, - 150.246800, 151.587600, 152.209600, 153.703200, 154.714600, 155.807000, - 156.922800, 157.037200, 158.585200 - }}, - {{ - 22.000000, 21.119400, 20.820800, 20.231800, 19.770000, 19.243600, - 18.777400, 18.284800, 17.822400, 17.374200, 16.933600, 16.503000, - 16.049400, 15.629200, 15.212400, 14.798000, 14.367000, 13.972800, - 13.594400, 13.217000, 12.843800, 12.369600, 12.095600, 11.704400, - 11.324000, 11.066800, 10.669800, 10.364400, 10.049000, 9.691800, - 9.414600, 9.082000, 8.687000, 8.539800, 8.246200, 7.857000, - 7.660600, 7.416800, 7.124800, 6.922200, 6.680400, 6.447000, - 6.345400, 5.959400, 5.763600, 5.577600, 5.331000, 5.190000, - 4.967600, 4.756400, 4.531400, 4.444200, 4.370800, 3.977400, - 3.962400, 3.879600, 3.755000, 3.472000, 3.207600, 3.102400, - 2.890800, 2.733800, 2.772800, 2.629000, 2.413000, 2.326600, - 2.152400, 2.264200, 2.180600, 2.056600, 1.919200, 1.759800, - 1.351600, 1.580200, 1.438600, 1.491600, 1.152400, 1.189200, - 0.841400, 0.879800, 0.837600, 0.469800, 0.765600, 0.331000, - 0.591400, 0.601200, 0.701600, 0.558200, 0.339400, 0.354400, - 0.491200, 0.308000, 0.355200, -0.025400, 0.205200, -0.273000, - 0.132200, 0.394400, -0.241200, 0.242000, 0.191400, 0.253800, - -0.122400, -0.370800, 0.193200, -0.084800, 0.086800, -0.327200, - -0.285600, 0.311400, -0.128400, -0.755000, -0.209200, -0.293600, - -0.364000, -0.253600, -0.821200, -0.253600, -0.510400, -0.383400, - -0.491800, -0.220200, -0.097200, -0.557400, -0.114600, -0.295000, - -0.534800, -0.653800, 0.346400, 0.039800, -0.995800, 0.034200, - -0.523400, -0.489000, -0.274800, -0.575000, -0.482800, 0.057200, - -0.330600, -0.628800, -0.140200, -0.540600, -0.446000, -0.599400, - -0.262600, 0.163400, -0.100600, -0.395000, -1.069600, -0.836400, - -0.753200, -0.412400, -0.790400, -0.296800, -0.285400, -0.193000, - -0.077200, -0.962800, -0.414800 - }} -}, - -// Precision 6 -{ - {{ - 46.000000, 46.190200, 47.271000, 47.835800, 48.814200, 49.285400, - 50.317000, 51.354000, 51.892400, 52.943600, 53.459600, 54.526200, - 55.624800, 56.157400, 57.282200, 57.837000, 58.963600, 60.074000, - 60.704200, 61.797600, 62.477200, 63.656400, 64.794200, 65.500400, - 66.686000, 67.291000, 68.567200, 69.855600, 70.498200, 71.820400, - 72.425200, 73.774400, 75.078600, 75.834400, 77.029400, 77.809800, - 79.079400, 80.573200, 81.187800, 82.564800, 83.290200, 84.678400, - 85.335200, 86.894600, 88.371200, 89.085200, 90.499000, 91.268600, - 92.684400, 94.223400, 94.973200, 96.335600, 97.228600, 98.726200, - 100.328400, 101.104800, 102.596200, 103.356200, 105.127200, 106.418400, - 107.497400, 109.082200, 109.856000, 111.480000, 113.283400, 114.020800, - 115.637000, 116.517400, 118.057600, 119.747600, 120.427000, 122.132600, - 123.237200, 125.278800, 126.677600, 127.792600, 129.195200, 129.956400, - 131.645400, 133.870000, 134.542800, 136.200000, 137.029400, 138.627800, - 139.678200, 141.792000, 143.351600, 144.283200, 146.039400, 147.074800, - 148.491200, 150.849000, 151.696000, 153.540400, 154.073000, 156.371400, - 157.721600, 158.732800, 160.420800, 161.418400, 163.942400, 165.277200, - 166.411000, 168.130800, 168.769000, 170.925800, 172.682800, 173.750200, - 175.706000, 176.388600, 179.018600, 180.451800, 181.927000, 183.417200, - 184.411400, 186.033000, 188.512400, 189.556400, 191.600800, 192.417200, - 193.804400, 194.997000, 197.454800, 198.894800, 200.234600, 202.308600, - 203.154800, 204.884200, 206.650800, 206.677200, 209.725400, 210.475200, - 212.722800, 214.661400, 215.167600, 217.793000, 218.000600, 219.905200, - 221.660000, 223.558800, 225.163600, 225.688200, 227.712600, 229.450200, - 231.197800, 232.975600, 233.165400, 236.727000, 237.747400, 238.197400, - 241.134600, 242.304800, 244.194800, 245.313400, 246.879000, 249.120400, - 249.853000, 252.679200, 253.857000, 254.448600, 257.236200, 257.953400, - 260.028600, 260.563200, 262.663000, 264.723000, 265.756600, 267.162400, - 267.256600, 270.620000, 272.821600, 273.216600, 275.205600, 276.220200, - 278.372600, 280.334400, 281.928400, 283.972800, 284.192400, 286.487200, - 287.587000, 289.807000, 291.120600, 292.769000, 294.870800, 296.665000, - 297.118200, 299.401200, 300.635200, 302.135400, 304.175600, 306.160600, - 307.346200, 308.521400, 309.413400, 310.835200, 313.968400, 315.837000, - 316.779600, 318.985800 - }}, - {{ - 45.000000, 44.190200, 43.271000, 42.835800, 41.814200, 41.285400, - 40.317000, 39.354000, 38.892400, 37.943600, 37.459600, 36.526200, - 35.624800, 35.157400, 34.282200, 33.837000, 32.963600, 32.074000, - 31.704200, 30.797600, 30.477200, 29.656400, 28.794200, 28.500400, - 27.686000, 27.291000, 26.567200, 25.855600, 25.498200, 24.820400, - 24.425200, 23.774400, 23.078600, 22.834400, 22.029400, 21.809800, - 21.079400, 20.573200, 20.187800, 19.564800, 19.290200, 18.678400, - 18.335200, 17.894600, 17.371200, 17.085200, 16.499000, 16.268600, - 15.684400, 15.223400, 14.973200, 14.335600, 14.228600, 13.726200, - 13.328400, 13.104800, 12.596200, 12.356200, 12.127200, 11.418400, - 11.497400, 11.082200, 10.856000, 10.480000, 10.283400, 10.020800, - 9.637000, 9.517400, 9.057600, 8.747600, 8.427000, 8.132600, - 8.237200, 8.278800, 7.677600, 7.792600, 7.195200, 6.956400, - 6.645400, 6.870000, 6.542800, 6.200000, 6.029400, 5.627800, - 5.678200, 5.792000, 5.351600, 5.283200, 5.039400, 5.074800, - 4.491200, 4.849000, 4.696000, 4.540400, 4.073000, 4.371400, - 3.721600, 3.732800, 3.420800, 3.418400, 3.942400, 3.277200, - 3.411000, 3.130800, 2.769000, 2.925800, 2.682800, 2.750200, - 2.706000, 2.388600, 3.018600, 2.451800, 2.927000, 2.417200, - 2.411400, 2.033000, 2.512400, 2.556400, 2.600800, 2.417200, - 1.804400, 1.997000, 2.454800, 1.894800, 2.234600, 2.308600, - 2.154800, 1.884200, 1.650800, 0.677200, 1.725400, 1.475200, - 1.722800, 1.661400, 1.167600, 1.793000, 1.000600, 0.905200, - 0.660000, 1.558800, 1.163600, 0.688200, 0.712600, 0.450200, - 1.197800, 0.975600, 0.165400, 1.727000, -0.252600, 1.197400, - 1.134600, 1.304800, 1.194800, 0.313400, 0.879000, 1.120400, - 0.853000, 1.679200, 0.857000, 0.448600, 1.236200, 0.953400, - 1.028600, 0.563200, 0.663000, 0.723000, 0.756600, -0.837600, - 0.256600, 0.620000, 0.821600, 0.216600, 0.205600, 0.220200, - 0.372600, 0.334400, 0.928400, 0.972800, 0.192400, 0.487200, - -0.413000, 0.807000, 0.120600, 0.769000, 0.870800, 0.665000, - 0.118200, 0.401200, 0.635200, 0.135400, 0.175600, 1.160600, - 0.346200, 0.521400, -0.586600, -1.164800, 0.968400, 0.837000, - 0.779600, 0.985800 - }} -}, - -// Precision 7 -{ - {{ - 92.000000, 93.493400, 94.975800, 96.457400, 97.971800, 99.495400, - 101.530200, 103.075600, 104.637400, 106.178200, 107.788800, 109.952200, - 111.592000, 113.253200, 114.908600, 116.593800, 118.947400, 120.679600, - 122.439400, 124.217600, 125.976800, 128.421400, 130.252800, 132.010200, - 133.865800, 135.727800, 138.304400, 140.131600, 142.093000, 144.003200, - 145.909200, 148.630600, 150.529400, 152.575600, 154.650800, 156.662000, - 159.552000, 161.372400, 163.617000, 165.575400, 167.787200, 169.844400, - 172.798800, 174.860600, 177.211800, 179.356600, 181.447600, 184.588200, - 186.681600, 189.082400, 191.025800, 193.604800, 196.443600, 198.727400, - 200.957000, 203.147000, 205.436400, 208.759200, 211.338600, 213.781000, - 215.802800, 218.656000, 221.654400, 223.996000, 226.471800, 229.154400, - 231.609800, 234.595600, 237.061600, 239.575800, 242.487800, 244.524400, - 248.214600, 250.724000, 252.872200, 255.519800, 258.041400, 261.941000, - 264.904800, 266.870000, 269.430400, 272.028000, 274.470800, 278.370000, - 281.062400, 283.466800, 286.553200, 289.435200, 293.256400, 295.274400, - 298.211800, 300.747200, 304.145600, 307.292800, 309.750400, 312.552800, - 315.979000, 318.210200, 322.183400, 324.349400, 327.325000, 330.661400, - 332.903000, 337.254400, 339.904200, 343.215000, 345.286400, 348.081400, - 352.676400, 355.301000, 357.139000, 360.658000, 363.173200, 366.590200, - 369.953800, 373.082800, 375.922000, 378.990200, 382.732800, 386.453800, - 388.113600, 391.223400, 394.087800, 396.708000, 401.155600, 404.185200, - 406.637200, 409.682200, 412.779600, 416.607800, 418.491600, 422.131000, - 424.537600, 428.198800, 432.211000, 434.450200, 438.528200, 440.912000, - 444.044800, 447.743200, 450.852400, 453.798800, 456.785800, 458.886800, - 463.988600, 466.506400, 468.912400, 472.661600, 475.468200, 478.582000, - 481.304000, 485.273800, 488.689400, 490.329000, 496.106000, 497.690800, - 501.137400, 504.532200, 506.884800, 510.332400, 513.451200, 516.179000, - 520.441200, 522.606600, 526.167000, 528.779400, 533.379000, 536.067000, - 538.460000, 542.911600, 545.692000, 547.954600, 552.493000, 555.272200, - 557.335000, 562.449000, 564.201400, 569.073800, 571.097400, 574.856400, - 578.299600, 581.409000, 583.970400, 585.809800, 589.652800, 594.599800, - 595.958000, 600.068000, 603.327800, 608.201600, 609.963200, 612.864000, - 615.430000, 620.779400, 621.272000, 625.864400, 629.206000, 633.219000, - 634.515400, 638.610200 - }}, - {{ - 91.000000, 89.493400, 87.975800, 86.457400, 84.971800, 83.495400, - 81.530200, 80.075600, 78.637400, 77.178200, 75.788800, 73.952200, - 72.592000, 71.253200, 69.908600, 68.593800, 66.947400, 65.679600, - 64.439400, 63.217600, 61.976800, 60.421400, 59.252800, 58.010200, - 56.865800, 55.727800, 54.304400, 53.131600, 52.093000, 51.003200, - 49.909200, 48.630600, 47.529400, 46.575600, 45.650800, 44.662000, - 43.552000, 42.372400, 41.617000, 40.575400, 39.787200, 38.844400, - 37.798800, 36.860600, 36.211800, 35.356600, 34.447600, 33.588200, - 32.681600, 32.082400, 31.025800, 30.604800, 29.443600, 28.727400, - 27.957000, 27.147000, 26.436400, 25.759200, 25.338600, 24.781000, - 23.802800, 23.656000, 22.654400, 21.996000, 21.471800, 21.154400, - 20.609800, 19.595600, 19.061600, 18.575800, 18.487800, 17.524400, - 17.214600, 16.724000, 15.872200, 15.519800, 15.041400, 14.941000, - 14.904800, 13.870000, 13.430400, 13.028000, 12.470800, 12.370000, - 12.062400, 11.466800, 11.553200, 11.435200, 11.256400, 10.274400, - 10.211800, 9.747200, 10.145600, 9.292800, 8.750400, 8.552800, - 8.979000, 8.210200, 8.183400, 7.349400, 7.325000, 7.661400, - 6.903000, 7.254400, 6.904200, 7.215000, 6.286400, 6.081400, - 6.676400, 6.301000, 5.139000, 5.658000, 5.173200, 4.590200, - 4.953800, 5.082800, 4.922000, 4.990200, 4.732800, 5.453800, - 4.113600, 4.223400, 4.087800, 3.708000, 4.155600, 4.185200, - 3.637200, 3.682200, 3.779600, 3.607800, 2.491600, 3.131000, - 2.537600, 3.198800, 3.211000, 2.450200, 3.528200, 2.912000, - 3.044800, 2.743200, 2.852400, 2.798800, 2.785800, 1.886800, - 2.988600, 2.506400, 1.912400, 2.661600, 2.468200, 1.582000, - 1.304000, 2.273800, 2.689400, 1.329000, 3.106000, 1.690800, - 2.137400, 2.532200, 1.884800, 1.332400, 1.451200, 1.179000, - 2.441200, 1.606600, 2.167000, 0.779400, 2.379000, 2.067000, - 1.460000, 2.911600, 1.692000, 0.954600, 2.493000, 2.272200, - 1.335000, 2.449000, 1.201400, 3.073800, 2.097400, 2.856400, - 2.299600, 2.409000, 1.970400, 0.809800, 1.652800, 2.599800, - 0.958000, 2.068000, 2.327800, 4.201600, 1.963200, 1.864000, - 1.430000, 3.779400, 1.272000, 1.864400, 2.206000, 3.219000, - 1.515400, 2.610200 - }} -}, - -// Precision 8 -{ - {{ - 184.215200, 187.245400, 190.209600, 193.665200, 196.631200, - 199.682200, 203.249000, 206.329600, 210.003800, 213.207400, - 216.461200, 220.270000, 223.517800, 227.441200, 230.803200, - 234.163400, 238.168800, 241.607400, 245.694600, 249.266400, - 252.822800, 257.043200, 260.682400, 264.946400, 268.626800, - 272.262600, 276.837600, 280.403400, 284.895600, 288.852200, - 292.763800, 297.355200, 301.355600, 305.752600, 309.929200, - 313.895400, 318.819800, 322.766800, 327.298000, 331.668800, - 335.946600, 340.974600, 345.167200, 349.347400, 354.302800, - 358.891200, 364.114000, 368.464600, 372.974400, 378.409200, - 382.602200, 387.843000, 392.568400, 397.165200, 402.542600, - 407.415200, 412.538800, 417.359200, 422.136600, 427.486000, - 432.391800, 437.507600, 442.509000, 447.383400, 453.349800, - 458.066800, 463.734600, 469.122800, 473.452800, 479.700000, - 484.644000, 491.051800, 495.577400, 500.906800, 506.432000, - 512.166600, 517.434000, 522.664400, 527.489400, 533.631200, - 538.380400, 544.292000, 550.549600, 556.023400, 562.820600, - 566.614600, 572.418800, 579.117000, 583.676200, 590.657600, - 595.786400, 601.509000, 607.533400, 612.920400, 619.772000, - 624.292400, 630.865400, 636.183600, 642.745000, 649.131600, - 655.038600, 660.013600, 666.634200, 671.619600, 678.186600, - 684.428200, 689.332400, 695.479400, 702.503800, 708.129000, - 713.528000, 720.320400, 726.463000, 732.792800, 739.123000, - 744.741800, 751.219200, 756.510200, 762.606600, 769.018400, - 775.222400, 781.401400, 787.761800, 794.143600, 798.650600, - 805.637800, 811.766000, 819.751400, 824.577600, 828.732200, - 837.804800, 843.630200, 849.933600, 854.479800, 861.338800, - 867.989400, 873.819600, 880.313600, 886.230800, 892.458800, - 899.081600, 905.407600, 912.006400, 917.387800, 923.619000, - 929.998000, 937.348200, 943.950600, 947.991000, 955.114400, - 962.203000, 968.822200, 975.732400, 981.782600, 988.766600, - 994.264800, 1000.312800, 1007.408200, 1013.753600, 1020.337600, - 1026.715600, 1031.747800, 1037.429200, 1045.393000, 1051.227800, - 1058.343400, 1062.872600, 1071.884000, 1076.806000, 1082.917600, - 1089.167800, 1095.503200, 1102.525000, 1107.226400, 1115.315000, - 1120.930000, 1127.252000, 1134.149600, 1139.040800, 1147.544800, - 1153.329600, 1158.197400, 1166.526200, 1174.332800, 1175.657000, - 1184.422200, 1190.917200, 1197.129200, 1204.460600, 1210.457800, - 1218.872800, 1225.333600, 1226.659200, 1236.576800, 1241.363000, - 1249.407400, 1254.656600, 1260.801400, 1266.545400, 1274.519200 - }}, - {{ - 183.215200, 180.245400, 177.209600, 173.665200, 170.631200, 167.682200, - 164.249000, 161.329600, 158.003800, 155.207400, 152.461200, 149.270000, - 146.517800, 143.441200, 140.803200, 138.163400, 135.168800, 132.607400, - 129.694600, 127.266400, 124.822800, 122.043200, 119.682400, 116.946400, - 114.626800, 112.262600, 109.837600, 107.403400, 104.895600, 102.852200, - 100.763800, 98.355200, 96.355600, 93.752600, 91.929200, 89.895400, - 87.819800, 85.766800, 83.298000, 81.668800, 79.946600, 77.974600, - 76.167200, 74.347400, 72.302800, 70.891200, 69.114000, 67.464600, - 65.974400, 64.409200, 62.602200, 60.843000, 59.568400, 58.165200, - 56.542600, 55.415200, 53.538800, 52.359200, 51.136600, 49.486000, - 48.391800, 46.507600, 45.509000, 44.383400, 43.349800, 42.066800, - 40.734600, 40.122800, 38.452800, 37.700000, 36.644000, 36.051800, - 34.577400, 33.906800, 32.432000, 32.166600, 30.434000, 29.664400, - 28.489400, 27.631200, 26.380400, 26.292000, 25.549600, 25.023400, - 24.820600, 22.614600, 22.418800, 22.117000, 20.676200, 20.657600, - 19.786400, 19.509000, 18.533400, 17.920400, 17.772000, 16.292400, - 16.865400, 15.183600, 15.745000, 15.131600, 15.038600, 14.013600, - 13.634200, 12.619600, 12.186600, 12.428200, 11.332400, 10.479400, - 11.503800, 10.129000, 9.528000, 10.320400, 9.463000, 9.792800, - 9.123000, 8.741800, 9.219200, 7.510200, 7.606600, 7.018400, - 7.222400, 7.401400, 6.761800, 7.143600, 5.650600, 5.637800, - 5.766000, 6.751400, 5.577600, 3.732200, 5.804800, 5.630200, - 4.933600, 3.479800, 4.338800, 3.989400, 3.819600, 3.313600, - 3.230800, 3.458800, 3.081600, 3.407600, 3.006400, 2.387800, - 2.619000, 1.998000, 3.348200, 2.950600, 0.991000, 2.114400, - 2.203000, 2.822200, 2.732400, 2.782600, 3.766600, 2.264800, - 2.312800, 2.408200, 2.753600, 3.337600, 2.715600, 1.747800, - 1.429200, 2.393000, 2.227800, 2.343400, 0.872600, 3.884000, - 1.806000, 1.917600, 1.167800, 1.503200, 2.525000, 0.226400, - 2.315000, 0.930000, 1.252000, 2.149600, 0.040800, 2.544800, - 1.329600, 0.197400, 2.526200, 3.332800, -1.343000, 0.422200, - 0.917200, 1.129200, 1.460600, 1.457800, 2.872800, 3.333600, - -1.340800, 1.576800, 0.363000, 1.407400, 0.656600, 0.801400, - -0.454600, 1.519200 - }} -}, - -// Precision 9 -{ - {{ - 369.000000, 374.829400, 381.245200, 387.669800, 394.146400, - 400.202400, 406.878200, 413.659800, 420.462000, 427.282600, - 433.710200, 440.741600, 447.936600, 455.104600, 462.285000, - 469.066800, 476.306000, 483.844800, 491.301000, 498.988600, - 506.242200, 513.813800, 521.707400, 529.742800, 537.840200, - 545.166400, 553.353400, 561.594000, 569.688600, 577.787600, - 585.650000, 594.228000, 602.803600, 611.166600, 620.081800, - 628.082400, 637.257400, 646.302000, 655.164400, 664.005600, - 672.380200, 681.719200, 690.523400, 700.208400, 708.831000, - 718.485000, 728.111200, 737.476400, 746.760000, 756.336800, - 766.553800, 775.505800, 785.264600, 795.590200, 804.381800, - 814.899800, 824.953200, 835.206200, 845.279800, 854.472800, - 864.958200, 875.329200, 886.171000, 896.781000, 906.571600, - 916.704800, 927.532200, 937.875000, 949.397200, 958.346400, - 969.727400, 980.283400, 992.144400, 1003.426400, 1013.016600, - 1024.018000, 1035.043800, 1046.340000, 1057.685600, 1068.983600, - 1079.031200, 1091.677000, 1102.318800, 1113.484600, 1124.442400, - 1135.739000, 1147.148800, 1158.920200, 1169.406000, 1181.534200, - 1193.283400, 1203.895400, 1216.328600, 1226.214600, 1239.668400, - 1251.994600, 1262.123000, 1275.433800, 1285.737800, 1296.076000, - 1308.969200, 1320.496400, 1333.099800, 1343.986400, 1357.775400, - 1368.320800, 1380.483800, 1392.738800, 1406.075800, 1416.909800, - 1428.972800, 1440.922800, 1453.929200, 1462.617000, 1476.050000, - 1490.299600, 1500.612800, 1513.739200, 1524.517400, 1536.632200, - 1548.258400, 1562.376600, 1572.423000, 1587.123200, 1596.516400, - 1610.593800, 1622.597200, 1633.122200, 1647.767400, 1658.504400, - 1671.570000, 1683.704400, 1695.414200, 1708.710200, 1720.609400, - 1732.652200, 1747.841000, 1756.407200, 1769.978600, 1782.327600, - 1797.521600, 1808.318600, 1819.069400, 1834.354000, 1844.575000, - 1856.280800, 1871.128800, 1880.785200, 1893.962200, 1906.341800, - 1920.654800, 1932.930200, 1945.858400, 1955.473000, 1968.824800, - 1980.644600, 1995.959800, 2008.349000, 2019.855600, 2033.033400, - 2044.020600, 2059.395600, 2069.917400, 2082.608400, 2093.703600, - 2106.610800, 2118.912400, 2132.301000, 2144.762800, 2159.842200, - 2171.021200, 2183.101000, 2193.511200, 2208.052000, 2221.319400, - 2233.328200, 2247.295000, 2257.722200, 2273.342000, 2286.563800, - 2299.678600, 2310.811400, 2322.331200, 2335.516000, 2349.874000, - 2363.596800, 2373.865000, 2387.191800, 2401.832800, 2414.849600, - 2424.544000, 2436.759200, 2447.168200, 2464.195800, 2474.343800, - 2489.000600, 2497.452600, 2513.658600, 2527.190000, 2540.702800, - 2553.768000 - }}, - {{ - 368.000000, 361.829400, 355.245200, 348.669800, 342.146400, 336.202400, - 329.878200, 323.659800, 317.462000, 311.282600, 305.710200, 299.741600, - 293.936600, 288.104600, 282.285000, 277.066800, 271.306000, 265.844800, - 260.301000, 254.988600, 250.242200, 244.813800, 239.707400, 234.742800, - 229.840200, 225.166400, 220.353400, 215.594000, 210.688600, 205.787600, - 201.650000, 197.228000, 192.803600, 188.166600, 184.081800, 180.082400, - 176.257400, 172.302000, 168.164400, 164.005600, 160.380200, 156.719200, - 152.523400, 149.208400, 145.831000, 142.485000, 139.111200, 135.476400, - 131.760000, 129.336800, 126.553800, 122.505800, 119.264600, 116.590200, - 113.381800, 110.899800, 107.953200, 105.206200, 102.279800, 99.472800, - 96.958200, 94.329200, 92.171000, 89.781000, 87.571600, 84.704800, - 82.532200, 79.875000, 78.397200, 75.346400, 73.727400, 71.283400, - 70.144400, 68.426400, 66.016600, 64.018000, 62.043800, 60.340000, - 58.685600, 57.983600, 55.031200, 54.677000, 52.318800, 51.484600, - 49.442400, 47.739000, 46.148800, 44.920200, 43.406000, 42.534200, - 41.283400, 38.895400, 38.328600, 36.214600, 36.668400, 35.994600, - 33.123000, 33.433800, 31.737800, 29.076000, 28.969200, 27.496400, - 27.099800, 25.986400, 26.775400, 24.320800, 23.483800, 22.738800, - 24.075800, 21.909800, 20.972800, 19.922800, 19.929200, 16.617000, - 17.050000, 18.299600, 15.612800, 15.739200, 14.517400, 13.632200, - 12.258400, 13.376600, 11.423000, 13.123200, 9.516400, 10.593800, - 9.597200, 8.122200, 9.767400, 7.504400, 7.570000, 6.704400, - 6.414200, 6.710200, 5.609400, 4.652200, 6.841000, 3.407200, - 3.978600, 3.327600, 5.521600, 3.318600, 2.069400, 4.354000, - 1.575000, 0.280800, 2.128800, -0.214800, -0.037800, -0.658200, - 0.654800, -0.069800, 0.858400, -2.527000, -2.175200, -3.355400, - -1.040200, -0.651000, -2.144400, -1.966600, -3.979400, -0.604400, - -3.082600, -3.391600, -5.296400, -5.389200, -5.087600, -4.699000, - -5.237200, -3.157800, -4.978800, -4.899000, -7.488800, -5.948000, - -5.680600, -6.671800, -4.705000, -7.277800, -4.658000, -4.436200, - -4.321400, -5.188600, -6.668800, -6.484000, -5.126000, -4.403200, - -6.135000, -5.808200, -4.167200, -4.150400, -7.456000, -7.240800, - -9.831800, -5.804200, -8.656200, -6.999400, -10.547400, -7.341400, - -6.810000, -6.297200, -6.232000 - }} -}, - -// Precision 10 -{ - {{ - 738.125600, 750.423400, 763.106400, 775.473200, 788.463600, - 801.064400, 814.488000, 827.965400, 841.083200, 854.786400, - 868.199200, 882.217600, 896.522800, 910.171600, 924.775200, - 938.899000, 953.612600, 968.649200, 982.947400, 998.521400, - 1013.106400, 1028.636400, 1044.246800, 1059.458800, 1075.383200, - 1091.058400, 1106.860600, 1123.386800, 1139.506200, 1156.186200, - 1172.463000, 1189.339000, 1206.193600, 1223.129200, 1240.185400, - 1257.290800, 1275.332400, 1292.851800, 1310.520400, 1328.485400, - 1345.931800, 1364.552000, 1381.465800, 1400.425600, 1419.849000, - 1438.152000, 1456.895600, 1474.879200, 1494.118000, 1513.620000, - 1532.513200, 1551.932200, 1570.772600, 1590.608600, 1610.533200, - 1630.591800, 1650.429400, 1669.766200, 1690.410600, 1710.733800, - 1730.901200, 1750.448600, 1770.155600, 1791.633800, 1812.731200, - 1833.626400, 1853.952600, 1874.874200, 1896.832600, 1918.196600, - 1939.559400, 1961.070000, 1983.037000, 2003.180400, 2026.071000, - 2047.488400, 2070.084800, 2091.294400, 2114.333000, 2135.962600, - 2158.290200, 2181.081400, 2202.033400, 2224.483200, 2246.390000, - 2269.720200, 2292.171400, 2314.235800, 2338.934600, 2360.891000, - 2384.026400, 2408.383400, 2430.154400, 2454.868400, 2476.989600, - 2501.436800, 2522.870200, 2548.040800, 2570.673800, 2593.520800, - 2617.015800, 2640.230200, 2664.096200, 2687.498600, 2714.258800, - 2735.391400, 2759.624400, 2781.837800, 2808.007200, 2830.651600, - 2856.245400, 2877.213600, 2903.454600, 2926.785000, 2951.229400, - 2976.468000, 3000.867000, 3023.650800, 3049.910000, 3073.598400, - 3098.162000, 3121.556400, 3146.232800, 3170.948400, 3195.590200, - 3221.334600, 3242.703200, 3271.611200, 3296.554600, 3317.737600, - 3345.072000, 3369.951800, 3394.326000, 3418.181800, 3444.692600, - 3469.086000, 3494.275400, 3517.869800, 3544.248000, 3565.376800, - 3588.723400, 3616.979000, 3643.750400, 3668.681200, 3695.720000, - 3719.739200, 3742.622400, 3770.445600, 3795.660200, 3819.905800, - 3844.002000, 3869.517000, 3895.682400, 3920.862200, 3947.136400, - 3973.985000, 3995.477200, 4021.620000, 4046.628000, 4074.650000, - 4096.225600, 4121.831000, 4146.640600, 4173.276000, 4195.074400, - 4223.969600, 4251.370800, 4272.996600, 4300.804600, 4326.302000, - 4353.124800, 4374.312000, 4403.032200, 4426.819000, 4450.059800, - 4478.520600, 4504.811600, 4528.892800, 4553.958400, 4578.871200, - 4603.838400, 4632.387200, 4655.512800, 4675.821000, 4704.622200, - 4731.986200, 4755.417400, 4781.262800, 4804.332000, 4832.304800, - 4862.875200, 4883.414800, 4906.954400, 4935.351600, 4954.353200, - 4984.024800, 5011.217000, 5035.325800, 5057.367200, 5084.182800 - }}, - {{ - 737.125600, 724.423400, 711.106400, 698.473200, 685.463600, 673.064400, - 660.488000, 647.965400, 636.083200, 623.786400, 612.199200, 600.217600, - 588.522800, 577.171600, 565.775200, 554.899000, 543.612600, 532.649200, - 521.947400, 511.521400, 501.106400, 490.636400, 480.246800, 470.458800, - 460.383200, 451.058400, 440.860600, 431.386800, 422.506200, 413.186200, - 404.463000, 395.339000, 386.193600, 378.129200, 369.185400, 361.290800, - 353.332400, 344.851800, 337.520400, 329.485400, 321.931800, 314.552000, - 306.465800, 299.425600, 292.849000, 286.152000, 278.895600, 271.879200, - 265.118000, 258.620000, 252.513200, 245.932200, 239.772600, 233.608600, - 227.533200, 222.591800, 216.429400, 210.766200, 205.410600, 199.733800, - 194.901200, 188.448600, 183.155600, 178.633800, 173.731200, 169.626400, - 163.952600, 159.874200, 155.832600, 151.196600, 147.559400, 143.070000, - 140.037000, 134.180400, 131.071000, 127.488400, 124.084800, 120.294400, - 117.333000, 112.962600, 110.290200, 107.081400, 103.033400, 99.483200, - 96.390000, 93.720200, 90.171400, 87.235800, 85.934600, 82.891000, - 80.026400, 78.383400, 75.154400, 73.868400, 70.989600, 69.436800, - 64.870200, 65.040800, 61.673800, 59.520800, 57.015800, 54.230200, - 53.096200, 50.498600, 52.258800, 47.391400, 45.624400, 42.837800, - 43.007200, 40.651600, 40.245400, 35.213600, 36.454600, 33.785000, - 33.229400, 32.468000, 30.867000, 28.650800, 28.910000, 27.598400, - 26.162000, 24.556400, 23.232800, 21.948400, 21.590200, 21.334600, - 17.703200, 20.611200, 19.554600, 15.737600, 17.072000, 16.951800, - 15.326000, 13.181800, 14.692600, 13.086000, 13.275400, 10.869800, - 11.248000, 7.376800, 4.723400, 7.979000, 8.750400, 7.681200, - 9.720000, 7.739200, 5.622400, 7.445600, 6.660200, 5.905800, - 4.002000, 4.517000, 4.682400, 3.862200, 5.136400, 5.985000, - 2.477200, 2.620000, 1.628000, 4.650000, 0.225600, 0.831000, - -0.359400, 1.276000, -2.925600, -0.030400, 2.370800, -2.003400, - 0.804600, 0.302000, 1.124800, -2.688000, 0.032200, -1.181000, - -3.940200, -1.479400, -0.188400, -2.107200, -2.041600, -3.128800, - -4.161600, -0.612800, -3.487200, -8.179000, -5.377800, -4.013800, - -5.582600, -5.737200, -7.668000, -5.695200, -1.124800, -5.585200, - -8.045600, -4.648400, -11.646800, -7.975200, -5.783000, -7.674200, - -10.632800, -9.817200 - }} -}, - -// Precision 11 -{ - {{ - 1477.000000, 1501.601400, 1526.580200, 1551.794200, 1577.304200, - 1603.206200, 1629.840200, 1656.229200, 1682.946200, 1709.992600, - 1737.302600, 1765.425200, 1793.057800, 1821.609200, 1849.626000, - 1878.556800, 1908.527000, 1937.515400, 1967.187400, 1997.387800, - 2027.370000, 2058.197200, 2089.572800, 2120.101200, 2151.966800, - 2183.292000, 2216.077200, 2247.857800, 2280.656200, 2313.041000, - 2345.714000, 2380.311200, 2414.180600, 2447.985400, 2481.656000, - 2516.346000, 2551.515400, 2586.837800, 2621.744800, 2656.672200, - 2693.572200, 2729.146200, 2765.412400, 2802.872800, 2838.898000, - 2876.408000, 2913.492600, 2951.493800, 2989.677600, 3026.282000, - 3065.770400, 3104.101200, 3143.738800, 3181.687600, 3221.187200, - 3261.504800, 3300.021400, 3339.806000, 3381.409000, 3421.414400, - 3461.429400, 3502.228600, 3544.651000, 3586.615600, 3627.337000, - 3670.083000, 3711.153800, 3753.509400, 3797.010000, 3838.668600, - 3882.167800, 3922.811600, 3967.997800, 4009.920400, 4054.328600, - 4097.570600, 4140.601400, 4185.544000, 4229.597600, 4274.583000, - 4316.943800, 4361.672000, 4406.278600, 4451.862800, 4496.183400, - 4543.505000, 4589.181600, 4632.518800, 4678.229400, 4724.890800, - 4769.019400, 4817.052000, 4861.458800, 4910.159600, 4956.434400, - 5002.523800, 5048.130000, 5093.637400, 5142.816200, 5187.789400, - 5237.398400, 5285.607800, 5331.085800, 5379.103600, 5428.625800, - 5474.601800, 5522.761800, 5571.582200, 5618.590000, 5667.999200, - 5714.880000, 5763.454000, 5808.698200, 5860.364400, 5910.291400, - 5953.571000, 6005.923200, 6055.191400, 6104.588200, 6154.570200, - 6199.703600, 6251.176400, 6298.759600, 6350.030200, 6398.061000, - 6448.469400, 6495.933000, 6548.047400, 6597.716600, 6646.941600, - 6695.920800, 6742.632800, 6793.527600, 6842.193400, 6894.237200, - 6945.386400, 6996.922800, 7044.237200, 7094.137400, 7142.227200, - 7192.294200, 7238.833800, 7288.900600, 7344.090800, 7394.854400, - 7443.517600, 7490.414800, 7542.931400, 7595.673800, 7641.987800, - 7694.368800, 7743.044800, 7797.522000, 7845.530000, 7899.594000, - 7950.313200, 7996.455000, 8050.944200, 8092.911400, 8153.137400, - 8197.447200, 8252.827800, 8301.872800, 8348.677600, 8401.469800, - 8453.551000, 8504.659800, 8553.894400, 8604.127600, 8657.651400, - 8710.306200, 8758.908000, 8807.870600, 8862.170200, 8910.466800, - 8960.770000, 9007.276600, 9063.164000, 9121.053400, 9164.135400, - 9218.159400, 9267.767000, 9319.059400, 9372.155000, 9419.712600, - 9474.372200, 9520.133800, 9572.368000, 9622.770200, 9675.844800, - 9726.539600, 9778.737800, 9827.655400, 9878.192200, 9928.778200, - 9978.398400, 10026.578000, 10076.562600, 10137.161800, 10177.524400, - 10229.917600 - }}, - {{ - 1476.000000, 1449.601400, 1423.580200, 1397.794200, 1372.304200, - 1347.206200, 1321.840200, 1297.229200, 1272.946200, 1248.992600, - 1225.302600, 1201.425200, 1178.057800, 1155.609200, 1132.626000, - 1110.556800, 1088.527000, 1066.515400, 1045.187400, 1024.387800, - 1003.370000, 982.197200, 962.572800, 942.101200, 922.966800, - 903.292000, 884.077200, 864.857800, 846.656200, 828.041000, - 809.714000, 792.311200, 775.180600, 757.985400, 740.656000, - 724.346000, 707.515400, 691.837800, 675.744800, 659.672200, - 645.572200, 630.146200, 614.412400, 600.872800, 585.898000, - 572.408000, 558.492600, 544.493800, 531.677600, 517.282000, - 505.770400, 493.101200, 480.738800, 467.687600, 456.187200, - 445.504800, 433.021400, 420.806000, 411.409000, 400.414400, - 389.429400, 379.228600, 369.651000, 360.615600, 350.337000, - 342.083000, 332.153800, 322.509400, 315.010000, 305.668600, - 298.167800, 287.811600, 280.997800, 271.920400, 265.328600, - 257.570600, 249.601400, 242.544000, 235.597600, 229.583000, - 220.943800, 214.672000, 208.278600, 201.862800, 195.183400, - 191.505000, 186.181600, 178.518800, 172.229400, 167.890800, - 161.019400, 158.052000, 151.458800, 148.159600, 143.434400, - 138.523800, 133.130000, 127.637400, 124.816200, 118.789400, - 117.398400, 114.607800, 109.085800, 105.103600, 103.625800, - 98.601800, 95.761800, 93.582200, 88.590000, 86.999200, - 82.880000, 80.454000, 74.698200, 74.364400, 73.291400, - 65.571000, 66.923200, 65.191400, 62.588200, 61.570200, - 55.703600, 56.176400, 52.759600, 53.030200, 49.061000, - 48.469400, 44.933000, 46.047400, 44.716600, 41.941600, - 39.920800, 35.632800, 35.527600, 33.193400, 33.237200, - 33.386400, 33.922800, 30.237200, 29.137400, 25.227200, - 24.294200, 19.833800, 18.900600, 23.090800, 21.854400, - 19.517600, 15.414800, 16.931400, 18.673800, 12.987800, - 14.368800, 12.044800, 15.522000, 12.530000, 14.594000, - 14.313200, 9.455000, 12.944200, 3.911400, 13.137400, - 5.447200, 9.827800, 7.872800, 3.677600, 5.469800, - 5.551000, 5.659800, 3.894400, 3.127600, 5.651400, - 6.306200, 3.908000, 1.870600, 5.170200, 2.466800, - 0.770000, -3.723400, 1.164000, 8.053400, 0.135400, - 2.159400, 0.767000, 1.059400, 3.155000, -0.287400, - 2.372200, -2.866200, -1.632000, -2.229800, -0.155200, - -1.460400, -0.262200, -2.344600, -2.807800, -3.221800, - -5.601600, -8.422000, -9.437400, 0.161800, -10.475600, - -10.082400 - }} -}, - -// Precision 12 -{ - {{ - 2954.000000, 3003.478200, 3053.356800, 3104.366600, 3155.324000, - 3206.959800, 3259.648000, 3312.539000, 3366.147400, 3420.257600, - 3474.837600, 3530.607600, 3586.451000, 3643.380000, 3700.410400, - 3757.563800, 3815.967600, 3875.193000, 3934.838000, 3994.854800, - 4055.018000, 4117.174200, 4178.448200, 4241.129400, 4304.477600, - 4367.404400, 4431.872400, 4496.373200, 4561.430400, 4627.532600, - 4693.949000, 4761.553200, 4828.725600, 4897.618200, 4965.518600, - 5034.452800, 5104.865000, 5174.716400, 5244.682800, 5316.670800, - 5387.831200, 5459.903600, 5532.476000, 5604.865200, 5679.671800, - 5753.757000, 5830.207200, 5905.282800, 5980.043400, 6056.626400, - 6134.319200, 6211.574600, 6290.081600, 6367.117600, 6447.979600, - 6526.557600, 6606.185800, 6686.914400, 6766.114200, 6847.081800, - 6927.966400, 7010.909600, 7091.081600, 7175.396200, 7260.345400, - 7344.018000, 7426.421400, 7511.310600, 7596.068600, 7679.809400, - 7765.818000, 7852.424800, 7936.834000, 8022.363000, 8109.506600, - 8200.455400, 8288.583200, 8373.366000, 8463.480800, 8549.768200, - 8642.052200, 8728.328800, 8820.952800, 8907.727000, 9001.079400, - 9091.252200, 9179.988000, 9269.852000, 9362.639400, 9453.642000, - 9546.902400, 9640.661600, 9732.662200, 9824.325400, 9917.748400, - 10007.939200, 10106.750800, 10196.215200, 10289.811400, 10383.549400, - 10482.306400, 10576.873400, 10668.787200, 10764.715600, 10862.019600, - 10952.793000, 11049.974800, 11146.070200, 11241.449200, 11339.277200, - 11434.233600, 11530.741000, 11627.613600, 11726.311000, 11821.596400, - 11918.837000, 12015.372400, 12113.016200, 12213.042400, 12306.980400, - 12408.451800, 12504.896800, 12604.586000, 12700.933200, 12798.705000, - 12898.514200, 12997.048800, 13094.788000, 13198.475000, 13292.776400, - 13392.969800, 13486.857400, 13590.161600, 13686.583800, 13783.626400, - 13887.263800, 13992.097800, 14081.084400, 14189.995600, 14280.091200, - 14382.495600, 14486.438400, 14588.108200, 14686.239200, 14782.276000, - 14888.028400, 14985.186400, 15088.859600, 15187.099800, 15285.027000, - 15383.669400, 15495.826600, 15591.373600, 15694.200800, 15790.324600, - 15898.411600, 15997.452200, 16095.501400, 16198.851400, 16291.749200, - 16402.642400, 16499.126600, 16606.243600, 16697.718600, 16796.394600, - 16902.337600, 17005.767200, 17100.814000, 17206.828200, 17305.826200, - 17416.074400, 17508.409200, 17617.017800, 17715.455400, 17816.758000, - 17920.174800, 18012.923600, 18119.798400, 18223.224800, 18324.248200, - 18426.627600, 18525.093200, 18629.897600, 18733.258800, 18831.046600, - 18940.136600, 19032.269600, 19131.729000, 19243.486400, 19349.693200, - 19442.866000, 19547.944800, 19653.279800, 19754.403400, 19854.069200, - 19965.122400, 20065.177400, 20158.221200, 20253.353000, 20366.326400, - 20463.220000 - }}, - {{ - 2953.000000, 2900.478200, 2848.356800, 2796.366600, 2745.324000, - 2694.959800, 2644.648000, 2595.539000, 2546.147400, 2498.257600, - 2450.837600, 2403.607600, 2357.451000, 2311.380000, 2266.410400, - 2221.563800, 2176.967600, 2134.193000, 2090.838000, 2048.854800, - 2007.018000, 1966.174200, 1925.448200, 1885.129400, 1846.477600, - 1807.404400, 1768.872400, 1731.373200, 1693.430400, 1657.532600, - 1621.949000, 1586.553200, 1551.725600, 1517.618200, 1483.518600, - 1450.452800, 1417.865000, 1385.716400, 1352.682800, 1322.670800, - 1291.831200, 1260.903600, 1231.476000, 1201.865200, 1173.671800, - 1145.757000, 1119.207200, 1092.282800, 1065.043400, 1038.626400, - 1014.319200, 988.574600, 965.081600, 940.117600, 917.979600, - 894.557600, 871.185800, 849.914400, 827.114200, 805.081800, - 783.966400, 763.909600, 742.081600, 724.396200, 706.345400, - 688.018000, 667.421400, 650.310600, 633.068600, 613.809400, - 597.818000, 581.424800, 563.834000, 547.363000, 531.506600, - 520.455400, 505.583200, 488.366000, 476.480800, 459.768200, - 450.052200, 434.328800, 423.952800, 408.727000, 399.079400, - 387.252200, 373.988000, 360.852000, 351.639400, 339.642000, - 330.902400, 322.661600, 311.662200, 301.325400, 291.748400, - 279.939200, 276.750800, 263.215200, 254.811400, 245.549400, - 242.306400, 234.873400, 223.787200, 217.715600, 212.019600, - 200.793000, 195.974800, 189.070200, 182.449200, 177.277200, - 170.233600, 164.741000, 158.613600, 155.311000, 147.596400, - 142.837000, 137.372400, 132.016200, 130.042400, 121.980400, - 120.451800, 114.896800, 111.586000, 105.933200, 101.705000, - 98.514200, 95.048800, 89.788000, 91.475000, 83.776400, - 80.969800, 72.857400, 73.161600, 67.583800, 62.626400, - 63.263800, 66.097800, 52.084400, 58.995600, 47.091200, - 46.495600, 48.438400, 47.108200, 43.239200, 37.276000, - 40.028400, 35.186400, 35.859600, 32.099800, 28.027000, - 23.669400, 33.826600, 26.373600, 27.200800, 21.324600, - 26.411600, 23.452200, 19.501400, 19.851400, 10.749200, - 18.642400, 13.126600, 18.243600, 6.718600, 3.394600, - 6.337600, 7.767200, 0.814000, 3.828200, 0.826200, - 8.074400, -1.590800, 5.017800, 0.455400, -0.242000, - 0.174800, -9.076400, -4.201600, -3.775200, -4.751800, - -5.372400, -8.906800, -6.102400, -5.741200, -9.953400, - -3.863400, -13.730400, -16.271000, -7.513600, -3.306800, - -13.134000, -10.055200, -6.720200, -8.596600, -10.930800, - -1.877600, -4.822600, -13.778800, -21.647000, -10.673600, - -15.780000 - }} -}, - -// Precision 13 -{ - {{ - 5908.505200, 6007.267200, 6107.347000, 6208.579400, 6311.262200, - 6414.551400, 6519.337600, 6625.695200, 6732.598800, 6841.355200, - 6950.597200, 7061.308200, 7173.564600, 7287.109000, 7401.821600, - 7516.434400, 7633.380200, 7751.296200, 7870.378400, 7990.292000, - 8110.790000, 8233.457400, 8356.603600, 8482.271200, 8607.770800, - 8735.099000, 8863.185800, 8993.474600, 9123.849600, 9255.679400, - 9388.544800, 9522.751600, 9657.310600, 9792.609400, 9930.564200, - 10068.794000, 10206.725600, 10347.810000, 10490.319600, 10632.077800, - 10775.991600, 10920.466200, 11066.124000, 11213.073000, 11358.036200, - 11508.100600, 11659.171600, 11808.751400, 11959.488400, 12112.131400, - 12265.037000, 12420.375600, 12578.933000, 12734.311000, 12890.000600, - 13047.214400, 13207.309600, 13368.514400, 13528.024000, 13689.847000, - 13852.752800, 14018.316800, 14180.537200, 14346.966800, 14513.507400, - 14677.867000, 14846.218600, 15017.418600, 15184.971600, 15356.339000, - 15529.297200, 15697.357800, 15871.868600, 16042.187000, 16216.409400, - 16389.418800, 16565.912600, 16742.327200, 16919.004200, 17094.759200, - 17273.965000, 17451.834200, 17634.425400, 17810.598400, 17988.924200, - 18171.051000, 18354.793800, 18539.466000, 18721.040800, 18904.997200, - 19081.867000, 19271.911800, 19451.869400, 19637.981600, 19821.292200, - 20013.129200, 20199.385800, 20387.872600, 20572.951400, 20770.776400, - 20955.171400, 21144.751000, 21329.995200, 21520.709000, 21712.701600, - 21906.386800, 22096.262600, 22286.052400, 22475.051000, 22665.509800, - 22862.849200, 23055.529400, 23249.613800, 23437.848000, 23636.273000, - 23826.093000, 24020.329600, 24213.389600, 24411.739200, 24602.961400, - 24805.795200, 24998.155200, 25193.958800, 25389.016600, 25585.839200, - 25780.697600, 25981.272800, 26175.977000, 26376.525200, 26570.196400, - 26773.387000, 26962.981200, 27163.058600, 27368.164000, 27565.053400, - 27758.742800, 27961.127600, 28163.232400, 28362.381600, 28565.766800, - 28758.644000, 28956.976800, 29163.472200, 29354.702600, 29561.118600, - 29767.994800, 29959.998600, 30164.049200, 30366.981800, 30562.533800, - 30762.992800, 30976.159200, 31166.274000, 31376.722000, 31570.373400, - 31770.809000, 31974.893400, 32179.528600, 32387.544200, 32582.350400, - 32794.076000, 32989.952800, 33191.842000, 33392.468400, 33595.659000, - 33801.867200, 34000.341400, 34200.092200, 34402.679200, 34610.063800, - 34804.008400, 35011.130000, 35218.669000, 35418.663400, 35619.079200, - 35830.653400, 36028.496600, 36229.790200, 36438.642200, 36630.776400, - 36833.310200, 37048.672800, 37247.391600, 37453.590400, 37669.361400, - 37854.552600, 38059.305000, 38268.093600, 38470.251600, 38674.706400, - 38876.167000, 39068.379400, 39281.914400, 39492.856600, 39684.862800, - 39898.410800, 40093.183600, 40297.685800, 40489.708600, 40717.242400 - }}, - {{ - 5907.505200, 5802.267200, 5697.347000, 5593.579400, 5491.262200, - 5390.551400, 5290.337600, 5191.695200, 5093.598800, 4997.355200, - 4902.597200, 4808.308200, 4715.564600, 4624.109000, 4533.821600, - 4444.434400, 4356.380200, 4269.296200, 4183.378400, 4098.292000, - 4014.790000, 3932.457400, 3850.603600, 3771.271200, 3691.770800, - 3615.099000, 3538.185800, 3463.474600, 3388.849600, 3315.679400, - 3244.544800, 3173.751600, 3103.310600, 3033.609400, 2966.564200, - 2900.794000, 2833.725600, 2769.810000, 2707.319600, 2644.077800, - 2583.991600, 2523.466200, 2464.124000, 2406.073000, 2347.036200, - 2292.100600, 2238.171600, 2182.751400, 2128.488400, 2077.131400, - 2025.037000, 1975.375600, 1928.933000, 1879.311000, 1831.000600, - 1783.214400, 1738.309600, 1694.514400, 1649.024000, 1606.847000, - 1564.752800, 1525.316800, 1482.537200, 1443.966800, 1406.507400, - 1365.867000, 1329.218600, 1295.418600, 1257.971600, 1225.339000, - 1193.297200, 1156.357800, 1125.868600, 1091.187000, 1061.409400, - 1029.418800, 1000.912600, 972.327200, 944.004200, 915.759200, - 889.965000, 862.834200, 840.425400, 812.598400, 785.924200, - 763.051000, 741.793800, 721.466000, 699.040800, 677.997200, - 649.867000, 634.911800, 609.869400, 591.981600, 570.292200, - 557.129200, 538.385800, 521.872600, 502.951400, 495.776400, - 475.171400, 459.751000, 439.995200, 426.709000, 413.701600, - 402.386800, 387.262600, 372.052400, 357.051000, 342.509800, - 334.849200, 322.529400, 311.613800, 295.848000, 289.273000, - 274.093000, 263.329600, 251.389600, 245.739200, 231.961400, - 229.795200, 217.155200, 208.958800, 199.016600, 190.839200, - 180.697600, 176.272800, 166.977000, 162.525200, 151.196400, - 149.387000, 133.981200, 130.058600, 130.164000, 122.053400, - 110.742800, 108.127600, 106.232400, 100.381600, 98.766800, - 86.644000, 79.976800, 82.472200, 68.702600, 70.118600, - 71.994800, 58.998600, 59.049200, 56.981800, 47.533800, - 42.992800, 51.159200, 37.274000, 42.722000, 31.373400, - 26.809000, 25.893400, 26.528600, 29.544200, 19.350400, - 26.076000, 17.952800, 14.842000, 10.468400, 8.659000, - 9.867200, 4.341400, -0.907800, -3.320800, -0.936200, - -11.991600, -8.870000, -6.331000, -11.336600, -15.920800, - -9.346600, -15.503400, -19.209800, -15.357800, -28.223600, - -30.689800, -19.327200, -25.608400, -24.409600, -13.638600, - -33.447400, -32.695000, -28.906400, -31.748400, -32.293600, - -35.833000, -47.620600, -39.085600, -33.143400, -46.137200, - -37.589200, -46.816400, -47.314200, -60.291400, -37.757600 - }} -}, - -// Precision 14 -{ - {{ - 11817.475000, 12015.004600, 12215.379200, 12417.750400, 12623.181400, - 12830.008600, 13040.007200, 13252.503000, 13466.178000, 13683.273800, - 13902.034400, 14123.979800, 14347.394000, 14573.778400, 14802.689400, - 15033.682400, 15266.913400, 15502.862400, 15741.494400, 15980.795600, - 16223.891600, 16468.631600, 16715.733000, 16965.572600, 17217.204000, - 17470.666000, 17727.851600, 17986.788600, 18247.690200, 18510.963200, - 18775.304000, 19044.748600, 19314.440800, 19587.202000, 19862.257600, - 20135.924000, 20417.032400, 20697.978800, 20979.611200, 21265.027400, - 21550.723000, 21841.690600, 22132.162000, 22428.140600, 22722.127000, - 23020.560600, 23319.739400, 23620.401400, 23925.272800, 24226.922400, - 24535.581000, 24845.505000, 25155.961800, 25470.382800, 25785.970200, - 26103.776400, 26420.413200, 26742.018600, 27062.885200, 27388.415000, - 27714.602400, 28042.296000, 28365.449400, 28701.152600, 29031.800800, - 29364.215600, 29704.497000, 30037.145800, 30380.111000, 30723.816800, - 31059.511400, 31404.949800, 31751.675200, 32095.268600, 32444.779200, - 32794.767000, 33145.204000, 33498.422600, 33847.650200, 34209.006000, - 34560.849000, 34919.483800, 35274.977800, 35635.132200, 35996.326600, - 36359.139400, 36722.826600, 37082.851600, 37447.735400, 37815.960600, - 38191.069200, 38559.410600, 38924.811200, 39294.672600, 39663.973000, - 40042.261000, 40416.203600, 40779.203600, 41161.643600, 41540.901400, - 41921.199800, 42294.769800, 42678.526400, 43061.346400, 43432.375000, - 43818.432000, 44198.659800, 44583.013800, 44970.479400, 45353.924000, - 45729.858000, 46118.222400, 46511.572400, 46900.738600, 47280.696400, - 47668.147200, 48055.679600, 48446.943600, 48838.714600, 49217.729600, - 49613.779600, 50010.750800, 50410.020800, 50793.788600, 51190.245600, - 51583.188200, 51971.079600, 52376.533800, 52763.319000, 53165.553400, - 53556.559400, 53948.270200, 54346.352000, 54748.791400, 55138.577000, - 55543.482400, 55941.174800, 56333.774600, 56745.155200, 57142.794400, - 57545.223600, 57935.995600, 58348.526800, 58737.547400, 59158.596200, - 59542.689600, 59958.800400, 60349.378800, 60755.021200, 61147.614400, - 61548.194000, 61946.069600, 62348.604200, 62763.603000, 63162.781000, - 63560.635000, 63974.348200, 64366.490800, 64771.587600, 65176.734600, - 65597.391600, 65995.915000, 66394.038400, 66822.939600, 67203.633600, - 67612.203200, 68019.007800, 68420.038800, 68821.220000, 69235.838800, - 69640.072400, 70055.155000, 70466.357000, 70863.426600, 71276.248200, - 71677.030600, 72080.200600, 72493.021400, 72893.595200, 73314.585600, - 73714.985200, 74125.302200, 74521.212200, 74933.681400, 75341.590400, - 75743.024400, 76166.027800, 76572.132200, 76973.102800, 77381.628400, - 77800.609200, 78189.328000, 78607.096200, 79012.250800, 79407.835800, - 79825.725000, 80238.701000, 80646.891000, 81035.643600, 81460.044800, - 81876.388400 - }}, - {{ - 11816.475000, 11605.004600, 11395.379200, 11188.750400, 10984.181400, - 10782.008600, 10582.007200, 10384.503000, 10189.178000, 9996.273800, - 9806.034400, 9617.979800, 9431.394000, 9248.778400, 9067.689400, - 8889.682400, 8712.913400, 8538.862400, 8368.494400, 8197.795600, - 8031.891600, 7866.631600, 7703.733000, 7544.572600, 7386.204000, - 7230.666000, 7077.851600, 6926.788600, 6778.690200, 6631.963200, - 6487.304000, 6346.748600, 6206.440800, 6070.202000, 5935.257600, - 5799.924000, 5671.032400, 5541.978800, 5414.611200, 5290.027400, - 5166.723000, 5047.690600, 4929.162000, 4815.140600, 4699.127000, - 4588.560600, 4477.739400, 4369.401400, 4264.272800, 4155.922400, - 4055.581000, 3955.505000, 3856.961800, 3761.382800, 3666.970200, - 3575.776400, 3482.413200, 3395.018600, 3305.885200, 3221.415000, - 3138.602400, 3056.296000, 2970.449400, 2896.152600, 2816.800800, - 2740.215600, 2670.497000, 2594.145800, 2527.111000, 2460.816800, - 2387.511400, 2322.949800, 2260.675200, 2194.268600, 2133.779200, - 2074.767000, 2015.204000, 1959.422600, 1898.650200, 1850.006000, - 1792.849000, 1741.483800, 1687.977800, 1638.132200, 1589.326600, - 1543.139400, 1496.826600, 1447.851600, 1402.735400, 1361.960600, - 1327.069200, 1285.410600, 1241.811200, 1201.672600, 1161.973000, - 1130.261000, 1094.203600, 1048.203600, 1020.643600, 990.901400, - 961.199800, 924.769800, 899.526400, 872.346400, 834.375000, - 810.432000, 780.659800, 756.013800, 733.479400, 707.924000, - 673.858000, 652.222400, 636.572400, 615.738600, 586.696400, - 564.147200, 541.679600, 523.943600, 505.714600, 475.729600, - 461.779600, 449.750800, 439.020800, 412.788600, 400.245600, - 383.188200, 362.079600, 357.533800, 334.319000, 327.553400, - 308.559400, 291.270200, 279.352000, 271.791400, 252.577000, - 247.482400, 236.174800, 218.774600, 220.155200, 208.794400, - 201.223600, 182.995600, 185.526800, 164.547400, 176.596200, - 150.689600, 157.800400, 138.378800, 134.021200, 117.614400, - 108.194000, 97.069600, 89.604200, 95.603000, 84.781000, - 72.635000, 77.348200, 59.490800, 55.587600, 50.734600, - 61.391600, 50.915000, 39.038400, 58.939600, 29.633600, - 28.203200, 26.007800, 17.038800, 9.220000, 13.838800, - 8.072400, 14.155000, 15.357000, 3.426600, 6.248200, - -2.969400, -8.799400, -5.978600, -14.404800, -3.414400, - -13.014800, -11.697800, -25.787800, -22.318600, -24.409600, - -31.975600, -18.972200, -22.867800, -30.897200, -32.371600, - -22.390800, -43.672000, -35.903800, -39.749200, -54.164200, - -45.275000, -42.299000, -44.109000, -64.356400, -49.955200, - -42.611600 - }} -}, - -// Precision 15 -{ - {{ - 23635.003600, 24030.803400, 24431.474400, 24837.152400, 25246.792800, - 25661.326000, 26081.353200, 26505.280600, 26933.989200, 27367.709800, - 27805.318000, 28248.799000, 28696.438200, 29148.824400, 29605.513800, - 30066.866800, 30534.234400, 31006.320000, 31480.778000, 31962.241800, - 32447.332400, 32938.023200, 33432.731000, 33930.728000, 34433.989600, - 34944.140200, 35457.558800, 35974.595800, 36497.329600, 37021.909600, - 37554.326000, 38088.082600, 38628.881600, 39171.319200, 39723.232600, - 40274.555400, 40832.314200, 41390.613000, 41959.590800, 42532.546600, - 43102.034400, 43683.507200, 44266.694000, 44851.282200, 45440.786200, - 46038.058600, 46640.316400, 47241.064000, 47846.155000, 48454.739600, - 49076.916800, 49692.542000, 50317.477800, 50939.650000, 51572.559600, - 52210.290600, 52843.739600, 53481.399600, 54127.236000, 54770.406000, - 55422.659800, 56078.795800, 56736.717400, 57397.678400, 58064.578400, - 58730.308000, 59404.978400, 60077.086400, 60751.915800, 61444.138600, - 62115.817000, 62808.774200, 63501.477400, 64187.545400, 64883.662200, - 65582.746800, 66274.531800, 66976.927600, 67688.776400, 68402.138000, - 69109.627400, 69822.970600, 70543.610800, 71265.520200, 71983.384800, - 72708.465600, 73433.384000, 74158.466400, 74896.486800, 75620.956400, - 76362.143400, 77098.320400, 77835.766200, 78582.611400, 79323.990200, - 80067.865800, 80814.924600, 81567.013600, 82310.853600, 83061.995200, - 83821.409600, 84580.860800, 85335.547000, 86092.580200, 86851.650600, - 87612.311000, 88381.201600, 89146.329600, 89907.897400, 90676.846000, - 91451.415200, 92224.551800, 92995.868600, 93763.506600, 94551.279600, - 95315.194400, 96096.180600, 96881.091800, 97665.679000, 98442.680000, - 99229.300200, 100011.099400, 100790.638600, 101580.156400, 102377.748400, - 103152.139200, 103944.271200, 104730.216000, 105528.633600, 106324.939800, - 107117.670600, 107890.398800, 108695.226600, 109485.238000, 110294.787600, - 111075.095800, 111878.049600, 112695.286400, 113464.548600, 114270.047400, - 115068.608000, 115884.362600, 116673.258800, 117483.371600, 118275.097000, - 119085.409200, 119879.280800, 120687.586800, 121499.994400, 122284.916000, - 123095.925400, 123912.503800, 124709.045400, 125503.718200, 126323.259000, - 127138.941200, 127943.829400, 128755.646000, 129556.535400, 130375.329800, - 131161.473400, 131971.196200, 132787.545800, 133588.105600, 134431.351000, - 135220.290600, 136023.398000, 136846.655800, 137667.000400, 138463.663000, - 139283.715400, 140074.614600, 140901.307200, 141721.854800, 142543.232200, - 143356.109600, 144173.741200, 144973.094800, 145794.316200, 146609.571400, - 147420.003000, 148237.978400, 149050.569600, 149854.761000, 150663.196600, - 151494.075400, 152313.141600, 153112.690200, 153935.720600, 154746.926200, - 155559.547000, 156401.974600, 157228.703600, 158008.725400, 158820.750000, - 159646.918400, 160470.445800, 161279.534800, 162093.311400, 162918.542000, - 163729.284200 - }}, - {{ - 23634.003600, 23210.803400, 22792.474400, 22379.152400, 21969.792800, - 21565.326000, 21165.353200, 20770.280600, 20379.989200, 19994.709800, - 19613.318000, 19236.799000, 18865.438200, 18498.824400, 18136.513800, - 17778.866800, 17426.234400, 17079.320000, 16734.778000, 16397.241800, - 16063.332400, 15734.023200, 15409.731000, 15088.728000, 14772.989600, - 14464.140200, 14157.558800, 13855.595800, 13559.329600, 13264.909600, - 12978.326000, 12692.082600, 12413.881600, 12137.319200, 11870.232600, - 11602.555400, 11340.314200, 11079.613000, 10829.590800, 10583.546600, - 10334.034400, 10095.507200, 9859.694000, 9625.282200, 9395.786200, - 9174.058600, 8957.316400, 8738.064000, 8524.155000, 8313.739600, - 8116.916800, 7913.542000, 7718.477800, 7521.650000, 7335.559600, - 7154.290600, 6968.739600, 6786.399600, 6613.236000, 6437.406000, - 6270.659800, 6107.795800, 5945.717400, 5787.678400, 5635.578400, - 5482.308000, 5337.978400, 5190.086400, 5045.915800, 4919.138600, - 4771.817000, 4645.774200, 4518.477400, 4385.545400, 4262.662200, - 4142.746800, 4015.531800, 3897.927600, 3790.776400, 3685.138000, - 3573.627400, 3467.970600, 3368.610800, 3271.520200, 3170.384800, - 3076.465600, 2982.384000, 2888.466400, 2806.486800, 2711.956400, - 2634.143400, 2551.320400, 2469.766200, 2396.611400, 2318.990200, - 2243.865800, 2171.924600, 2105.013600, 2028.853600, 1960.995200, - 1901.409600, 1841.860800, 1777.547000, 1714.580200, 1654.650600, - 1596.311000, 1546.201600, 1492.329600, 1433.897400, 1383.846000, - 1339.415200, 1293.551800, 1245.868600, 1193.506600, 1162.279600, - 1107.194400, 1069.180600, 1035.091800, 999.679000, 957.680000, - 925.300200, 888.099400, 848.638600, 818.156400, 796.748400, - 752.139200, 725.271200, 692.216000, 671.633600, 647.939800, - 621.670600, 575.398800, 561.226600, 532.238000, 521.787600, - 483.095800, 467.049600, 465.286400, 415.548600, 401.047400, - 380.608000, 377.362600, 347.258800, 338.371600, 310.097000, - 301.409200, 276.280800, 265.586800, 258.994400, 223.916000, - 215.925400, 213.503800, 191.045400, 166.718200, 166.259000, - 162.941200, 148.829400, 141.646000, 123.535400, 122.329800, - 89.473400, 80.196200, 77.545800, 59.105600, 83.351000, - 52.290600, 36.398000, 40.655800, 42.000400, 19.663000, - 19.715400, -8.385400, -0.692800, 0.854800, 3.232200, - -3.890400, -5.258800, -24.905200, -22.683800, -26.428600, - -34.997000, -37.021600, -43.430400, -58.239000, -68.803400, - -56.924600, -57.858400, -77.309800, -73.279400, -81.073800, - -87.453000, -65.025400, -57.296400, -96.274600, -103.250000, - -96.081600, -91.554200, -102.465200, -107.688600, -101.458000, - -109.715800 - }} -}, - -// Precision 16 -{ - {{ - 47271.000000, 48062.358400, 48862.707400, 49673.152000, 50492.841600, - 51322.951400, 52161.030000, 53009.407000, 53867.634800, 54734.206000, - 55610.514400, 56496.209600, 57390.795000, 58297.268000, 59210.644800, - 60134.665000, 61068.024800, 62010.447200, 62962.520400, 63923.574200, - 64895.019400, 65876.418200, 66862.613600, 67862.696800, 68868.890800, - 69882.854400, 70911.271000, 71944.092400, 72990.032600, 74040.692000, - 75100.633600, 76174.782600, 77252.599800, 78340.297400, 79438.257200, - 80545.497600, 81657.279600, 82784.633600, 83915.515000, 85059.736200, - 86205.936800, 87364.442400, 88530.335800, 89707.374400, 90885.963800, - 92080.197000, 93275.573800, 94479.391000, 95695.918000, 96919.223600, - 98148.460200, 99382.347400, 100625.697400, 101878.028400, 103141.627800, - 104409.458800, 105686.288200, 106967.540200, 108261.603200, 109548.157800, - 110852.072800, 112162.231000, 113479.007200, 114806.262600, 116137.907200, - 117469.504800, 118813.518600, 120165.487600, 121516.255600, 122875.766000, - 124250.544400, 125621.222200, 127003.235200, 128387.848000, 129775.264400, - 131181.777600, 132577.308600, 133979.945800, 135394.113200, 136800.907800, - 138233.217000, 139668.530800, 141085.212000, 142535.212200, 143969.068400, - 145420.287200, 146878.154200, 148332.757200, 149800.320200, 151269.660000, - 152743.610400, 154213.094800, 155690.288000, 157169.424600, 158672.175600, - 160160.059000, 161650.685400, 163145.777200, 164645.672600, 166159.195200, - 167682.157800, 169177.332800, 170700.011800, 172228.896400, 173732.666400, - 175265.555600, 176787.799000, 178317.111000, 179856.691400, 181400.865000, - 182943.461200, 184486.742000, 186033.469800, 187583.788600, 189148.186800, - 190688.452600, 192250.192600, 193810.904200, 195354.297200, 196938.768200, - 198493.589800, 200079.282400, 201618.912000, 203205.549200, 204765.579800, - 206356.112400, 207929.306400, 209498.719600, 211086.229000, 212675.132400, - 214256.789200, 215826.239200, 217412.847400, 218995.672400, 220618.603800, - 222207.116600, 223781.036400, 225387.433200, 227005.792800, 228590.433600, - 230217.873800, 231805.105400, 233408.900000, 234995.343200, 236601.495600, - 238190.790400, 239817.254800, 241411.283200, 243002.406600, 244640.188400, - 246255.312800, 247849.350800, 249479.973400, 251106.882200, 252705.027000, - 254332.924200, 255935.129000, 257526.901400, 259154.772000, 260777.625000, - 262390.253000, 264004.490600, 265643.590000, 267255.407600, 268873.426000, - 270470.725200, 272106.480400, 273722.445600, 275337.794000, 276945.703800, - 278592.915400, 280204.372600, 281841.160600, 283489.171000, 285130.171600, - 286735.336200, 288364.716400, 289961.181400, 291595.552400, 293285.683000, - 294899.666800, 296499.343400, 298128.046200, 299761.894600, 301394.242400, - 302997.674800, 304615.147800, 306269.772400, 307886.114000, 309543.102800, - 311153.286200, 312782.854600, 314421.200800, 316033.243800, 317692.963600, - 319305.264800, 320948.740600, 322566.336400, 324228.422400, 325847.154200 - }}, - {{ - 47270.000000, 46423.358400, 45585.707400, 44757.152000, 43938.841600, - 43130.951400, 42330.030000, 41540.407000, 40759.634800, 39988.206000, - 39226.514400, 38473.209600, 37729.795000, 36997.268000, 36272.644800, - 35558.665000, 34853.024800, 34157.447200, 33470.520400, 32793.574200, - 32127.019400, 31469.418200, 30817.613600, 30178.696800, 29546.890800, - 28922.854400, 28312.271000, 27707.092400, 27114.032600, 26526.692000, - 25948.633600, 25383.782600, 24823.599800, 24272.297400, 23732.257200, - 23201.497600, 22674.279600, 22163.633600, 21656.515000, 21161.736200, - 20669.936800, 20189.442400, 19717.335800, 19256.374400, 18795.963800, - 18352.197000, 17908.573800, 17474.391000, 17052.918000, 16637.223600, - 16228.460200, 15823.347400, 15428.697400, 15043.028400, 14667.627800, - 14297.458800, 13935.288200, 13578.540200, 13234.603200, 12882.157800, - 12548.072800, 12219.231000, 11898.007200, 11587.262600, 11279.907200, - 10973.504800, 10678.518600, 10392.487600, 10105.255600, 9825.766000, - 9562.544400, 9294.222200, 9038.235200, 8784.848000, 8533.264400, - 8301.777600, 8058.308600, 7822.945800, 7599.113200, 7366.907800, - 7161.217000, 6957.530800, 6736.212000, 6548.212200, 6343.068400, - 6156.287200, 5975.154200, 5791.757200, 5621.320200, 5451.660000, - 5287.610400, 5118.094800, 4957.288000, 4798.424600, 4662.175600, - 4512.059000, 4364.685400, 4220.777200, 4082.672600, 3957.195200, - 3842.157800, 3699.332800, 3583.011800, 3473.896400, 3338.666400, - 3233.555600, 3117.799000, 3008.111000, 2909.691400, 2814.865000, - 2719.461200, 2624.742000, 2532.469800, 2444.788600, 2370.186800, - 2272.452600, 2196.192600, 2117.904200, 2023.297200, 1969.768200, - 1885.589800, 1833.282400, 1733.912000, 1682.549200, 1604.579800, - 1556.112400, 1491.306400, 1421.719600, 1371.229000, 1322.132400, - 1264.789200, 1196.239200, 1143.847400, 1088.672400, 1073.603800, - 1023.116600, 959.036400, 927.433200, 906.792800, 853.433600, - 841.873800, 791.105400, 756.900000, 704.343200, 672.495600, - 622.790400, 611.254800, 567.283200, 519.406600, 519.188400, - 495.312800, 451.350800, 443.973400, 431.882200, 392.027000, - 380.924200, 345.129000, 298.901400, 287.772000, 272.625000, - 247.253000, 222.490600, 223.590000, 196.407600, 176.426000, - 134.725200, 132.480400, 110.445600, 86.794000, 56.703800, - 64.915400, 38.372600, 37.160600, 46.171000, 49.171600, - 15.336200, 6.716400, -34.818600, -39.447600, 12.683000, - -12.333200, -50.656600, -59.953800, -65.105400, -70.757600, - -106.325200, -126.852200, -110.227600, -132.886000, -113.897200, - -142.713800, -151.145400, -150.799200, -177.756200, -156.036400, - -182.735200, -177.259400, -198.663600, -174.577600, -193.845800 - }} -}, - -// Precision 17 -{ - {{ - 94542.000000, 96125.811000, 97728.019000, 99348.558000, 100987.970500, - 102646.756500, 104324.512500, 106021.743500, 107736.786500, 109469.272000, - 111223.946500, 112995.219000, 114787.432000, 116593.152000, 118422.710000, - 120267.234500, 122134.676500, 124020.937000, 125927.270500, 127851.255000, - 129788.948500, 131751.016000, 133726.822500, 135722.592000, 137736.789000, - 139770.568000, 141821.518000, 143891.343000, 145982.141500, 148095.387000, - 150207.526000, 152355.649000, 154515.641500, 156696.050000, 158887.757500, - 161098.159000, 163329.852000, 165569.053000, 167837.400500, 170121.616500, - 172420.459500, 174732.626500, 177062.770000, 179412.502000, 181774.035000, - 184151.939000, 186551.689500, 188965.691000, 191402.809500, 193857.949000, - 196305.077500, 198774.671500, 201271.258500, 203764.780000, 206299.369500, - 208818.136500, 211373.115000, 213946.746500, 216532.076000, 219105.541000, - 221714.537500, 224337.513500, 226977.512500, 229613.065500, 232270.268500, - 234952.206500, 237645.355500, 240331.192500, 243034.517000, 245756.072500, - 248517.686500, 251232.737000, 254011.395500, 256785.995000, 259556.440000, - 262368.335000, 265156.911000, 267965.266000, 270785.583000, 273616.049500, - 276487.483500, 279346.639000, 282202.509000, 285074.388500, 287942.285500, - 290856.018000, 293774.034500, 296678.514500, 299603.635500, 302552.657500, - 305492.978500, 308466.860500, 311392.581000, 314347.538000, 317319.429500, - 320285.978500, 323301.732500, 326298.323500, 329301.310500, 332301.987000, - 335309.791000, 338370.762000, 341382.923000, 344431.126500, 347464.154500, - 350507.280000, 353619.234500, 356631.200500, 359685.203000, 362776.784500, - 365886.488000, 368958.225500, 372060.682500, 375165.433500, 378237.935000, - 381328.311000, 384430.522500, 387576.425000, 390683.242000, 393839.648000, - 396977.842500, 400101.980500, 403271.296000, 406409.842500, 409529.548500, - 412678.700000, 415847.423000, 419020.803500, 422157.081000, 425337.749000, - 428479.616500, 431700.902000, 434893.191500, 438049.582000, 441210.541500, - 444379.254500, 447577.356000, 450741.931000, 453959.548000, 457137.093500, - 460329.846000, 463537.481500, 466732.334500, 469960.561500, 473164.681000, - 476347.634500, 479496.173000, 482813.164500, 486025.699500, 489249.488500, - 492460.194500, 495675.880500, 498908.007500, 502131.802000, 505374.385500, - 508550.991500, 511806.730500, 515026.776000, 518217.000500, 521523.985500, - 524705.985500, 527950.997000, 531210.026500, 534472.497000, 537750.731500, - 540926.922000, 544207.094000, 547429.434500, 550666.374500, 553975.347500, - 557150.718500, 560399.616500, 563662.697000, 566916.739500, 570146.121500, - 573447.425000, 576689.624500, 579874.574500, 583202.337000, 586503.025500, - 589715.635000, 592910.161000, 596214.388500, 599488.035000, 602740.920000, - 605983.068500, 609248.670000, 612491.360500, 615787.912000, 619107.524500, - 622307.955500, 625577.333000, 628840.438500, 632085.215500, 635317.613500, - 638691.719500, 641887.467000, 645139.940500, 648441.546000, 651666.252000, - 654941.845000 - }}, - {{ - 94541.000000, 92848.811000, 91174.019000, 89517.558000, 87879.970500, - 86262.756500, 84663.512500, 83083.743500, 81521.786500, 79977.272000, - 78455.946500, 76950.219000, 75465.432000, 73994.152000, 72546.710000, - 71115.234500, 69705.676500, 68314.937000, 66944.270500, 65591.255000, - 64252.948500, 62938.016000, 61636.822500, 60355.592000, 59092.789000, - 57850.568000, 56624.518000, 55417.343000, 54231.141500, 53067.387000, - 51903.526000, 50774.649000, 49657.641500, 48561.050000, 47475.757500, - 46410.159000, 45364.852000, 44327.053000, 43318.400500, 42325.616500, - 41348.459500, 40383.626500, 39436.770000, 38509.502000, 37594.035000, - 36695.939000, 35818.689500, 34955.691000, 34115.809500, 33293.949000, - 32465.077500, 31657.671500, 30877.258500, 30093.780000, 29351.369500, - 28594.136500, 27872.115000, 27168.746500, 26477.076000, 25774.541000, - 25106.537500, 24452.513500, 23815.512500, 23174.065500, 22555.268500, - 21960.206500, 21376.355500, 20785.192500, 20211.517000, 19657.072500, - 19141.686500, 18579.737000, 18081.395500, 17578.995000, 17073.440000, - 16608.335000, 16119.911000, 15651.266000, 15194.583000, 14749.049500, - 14343.483500, 13925.639000, 13504.509000, 13099.388500, 12691.285500, - 12328.018000, 11969.034500, 11596.514500, 11245.635500, 10917.657500, - 10580.978500, 10277.860500, 9926.581000, 9605.538000, 9300.429500, - 8989.978500, 8728.732500, 8448.323500, 8175.310500, 7898.987000, - 7629.791000, 7413.762000, 7149.923000, 6921.126500, 6677.154500, - 6443.280000, 6278.234500, 6014.200500, 5791.203000, 5605.784500, - 5438.488000, 5234.225500, 5059.682500, 4887.433500, 4682.935000, - 4496.311000, 4322.522500, 4191.425000, 4021.242000, 3900.648000, - 3762.842500, 3609.980500, 3502.296000, 3363.842500, 3206.548500, - 3079.700000, 2971.423000, 2867.803500, 2727.081000, 2630.749000, - 2496.616500, 2440.902000, 2356.191500, 2235.582000, 2120.541500, - 2012.254500, 1933.356000, 1820.931000, 1761.548000, 1663.093500, - 1578.846000, 1509.481500, 1427.334500, 1379.561500, 1306.681000, - 1212.634500, 1084.173000, 1124.164500, 1060.699500, 1007.488500, - 941.194500, 879.880500, 836.007500, 782.802000, 748.385500, - 647.991500, 626.730500, 570.776000, 484.000500, 513.985500, - 418.985500, 386.997000, 370.026500, 355.497000, 356.731500, - 255.922000, 259.094000, 205.434500, 165.374500, 197.347500, - 95.718500, 67.616500, 54.697000, 31.739500, -15.878500, - 8.425000, -26.375500, -118.425500, -66.663000, -42.974500, - -107.365000, -189.839000, -162.611500, -164.965000, -189.080000, - -223.931500, -235.330000, -269.639500, -249.088000, -206.475500, - -283.044500, -290.667000, -304.561500, -336.784500, -380.386500, - -283.280500, -364.533000, -389.059500, -364.454000, -415.748000, - -417.155000 - }} -}, - -// Precision 18 -{ - {{ - 189084.000000, 192250.913000, 195456.774000, 198696.946000, - 201977.762000, 205294.444000, 208651.754000, 212042.099000, - 215472.269000, 218941.910000, 222443.912000, 225996.845000, - 229568.199000, 233193.568000, 236844.457000, 240543.233000, - 244279.475000, 248044.270000, 251854.588000, 255693.200000, - 259583.619000, 263494.621000, 267445.385000, 271454.061000, - 275468.769000, 279549.456000, 283646.446000, 287788.198000, - 291966.099000, 296181.164000, 300431.469000, 304718.618000, - 309024.004000, 313393.508000, 317760.803000, 322209.731000, - 326675.061000, 331160.627000, 335654.470000, 340241.442000, - 344841.833000, 349467.132000, 354130.629000, 358819.432000, - 363574.626000, 368296.587000, 373118.482000, 377914.930000, - 382782.301000, 387680.669000, 392601.981000, 397544.323000, - 402529.115000, 407546.018000, 412593.658000, 417638.657000, - 422762.865000, 427886.169000, 433017.167000, 438213.273000, - 443441.254000, 448692.421000, 453937.533000, 459239.049000, - 464529.569000, 469910.083000, 475274.030000, 480684.473000, - 486070.260000, 491515.237000, 496995.651000, 502476.617000, - 507973.609000, 513497.190000, 519083.233000, 524726.509000, - 530305.505000, 535945.728000, 541584.404000, 547274.055000, - 552967.236000, 558667.862000, 564360.216000, 570128.148000, - 575965.080000, 581701.952000, 587532.523000, 593361.144000, - 599246.128000, 605033.418000, 610958.779000, 616837.117000, - 622772.818000, 628672.040000, 634675.369000, 640574.831000, - 646585.739000, 652574.547000, 658611.217000, 664642.684000, - 670713.914000, 676737.681000, 682797.313000, 688837.897000, - 694917.874000, 701009.882000, 707173.648000, 713257.254000, - 719415.392000, 725636.761000, 731710.697000, 737906.209000, - 744103.074000, 750313.390000, 756504.185000, 762712.579000, - 768876.985000, 775167.859000, 781359.000000, 787615.959000, - 793863.597000, 800245.477000, 806464.582000, 812785.294000, - 819005.925000, 825403.057000, 831676.197000, 837936.284000, - 844266.968000, 850642.711000, 856959.756000, 863322.774000, - 869699.931000, 876102.478000, 882355.787000, 888694.463000, - 895159.952000, 901536.143000, 907872.631000, 914293.672000, - 920615.140000, 927130.974000, 933409.404000, 939922.178000, - 946331.470000, 952745.930000, 959209.264000, 965590.224000, - 972077.284000, 978501.961000, 984953.190000, 991413.271000, - 997817.479000, 1004222.658000, 1010725.676000, 1017177.138000, - 1023612.529000, 1030098.236000, 1036493.719000, 1043112.207000, - 1049537.036000, 1056008.096000, 1062476.184000, 1068942.337000, - 1075524.950000, 1081932.864000, 1088426.025000, 1094776.005000, - 1101327.448000, 1107901.673000, 1114423.639000, 1120884.602000, - 1127324.923000, 1133794.240000, 1140328.886000, 1146849.376000, - 1153346.682000, 1159836.502000, 1166478.703000, 1172953.304000, - 1179391.502000, 1185950.982000, 1192544.052000, 1198913.410000, - 1205430.994000, 1212015.525000, 1218674.042000, 1225121.683000, - 1231551.101000, 1238126.379000, 1244673.795000, 1251260.649000, - 1257697.860000, 1264320.983000, 1270736.319000, 1277274.694000, - 1283804.950000, 1290211.514000, 1296858.568000, 1303455.691000 - }}, - {{ - 189083.000000, 185696.913000, 182348.774000, 179035.946000, 175762.762000, - 172526.444000, 169329.754000, 166166.099000, 163043.269000, 159958.910000, - 156907.912000, 153906.845000, 150924.199000, 147996.568000, 145093.457000, - 142239.233000, 139421.475000, 136632.270000, 133889.588000, 131174.200000, - 128511.619000, 125868.621000, 123265.385000, 120721.061000, 118181.769000, - 115709.456000, 113252.446000, 110840.198000, 108465.099000, 106126.164000, - 103823.469000, 101556.618000, 99308.004000, 97124.508000, 94937.803000, - 92833.731000, 90745.061000, 88677.627000, 86617.470000, 84650.442000, - 82697.833000, 80769.132000, 78879.629000, 77014.432000, 75215.626000, - 73384.587000, 71652.482000, 69895.930000, 68209.301000, 66553.669000, - 64921.981000, 63310.323000, 61742.115000, 60205.018000, 58698.658000, - 57190.657000, 55760.865000, 54331.169000, 52908.167000, 51550.273000, - 50225.254000, 48922.421000, 47614.533000, 46362.049000, 45098.569000, - 43926.083000, 42736.030000, 41593.473000, 40425.260000, 39316.237000, - 38243.651000, 37170.617000, 36114.609000, 35084.190000, 34117.233000, - 33206.509000, 32231.505000, 31318.728000, 30403.404000, 29540.055000, - 28679.236000, 27825.862000, 26965.216000, 26179.148000, 25462.080000, - 24645.952000, 23922.523000, 23198.144000, 22529.128000, 21762.418000, - 21134.779000, 20459.117000, 19840.818000, 19187.040000, 18636.369000, - 17982.831000, 17439.739000, 16874.547000, 16358.217000, 15835.684000, - 15352.914000, 14823.681000, 14329.313000, 13816.897000, 13342.874000, - 12880.882000, 12491.648000, 12021.254000, 11625.392000, 11293.761000, - 10813.697000, 10456.209000, 10099.074000, 9755.390000, 9393.185000, - 9047.579000, 8657.985000, 8395.859000, 8033.000000, 7736.959000, - 7430.597000, 7258.477000, 6924.582000, 6691.294000, 6357.925000, - 6202.057000, 5921.197000, 5628.284000, 5404.968000, 5226.711000, - 4990.756000, 4799.774000, 4622.931000, 4472.478000, 4171.787000, - 3957.463000, 3868.952000, 3691.143000, 3474.631000, 3341.672000, - 3109.140000, 3071.974000, 2796.404000, 2756.178000, 2611.470000, - 2471.930000, 2382.264000, 2209.224000, 2142.284000, 2013.961000, - 1911.190000, 1818.271000, 1668.479000, 1519.658000, 1469.676000, - 1367.138000, 1248.529000, 1181.236000, 1022.719000, 1088.207000, - 959.036000, 876.096000, 791.184000, 703.337000, 731.950000, - 586.864000, 526.025000, 323.005000, 320.448000, 340.673000, - 309.639000, 216.602000, 102.923000, 19.240000, -0.114000, - -32.624000, -89.318000, -153.498000, -64.297000, -143.696000, - -259.498000, -253.018000, -213.948000, -397.590000, -434.006000, - -403.475000, -297.958000, -404.317000, -528.899000, -506.621000, - -513.205000, -479.351000, -596.140000, -527.017000, -664.681000, - -680.306000, -704.050000, -850.486000, -757.432000, -713.309000 - }} -} +// Precision 4 +{ + {{ + 11.000000, 11.717000, 12.207000, 12.789600, 13.288200, 13.820400, + 14.377200, 14.934200, 15.520200, 16.161000, 16.772200, 17.463600, + 18.039600, 18.676600, 19.356600, 20.045400, 20.793600, 21.485600, + 22.266600, 22.994600, 23.766000, 24.469200, 25.363800, 26.076400, + 26.786400, 27.760200, 28.481400, 29.433000, 30.292600, 31.066400, + 31.999600, 32.795600, 33.536600, 34.589400, 35.573800, 36.269800, + 37.368200, 38.054400, 39.234200, 40.010800, 40.796600, 41.929800, + 42.870400, 43.635800, 44.519400, 45.773000, 46.677200, 47.617400, + 48.488800, 49.330400, 50.250600, 51.499600, 52.382400, 53.307800, + 54.398400, 55.583800, 56.661800, 57.217400, 58.351400, 59.080200, + 60.148200, 61.037600, 62.359800, 62.807800, 63.974400, 64.914000, + 65.781000, 67.180600, 68.059400, 68.844600, 69.792800, 70.824800, + 71.832400, 72.859800, 73.624600, 74.701400, 75.393000, 76.670800, + 77.239400 + }}, + {{ + 10.000000, 9.717000, 9.207000, 8.789600, 8.288200, 7.820400, + 7.377200, 6.934200, 6.520200, 6.161000, 5.772200, 5.463600, + 5.039600, 4.676600, 4.356600, 4.045400, 3.793600, 3.485600, + 3.266600, 2.994600, 2.766000, 2.469200, 2.363800, 2.076400, + 1.786400, 1.760200, 1.481400, 1.433000, 1.292600, 1.066400, + 0.999600, 0.795600, 0.536600, 0.589400, 0.573800, 0.269800, + 0.368200, 0.054400, 0.234200, 0.010800, -0.203400, -0.070200, + -0.129600, -0.364200, -0.480600, -0.227000, -0.322800, -0.382600, + -0.511200, -0.669600, -0.749400, -0.500400, -0.617600, -0.692200, + -0.601600, -0.416200, -0.338200, -0.782600, -0.648600, -0.919800, + -0.851800, -0.962400, -0.640200, -1.192200, -1.025600, -1.086000, + -1.219000, -0.819400, -0.940600, -1.155400, -1.207200, -1.175200, + -1.167600, -1.140200, -1.375400, -1.298600, -1.607000, -1.329200, + -1.760600 + }} +}, + +// Precision 5 +{ + {{ + 23.000000, 23.119400, 23.820800, 24.231800, 24.770000, 25.243600, + 25.777400, 26.284800, 26.822400, 27.374200, 27.933600, 28.503000, + 29.049400, 29.629200, 30.212400, 30.798000, 31.367000, 31.972800, + 32.594400, 33.217000, 33.843800, 34.369600, 35.095600, 35.704400, + 36.324000, 37.066800, 37.669800, 38.364400, 39.049000, 39.691800, + 40.414600, 41.082000, 41.687000, 42.539800, 43.246200, 43.857000, + 44.660600, 45.416800, 46.124800, 46.922200, 47.680400, 48.447000, + 49.345400, 49.959400, 50.763600, 51.577600, 52.331000, 53.190000, + 53.967600, 54.756400, 55.531400, 56.444200, 57.370800, 57.977400, + 58.962400, 59.879600, 60.755000, 61.472000, 62.207600, 63.102400, + 63.890800, 64.733800, 65.772800, 66.629000, 67.413000, 68.326600, + 69.152400, 70.264200, 71.180600, 72.056600, 72.919200, 73.759800, + 74.351600, 75.580200, 76.438600, 77.491600, 78.152400, 79.189200, + 79.841400, 80.879800, 81.837600, 82.469800, 83.765600, 84.331000, + 85.591400, 86.601200, 87.701600, 88.558200, 89.339400, 90.354400, + 91.491200, 92.308000, 93.355200, 93.974600, 95.205200, 95.727000, + 97.132200, 98.394400, 98.758800, 100.242000, 101.191400, 102.253800, + 102.877600, 103.629200, 105.193200, 105.915200, 107.086800, 107.672800, + 108.714400, 110.311400, 110.871600, 111.245000, 112.790800, 113.706400, + 114.636000, 115.746400, 116.178800, 117.746400, 118.489600, 119.616600, + 120.508200, 121.779800, 122.902800, 123.442600, 124.885400, 125.705000, + 126.465200, 128.346200, 128.346400, 130.039800, 131.004200, 131.034200, + 132.476600, 133.511000, 134.725200, 135.425000, 136.517200, 138.057200, + 138.669400, 139.371200, 140.859800, 141.459400, 142.554000, 143.400600, + 144.737400, 146.163400, 146.899400, 147.605000, 147.930400, 149.163600, + 150.246800, 151.587600, 152.209600, 153.703200, 154.714600, 155.807000, + 156.922800, 157.037200, 158.585200 + }}, + {{ + 22.000000, 21.119400, 20.820800, 20.231800, 19.770000, 19.243600, + 18.777400, 18.284800, 17.822400, 17.374200, 16.933600, 16.503000, + 16.049400, 15.629200, 15.212400, 14.798000, 14.367000, 13.972800, + 13.594400, 13.217000, 12.843800, 12.369600, 12.095600, 11.704400, + 11.324000, 11.066800, 10.669800, 10.364400, 10.049000, 9.691800, + 9.414600, 9.082000, 8.687000, 8.539800, 8.246200, 7.857000, + 7.660600, 7.416800, 7.124800, 6.922200, 6.680400, 6.447000, + 6.345400, 5.959400, 5.763600, 5.577600, 5.331000, 5.190000, + 4.967600, 4.756400, 4.531400, 4.444200, 4.370800, 3.977400, + 3.962400, 3.879600, 3.755000, 3.472000, 3.207600, 3.102400, + 2.890800, 2.733800, 2.772800, 2.629000, 2.413000, 2.326600, + 2.152400, 2.264200, 2.180600, 2.056600, 1.919200, 1.759800, + 1.351600, 1.580200, 1.438600, 1.491600, 1.152400, 1.189200, + 0.841400, 0.879800, 0.837600, 0.469800, 0.765600, 0.331000, + 0.591400, 0.601200, 0.701600, 0.558200, 0.339400, 0.354400, + 0.491200, 0.308000, 0.355200, -0.025400, 0.205200, -0.273000, + 0.132200, 0.394400, -0.241200, 0.242000, 0.191400, 0.253800, + -0.122400, -0.370800, 0.193200, -0.084800, 0.086800, -0.327200, + -0.285600, 0.311400, -0.128400, -0.755000, -0.209200, -0.293600, + -0.364000, -0.253600, -0.821200, -0.253600, -0.510400, -0.383400, + -0.491800, -0.220200, -0.097200, -0.557400, -0.114600, -0.295000, + -0.534800, -0.653800, 0.346400, 0.039800, -0.995800, 0.034200, + -0.523400, -0.489000, -0.274800, -0.575000, -0.482800, 0.057200, + -0.330600, -0.628800, -0.140200, -0.540600, -0.446000, -0.599400, + -0.262600, 0.163400, -0.100600, -0.395000, -1.069600, -0.836400, + -0.753200, -0.412400, -0.790400, -0.296800, -0.285400, -0.193000, + -0.077200, -0.962800, -0.414800 + }} +}, + +// Precision 6 +{ + {{ + 46.000000, 46.190200, 47.271000, 47.835800, 48.814200, 49.285400, + 50.317000, 51.354000, 51.892400, 52.943600, 53.459600, 54.526200, + 55.624800, 56.157400, 57.282200, 57.837000, 58.963600, 60.074000, + 60.704200, 61.797600, 62.477200, 63.656400, 64.794200, 65.500400, + 66.686000, 67.291000, 68.567200, 69.855600, 70.498200, 71.820400, + 72.425200, 73.774400, 75.078600, 75.834400, 77.029400, 77.809800, + 79.079400, 80.573200, 81.187800, 82.564800, 83.290200, 84.678400, + 85.335200, 86.894600, 88.371200, 89.085200, 90.499000, 91.268600, + 92.684400, 94.223400, 94.973200, 96.335600, 97.228600, 98.726200, + 100.328400, 101.104800, 102.596200, 103.356200, 105.127200, 106.418400, + 107.497400, 109.082200, 109.856000, 111.480000, 113.283400, 114.020800, + 115.637000, 116.517400, 118.057600, 119.747600, 120.427000, 122.132600, + 123.237200, 125.278800, 126.677600, 127.792600, 129.195200, 129.956400, + 131.645400, 133.870000, 134.542800, 136.200000, 137.029400, 138.627800, + 139.678200, 141.792000, 143.351600, 144.283200, 146.039400, 147.074800, + 148.491200, 150.849000, 151.696000, 153.540400, 154.073000, 156.371400, + 157.721600, 158.732800, 160.420800, 161.418400, 163.942400, 165.277200, + 166.411000, 168.130800, 168.769000, 170.925800, 172.682800, 173.750200, + 175.706000, 176.388600, 179.018600, 180.451800, 181.927000, 183.417200, + 184.411400, 186.033000, 188.512400, 189.556400, 191.600800, 192.417200, + 193.804400, 194.997000, 197.454800, 198.894800, 200.234600, 202.308600, + 203.154800, 204.884200, 206.650800, 206.677200, 209.725400, 210.475200, + 212.722800, 214.661400, 215.167600, 217.793000, 218.000600, 219.905200, + 221.660000, 223.558800, 225.163600, 225.688200, 227.712600, 229.450200, + 231.197800, 232.975600, 233.165400, 236.727000, 237.747400, 238.197400, + 241.134600, 242.304800, 244.194800, 245.313400, 246.879000, 249.120400, + 249.853000, 252.679200, 253.857000, 254.448600, 257.236200, 257.953400, + 260.028600, 260.563200, 262.663000, 264.723000, 265.756600, 267.162400, + 267.256600, 270.620000, 272.821600, 273.216600, 275.205600, 276.220200, + 278.372600, 280.334400, 281.928400, 283.972800, 284.192400, 286.487200, + 287.587000, 289.807000, 291.120600, 292.769000, 294.870800, 296.665000, + 297.118200, 299.401200, 300.635200, 302.135400, 304.175600, 306.160600, + 307.346200, 308.521400, 309.413400, 310.835200, 313.968400, 315.837000, + 316.779600, 318.985800 + }}, + {{ + 45.000000, 44.190200, 43.271000, 42.835800, 41.814200, 41.285400, + 40.317000, 39.354000, 38.892400, 37.943600, 37.459600, 36.526200, + 35.624800, 35.157400, 34.282200, 33.837000, 32.963600, 32.074000, + 31.704200, 30.797600, 30.477200, 29.656400, 28.794200, 28.500400, + 27.686000, 27.291000, 26.567200, 25.855600, 25.498200, 24.820400, + 24.425200, 23.774400, 23.078600, 22.834400, 22.029400, 21.809800, + 21.079400, 20.573200, 20.187800, 19.564800, 19.290200, 18.678400, + 18.335200, 17.894600, 17.371200, 17.085200, 16.499000, 16.268600, + 15.684400, 15.223400, 14.973200, 14.335600, 14.228600, 13.726200, + 13.328400, 13.104800, 12.596200, 12.356200, 12.127200, 11.418400, + 11.497400, 11.082200, 10.856000, 10.480000, 10.283400, 10.020800, + 9.637000, 9.517400, 9.057600, 8.747600, 8.427000, 8.132600, + 8.237200, 8.278800, 7.677600, 7.792600, 7.195200, 6.956400, + 6.645400, 6.870000, 6.542800, 6.200000, 6.029400, 5.627800, + 5.678200, 5.792000, 5.351600, 5.283200, 5.039400, 5.074800, + 4.491200, 4.849000, 4.696000, 4.540400, 4.073000, 4.371400, + 3.721600, 3.732800, 3.420800, 3.418400, 3.942400, 3.277200, + 3.411000, 3.130800, 2.769000, 2.925800, 2.682800, 2.750200, + 2.706000, 2.388600, 3.018600, 2.451800, 2.927000, 2.417200, + 2.411400, 2.033000, 2.512400, 2.556400, 2.600800, 2.417200, + 1.804400, 1.997000, 2.454800, 1.894800, 2.234600, 2.308600, + 2.154800, 1.884200, 1.650800, 0.677200, 1.725400, 1.475200, + 1.722800, 1.661400, 1.167600, 1.793000, 1.000600, 0.905200, + 0.660000, 1.558800, 1.163600, 0.688200, 0.712600, 0.450200, + 1.197800, 0.975600, 0.165400, 1.727000, -0.252600, 1.197400, + 1.134600, 1.304800, 1.194800, 0.313400, 0.879000, 1.120400, + 0.853000, 1.679200, 0.857000, 0.448600, 1.236200, 0.953400, + 1.028600, 0.563200, 0.663000, 0.723000, 0.756600, -0.837600, + 0.256600, 0.620000, 0.821600, 0.216600, 0.205600, 0.220200, + 0.372600, 0.334400, 0.928400, 0.972800, 0.192400, 0.487200, + -0.413000, 0.807000, 0.120600, 0.769000, 0.870800, 0.665000, + 0.118200, 0.401200, 0.635200, 0.135400, 0.175600, 1.160600, + 0.346200, 0.521400, -0.586600, -1.164800, 0.968400, 0.837000, + 0.779600, 0.985800 + }} +}, + +// Precision 7 +{ + {{ + 92.000000, 93.493400, 94.975800, 96.457400, 97.971800, 99.495400, + 101.530200, 103.075600, 104.637400, 106.178200, 107.788800, 109.952200, + 111.592000, 113.253200, 114.908600, 116.593800, 118.947400, 120.679600, + 122.439400, 124.217600, 125.976800, 128.421400, 130.252800, 132.010200, + 133.865800, 135.727800, 138.304400, 140.131600, 142.093000, 144.003200, + 145.909200, 148.630600, 150.529400, 152.575600, 154.650800, 156.662000, + 159.552000, 161.372400, 163.617000, 165.575400, 167.787200, 169.844400, + 172.798800, 174.860600, 177.211800, 179.356600, 181.447600, 184.588200, + 186.681600, 189.082400, 191.025800, 193.604800, 196.443600, 198.727400, + 200.957000, 203.147000, 205.436400, 208.759200, 211.338600, 213.781000, + 215.802800, 218.656000, 221.654400, 223.996000, 226.471800, 229.154400, + 231.609800, 234.595600, 237.061600, 239.575800, 242.487800, 244.524400, + 248.214600, 250.724000, 252.872200, 255.519800, 258.041400, 261.941000, + 264.904800, 266.870000, 269.430400, 272.028000, 274.470800, 278.370000, + 281.062400, 283.466800, 286.553200, 289.435200, 293.256400, 295.274400, + 298.211800, 300.747200, 304.145600, 307.292800, 309.750400, 312.552800, + 315.979000, 318.210200, 322.183400, 324.349400, 327.325000, 330.661400, + 332.903000, 337.254400, 339.904200, 343.215000, 345.286400, 348.081400, + 352.676400, 355.301000, 357.139000, 360.658000, 363.173200, 366.590200, + 369.953800, 373.082800, 375.922000, 378.990200, 382.732800, 386.453800, + 388.113600, 391.223400, 394.087800, 396.708000, 401.155600, 404.185200, + 406.637200, 409.682200, 412.779600, 416.607800, 418.491600, 422.131000, + 424.537600, 428.198800, 432.211000, 434.450200, 438.528200, 440.912000, + 444.044800, 447.743200, 450.852400, 453.798800, 456.785800, 458.886800, + 463.988600, 466.506400, 468.912400, 472.661600, 475.468200, 478.582000, + 481.304000, 485.273800, 488.689400, 490.329000, 496.106000, 497.690800, + 501.137400, 504.532200, 506.884800, 510.332400, 513.451200, 516.179000, + 520.441200, 522.606600, 526.167000, 528.779400, 533.379000, 536.067000, + 538.460000, 542.911600, 545.692000, 547.954600, 552.493000, 555.272200, + 557.335000, 562.449000, 564.201400, 569.073800, 571.097400, 574.856400, + 578.299600, 581.409000, 583.970400, 585.809800, 589.652800, 594.599800, + 595.958000, 600.068000, 603.327800, 608.201600, 609.963200, 612.864000, + 615.430000, 620.779400, 621.272000, 625.864400, 629.206000, 633.219000, + 634.515400, 638.610200 + }}, + {{ + 91.000000, 89.493400, 87.975800, 86.457400, 84.971800, 83.495400, + 81.530200, 80.075600, 78.637400, 77.178200, 75.788800, 73.952200, + 72.592000, 71.253200, 69.908600, 68.593800, 66.947400, 65.679600, + 64.439400, 63.217600, 61.976800, 60.421400, 59.252800, 58.010200, + 56.865800, 55.727800, 54.304400, 53.131600, 52.093000, 51.003200, + 49.909200, 48.630600, 47.529400, 46.575600, 45.650800, 44.662000, + 43.552000, 42.372400, 41.617000, 40.575400, 39.787200, 38.844400, + 37.798800, 36.860600, 36.211800, 35.356600, 34.447600, 33.588200, + 32.681600, 32.082400, 31.025800, 30.604800, 29.443600, 28.727400, + 27.957000, 27.147000, 26.436400, 25.759200, 25.338600, 24.781000, + 23.802800, 23.656000, 22.654400, 21.996000, 21.471800, 21.154400, + 20.609800, 19.595600, 19.061600, 18.575800, 18.487800, 17.524400, + 17.214600, 16.724000, 15.872200, 15.519800, 15.041400, 14.941000, + 14.904800, 13.870000, 13.430400, 13.028000, 12.470800, 12.370000, + 12.062400, 11.466800, 11.553200, 11.435200, 11.256400, 10.274400, + 10.211800, 9.747200, 10.145600, 9.292800, 8.750400, 8.552800, + 8.979000, 8.210200, 8.183400, 7.349400, 7.325000, 7.661400, + 6.903000, 7.254400, 6.904200, 7.215000, 6.286400, 6.081400, + 6.676400, 6.301000, 5.139000, 5.658000, 5.173200, 4.590200, + 4.953800, 5.082800, 4.922000, 4.990200, 4.732800, 5.453800, + 4.113600, 4.223400, 4.087800, 3.708000, 4.155600, 4.185200, + 3.637200, 3.682200, 3.779600, 3.607800, 2.491600, 3.131000, + 2.537600, 3.198800, 3.211000, 2.450200, 3.528200, 2.912000, + 3.044800, 2.743200, 2.852400, 2.798800, 2.785800, 1.886800, + 2.988600, 2.506400, 1.912400, 2.661600, 2.468200, 1.582000, + 1.304000, 2.273800, 2.689400, 1.329000, 3.106000, 1.690800, + 2.137400, 2.532200, 1.884800, 1.332400, 1.451200, 1.179000, + 2.441200, 1.606600, 2.167000, 0.779400, 2.379000, 2.067000, + 1.460000, 2.911600, 1.692000, 0.954600, 2.493000, 2.272200, + 1.335000, 2.449000, 1.201400, 3.073800, 2.097400, 2.856400, + 2.299600, 2.409000, 1.970400, 0.809800, 1.652800, 2.599800, + 0.958000, 2.068000, 2.327800, 4.201600, 1.963200, 1.864000, + 1.430000, 3.779400, 1.272000, 1.864400, 2.206000, 3.219000, + 1.515400, 2.610200 + }} +}, + +// Precision 8 +{ + {{ + 184.215200, 187.245400, 190.209600, 193.665200, 196.631200, + 199.682200, 203.249000, 206.329600, 210.003800, 213.207400, + 216.461200, 220.270000, 223.517800, 227.441200, 230.803200, + 234.163400, 238.168800, 241.607400, 245.694600, 249.266400, + 252.822800, 257.043200, 260.682400, 264.946400, 268.626800, + 272.262600, 276.837600, 280.403400, 284.895600, 288.852200, + 292.763800, 297.355200, 301.355600, 305.752600, 309.929200, + 313.895400, 318.819800, 322.766800, 327.298000, 331.668800, + 335.946600, 340.974600, 345.167200, 349.347400, 354.302800, + 358.891200, 364.114000, 368.464600, 372.974400, 378.409200, + 382.602200, 387.843000, 392.568400, 397.165200, 402.542600, + 407.415200, 412.538800, 417.359200, 422.136600, 427.486000, + 432.391800, 437.507600, 442.509000, 447.383400, 453.349800, + 458.066800, 463.734600, 469.122800, 473.452800, 479.700000, + 484.644000, 491.051800, 495.577400, 500.906800, 506.432000, + 512.166600, 517.434000, 522.664400, 527.489400, 533.631200, + 538.380400, 544.292000, 550.549600, 556.023400, 562.820600, + 566.614600, 572.418800, 579.117000, 583.676200, 590.657600, + 595.786400, 601.509000, 607.533400, 612.920400, 619.772000, + 624.292400, 630.865400, 636.183600, 642.745000, 649.131600, + 655.038600, 660.013600, 666.634200, 671.619600, 678.186600, + 684.428200, 689.332400, 695.479400, 702.503800, 708.129000, + 713.528000, 720.320400, 726.463000, 732.792800, 739.123000, + 744.741800, 751.219200, 756.510200, 762.606600, 769.018400, + 775.222400, 781.401400, 787.761800, 794.143600, 798.650600, + 805.637800, 811.766000, 819.751400, 824.577600, 828.732200, + 837.804800, 843.630200, 849.933600, 854.479800, 861.338800, + 867.989400, 873.819600, 880.313600, 886.230800, 892.458800, + 899.081600, 905.407600, 912.006400, 917.387800, 923.619000, + 929.998000, 937.348200, 943.950600, 947.991000, 955.114400, + 962.203000, 968.822200, 975.732400, 981.782600, 988.766600, + 994.264800, 1000.312800, 1007.408200, 1013.753600, 1020.337600, + 1026.715600, 1031.747800, 1037.429200, 1045.393000, 1051.227800, + 1058.343400, 1062.872600, 1071.884000, 1076.806000, 1082.917600, + 1089.167800, 1095.503200, 1102.525000, 1107.226400, 1115.315000, + 1120.930000, 1127.252000, 1134.149600, 1139.040800, 1147.544800, + 1153.329600, 1158.197400, 1166.526200, 1174.332800, 1175.657000, + 1184.422200, 1190.917200, 1197.129200, 1204.460600, 1210.457800, + 1218.872800, 1225.333600, 1226.659200, 1236.576800, 1241.363000, + 1249.407400, 1254.656600, 1260.801400, 1266.545400, 1274.519200 + }}, + {{ + 183.215200, 180.245400, 177.209600, 173.665200, 170.631200, 167.682200, + 164.249000, 161.329600, 158.003800, 155.207400, 152.461200, 149.270000, + 146.517800, 143.441200, 140.803200, 138.163400, 135.168800, 132.607400, + 129.694600, 127.266400, 124.822800, 122.043200, 119.682400, 116.946400, + 114.626800, 112.262600, 109.837600, 107.403400, 104.895600, 102.852200, + 100.763800, 98.355200, 96.355600, 93.752600, 91.929200, 89.895400, + 87.819800, 85.766800, 83.298000, 81.668800, 79.946600, 77.974600, + 76.167200, 74.347400, 72.302800, 70.891200, 69.114000, 67.464600, + 65.974400, 64.409200, 62.602200, 60.843000, 59.568400, 58.165200, + 56.542600, 55.415200, 53.538800, 52.359200, 51.136600, 49.486000, + 48.391800, 46.507600, 45.509000, 44.383400, 43.349800, 42.066800, + 40.734600, 40.122800, 38.452800, 37.700000, 36.644000, 36.051800, + 34.577400, 33.906800, 32.432000, 32.166600, 30.434000, 29.664400, + 28.489400, 27.631200, 26.380400, 26.292000, 25.549600, 25.023400, + 24.820600, 22.614600, 22.418800, 22.117000, 20.676200, 20.657600, + 19.786400, 19.509000, 18.533400, 17.920400, 17.772000, 16.292400, + 16.865400, 15.183600, 15.745000, 15.131600, 15.038600, 14.013600, + 13.634200, 12.619600, 12.186600, 12.428200, 11.332400, 10.479400, + 11.503800, 10.129000, 9.528000, 10.320400, 9.463000, 9.792800, + 9.123000, 8.741800, 9.219200, 7.510200, 7.606600, 7.018400, + 7.222400, 7.401400, 6.761800, 7.143600, 5.650600, 5.637800, + 5.766000, 6.751400, 5.577600, 3.732200, 5.804800, 5.630200, + 4.933600, 3.479800, 4.338800, 3.989400, 3.819600, 3.313600, + 3.230800, 3.458800, 3.081600, 3.407600, 3.006400, 2.387800, + 2.619000, 1.998000, 3.348200, 2.950600, 0.991000, 2.114400, + 2.203000, 2.822200, 2.732400, 2.782600, 3.766600, 2.264800, + 2.312800, 2.408200, 2.753600, 3.337600, 2.715600, 1.747800, + 1.429200, 2.393000, 2.227800, 2.343400, 0.872600, 3.884000, + 1.806000, 1.917600, 1.167800, 1.503200, 2.525000, 0.226400, + 2.315000, 0.930000, 1.252000, 2.149600, 0.040800, 2.544800, + 1.329600, 0.197400, 2.526200, 3.332800, -1.343000, 0.422200, + 0.917200, 1.129200, 1.460600, 1.457800, 2.872800, 3.333600, + -1.340800, 1.576800, 0.363000, 1.407400, 0.656600, 0.801400, + -0.454600, 1.519200 + }} +}, + +// Precision 9 +{ + {{ + 369.000000, 374.829400, 381.245200, 387.669800, 394.146400, + 400.202400, 406.878200, 413.659800, 420.462000, 427.282600, + 433.710200, 440.741600, 447.936600, 455.104600, 462.285000, + 469.066800, 476.306000, 483.844800, 491.301000, 498.988600, + 506.242200, 513.813800, 521.707400, 529.742800, 537.840200, + 545.166400, 553.353400, 561.594000, 569.688600, 577.787600, + 585.650000, 594.228000, 602.803600, 611.166600, 620.081800, + 628.082400, 637.257400, 646.302000, 655.164400, 664.005600, + 672.380200, 681.719200, 690.523400, 700.208400, 708.831000, + 718.485000, 728.111200, 737.476400, 746.760000, 756.336800, + 766.553800, 775.505800, 785.264600, 795.590200, 804.381800, + 814.899800, 824.953200, 835.206200, 845.279800, 854.472800, + 864.958200, 875.329200, 886.171000, 896.781000, 906.571600, + 916.704800, 927.532200, 937.875000, 949.397200, 958.346400, + 969.727400, 980.283400, 992.144400, 1003.426400, 1013.016600, + 1024.018000, 1035.043800, 1046.340000, 1057.685600, 1068.983600, + 1079.031200, 1091.677000, 1102.318800, 1113.484600, 1124.442400, + 1135.739000, 1147.148800, 1158.920200, 1169.406000, 1181.534200, + 1193.283400, 1203.895400, 1216.328600, 1226.214600, 1239.668400, + 1251.994600, 1262.123000, 1275.433800, 1285.737800, 1296.076000, + 1308.969200, 1320.496400, 1333.099800, 1343.986400, 1357.775400, + 1368.320800, 1380.483800, 1392.738800, 1406.075800, 1416.909800, + 1428.972800, 1440.922800, 1453.929200, 1462.617000, 1476.050000, + 1490.299600, 1500.612800, 1513.739200, 1524.517400, 1536.632200, + 1548.258400, 1562.376600, 1572.423000, 1587.123200, 1596.516400, + 1610.593800, 1622.597200, 1633.122200, 1647.767400, 1658.504400, + 1671.570000, 1683.704400, 1695.414200, 1708.710200, 1720.609400, + 1732.652200, 1747.841000, 1756.407200, 1769.978600, 1782.327600, + 1797.521600, 1808.318600, 1819.069400, 1834.354000, 1844.575000, + 1856.280800, 1871.128800, 1880.785200, 1893.962200, 1906.341800, + 1920.654800, 1932.930200, 1945.858400, 1955.473000, 1968.824800, + 1980.644600, 1995.959800, 2008.349000, 2019.855600, 2033.033400, + 2044.020600, 2059.395600, 2069.917400, 2082.608400, 2093.703600, + 2106.610800, 2118.912400, 2132.301000, 2144.762800, 2159.842200, + 2171.021200, 2183.101000, 2193.511200, 2208.052000, 2221.319400, + 2233.328200, 2247.295000, 2257.722200, 2273.342000, 2286.563800, + 2299.678600, 2310.811400, 2322.331200, 2335.516000, 2349.874000, + 2363.596800, 2373.865000, 2387.191800, 2401.832800, 2414.849600, + 2424.544000, 2436.759200, 2447.168200, 2464.195800, 2474.343800, + 2489.000600, 2497.452600, 2513.658600, 2527.190000, 2540.702800, + 2553.768000 + }}, + {{ + 368.000000, 361.829400, 355.245200, 348.669800, 342.146400, 336.202400, + 329.878200, 323.659800, 317.462000, 311.282600, 305.710200, 299.741600, + 293.936600, 288.104600, 282.285000, 277.066800, 271.306000, 265.844800, + 260.301000, 254.988600, 250.242200, 244.813800, 239.707400, 234.742800, + 229.840200, 225.166400, 220.353400, 215.594000, 210.688600, 205.787600, + 201.650000, 197.228000, 192.803600, 188.166600, 184.081800, 180.082400, + 176.257400, 172.302000, 168.164400, 164.005600, 160.380200, 156.719200, + 152.523400, 149.208400, 145.831000, 142.485000, 139.111200, 135.476400, + 131.760000, 129.336800, 126.553800, 122.505800, 119.264600, 116.590200, + 113.381800, 110.899800, 107.953200, 105.206200, 102.279800, 99.472800, + 96.958200, 94.329200, 92.171000, 89.781000, 87.571600, 84.704800, + 82.532200, 79.875000, 78.397200, 75.346400, 73.727400, 71.283400, + 70.144400, 68.426400, 66.016600, 64.018000, 62.043800, 60.340000, + 58.685600, 57.983600, 55.031200, 54.677000, 52.318800, 51.484600, + 49.442400, 47.739000, 46.148800, 44.920200, 43.406000, 42.534200, + 41.283400, 38.895400, 38.328600, 36.214600, 36.668400, 35.994600, + 33.123000, 33.433800, 31.737800, 29.076000, 28.969200, 27.496400, + 27.099800, 25.986400, 26.775400, 24.320800, 23.483800, 22.738800, + 24.075800, 21.909800, 20.972800, 19.922800, 19.929200, 16.617000, + 17.050000, 18.299600, 15.612800, 15.739200, 14.517400, 13.632200, + 12.258400, 13.376600, 11.423000, 13.123200, 9.516400, 10.593800, + 9.597200, 8.122200, 9.767400, 7.504400, 7.570000, 6.704400, + 6.414200, 6.710200, 5.609400, 4.652200, 6.841000, 3.407200, + 3.978600, 3.327600, 5.521600, 3.318600, 2.069400, 4.354000, + 1.575000, 0.280800, 2.128800, -0.214800, -0.037800, -0.658200, + 0.654800, -0.069800, 0.858400, -2.527000, -2.175200, -3.355400, + -1.040200, -0.651000, -2.144400, -1.966600, -3.979400, -0.604400, + -3.082600, -3.391600, -5.296400, -5.389200, -5.087600, -4.699000, + -5.237200, -3.157800, -4.978800, -4.899000, -7.488800, -5.948000, + -5.680600, -6.671800, -4.705000, -7.277800, -4.658000, -4.436200, + -4.321400, -5.188600, -6.668800, -6.484000, -5.126000, -4.403200, + -6.135000, -5.808200, -4.167200, -4.150400, -7.456000, -7.240800, + -9.831800, -5.804200, -8.656200, -6.999400, -10.547400, -7.341400, + -6.810000, -6.297200, -6.232000 + }} +}, + +// Precision 10 +{ + {{ + 738.125600, 750.423400, 763.106400, 775.473200, 788.463600, + 801.064400, 814.488000, 827.965400, 841.083200, 854.786400, + 868.199200, 882.217600, 896.522800, 910.171600, 924.775200, + 938.899000, 953.612600, 968.649200, 982.947400, 998.521400, + 1013.106400, 1028.636400, 1044.246800, 1059.458800, 1075.383200, + 1091.058400, 1106.860600, 1123.386800, 1139.506200, 1156.186200, + 1172.463000, 1189.339000, 1206.193600, 1223.129200, 1240.185400, + 1257.290800, 1275.332400, 1292.851800, 1310.520400, 1328.485400, + 1345.931800, 1364.552000, 1381.465800, 1400.425600, 1419.849000, + 1438.152000, 1456.895600, 1474.879200, 1494.118000, 1513.620000, + 1532.513200, 1551.932200, 1570.772600, 1590.608600, 1610.533200, + 1630.591800, 1650.429400, 1669.766200, 1690.410600, 1710.733800, + 1730.901200, 1750.448600, 1770.155600, 1791.633800, 1812.731200, + 1833.626400, 1853.952600, 1874.874200, 1896.832600, 1918.196600, + 1939.559400, 1961.070000, 1983.037000, 2003.180400, 2026.071000, + 2047.488400, 2070.084800, 2091.294400, 2114.333000, 2135.962600, + 2158.290200, 2181.081400, 2202.033400, 2224.483200, 2246.390000, + 2269.720200, 2292.171400, 2314.235800, 2338.934600, 2360.891000, + 2384.026400, 2408.383400, 2430.154400, 2454.868400, 2476.989600, + 2501.436800, 2522.870200, 2548.040800, 2570.673800, 2593.520800, + 2617.015800, 2640.230200, 2664.096200, 2687.498600, 2714.258800, + 2735.391400, 2759.624400, 2781.837800, 2808.007200, 2830.651600, + 2856.245400, 2877.213600, 2903.454600, 2926.785000, 2951.229400, + 2976.468000, 3000.867000, 3023.650800, 3049.910000, 3073.598400, + 3098.162000, 3121.556400, 3146.232800, 3170.948400, 3195.590200, + 3221.334600, 3242.703200, 3271.611200, 3296.554600, 3317.737600, + 3345.072000, 3369.951800, 3394.326000, 3418.181800, 3444.692600, + 3469.086000, 3494.275400, 3517.869800, 3544.248000, 3565.376800, + 3588.723400, 3616.979000, 3643.750400, 3668.681200, 3695.720000, + 3719.739200, 3742.622400, 3770.445600, 3795.660200, 3819.905800, + 3844.002000, 3869.517000, 3895.682400, 3920.862200, 3947.136400, + 3973.985000, 3995.477200, 4021.620000, 4046.628000, 4074.650000, + 4096.225600, 4121.831000, 4146.640600, 4173.276000, 4195.074400, + 4223.969600, 4251.370800, 4272.996600, 4300.804600, 4326.302000, + 4353.124800, 4374.312000, 4403.032200, 4426.819000, 4450.059800, + 4478.520600, 4504.811600, 4528.892800, 4553.958400, 4578.871200, + 4603.838400, 4632.387200, 4655.512800, 4675.821000, 4704.622200, + 4731.986200, 4755.417400, 4781.262800, 4804.332000, 4832.304800, + 4862.875200, 4883.414800, 4906.954400, 4935.351600, 4954.353200, + 4984.024800, 5011.217000, 5035.325800, 5057.367200, 5084.182800 + }}, + {{ + 737.125600, 724.423400, 711.106400, 698.473200, 685.463600, 673.064400, + 660.488000, 647.965400, 636.083200, 623.786400, 612.199200, 600.217600, + 588.522800, 577.171600, 565.775200, 554.899000, 543.612600, 532.649200, + 521.947400, 511.521400, 501.106400, 490.636400, 480.246800, 470.458800, + 460.383200, 451.058400, 440.860600, 431.386800, 422.506200, 413.186200, + 404.463000, 395.339000, 386.193600, 378.129200, 369.185400, 361.290800, + 353.332400, 344.851800, 337.520400, 329.485400, 321.931800, 314.552000, + 306.465800, 299.425600, 292.849000, 286.152000, 278.895600, 271.879200, + 265.118000, 258.620000, 252.513200, 245.932200, 239.772600, 233.608600, + 227.533200, 222.591800, 216.429400, 210.766200, 205.410600, 199.733800, + 194.901200, 188.448600, 183.155600, 178.633800, 173.731200, 169.626400, + 163.952600, 159.874200, 155.832600, 151.196600, 147.559400, 143.070000, + 140.037000, 134.180400, 131.071000, 127.488400, 124.084800, 120.294400, + 117.333000, 112.962600, 110.290200, 107.081400, 103.033400, 99.483200, + 96.390000, 93.720200, 90.171400, 87.235800, 85.934600, 82.891000, + 80.026400, 78.383400, 75.154400, 73.868400, 70.989600, 69.436800, + 64.870200, 65.040800, 61.673800, 59.520800, 57.015800, 54.230200, + 53.096200, 50.498600, 52.258800, 47.391400, 45.624400, 42.837800, + 43.007200, 40.651600, 40.245400, 35.213600, 36.454600, 33.785000, + 33.229400, 32.468000, 30.867000, 28.650800, 28.910000, 27.598400, + 26.162000, 24.556400, 23.232800, 21.948400, 21.590200, 21.334600, + 17.703200, 20.611200, 19.554600, 15.737600, 17.072000, 16.951800, + 15.326000, 13.181800, 14.692600, 13.086000, 13.275400, 10.869800, + 11.248000, 7.376800, 4.723400, 7.979000, 8.750400, 7.681200, + 9.720000, 7.739200, 5.622400, 7.445600, 6.660200, 5.905800, + 4.002000, 4.517000, 4.682400, 3.862200, 5.136400, 5.985000, + 2.477200, 2.620000, 1.628000, 4.650000, 0.225600, 0.831000, + -0.359400, 1.276000, -2.925600, -0.030400, 2.370800, -2.003400, + 0.804600, 0.302000, 1.124800, -2.688000, 0.032200, -1.181000, + -3.940200, -1.479400, -0.188400, -2.107200, -2.041600, -3.128800, + -4.161600, -0.612800, -3.487200, -8.179000, -5.377800, -4.013800, + -5.582600, -5.737200, -7.668000, -5.695200, -1.124800, -5.585200, + -8.045600, -4.648400, -11.646800, -7.975200, -5.783000, -7.674200, + -10.632800, -9.817200 + }} +}, + +// Precision 11 +{ + {{ + 1477.000000, 1501.601400, 1526.580200, 1551.794200, 1577.304200, + 1603.206200, 1629.840200, 1656.229200, 1682.946200, 1709.992600, + 1737.302600, 1765.425200, 1793.057800, 1821.609200, 1849.626000, + 1878.556800, 1908.527000, 1937.515400, 1967.187400, 1997.387800, + 2027.370000, 2058.197200, 2089.572800, 2120.101200, 2151.966800, + 2183.292000, 2216.077200, 2247.857800, 2280.656200, 2313.041000, + 2345.714000, 2380.311200, 2414.180600, 2447.985400, 2481.656000, + 2516.346000, 2551.515400, 2586.837800, 2621.744800, 2656.672200, + 2693.572200, 2729.146200, 2765.412400, 2802.872800, 2838.898000, + 2876.408000, 2913.492600, 2951.493800, 2989.677600, 3026.282000, + 3065.770400, 3104.101200, 3143.738800, 3181.687600, 3221.187200, + 3261.504800, 3300.021400, 3339.806000, 3381.409000, 3421.414400, + 3461.429400, 3502.228600, 3544.651000, 3586.615600, 3627.337000, + 3670.083000, 3711.153800, 3753.509400, 3797.010000, 3838.668600, + 3882.167800, 3922.811600, 3967.997800, 4009.920400, 4054.328600, + 4097.570600, 4140.601400, 4185.544000, 4229.597600, 4274.583000, + 4316.943800, 4361.672000, 4406.278600, 4451.862800, 4496.183400, + 4543.505000, 4589.181600, 4632.518800, 4678.229400, 4724.890800, + 4769.019400, 4817.052000, 4861.458800, 4910.159600, 4956.434400, + 5002.523800, 5048.130000, 5093.637400, 5142.816200, 5187.789400, + 5237.398400, 5285.607800, 5331.085800, 5379.103600, 5428.625800, + 5474.601800, 5522.761800, 5571.582200, 5618.590000, 5667.999200, + 5714.880000, 5763.454000, 5808.698200, 5860.364400, 5910.291400, + 5953.571000, 6005.923200, 6055.191400, 6104.588200, 6154.570200, + 6199.703600, 6251.176400, 6298.759600, 6350.030200, 6398.061000, + 6448.469400, 6495.933000, 6548.047400, 6597.716600, 6646.941600, + 6695.920800, 6742.632800, 6793.527600, 6842.193400, 6894.237200, + 6945.386400, 6996.922800, 7044.237200, 7094.137400, 7142.227200, + 7192.294200, 7238.833800, 7288.900600, 7344.090800, 7394.854400, + 7443.517600, 7490.414800, 7542.931400, 7595.673800, 7641.987800, + 7694.368800, 7743.044800, 7797.522000, 7845.530000, 7899.594000, + 7950.313200, 7996.455000, 8050.944200, 8092.911400, 8153.137400, + 8197.447200, 8252.827800, 8301.872800, 8348.677600, 8401.469800, + 8453.551000, 8504.659800, 8553.894400, 8604.127600, 8657.651400, + 8710.306200, 8758.908000, 8807.870600, 8862.170200, 8910.466800, + 8960.770000, 9007.276600, 9063.164000, 9121.053400, 9164.135400, + 9218.159400, 9267.767000, 9319.059400, 9372.155000, 9419.712600, + 9474.372200, 9520.133800, 9572.368000, 9622.770200, 9675.844800, + 9726.539600, 9778.737800, 9827.655400, 9878.192200, 9928.778200, + 9978.398400, 10026.578000, 10076.562600, 10137.161800, 10177.524400, + 10229.917600 + }}, + {{ + 1476.000000, 1449.601400, 1423.580200, 1397.794200, 1372.304200, + 1347.206200, 1321.840200, 1297.229200, 1272.946200, 1248.992600, + 1225.302600, 1201.425200, 1178.057800, 1155.609200, 1132.626000, + 1110.556800, 1088.527000, 1066.515400, 1045.187400, 1024.387800, + 1003.370000, 982.197200, 962.572800, 942.101200, 922.966800, + 903.292000, 884.077200, 864.857800, 846.656200, 828.041000, + 809.714000, 792.311200, 775.180600, 757.985400, 740.656000, + 724.346000, 707.515400, 691.837800, 675.744800, 659.672200, + 645.572200, 630.146200, 614.412400, 600.872800, 585.898000, + 572.408000, 558.492600, 544.493800, 531.677600, 517.282000, + 505.770400, 493.101200, 480.738800, 467.687600, 456.187200, + 445.504800, 433.021400, 420.806000, 411.409000, 400.414400, + 389.429400, 379.228600, 369.651000, 360.615600, 350.337000, + 342.083000, 332.153800, 322.509400, 315.010000, 305.668600, + 298.167800, 287.811600, 280.997800, 271.920400, 265.328600, + 257.570600, 249.601400, 242.544000, 235.597600, 229.583000, + 220.943800, 214.672000, 208.278600, 201.862800, 195.183400, + 191.505000, 186.181600, 178.518800, 172.229400, 167.890800, + 161.019400, 158.052000, 151.458800, 148.159600, 143.434400, + 138.523800, 133.130000, 127.637400, 124.816200, 118.789400, + 117.398400, 114.607800, 109.085800, 105.103600, 103.625800, + 98.601800, 95.761800, 93.582200, 88.590000, 86.999200, + 82.880000, 80.454000, 74.698200, 74.364400, 73.291400, + 65.571000, 66.923200, 65.191400, 62.588200, 61.570200, + 55.703600, 56.176400, 52.759600, 53.030200, 49.061000, + 48.469400, 44.933000, 46.047400, 44.716600, 41.941600, + 39.920800, 35.632800, 35.527600, 33.193400, 33.237200, + 33.386400, 33.922800, 30.237200, 29.137400, 25.227200, + 24.294200, 19.833800, 18.900600, 23.090800, 21.854400, + 19.517600, 15.414800, 16.931400, 18.673800, 12.987800, + 14.368800, 12.044800, 15.522000, 12.530000, 14.594000, + 14.313200, 9.455000, 12.944200, 3.911400, 13.137400, + 5.447200, 9.827800, 7.872800, 3.677600, 5.469800, + 5.551000, 5.659800, 3.894400, 3.127600, 5.651400, + 6.306200, 3.908000, 1.870600, 5.170200, 2.466800, + 0.770000, -3.723400, 1.164000, 8.053400, 0.135400, + 2.159400, 0.767000, 1.059400, 3.155000, -0.287400, + 2.372200, -2.866200, -1.632000, -2.229800, -0.155200, + -1.460400, -0.262200, -2.344600, -2.807800, -3.221800, + -5.601600, -8.422000, -9.437400, 0.161800, -10.475600, + -10.082400 + }} +}, + +// Precision 12 +{ + {{ + 2954.000000, 3003.478200, 3053.356800, 3104.366600, 3155.324000, + 3206.959800, 3259.648000, 3312.539000, 3366.147400, 3420.257600, + 3474.837600, 3530.607600, 3586.451000, 3643.380000, 3700.410400, + 3757.563800, 3815.967600, 3875.193000, 3934.838000, 3994.854800, + 4055.018000, 4117.174200, 4178.448200, 4241.129400, 4304.477600, + 4367.404400, 4431.872400, 4496.373200, 4561.430400, 4627.532600, + 4693.949000, 4761.553200, 4828.725600, 4897.618200, 4965.518600, + 5034.452800, 5104.865000, 5174.716400, 5244.682800, 5316.670800, + 5387.831200, 5459.903600, 5532.476000, 5604.865200, 5679.671800, + 5753.757000, 5830.207200, 5905.282800, 5980.043400, 6056.626400, + 6134.319200, 6211.574600, 6290.081600, 6367.117600, 6447.979600, + 6526.557600, 6606.185800, 6686.914400, 6766.114200, 6847.081800, + 6927.966400, 7010.909600, 7091.081600, 7175.396200, 7260.345400, + 7344.018000, 7426.421400, 7511.310600, 7596.068600, 7679.809400, + 7765.818000, 7852.424800, 7936.834000, 8022.363000, 8109.506600, + 8200.455400, 8288.583200, 8373.366000, 8463.480800, 8549.768200, + 8642.052200, 8728.328800, 8820.952800, 8907.727000, 9001.079400, + 9091.252200, 9179.988000, 9269.852000, 9362.639400, 9453.642000, + 9546.902400, 9640.661600, 9732.662200, 9824.325400, 9917.748400, + 10007.939200, 10106.750800, 10196.215200, 10289.811400, 10383.549400, + 10482.306400, 10576.873400, 10668.787200, 10764.715600, 10862.019600, + 10952.793000, 11049.974800, 11146.070200, 11241.449200, 11339.277200, + 11434.233600, 11530.741000, 11627.613600, 11726.311000, 11821.596400, + 11918.837000, 12015.372400, 12113.016200, 12213.042400, 12306.980400, + 12408.451800, 12504.896800, 12604.586000, 12700.933200, 12798.705000, + 12898.514200, 12997.048800, 13094.788000, 13198.475000, 13292.776400, + 13392.969800, 13486.857400, 13590.161600, 13686.583800, 13783.626400, + 13887.263800, 13992.097800, 14081.084400, 14189.995600, 14280.091200, + 14382.495600, 14486.438400, 14588.108200, 14686.239200, 14782.276000, + 14888.028400, 14985.186400, 15088.859600, 15187.099800, 15285.027000, + 15383.669400, 15495.826600, 15591.373600, 15694.200800, 15790.324600, + 15898.411600, 15997.452200, 16095.501400, 16198.851400, 16291.749200, + 16402.642400, 16499.126600, 16606.243600, 16697.718600, 16796.394600, + 16902.337600, 17005.767200, 17100.814000, 17206.828200, 17305.826200, + 17416.074400, 17508.409200, 17617.017800, 17715.455400, 17816.758000, + 17920.174800, 18012.923600, 18119.798400, 18223.224800, 18324.248200, + 18426.627600, 18525.093200, 18629.897600, 18733.258800, 18831.046600, + 18940.136600, 19032.269600, 19131.729000, 19243.486400, 19349.693200, + 19442.866000, 19547.944800, 19653.279800, 19754.403400, 19854.069200, + 19965.122400, 20065.177400, 20158.221200, 20253.353000, 20366.326400, + 20463.220000 + }}, + {{ + 2953.000000, 2900.478200, 2848.356800, 2796.366600, 2745.324000, + 2694.959800, 2644.648000, 2595.539000, 2546.147400, 2498.257600, + 2450.837600, 2403.607600, 2357.451000, 2311.380000, 2266.410400, + 2221.563800, 2176.967600, 2134.193000, 2090.838000, 2048.854800, + 2007.018000, 1966.174200, 1925.448200, 1885.129400, 1846.477600, + 1807.404400, 1768.872400, 1731.373200, 1693.430400, 1657.532600, + 1621.949000, 1586.553200, 1551.725600, 1517.618200, 1483.518600, + 1450.452800, 1417.865000, 1385.716400, 1352.682800, 1322.670800, + 1291.831200, 1260.903600, 1231.476000, 1201.865200, 1173.671800, + 1145.757000, 1119.207200, 1092.282800, 1065.043400, 1038.626400, + 1014.319200, 988.574600, 965.081600, 940.117600, 917.979600, + 894.557600, 871.185800, 849.914400, 827.114200, 805.081800, + 783.966400, 763.909600, 742.081600, 724.396200, 706.345400, + 688.018000, 667.421400, 650.310600, 633.068600, 613.809400, + 597.818000, 581.424800, 563.834000, 547.363000, 531.506600, + 520.455400, 505.583200, 488.366000, 476.480800, 459.768200, + 450.052200, 434.328800, 423.952800, 408.727000, 399.079400, + 387.252200, 373.988000, 360.852000, 351.639400, 339.642000, + 330.902400, 322.661600, 311.662200, 301.325400, 291.748400, + 279.939200, 276.750800, 263.215200, 254.811400, 245.549400, + 242.306400, 234.873400, 223.787200, 217.715600, 212.019600, + 200.793000, 195.974800, 189.070200, 182.449200, 177.277200, + 170.233600, 164.741000, 158.613600, 155.311000, 147.596400, + 142.837000, 137.372400, 132.016200, 130.042400, 121.980400, + 120.451800, 114.896800, 111.586000, 105.933200, 101.705000, + 98.514200, 95.048800, 89.788000, 91.475000, 83.776400, + 80.969800, 72.857400, 73.161600, 67.583800, 62.626400, + 63.263800, 66.097800, 52.084400, 58.995600, 47.091200, + 46.495600, 48.438400, 47.108200, 43.239200, 37.276000, + 40.028400, 35.186400, 35.859600, 32.099800, 28.027000, + 23.669400, 33.826600, 26.373600, 27.200800, 21.324600, + 26.411600, 23.452200, 19.501400, 19.851400, 10.749200, + 18.642400, 13.126600, 18.243600, 6.718600, 3.394600, + 6.337600, 7.767200, 0.814000, 3.828200, 0.826200, + 8.074400, -1.590800, 5.017800, 0.455400, -0.242000, + 0.174800, -9.076400, -4.201600, -3.775200, -4.751800, + -5.372400, -8.906800, -6.102400, -5.741200, -9.953400, + -3.863400, -13.730400, -16.271000, -7.513600, -3.306800, + -13.134000, -10.055200, -6.720200, -8.596600, -10.930800, + -1.877600, -4.822600, -13.778800, -21.647000, -10.673600, + -15.780000 + }} +}, + +// Precision 13 +{ + {{ + 5908.505200, 6007.267200, 6107.347000, 6208.579400, 6311.262200, + 6414.551400, 6519.337600, 6625.695200, 6732.598800, 6841.355200, + 6950.597200, 7061.308200, 7173.564600, 7287.109000, 7401.821600, + 7516.434400, 7633.380200, 7751.296200, 7870.378400, 7990.292000, + 8110.790000, 8233.457400, 8356.603600, 8482.271200, 8607.770800, + 8735.099000, 8863.185800, 8993.474600, 9123.849600, 9255.679400, + 9388.544800, 9522.751600, 9657.310600, 9792.609400, 9930.564200, + 10068.794000, 10206.725600, 10347.810000, 10490.319600, 10632.077800, + 10775.991600, 10920.466200, 11066.124000, 11213.073000, 11358.036200, + 11508.100600, 11659.171600, 11808.751400, 11959.488400, 12112.131400, + 12265.037000, 12420.375600, 12578.933000, 12734.311000, 12890.000600, + 13047.214400, 13207.309600, 13368.514400, 13528.024000, 13689.847000, + 13852.752800, 14018.316800, 14180.537200, 14346.966800, 14513.507400, + 14677.867000, 14846.218600, 15017.418600, 15184.971600, 15356.339000, + 15529.297200, 15697.357800, 15871.868600, 16042.187000, 16216.409400, + 16389.418800, 16565.912600, 16742.327200, 16919.004200, 17094.759200, + 17273.965000, 17451.834200, 17634.425400, 17810.598400, 17988.924200, + 18171.051000, 18354.793800, 18539.466000, 18721.040800, 18904.997200, + 19081.867000, 19271.911800, 19451.869400, 19637.981600, 19821.292200, + 20013.129200, 20199.385800, 20387.872600, 20572.951400, 20770.776400, + 20955.171400, 21144.751000, 21329.995200, 21520.709000, 21712.701600, + 21906.386800, 22096.262600, 22286.052400, 22475.051000, 22665.509800, + 22862.849200, 23055.529400, 23249.613800, 23437.848000, 23636.273000, + 23826.093000, 24020.329600, 24213.389600, 24411.739200, 24602.961400, + 24805.795200, 24998.155200, 25193.958800, 25389.016600, 25585.839200, + 25780.697600, 25981.272800, 26175.977000, 26376.525200, 26570.196400, + 26773.387000, 26962.981200, 27163.058600, 27368.164000, 27565.053400, + 27758.742800, 27961.127600, 28163.232400, 28362.381600, 28565.766800, + 28758.644000, 28956.976800, 29163.472200, 29354.702600, 29561.118600, + 29767.994800, 29959.998600, 30164.049200, 30366.981800, 30562.533800, + 30762.992800, 30976.159200, 31166.274000, 31376.722000, 31570.373400, + 31770.809000, 31974.893400, 32179.528600, 32387.544200, 32582.350400, + 32794.076000, 32989.952800, 33191.842000, 33392.468400, 33595.659000, + 33801.867200, 34000.341400, 34200.092200, 34402.679200, 34610.063800, + 34804.008400, 35011.130000, 35218.669000, 35418.663400, 35619.079200, + 35830.653400, 36028.496600, 36229.790200, 36438.642200, 36630.776400, + 36833.310200, 37048.672800, 37247.391600, 37453.590400, 37669.361400, + 37854.552600, 38059.305000, 38268.093600, 38470.251600, 38674.706400, + 38876.167000, 39068.379400, 39281.914400, 39492.856600, 39684.862800, + 39898.410800, 40093.183600, 40297.685800, 40489.708600, 40717.242400 + }}, + {{ + 5907.505200, 5802.267200, 5697.347000, 5593.579400, 5491.262200, + 5390.551400, 5290.337600, 5191.695200, 5093.598800, 4997.355200, + 4902.597200, 4808.308200, 4715.564600, 4624.109000, 4533.821600, + 4444.434400, 4356.380200, 4269.296200, 4183.378400, 4098.292000, + 4014.790000, 3932.457400, 3850.603600, 3771.271200, 3691.770800, + 3615.099000, 3538.185800, 3463.474600, 3388.849600, 3315.679400, + 3244.544800, 3173.751600, 3103.310600, 3033.609400, 2966.564200, + 2900.794000, 2833.725600, 2769.810000, 2707.319600, 2644.077800, + 2583.991600, 2523.466200, 2464.124000, 2406.073000, 2347.036200, + 2292.100600, 2238.171600, 2182.751400, 2128.488400, 2077.131400, + 2025.037000, 1975.375600, 1928.933000, 1879.311000, 1831.000600, + 1783.214400, 1738.309600, 1694.514400, 1649.024000, 1606.847000, + 1564.752800, 1525.316800, 1482.537200, 1443.966800, 1406.507400, + 1365.867000, 1329.218600, 1295.418600, 1257.971600, 1225.339000, + 1193.297200, 1156.357800, 1125.868600, 1091.187000, 1061.409400, + 1029.418800, 1000.912600, 972.327200, 944.004200, 915.759200, + 889.965000, 862.834200, 840.425400, 812.598400, 785.924200, + 763.051000, 741.793800, 721.466000, 699.040800, 677.997200, + 649.867000, 634.911800, 609.869400, 591.981600, 570.292200, + 557.129200, 538.385800, 521.872600, 502.951400, 495.776400, + 475.171400, 459.751000, 439.995200, 426.709000, 413.701600, + 402.386800, 387.262600, 372.052400, 357.051000, 342.509800, + 334.849200, 322.529400, 311.613800, 295.848000, 289.273000, + 274.093000, 263.329600, 251.389600, 245.739200, 231.961400, + 229.795200, 217.155200, 208.958800, 199.016600, 190.839200, + 180.697600, 176.272800, 166.977000, 162.525200, 151.196400, + 149.387000, 133.981200, 130.058600, 130.164000, 122.053400, + 110.742800, 108.127600, 106.232400, 100.381600, 98.766800, + 86.644000, 79.976800, 82.472200, 68.702600, 70.118600, + 71.994800, 58.998600, 59.049200, 56.981800, 47.533800, + 42.992800, 51.159200, 37.274000, 42.722000, 31.373400, + 26.809000, 25.893400, 26.528600, 29.544200, 19.350400, + 26.076000, 17.952800, 14.842000, 10.468400, 8.659000, + 9.867200, 4.341400, -0.907800, -3.320800, -0.936200, + -11.991600, -8.870000, -6.331000, -11.336600, -15.920800, + -9.346600, -15.503400, -19.209800, -15.357800, -28.223600, + -30.689800, -19.327200, -25.608400, -24.409600, -13.638600, + -33.447400, -32.695000, -28.906400, -31.748400, -32.293600, + -35.833000, -47.620600, -39.085600, -33.143400, -46.137200, + -37.589200, -46.816400, -47.314200, -60.291400, -37.757600 + }} +}, + +// Precision 14 +{ + {{ + 11817.475000, 12015.004600, 12215.379200, 12417.750400, 12623.181400, + 12830.008600, 13040.007200, 13252.503000, 13466.178000, 13683.273800, + 13902.034400, 14123.979800, 14347.394000, 14573.778400, 14802.689400, + 15033.682400, 15266.913400, 15502.862400, 15741.494400, 15980.795600, + 16223.891600, 16468.631600, 16715.733000, 16965.572600, 17217.204000, + 17470.666000, 17727.851600, 17986.788600, 18247.690200, 18510.963200, + 18775.304000, 19044.748600, 19314.440800, 19587.202000, 19862.257600, + 20135.924000, 20417.032400, 20697.978800, 20979.611200, 21265.027400, + 21550.723000, 21841.690600, 22132.162000, 22428.140600, 22722.127000, + 23020.560600, 23319.739400, 23620.401400, 23925.272800, 24226.922400, + 24535.581000, 24845.505000, 25155.961800, 25470.382800, 25785.970200, + 26103.776400, 26420.413200, 26742.018600, 27062.885200, 27388.415000, + 27714.602400, 28042.296000, 28365.449400, 28701.152600, 29031.800800, + 29364.215600, 29704.497000, 30037.145800, 30380.111000, 30723.816800, + 31059.511400, 31404.949800, 31751.675200, 32095.268600, 32444.779200, + 32794.767000, 33145.204000, 33498.422600, 33847.650200, 34209.006000, + 34560.849000, 34919.483800, 35274.977800, 35635.132200, 35996.326600, + 36359.139400, 36722.826600, 37082.851600, 37447.735400, 37815.960600, + 38191.069200, 38559.410600, 38924.811200, 39294.672600, 39663.973000, + 40042.261000, 40416.203600, 40779.203600, 41161.643600, 41540.901400, + 41921.199800, 42294.769800, 42678.526400, 43061.346400, 43432.375000, + 43818.432000, 44198.659800, 44583.013800, 44970.479400, 45353.924000, + 45729.858000, 46118.222400, 46511.572400, 46900.738600, 47280.696400, + 47668.147200, 48055.679600, 48446.943600, 48838.714600, 49217.729600, + 49613.779600, 50010.750800, 50410.020800, 50793.788600, 51190.245600, + 51583.188200, 51971.079600, 52376.533800, 52763.319000, 53165.553400, + 53556.559400, 53948.270200, 54346.352000, 54748.791400, 55138.577000, + 55543.482400, 55941.174800, 56333.774600, 56745.155200, 57142.794400, + 57545.223600, 57935.995600, 58348.526800, 58737.547400, 59158.596200, + 59542.689600, 59958.800400, 60349.378800, 60755.021200, 61147.614400, + 61548.194000, 61946.069600, 62348.604200, 62763.603000, 63162.781000, + 63560.635000, 63974.348200, 64366.490800, 64771.587600, 65176.734600, + 65597.391600, 65995.915000, 66394.038400, 66822.939600, 67203.633600, + 67612.203200, 68019.007800, 68420.038800, 68821.220000, 69235.838800, + 69640.072400, 70055.155000, 70466.357000, 70863.426600, 71276.248200, + 71677.030600, 72080.200600, 72493.021400, 72893.595200, 73314.585600, + 73714.985200, 74125.302200, 74521.212200, 74933.681400, 75341.590400, + 75743.024400, 76166.027800, 76572.132200, 76973.102800, 77381.628400, + 77800.609200, 78189.328000, 78607.096200, 79012.250800, 79407.835800, + 79825.725000, 80238.701000, 80646.891000, 81035.643600, 81460.044800, + 81876.388400 + }}, + {{ + 11816.475000, 11605.004600, 11395.379200, 11188.750400, 10984.181400, + 10782.008600, 10582.007200, 10384.503000, 10189.178000, 9996.273800, + 9806.034400, 9617.979800, 9431.394000, 9248.778400, 9067.689400, + 8889.682400, 8712.913400, 8538.862400, 8368.494400, 8197.795600, + 8031.891600, 7866.631600, 7703.733000, 7544.572600, 7386.204000, + 7230.666000, 7077.851600, 6926.788600, 6778.690200, 6631.963200, + 6487.304000, 6346.748600, 6206.440800, 6070.202000, 5935.257600, + 5799.924000, 5671.032400, 5541.978800, 5414.611200, 5290.027400, + 5166.723000, 5047.690600, 4929.162000, 4815.140600, 4699.127000, + 4588.560600, 4477.739400, 4369.401400, 4264.272800, 4155.922400, + 4055.581000, 3955.505000, 3856.961800, 3761.382800, 3666.970200, + 3575.776400, 3482.413200, 3395.018600, 3305.885200, 3221.415000, + 3138.602400, 3056.296000, 2970.449400, 2896.152600, 2816.800800, + 2740.215600, 2670.497000, 2594.145800, 2527.111000, 2460.816800, + 2387.511400, 2322.949800, 2260.675200, 2194.268600, 2133.779200, + 2074.767000, 2015.204000, 1959.422600, 1898.650200, 1850.006000, + 1792.849000, 1741.483800, 1687.977800, 1638.132200, 1589.326600, + 1543.139400, 1496.826600, 1447.851600, 1402.735400, 1361.960600, + 1327.069200, 1285.410600, 1241.811200, 1201.672600, 1161.973000, + 1130.261000, 1094.203600, 1048.203600, 1020.643600, 990.901400, + 961.199800, 924.769800, 899.526400, 872.346400, 834.375000, + 810.432000, 780.659800, 756.013800, 733.479400, 707.924000, + 673.858000, 652.222400, 636.572400, 615.738600, 586.696400, + 564.147200, 541.679600, 523.943600, 505.714600, 475.729600, + 461.779600, 449.750800, 439.020800, 412.788600, 400.245600, + 383.188200, 362.079600, 357.533800, 334.319000, 327.553400, + 308.559400, 291.270200, 279.352000, 271.791400, 252.577000, + 247.482400, 236.174800, 218.774600, 220.155200, 208.794400, + 201.223600, 182.995600, 185.526800, 164.547400, 176.596200, + 150.689600, 157.800400, 138.378800, 134.021200, 117.614400, + 108.194000, 97.069600, 89.604200, 95.603000, 84.781000, + 72.635000, 77.348200, 59.490800, 55.587600, 50.734600, + 61.391600, 50.915000, 39.038400, 58.939600, 29.633600, + 28.203200, 26.007800, 17.038800, 9.220000, 13.838800, + 8.072400, 14.155000, 15.357000, 3.426600, 6.248200, + -2.969400, -8.799400, -5.978600, -14.404800, -3.414400, + -13.014800, -11.697800, -25.787800, -22.318600, -24.409600, + -31.975600, -18.972200, -22.867800, -30.897200, -32.371600, + -22.390800, -43.672000, -35.903800, -39.749200, -54.164200, + -45.275000, -42.299000, -44.109000, -64.356400, -49.955200, + -42.611600 + }} +}, + +// Precision 15 +{ + {{ + 23635.003600, 24030.803400, 24431.474400, 24837.152400, 25246.792800, + 25661.326000, 26081.353200, 26505.280600, 26933.989200, 27367.709800, + 27805.318000, 28248.799000, 28696.438200, 29148.824400, 29605.513800, + 30066.866800, 30534.234400, 31006.320000, 31480.778000, 31962.241800, + 32447.332400, 32938.023200, 33432.731000, 33930.728000, 34433.989600, + 34944.140200, 35457.558800, 35974.595800, 36497.329600, 37021.909600, + 37554.326000, 38088.082600, 38628.881600, 39171.319200, 39723.232600, + 40274.555400, 40832.314200, 41390.613000, 41959.590800, 42532.546600, + 43102.034400, 43683.507200, 44266.694000, 44851.282200, 45440.786200, + 46038.058600, 46640.316400, 47241.064000, 47846.155000, 48454.739600, + 49076.916800, 49692.542000, 50317.477800, 50939.650000, 51572.559600, + 52210.290600, 52843.739600, 53481.399600, 54127.236000, 54770.406000, + 55422.659800, 56078.795800, 56736.717400, 57397.678400, 58064.578400, + 58730.308000, 59404.978400, 60077.086400, 60751.915800, 61444.138600, + 62115.817000, 62808.774200, 63501.477400, 64187.545400, 64883.662200, + 65582.746800, 66274.531800, 66976.927600, 67688.776400, 68402.138000, + 69109.627400, 69822.970600, 70543.610800, 71265.520200, 71983.384800, + 72708.465600, 73433.384000, 74158.466400, 74896.486800, 75620.956400, + 76362.143400, 77098.320400, 77835.766200, 78582.611400, 79323.990200, + 80067.865800, 80814.924600, 81567.013600, 82310.853600, 83061.995200, + 83821.409600, 84580.860800, 85335.547000, 86092.580200, 86851.650600, + 87612.311000, 88381.201600, 89146.329600, 89907.897400, 90676.846000, + 91451.415200, 92224.551800, 92995.868600, 93763.506600, 94551.279600, + 95315.194400, 96096.180600, 96881.091800, 97665.679000, 98442.680000, + 99229.300200, 100011.099400, 100790.638600, 101580.156400, 102377.748400, + 103152.139200, 103944.271200, 104730.216000, 105528.633600, 106324.939800, + 107117.670600, 107890.398800, 108695.226600, 109485.238000, 110294.787600, + 111075.095800, 111878.049600, 112695.286400, 113464.548600, 114270.047400, + 115068.608000, 115884.362600, 116673.258800, 117483.371600, 118275.097000, + 119085.409200, 119879.280800, 120687.586800, 121499.994400, 122284.916000, + 123095.925400, 123912.503800, 124709.045400, 125503.718200, 126323.259000, + 127138.941200, 127943.829400, 128755.646000, 129556.535400, 130375.329800, + 131161.473400, 131971.196200, 132787.545800, 133588.105600, 134431.351000, + 135220.290600, 136023.398000, 136846.655800, 137667.000400, 138463.663000, + 139283.715400, 140074.614600, 140901.307200, 141721.854800, 142543.232200, + 143356.109600, 144173.741200, 144973.094800, 145794.316200, 146609.571400, + 147420.003000, 148237.978400, 149050.569600, 149854.761000, 150663.196600, + 151494.075400, 152313.141600, 153112.690200, 153935.720600, 154746.926200, + 155559.547000, 156401.974600, 157228.703600, 158008.725400, 158820.750000, + 159646.918400, 160470.445800, 161279.534800, 162093.311400, 162918.542000, + 163729.284200 + }}, + {{ + 23634.003600, 23210.803400, 22792.474400, 22379.152400, 21969.792800, + 21565.326000, 21165.353200, 20770.280600, 20379.989200, 19994.709800, + 19613.318000, 19236.799000, 18865.438200, 18498.824400, 18136.513800, + 17778.866800, 17426.234400, 17079.320000, 16734.778000, 16397.241800, + 16063.332400, 15734.023200, 15409.731000, 15088.728000, 14772.989600, + 14464.140200, 14157.558800, 13855.595800, 13559.329600, 13264.909600, + 12978.326000, 12692.082600, 12413.881600, 12137.319200, 11870.232600, + 11602.555400, 11340.314200, 11079.613000, 10829.590800, 10583.546600, + 10334.034400, 10095.507200, 9859.694000, 9625.282200, 9395.786200, + 9174.058600, 8957.316400, 8738.064000, 8524.155000, 8313.739600, + 8116.916800, 7913.542000, 7718.477800, 7521.650000, 7335.559600, + 7154.290600, 6968.739600, 6786.399600, 6613.236000, 6437.406000, + 6270.659800, 6107.795800, 5945.717400, 5787.678400, 5635.578400, + 5482.308000, 5337.978400, 5190.086400, 5045.915800, 4919.138600, + 4771.817000, 4645.774200, 4518.477400, 4385.545400, 4262.662200, + 4142.746800, 4015.531800, 3897.927600, 3790.776400, 3685.138000, + 3573.627400, 3467.970600, 3368.610800, 3271.520200, 3170.384800, + 3076.465600, 2982.384000, 2888.466400, 2806.486800, 2711.956400, + 2634.143400, 2551.320400, 2469.766200, 2396.611400, 2318.990200, + 2243.865800, 2171.924600, 2105.013600, 2028.853600, 1960.995200, + 1901.409600, 1841.860800, 1777.547000, 1714.580200, 1654.650600, + 1596.311000, 1546.201600, 1492.329600, 1433.897400, 1383.846000, + 1339.415200, 1293.551800, 1245.868600, 1193.506600, 1162.279600, + 1107.194400, 1069.180600, 1035.091800, 999.679000, 957.680000, + 925.300200, 888.099400, 848.638600, 818.156400, 796.748400, + 752.139200, 725.271200, 692.216000, 671.633600, 647.939800, + 621.670600, 575.398800, 561.226600, 532.238000, 521.787600, + 483.095800, 467.049600, 465.286400, 415.548600, 401.047400, + 380.608000, 377.362600, 347.258800, 338.371600, 310.097000, + 301.409200, 276.280800, 265.586800, 258.994400, 223.916000, + 215.925400, 213.503800, 191.045400, 166.718200, 166.259000, + 162.941200, 148.829400, 141.646000, 123.535400, 122.329800, + 89.473400, 80.196200, 77.545800, 59.105600, 83.351000, + 52.290600, 36.398000, 40.655800, 42.000400, 19.663000, + 19.715400, -8.385400, -0.692800, 0.854800, 3.232200, + -3.890400, -5.258800, -24.905200, -22.683800, -26.428600, + -34.997000, -37.021600, -43.430400, -58.239000, -68.803400, + -56.924600, -57.858400, -77.309800, -73.279400, -81.073800, + -87.453000, -65.025400, -57.296400, -96.274600, -103.250000, + -96.081600, -91.554200, -102.465200, -107.688600, -101.458000, + -109.715800 + }} +}, + +// Precision 16 +{ + {{ + 47271.000000, 48062.358400, 48862.707400, 49673.152000, 50492.841600, + 51322.951400, 52161.030000, 53009.407000, 53867.634800, 54734.206000, + 55610.514400, 56496.209600, 57390.795000, 58297.268000, 59210.644800, + 60134.665000, 61068.024800, 62010.447200, 62962.520400, 63923.574200, + 64895.019400, 65876.418200, 66862.613600, 67862.696800, 68868.890800, + 69882.854400, 70911.271000, 71944.092400, 72990.032600, 74040.692000, + 75100.633600, 76174.782600, 77252.599800, 78340.297400, 79438.257200, + 80545.497600, 81657.279600, 82784.633600, 83915.515000, 85059.736200, + 86205.936800, 87364.442400, 88530.335800, 89707.374400, 90885.963800, + 92080.197000, 93275.573800, 94479.391000, 95695.918000, 96919.223600, + 98148.460200, 99382.347400, 100625.697400, 101878.028400, 103141.627800, + 104409.458800, 105686.288200, 106967.540200, 108261.603200, 109548.157800, + 110852.072800, 112162.231000, 113479.007200, 114806.262600, 116137.907200, + 117469.504800, 118813.518600, 120165.487600, 121516.255600, 122875.766000, + 124250.544400, 125621.222200, 127003.235200, 128387.848000, 129775.264400, + 131181.777600, 132577.308600, 133979.945800, 135394.113200, 136800.907800, + 138233.217000, 139668.530800, 141085.212000, 142535.212200, 143969.068400, + 145420.287200, 146878.154200, 148332.757200, 149800.320200, 151269.660000, + 152743.610400, 154213.094800, 155690.288000, 157169.424600, 158672.175600, + 160160.059000, 161650.685400, 163145.777200, 164645.672600, 166159.195200, + 167682.157800, 169177.332800, 170700.011800, 172228.896400, 173732.666400, + 175265.555600, 176787.799000, 178317.111000, 179856.691400, 181400.865000, + 182943.461200, 184486.742000, 186033.469800, 187583.788600, 189148.186800, + 190688.452600, 192250.192600, 193810.904200, 195354.297200, 196938.768200, + 198493.589800, 200079.282400, 201618.912000, 203205.549200, 204765.579800, + 206356.112400, 207929.306400, 209498.719600, 211086.229000, 212675.132400, + 214256.789200, 215826.239200, 217412.847400, 218995.672400, 220618.603800, + 222207.116600, 223781.036400, 225387.433200, 227005.792800, 228590.433600, + 230217.873800, 231805.105400, 233408.900000, 234995.343200, 236601.495600, + 238190.790400, 239817.254800, 241411.283200, 243002.406600, 244640.188400, + 246255.312800, 247849.350800, 249479.973400, 251106.882200, 252705.027000, + 254332.924200, 255935.129000, 257526.901400, 259154.772000, 260777.625000, + 262390.253000, 264004.490600, 265643.590000, 267255.407600, 268873.426000, + 270470.725200, 272106.480400, 273722.445600, 275337.794000, 276945.703800, + 278592.915400, 280204.372600, 281841.160600, 283489.171000, 285130.171600, + 286735.336200, 288364.716400, 289961.181400, 291595.552400, 293285.683000, + 294899.666800, 296499.343400, 298128.046200, 299761.894600, 301394.242400, + 302997.674800, 304615.147800, 306269.772400, 307886.114000, 309543.102800, + 311153.286200, 312782.854600, 314421.200800, 316033.243800, 317692.963600, + 319305.264800, 320948.740600, 322566.336400, 324228.422400, 325847.154200 + }}, + {{ + 47270.000000, 46423.358400, 45585.707400, 44757.152000, 43938.841600, + 43130.951400, 42330.030000, 41540.407000, 40759.634800, 39988.206000, + 39226.514400, 38473.209600, 37729.795000, 36997.268000, 36272.644800, + 35558.665000, 34853.024800, 34157.447200, 33470.520400, 32793.574200, + 32127.019400, 31469.418200, 30817.613600, 30178.696800, 29546.890800, + 28922.854400, 28312.271000, 27707.092400, 27114.032600, 26526.692000, + 25948.633600, 25383.782600, 24823.599800, 24272.297400, 23732.257200, + 23201.497600, 22674.279600, 22163.633600, 21656.515000, 21161.736200, + 20669.936800, 20189.442400, 19717.335800, 19256.374400, 18795.963800, + 18352.197000, 17908.573800, 17474.391000, 17052.918000, 16637.223600, + 16228.460200, 15823.347400, 15428.697400, 15043.028400, 14667.627800, + 14297.458800, 13935.288200, 13578.540200, 13234.603200, 12882.157800, + 12548.072800, 12219.231000, 11898.007200, 11587.262600, 11279.907200, + 10973.504800, 10678.518600, 10392.487600, 10105.255600, 9825.766000, + 9562.544400, 9294.222200, 9038.235200, 8784.848000, 8533.264400, + 8301.777600, 8058.308600, 7822.945800, 7599.113200, 7366.907800, + 7161.217000, 6957.530800, 6736.212000, 6548.212200, 6343.068400, + 6156.287200, 5975.154200, 5791.757200, 5621.320200, 5451.660000, + 5287.610400, 5118.094800, 4957.288000, 4798.424600, 4662.175600, + 4512.059000, 4364.685400, 4220.777200, 4082.672600, 3957.195200, + 3842.157800, 3699.332800, 3583.011800, 3473.896400, 3338.666400, + 3233.555600, 3117.799000, 3008.111000, 2909.691400, 2814.865000, + 2719.461200, 2624.742000, 2532.469800, 2444.788600, 2370.186800, + 2272.452600, 2196.192600, 2117.904200, 2023.297200, 1969.768200, + 1885.589800, 1833.282400, 1733.912000, 1682.549200, 1604.579800, + 1556.112400, 1491.306400, 1421.719600, 1371.229000, 1322.132400, + 1264.789200, 1196.239200, 1143.847400, 1088.672400, 1073.603800, + 1023.116600, 959.036400, 927.433200, 906.792800, 853.433600, + 841.873800, 791.105400, 756.900000, 704.343200, 672.495600, + 622.790400, 611.254800, 567.283200, 519.406600, 519.188400, + 495.312800, 451.350800, 443.973400, 431.882200, 392.027000, + 380.924200, 345.129000, 298.901400, 287.772000, 272.625000, + 247.253000, 222.490600, 223.590000, 196.407600, 176.426000, + 134.725200, 132.480400, 110.445600, 86.794000, 56.703800, + 64.915400, 38.372600, 37.160600, 46.171000, 49.171600, + 15.336200, 6.716400, -34.818600, -39.447600, 12.683000, + -12.333200, -50.656600, -59.953800, -65.105400, -70.757600, + -106.325200, -126.852200, -110.227600, -132.886000, -113.897200, + -142.713800, -151.145400, -150.799200, -177.756200, -156.036400, + -182.735200, -177.259400, -198.663600, -174.577600, -193.845800 + }} +}, + +// Precision 17 +{ + {{ + 94542.000000, 96125.811000, 97728.019000, 99348.558000, 100987.970500, + 102646.756500, 104324.512500, 106021.743500, 107736.786500, 109469.272000, + 111223.946500, 112995.219000, 114787.432000, 116593.152000, 118422.710000, + 120267.234500, 122134.676500, 124020.937000, 125927.270500, 127851.255000, + 129788.948500, 131751.016000, 133726.822500, 135722.592000, 137736.789000, + 139770.568000, 141821.518000, 143891.343000, 145982.141500, 148095.387000, + 150207.526000, 152355.649000, 154515.641500, 156696.050000, 158887.757500, + 161098.159000, 163329.852000, 165569.053000, 167837.400500, 170121.616500, + 172420.459500, 174732.626500, 177062.770000, 179412.502000, 181774.035000, + 184151.939000, 186551.689500, 188965.691000, 191402.809500, 193857.949000, + 196305.077500, 198774.671500, 201271.258500, 203764.780000, 206299.369500, + 208818.136500, 211373.115000, 213946.746500, 216532.076000, 219105.541000, + 221714.537500, 224337.513500, 226977.512500, 229613.065500, 232270.268500, + 234952.206500, 237645.355500, 240331.192500, 243034.517000, 245756.072500, + 248517.686500, 251232.737000, 254011.395500, 256785.995000, 259556.440000, + 262368.335000, 265156.911000, 267965.266000, 270785.583000, 273616.049500, + 276487.483500, 279346.639000, 282202.509000, 285074.388500, 287942.285500, + 290856.018000, 293774.034500, 296678.514500, 299603.635500, 302552.657500, + 305492.978500, 308466.860500, 311392.581000, 314347.538000, 317319.429500, + 320285.978500, 323301.732500, 326298.323500, 329301.310500, 332301.987000, + 335309.791000, 338370.762000, 341382.923000, 344431.126500, 347464.154500, + 350507.280000, 353619.234500, 356631.200500, 359685.203000, 362776.784500, + 365886.488000, 368958.225500, 372060.682500, 375165.433500, 378237.935000, + 381328.311000, 384430.522500, 387576.425000, 390683.242000, 393839.648000, + 396977.842500, 400101.980500, 403271.296000, 406409.842500, 409529.548500, + 412678.700000, 415847.423000, 419020.803500, 422157.081000, 425337.749000, + 428479.616500, 431700.902000, 434893.191500, 438049.582000, 441210.541500, + 444379.254500, 447577.356000, 450741.931000, 453959.548000, 457137.093500, + 460329.846000, 463537.481500, 466732.334500, 469960.561500, 473164.681000, + 476347.634500, 479496.173000, 482813.164500, 486025.699500, 489249.488500, + 492460.194500, 495675.880500, 498908.007500, 502131.802000, 505374.385500, + 508550.991500, 511806.730500, 515026.776000, 518217.000500, 521523.985500, + 524705.985500, 527950.997000, 531210.026500, 534472.497000, 537750.731500, + 540926.922000, 544207.094000, 547429.434500, 550666.374500, 553975.347500, + 557150.718500, 560399.616500, 563662.697000, 566916.739500, 570146.121500, + 573447.425000, 576689.624500, 579874.574500, 583202.337000, 586503.025500, + 589715.635000, 592910.161000, 596214.388500, 599488.035000, 602740.920000, + 605983.068500, 609248.670000, 612491.360500, 615787.912000, 619107.524500, + 622307.955500, 625577.333000, 628840.438500, 632085.215500, 635317.613500, + 638691.719500, 641887.467000, 645139.940500, 648441.546000, 651666.252000, + 654941.845000 + }}, + {{ + 94541.000000, 92848.811000, 91174.019000, 89517.558000, 87879.970500, + 86262.756500, 84663.512500, 83083.743500, 81521.786500, 79977.272000, + 78455.946500, 76950.219000, 75465.432000, 73994.152000, 72546.710000, + 71115.234500, 69705.676500, 68314.937000, 66944.270500, 65591.255000, + 64252.948500, 62938.016000, 61636.822500, 60355.592000, 59092.789000, + 57850.568000, 56624.518000, 55417.343000, 54231.141500, 53067.387000, + 51903.526000, 50774.649000, 49657.641500, 48561.050000, 47475.757500, + 46410.159000, 45364.852000, 44327.053000, 43318.400500, 42325.616500, + 41348.459500, 40383.626500, 39436.770000, 38509.502000, 37594.035000, + 36695.939000, 35818.689500, 34955.691000, 34115.809500, 33293.949000, + 32465.077500, 31657.671500, 30877.258500, 30093.780000, 29351.369500, + 28594.136500, 27872.115000, 27168.746500, 26477.076000, 25774.541000, + 25106.537500, 24452.513500, 23815.512500, 23174.065500, 22555.268500, + 21960.206500, 21376.355500, 20785.192500, 20211.517000, 19657.072500, + 19141.686500, 18579.737000, 18081.395500, 17578.995000, 17073.440000, + 16608.335000, 16119.911000, 15651.266000, 15194.583000, 14749.049500, + 14343.483500, 13925.639000, 13504.509000, 13099.388500, 12691.285500, + 12328.018000, 11969.034500, 11596.514500, 11245.635500, 10917.657500, + 10580.978500, 10277.860500, 9926.581000, 9605.538000, 9300.429500, + 8989.978500, 8728.732500, 8448.323500, 8175.310500, 7898.987000, + 7629.791000, 7413.762000, 7149.923000, 6921.126500, 6677.154500, + 6443.280000, 6278.234500, 6014.200500, 5791.203000, 5605.784500, + 5438.488000, 5234.225500, 5059.682500, 4887.433500, 4682.935000, + 4496.311000, 4322.522500, 4191.425000, 4021.242000, 3900.648000, + 3762.842500, 3609.980500, 3502.296000, 3363.842500, 3206.548500, + 3079.700000, 2971.423000, 2867.803500, 2727.081000, 2630.749000, + 2496.616500, 2440.902000, 2356.191500, 2235.582000, 2120.541500, + 2012.254500, 1933.356000, 1820.931000, 1761.548000, 1663.093500, + 1578.846000, 1509.481500, 1427.334500, 1379.561500, 1306.681000, + 1212.634500, 1084.173000, 1124.164500, 1060.699500, 1007.488500, + 941.194500, 879.880500, 836.007500, 782.802000, 748.385500, + 647.991500, 626.730500, 570.776000, 484.000500, 513.985500, + 418.985500, 386.997000, 370.026500, 355.497000, 356.731500, + 255.922000, 259.094000, 205.434500, 165.374500, 197.347500, + 95.718500, 67.616500, 54.697000, 31.739500, -15.878500, + 8.425000, -26.375500, -118.425500, -66.663000, -42.974500, + -107.365000, -189.839000, -162.611500, -164.965000, -189.080000, + -223.931500, -235.330000, -269.639500, -249.088000, -206.475500, + -283.044500, -290.667000, -304.561500, -336.784500, -380.386500, + -283.280500, -364.533000, -389.059500, -364.454000, -415.748000, + -417.155000 + }} +}, + +// Precision 18 +{ + {{ + 189084.000000, 192250.913000, 195456.774000, 198696.946000, + 201977.762000, 205294.444000, 208651.754000, 212042.099000, + 215472.269000, 218941.910000, 222443.912000, 225996.845000, + 229568.199000, 233193.568000, 236844.457000, 240543.233000, + 244279.475000, 248044.270000, 251854.588000, 255693.200000, + 259583.619000, 263494.621000, 267445.385000, 271454.061000, + 275468.769000, 279549.456000, 283646.446000, 287788.198000, + 291966.099000, 296181.164000, 300431.469000, 304718.618000, + 309024.004000, 313393.508000, 317760.803000, 322209.731000, + 326675.061000, 331160.627000, 335654.470000, 340241.442000, + 344841.833000, 349467.132000, 354130.629000, 358819.432000, + 363574.626000, 368296.587000, 373118.482000, 377914.930000, + 382782.301000, 387680.669000, 392601.981000, 397544.323000, + 402529.115000, 407546.018000, 412593.658000, 417638.657000, + 422762.865000, 427886.169000, 433017.167000, 438213.273000, + 443441.254000, 448692.421000, 453937.533000, 459239.049000, + 464529.569000, 469910.083000, 475274.030000, 480684.473000, + 486070.260000, 491515.237000, 496995.651000, 502476.617000, + 507973.609000, 513497.190000, 519083.233000, 524726.509000, + 530305.505000, 535945.728000, 541584.404000, 547274.055000, + 552967.236000, 558667.862000, 564360.216000, 570128.148000, + 575965.080000, 581701.952000, 587532.523000, 593361.144000, + 599246.128000, 605033.418000, 610958.779000, 616837.117000, + 622772.818000, 628672.040000, 634675.369000, 640574.831000, + 646585.739000, 652574.547000, 658611.217000, 664642.684000, + 670713.914000, 676737.681000, 682797.313000, 688837.897000, + 694917.874000, 701009.882000, 707173.648000, 713257.254000, + 719415.392000, 725636.761000, 731710.697000, 737906.209000, + 744103.074000, 750313.390000, 756504.185000, 762712.579000, + 768876.985000, 775167.859000, 781359.000000, 787615.959000, + 793863.597000, 800245.477000, 806464.582000, 812785.294000, + 819005.925000, 825403.057000, 831676.197000, 837936.284000, + 844266.968000, 850642.711000, 856959.756000, 863322.774000, + 869699.931000, 876102.478000, 882355.787000, 888694.463000, + 895159.952000, 901536.143000, 907872.631000, 914293.672000, + 920615.140000, 927130.974000, 933409.404000, 939922.178000, + 946331.470000, 952745.930000, 959209.264000, 965590.224000, + 972077.284000, 978501.961000, 984953.190000, 991413.271000, + 997817.479000, 1004222.658000, 1010725.676000, 1017177.138000, + 1023612.529000, 1030098.236000, 1036493.719000, 1043112.207000, + 1049537.036000, 1056008.096000, 1062476.184000, 1068942.337000, + 1075524.950000, 1081932.864000, 1088426.025000, 1094776.005000, + 1101327.448000, 1107901.673000, 1114423.639000, 1120884.602000, + 1127324.923000, 1133794.240000, 1140328.886000, 1146849.376000, + 1153346.682000, 1159836.502000, 1166478.703000, 1172953.304000, + 1179391.502000, 1185950.982000, 1192544.052000, 1198913.410000, + 1205430.994000, 1212015.525000, 1218674.042000, 1225121.683000, + 1231551.101000, 1238126.379000, 1244673.795000, 1251260.649000, + 1257697.860000, 1264320.983000, 1270736.319000, 1277274.694000, + 1283804.950000, 1290211.514000, 1296858.568000, 1303455.691000 + }}, + {{ + 189083.000000, 185696.913000, 182348.774000, 179035.946000, 175762.762000, + 172526.444000, 169329.754000, 166166.099000, 163043.269000, 159958.910000, + 156907.912000, 153906.845000, 150924.199000, 147996.568000, 145093.457000, + 142239.233000, 139421.475000, 136632.270000, 133889.588000, 131174.200000, + 128511.619000, 125868.621000, 123265.385000, 120721.061000, 118181.769000, + 115709.456000, 113252.446000, 110840.198000, 108465.099000, 106126.164000, + 103823.469000, 101556.618000, 99308.004000, 97124.508000, 94937.803000, + 92833.731000, 90745.061000, 88677.627000, 86617.470000, 84650.442000, + 82697.833000, 80769.132000, 78879.629000, 77014.432000, 75215.626000, + 73384.587000, 71652.482000, 69895.930000, 68209.301000, 66553.669000, + 64921.981000, 63310.323000, 61742.115000, 60205.018000, 58698.658000, + 57190.657000, 55760.865000, 54331.169000, 52908.167000, 51550.273000, + 50225.254000, 48922.421000, 47614.533000, 46362.049000, 45098.569000, + 43926.083000, 42736.030000, 41593.473000, 40425.260000, 39316.237000, + 38243.651000, 37170.617000, 36114.609000, 35084.190000, 34117.233000, + 33206.509000, 32231.505000, 31318.728000, 30403.404000, 29540.055000, + 28679.236000, 27825.862000, 26965.216000, 26179.148000, 25462.080000, + 24645.952000, 23922.523000, 23198.144000, 22529.128000, 21762.418000, + 21134.779000, 20459.117000, 19840.818000, 19187.040000, 18636.369000, + 17982.831000, 17439.739000, 16874.547000, 16358.217000, 15835.684000, + 15352.914000, 14823.681000, 14329.313000, 13816.897000, 13342.874000, + 12880.882000, 12491.648000, 12021.254000, 11625.392000, 11293.761000, + 10813.697000, 10456.209000, 10099.074000, 9755.390000, 9393.185000, + 9047.579000, 8657.985000, 8395.859000, 8033.000000, 7736.959000, + 7430.597000, 7258.477000, 6924.582000, 6691.294000, 6357.925000, + 6202.057000, 5921.197000, 5628.284000, 5404.968000, 5226.711000, + 4990.756000, 4799.774000, 4622.931000, 4472.478000, 4171.787000, + 3957.463000, 3868.952000, 3691.143000, 3474.631000, 3341.672000, + 3109.140000, 3071.974000, 2796.404000, 2756.178000, 2611.470000, + 2471.930000, 2382.264000, 2209.224000, 2142.284000, 2013.961000, + 1911.190000, 1818.271000, 1668.479000, 1519.658000, 1469.676000, + 1367.138000, 1248.529000, 1181.236000, 1022.719000, 1088.207000, + 959.036000, 876.096000, 791.184000, 703.337000, 731.950000, + 586.864000, 526.025000, 323.005000, 320.448000, 340.673000, + 309.639000, 216.602000, 102.923000, 19.240000, -0.114000, + -32.624000, -89.318000, -153.498000, -64.297000, -143.696000, + -259.498000, -253.018000, -213.948000, -397.590000, -434.006000, + -403.475000, -297.958000, -404.317000, -528.899000, -506.621000, + -513.205000, -479.351000, -596.140000, -527.017000, -664.681000, + -680.306000, -704.050000, -850.486000, -757.432000, -713.309000 + }} +} diff --git a/library/cpp/hyperloglog/hyperloglog_ut.cpp b/library/cpp/hyperloglog/hyperloglog_ut.cpp index efee7ea889..b987aa0fa4 100644 --- a/library/cpp/hyperloglog/hyperloglog_ut.cpp +++ b/library/cpp/hyperloglog/hyperloglog_ut.cpp @@ -1,20 +1,20 @@ #include "hyperloglog.h" - -#include <util/generic/buffer.h> -#include <util/random/mersenne.h> -#include <util/stream/buffer.h> - + +#include <util/generic/buffer.h> +#include <util/random/mersenne.h> +#include <util/stream/buffer.h> + #include <library/cpp/testing/unittest/registar.h> - -#include <cmath> - + +#include <cmath> + Y_UNIT_TEST_SUITE(THyperLogLog) { Y_UNIT_TEST(TestPrecision18) { - TMersenne<ui64> rand; - + TMersenne<ui64> rand; + auto counter = THyperLogLog::Create(18); - - static const std::pair<ui64, ui64> POINTS[] = { + + static const std::pair<ui64, ui64> POINTS[] = { {10, 10}, {100, 100}, {1000, 998}, @@ -24,44 +24,44 @@ Y_UNIT_TEST_SUITE(THyperLogLog) { {10000000, 9983891}, {100000000, 100315572}, {1000000000, 998791445}, - //1:37: {10000000000, 10015943904} - }; - ui64 unique = 0; - for (const auto& pnt : POINTS) { - while (unique < pnt.first) { - const auto val = rand(); - counter.Update(val); - ++unique; - } - const auto estimation = counter.Estimate(); - const auto delta = i64(estimation) - i64(unique); - const auto error = double(delta) / unique; - UNIT_ASSERT(std::abs(error) < 0.0032); - UNIT_ASSERT_EQUAL(estimation, pnt.second); - } - { + //1:37: {10000000000, 10015943904} + }; + ui64 unique = 0; + for (const auto& pnt : POINTS) { + while (unique < pnt.first) { + const auto val = rand(); + counter.Update(val); + ++unique; + } + const auto estimation = counter.Estimate(); + const auto delta = i64(estimation) - i64(unique); + const auto error = double(delta) / unique; + UNIT_ASSERT(std::abs(error) < 0.0032); + UNIT_ASSERT_EQUAL(estimation, pnt.second); + } + { auto counter2 = THyperLogLog::Create(18); - while (unique < 2000000000) { - const auto val = rand(); - counter2.Update(val); - ++unique; - } - const auto estimation = counter2.Estimate(); - UNIT_ASSERT_EQUAL(estimation, 1000013484); - - counter.Merge(counter2); - UNIT_ASSERT_EQUAL(counter.Estimate(), 1998488794); - } - - { - TBufferStream stream; - counter.Save(stream); - UNIT_ASSERT_EQUAL(stream.Buffer().Size(), 1 + (1 << 18)); - - stream.Rewind(); + while (unique < 2000000000) { + const auto val = rand(); + counter2.Update(val); + ++unique; + } + const auto estimation = counter2.Estimate(); + UNIT_ASSERT_EQUAL(estimation, 1000013484); + + counter.Merge(counter2); + UNIT_ASSERT_EQUAL(counter.Estimate(), 1998488794); + } + + { + TBufferStream stream; + counter.Save(stream); + UNIT_ASSERT_EQUAL(stream.Buffer().Size(), 1 + (1 << 18)); + + stream.Rewind(); const auto copy = THyperLogLog::Load(stream); - - UNIT_ASSERT_EQUAL(counter.Estimate(), copy.Estimate()); - } - } -} + + UNIT_ASSERT_EQUAL(counter.Estimate(), copy.Estimate()); + } + } +} diff --git a/library/cpp/packers/packers.h b/library/cpp/packers/packers.h index 8690ac49d7..1bde1b59aa 100644 --- a/library/cpp/packers/packers.h +++ b/library/cpp/packers/packers.h @@ -274,7 +274,7 @@ namespace NPackers { size_t lenChar = len * sizeof(typename TStringType::char_type); size_t start = size - lenChar; TIntegralPacker<size_t>().PackLeaf(buf, len, TIntegralPacker<size_t>().MeasureLeaf(len)); - memcpy(buf + start, str.data(), lenChar); + memcpy(buf + start, str.data(), lenChar); } template <class TStringType> diff --git a/util/charset/wide.h b/util/charset/wide.h index 53273970b6..04e6928aab 100644 --- a/util/charset/wide.h +++ b/util/charset/wide.h @@ -438,7 +438,7 @@ inline TString WideToUTF8(const wchar32* text, size_t len) { } inline TString WideToUTF8(const TWtringBuf w) { - return WideToUTF8(w.data(), w.size()); + return WideToUTF8(w.data(), w.size()); } inline TString WideToUTF8(const TUtf32StringBuf w) { @@ -675,7 +675,7 @@ inline bool IsSpace(const wchar16* s, size_t n) { //! returns @c true if string contains whitespace characters only inline bool IsSpace(const TWtringBuf s) { - return IsSpace(s.data(), s.length()); + return IsSpace(s.data(), s.length()); } //! replaces multiple sequential whitespace characters with a single space character |