LCOV - code coverage report
Current view: top level - elsa/core/tests - test_Bessel.cpp (source / functions) Hit Total Coverage
Test: coverage-all.lcov Lines: 1050 1050 100.0 %
Date: 2022-08-25 03:05:39 Functions: 20 20 100.0 %

          Line data    Source code
       1             : #include "doctest/doctest.h"
       2             : 
       3             : #include <vector>
       4             : 
       5             : #include "Bessel.h"
       6             : #include "elsaDefines.h"
       7             : 
       8             : #include "spdlog/fmt/fmt.h"
       9             : #include "spdlog/fmt/bundled/ranges.h"
      10             : 
      11             : TEST_SUITE_BEGIN("Bessel");
      12             : 
      13             : using namespace elsa;
      14             : 
      15             : template <typename T>
      16             : std::vector<T> get_bessi0();
      17             : 
      18             : template <typename T>
      19             : std::vector<T> get_bessi1();
      20             : 
      21             : template <typename T>
      22             : std::vector<T> get_bessi2();
      23             : 
      24             : template <typename T>
      25             : std::vector<T> get_bessi3();
      26             : 
      27             : template <typename T>
      28             : std::vector<T> get_bessi4();
      29             : 
      30             : TEST_CASE_TEMPLATE("bessel0: compare against libstdc++ std::cyl_bessel_i", T, float, double)
      31           2 : {
      32           2 :     auto expected = get_bessi0<T>();
      33           2 :     const auto size = expected.size();
      34             : 
      35           2 :     auto linspace = Vector_t<T>::LinSpaced(size, 0, 4);
      36             : 
      37         402 :     for (std::size_t i = 0; i < size; ++i) {
      38         400 :         CHECK_EQ(math::bessi0(linspace[i]), doctest::Approx(expected[i]));
      39         400 :     }
      40           2 : }
      41             : 
      42             : TEST_CASE_TEMPLATE("bessel1: compare against libstdc++ std::cyl_bessel_i", T, float, double)
      43           2 : {
      44           2 :     std::vector<T> expected = get_bessi1<T>();
      45             : 
      46           2 :     const auto size = expected.size();
      47           2 :     auto linspace = Vector_t<T>::LinSpaced(size, 0, 4);
      48             : 
      49         402 :     for (std::size_t i = 0; i < size; ++i) {
      50         400 :         CHECK_EQ(math::bessi1(linspace[i]), doctest::Approx(expected[i]));
      51         400 :     }
      52           2 : }
      53             : 
      54             : TEST_CASE_TEMPLATE("bessel2: compare against libstdc++ std::cyl_bessel_i", T, float, double)
      55           2 : {
      56           2 :     std::vector<T> expected = get_bessi2<T>();
      57             : 
      58           2 :     const auto size = expected.size();
      59           2 :     auto linspace = Vector_t<T>::LinSpaced(size, 0, 4);
      60             : 
      61         402 :     for (std::size_t i = 0; i < size; ++i) {
      62         400 :         CHECK_EQ(math::bessi2(linspace[i]), doctest::Approx(expected[i]));
      63         400 :     }
      64           2 : }
      65             : 
      66             : TEST_CASE_TEMPLATE("bessel3: compare against libstdc++ std::cyl_bessel_i", T, float, double)
      67           2 : {
      68           2 :     std::vector<T> expected = get_bessi3<T>();
      69             : 
      70           2 :     const auto size = expected.size();
      71           2 :     auto linspace = Vector_t<T>::LinSpaced(size, 0, 4);
      72             : 
      73         402 :     for (std::size_t i = 0; i < size; ++i) {
      74         400 :         CHECK_EQ(math::bessi3(linspace[i]), doctest::Approx(expected[i]));
      75         400 :     }
      76           2 : }
      77             : 
      78             : TEST_CASE_TEMPLATE("bessel4: compare against libstdc++ std::cyl_bessel_i", T, float, double)
      79           2 : {
      80           2 :     std::vector<T> expected = get_bessi4<T>();
      81             : 
      82           2 :     const auto size = expected.size();
      83           2 :     auto linspace = Vector_t<T>::LinSpaced(size, 0, 4);
      84             : 
      85         402 :     for (std::size_t i = 0; i < size; ++i) {
      86         400 :         CHECK_EQ(math::bessi4(linspace[i]), doctest::Approx(expected[i]));
      87         400 :     }
      88           2 : }
      89             : 
      90             : template <typename T>
      91             : std::vector<T> get_bessi0()
      92           2 : {
      93           2 :     return {1,
      94           2 :             1.0001010101009742,
      95           2 :             1.0004040710131905,
      96           2 :             1.0009092745748345,
      97           2 :             1.0016167738839077,
      98           2 :             1.0025267833497755,
      99           2 :             1.0036395787653625,
     100           2 :             1.0049554974000179,
     101           2 :             1.0064749381130846,
     102           2 :             1.0081983614882122,
     103           2 :             1.0101262899884598,
     104           2 :             1.012259308132248,
     105           2 :             1.0145980626902165,
     106           2 :             1.0171432629030606,
     107           2 :             1.019895680720423,
     108           2 :             1.0228561510609224,
     109           2 :             1.02602557209342,
     110           2 :             1.029404905539608,
     111           2 :             1.032995176998044,
     112           2 :             1.0367974762897314,
     113           2 :             1.0408129578253802,
     114           2 :             1.0450428409944676,
     115           2 :             1.0494884105762434,
     116           2 :             1.054151017172824,
     117           2 :             1.059032077664524,
     118           2 :             1.064133075687591,
     119           2 :             1.0694555621345143,
     120           2 :             1.0750011556770782,
     121           2 :             1.080771543312348,
     122           2 :             1.086768480931786,
     123           2 :             1.0929937939136918,
     124           2 :             1.0994493777391823,
     125           2 :             1.1061371986319262,
     126           2 :             1.1130592942218605,
     127           2 :             1.1202177742331243,
     128           2 :             1.1276148211964545,
     129           2 :             1.1352526911862921,
     130           2 :             1.143133714582864,
     131           2 :             1.1512602968595107,
     132           2 :             1.1596349193955309,
     133           2 :             1.1682601403148447,
     134           2 :             1.177138595350759,
     135           2 :             1.1862729987371505,
     136           2 :             1.1956661441263778,
     137           2 :             1.2053209055342506,
     138           2 :             1.2152402383123868,
     139           2 :             1.2254271801483088,
     140           2 :             1.2358848520936279,
     141           2 :             1.246616459620684,
     142           2 :             1.257625293708014,
     143           2 :             1.2689147319550371,
     144           2 :             1.280488239726348,
     145           2 :             1.2923493713260272,
     146           2 :             1.3045017712023848,
     147           2 :             1.3169491751835656,
     148           2 :             1.3296954117444486,
     149           2 :             1.3427444033053038,
     150           2 :             1.3561001675626532,
     151           2 :             1.3697668188528151,
     152           2 :             1.3837485695486196,
     153           2 :             1.3980497314897826,
     154           2 :             1.4126747174474543,
     155           2 :             1.427628042623464,
     156           2 :             1.4429143261847786,
     157           2 :             1.4585382928337465,
     158           2 :             1.474504774414658,
     159           2 :             1.490818711557214,
     160           2 :             1.5074851553574764,
     161           2 :             1.5245092690969024,
     162           2 :             1.541896330000072,
     163           2 :             1.5596517310317402,
     164           2 :             1.5777809827338407,
     165           2 :             1.5962897151031123,
     166           2 :             1.6151836795100045,
     167           2 :             1.6344687506595441,
     168           2 :             1.6541509285948752,
     169           2 :             1.674236340744168,
     170           2 :             1.694731244011643,
     171           2 :             1.7156420269134414,
     172           2 :             1.736975211759113,
     173           2 :             1.7587374568794965,
     174           2 :             1.7809355589017835,
     175           2 :             1.803576455072581,
     176           2 :             1.8266672256298022,
     177           2 :             1.8502150962242276,
     178           2 :             1.8742274403916046,
     179           2 :             1.8987117820761645,
     180           2 :             1.923675798206464,
     181           2 :             1.9491273213244606,
     182           2 :             1.9750743422687718,
     183           2 :             2.001525012913072,
     184           2 :             2.0284876489606,
     185           2 :             2.05597073279579,
     186           2 :             2.0839829163940258,
     187           2 :             2.1125330242905807,
     188           2 :             2.141630056609784,
     189           2 :             2.1712831921555122,
     190           2 :             2.2015017915641,
     191           2 :             2.2322954005208158,
     192           2 :             2.2636737530410236,
     193           2 :             2.2956467748172367,
     194           2 :             2.328224586633251,
     195           2 :             2.361417507846559,
     196           2 :             2.3952360599403355,
     197           2 :             2.4296909701462237,
     198           2 :             2.464793175139245,
     199           2 :             2.5005538248061545,
     200           2 :             2.536984286088587,
     201           2 :             2.5740961469023644,
     202           2 :             2.611901220134393,
     203           2 :             2.6504115477185626,
     204           2 :             2.6896394047921204,
     205           2 :             2.729597303934006,
     206           2 :             2.770297999486674,
     207           2 :             2.811754491962946,
     208           2 :             2.853980032539495,
     209           2 :             2.896988127638546,
     210           2 :             2.9407925435994704,
     211           2 :             2.9854073114419246,
     212           2 :             3.030846731722257,
     213           2 :             3.077125379484949,
     214           2 :             3.1242581093108184,
     215           2 :             3.1722600604638638,
     216           2 :             3.221146662138552,
     217           2 :             3.270933638809447,
     218           2 :             3.3216370156851416,
     219           2 :             3.3732731242683904,
     220           2 :             3.425858608024511,
     221           2 :             3.479410428160046,
     222           2 :             3.5339458695137815,
     223           2 :             3.5894825465622664,
     224           2 :             3.646038409541965,
     225           2 :             3.7036317506902616,
     226           2 :             3.7622812106075663,
     227           2 :             3.8220057847428186,
     228           2 :             3.8828248300047266,
     229           2 :             3.944758071501113,
     230           2 :             4.007825609408828,
     231           2 :             4.072047925976672,
     232           2 :             4.137445892663884,
     233           2 :             4.204040777416756,
     234           2 :             4.271854252086014,
     235           2 :             4.34090839998763,
     236           2 :             4.411225723609797,
     237           2 :             4.482829152468875,
     238           2 :             4.5557420511170985,
     239           2 :             4.629988227305008,
     240           2 :             4.70559194030148,
     241           2 :             4.782577909374421,
     242           2 :             4.860971322435166,
     243           2 :             4.940797844849728,
     244           2 :             5.0220836284200425,
     245           2 :             5.104855320538522,
     246           2 :             5.189140073519174,
     247           2 :             5.274965554108702,
     248           2 :             5.362359953181001,
     249           2 :             5.451351995618587,
     250           2 :             5.5419709503845205,
     251           2 :             5.634246640788485,
     252           2 :             5.728209454950738,
     253           2 :             5.823890356467696,
     254           2 :             5.921320895283087,
     255           2 :             6.020533218768536,
     256           2 :             6.121560083017699,
     257           2 :             6.2244348643579,
     258           2 :             6.329191571083614,
     259           2 :             6.435864855415881,
     260           2 :             6.544490025692144,
     261           2 :             6.655103058790918,
     262           2 :             6.767740612795618,
     263           2 :             6.882440039902386,
     264           2 :             6.999239399576497,
     265           2 :             7.118177471962079,
     266           2 :             7.239293771550163,
     267           2 :             7.362628561109785,
     268           2 :             7.488222865887558,
     269           2 :             7.616118488080491,
     270           2 :             7.746358021587595,
     271           2 :             7.878984867045601,
     272           2 :             8.014043247154069,
     273           2 :             8.151578222295688,
     274           2 :             8.291635706457441,
     275           2 :             8.434262483458198,
     276           2 :             8.579506223488936,
     277           2 :             8.727415499971412,
     278           2 :             8.878039806741516,
     279           2 :             9.031429575563577,
     280           2 :             9.18763619398187,
     281           2 :             9.346712023516085,
     282           2 :             9.508710418207086,
     283           2 :             9.673685743519929,
     284           2 :             9.841693395611049,
     285           2 :             10.012789820966388,
     286           2 :             10.187032536418023,
     287           2 :             10.364480149546196,
     288           2 :             10.545192379474479,
     289           2 :             10.729230078065527,
     290           2 :             10.916655251525206,
     291           2 :             11.107531082422915,
     292           2 :             11.301921952136313};
     293           2 : }
     294             : 
     295             : template <typename T>
     296             : std::vector<T> get_bessi1()
     297           2 : {
     298           2 :     return {0,
     299           2 :             0.01005075884045603,
     300           2 :             0.020104563391044293,
     301           2 :             0.03016446038739731,
     302           2 :             0.040233498616510634,
     303           2 :             0.05031472994333094,
     304           2 :             0.060411210338432324,
     305           2 :             0.07052600090714392,
     306           2 :             0.08066216892049329,
     307           2 :             0.09082278884832931,
     308           2 :             0.10101094339499074,
     309           2 :             0.11122972453788607,
     310           2 :             0.12148223456935212,
     311           2 :             0.13177158714216047,
     312           2 :             0.14210090831903993,
     313           2 :             0.15247333762658902,
     314           2 :             0.16289202911394865,
     315           2 :             0.17336015241661085,
     316           2 :             0.18388089382574038,
     317           2 :             0.19445745736338693,
     318           2 :             0.2050930658639692,
     319           2 :             0.21579096206241288,
     320           2 :             0.22655440968932924,
     321           2 :             0.2373866945736206,
     322           2 :             0.24829112575290474,
     323           2 :             0.25927103659215084,
     324           2 :             0.2703297859109233,
     325           2 :             0.2814707591196341,
     326           2 :             0.29269736936520485,
     327           2 :             0.30401305868654604,
     328           2 :             0.31542129918026324,
     329           2 :             0.3269255941770035,
     330           2 :             0.33852947942885864,
     331           2 :             0.35023652430824875,
     332           2 :             0.3620503330187103,
     333           2 :             0.37397454581801776,
     334           2 :             0.38601284025407606,
     335           2 :             0.3981689324140204,
     336           2 :             0.41044657818696956,
     337           2 :             0.42284957454087707,
     338           2 :             0.43538176081394164,
     339           2 :             0.4480470200210296,
     340           2 :             0.4608492801755771,
     341           2 :             0.473792515627442,
     342           2 :             0.48688074841718176,
     343           2 :             0.500118049647239,
     344           2 :             0.5135085408705254,
     345           2 :             0.5270563954968935,
     346           2 :             0.5407658402180044,
     347           2 :             0.5546411564510945,
     348           2 :             0.5686866818021555,
     349           2 :             0.582906811549057,
     350           2 :             0.5973060001451282,
     351           2 :             0.6118887627437495,
     352           2 :             0.626659676744486,
     353           2 :             0.6416233833613249,
     354           2 :             0.6567845892135676,
     355           2 :             0.6721480679399557,
     356           2 :             0.687718661836597,
     357           2 :             0.7035012835192848,
     358           2 :             0.719500917610802,
     359           2 :             0.7357226224538141,
     360           2 :             0.7521715318499643,
     361           2 :             0.768852856825791,
     362           2 :             0.7857718874261065,
     363           2 :             0.8029339945354687,
     364           2 :             0.8203446317284104,
     365           2 :             0.8380093371490798,
     366           2 :             0.8559337354209696,
     367           2 :             0.8741235395874237,
     368           2 :             0.8925845530836068,
     369           2 :             0.9113226717406571,
     370           2 :             0.9303438858227328,
     371           2 :             0.9496542820976865,
     372           2 :             0.9692600459421125,
     373           2 :             0.989167463481518,
     374           2 :             1.0093829237663967,
     375           2 :             1.0299129209849767,
     376           2 :             1.050764056713445,
     377           2 :             1.0719430422044538,
     378           2 :             1.093456700714736,
     379           2 :             1.1153119698726648,
     380           2 :             1.1375159040866067,
     381           2 :             1.1600756769949445,
     382           2 :             1.1829985839586397,
     383           2 :             1.2062920445972445,
     384           2 :             1.2299636053692673,
     385           2 :             1.2540209421978297,
     386           2 :             1.278471863142555,
     387           2 :             1.3033243111186563,
     388           2 :             1.328586366664206,
     389           2 :             1.3542662507565746,
     390           2 :             1.3803723276790743,
     391           2 :             1.4069131079388215,
     392           2 :             1.4338972512368886,
     393           2 :             1.4613335694918075,
     394           2 :             1.48923102991752,
     395           2 :             1.5175987581568913,
     396           2 :             1.5464460414719126,
     397           2 :             1.5757823319917503,
     398           2 :             1.6056172500198194,
     399           2 :             1.6359605874010676,
     400           2 :             1.666822310950698,
     401           2 :             1.698212565945569,
     402           2 :             1.7301416796795324,
     403           2 :             1.7626201650839974,
     404           2 :             1.7956587244150402,
     405           2 :             1.829268253008377,
     406           2 :             1.8634598431035827,
     407           2 :             1.8982447877389228,
     408           2 :             1.9336345847182241,
     409           2 :             1.9696409406512119,
     410           2 :             2.0062757750687927,
     411           2 :             2.043551224614752,
     412           2 :             2.0814796473154176,
     413           2 :             2.1200736269288165,
     414           2 :             2.159345977374909,
     415           2 :             2.1993097472485212,
     416           2 :             2.23997822441659,
     417           2 :             2.2813649407014145,
     418           2 :             2.3234836766516076,
     419           2 :             2.3663484664024708,
     420           2 :             2.4099736026275846,
     421           2 :             2.454373641583381,
     422           2 :             2.4995634082485574,
     423           2 :             2.5455580015602037,
     424           2 :             2.592372799748521,
     425           2 :             2.6400234657721104,
     426           2 :             2.6885259528557715,
     427           2 :             2.7378965101328556,
     428           2 :             2.788151688394218,
     429           2 :             2.8393083459458666,
     430           2 :             2.891383654577425,
     431           2 :             2.9443951056436153,
     432           2 :             2.998360516260939,
     433           2 :             3.0532980356218573,
     434           2 :             3.1092261514287256,
     435           2 :             3.1661636964498814,
     436           2 :             3.2241298552002142,
     437           2 :             3.2831441707487263,
     438           2 :             3.3432265516554995,
     439           2 :             3.404397279040652,
     440           2 :             3.4666770137878378,
     441           2 :             3.5300868038849154,
     442           2 :             3.5946480919044954,
     443           2 :             3.6603827226270713,
     444           2 :             3.7273129508095204,
     445           2 :             3.7954614491018335,
     446           2 :             3.86485131611494,
     447           2 :             3.9355060846426038,
     448           2 :             4.007449730040381,
     449           2 :             4.080706678764683,
     450           2 :             4.155301817075124,
     451           2 :             4.231260499903286,
     452           2 :             4.308608559891147,
     453           2 :             4.387372316602526,
     454           2 :             4.467578585910861,
     455           2 :             4.549254689566789,
     456           2 :             4.63242846494903,
     457           2 :             4.717128275002124,
     458           2 :             4.803383018364691,
     459           2 :             4.891222139691893,
     460           2 :             4.980675640175906,
     461           2 :             5.071774088268262,
     462           2 :             5.164548630607934,
     463           2 :             5.259031003159258,
     464           2 :             5.355253542563704,
     465           2 :             5.453249197709705,
     466           2 :             5.553051541524743,
     467           2 :             5.6546947829940635,
     468           2 :             5.758213779410398,
     469           2 :             5.863644048859215,
     470           2 :             5.971021782944045,
     471           2 :             6.080383859756595,
     472           2 :             6.191767857096375,
     473           2 :             6.305212065944719,
     474           2 :             6.420755504198142,
     475           2 :             6.538437930666071,
     476           2 :             6.65829985933811,
     477           2 :             6.780382573926037,
     478           2 :             6.904728142685951,
     479           2 :             7.0313794335259585,
     480           2 :             7.160380129404964,
     481           2 :             7.291774744028273,
     482           2 :             7.4256086378456825,
     483           2 :             7.561928034358068,
     484           2 :             7.700780036738363,
     485           2 :             7.842212644773086,
     486           2 :             7.986274772130717,
     487           2 :             8.133016263963086,
     488           2 :             8.28248791484652,
     489           2 :             8.43474148706911,
     490           2 :             8.589829729271003,
     491           2 :             8.747806395444519,
     492           2 :             8.908726264301011,
     493           2 :             9.072645159011813,
     494           2 :             9.239619967330317,
     495           2 :             9.409708662102759,
     496           2 :             9.582970322175203,
     497           2 :             9.75946515370445};
     498           2 : }
     499             : 
     500             : template <typename T>
     501             : std::vector<T> get_bessi2()
     502           2 : {
     503           2 :     return {0,
     504           2 :             5.0505475599532676e-05,
     505           2 :             0.00020204230873677322,
     506           2 :             0.00045467172615736847,
     507           2 :             0.0008084957982060425,
     508           2 :             0.0012636574774897687,
     509           2 :             0.001820340653026622,
     510           2 :             0.0024787702199007265,
     511           2 :             0.003239212164449581,
     512           2 :             0.004101973665015862,
     513           2 :             0.005067403208301722,
     514           2 :             0.006135890721369453,
     515           2 :             0.0073078677193383,
     516           2 :             0.008583807468833105,
     517           2 :             0.009964225167246418,
     518           2 :             0.011449678137881784,
     519           2 :             0.013040766041051548,
     520           2 :             0.014738131101209136,
     521           2 :             0.016542458350201156,
     522           2 :             0.01845447588673118,
     523           2 :             0.0204749551521332,
     524           2 :             0.022604711222558457,
     525           2 :             0.024844603117686125,
     526           2 :             0.02719553412607416,
     527           2 :             0.029658452147272904,
     528           2 :             0.03223435005083083,
     529           2 :             0.03492426605232732,
     530           2 :             0.03772928410657475,
     531           2 :             0.040650534318138046,
     532           2 :             0.043689193369326314,
     533           2 :             0.046846484965818516,
     534           2 :             0.0501236803000905,
     535           2 :             0.053522098532818946,
     536           2 :             0.05704310729244349,
     537           2 :             0.06068812319307514,
     538           2 :             0.06445861237094723,
     539           2 :             0.06835609103960995,
     540           2 :             0.0723821260640794,
     541           2 :             0.0765383355541563,
     542           2 :             0.08082638947713966,
     543           2 :             0.08524801029016496,
     544           2 :             0.08980497359240662,
     545           2 :             0.09449910879739037,
     546           2 :             0.09933229982566918,
     547           2 :             0.10430648581812395,
     548           2 :             0.10942366187015808,
     549           2 :             0.1146858797870636,
     550           2 :             0.12009524886084279,
     551           2 :             0.12565393666877872,
     552           2 :             0.13136416989405722,
     553           2 :             0.13722823516874758,
     554           2 :             0.14324847993946252,
     555           2 :             0.14942731335602244,
     556           2 :             0.15576720718345935,
     557           2 :             0.16227069673770672,
     558           2 :             0.16894038184532442,
     559           2 :             0.17577892782762544,
     560           2 :             0.18278906650957238,
     561           2 :             0.18997359725382562,
     562           2 :             0.1973353880203344,
     563           2 :             0.20487737645186924,
     564           2 :             0.21260257098590535,
     565           2 :             0.22051405199327948,
     566           2 :             0.2286149729440451,
     567           2 :             0.23690856160097168,
     568           2 :             0.24539812124113286,
     569           2 :             0.25408703190604964,
     570           2 :             0.2629787516808582,
     571           2 :             0.27207681800298333,
     572           2 :             0.28138484900081656,
     573           2 :             0.29090654486289924,
     574           2 :             0.30064568923813095,
     575           2 :             0.31060615066753033,
     576           2 :             0.32079188404808884,
     577           2 :             0.3312069321292713,
     578           2 :             0.34185542704272825,
     579           2 :             0.3527415918657937,
     580           2 :             0.363869742219368,
     581           2 :             0.37524428790077763,
     582           2 :             0.38686973455223783,
     583           2 :             0.39875068536554376,
     584           2 :             0.4108918428236337,
     585           2 :             0.4232980104796862,
     586           2 :             0.4359740947744172,
     587           2 :             0.4489251068922676,
     588           2 :             0.4621561646571832,
     589           2 :             0.47567249446869825,
     590           2 :             0.48947943327906107,
     591           2 :             0.5035824306121399,
     592           2 :             0.5179870506248805,
     593           2 :             0.5326989742120887,
     594           2 :             0.5477240011553345,
     595           2 :             0.5630680523167912,
     596           2 :             0.5787371718788351,
     597           2 :             0.5947375296302571,
     598           2 :             0.6110754232999434,
     599           2 :             0.6277572809389151,
     600           2 :             0.6447896633516188,
     601           2 :             0.6621792665773948,
     602           2 :             0.6799329244230516,
     603           2 :             0.6980576110475167,
     604           2 :             0.7165604435995256,
     605           2 :             0.7354486849093591,
     606           2 :             0.754729746235636,
     607           2 :             0.7744111900682099,
     608           2 :             0.7945007329882181,
     609           2 :             0.8150062485863767,
     610           2 :             0.8359357704406098,
     611           2 :             0.857297495154156,
     612           2 :             0.8790997854552841,
     613           2 :             0.9013511733598061,
     614           2 :             0.9240603633975651,
     615           2 :             0.9472362359041415,
     616           2 :             0.9708878503789938,
     617           2 :             0.9950244489113315,
     618           2 :             1.0196554596749978,
     619           2 :             1.0447905004936888,
     620           2 :             1.0704393824778653,
     621           2 :             1.096612113734715,
     622           2 :             1.1233189031525876,
     623           2 :             1.1505701642613242,
     624           2 :             1.1783765191699433,
     625           2 :             1.2067488025831705,
     626           2 :             1.235698065898337,
     627           2 :             1.265235581384194,
     628           2 :             1.29537284644322,
     629           2 :             1.3261215879590424,
     630           2 :             1.3574937667306146,
     631           2 :             1.389501581994817,
     632           2 :             1.422157476039214,
     633           2 :             1.455474138906692,
     634           2 :             1.4894645131937692,
     635           2 :             1.5241417989443995,
     636           2 :             1.5595194586411023,
     637           2 :             1.5956112222953296,
     638           2 :             1.632431092638987,
     639           2 :             1.6699933504190654,
     640           2 :             1.7083125597974174,
     641           2 :             1.7474035738576765,
     642           2 :             1.7872815402214506,
     643           2 :             1.8279619067758837,
     644           2 :             1.8694604275147741,
     645           2 :             1.9117931684954486,
     646           2 :             1.9549765139136515,
     647           2 :             1.9990271722987536,
     648           2 :             2.043962182831626,
     649           2 :             2.089798921787561,
     650           2 :             2.1365551091067023,
     651           2 :             2.184248815094444,
     652           2 :             2.2328984672543672,
     653           2 :             2.282522857256276,
     654           2 :             2.333141148041992,
     655           2 :             2.3847728810715823,
     656           2 :             2.437437983712789,
     657           2 :             2.4911567767764367,
     658           2 :             2.5459499822006695,
     659           2 :             2.601838730886982,
     660           2 :             2.6588445706909223,
     661           2 :             2.716989474570594,
     662           2 :             2.7762958488959613,
     663           2 :             2.836786541922166,
     664           2 :             2.8984848524300317,
     665           2 :             2.9614145385370487,
     666           2 :             3.0255998266821775,
     667           2 :             3.091065420787862,
     668           2 :             3.1578365116027403,
     669           2 :             3.225938786228604,
     670           2 :             3.2953984378351775,
     671           2 :             3.3662421755664567,
     672           2 :             3.4384972346423233,
     673           2 :             3.512191386659254,
     674           2 :             3.587352950094097,
     675           2 :             3.6640108010148085,
     676           2 :             3.7421943840022998,
     677           2 :             3.821933723287446,
     678           2 :             3.9032594341075746,
     679           2 :             3.9862027342866666,
     680           2 :             4.070795456043695,
     681           2 :             4.157070058033586,
     682           2 :             4.245059637625357,
     683           2 :             4.334797943422077,
     684           2 :             4.426319388027436,
     685           2 :             4.519659061063735,
     686           2 :             4.614852742446251,
     687           2 :             4.711936915918998,
     688           2 :             4.810948782857054,
     689           2 :             4.911926276340646,
     690           2 :             5.014908075506364,
     691           2 :             5.119933620180959,
     692           2 :             5.227043125803248,
     693           2 :             5.3362775986397954,
     694           2 :             5.447678851300188,
     695           2 :             5.561289518557729,
     696           2 :             5.677153073481613,
     697           2 :             5.795313843886671,
     698           2 :             5.915817029106927,
     699           2 :             6.038708717099392,
     700           2 :             6.164035901884489,
     701           2 :             6.291846501329841,
     702           2 :             6.4221893752841055};
     703           2 : }
     704             : 
     705             : template <typename T>
     706             : std::vector<T> get_bessi3()
     707           2 : {
     708           2 :     return {0,
     709           2 :             1.6919614903091235e-07,
     710           2 :             1.353671735367887e-06,
     711           2 :             4.569218958530584e-06,
     712           2 :             1.0832655760001668e-05,
     713           2 :             2.1162339238135916e-05,
     714           2 :             3.6578679716028364e-05,
     715           2 :             5.8104655680404866e-05,
     716           2 :             8.676632980995128e-05,
     717           2 :             0.00012359336631193464,
     718           2 :             0.0001696195497865034,
     719           2 :             0.00022588330583866398,
     720           2 :             0.0002934282236586467,
     721           2 :             0.0003733035807921578,
     722           2 :             0.0004665648703229054,
     723           2 :             0.0005742743306907715,
     724           2 :             0.0006975014783700358,
     725           2 :             0.0008373236436332582,
     726           2 :             0.0009948265096276253,
     727           2 :             0.0011711046549919481,
     728           2 :             0.0013672621002438843,
     729           2 :             0.0015844128581685274,
     730           2 :             0.0018236814884410913,
     731           2 :             0.0020862036567181126,
     732           2 :             0.0023731266984334714,
     733           2 :             0.00268561018753731,
     734           2 :             0.0030248265104180754,
     735           2 :             0.00339196144524986,
     736           2 :             0.0037882147470095057,
     737           2 :             0.004214800738410149,
     738           2 :             0.004672948907000421,
     739           2 :             0.00516390450868069,
     740           2 :             0.005688929177890831,
     741           2 :             0.006249301544726066,
     742           2 :             0.006846317859240882,
     743           2 :             0.007481292623203301,
     744           2 :             0.008155559229565302,
     745           2 :             0.008870470609918031,
     746           2 :             0.009627399890203671,
     747           2 :             0.010427741054959227,
     748           2 :             0.011272909620371023,
     749           2 :             0.01216434331642206,
     750           2 :             0.013103502778418086,
     751           2 :             0.014091872248182332,
     752           2 :             0.015130960285212203,
     753           2 :             0.016222300488095694,
     754           2 :             0.01736745222648932,
     755           2 :             0.018568001383963566,
     756           2 :             0.019825561112026022,
     757           2 :             0.021141772595637435,
     758           2 :             0.022518305830540025,
     759           2 :             0.02395686041272236,
     760           2 :             0.025459166340350007,
     761           2 :             0.027026984828496095,
     762           2 :             0.02866210913701144,
     763           2 :             0.030366365411878322,
     764           2 :             0.0321416135403986,
     765           2 :             0.03398974802057159,
     766           2 :             0.035912698845022815,
     767           2 :             0.03791243239985146,
     768           2 :             0.039990952378769117,
     769           2 :             0.04215030071290977,
     770           2 :             0.04439255851669639,
     771           2 :             0.04671984705015648,
     772           2 :             0.04913432869808529,
     773           2 :             0.05163820796646223,
     774           2 :             0.0542337324965332,
     775           2 :             0.05692319409697838,
     776           2 :             0.059708929794591976,
     777           2 :             0.06259332290390936,
     778           2 :             0.06557880411622181,
     779           2 :             0.06866785260843075,
     780           2 :             0.07186299717219762,
     781           2 :             0.07516681736385548,
     782           2 :             0.07858194467555787,
     783           2 :             0.08211106372814582,
     784           2 :             0.0857569134862262,
     785           2 :             0.0895222884959609,
     786           2 :             0.0934100401460765,
     787           2 :             0.09742307795261411,
     788           2 :             0.1015643708679463,
     789           2 :             0.10583694861460136,
     790           2 :             0.1102439030444411,
     791           2 :             0.11478838952375167,
     792           2 :             0.11947362834481563,
     793           2 :             0.12430290616454555,
     794           2 :             0.12927957747076765,
     795           2 :             0.13440706607675867,
     796           2 :             0.13968886664464733,
     797           2 :             0.14512854623830573,
     798           2 :             0.15072974590636554,
     799           2 :             0.1564961822960081,
     800           2 :             0.1624316492981892,
     801           2 :             0.16854001972497007,
     802           2 :             0.17482524701964278,
     803           2 :             0.18129136700034723,
     804           2 :             0.18794249963789406,
     805           2 :             0.19478285086851832,
     806           2 :             0.20181671444230492,
     807           2 :             0.20904847380804073,
     808           2 :             0.21648260403526146,
     809           2 :             0.22412367377427936,
     810           2 :             0.23197634725498792,
     811           2 :             0.24004538632526268,
     812           2 :             0.24833565252978468,
     813           2 :             0.256852109230136,
     814           2 :             0.265599823767031,
     815           2 :             0.2745839696655606,
     816           2 :             0.28380982888435113,
     817           2 :             0.2932827941095507,
     818           2 :             0.3030083710945754,
     819           2 :             0.312992181046568,
     820           2 :             0.32323996306054115,
     821           2 :             0.33375757660218763,
     822           2 :             0.34455100404037414,
     823           2 :             0.35562635323034253,
     824           2 :             0.3669898601486669,
     825           2 :             0.378647891581041,
     826           2 :             0.3906069478639777,
     827           2 :             0.4028736656815414,
     828           2 :             0.415454820918244,
     829           2 :             0.42835733156925837,
     830           2 :             0.44158826070913515,
     831           2 :             0.4551548195202176,
     832           2 :             0.46906437038198867,
     833           2 :             0.4833244300225978,
     834           2 :             0.49794267273384313,
     835           2 :             0.5129269336509122,
     836           2 :             0.5282852120982043,
     837           2 :             0.5440256750025944,
     838           2 :             0.5601566603755134,
     839           2 :             0.5766866808652543,
     840           2 :             0.5936244273809439,
     841           2 :             0.6109787727896347,
     842           2 :             0.6287587756880244,
     843           2 :             0.6469736842503151,
     844           2 :             0.6656329401537708,
     845           2 :             0.6847461825835597,
     846           2 :             0.7043232523184924,
     847           2 :             0.7243741958993116,
     848           2 :             0.7449092698812078,
     849           2 :             0.7659389451722828,
     850           2 :             0.787473911459708,
     851           2 :             0.809525081725358,
     852           2 :             0.8321035968527459,
     853           2 :             0.8552208303271174,
     854           2 :             0.8788883930305853,
     855           2 :             0.9031181381342575,
     856           2 :             0.9279221660893021,
     857           2 :             0.9533128297189871,
     858           2 :             0.9793027394137209,
     859           2 :             1.005904768431197,
     860           2 :             1.0331320583037769,
     861           2 :             1.0609980243552777,
     862           2 :             1.0895163613293897,
     863           2 :             1.1187010491319884,
     864           2 :             1.1485663586896477,
     865           2 :             1.179126857926702,
     866           2 :             1.2103974178632815,
     867           2 :             1.2423932188367386,
     868           2 :             1.2751297568489972,
     869           2 :             1.3086228500423505,
     870           2 :             1.342888645306322,
     871           2 :             1.3779436250182402,
     872           2 :             1.4138046139202223,
     873           2 :             1.450488786135344,
     874           2 :             1.4880136723258008,
     875           2 :             1.5263971669959326,
     876           2 :             1.5656575359430462,
     877           2 :             1.6058134238590207,
     878           2 :             1.6468838620857433,
     879           2 :             1.688888276527491,
     880           2 :             1.7318464957234243,
     881           2 :             1.7757787590834313,
     882           2 :             1.8207057252906176,
     883           2 :             1.866648480873818,
     884           2 :             1.9136285489535583,
     885           2 :             1.9616678981649707,
     886           2 :             2.0107889517612354,
     887           2 :             2.0610145969011975,
     888           2 :             2.112368194124877,
     889           2 :             2.164873587020655,
     890           2 :             2.218555112088024,
     891           2 :             2.2734376087998367,
     892           2 :             2.329546429868071,
     893           2 :             2.3869074517172373,
     894           2 :             2.4455470851696055,
     895           2 :             2.5054922863465303,
     896           2 :             2.5667705677902317,
     897           2 :             2.6294100098104596,
     898           2 :             2.6934392720606253,
     899           2 :             2.7588876053479687,
     900           2 :             2.8257848636825256,
     901           2 :             2.894161516569692,
     902           2 :             2.964048661551282,
     903           2 :             3.035478037000126,
     904           2 :             3.108482035173281,
     905           2 :             3.1830937155290875,
     906           2 :             3.2593468183133907,
     907           2 :             3.337275778420344};
     908           2 : }
     909             : 
     910             : template <typename T>
     911             : std::vector<T> get_bessi4()
     912           2 : {
     913           2 :     return {0,
     914           2 :             4.251138053610002e-10,
     915           2 :             6.802233115956739e-09,
     916           2 :             3.4439783575902826e-08,
     917           2 :             1.0886211591814133e-07,
     918           2 :             2.6582497305541694e-07,
     919           2 :             5.513371542136172e-07,
     920           2 :             1.0216883863187517e-06,
     921           2 :             1.7434834157739435e-06,
     922           2 :             2.79368233669353e-06,
     923           2 :             4.259647174599181e-06,
     924           2 :             6.239194747528768e-06,
     925           2 :             8.840655829464334e-06,
     926           2 :             1.2182940643951585e-05,
     927           2 :             1.639561071876163e-05,
     928           2 :             2.1618957135437665e-05,
     929           2 :             2.8004085210575038e-05,
     930           2 :             3.5713005648705694e-05,
     931           2 :             4.4918732209697604e-05,
     932           2 :             5.5805385936637634e-05,
     933           2 :             6.856830599324426e-05,
     934           2 :             8.341416716295565e-05,
     935           2 :             0.000100561104064961,
     936           2 :             0.00012023884214558616,
     937           2 :             0.00014268883550662152,
     938           2 :             0.0001681644116353672,
     939           2 :             0.00019693092310440994,
     940           2 :             0.00022926590631238515,
     941           2 :             0.0002654592473402805,
     942           2 :             0.00030581335500113677,
     943           2 :             0.0003506433411643747,
     944           2 :             0.0004002772084393381,
     945           2 :             0.00045505604530609125,
     946           2 :             0.0005153342287849543,
     947           2 :             0.0005814796347397653,
     948           2 :             0.000653873855913398,
     949           2 :             0.0007329124277976599,
     950           2 :             0.0008190050624432972,
     951           2 :             0.0009125758903195469,
     952           2 :             0.0010140637103363496,
     953           2 :             0.0011239222481461508,
     954           2 :             0.0012426204228460198,
     955           2 :             0.0013706426222046732,
     956           2 :             0.0015084889865429473,
     957           2 :             0.0016566757014002272,
     958           2 :             0.001815735299123363,
     959           2 :             0.0019862169695187624,
     960           2 :             0.0021686868797124196,
     961           2 :             0.002363728503366927,
     962           2 :             0.002571942959408786,
     963           2 :             0.0027939493604236644,
     964           2 :             0.003030385170881721,
     965           2 :             0.0032819065753594864,
     966           2 :             0.003549188856929499,
     967           2 :             0.0038329267858934818,
     968           2 :             0.00413383501903943,
     969           2 :             0.004452648509607965,
     970           2 :             0.004790122928158068,
     971           2 :             0.0051470350945272015,
     972           2 :             0.005524183421086026,
     973           2 :             0.0059223883674928675,
     974           2 :             0.006342492907158404,
     975           2 :             0.006785363005636281,
     976           2 :             0.007251888111160784,
     977           2 :             0.007742981657558191,
     978           2 :             0.008259581579763964,
     979           2 :             0.008802650842183646,
     980           2 :             0.009373177980141171,
     981           2 :             0.00997217765466402,
     982           2 :             0.010600691220860898,
     983           2 :             0.011259787310153407,
     984           2 :             0.011950562426629712,
     985           2 :             0.012674141557794378,
     986           2 :             0.013431678799994762,
     987           2 :             0.014224357998811719,
     988           2 :             0.015053393404707792,
     989           2 :             0.015920030344234178,
     990           2 :             0.016825545907104014,
     991           2 :             0.01777124964944633,
     992           2 :             0.01875848431356323,
     993           2 :             0.019788626564519195,
     994           2 :             0.0208630877438992,
     995           2 :             0.02198331464108066,
     996           2 :             0.02315079028237066,
     997           2 :             0.024367034738369094,
     998           2 :             0.025633605949925944,
     999           2 :             0.026952100573068773,
    1000           2 :             0.028324154843285872,
    1001           2 :             0.029751445459557872,
    1002           2 :             0.031235690488540573,
    1003           2 :             0.032778650289309735,
    1004           2 :             0.03438212845908797,
    1005           2 :             0.03604797280038357,
    1006           2 :             0.03777807630997939,
    1007           2 :             0.0395743781902212,
    1008           2 :             0.04143886488306303,
    1009           2 :             0.043373571127338306,
    1010           2 :             0.045380581039735336,
    1011           2 :             0.047462029219965694,
    1012           2 :             0.049620101880625656,
    1013           2 :             0.051857038002260866,
    1014           2 :             0.05417513051415563,
    1015           2 :             0.056576727501379695,
    1016           2 :             0.05906423343863698,
    1017           2 :             0.06164011045147218,
    1018           2 :             0.06430687960540292,
    1019           2 :             0.06706712222355823,
    1020           2 :             0.06992348123341527,
    1021           2 :             0.07287866254324074,
    1022           2 :             0.07593543644885406,
    1023           2 :             0.07909663907134482,
    1024           2 :             0.08236517382638914,
    1025           2 :             0.08574401292582427,
    1026           2 :             0.08923619891215318,
    1027           2 :             0.0928448462266678,
    1028           2 :             0.0965731428118915,
    1029           2 :             0.10042435174905882,
    1030           2 :             0.10440181293136315,
    1031           2 :             0.10850894477372057,
    1032           2 :             0.11274924595981353,
    1033           2 :             0.11712629722719285,
    1034           2 :             0.12164376319123549,
    1035           2 :             0.12630539420877013,
    1036           2 :             0.1311150282821999,
    1037           2 :             0.1360765930049717,
    1038           2 :             0.1411941075492563,
    1039           2 :             0.14647168469672317,
    1040           2 :             0.15191353291331272,
    1041           2 :             0.1575239584689267,
    1042           2 :             0.16330736760297856,
    1043           2 :             0.16926826873676337,
    1044           2 :             0.17541127473362858,
    1045           2 :             0.18174110520794734,
    1046           2 :             0.18826258888391514,
    1047           2 :             0.1949806660052162,
    1048           2 :             0.20190039079662336,
    1049           2 :             0.20902693397862032,
    1050           2 :             0.21636558533615788,
    1051           2 :             0.2239217563426762,
    1052           2 :             0.23170098284055435,
    1053           2 :             0.2397089277791656,
    1054           2 :             0.24795138401174951,
    1055           2 :             0.25643427715232975,
    1056           2 :             0.26516366849393563,
    1057           2 :             0.27414575798941515,
    1058           2 :             0.28338688729614625,
    1059           2 :             0.29289354288598707,
    1060           2 :             0.3026723592218327,
    1061           2 :             0.3127301220021694,
    1062           2 :             0.3230737714750542,
    1063           2 :             0.33371040582297207,
    1064           2 :             0.34464728462005545,
    1065           2 :             0.35589183236317773,
    1066           2 :             0.36745164207847403,
    1067           2 :             0.3793344790048593,
    1068           2 :             0.391548284356163,
    1069           2 :             0.40410117916352184,
    1070           2 :             0.4170014681997084,
    1071           2 :             0.430257643987116,
    1072           2 :             0.44387839089114084,
    1073           2 :             0.45787258930075575,
    1074           2 :             0.47224931989809643,
    1075           2 :             0.48701786801891833,
    1076           2 :             0.5021877281058309,
    1077           2 :             0.5177686082562388,
    1078           2 :             0.533770434866983,
    1079           2 :             0.5502033573776905,
    1080           2 :             0.5670777531149014,
    1081           2 :             0.5844042322390799,
    1082           2 :             0.6021936427966552,
    1083           2 :             0.6204570758792871,
    1084           2 :             0.6392058708925981,
    1085           2 :             0.6584516209366557,
    1086           2 :             0.6782061783005394,
    1087           2 :             0.6984816600733684,
    1088           2 :             0.7192904538742332,
    1089           2 :             0.7406452237034986,
    1090           2 :             0.7625589159180217,
    1091           2 :             0.7850447653328629,
    1092           2 :             0.8081163014521312,
    1093           2 :             0.8317873548316577,
    1094           2 :             0.8560720635762478,
    1095           2 :             0.8809848799743105,
    1096           2 :             0.9065405772727443,
    1097           2 :             0.9327542565949803,
    1098           2 :             0.9596413540051885,
    1099           2 :             0.9872176477216817,
    1100           2 :             1.0154992654826218,
    1101           2 :             1.0445026920672151,
    1102           2 :             1.074244776975617,
    1103           2 :             1.1047427422708673,
    1104           2 :             1.136014190586217,
    1105           2 :             1.1680771133013013,
    1106           2 :             1.2009498988906657,
    1107           2 :             1.234651341448228,
    1108           2 :             1.2692006493913501,
    1109           2 :             1.3046174543482463,
    1110           2 :             1.3409218202325457,
    1111           2 :             1.378134252508895,
    1112           2 :             1.416275707653589};
    1113           2 : }
    1114             : TEST_SUITE_END();

Generated by: LCOV version 1.14