diff --git a/res/sweat.wasm b/res/sweat.wasm index 2d01a65..948c1a7 100755 Binary files a/res/sweat.wasm and b/res/sweat.wasm differ diff --git a/sweat/src/math.rs b/sweat/src/math.rs index 3eb4ff6..de3d4ba 100644 --- a/sweat/src/math.rs +++ b/sweat/src/math.rs @@ -6,12 +6,7 @@ const fn assert_lookup_lengths() { pub fn formula(steps_since_tge: f64, steps: f64) -> u128 { let trillion = (steps_since_tge / 1e+12).floor() as usize; if trillion < KS.len() { - (area_under_line( - KS[trillion], - BS[trillion], - steps_since_tge, - steps_since_tge + steps, - ) * 1e+18) as u128 + (area_under_line(KS[trillion], BS[trillion], steps_since_tge, steps_since_tge + steps) * 1e+18) as u128 } else { (exp_decay(steps_since_tge, steps) * 1e+18) as u128 } @@ -22,816 +17,815 @@ pub fn area_under_line(k: f64, b: f64, x_start: f64, x_end: f64) -> f64 { return square_area + triangle_area; } pub fn exp_decay(steps_from_tge: f64, steps_to_exchange: f64) -> f64 { - const K: f64 = 0.00000000021; - return ((K * (steps_from_tge + steps_to_exchange) + 1000.).ln() - - (K * steps_from_tge + 1000.).ln()) - / K; + ((K * (steps_from_tge + steps_to_exchange) + 1000.).ln() - (K * steps_from_tge + 1000.).ln()) / K } +pub const K: f64 = 0.00000000084; + // one line per trillion, y = KS[i] * x + BS[i] pub const KS: [f64; 400] = [ - -1.742520661157025e-16, - -1.2211765219415668e-16, - -9.065175408277882e-17, - -6.995950586823161e-17, - -5.562633881230116e-17, - -4.5288700625944296e-17, - -3.758778796890118e-17, - -3.1697164481237514e-17, - -2.709065614832411e-17, - -2.3420309186293122e-17, - -2.0448547899814824e-17, - -1.8008664343586945e-17, - -1.598087908237869e-17, - -1.42773335964399e-17, - -1.2832398630053257e-17, - -1.1596250138167316e-17, - -1.0530511613434258e-17, - -9.60523653442959e-18, - -8.796779751972532e-18, - -8.086270618159395e-18, - -7.458500995307857e-18, - -6.901104123772342e-18, - -6.403940533380575e-18, - -5.958633410198423e-18, - -5.5582132450331125e-18, - -5.1968433436532485e-18, - -4.869605831759065e-18, - -4.5723333827272365e-18, - -4.301475833962034e-18, - -4.053993662692963e-18, - -3.827272312715457e-18, - -3.619052834562552e-18, - -3.4273753830472574e-18, - -3.2505329185657195e-18, - -3.0870330591887344e-18, - -2.9355664838547095e-18, - -2.794980631720291e-18, - -2.66425770685141e-18, - -2.5424962012064024e-18, - -2.428895307109955e-18, - -2.322741714083282e-18, - -2.2233983821163942e-18, - -2.1302949603328596e-18, - -2.0429195811004406e-18, - -1.960811808462916e-18, - -1.883556558973762e-18, - -1.8107788446436025e-18, - -1.7421392133484344e-18, - -1.677329782913845e-18, - -1.6160707821465619e-18, - -1.558107526083253e-18, - -1.5032077642581656e-18, - -1.4511593503267131e-18, - -1.4017681892945333e-18, - -1.3548564251906402e-18, - -1.3102608375276288e-18, - -1.2678314195043969e-18, - -1.2274301147857137e-18, - -1.1889296929627269e-18, - -1.1522127465624104e-18, - -1.1171707948204621e-18, - -1.0837034814235483e-18, - -1.0517178551271487e-18, - -1.0211277236068263e-18, - -9.918530721450737e-19, - -9.638195398233447e-19, - -9.36957946809014e-19, - -9.112038671192228e-19, - -8.864972419294395e-19, - -8.627820290880181e-19, - -8.400058850140189e-19, - -8.181198756030062e-19, - -7.970782131563826e-19, - -7.768380166916919e-19, - -7.573590932880974e-19, - -7.386037383835583e-19, - -7.205365531697463e-19, - -7.031242774314684e-19, - -6.863356363557849e-19, - -6.701411999923302e-19, - -6.545132541846272e-19, - -6.394256819147309e-19, - -6.248538541120077e-19, - -6.107745290730079e-19, - -5.971657597249509e-19, - -5.840068080416249e-19, - -5.712780659877686e-19, - -5.589609824295272e-19, - -5.470379955011003e-19, - -5.354924699679231e-19, - -5.243086391679987e-19, - -5.134715511536882e-19, - -5.029670186897631e-19, - -4.927815727953693e-19, - -4.829024195460038e-19, - -4.733173998763812e-19, - -4.640149521483529e-19, - -4.5498407726872845e-19, - -4.4621430616028325e-19, - -4.376956694063203e-19, - -4.294186689042585e-19, - -4.213742513779501e-19, - -4.1355378361045103e-19, - -4.059490292708393e-19, - -3.985521272190651e-19, - -3.9135557118156494e-19, - -3.843521907002706e-19, - -3.7753513326384618e-19, - -3.7089784753883453e-19, - -3.6443406762322e-19, - -3.5813779825251673e-19, - -3.5200330089256506e-19, - -3.4602508065903914e-19, - -3.401978740080183e-19, - -3.3451663714584556e-19, - -3.289765351110967e-19, - -3.2357293148394285e-19, - -3.1830137868240586e-19, - -3.131576088075919e-19, - -3.0813752500226847e-19, - -3.032371932907725e-19, - -2.9845283486919426e-19, - -2.937808188183263e-19, - -2.892176552124129e-19, - -2.847599885999716e-19, - -2.804045918333272e-19, - -2.761483602261653e-19, - -2.719883060190318e-19, - -2.6792155313445137e-19, - -2.63945332204532e-19, - -2.6005697585498377e-19, - -2.5625391423035217e-19, - -2.525336707468934e-19, - -2.488938580593963e-19, - -2.4533217423026255e-19, - -2.4184639908895905e-19, - -2.384343907712918e-19, - -2.350940824282565e-19, - -2.3182347909537016e-19, - -2.286206547131352e-19, - -2.254837492907322e-19, - -2.2241096620501493e-19, - -2.1940056962730563e-19, - -2.1645088207149877e-19, - -2.135602820565552e-19, - -2.1072720187766023e-19, - -2.0795012548015057e-19, - -2.0522758643085016e-19, - -2.0255816598175961e-19, - -1.9994049122138986e-19, - -1.9737323330903044e-19, - -1.9485510578807662e-19, - -1.9238486297398327e-19, - -1.8996129841342056e-19, - -1.8758324341093465e-19, - -1.8524956561967793e-19, - -1.829591676932681e-19, - -1.8071098599545532e-19, - -1.785039893650975e-19, - -1.763371779334955e-19, - -1.7420958199175433e-19, - -1.7212026090561526e-19, - -1.7006830207563481e-19, - -1.680528199404236e-19, - -1.6607295502106764e-19, - -1.641278730046456e-19, - -1.6221676386514405e-19, - -1.6033884101995837e-19, - -1.584933405204139e-19, - -1.5667952027467749e-19, - -1.548966593016198e-19, - -1.5314405701426605e-19, - -1.514210325313819e-19, - -1.4972692401612018e-19, - -1.4806108804030585e-19, - -1.464228989734711e-19, - -1.4481174839530237e-19, - -1.4322704453063565e-19, - -1.4166821170598995e-19, - -1.4013468982670043e-19, - -1.386259338736829e-19, - -1.371414134191442e-19, - -1.3568061216030755e-19, - -1.3424302747041397e-19, - -1.3282816996633568e-19, - -1.3143556309200183e-19, - -1.3006474271706087e-19, - -1.2871525675013874e-19, - -1.2738666476598856e-19, - -1.2607853764614205e-19, - -1.2479045723234077e-19, - -1.235220159923208e-19, - -1.2227281669743183e-19, - -1.2104247211158993e-19, - -1.1983060469117014e-19, - -1.186368462952876e-19, - -1.1746083790623575e-19, - -1.1630222935948628e-19, - -1.1516067908299945e-19, - -1.140358538454452e-19, - -1.12927428512993e-19, - -1.118350858143447e-19, - -1.1075851611362834e-19, - -1.0969741719101296e-19, - -1.0865149403050667e-19, - -1.0762045861494076e-19, - -1.0660402972764542e-19, - -1.0560193276064079e-19, - -1.0461389952919775e-19, - -1.0363966809234148e-19, - -1.026789825792334e-19, - -1.0173159302116731e-19, - -1.007972551889153e-19, - -9.987573043534226e-20, - -9.89667855429671e-20, - -9.807019257644345e-20, - -9.71857287395974e-20, - -9.631317623701567e-20, - -9.545232213998049e-20, - -9.460295825653477e-20, - -9.376488100558262e-20, - -9.293789129490628e-20, - -9.212179440291706e-20, - -9.131639986400428e-20, - -9.05215213574181e-20, - -8.97369765994728e-20, - -8.89625872390465e-20, - -8.819817875622532e-20, - -8.744358036393566e-20, - -8.66986249125548e-20, - -8.596314879736066e-20, - -8.523699186866498e-20, - -8.451999734463336e-20, - -8.381201172666998e-20, - -8.311288471723175e-20, - -8.242246914006826e-20, - -8.17406208627657e-20, - -8.106719872148295e-20, - -8.040206444793726e-20, - -7.974508259835858e-20, - -7.909612048459869e-20, - -7.845504810707319e-20, - -7.782173808967559e-20, - -7.719606561652087e-20, - -7.657790837040004e-20, - -7.596714647303045e-20, - -7.53636624269053e-20, - -7.47673410587931e-20, - -7.417806946478564e-20, - -7.35957369568366e-20, - -7.302023501080116e-20, - -7.245145721583091e-20, - -7.188929922524252e-20, - -7.133365870859258e-20, - -7.078443530515527e-20, - -7.024153057856528e-20, - -6.970484797272147e-20, - -6.91742927688726e-20, - -6.86497720437774e-20, - -6.813119462906056e-20, - -6.761847107155457e-20, - -6.711151359476315e-20, - -6.661023606124281e-20, - -6.61145539360551e-20, - -6.562438425108618e-20, - -6.513964557037604e-20, - -6.466025795622368e-20, - -6.418614293629506e-20, - -6.371722347146302e-20, - -6.325342392452462e-20, - -6.279467002972153e-20, - -6.234088886295495e-20, - -6.189200881285434e-20, - -6.14479595524933e-20, - -6.100867201186104e-20, - -6.057407835099107e-20, - -6.014411193376414e-20, - -5.971870730237195e-20, - -5.929780015239061e-20, - -5.888132730851492e-20, - -5.84692267007905e-20, - -5.806143734153396e-20, - -5.765789930275769e-20, - -5.725855369412674e-20, - -5.686334264151189e-20, - -5.647220926599343e-20, - -5.60850976633867e-20, - -5.570195288428931e-20, - -5.532272091458252e-20, - -5.4947348656356e-20, - -5.457578390936463e-20, - -5.420797535285113e-20, - -5.3843872527836335e-20, - -5.3483425819809215e-20, - -5.3126586441820063e-20, - -5.277330641798036e-20, - -5.242353856733522e-20, - -5.207723648809501e-20, - -5.173435454225331e-20, - -5.139484784057061e-20, - -5.1058672227846184e-20, - -5.072578426858286e-20, - -5.039614123295339e-20, - -5.006970108307852e-20, - -4.9746422459637103e-20, - -4.942626466875399e-20, - -4.9109187669199714e-20, - -4.8795152059862837e-20, - -4.84841190675273e-20, - -4.817605053487332e-20, - -4.78709089088036e-20, - -4.756865722898296e-20, - -4.7269259116649074e-20, - -4.697267876365857e-20, - -4.667888092180262e-20, - -4.638783089230199e-20, - -4.6099494515583385e-20, - -4.5813838161255657e-20, - -4.5530828718280814e-20, - -4.525043358541104e-20, - -4.497262066177476e-20, - -4.4697358337704964e-20, - -4.4424615485721706e-20, - -4.4154361451770396e-20, - -4.388656604657526e-20, - -4.362119953722495e-20, - -4.335823263890888e-20, - -4.309763650684838e-20, - -4.283938272838032e-20, - -4.258344331521018e-20, - -4.232979069583107e-20, - -4.207839770809866e-20, - -4.182923759196701e-20, - -4.158228398234472e-20, - -4.1337510902137353e-20, - -4.109489275542381e-20, - -4.085440432073928e-20, - -4.0616020744542986e-20, - -4.0379717534780684e-20, - -4.014547055460481e-20, - -3.991325601620972e-20, - -3.968305047478393e-20, - -3.9454830822591013e-20, - -3.922857428319454e-20, - -3.9004258405740594e-20, - -3.878186105941651e-20, - -3.856136042796716e-20, - -3.834273500437559e-20, - -3.8125963585586015e-20, - -3.7911025267386026e-20, - -3.7697899439354905e-20, - -3.7486565779922033e-20, - -3.727700425153709e-20, - -3.706919509590127e-20, - -3.686311882932049e-20, - -3.6658756238133044e-20, - -3.645608837423731e-20, - -3.625509655070073e-20, - -3.605576233743484e-20, - -3.585806755699572e-20, - -3.5661994280416526e-20, - -3.546752482316213e-20, - -3.5274641741126006e-20, - -3.508332782672371e-20, - -3.489356610505922e-20, - -3.4705339830153965e-20, - -3.451863248125372e-20, - -3.4333427759203314e-20, - -3.4149709582887447e-20, - -3.3967462085751006e-20, - -3.378666961235e-20, - -3.3607316715014233e-20, - -3.3429388150533696e-20, - -3.3252868876919535e-20, - -3.3077744050232756e-20, - -3.290399902145358e-20, - -3.2731619333428746e-20, - -3.256059071785268e-20, - -3.239089909232153e-20, - -3.222253055743458e-20, - -3.205547139394996e-20, - -3.188970805997417e-20, - -3.172522718823971e-20, - -3.156201558340136e-20, - -3.140006021938326e-20, - -3.123934823678025e-20, - -3.1079866940326877e-20, - -3.0921603796351267e-20, - -3.076454643035258e-20, - -3.0608682624554785e-20, - -3.045400031553837e-20, - -3.030048759191268e-20, - -3.0148132692011986e-20, - -2.999692400165255e-20, - -2.9846850051913405e-20, - -2.969789951695946e-20, - -2.9550061211908694e-20, - -2.9403324090731496e-20, - -2.925767724419407e-20, - -1.9171933427220023e-20, + -4.6195652173913043793e-16, + -1.6864049318624269812e-16, + -8.8152985074626865086e-17, + -5.4185779816513761163e-17, + -3.6679604798870853723e-17, + -2.647733061640346396e-17, + -2.0011935931002618118e-17, + -1.5657006868297385164e-17, + -1.25841363614352815456e-17, + -1.0335056671306422701e-17, + -8.639461436170212733e-18, + -7.329506994584837517e-18, + -6.2964892302473771925e-18, + -5.467484378616061084e-18, + -4.792089249492900589e-18, + -4.2345608603552224086e-18, + -3.7689808704732346046e-18, + -3.3761838566770166122e-18, + -3.0417505501193875931e-18, + -2.7546639813440746164e-18, + -2.506389545257269611e-18, + -2.2902327466929876274e-18, + -2.1008827951947484923e-18, + -1.9340830269562240405e-18, + -1.7863894139886578375e-18, + -1.6549912434325744265e-18, + -1.5375763241349931305e-18, + -1.4322285172611436868e-18, + -1.3373490255813833786e-18, + -1.2515953476051725358e-18, + -1.1738335064817742409e-18, + -1.103100354010849534e-18, + -1.0385735923556187876e-18, + -9.795477589605768502e-19, + -9.254148564917028697e-19, + -8.756486286137879879e-19, + -8.2979171788837764683e-19, + -7.874451174615102528e-19, + -7.482594599575014517e-19, + -7.119277867572528269e-19, + -6.7817951695611894874e-19, + -6.467753937894629393e-19, + -6.175032315705432811e-19, + -5.901743214272737175e-19, + -5.6462038173660825646e-19, + -5.4069096091628782634e-19, + -5.1825121747905058506e-19, + -4.9718001599393913773e-19, + -4.7736828860139127754e-19, + -4.587176205816159903e-19, + -4.411390256323204896e-19, + -4.2455188232295839067e-19, + -4.088830079314256587e-19, + -3.9406584974926872992e-19, + -3.8003977713107442156e-19, + -3.6674946019559970864e-19, + -3.541443232658000506e-19, + -3.421780629462798524e-19, + -3.3080822224711549269e-19, + -3.1999581342658720344e-19, + -3.097049832857628047e-19, + -2.999027155404711424e-19, + -2.9055856564974429634e-19, + -2.8164442411775798466e-19, + -2.7313430482786889643e-19, + -2.6500415542831503597e-19, + -2.5723168718251250153e-19, + -2.497962220333965158e-19, + -2.4267855491982619494e-19, + -2.3586082963110867015e-19, + -2.2932642669937610756e-19, + -2.2305986201403206454e-19, + -2.170466950021005176e-19, + -2.1127344535669949211e-19, + -2.0572751741608613105e-19, + -2.0039713140037014175e-19, + -1.9527126080425835883e-19, + -1.9033957532393433473e-19, + -1.855923887659739793e-19, + -1.810206114473986654e-19, + -1.7661570664972152603e-19, + -1.7236965073713520616e-19, + -1.6827489659066479677e-19, + -1.6432434004689290244e-19, + -1.6051128906237936496e-19, + -1.5682943535368469915e-19, + -1.5327282828842835149e-19, + -1.498358508254737379e-19, + -1.4651319732248012684e-19, + -1.4329985304700014566e-19, + -1.4019107524329456406e-19, + -1.3718237562131277029e-19, + -1.342695041470482917e-19, + -1.314484340248992039e-19, + -1.2871534777289634843e-19, + -1.2606662430084262743e-19, + -1.23498826909651846e-19, + -1.2100869213758973447e-19, + -1.1859311938579374149e-19, + -1.1624916126146275974e-19, + -1.1397401458253385229e-19, + -1.1176501199256319127e-19, + -1.0961961413895823002e-19, + -1.07535402371716834336e-19, + -1.05510071923460282696e-19, + -1.03541425534839524406e-19, + -1.0162736749238210123e-19, + -9.9765898048561758293e-20, + -9.795510819634067199e-20, + -9.6193174772680584445e-20, + -9.447835586756488332e-20, + -9.2808986516939001874e-20, + -9.118347465967818429e-20, + -8.96002973402459884e-20, + -8.805799714012700054e-20, + -8.6555178822416582764e-20, + -8.5090506175139591764e-20, + -8.366269903995946118e-20, + -8.2270530513937949674e-20, + -8.0912824312922077287e-20, + -7.9588452285976353404e-20, + -7.8296332071051341355e-20, + -7.7035424882790544804e-20, + -7.58047334240316256e-20, + -7.4603299913160179886e-20, + -7.343020422002924414e-20, + -7.2284562103669204745e-20, + -7.1165523545484867336e-20, + -7.00722711720721516e-20, + -6.900401876218938202e-20, + -6.7960009832790263406e-20, + -6.6939516299369744327e-20, + -6.5941837206192481045e-20, + -6.49662975222685348e-20, + -6.4012246999214240833e-20, + -6.307905908738952739e-20, + -6.2166129906937991274e-20, + -6.127287727057418898e-20, + -6.039873975516518142e-20, + -5.954317581934159352e-20, + -5.870566296454844333e-20, + -5.7885696937108791174e-20, + -5.70827909690247192e-20, + -5.6296475055381217727e-20, + -5.5526295266349942987e-20, + -5.4771813091912319165e-20, + -5.4032604817535609017e-20, + -5.330826092914221942e-20, + -5.2598385545811852415e-20, + -5.19025958787491446e-20, + -5.1220521715136045092e-20, + -5.0551804925569458667e-20, + -4.9896098993860403153e-20, + -4.9253068568042013268e-20, + -4.8622389031500010636e-20, + -4.8003746093201616167e-20, + -4.7396835396056984764e-20, + -4.6801362142501976304e-20, + -4.621704073644220051e-20, + -4.564359444074631573e-20, + -4.5080755049521610664e-20, + -4.4528262574447228118e-20, + -4.3985864944480063777e-20, + -4.345331771828572485e-20, + -4.293038380878199908e-20, + -4.2416833219215253855e-20, + -4.1912442790221187573e-20, + -4.141699595735057459e-20, + -4.0930282518568055114e-20, + -4.045209841125794141e-20, + -3.9982245498295321748e-20, + -3.9520531362763728372e-20, + -3.906676911092226449e-20, + -3.8620777183045467817e-20, + -3.8182379171778464848e-20, + -3.775140364766809272e-20, + -3.7327683991547819605e-20, + -3.6911058233470486198e-20, + -3.650136889789813957e-20, + -3.6098462854872718676e-20, + -3.5702191176904958385e-20, + -3.5312409001331782045e-20, + -3.4928975397904704835e-20, + -3.4551753241383235295e-20, + -3.418060908891824813e-20, + -3.38154130620206231e-20, + -3.345603873292020081e-20, + -3.3102363015129452238e-20, + -3.275426605803495085e-20, + -3.2411631145348158784e-20, + -3.2074344597254843682e-20, + -3.1742295676109981407e-20, + -3.1415376495532095648e-20, + -3.109348193275767598e-20, + -3.077650954412276709e-20, + -3.0464359483544849638e-20, + -3.015693442388389778e-20, + -2.9854139481066990008e-20, + -2.9555882140866035265e-20, + -2.9262072188223106534e-20, + -2.8972621639022595788e-20, + -2.868744467421384236e-20, + -2.8406457576192158342e-20, + -2.8129578667350183195e-20, + -2.7856728250715377933e-20, + -2.7587828552593096454e-20, + -2.7322803667138176764e-20, + -2.7061579502781289532e-20, + -2.6804083730439465565e-20, + -2.6550245733443195141e-20, + -2.629999655911540948e-20, + -2.6053268871940326104e-20, + -2.5809996908262803759e-20, + -2.557011643246129144e-20, + -2.5333564694539842597e-20, + -2.5100280389086943953e-20, + -2.487020361555100907e-20, + -2.4643275839784521724e-20, + -2.4419439856810700504e-20, + -2.4198639754768494211e-20, + -2.3980820879993465798e-20, + -2.3765929803193867166e-20, + -2.355391428668279075e-20, + -2.334472325262893737e-20, + -2.3138306752289902179e-20, + -2.2934615936193449297e-20, + -2.2733603025233490223e-20, + -2.2535221282648863289e-20, + -2.2339424986854232003e-20, + -2.2146169405093597539e-20, + -2.1955410767888115143e-20, + -2.1767106244250929472e-20, + -2.1581213917642848606e-20, + -2.1397692762643659162e-20, + -2.121650262231482129e-20, + -2.103760418623025554e-20, + -2.0860958969152752875e-20, + -2.0686529290334432897e-20, + -2.0514278253420467801e-20, + -2.0344169726936032748e-20, + -2.0176168325337268947e-20, + -2.0010239390607649911e-20, + -1.9846348974381923932e-20, + -1.9684463820580401342e-20, + -1.9524551348537001605e-20, + -1.9366579636605089862e-20, + -1.9210517406225693772e-20, + -1.905633400644325858e-20, + -1.8903999398854637624e-20, + -1.8753484142977501433e-20, + -1.8604759382024884684e-20, + -1.8457796829073024429e-20, + -1.831256875361010383e-20, + -1.8169047968453987946e-20, + -1.8027207817027396233e-20, + -1.788702216097941352e-20, + -1.7748465368142612957e-20, + -1.7611512300815405308e-20, + -1.747613830435964991e-20, + -1.7342319196103842303e-20, + -1.721003125454257065e-20, + -1.7079251208823231713e-20, + -1.694995622851130363e-20, + -1.6822123913625781254e-20, + -1.6695732284936642869e-20, + -1.6570759774516514479e-20, + -1.6447185216538941852e-20, + -1.6324987838315938223e-20, + -1.6204147251567741435e-20, + -1.6084643443917900453e-20, + -1.5966456770607096573e-20, + -1.5849567946419281606e-20, + -1.5733958037813930878e-20, + -1.5619608455258439183e-20, + -1.5506500945754843392e-20, + -1.5394617585555272932e-20, + -1.5283940773060694385e-20, + -1.5174453221897715826e-20, + -1.5066137954168329797e-20, + -1.4958978293867725739e-20, + -1.4852957860465355624e-20, + -1.4748060562644681764e-20, + -1.4644270592197115654e-20, + -1.4541572418065828277e-20, + -1.4439950780535252155e-20, + -1.4339390685562199194e-20, + -1.4239877399244682197e-20, + -1.4141396442424613875e-20, + -1.4043933585420702468e-20, + -1.3947474842887968835e-20, + -1.3852006468800404283e-20, + -1.3757514951553430623e-20, + -1.366398700918288266e-20, + -1.3571409584697371929e-20, + -1.3479769841520959101e-20, + -1.3389055159043170024e-20, + -1.32992531282734776516e-20, + -1.32103515475974494266e-20, + -1.3122338418631857318e-20, + -1.30352019421761196485e-20, + -1.29489305142575261884e-20, + -1.28635127222677641326e-20, + -1.27789373411883577184e-20, + -1.2695193329902679745e-20, + -1.26122698275922734715e-20, + -1.2530156150215296598e-20, + -1.2448841787064950299e-20, + -1.23683163974058210185e-20, + -1.22885698071861332556e-20, + -1.22095920058239578734e-20, + -1.2131373143065476118e-20, + -1.2053903525913468578e-20, + -1.1977173615624235142e-20, + -1.1901174024771203295e-20, + -1.1825895514373553841e-20, + -1.1751328991088208251e-20, + -1.16774655044635890225e-20, + -1.1604296244253612658e-20, + -1.15318125377903985994e-20, + -1.1460005847414239123e-20, + -1.138886776795940641e-20, + -1.131839002429441519e-20, + -1.1248564468915395547e-20, + -1.1179383079591270814e-20, + -1.1110837957059470401e-20, + -1.1042921322770939497e-20, + -1.0975625516683246217e-20, + -1.09089429951006202885e-20, + -1.0842866328559773705e-20, + -1.0777388199760419531e-20, + -1.0712501401539384779e-20, + -1.064819883488729786e-20, + -1.05844735070068095995e-20, + -1.0521318529411371332e-20, + -1.04587271160635987576e-20, + -1.0396692581552276922e-20, + -1.03352083393071067564e-20, + -1.02742678998502915586e-20, + -1.0213864869084093624e-20, + -1.0153992946613538407e-20, + -1.00946459241034119285e-20, + -1.0035817683668786926e-20, + -9.977502196298270812e-21, + -9.919693520309233679e-21, + -9.862385799834270233e-21, + -9.805573263338173728e-21, + -9.749250222164732452e-21, + -9.6934110691126502065e-21, + -9.6380502770399369e-21, + -9.5831623974961163886e-21, + -9.528742059381617345e-21, + -9.47478396763373688e-21, + -9.421282901938574955e-21, + -9.368233715468347519e-21, + -9.3156313336435258164e-21, + -9.263470752919218914e-21, + -9.211747039595287624e-21, + -9.160455328649642647e-21, + -9.1095908225942109775e-21, + -9.059148790353082744e-21, + -9.009124566162334732e-21, + -8.9595135484910595096e-21, + -8.910311198983132382e-21, + -8.8615130414192659845e-21, + -8.8131146606989006736e-21, + -8.765111701841508216e-21, + -8.7174998690068803136e-21, + -8.670274924533993949e-21, + -8.623432687998049683e-21, + -8.576969035285295574e-21, + -8.53087989768524712e-21, + -8.485161260999936165e-21, + -8.439809164669827073e-21, + -8.3948197009160341586e-21, + -8.350189013898505974e-21, + -8.3059132988898282136e-21, + -8.261988801464321808e-21, + -8.218411816702108856e-21, + -8.17517868840783412e-21, + -8.132285808343732739e-21, + -8.089729615476746148e-21, + -8.047506595239387813e-21, + -8.005613278804081045e-21, + -7.9640462423706812495e-21, + -7.922802106466911705e-21, + -7.881877535261450244e-21, + -7.841269235889396545e-21, + -7.800973957789879136e-21, + -7.760988492055540298e-21, + -7.7213096707936610455e-21, + -7.681934366498696451e-21, + -7.642859491435968189e-21, + -7.604081997036317211e-21, + -7.565598873301466778e-21, + -7.527407148219896656e-21, + -7.4895038871930130455e-21, + -7.451886192471402862e-21, + -7.414551202600974695e-21, + -7.377496091878789765e-21, + 2.2332872434632680135e-20, ]; pub const BS: [f64; 400] = [ 0.001, - 0.0009478655860784542, - 0.0008849337898556985, - 0.0008228570452120568, - 0.000765524376988335, - 0.0007138361860565507, - 0.000667630710114292, - 0.0006263963457006464, - 0.0005895442790373391, - 0.0005565111563790603, - 0.0005267935435142772, - 0.0004999548243957706, - 0.00047562140126127157, - 0.00045347530994406727, - 0.0004332462204146543, - 0.00041470399303636515, - 0.0003976521766406362, - 0.0003819225002975569, - 0.00036737027821332987, - 0.00035387060467088026, - 0.0003413152122138495, - 0.0003296098779116037, - 0.00031867227892298474, - 0.0003084302150897953, - 0.00029882013112582785, - 0.00028978588359133126, - 0.0002812777082820824, - 0.0002732513521582231, - 0.00026566734079279744, - 0.00025849035782599437, - 0.00025168871732666917, - 0.0002452339135039291, - 0.0002391002350554397, - 0.00023326443372754895, - 0.00022770543850873144, - 0.00022240410837204058, - 0.00021734301769520153, - 0.00021250626947505292, - 0.00020787933226054263, - 0.00020344889739078116, - 0.00019920275366971425, - 0.00019512967705907186, - 0.0001912193333441634, - 0.0001874621920371694, - 0.00018384945004111828, - 0.00018037296381410637, - 0.00017702518895491905, - 0.00017379912628404613, - 0.00017068827362318585, - 0.000167686582585589, - 0.00016478841978242353, - 0.00016198853192934406, - 0.00015928201440490854, - 0.000156664282870203, - 0.0001541310476085928, - 0.00015167829028712716, - 0.00014930224287782617, - 0.00014699936850886124, - 0.000144766344043128, - 0.0001426000442055093, - 0.00014049752710099242, - 0.0001384560209837807, - 0.00013647291215340392, - 0.0001345457338676236, - 0.00013267215617407142, - 0.00013084997657315903, - 0.00012907711143421321, - 0.00012735158809499723, - 0.00012567153758209196, - 0.00012403518789603387, - 0.00012244085781085392, - 0.00012088695114267202, - 0.00011937195144651513, - 0.0001178944171045927, - 0.00011645297677272671, - 0.00011504632515488627, - 0.00011367321907863656, - 0.00011233247384678917, - 0.00011102295984288586, - 0.00010974359937017294, - 0.0001084933637055567, - 0.00010727127035169509, - 0.00010607638047187179, - 0.0001049077964936348, - 0.00010376465986839802, - 0.00010264614897531531, - 0.00010155147715868368, - 0.00010047989088911667, - 9.94306680394151e-05, - 9.840311626696233e-05, - 9.739657149496913e-05, - 9.641039648566688e-05, - 9.544397949898576e-05, - 9.449673303080714e-05, - 9.356809262536679e-05, - 9.265751575675263e-05, - 9.176448077486192e-05, - 9.088848591153834e-05, - 9.002904834291072e-05, - 8.91857033042684e-05, - 8.835800325406222e-05, - 8.754551708390506e-05, - 8.674782937162016e-05, - 8.596453967464015e-05, - 8.519526186125563e-05, - 8.443962347731812e-05, - 8.369726514630092e-05, - 8.29678400006035e-05, - 8.225101314230225e-05, - 8.154646113150026e-05, - 8.08538715007229e-05, - 8.017294229376826e-05, - 7.950338162761335e-05, - 7.8844907276048e-05, - 7.819724627376032e-05, - 7.756013453976419e-05, - 7.693331651901434e-05, - 7.631654484123451e-05, - 7.570957999600647e-05, - 7.511219002317299e-05, - 7.452415021779347e-05, - 7.39452428487825e-05, - 7.337525689057661e-05, - 7.281398776704926e-05, - 7.226123710710654e-05, - 7.1716812511276e-05, - 7.118052732877359e-05, - 7.065220044446764e-05, - 7.013165607524134e-05, - 6.961872357528175e-05, - 6.911323724984047e-05, - 6.861503617701373e-05, - 6.812396403719717e-05, - 6.763986894976005e-05, - 6.716260331665613e-05, - 6.669202367258016e-05, - 6.622799054137742e-05, - 6.577036829838158e-05, - 6.531902503844327e-05, - 6.487383244931262e-05, - 6.44346656901762e-05, - 6.400140327509005e-05, - 6.357392696105534e-05, - 6.315212164057495e-05, - 6.273587523842308e-05, - 6.232507861248331e-05, - 6.19196254584469e-05, - 6.151941221819974e-05, - 6.112433799173434e-05, - 6.0734304452439244e-05, - 6.034921576558533e-05, - 5.99689785099213e-05, - 5.9593501602179115e-05, - 5.9222696224413025e-05, - 5.8856475754030186e-05, - 5.84947556963854e-05, - 5.813745361986546e-05, - 5.778448909330886e-05, - 5.743578362571232e-05, - 5.7091260608087606e-05, - 5.675084525740902e-05, - 5.641446456254062e-05, - 5.60820472320838e-05, - 5.5753523644044365e-05, - 5.542882579726999e-05, - 5.510788726456035e-05, - 5.4790643147403094e-05, - 5.447703003225709e-05, - 5.416698594833362e-05, - 5.386045032680416e-05, - 5.3557363961384356e-05, - 5.325766897024687e-05, - 5.296130875919079e-05, - 5.2668227986050514e-05, - 5.237837252625882e-05, - 5.209168943956274e-05, - 5.1808126937805044e-05, - 5.152763435375903e-05, - 5.12501621109721e-05, - 5.0975661694579276e-05, - 5.070408562303612e-05, - 5.043538742076462e-05, - 5.016952159165634e-05, - 4.9906443593405816e-05, - 4.9646109812655414e-05, - 4.938847754090365e-05, - 4.913350495116463e-05, - 4.8881151075350196e-05, - 4.8631375782329965e-05, - 4.838413975667897e-05, - 4.813940447805673e-05, - 4.7897132201212914e-05, - 4.7657285936594234e-05, - 4.7419829431526744e-05, - 4.71847271519653e-05, - 4.695194426476821e-05, - 4.6721446620514045e-05, - 4.64932007368044e-05, - 4.6267173782060014e-05, - 4.604333355978672e-05, - 4.5821648493296274e-05, - 4.5602087610867964e-05, - 4.538462053132326e-05, - 4.516921745003233e-05, - 4.4955849125289056e-05, - 4.4744486865098046e-05, - 4.45351025143152e-05, - 4.432766844214525e-05, - 4.4122157530005095e-05, - 4.3918543159702134e-05, - 4.371679920194944e-05, - 4.351690000519749e-05, - 4.3318820384760065e-05, - 4.312253561224901e-05, - 4.2928021405280725e-05, - 4.273525391747814e-05, - 4.2544209728719395e-05, - 4.235486583565916e-05, - 4.216719964250548e-05, - 4.198118895203088e-05, - 4.17968119568214e-05, - 4.161404723076193e-05, - 4.143287372074032e-05, - 4.1253270738562774e-05, - 4.107521795308747e-05, - 4.0898695382549774e-05, - 4.072368338709343e-05, - 4.055016266149302e-05, - 4.037811422805098e-05, - 4.020751942968476e-05, - 4.0038359923190114e-05, - 3.9870617672661414e-05, - 3.970427494308608e-05, - 3.953931429410061e-05, - 3.937571857389206e-05, - 3.921347091325864e-05, - 3.905255471981524e-05, - 3.889295367233122e-05, - 3.873465171522735e-05, - 3.857763305317805e-05, - 3.842188214587567e-05, - 3.826738370289203e-05, - 3.811412267868181e-05, - 3.7962084267705213e-05, - 3.781125389965173e-05, - 3.766161723479618e-05, - 3.751316015944939e-05, - 3.7365868781525676e-05, - 3.7219729426211825e-05, - 3.7074728631732516e-05, - 3.693085314522366e-05, - 3.6788089918686125e-05, - 3.664642610505785e-05, - 3.6505849054345416e-05, - 3.636634630987234e-05, - 3.622790560459189e-05, - 3.609051485749587e-05, - 3.595416217010672e-05, - 3.581883582303215e-05, - 3.5684524272620494e-05, - 3.5551216147668935e-05, - 3.541890024622637e-05, - 3.5287565532444045e-05, - 3.515720113351968e-05, - 3.5027796336687884e-05, - 3.48993405862997e-05, - 3.477182348093517e-05, - 3.464523477061422e-05, - 3.4519564354039235e-05, - 3.4394802275912814e-05, - 3.427093872431598e-05, - 3.414796402812223e-05, - 3.4025868654494865e-05, - 3.39046432064163e-05, - 3.3784278420283065e-05, - 3.366476516354382e-05, - 3.354609443238919e-05, - 3.3428257349493555e-05, - 3.3311245161798746e-05, - 3.319504923835742e-05, - 3.307966106819458e-05, - 3.29650722582435e-05, - 3.285127453130859e-05, - 3.273825972406603e-05, - 3.262601978512341e-05, - 3.251454677310065e-05, - 3.240383285475513e-05, - 3.229387030315418e-05, - 3.218465149587862e-05, - 3.207616891325115e-05, - 3.196841513662366e-05, - 3.186138284667823e-05, - 3.175506482177391e-05, - 3.1649453936321964e-05, - 3.1544543159193155e-05, - 3.144032555216044e-05, - 3.133679426836948e-05, - 3.123394255083514e-05, - 3.1131763730974307e-05, - 3.103025122717118e-05, - 3.092939854335385e-05, - 3.082919926761559e-05, - 3.07296470708555e-05, - 3.063073570544341e-05, - 3.0532459003917216e-05, - 3.0434810877697867e-05, - 3.033778531583426e-05, - 3.024137638376784e-05, - 3.0145578222128493e-05, - 3.0050385045538414e-05, - 2.99557911414568e-05, - 2.9861790869032584e-05, - 2.976837865798441e-05, - 2.967554900749838e-05, - 2.958329648515561e-05, - 2.9491615725862914e-05, - 2.9400501430819836e-05, - 2.9309948366497946e-05, - 2.9219951363631946e-05, - 2.913050531624649e-05, - 2.904160518068288e-05, - 2.8953245974656474e-05, - 2.8865422776317863e-05, - 2.8778130723351592e-05, - 2.8691365012068368e-05, - 2.8605120896529517e-05, - 2.851939368767848e-05, - 2.8434178752494695e-05, - 2.8349471513157172e-05, - 2.8265267446224195e-05, - 2.818156208182909e-05, - 2.809835100288966e-05, - 2.8015629844333954e-05, - 2.7933394292329728e-05, - 2.7851640083540473e-05, - 2.7770363004391432e-05, - 2.768955889033743e-05, - 2.760922362515928e-05, - 2.7529353140259622e-05, - 2.744994341398e-05, - 2.7370990470925672e-05, - 2.7292490381299473e-05, - 2.72144392602495e-05, - 2.7136833267236507e-05, - 2.705966860539235e-05, - 2.6982941520910542e-05, - 2.6906648302429064e-05, - 2.6830785280442793e-05, - 2.675534882670402e-05, - 2.6680335353652226e-05, - 2.6605741313841334e-05, - 2.6531563199380393e-05, - 2.6457797541388895e-05, - 2.638444090944945e-05, - 2.6311489911079853e-05, - 2.623894119120831e-05, - 2.6166791431661428e-05, - 2.6095037350658868e-05, - 2.6023675702309682e-05, - 2.5952703276132037e-05, - 2.588211689656353e-05, - 2.581191342249469e-05, - 2.574208974679761e-05, - 2.567264279586958e-05, - 2.5603569529183707e-05, - 2.5534866938843288e-05, - 2.5466532049145795e-05, - 2.53985619161533e-05, - 2.533095362726906e-05, - 2.5263704300825714e-05, - 2.519681108566734e-05, - 2.513027116075577e-05, - 2.506408173476901e-05, - 2.499824004571093e-05, - 2.4932743360530074e-05, - 2.486758897473788e-05, - 2.4802774212040544e-05, - 2.4738296423968368e-05, - 2.4674152989517594e-05, - 2.461034131479544e-05, - 2.4546858832671286e-05, - 2.4483703002426508e-05, - 2.4420871309423944e-05, - 2.4358361264770858e-05, - 2.4296170404987907e-05, - 2.4234296291685745e-05, - 2.4172736511254747e-05, - 2.4111488674536183e-05, - 2.4050550416528692e-05, - 2.398991939607335e-05, - 2.392959329555695e-05, - 2.3869569820619303e-05, - 2.380984669985823e-05, - 2.3750421684546976e-05, - 2.369129254834975e-05, - 2.3632457087042946e-05, - 2.357391311824284e-05, - 2.351565848113549e-05, - 2.3457691036213595e-05, - 1.943347925324095e-05, + 0.0007066839714471122602, + 0.0005457089552238805941, + 0.0004438073394495412823, + 0.00037378263937896965256, + 0.00032277126846663270373, + 0.00028397890035422762867, + 0.000253494396915290998, + 0.00022891143286039416905, + 0.00020866971564923443944, + 0.00019171376329787233977, + 0.0001773042644404332124, + 0.0001649080512683836885, + 0.00015413098819717657909, + 0.00014467545638945233216, + 0.00013631253055238715945, + 0.00012886325071427535459, + 0.00012218570147973964872, + 0.000116165901961702326376, + 0.00011071125715497137982, + 0.000105745768433235279713, + 0.000101206475663385358056, + 9.704077673042409709e-05, + 9.320438206093803469e-05, + 8.965973534971644582e-05, + 8.6374781085814360547e-05, + 8.332199318407724685e-05, + 8.047760239848331187e-05, + 7.782097663145002324e-05, + 7.5334119970139908794e-05, + 7.300126473643795995e-05, + 7.080853700983929404e-05, + 6.8743680636871910156e-05, + 6.6795828134835526215e-05, + 6.4955309450893810886e-05, + 6.3213491475166790025e-05, + 6.156264268905201774e-05, + 5.9995818473257924162e-05, + 5.850676348810558972e-05, + 5.7089828233295893353e-05, + 5.5739897441250538226e-05, + 5.445232839141764184e-05, + 5.3222897578223016195e-05, + 5.2047754442062424962e-05, + 5.0923381095673144673e-05, + 4.984655715875872532e-05, + 4.8814328960645812222e-05, + 4.7823982490845574195e-05, + 4.6873019576003276904e-05, + 4.595913684303428783e-05, + 4.5080207095569512793e-05, + 4.423426278679204575e-05, + 4.3419481318432343686e-05, + 4.2634171934778026463e-05, + 4.187676401339553381e-05, + 4.1145796581944424602e-05, + 4.0439908913875643752e-05, + 3.9757832075662992453e-05, + 3.909838131511145959e-05, + 3.8460449194700290523e-05, + 3.78429993862508266e-05, + 3.7245061053788035197e-05, + 3.6665723760562970742e-05, + 3.6104132844047833107e-05, + 3.555948520949493146e-05, + 3.503102549852393053e-05, + 3.451804259430096326e-05, + 3.4019866429310192212e-05, + 3.3535865065587410395e-05, + 3.3065442020665901185e-05, + 3.2608033815444621804e-05, + 3.216310772278519475e-05, + 3.1730159697926123372e-05, + 3.130871247381184851e-05, + 3.089831380620645979e-05, + 3.0498534855027760593e-05, + 3.010896868972326509e-05, + 2.9729228907738315236e-05, + 2.9358948356217407511e-05, + 2.8997777948049957713e-05, + 2.8645385564235786564e-05, + 2.8301455035316294656e-05, + 2.7965685195305721085e-05, + 2.7637789002172653857e-05, + 2.7317492719473516708e-05, + 2.7004535154234470113e-05, + 2.6698666946622424214e-05, + 2.6399649907345372832e-05, + 2.610725639908193506e-05, + 2.5821268758564216734e-05, + 2.554147875623071439e-05, + 2.5267687090630371157e-05, + 2.4999702914998039126e-05, + 2.4737343393638173961e-05, + 2.4480433285949905548e-05, + 2.4228804556104802051e-05, + 2.3982296006550487035e-05, + 2.3740752933660462215e-05, + 2.3504026803984454903e-05, + 2.3271974949675687711e-05, + 2.3044460281782796965e-05, + 2.2821351020195760204e-05, + 2.2602520439128054156e-05, + 2.23878466271021904e-05, + 2.2177212260483509029e-05, + 2.1970504389678329409e-05, + 2.1767614237177842552e-05, + 2.1568437006689065858e-05, + 2.1372871702649188537e-05, + 2.1180820959470238994e-05, + 2.099219087990751187e-05, + 2.080689088198803903e-05, + 2.0624833553974827461e-05, + 2.0445934516878989325e-05, + 2.0270112294065424709e-05, + 2.0097288187528726665e-05, + 1.992738616044459571e-05, + 1.9760332725628520432e-05, + 1.9596056839557982074e-05, + 1.9434489801637093259e-05, + 1.9275565158403606393e-05, + 1.9119218612397679935e-05, + 1.8965387935429862756e-05, + 1.8814012886002515694e-05, + 1.8665035130654456425e-05, + 1.8518398169013089458e-05, + 1.8374047262351724493e-05, + 1.8231929365462313642e-05, + 1.8091993061665486027e-05, + 1.7954188500790608754e-05, + 1.7818467339968723332e-05, + 1.7684782687090635334e-05, + 1.7553089046791236581e-05, + 1.742334226882935173e-05, + 1.7295499498740076338e-05, + 1.7169519130643740023e-05, + 1.7045360762102331111e-05, + 1.6922985150920490197e-05, + 1.6802354173794047154e-05, + 1.6683430786714568435e-05, + 1.6566178987043527409e-05, + 1.6450563777174536455e-05, + 1.6336551129706598236e-05, + 1.6224107954055577524e-05, + 1.6113202064435073962e-05, + 1.6003802149141618507e-05, + 1.5895877741082618826e-05, + 1.5789399189488790555e-05, + 1.5684337632755896238e-05, + 1.5580664972363552774e-05, + 1.5478353847821587848e-05, + 1.5377377612597033298e-05, + 1.527771031097725686e-05, + 1.5179326655827043207e-05, + 1.5082202007199574802e-05, + 1.4986312351763323659e-05, + 1.489163428300876116e-05, + 1.4798144982200624831e-05, + 1.47058222000431802556e-05, + 1.4614644239027534576e-05, + 1.4524589936431581766e-05, + 1.4435638647944606176e-05, + 1.43477702318899255526e-05, + 1.42609650340202483074e-05, + 1.4175203872861637282e-05, + 1.4090468025583124319e-05, + 1.4006739214370109316e-05, + 1.3923999593280716948e-05, + 1.3842231735565253676e-05, + 1.376141862142984446e-05, + 1.36815436262261991174e-05, + 1.3602590509050296651e-05, + 1.3524543401733564862e-05, + 1.34473867982108790384e-05, + 1.3371105544250420522e-05, + 1.3295684827531105399e-05, + 1.3221110168053937331e-05, + 1.3147367408874249318e-05, + 1.3074442707142371618e-05, + 1.3002322525440821278e-05, + 1.2930993623406624425e-05, + 1.28604430496278795085e-05, + 1.2790658133804151456e-05, + 1.272162647916072253e-05, + 1.2653335955107164892e-05, + 1.2585774690131104262e-05, + 1.2518931064918425715e-05, + 1.2452793705691555733e-05, + 1.23873514777577894715e-05, + 1.23225934792599857706e-05, + 1.2258509035122255901e-05, + 1.21950876911835872064e-05, + 1.2132319208512633141e-05, + 1.20701935578971701455e-05, + 1.2008700914501997821e-05, + 1.1947831652689303918e-05, + 1.1887576340995757354e-05, + 1.1827925737260826522e-05, + 1.1768870783901037484e-05, + 1.1710402603325094666e-05, + 1.1652512493484992517e-05, + 1.1595191923558433077e-05, + 1.1538432529758052906e-05, + 1.1482226111263131951e-05, + 1.1426564626269631677e-05, + 1.1371440188154563975e-05, + 1.1316845061750850519e-05, + 1.1262771659728974861e-05, + 1.1209212539081875476e-05, + 1.1156160397709654958e-05, + 1.11036080711008199685e-05, + 1.1051548529106877376e-05, + 1.0999974872807242639e-05, + 1.0948880331461520515e-05, + 1.0898258259546330463e-05, + 1.0848102133873957254e-05, + 1.079840555079019532e-05, + 1.0749162223448867565e-05, + 1.0700365979160574539e-05, + 1.0652010756813331361e-05, + 1.060409060436282511e-05, + 1.0556599676390113813e-05, + 1.0509532231724654849e-05, + 1.0462882631130645545e-05, + 1.0416645335054701662e-05, + 1.0370814901432999764e-05, + 1.0325385983556049013e-05, + 1.0280353327989338699e-05, + 1.0235711772548162766e-05, + 1.0191456244324977473e-05, + 1.0147581757767716523e-05, + 1.0104083412807526632e-05, + 1.0060956393034451871e-05, + 1.0018195963919640731e-05, + 9.975797471082692669e-06, + 9.933756338602819718e-06, + 9.892068067372529089e-06, + 9.850728233492587254e-06, + 9.809732486707063561e-06, + 9.769076548877283584e-06, + 9.728756212493580272e-06, + 9.688767339223742083e-06, + 9.649105858497116397e-06, + 9.6097677661233464076e-06, + 9.570749122944756872e-06, + 9.532046053521438494e-06, + 9.493654744848107056e-06, + 9.4555714451018455635e-06, + 9.417792462419867566e-06, + 9.380314163706460655e-06, + 9.343132973468306468e-06, + 9.306245372677389544e-06, + 9.269647897660733553e-06, + 9.233337139016236235e-06, + 9.197309740553881939e-06, + 9.161562398261646347e-06, + 9.126091859295425403e-06, + 9.090894920992333037e-06, + 9.055968429906748144e-06, + 9.021309280868493975e-06, + 8.986914416062563345e-06, + 8.952780824129815882e-06, + 8.9189055392880907245e-06, + 8.885285640473198339e-06, + 8.851918250499265806e-06, + 8.8188005352379317826e-06, + 8.785929702815897464e-06, + 8.7533030028303554955e-06, + 8.720917725581838756e-06, + 8.688771201324031531e-06, + 8.656860799530114484e-06, + 8.625183928175216628e-06, + 8.59373803303456123e-06, + 8.562520596996911997e-06, + 8.53152913939292675e-06, + 8.500761215338044874e-06, + 8.470214415089541195e-06, + 8.439886363417396134e-06, + 8.4097747189886268175e-06, + 8.379877173764758286e-06, + 8.350191452412094654e-06, + 8.3207153117244852994e-06, + 8.2914465400582716564e-06, + 8.262382956779117328e-06, + 8.233522411720433709e-06, + 8.204862784653113616e-06, + 8.1764019847663037545e-06, + 8.148137950158944146e-06, + 8.120068647341817661e-06, + 8.09219207074985764e-06, + 8.064506242264463921e-06, + 8.037009210745594586e-06, + 8.009699051573394581e-06, + 7.982573866199139936e-06, + 7.955631781705274565e-06, + 7.928870950374326787e-06, + 7.902289549266497845e-06, + 7.875885779805717462e-06, + 7.849657867373971014e-06, + 7.823604060913705451e-06, + 7.797722632538127413e-06, + 7.772011877149209034e-06, + 7.7464701120632282965e-06, + 7.721095676643667871e-06, + 7.695886931941304364e-06, + 7.670842260341326417e-06, + 7.645960065217320449e-06, + 7.621238770591967761e-06, + 7.59667682080430393e-06, + 7.5722726801833917367e-06, + 7.5480248327282623926e-06, + 7.5239317817939880473e-06, + 7.4999920497837472153e-06, + 7.476204177846748247e-06, + 7.452566725581886319e-06, + 7.429078270747002458e-06, + 7.4057374089736227817e-06, + 7.3825427534870602744e-06, + 7.3594929348317582034e-06, + 7.3365866006017633308e-06, + 7.3138224151762168627e-06, + 7.2911990594597546808e-06, + 7.2687152306277103555e-06, + 7.2463696418760180672e-06, + 7.2241610221757147334e-06, + 7.2020881160319421895e-06, + 7.1801496832473541802e-06, + 7.1583444986898355014e-06, + 7.136671352064437822e-06, + 7.115129047689450299e-06, + 7.093716404276508831e-06, + 7.0724322547146680603e-06, + 7.051275445858345958e-06, + 7.030244838319065015e-06, + 7.009339306260908975e-06, + 6.98855773719961616e-06, + 6.9678990318052389843e-06, + 6.9473621037082922627e-06, + 6.926945879309317361e-06, + 6.9066492975917991427e-06, + 6.8864713099383561396e-06, + 6.8664108799501490138e-06, + 6.846466983269432503e-06, + 6.826638607405192766e-06, + 6.8069247515618053407e-06, + 6.7873244264706520465e-06, + 6.767836654224641365e-06, + 6.748460468115568826e-06, + 6.7291949124742645955e-06, + 6.710039042513471237e-06, + 6.690991924173396572e-06, + 6.672052633969890528e-06, + 6.6532202588451935306e-06, + 6.6344938960212032456e-06, + 6.6158726528552163633e-06, + 6.597355646698087413e-06, + 6.578942004754767873e-06, + 6.560630863947172617e-06, + 6.542421370779328079e-06, + 6.5243126812047630432e-06, + 6.5063039604960937586e-06, + 6.4883943831167634034e-06, + 6.4705831325948937834e-06, + 6.4528694013992102813e-06, + 6.4352523908169973083e-06, + 6.417731310834049061e-06, + 6.400305380016575249e-06, + 6.382973825395025953e-06, + 6.365735882349798463e-06, + 6.3485907944987921967e-06, + 6.331537813586774269e-06, + 6.3145761993765239044e-06, + 6.2977052195417233225e-06, + 6.2809241495615585654e-06, + 6.264232272617003024e-06, + 6.247628879488748864e-06, + 6.231113268456758456e-06, + 6.2146847452014041723e-06, + 6.198342622706168322e-06, + 6.182086221161873899e-06, + 6.1659148678724189945e-06, + 6.1498278971619854688e-06, + 6.1338246502836982832e-06, + 6.1179044753297061616e-06, + 6.1020667271426586568e-06, + 6.0863107672285559943e-06, + 6.0706359636709432663e-06, + 6.055041691046430029e-06, + 6.0395273303415065597e-06, + 6.0240922688706355306e-06, + 6.0087359001955993386e-06, + 5.993457624046072588e-06, + 5.9782568462414094052e-06, + 5.9631329786136131846e-06, + 5.948085438931474557e-06, + 5.9331136508258555303e-06, + 5.918217043716097898e-06, + 5.9033950527375379157e-06, + 5.888647118670108313e-06, + -5.9657899234079681765e-06, ]; #[cfg(test)] @@ -841,9 +835,7 @@ mod tests { #[test] fn formula_test() { - let steps_to_convert = vec![ - 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, - ]; + let steps_to_convert = vec![1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000]; let steps_from_tge = vec![ 1, 10, @@ -865,172 +857,164 @@ mod tests { let mut test_number = 0; for tge in 0..steps_from_tge.len() { for steps in 0..steps_to_convert.len() { - let formula_res = - formula(steps_from_tge[tge] as f64, steps_to_convert[steps] as f64) as f64 - / 1e+18; + let formula_res = formula(steps_from_tge[tge] as f64, steps_to_convert[steps] as f64) as f64 / 1e+18; let diff = formula_res - TEST_RESULTS[test_number]; assert_eq!(true, diff.abs() < EPS); - // if diff.abs() > EPS { - // println!( - // "{} {} {}", - // steps_from_tge[tge], steps_to_convert[steps], TEST_RESULTS[test_number] - // ); - // } + //if diff.abs() > EPS { + // println!( + // "{} {} {}", + // steps_from_tge[tge], steps_to_convert[steps], TEST_RESULTS[test_number], + // ); + //} test_number = test_number + 1; } } } - pub const TEST_RESULTS: [f64; 150] = [ - 0.0009999999999997387, - 0.009999999999989545, - 0.09999999999911131, - 0.9999999999126997, - 9.999999991285653, - 99.99999912872224, - 999.9999128737927, - 9999.991287394952, - 99999.12873965199, - 0.0009999999999981703, - 0.009999999999973861, - 0.09999999999895448, - 0.9999999999111314, - 9.999999991269972, - 99.99999912856542, - 999.9999128722244, - 9999.99128737927, - 99999.12873949517, - 0.0009999999999824878, - 0.009999999999817035, - 0.09999999999738622, - 0.9999999998954487, - 9.999999991113144, - 99.99999912699715, - 999.9999128565418, - 9999.991287222441, - 99999.1287379269, - 0.0009999999998256607, - 0.009999999998248767, - 0.09999999998170353, - 0.9999999997386219, - 9.999999989544875, - 99.99999911131447, - 999.9999126997149, - 9999.991285654174, - 99999.12872224422, - 0.0009999999982573922, - 0.009999999982566081, - 0.09999999982487667, - 0.9999999981703533, - 9.99999997386219, - 99.99999895448761, - 999.9999111314463, - 9999.991269971488, - 99999.12856541736, - 0.0009999999825747062, - 0.00999999982573922, - 0.09999999825660807, - 0.9999999824876673, - 9.99999981703533, - 99.99999738621901, - 999.9998954487603, - 9999.991113144628, - 99999.12699714876, - 0.0009999998257478467, - 0.009999998257470626, - 0.09999998257392213, - 0.9999998256608078, - 9.999998248766735, - 99.99998170353305, - 999.9997386219009, - 9999.989544876033, - 99999.1113144628, - 0.0009999982574792517, - 0.009999982574784676, - 0.09999982574706262, - 0.9999982573922128, - 9.999982566080785, - 99.99982487667356, - 999.9981703533058, - 9999.973862190083, - 99998.9544876033, - 0.0009999825747933012, - 0.009999825747925172, - 0.09999825747846758, - 0.9999825747062624, - 9.999825739221281, - 99.9982566080785, - 999.9824876673554, - 9999.817035330578, - 99997.38621900826, - 0.0009998257479337971, - 0.009998257479330131, - 0.09998257479251717, - 0.9998257478467583, - 9.998257470626239, - 99.9825739221281, - 999.8256608078512, - 9998.248766735538, - 99981.70353305785, - 0.0009982574793387558, - 0.009982574793379717, - 0.09982574793301303, - 0.9982574792517169, - 9.982574784675826, - 99.82574706262396, - 998.2573922128099, - 9982.566080785124, - 99824.87667355372, - 0.0009825747933883426, - 0.009825747933875585, - 0.09825747933797171, - 0.9825747933013037, - 9.825747925171694, - 98.25747846758264, - 982.5747062623967, - 9825.739221280992, - 98256.60807851239, - 0.0008257479338842365, - 0.00825747933883687, - 0.08257479338781916, - 0.8257479338232387, - 8.257479332737093, - 82.5747927778415, - 825.7478728254714, - 8257.473232960365, - 82574.18280016878, - 0.00032230806451611884, - 0.003223080645160268, - 0.03223080645151066, - 0.32230806450590477, - 3.223080644138863, - 32.23080634937016, - 322.3080542918551, - 3223.0796227338956, - 32230.704208873405, - 4.541613636363615e-05, - 0.0004541613636363422, - 0.0045416136363614894, - 0.04541613636342166, - 0.45416136361489273, - 4.541613634216543, - 45.41613614892703, - 454.1613421654302, - 4541.611489270292, - 4.741577501003273e-06, - 4.739512354008062e-05, - 0.00047393471422484454, - 0.004739338881660464, - 0.047393368165134696, - 0.473933648608995, - 4.739336490220244, - 47.393364695687744, - 473.9336257065148, - 0.0008257479340584625, - 0.008257479340576784, - 0.08257479340498369, - 0.8257479339714235, - 8.257479333984337, - 82.57479279007933, + pub const TEST_RESULTS: [f64; 144] = [ + 0.0009999999999993069988, + 0.0099999999999722827965, + 0.09999999999764401515, + 0.99999999976855979966, + 9.999999976897553822, + 99.99999769017119888, + 999.9997690212771886, + 9999.97690216929368, + 99997.69021734510898, + 0.0009999999999951495171, + 0.009999999999930706679, + 0.09999999999722826438, + 0.99999999976440212546, + 9.99999997685597819, + 99.99999768975543191, + 999.99976901711954724, + 9999.9769021277170395, + 99997.69021692934621, + 0.0009999999999535733996, + 0.0099999999995149455034, + 0.09999999999307064569, + 0.99999999972282604954, + 9.9999999764402165425, + 99.999997685597818986, + 999.9997689755434749, + 9999.9769017119560885, + 99997.69021277173306, + 0.0009999999995378124409, + 0.009999999995357337218, + 0.09999999995149456977, + 0.99999999930706517937, + 9.999999972282608951, + 99.99999764402173241, + 999.99976855978263757, + 9999.9768975543483975, + 99997.690171195645235, + 0.0009999999953802037218, + 0.0099999999537812491596, + 0.099999999535733699596, + 0.9999999951494564776, + 9.9999999307065223775, + 99.99999722826086668, + 999.99976440217392337, + 9999.9768559782605735, + 99997.689755434781546, + 0.0009999999538041167476, + 0.009999999538020380718, + 0.099999995378124997836, + 0.999999953573369571, + 9.999999514945651313, + 99.999993070652180904, + 999.9997228260870088, + 9999.976440217391428, + 99997.68559782608645, + 0.0009999995380432472221, + 0.009999995380411684162, + 0.09999995380203804962, + 0.9999995378124999501, + 9.999995357336956658, + 99.9999514945652237, + 999.9993070652174083, + 9999.972282608696332, + 99997.644021739135496, + 0.0009999953804345515333, + 0.009999953804324729009, + 0.099999538041168484215, + 0.99999538020380429604, + 9.999953781249999452, + 99.99953573369565163, + 999.99514945652174447, + 9999.930706521739921, + 99997.22826086956775, + 0.0009999538043475950794, + 0.009999538043455163602, + 0.099995380432472830146, + 0.99995380411684786637, + 9.999538020380434489, + 99.995378125000002, + 999.95357336956521976, + 9999.514945652173992, + 99993.07065217391937, + 0.0009995380434780298893, + 0.009995380434759511268, + 0.09995380434551630333, + 0.99953804324728257047, + 9.995380411684783084, + 99.953802038043477296, + 999.5378124999999727, + 9995.357336956521976, + 99951.49456521739194, + 0.0009953804347823777716, + 0.009953804347802989658, + 0.0995380434759510907, + 0.99538043455163038864, + 9.9538043247282601556, + 99.53804116847825867, + 995.3802038043478433, + 9953.78125, + 99535.73369565217581, + 0.0009538043478258559447, + 0.009538043478237771822, + 0.09538043478029890887, + 0.95380434759510868137, + 9.538043455163043305, + 95.38043247282608661, + 953.80411684782609427, + 9538.020380434782055, + 95378.125, + 0.0005380434782607852349, + 0.005380434782600264018, + 0.053804347825243750703, + 0.53804347817654929464, + 5.3804347741766713753, + 53.804346982884489137, + 538.04339394062299107, + 5380.4263505840362996, + 53803.50462362102553, + 0.00010531914893616588951, + 0.0010531914893612702357, + 0.0105319148935738241685, + 0.10531914893185048698, + 1.053191488929729136, + 10.531914850419713758, + 105.31914461643948755, + 1053.19105738863027, + 10531.871696309839535, + 1.16470588235293541626e-05, + 0.00011647058823528841538, + 0.0011647058823523713262, + 0.011647058823472423994, + 0.11647058822959541202, + 1.1647058817830711064, + 11.647058766542404129, + 116.47058253659338334, + 1164.705312482868294, + 1.1895246692412392412e-06, + 1.1891116398421971423e-05, + 0.00011890600111673168301, + 0.0011890610437408145102, + 0.011890606307114153298, + 0.118906064103715028435, + 1.1890606420697238388, + 11.890606361840548644, + 118.906058271739922816, ]; }