// Generated from elementary2 best_tables.json. Do not edit. #pragma once static constexpr knot LN_KNOTS[] = { {2305843009213693952, 62}, {2342153282266202112, 62}, {2379036462616393728, 62}, {2416499693707783168, 62}, {2454555561146909696, 62}, {2493207596154246144, 62}, {2532470542080083968, 62}, {2572348250311767040, 62}, {2612853306832655360, 62}, {2653998952481742848, 62}, {2695791623871249408, 62}, {2738242015286892032, 62}, {2781361190418059776, 62}, {2825160425988812800, 62}, {2869651050800266240, 62}, {2914841042330103808, 62}, {2960741422423135744, 62}, {3007368880002737664, 62}, {3054725732145342464, 62}, {3102831212699957760, 62}, {3151694528292657152, 62}, {3201327616716164608, 62}, {3251740616098234368, 62}, {3302947895158910976, 62}, {3354959887656156160, 62}, {3407791049370119168, 62}, {3461455395736194560, 62}, {3515964721914195968, 62}, {3571335952227187712, 62}, {3627576080381819904, 62}, {3684701979028720640, 62}, {3742728781320999936, 62}, {3801546734502499328, 62}, {3861411517350342656, 62}, {3922218507827185664, 62}, {3983984758130876416, 62}, {4046719261959277568, 62}, {4110440914714118656, 62}, {4175166899960316928, 62}, {4240915818393372672, 62}, {4307700890433856000, 62}, {4375537393996774912, 62}, {4444440519381256192, 62}, {4514428286748193792, 62}, {4585517020253202432, 62}, {1, 0}, }; static constexpr cubic_bits LN_PIECES[] = { {{-1, 0, -1, 0}, {18443908301972098274u, 6702816175689946u, 18440093499146802336u, 2932743555248256u}}, {{-1, 0, -1, 0}, {18443925893576512888u, 6598902050407870u, 18440298109160582894u, 2798447781600453u}}, {{-1, 0, -1, 0}, {18443943485384472976u, 6496597738632057u, 18440496426443444512u, 2670300218629080u}}, {{-1, 0, -1, 0}, {18443961077607361322u, 6395877112315746u, 18440688646756174978u, 2548018001654864u}}, {{-1, 0, -1, 0}, {18443978669768008936u, 6296718376808845u, 18440874952369594045u, 2431335948177251u}}, {{-1, 0, -1, 0}, {18443996261829713520u, 6199097487400432u, 18441055525007911567u, 2319997724151442u}}, {{-1, 0, -1, 0}, {18444013853542956442u, 6102991958776228u, 18441230538596288212u, 2213760104959170u}}, {{-1, 0, -1, 0}, {18444031444343604707u, 6008381231313442u, 18441400159088461309u, 2112392445627398u}}, {{-1, 0, -1, 0}, {18444049035716751220u, 5915234182046262u, 18441564566588385139u, 2015663309066294u}}, {{-1, 0, -1, 0}, {18444066627263858032u, 5823530280496553u, 18441723917573734138u, 1923362638593358u}}, {{-1, 0, -1, 0}, {18444084218681031450u, 5733248730740891u, 18441878364882720166u, 1835289221108488u}}, {{-1, 0, -1, 0}, {18444101810000351626u, 5644367290175836u, 18442028059753738334u, 1751249245381857u}}, {{-1, 0, -1, 0}, {18444119401740508914u, 5556861686444448u, 18442173152630710433u, 1671055687591446u}}, {{-1, 0, -1, 0}, {18444136993802322924u, 5470711132836110u, 18442313784116700244u, 1594532998769844u}}, {{-1, 0, -1, 0}, {18444154586058717858u, 5385895282403436u, 18442450090331950923u, 1521513733289911u}}, {{-1, 0, -1, 0}, {18444172177913790314u, 5302396275677580u, 18442582199860541712u, 1451839830391536u}}, {{-1, 0, -1, 0}, {18444189770068765836u, 5220190380393667u, 18442710247049157594u, 1385355347636562u}}, {{-1, 0, -1, 0}, {18444207362517350324u, 5139257636589619u, 18442834356656345825u, 1321914394276418u}}, {{-1, 0, -1, 0}, {18444224954277919562u, 5059582741403870u, 18442954643148177256u, 1261380950861300u}}, {{-1, 0, -1, 0}, {18444242546585621054u, 4981140641632076u, 18443071232468728346u, 1203617717576853u}}, {{-1, 0, -1, 0}, {18444260139233728508u, 4903913201911836u, 18443184236834286847u, 1148498636528960u}}, {{-1, 0, -1, 0}, {18444277731495236056u, 4827884753625346u, 18443293761955962630u, 1095904839676698u}}, {{-1, 0, -1, 0}, {18444295323653253436u, 4753035455834208u, 18443399916724139822u, 1045719780004222u}}, {{-1, 0, -1, 0}, {18444312915520251892u, 4679347799599038u, 18443502803774421481u, 997833637660618u}}, {{-1, 0, -1, 0}, {18444330507118905403u, 4606803638006819u, 18443602523892973104u, 952140995800961u}}, {{-1, 0, -1, 0}, {18444348098798499647u, 4535383806686399u, 18443699176482985120u, 908540509337560u}}, {{-1, 0, -1, 0}, {18444365690802186734u, 4465069922446031u, 18443792857163039873u, 866935833514327u}}, {{-1, 0, -1, 0}, {18444383283303181995u, 4395844195981628u, 18443883658161213384u, 827235250341964u}}, {{-1, 0, -1, 0}, {18444400875905890311u, 4327691350790731u, 18443971665938000592u, 789352520044356u}}, {{-1, 0, -1, 0}, {18444418468122000332u, 4260596600364568u, 18444056964104315924u, 753205374220216u}}, {{-1, 0, -1, 0}, {18444436060376872292u, 4194541916572725u, 18444139638092877070u, 718713457750850u}}, {{-1, 0, -1, 0}, {18444453634772156604u, 4129576910814324u, 18444219688164772892u, 685833812349549u}}, {{-1, 0, -1, 0}, {18444471208853010856u, 4065619048267772u, 18444297276854270503u, 654458645385111u}}, {{-1, 0, -1, 0}, {18444488800614543681u, 4002588976065972u, 18444372555091836916u, 624489507951345u}}, {{-1, 0, -1, 0}, {18444506392807284692u, 3940534561140602u, 18444445519079116540u, 595892039116521u}}, {{-1, 0, -1, 0}, {18444523984428404318u, 3879444185571210u, 18444516235926311510u, 568605016708974u}}, {{-1, 0, -1, 0}, {18444541575258309441u, 3819303578523064u, 18444584774087429323u, 542568657725584u}}, {{-1, 0, -1, 0}, {18444559166202248617u, 3760094911959016u, 18444651204137332644u, 517724342040392u}}, {{-1, 0, -1, 0}, {18444576757777997580u, 3701802048701965u, 18444715592768917839u, 494016819866914u}}, {{-1, 0, -1, 0}, {18444594350184299596u, 3644410214193310u, 18444778003336274177u, 471393865617574u}}, {{-1, 0, -1, 0}, {18444611942213681360u, 3587909369849100u, 18444838492432683083u, 449807356347051u}}, {{-1, 0, -1, 0}, {18444629534278595910u, 3532284373206096u, 18444897120602854597u, 429209318843230u}}, {{-1, 0, -1, 0}, {18444647125990800818u, 3477522842736075u, 18444953943870706149u, 409554909477606u}}, {{-1, 0, -1, 0}, {18444664717552454583u, 3423610747532533u, 18445009018450036012u, 390800675520858u}}, {{-1, 0, -1, 0}, {18444676722023784826u, 3387316677679140u, 18445045595491697595u, 378513225943980u}}, }; static constexpr table_ref LN_TABLE{LN_KNOTS, LN_PIECES, 45, 50}; static constexpr knot EXP_KNOTS[] = { {0, 0}, {4290940884493763584, 62}, {1, 0}, }; static constexpr cubic_bits EXP_PIECES[] = { {{8191, 1, 0, 0}, {18446744073709543439u, 281520u, 1125899905329622u, 45815586301u}}, {{8191, 1, 0, 0}, {18446744073708339542u, 5026207u, 1125899899028381u, 45818382737u}}, }; static constexpr table_ref EXP_TABLE{EXP_KNOTS, EXP_PIECES, 2, 77}; static constexpr knot SIN_KNOTS[] = { {0, 0}, {172891607431496704, 62}, {307163826656951329, 62}, {427926051276503943, 62}, {540698392453450423, 62}, {647909207092104095, 62}, {750912468439605526, 62}, {850564854681765534, 62}, {947452836074130251, 62}, {1042004956124584808, 62}, {1134542996003965590, 62}, {1225321660939013087, 62}, {1314543392002904157, 62}, {1402376479197929989, 62}, {1488957794810355735, 62}, {1574405584301654302, 62}, {1658818132948172290, 62}, {1742285265183581609, 62}, {1824881249992926161, 62}, {1906673154027989180, 62}, {1987721223008045067, 62}, {2068079215970466016, 62}, {2147795924299131790, 62}, {2226914173460783669, 62}, {2305474673742177150, 62}, {2383512524218050975, 62}, {2461062161829928308, 62}, {2538153857099577576, 62}, {2614816193415651615, 62}, {2691074957562862669, 62}, {2766956710002984427, 62}, {2842482998306303839, 62}, {2917677383980196396, 62}, {2992559683585191842, 62}, {3067149474211549580, 62}, {3141464970720442405, 62}, {3215524191259359277, 62}, {3289342710294582266, 62}, {3362938205853298095, 62}, {3436324827480522756, 62}, {3509517725271142307, 62}, {3582531929466261667, 62}, {3655380688575267677, 62}, {3728077160699245135, 62}, {3800634420678495960, 62}, {3873064913596212960, 62}, {3945380465547868964, 62}, {4017593396860004003, 62}, {4089715422917856396, 62}, {4161758213352557300, 62}, {4233732848072225559, 62}, {4305650374012755815, 62}, {4377521810230928815, 62}, {4449358290058793759, 62}, {4521170517840570523, 62}, {4592969253983532854, 62}, {1, 0}, }; static constexpr cubic_bits SIN_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709027576u, 7074238151570440u, 18446744027612850612u, 18443836359735558447u}}, {{-1, 0, -1, -1}, {18446744073199083808u, 7074276087081057u, 18446743064344590224u, 18443844740775322947u}}, {{-1, 0, -1, -1}, {18446744069210816223u, 7074452419282576u, 18446740448204858930u, 18443857768781723515u}}, {{-1, 0, -1, -1}, {18446744055647727281u, 7074887335872337u, 18446735785494923785u, 18443874482630189159u}}, {{-1, 0, -1, -1}, {18446744023296360594u, 7075711328900388u, 18446728777895348542u, 18443894381861030360u}}, {{-1, 0, -1, -1}, {18446743959846023233u, 7077062246942750u, 18446719180047087881u, 18443917136564647477u}}, {{-1, 0, -1, -1}, {18446743849912120664u, 7079083603677410u, 18446706781806368900u, 18443942504445766955u}}, {{-1, 0, -1, -1}, {18446743675065394435u, 7081923393394453u, 18446691399061723290u, 18443970295250559705u}}, {{-1, 0, -1, -1}, {18446743413862073367u, 7085733256723175u, 18446672867894619088u, 18444000353190674595u}}, {{-1, 0, -1, -1}, {18446743041878677766u, 7090667794175525u, 18446651040924634270u, 18444032546439321810u}}, {{-1, 0, -1, -1}, {18446742531749067990u, 7096884016365992u, 18446625784663104149u, 18444066760789998435u}}, {{-1, 0, -1, -1}, {18446741853199583359u, 7104540923685779u, 18446596977438866240u, 18444102895593917353u}}, {{-1, 0, -1, -1}, {18446740973090024299u, 7113799099142287u, 18446564508003177604u, 18444140860717313402u}}, {{-1, 0, -1, -1}, {18446739855464807286u, 7124820270382387u, 18446528274700551029u, 18444180574089047057u}}, {{-1, 0, -1, -1}, {18446738461607821780u, 7137766928521436u, 18446488184687436501u, 18444221960123098885u}}, {{-1, 0, -1, -1}, {18446736750096106413u, 7152802016766669u, 18446444153192636699u, 18444264948619093430u}}, {{-1, 0, -1, -1}, {18446734676831789266u, 7170088849662512u, 18446396102325600664u, 18444309474454970103u}}, {{-1, 0, -1, -1}, {18446732195099842697u, 7189790803184251u, 18446343960826170633u, 18444355476545409024u}}, {{-1, 0, -1, -1}, {18446729255684292455u, 7212070631099835u, 18446287664752910124u, 18444402896356060695u}}, {{-1, 0, -1, -1}, {18446725806854676498u, 7237090836256666u, 18446227155510804169u, 18444451678882870917u}}, {{-1, 0, -1, -1}, {18446721794444719216u, 7265013296443586u, 18446162380034229509u, 18444501771776423179u}}, {{-1, 0, -1, -1}, {18446717161918461348u, 7295999034827258u, 18446093290598910859u, 18444553124948819892u}}, {{-1, 0, -1, -1}, {18446711850476671822u, 7330207761106869u, 18446019845155770888u, 18444605689902645912u}}, {{-1, 0, -1, -1}, {18446705799095241610u, 7367797907585419u, 18445942006572465872u, 18444659419953125272u}}, {{-1, 0, -1, -1}, {18446698944626778670u, 7408926257682949u, 18445859742841722862u, 18444714269763188208u}}, {{-1, 0, -1, -1}, {18446691221867644151u, 7453747835887406u, 18445773026726648524u, 18444770195343574108u}}, {{-1, 0, -1, -1}, {18446682563598215683u, 7502415938419114u, 18445681835232207904u, 18444827154146754847u}}, {{-1, 0, -1, -1}, {18446672900758299474u, 7555081426799782u, 18445586150468733227u, 18444885104328579858u}}, {{-1, 0, -1, -1}, {18446662162510271008u, 7611892708582223u, 18445485959181061932u, 18444944004904897626u}}, {{-1, 0, -1, -1}, {18446650276180784578u, 7672996329310902u, 18445381251310688034u, 18445003816434729012u}}, {{-1, 0, -1, -1}, {18446637167517829062u, 7738535887609683u, 18445272021567989444u, 18445064499931822327u}}, {{-1, 0, -1, -1}, {18446622760740784543u, 7808652123675811u, 18445158268841384125u, 18445126017123202694u}}, {{-1, 0, -1, -1}, {18446606978529442204u, 7883483245212131u, 18445039995364075572u, 18445188330773094265u}}, {{-1, 0, -1, -1}, {18446589742387151194u, 7963163505656290u, 18444917208629922631u, 18445251403583375626u}}, {{-1, 0, -1, -1}, {18446570972545192038u, 8047824009380189u, 18444789919743773962u, 18445315199007793065u}}, {{-1, 0, -1, -1}, {18446550588070301602u, 8137592515464229u, 18444658143445893232u, 18445379681147922617u}}, {{-1, 0, -1, -1}, {18446528507151036633u, 8232592492030931u, 18444521899203604389u, 18445444814155125157u}}, {{-1, 0, -1, -1}, {18446504646916832030u, 8332944243090304u, 18444381209265852998u, 18445510563124642500u}}, {{-1, 0, -1, -1}, {18446478923697050140u, 8438764069392131u, 18444236099665515090u, 18445576893527356575u}}, {{-1, 0, -1, -1}, {18446451253392676236u, 8550163102881788u, 18444086601492684638u, 18445643770610445667u}}, {{-1, 0, -1, -1}, {18446421550996907195u, 8667249579756110u, 18443932747563544419u, 18445711160856424057u}}, {{-1, 0, -1, -1}, {18446389731228824524u, 8790126579950402u, 18443774575261882793u, 18445779030647530018u}}, {{-1, 0, -1, -1}, {18446355708750727300u, 8918891593359572u, 18443612126753451691u, 18445847346185976409u}}, {{-1, 0, -1, -1}, {18446319397967328154u, 9053637659038312u, 18443445447256869132u, 18445916074213361346u}}, {{-1, 0, -1, -1}, {18446280713288209478u, 9194452698356231u, 18443274585679708662u, 18445985181701751386u}}, {{-1, 0, -1, -1}, {18446239569453764516u, 9341418692507137u, 18443099595364712597u, 18446054635537001497u}}, {{-1, 0, -1, -1}, {18446195881415603922u, 9494612492247647u, 18442920532862434188u, 18446124402999200979u}}, {{-1, 0, -1, -1}, {18446149564469156386u, 9654105668562681u, 18442737457931912361u, 18446194451723850096u}}, {{-1, 0, -1, -1}, {18446100534590999757u, 9819963692038702u, 18442550434284128929u, 18446264749393355620u}}, {{-1, 0, -1, -1}, {18446048708640929153u, 9992245632307531u, 18442359529681878008u, 18446335263694303056u}}, {{-1, 0, -1, -1}, {18445994004580070441u, 10171003833327032u, 18442164816051283249u, 18446405962276520427u}}, {{-1, 0, -1, -1}, {18445936341473648365u, 10356284298672827u, 18441966368830609031u, 18446476812985299385u}}, {{-1, 0, -1, -1}, {18445875639616469699u, 10548126649789389u, 18441764266827327500u, 18446547783894509875u}}, {{-1, 0, -1, -1}, {18445811820898673391u, 10746563340066005u, 18441558592855162538u, 18446618843068850492u}}, {{-1, 0, -1, -1}, {18445744809076283694u, 10951619229799506u, 18441349433942060419u, 18446689958494595218u}}, {{-1, 0, -1, -1}, {18445700829661555329u, 11084414204168886u, 18441215776346400147u, 18446734800543898561u}}, }; static constexpr table_ref SIN_TABLE{SIN_KNOTS, SIN_PIECES, 56, 52}; static constexpr knot TANF_KNOTS[] = { {0, 0}, {114023754894075904, 62}, {227915280093169731, 62}, {341549603974353523, 62}, {454798997135578023, 62}, {567543800109889301, 62}, {679672718088466877, 62}, {791076192634920882, 62}, {901653524479535621, 62}, {1011316352642543105, 62}, {1119981880925405289, 62}, {1227579590001683710, 62}, {1334044449674248900, 62}, {1439320157178626550, 62}, {1543362164998270186, 62}, {1646129366125150163, 62}, {1747590337429577380, 62}, {1847719881207173703, 62}, {1946498800659968278, 62}, {2043912154621255562, 62}, {2139952065924033142, 62}, {2234612986206218641, 62}, {2327893049573681358, 62}, {2419795319052284185, 62}, {2510323317549491080, 62}, {2599486544601166000, 62}, {2687293330364083607, 62}, {2773754931620349412, 62}, {2858885359863551150, 62}, {2942698615054539870, 62}, {3025209961482537907, 62}, {3106435845209017763, 62}, {3186392574519048587, 62}, {3265097539864686824, 62}, {3342570338258680688, 62}, {3418827895630256047, 62}, {3493889274292813876, 62}, {3567773237547636980, 62}, {3640498254374204599, 62}, {3712083058894772027, 62}, {3782547166266651053, 62}, {3851908659182219965, 62}, {3920186378787760328, 62}, {3987398300876546084, 62}, {4053563113417047541, 62}, {4118699148752888535, 62}, {4182824142358182649, 62}, {4245955744565349650, 62}, {4308111271106494265, 62}, {4369307946996888999, 62}, {4429562548373952881, 62}, {4488891876261938154, 62}, {4547312176130402062, 62}, {4604839660134126149, 62}, {1, 0}, }; static constexpr cubic_bits TANF_PIECES[] = { {{0, 0, 0, 0}, {4503599626702977u, 863846876u, 925840883701867u, 11301699822344u}}, {{0, 0, 0, 0}, {4503599241596472u, 44128051815u, 924161196887266u, 33943721401683u}}, {{0, 0, 0, 0}, {4503596407756470u, 212664125066u, 920786491035736u, 56702180216311u}}, {{0, 0, 0, 0}, {4503586951193443u, 592196291352u, 915686067366572u, 79654906364805u}}, {{0, 0, 0, 0}, {4503564495082573u, 1271740624282u, 908814016501928u, 102879559931368u}}, {{0, 0, 0, 0}, {4503520321528716u, 2344921347742u, 900109032235107u, 126454546946836u}}, {{0, 0, 0, 0}, {4503443191169170u, 3911225938319u, 889494691817036u, 150458212139965u}}, {{0, 0, 0, 0}, {4503319125005426u, 6077195456722u, 876879754322561u, 174968738891671u}}, {{0, 0, 0, 0}, {4503131143039876u, 8957689794670u, 862157788176121u, 200065238463489u}}, {{0, 0, 0, 0}, {4502858969167762u, 12677059827022u, 845207328719344u, 225827445863563u}}, {{0, 0, 0, 0}, {4502478702877274u, 17370295565908u, 825891914656152u, 252335816908771u}}, {{0, 0, 0, 0}, {4501962458777330u, 23184158975544u, 804060059862576u, 279671674650990u}}, {{0, 0, 0, 0}, {4501277989004672u, 30278175523394u, 779545580595479u, 307916950765601u}}, {{0, 0, 0, 0}, {4500388249921531u, 38825919672543u, 752166764667392u, 337155256469815u}}, {{0, 0, 0, 0}, {4499250965871480u, 49016008679188u, 721726607689670u, 367471525212287u}}, {{0, 0, 0, 0}, {4497818171774154u, 61053097414445u, 688012827998012u, 398952036969873u}}, {{0, 0, 0, 0}, {4496035694495390u, 75159180856620u, 650796992219283u, 431685204110965u}}, {{0, 0, 0, 0}, {4493842641437885u, 91574607053015u, 609834505909212u, 465761439564635u}}, {{0, 0, 0, 0}, {4491170866068341u, 110559119071516u, 564864432288578u, 501273220101825u}}, {{0, 0, 0, 0}, {4487944369068764u, 132393201036556u, 515608579221750u, 538315696487235u}}, {{0, 0, 0, 0}, {4484078694943533u, 157379257945036u, 461771083292439u, 576986806553672u}}, {{0, 0, 0, 0}, {4479480354379226u, 185842513823789u, 403038548854742u, 617387018354809u}}, {{0, 0, 0, 0}, {4474046096131314u, 218132734736866u, 339078452212667u, 659620274837943u}}, {{0, 0, 0, 0}, {4467662264742456u, 254625239158915u, 269539143219577u, 703793745430171u}}, {{0, 0, 0, 0}, {4460204017724101u, 295722622816191u, 194048435752084u, 750018512721568u}}, {{0, 0, 0, 0}, {4451534572749385u, 341856121718874u, 112213039015509u, 798409635165267u}}, {{0, 0, 0, 0}, {4441504547767847u, 393486413866101u, 23618917060090u, 849085713390870u}}, {{0, 0, -1, 0}, {4429950903468453u, 451106375271243u, 18446671902007360755u, 902170374740038u}}, {{0, 0, -1, 0}, {4416696155702968u, 515242217050709u, 18446568453396151719u, 957791922325914u}}, {{0, 0, -1, 0}, {4401547556189086u, 586454743585918u, 18446456861285097215u, 1016083228293283u}}, {{0, 0, -1, 0}, {4384296024847556u, 665341681781109u, 18446336614205010425u, 1077182491324459u}}, {{0, 0, -1, 0}, {4364715246849314u, 752539080561938u, 18446207174345330601u, 1141233129041555u}}, {{0, 0, -1, 0}, {4342560641845856u, 848723213038882u, 18446067976405069402u, 1208384076383050u}}, {{0, 0, -1, 0}, {4317567863850468u, 954614327336557u, 18445918423933175455u, 1278791226460867u}}, {{0, 0, -1, 0}, {4289452081999565u, 1070976836509741u, 18445757890941357181u, 1352616290616746u}}, {{0, 0, -1, 0}, {4257906876807984u, 1198621208356471u, 18445585720898586650u, 1430027011002087u}}, {{0, 0, -1, 0}, {4222602493975567u, 1338408268264089u, 18445401222636279698u, 1511198694590846u}}, {{0, 0, -1, 0}, {4183184964572152u, 1491249818550510u, 18445203671355940266u, 1596313408804112u}}, {{0, 0, -1, 0}, {4139274637614553u, 1658111560972166u, 18444992306524170904u, 1685560595307204u}}, {{0, 0, -1, 0}, {4090464344783454u, 1840017203502749u, 18444766328454299573u, 1779138170394754u}}, {{0, 0, -1, 0}, {4036318329579396u, 2038049501477204u, 18444524898874986943u, 1877251915487177u}}, {{0, 0, -1, 0}, {3976370756874306u, 2253352866238333u, 18444267139452529002u, 1980115772030970u}}, {{0, 0, -1, 0}, {3910123871930464u, 2487137080355933u, 18443992129094899928u, 2087952590547036u}}, {{0, 0, -1, 0}, {3837046252822514u, 2740680501451064u, 18443698901993433158u, 2200994549318830u}}, {{0, 0, -1, 0}, {3756570618732099u, 3015334617478341u, 18443386444239752321u, 2319484083190005u}}, {{0, 0, -1, 0}, {3668092614261043u, 3312525102226799u, 18443053694533314328u, 2443673235152014u}}, {{0, 0, -1, 0}, {3570968794203378u, 3633755578916538u, 18442699541749740802u, 2573824234895039u}}, {{0, 0, -1, 0}, {3464514430459694u, 3980611795904604u, 18442322822180980989u, 2710210162091560u}}, {{0, 0, -1, 0}, {3348001360155158u, 4354765493077841u, 18441922317231084465u, 2853115413373686u}}, {{0, 0, -1, 0}, {3220655853112308u, 4757978062075115u, 18441496751415187741u, 3002836044455786u}}, {{0, 0, -1, 0}, {3081656167853376u, 5192105064172876u, 18441044789518296460u, 3159680397711270u}}, {{0, 0, -1, 0}, {2930130222473919u, 5659100218179267u, 18440565034415667654u, 3323969474229479u}}, {{0, 0, -1, 0}, {2765153159052641u, 6161019600729996u, 18440056024724905651u, 3496037359035839u}}, {{0, 0, -1, 0}, {2666249529289141u, 6458848170738200u, 18439757074085345771u, 3596063063401024u}}, }; static constexpr table_ref TANF_TABLE{TANF_KNOTS, TANF_PIECES, 54, 52}; static constexpr knot TANG_KNOTS[] = { {0, 0}, {454546903983529984, 62}, {807005248031617280, 62}, {1123137300001759360, 62}, {1417272859172713472, 62}, {1695713349272226816, 62}, {1961917685068849664, 62}, {2218048370503644672, 62}, {2465569194218966016, 62}, {2705562719967907840, 62}, {2938822723782393856, 62}, {3165983926713453056, 62}, {3387522078806606336, 62}, {3603868775586221056, 62}, {3815334665029393408, 62}, {4022220234823206912, 62}, {4224763594232278016, 62}, {4423163663087024128, 62}, {1, 0}, }; static constexpr cubic_bits TANG_PIECES[] = { {{0, -1, 0, -1}, {65533u, 18446596693737404335u, 832426555u, 18446738002998820151u}}, {{0, -1, 0, -1}, {63923867u, 18446596691930648082u, 18279749422u, 18446737945272018688u}}, {{0, -1, 0, -1}, {565913007u, 18446596683483589303u, 65975878144u, 18446737854879340281u}}, {{0, -1, 0, -1}, {2284523673u, 18446596662487444213u, 151733811150u, 18446737737767069579u}}, {{0, -1, 0, -1}, {6417197432u, 18446596622332145510u, 282008083196u, 18446737596648227800u}}, {{0, -1, 0, -1}, {14598964342u, 18446596555776386307u, 462669021832u, 18446737433009680993u}}, {{0, -1, 0, -1}, {28924491186u, 18446596454963936985u, 699323397559u, 18446737247693647980u}}, {{0, -1, 0, -1}, {51971709313u, 18446596311425284575u, 997469954120u, 18446737041154682060u}}, {{0, -1, 0, -1}, {86832359573u, 18446596116039699934u, 1362647721604u, 18446736813555174569u}}, {{0, -1, 0, -1}, {137145158817u, 18446595858999996362u, 1800511058879u, 18446736564844832044u}}, {{0, -1, 0, -1}, {207128301946u, 18446595529789140790u, 2316861186977u, 18446736294819794951u}}, {{0, -1, 0, -1}, {301619783799u, 18446595117127330764u, 2917710089559u, 18446736003140398143u}}, {{0, -1, 0, -1}, {426118949687u, 18446594608925502662u, 3609318344719u, 18446735689350933391u}}, {{0, -1, 0, -1}, {586832539216u, 18446593992232334434u, 4398229402891u, 18446735352894080723u}}, {{0, -1, 0, -1}, {790714355372u, 18446593253210689587u, 5291265196550u, 18446734993133430073u}}, {{0, -1, 0, -1}, {1045534104577u, 18446592377017492828u, 6295631692975u, 18446734609328863387u}}, {{0, -1, 0, -1}, {1359903294806u, 18446591347845749668u, 7418826698892u, 18446734200687869566u}}, {{0, -1, 0, -1}, {1736967613415u, 18446590168410337392u, 8648659981927u, 18446733773192246783u}}, }; static constexpr table_ref TANG_TABLE{TANG_KNOTS, TANG_PIECES, 18, 49}; static constexpr knot SINH_KNOTS[] = { {0, 0}, {1, 0}, }; static constexpr cubic_bits SINH_PIECES[] = { {{0, 0, 0, 0}, {0u, 1125899906842624u, 0u, 2796203u}}, }; static constexpr table_ref SINH_TABLE{SINH_KNOTS, SINH_PIECES, 1, 63}; static constexpr knot COSH_KNOTS[] = { {0, 0}, {4291653368028396544, 62}, {1, 0}, }; static constexpr cubic_bits COSH_PIECES[] = { {{65535, 0, 0, 0}, {18446744073709486080u, 2253530u, 9007199242633102u, 20817259u}}, {{65535, 0, 0, 0}, {18446744073699852771u, 40215880u, 9007199192221886u, 43186880u}}, }; static constexpr table_ref COSH_TABLE{COSH_KNOTS, COSH_PIECES, 2, 80}; static constexpr knot SQRT_KNOTS[] = { {2305843009213693952, 62}, {2310104717354711040, 62}, {2314372998179805195, 62}, {2318647839458522424, 62}, {2322929228941674114, 62}, {2327219333006887582, 62}, {2331515960709628578, 62}, {2335819099738482365, 62}, {2340128737763440373, 62}, {2344444862435935533, 62}, {2348769619482359981, 62}, {2353100838411304813, 62}, {2357438506812565684, 62}, {2361782612257521661, 62}, {2366135283831401912, 62}, {2370494367524374215, 62}, {2374859850846654865, 62}, {2379233850330603371, 62}, {2383614224397324932, 62}, {2388000960496230989, 62}, {2392396162546376945, 62}, {2396797701460957614, 62}, {2401205564628939233, 62}, {2405621843296000101, 62}, {2410044420928218852, 62}, {2414473284854477903, 62}, {2418910513587368601, 62}, {2423354003206287896, 62}, {2427805823698794235, 62}, {2432263879585895442, 62}, {2436730232302536727, 62}, {2441202794839258031, 62}, {2445681554382188855, 62}, {2450168559491314222, 62}, {2454661735914070151, 62}, {2459163123591350657, 62}, {2463672705320401025, 62}, {2468188419662818602, 62}, {2472712293573581905, 62}, {2477242274194352713, 62}, {2481780379791333589, 62}, {2486324566113602015, 62}, {2490876842711695908, 62}, {2495437192189196226, 62}, {2500003583255890157, 62}, {2504578012332395889, 62}, {2509158456805716974, 62}, {2513746904312169270, 62}, {2518343337317685473, 62}, {2522947738257802904, 62}, {2527558101952778055, 62}, {2532176398377675613, 62}, {2536802609884831872, 62}, {2541434744445339634, 62}, {2546074758717530371, 62}, {2550722634971095610, 62}, {2555378355445803438, 62}, {2560041902351566361, 62}, {2564711305715714284, 62}, {2569388499856341347, 62}, {2574073466901648396, 62}, {2578766188950253177, 62}, {2583466648071258732, 62}, {2588174826304321915, 62}, {2592890705659722021, 62}, {2597612347342602668, 62}, {2602341654095175553, 62}, {2607078607847327218, 62}, {2611823190499842149, 62}, {2616575383924471928, 62}, {2621335169964004503, 62}, {2626102530432333555, 62}, {2630877447114527989, 62}, {2635659901766901526, 62}, {2640449876117082406, 62}, {2645247351864083202, 62}, {2650054181445192429, 62}, {2654868475721306695, 62}, {2659690216298875238, 62}, {2664519384756012075, 62}, {2669355962642566387, 62}, {2674199931480193002, 62}, {2679051272762423003, 62}, {2683909967954734419, 62}, {2688777832331517348, 62}, {2693653013451470898, 62}, {2698535492689343821, 62}, {2703425251392115807, 62}, {2708324086075113988, 62}, {2713230162820099738, 62}, {2718143462884249239, 62}, {2723065768634469559, 62}, {2727995260122086281, 62}, {2732931918515170296, 62}, {2737877511966092365, 62}, {2742830234563258522, 62}, {2747791844942813686, 62}, {2752760546587334307, 62}, {2757736320515676781, 62}, {2762720911038734294, 62}, {2767712535789227360, 62}, {2772712929488551448, 62}, {2777720319238501297, 62}, {2782736430141278595, 62}, {2787759498798104749, 62}, {2792791240662456979, 62}, {2797831631699763294, 62}, {2802878922814872993, 62}, {2807934814926975268, 62}, {2812999283886685099, 62}, {2818070594972347007, 62}, {2823150434500927545, 62}, {2828238778209197482, 62}, {2833333905818287234, 62}, {2838437488975591899, 62}, {2843549503305011387, 62}, {2848669924390358880, 62}, {2853797051315523237, 62}, {2858932536060436408, 62}, {2864076354097345687, 62}, {2869228480858879090, 62}, {2874388891738162694, 62}, {2879557562088938160, 62}, {2884734467225680439, 62}, {2889919582423715677, 62}, {2895112882919339290, 62}, {2900314343909934238, 62}, {2905523940554089475, 62}, {2910741647971718591, 62}, {2915967441244178630, 62}, {2921201295414389098, 62}, {2926443185486951149, 62}, {2931693086428266957, 62}, {2936950973166659267, 62}, {2942218412729979034, 62}, {2947493787818077806, 62}, {2952777073238167399, 62}, {2958068243759860352, 62}, {2963368846082037843, 62}, {2968677282917736640, 62}, {2973993528916999517, 62}, {2979319115448051284, 62}, {2984652460316679194, 62}, {2989993538054518501, 62}, {2995343864629271690, 62}, {3000701873011672695, 62}, {3006069068860525536, 62}, {3011443895294828158, 62}, {3016827847633004404, 62}, {3022219379174874309, 62}, {3027619974867217106, 62}, {3033028098223019050, 62}, {3038445223786368270, 62}, {3043871320508712609, 62}, {3049304867280462982, 62}, {3054747322977867052, 62}, {3060198656407966236, 62}, {3065658836327181647, 62}, {3071126362242310473, 62}, {3076602672025067034, 62}, {3082087734289493705, 62}, {3087581517599730351, 62}, {3093083990470194491, 62}, {3098595121365761742, 62}, {3104114878701946552, 62}, {3109643230845083204, 62}, {3115180146112507114, 62}, {3120725592772736394, 62}, {3126279539045653707, 62}, {3131841953102688388, 62}, {3137412803066998847, 62}, {3142993457677379569, 62}, {3148582484281241772, 62}, {3154179850850013771, 62}, {3159785525307585487, 62}, {3165400854824714769, 62}, {3171024427920759184, 62}, {3176656212370205225, 62}, {3182297539080919170, 62}, {3187947012538188266, 62}, {3193605952764415477, 62}, {3199272974929150359, 62}, {3204949388136737009, 62}, {3210633818275192283, 62}, {3216327563498476979, 62}, {3222030585734556111, 62}, {3227741527009849131, 62}, {3233461668986713611, 62}, {3239190973417660815, 62}, {3244929401994291357, 62}, {3250676916347551342, 62}, {3256433478047988915, 62}, {3262197761626356245, 62}, {3267971015530014789, 62}, {3273753201158453373, 62}, {3279545550289635796, 62}, {3285346753749768191, 62}, {3291156772752530327, 62}, {3296975568453010801, 62}, {3302803101947966752, 62}, {3308639334276083953, 62}, {3314485463534528175, 62}, {3320340213513816131, 62}, {3326203545071725514, 62}, {3332076639348917411, 62}, {3337958236733174136, 62}, {3343849507016175902, 62}, {3349749201692533893, 62}, {3355658479171641964, 62}, {3361577294296179849, 62}, {3367504415284444395, 62}, {3373440983404683388, 62}, {3379386953292400579, 62}, {3385342279511716032, 62}, {3391306916555713311, 62}, {3397280818846787217, 62}, {3403263940736992055, 62}, {3409256236508390437, 62}, {3415257660373402616, 62}, {3421268166475156349, 62}, {3427287708887837286, 62}, {3433316241617039882, 62}, {3439354836631853374, 62}, {3445402329752950287, 62}, {3451458674773732514, 62}, {3457524926123657975, 62}, {3463599936742084365, 62}, {3469684749320158507, 62}, {3475779311547384225, 62}, {3481882493557207697, 62}, {3487995320364438075, 62}, {3494117739419480057, 62}, {3500249698090858457, 62}, {3506391143665670644, 62}, {3512542023350039679, 62}, {3518702284269568147, 62}, {3524871873469792668, 62}, {3531050737916639100, 62}, {3537238824496878413, 62}, {3543436080018583250, 62}, {3549643464063951485, 62}, {3555859910415278337, 62}, {3562086366624370966, 62}, {3568321778177435177, 62}, {3574567080561766715, 62}, {3580822214123194441, 62}, {3587087119114358713, 62}, {3593361735695282066, 62}, {3599645038768167242, 62}, {3605937933493699307, 62}, {3612241312921429676, 62}, {3618554163682912470, 62}, {3624876425483785665, 62}, {3631208037940511586, 62}, {3637549869599325226, 62}, {3643900930863977348, 62}, {3650262077972945272, 62}, {3656633244089335452, 62}, {3663013457538567712, 62}, {3669403556027913265, 62}, {3675803472418873017, 62}, {3682213139470658302, 62}, {3688632489840897332, 62}, {3695061456086342716, 62}, {3701500838693742931, 62}, {3707949701971851218, 62}, {3714408833889941852, 62}, {3720877310861303601, 62}, {3727355908303443946, 62}, {3733844551958879447, 62}, {3740343167456006687, 62}, {3746851680309954693, 62}, {3753370015923438642, 62}, {3759898099587614850, 62}, {3766435856482937019, 62}, {3772984011538493294, 62}, {3779541689839119074, 62}, {3786109603569941367, 62}, {3792687671176605416, 62}, {3799275810979882180, 62}, {3805873941176682518, 62}, {3812481979841072903, 62}, {3819099844925292642, 62}, {3825727454260772597, 62}, {3832365468787070991, 62}, {3839013799738208021, 62}, {3845671627674342412, 62}, {3852339594114390146, 62}, {3859017609896030880, 62}, {3865706297155839382, 62}, {3872404855015848694, 62}, {3879113892554091413, 62}, {3885832621410118146, 62}, {3892561637570090820, 62}, {3899300844627500075, 62}, {3906050146031433699, 62}, {3912810111598132704, 62}, {3919579977962789070, 62}, {3926360301727562929, 62}, {3933150979273356914, 62}, {3939951906824668604, 62}, {3946762980451176390, 62}, {3953584096069327696, 62}, {3960415770553707657, 62}, {3967257892974858647, 62}, {3974110352235734686, 62}, {3980973037073505317, 62}, {3987846431011367205, 62}, {3994729827491046880, 62}, {4001623696564320363, 62}, {4008527919710307904, 62}, {4015442946864432052, 62}, {4022368090504914232, 62}, {4029303786993164582, 62}, {4036249910464450948, 62}, {4043206334867386848, 62}, {4050173469476529205, 62}, {4057151181200050332, 62}, {4064139336746918625, 62}, {4071137802629444677, 62}, {4078146953998524135, 62}, {4085166650266756593, 62}, {4092196750638372821, 62}, {4099237602831204853, 62}, {4106289058896712660, 62}, {4113350970666982195, 62}, {4120423658272410816, 62}, {4127506966340703968, 62}, {4134601194263978011, 62}, {4141705731200345546, 62}, {4148821303954581569, 62}, {4155947307978845941, 62}, {4163084007763513571, 62}, {4170231653915524016, 62}, {4177390068933765765, 62}, {4184559075054508773, 62}, {4191738894758917445, 62}, {4198929342893890072, 62}, {4206130620815513509, 62}, {4213342915839827658, 62}, {4220566028194902128, 62}, {4227799757815161425, 62}, {4235044622754616232, 62}, {4242300056213588937, 62}, {4249566541019264365, 62}, {4256843855078864429, 62}, {4264132107439576223, 62}, {4271431392889347200, 62}, {4278741474391634161, 62}, {4286062425116742045, 62}, {4293394303895832739, 62}, {4300737155188048701, 62}, {4308091009047988882, 62}, {4315455881093606839, 62}, {4322831772474601083, 62}, {4330218669841367884, 62}, {4337616806698073828, 62}, {4345025879201046254, 62}, {4352446077552791255, 62}, {4359877322989493428, 62}, {4367319755138079200, 62}, {4374773258747127442, 62}, {4382237922655533701, 62}, {4389713806658514663, 62}, {4397200736881988328, 62}, {4404698919419100061, 62}, {4412208326556118524, 62}, {4419728901281722640, 62}, {4427260733120511574, 62}, {4434803699076359160, 62}, {4442357969653653034, 62}, {4449923502634252287, 62}, {4457500211696216889, 62}, {4465088245961992379, 62}, {4472687548679217232, 62}, {4480298254789424393, 62}, {4487920293027701112, 62}, {4495553629117626603, 62}, {4503198347211197212, 62}, {4510854413522225085, 62}, {4518521853800366501, 62}, {4526200709122728691, 62}, {4533890991555680170, 62}, {4541592706551744887, 62}, {4549305905291665804, 62}, {4557030573606674341, 62}, {4564766699630790717, 62}, {4572514335000318320, 62}, {4580273478199945121, 62}, {4588044125794564928, 62}, {4595826307020241626, 62}, {4603620043245529421, 62}, {4611425344309304348, 62}, {1, 0}, }; static constexpr cubic_bits SQRT_PIECES[] = { {{1, 10, -8, 2}, {14177857292943569235u, 11099520570853611870u, 17316317010329239921u, 15161467667554788542u}}, {{1, 10, -8, 2}, {14207987517591916340u, 10919072713756141294u, 17676547024493911200u, 14921757272130470287u}}, {{1, 10, -8, 2}, {14238136292694405002u, 10738846754665370722u, 18035670524869127077u, 14683223919373517982u}}, {{1, 10, -8, 2}, {14268303480695604880u, 10558843206705123159u, 18393689551734242577u, 14445862594681734824u}}, {{1, 10, -7, 2}, {14298496607886654001u, 10379016967551168072u, 303952561900360977u, 14209608462889654592u}}, {{1, 10, -7, 2}, {14328715530666226981u, 10199368841083286564u, 659948639320237909u, 13974457619957200998u}}, {{1, 10, -7, 2}, {14358952427391403013u, 10019945122166935245u, 1014844797753036020u, 13740465329007405666u}}, {{1, 10, -7, 2}, {14389207161888474083u, 9840746291322504030u, 1368643148740343740u, 13507626587260787054u}}, {{1, 10, -7, 2}, {14419479598325625993u, 9661772821578032498u, 1721345817962736813u, 13275936399398067726u}}, {{1, 10, -7, 2}, {14449777157520927049u, 9482980621392355514u, 2073042524668130157u, 13045332396759828022u}}, {{1, 10, -7, 2}, {14480099697693824156u, 9304370447692377331u, 2423734325558526912u, 12815810651043396914u}}, {{1, 10, -7, 2}, {14510439506439154950u, 9125987500690729276u, 2773335301916303589u, 12587423984410966438u}}, {{1, 10, -7, 2}, {14540796449297096820u, 8947832221941442320u, 3121847644751418128u, 12360167419013894546u}}, {{1, 10, -7, 2}, {14571177862904946196u, 8769861316468831598u, 3469358879495479259u, 12133980494415849102u}}, {{1, 10, -7, 2}, {14601583606931375736u, 8592075504332973803u, 3815870155266478847u, 11908859266145235231u}}, {{1, 10, -7, 2}, {14632006056148506769u, 8414519123342562098u, 4161297886981695481u, 11684854672958415001u}}, {{1, 10, -7, 2}, {14662452484169926508u, 8237149468773604307u, 4505727987591281863u, 11461907647006261716u}}, {{1, 10, -7, 2}, {14692922751747999037u, 8059967233191140473u, 4849161674796029593u, 11240014231726696443u}}, {{1, 10, -7, 2}, {14723409298918721297u, 7883016114982052552u, 5191517080198458167u, 11019223990686841111u}}, {{1, 10, -7, 2}, {14753919336366603212u, 7706253994017476902u, 5532878529556967038u, 10799479219412104033u}}, {{1, 10, -7, 2}, {14784452725923397889u, 7529681535900104817u, 5873247306263965866u, 10580775952194589804u}}, {{1, 10, -7, 2}, {14815001972785931824u, 7353341806272787323u, 6212543228034421199u, 10363162411609447982u}}, {{1, 10, -7, 2}, {14845574224806525384u, 7177193263972176735u, 6550849058417388296u, 10146582227868719222u}}, {{1, 10, -7, 2}, {14876169344891820629u, 7001236548166662165u, 6888166143676293500u, 9931031428935971251u}}, {{1, 10, -7, 2}, {14906779903293757375u, 6825514098395881572u, 7224415957511807294u, 9716556929825824669u}}, {{1, 10, -7, 2}, {14937412985131556029u, 6649984946860157125u, 7559679725939083718u, 9503103667268161817u}}, {{1, 10, -7, 2}, {14968068454382058919u, 6474649706816794872u, 7893958855341928150u, 9290667665591265721u}}, {{1, 10, -7, 2}, {14998746118967283978u, 6299509280140330886u, 8227254254196474930u, 9079245245695292895u}}, {{1, 10, -7, 2}, {15029445843578033713u, 6124564262502267100u, 8559567370772095970u, 8868832426795092664u}}, {{1, 10, -7, 2}, {15060167436977967861u, 5949815536643437279u, 8890899159396211077u, 8659425521711333618u}}, {{1, 10, -7, 2}, {15090910764569940159u, 5775263680883092262u, 9221251108983277380u, 8451020545782803652u}}, {{1, 10, -7, 2}, {15121668547999034972u, 5600949698065893532u, 9550548449619340913u, 8243661480291819934u}}, {{1, 10, -7, 2}, {15152447726373206940u, 5426833935694344064u, 9878868919838081783u, 8037296196286183120u}}, {{1, 10, -7, 2}, {15183248166154482097u, 5252916947380940345u, 10206214062431716555u, 7831920711478116052u}}, {{1, 10, -7, 2}, {15214069678213490454u, 5079199569884051586u, 10532584936205321587u, 7627531329750607246u}}, {{1, 10, -7, 2}, {15244919133105048213u, 4905642969602620863u, 10858056896947263940u, 7424077985859376839u}}, {{1, 10, -7, 2}, {15275789354151438844u, 4732287407335434818u, 11182556842756861187u, 7221603510521888803u}}, {{1, 10, -7, 2}, {15306680153471687498u, 4559133691651247336u, 11506085898918270138u, 7020104196473898568u}}, {{1, 10, -7, 2}, {15337591399296223483u, 4386182333778082664u, 11828645704900322331u, 6819576055219335443u}}, {{1, 10, -7, 2}, {15368522904579892992u, 4213434124321079716u, 12150237425728389711u, 6620015377348444189u}}, {{1, 10, -7, 2}, {15399474538254743700u, 4040889558303164757u, 12470862735616530358u, 6421418176144834692u}}, {{1, 10, -7, 2}, {15430446114110043187u, 3868549408596008706u, 12790522838168759409u, 6223780741136814042u}}, {{1, 10, -7, 2}, {15461444357548907328u, 3696376104288025785u, 13109289834408138265u, 6027055678820063409u}}, {{1, 10, -7, 2}, {15492462242486012889u, 3524408517852114476u, 13427094169607555829u, 5831283107880444726u}}, {{1, 10, -7, 2}, {15523499583953221606u, 3352647395196555416u, 13743937107496998783u, 5636459312836390131u}}, {{1, 10, -7, 2}, {15554556252632719133u, 3181093190959971426u, 14059820408772660202u, 5442580310460985386u}}, {{1, 10, -7, 2}, {15585632064387378744u, 3009746633887137776u, 14374745372881200591u, 5249642386859467143u}}, {{1, 10, -7, 2}, {15616733641250387263u, 2838571037467172003u, 14688781849913455668u, 5057599976055841775u}}, {{1, 10, -7, 2}, {15647860794024924864u, 2667567360355160866u, 15001930329030752660u, 4866450122312867246u}}, {{1, 10, -7, 2}, {15679006625271223171u, 2496773311073987478u, 15314124183511011620u, 4676230738735822931u}}, {{1, 10, -7, 2}, {15710170952498142898u, 2326189583161515913u, 15625364789450617697u, 4486938107245537364u}}, {{1, 10, -7, 2}, {15741360315218037943u, 2155780186562941981u, 15935720243452142580u, 4298528072110523339u}}, {{1, 10, -7, 2}, {15772567880169220057u, 1985582256959276645u, 16245125343420731738u, 4111037485137462334u}}, {{1, 10, -7, 2}, {15803793466094587705u, 1815596462467998754u, 16553581517836087243u, 3924462630432846983u}}, {{1, 10, -7, 2}, {15835043550725074270u, 1645787329888585591u, 16861155570252326487u, 3738760386593423260u}}, {{1, 10, -7, 2}, {15866317947876760897u, 1476155749199971509u, 17167848155617539911u, 3553927753874267120u}}, {{1, 10, -7, 2}, {15897616471791319751u, 1306702600404151048u, 17473659953572733811u, 3369961724739307491u}}, {{1, 10, -7, 2}, {15928932395953175220u, 1137464076811715641u, 17778528084825119410u, 3186897435065114578u}}, {{1, 10, -7, 2}, {15960265541148275550u, 968440804283325813u, 18082454065131621282u, 3004731171010826654u}}, {{1, 10, -7, 2}, {15991622282330131308u, 799598159077354065u, 18385502593223659750u, 2823421480819844205u}}, {{1, 10, -6, 2}, {16023002435451931884u, 630936983298119646u, 240930362947319665u, 2642965338170438010u}}, {{1, 10, -6, 2}, {16054405816891057692u, 462458109373985790u, 542226312416851937u, 2463359710476252278u}}, {{1, 10, -6, 2}, {16085832243448849998u, 294162360116963328u, 842647181447883030u, 2284601559192125793u}}, {{1, 10, -6, 2}, {16117281532350368735u, 126050548782198107u, 1142193806088467717u, 2106687840115779662u}}, {{1, 9, -6, 2}, {16148747106081935521u, 18404901650062088272u, 1440806445642444570u, 1929651403318632324u}}, {{1, 9, -6, 2}, {16180228788272159877u, 18237228084997864520u, 1738486729774507578u, 1753488544361398032u}}, {{1, 9, -6, 2}, {16211732810393949834u, 18069740469559182636u, 2035296505189069611u, 1578160048791674514u}}, {{1, 9, -6, 2}, {16243258991374003090u, 17902439580743799357u, 2331236687651544847u, 1403662861353586224u}}, {{1, 9, -6, 2}, {16274807150560960681u, 17735326186288612405u, 2626308213979431126u, 1229993922518963446u}}, {{1, 9, -6, 2}, {16306377107725099536u, 17568401044728296339u, 2920512041749223527u, 1057150168765055322u}}, {{1, 9, -6, 2}, {16337968683058014080u, 17401664905453800629u, 3213849149005628975u, 885128532848335031u}}, {{1, 9, -6, 2}, {16369581697172287034u, 17235118508770706948u, 3506320533973077914u, 713925944074428746u}}, {{1, 9, -6, 2}, {16401215971101149555u, 17068762585957442756u, 3797927214769528881u, 543539328564200058u}}, {{1, 9, -6, 2}, {16432871326298130871u, 16902597859323348310u, 4088670229122561505u, 373965609516021602u}}, {{1, 9, -6, 2}, {16464547584636697541u, 16736625042266594281u, 4378550634087753252u, 205201707464265644u}}, {{1, 9, -6, 2}, {16496250735140947590u, 16570812610747582155u, 4667625650128090470u, 37211938124547031u}}, {{1, 9, -6, 1}, {16527980595178974489u, 16405161473452927762u, 4955895679491379645u, 18316737879809112439u}}, {{1, 9, -6, 1}, {16559730804015381174u, 16239704683091837881u, 5243305371548986110u, 18150321132887052684u}}, {{1, 9, -6, 1}, {16591501185192473641u, 16074442916665818556u, 5529855864767136291u, 17984702675573264909u}}, {{1, 9, -6, 1}, {16623291562670891989u, 15909376842552644787u, 5815548315535889633u, 17819879411004968993u}}, {{1, 9, -6, 1}, {16655101760829187233u, 15744507120563398817u, 6100383897900998933u, 17655848241187530409u}}, {{1, 9, -6, 1}, {16686931604463388757u, 15579834401999340027u, 6384363803298019903u, 17492606067227169215u}}, {{1, 9, -6, 1}, {16718780918786562530u, 15415359329708604103u, 6667489240288663407u, 17330149789560138732u}}, {{1, 9, -6, 1}, {16750655530742471940u, 15251051625826846845u, 6949814509959310451u, 17168445931663990056u}}, {{1, 9, -6, 1}, {16782555261186505765u, 15086912120315412603u, 7231340200819286969u, 17007491940712618427u}}, {{1, 9, -6, 1}, {16814473918622598733u, 14922972474566951467u, 7512014194033119511u, 16847315308076305585u}}, {{1, 9, -6, 1}, {16846411329921816654u, 14759233296889414270u, 7791837770608446043u, 16687912926365339172u}}, {{1, 9, -6, 1}, {16878373241209100646u, 14595664919987278664u, 8070863820663977996u, 16529252373682984099u}}, {{1, 9, -6, 1}, {16910359475070890399u, 14432268135295754159u, 8349093021887691477u, 16371331071603543409u}}, {{1, 9, -6, 1}, {16942363924383491375u, 14269073922594016485u, 8626474815824862489u, 16214175437157632129u}}, {{1, 9, -6, 1}, {16974392274750298249u, 14106053067118293560u, 8903061055207318485u, 16057753818532232662u}}, {{1, 9, -6, 1}, {17006444350050608464u, 13943206331737658672u, 9178852483078318275u, 15902063619237473820u}}, {{1, 9, -6, 1}, {17038514106336203621u, 13780564191008125022u, 9453799687849320292u, 15747130473022012354u}}, {{1, 9, -6, 1}, {17070607168771230298u, 13618097878381466885u, 9727953501071161670u, 15592923482198528510u}}, {{1, 9, -6, 1}, {17102723362524655420u, 13455808128696777124u, 10001314728545060556u, 15439440034629525213u}}, {{1, 9, -6, 1}, {17134862461070229243u, 13293695913155379539u, 10273883813074371194u, 15286677711518112036u}}, {{1, 9, -6, 1}, {17167024290432915950u, 13131761947814485883u, 10545661602855365922u, 15134633889392736814u}}, {{1, 9, -6, 1}, {17199202911760886395u, 12970035876643531872u, 10816600553133702726u, 14983332939117829632u}}, {{1, 9, -6, 1}, {17231403849662416588u, 12808489670253118511u, 11086749830826252604u, 14832745183070620522u}}, {{1, 9, -6, 1}, {17263626931446494650u, 12647124017555531301u, 11356110342666622099u, 14682867985990744822u}}, {{1, 9, -6, 1}, {17295871933029938867u, 12485939840715662865u, 11624682639301750804u, 14533698901433702629u}}, {{1, 9, -6, 1}, {17328138682574006364u, 12324937810457181117u, 11892467667039959061u, 14385235285381087757u}}, {{1, 9, -6, 1}, {17360426956967054544u, 12164118829532590320u, 12159466018813482482u, 14237474680860626742u}}, {{1, 9, -6, 1}, {17392736585221093977u, 12003483550712118690u, 12425678679398640187u, 14090414436095132117u}}, {{1, 9, -6, 1}, {17425067345195458864u, 11843032857572680467u, 12691106282893669275u, 13944052084593414715u}}, {{1, 9, -6, 1}, {17457424616303029566u, 11682739914184357105u, 12955795179719223888u, 13798360036617703312u}}, {{1, 9, -6, 1}, {17489802643466324655u, 11522633086057744533u, 13219700489687068714u, 13653360969692036013u}}, {{1, 9, -6, 1}, {17522201205989304418u, 11362713227922658213u, 13482822909281248642u, 13509052401907472538u}}, {{1, 9, -6, 1}, {17554625623292935995u, 11202953926895558149u, 13745207863181007362u, 13365407404075846872u}}, {{1, 9, -6, 1}, {17587070203033519437u, 11043383068686100224u, 14006811521243263750u, 13222447960781527942u}}, {{1, 9, -6, 1}, {17619534725958758324u, 10884001479708084871u, 14267634639832448246u, 13080171576953880684u}}, {{1, 9, -6, 1}, {17652024451576108934u, 10724783166102193659u, 14527721732304307254u, 12938551970349433803u}}, {{1, 9, -6, 1}, {17684533750191842094u, 10565755538871735647u, 14787029999115539644u, 12797610450756478505u}}, {{1, 9, -6, 1}, {17717062403996125738u, 10406919396642541197u, 15045560254062324293u, 12657344512107111572u}}, {{1, 9, -6, 1}, {17749615612663998575u, 10248249160572813338u, 15303356113432423843u, 12517728505724755586u}}, {{1, 9, -6, 1}, {17782193154731985680u, 10089745782610317307u, 15560417907329777499u, 12378760332208008579u}}, {{1, 9, -6, 1}, {17814789483903643955u, 9931436048336338462u, 15816704182309046492u, 12240460427282444541u}}, {{1, 9, -6, 1}, {17847404384283640439u, 9773320719802334802u, 16072215826720368635u, 12102826271611068324u}}, {{1, 9, -6, 1}, {17880042975889275529u, 9615374765031302408u, 16326995284214385498u, 11965833039134058621u}}, {{1, 9, -6, 1}, {17912705039244521776u, 9457599095882397482u, 16581042973074035139u, 11829478603643208841u}}, {{1, 9, -6, 1}, {17945390355364910901u, 9299994614107148385u, 16834359334123504590u, 11693760831560822127u}}, {{1, 9, -6, 1}, {17978098705757477845u, 9142562211410168793u, 17086944830440153887u, 11558677582203519561u}}, {{1, 9, -6, 1}, {18010829872420688464u, 8985302769509790478u, 17338799947068482972u, 11424226708042669017u}}, {{1, 9, -6, 1}, {18043583637844351100u, 8828217160198611415u, 17589925190736142783u, 11290406054961457235u}}, {{1, 9, -6, 1}, {18076359785009512208u, 8671306245403955037u, 17840321089571991461u, 11157213462508627840u}}, {{1, 9, -6, 1}, {18109158097388336255u, 8514570877248236487u, 18089988192826196311u, 11024646764148908223u}}, {{1, 9, -6, 1}, {18141978358943970073u, 8358011898109231831u, 18338927070592381804u, 10892703787510148318u}}, {{1, 9, -5, 1}, {18174820354130391885u, 8201630140680246252u, 140394239822271979u, 10761382354627194510u}}, {{1, 9, -5, 1}, {18207683867892245179u, 8045426428030177327u, 387878458890136621u, 10630680282182521996u}}, {{1, 9, -5, 1}, {18240568685664657630u, 7889401573663469561u, 634636285063766305u, 10500595381743649091u}}, {{1, 9, -5, 1}, {18273474593373045275u, 7733556381579956425u, 880668369073007725u, 10371125459997357073u}}, {{1, 9, -5, 1}, {18306401377432902113u, 7577891646334586222u, 1125975381132583793u, 10242268318980739278u}}, {{1, 9, -5, 1}, {18339348824749575339u, 7422408153097028166u, 1370558010676506717u, 10114021756309103280u}}, {{1, 9, -5, 1}, {18372321703625714804u, 7267083231721849882u, 1614453754190402854u, 9986364324529471343u}}, {{1, 9, -5, 1}, {18405319797675646810u, 7111917801733970826u, 1857662890725006004u, 9859294156022028294u}}, {{1, 9, -5, 1}, {18438337900689245577u, 6956936165023881947u, 2100149170833760100u, 9732828412189369837u}}, {{2, 9, -5, 1}, {24631727803947500u, 6802139068910060222u, 2341913362551122648u, 9606964870661739420u}}, {{2, 9, -5, 1}, {57694116000108100u, 6647504350068727092u, 2582991929156178890u, 9481682779046745577u}}, {{2, 9, -5, 1}, {90780777195733437u, 6493032886958528966u, 2823385240124505478u, 9356980238503917615u}}, {{2, 9, -5, 1}, {123886588036045574u, 6338748397507558440u, 3063058238680095364u, 9232873673838129243u}}, {{2, 9, -5, 1}, {157016179108522171u, 6184629094091911835u, 3302046628258401247u, 9109342840461418874u}}, {{2, 9, -5, 1}, {190169337545062416u, 6030675824808820232u, 3540350844214286790u, 8986385817683559464u}}, {{2, 9, -5, 1}, {223341002038779247u, 5876911874859427481u, 3777936705672663375u, 8864018494037129644u}}, {{2, 9, -5, 1}, {256535744279532501u, 5723315828748121012u, 4014839168036557075u, 8742221122360542589u}}, {{2, 9, -5, 1}, {289753352902030063u, 5569888504765320044u, 4251058730035921372u, 8620991762314946046u}}, {{2, 9, -5, 1}, {322993567832878911u, 5416630925411611726u, 4486595602103404698u, 8500328615300359896u}}, {{2, 9, -5, 1}, {356256178702833816u, 5263543889137542326u, 4721450325164778965u, 8380229727714625943u}}, {{2, 9, -5, 1}, {389540926546774658u, 5110628397560703764u, 4955623153940362491u, 8260693286459548998u}}, {{2, 9, -5, 1}, {422847601990879965u, 4957885229537386259u, 5189114670452330108u, 8141717325627898366u}}, {{2, 9, -5, 1}, {456175947178755114u, 4805315366048335874u, 5421925172601653382u, 8023300018585924069u}}, {{2, 9, -5, 1}, {489525753731249169u, 4652919566600484009u, 5654055282423278957u, 7905439388054919775u}}, {{2, 9, -5, 1}, {522896764900991159u, 4500698791783273743u, 5885505339907459718u, 7788133594803734938u}}, {{2, 9, -5, 1}, {556293372164873610u, 4348632857399492274u, 6116307741330559876u, 7671364607313027188u}}, {{2, 9, -5, 1}, {589710737114763702u, 4196743636198727145u, 6346430998210516836u, 7555146748095515786u}}, {{2, 9, -5, 1}, {623148604654120519u, 4045032058268491596u, 6575875513484618521u, 7439478158868924972u}}, {{2, 9, -5, 1}, {656611307694281291u, 3893478294221324596u, 6804672993991682324u, 7324341253823240540u}}, {{2, 9, -5, 1}, {690098588366526141u, 3742083387746683826u, 7032823506482653962u, 7209734440741886985u}}, {{2, 9, -5, 1}, {723605690546615263u, 3590868659219361760u, 7260296645630888723u, 7095671398544788424u}}, {{2, 9, -5, 1}, {757132361332107874u, 3439834998666601230u, 7487092895729034367u, 6982150245547046820u}}, {{2, 9, -5, 1}, {790682855652457256u, 3288963044317712584u, 7713243062116805437u, 6869153974988871993u}}, {{2, 9, -5, 1}, {824256917905509987u, 3138253796877043982u, 7938747303010498921u, 6756680962115792762u}}, {{2, 9, -5, 1}, {857854293049671774u, 2987708246287472748u, 8163605799639269410u, 6644729573785159365u}}, {{2, 9, -5, 1}, {891474726604099573u, 2837327371793411147u, 8387818755962106152u, 6533298168713425674u}}, {{2, 9, -5, 1}, {925117964648872041u, 2687112142003772764u, 8611386398386693869u, 6422385097720415398u}}, {{2, 9, -5, 1}, {958783753825138620u, 2537063514954894125u, 8834308975490161915u, 6311988703970589604u}}, {{2, 9, -5, 1}, {992471841335247478u, 2387182438173406325u, 9056586757741725955u, 6202107323211333156u}}, {{2, 9, -5, 1}, {1026181974942852579u, 2237469848739051472u, 9278220037227225967u, 6092739284008277840u}}, {{2, 9, -5, 1}, {1059913902973000125u, 2087926673347438880u, 9499209127375563992u, 5983882907977680224u}}, {{2, 9, -5, 1}, {1093667374312194629u, 1938553828372736024u, 9719554362687044690u, 5875536510015872466u}}, {{2, 9, -5, 1}, {1127442138408444866u, 1789352219930289355u, 9939256098463621397u, 5767698398525804503u}}, {{2, 9, -5, 1}, {1161242184913217755u, 1640304062215734884u, 10158342150494932896u, 5660353440924566632u}}, {{2, 9, -5, 1}, {1195067260784518104u, 1491410361921612412u, 10376812583379489748u, 5553500170818138465u}}, {{2, 9, -5, 1}, {1228912865954896610u, 1342690754414061759u, 10594640220123834131u, 5447150406623884567u}}, {{2, 9, -5, 1}, {1262778752096910524u, 1194146104728285465u, 10811825499703429555u, 5341302429905851775u}}, {{2, 9, -5, 1}, {1296668831602444745u, 1045759066253820364u, 11028395426173052873u, 5235941612019157652u}}, {{2, 9, -5, 1}, {1330582853725696991u, 897530601882614344u, 11244350156787976876u, 5131066451914285780u}}, {{2, 9, -5, 1}, {1364516400336077589u, 749479824539474138u, 11459663494550860368u, 5026688210127803345u}}, {{2, 9, -5, 1}, {1398473325958931038u, 601589713217677404u, 11674361846406432237u, 4922792626385678861u}}, {{2, 9, -5, 1}, {1432453381566127338u, 453861198478862808u, 11888445436899636709u, 4819378175426247005u}}, {{2, 9, -5, 1}, {1466456271369436923u, 306295395392742719u, 12101914245193978784u, 4716443445892253029u}}, {{2, 9, -5, 1}, {1500481747479286413u, 158893213082085779u, 12314768540275516735u, 4613986896605915929u}}, {{2, 9, -5, 1}, {1534529515354310276u, 11655744253070273u, 12527008347455242386u, 4512007099369062439u}}, {{2, 8, -5, 1}, {1568599328243948518u, 18311327950556340452u, 12738633979052832468u, 4410502498022635171u}}, {{2, 8, -5, 1}, {1602690892855336319u, 18164422755172471880u, 12949645505414638643u, 4309471648463951597u}}, {{2, 8, -5, 1}, {1636807925563335300u, 18017668068887553504u, 13160067681220583074u, 4208901327150213396u}}, {{2, 8, -5, 1}, {1670946188742958801u, 17871081965299849411u, 13369876134380704040u, 4108801814089748531u}}, {{2, 8, -5, 1}, {1705105390961755157u, 17724665482047875096u, 13579071002100241978u, 4009171641708133904u}}, {{2, 8, -5, 1}, {1739289190991399037u, 17578402768781592351u, 13787676482546934880u, 3909997921616682696u}}, {{2, 8, -5, 1}, {1773497295330012366u, 17432294949289688823u, 13995692468978087639u, 3811279371596983039u}}, {{2, 8, -5, 1}, {1807729411105114267u, 17286343135689689996u, 14203118879245769900u, 3713014699555214792u}}, {{2, 8, -5, 1}, {1841985246074194453u, 17140548428493743391u, 14409955655507412017u, 3615202603770044806u}}, {{2, 8, -5, 1}, {1876260684919962454u, 16994928149835865208u, 14616179791849580846u, 3517852609325793562u}}, {{2, 8, -5, 1}, {1910555439912998640u, 16849483272601873320u, 14821791554486313598u, 3420963205250451459u}}, {{2, 8, -5, 1}, {1944873054797603814u, 16704198562254021396u, 15026814056592965575u, 3324522151120777290u}}, {{2, 8, -5, 1}, {1979217004448373745u, 16559059176532703560u, 15231269710302895776u, 3228517611371519217u}}, {{2, 8, -5, 1}, {2013586996609061957u, 16414066261821856449u, 15435158303534289206u, 3132948426848939960u}}, {{2, 8, -5, 1}, {2047978968070203642u, 16269236814478089228u, 15638457413335756022u, 3037823818371546568u}}, {{2, 8, -5, 1}, {2082392631012581238u, 16124571855630675129u, 15841167144012537446u, 2943142423553594227u}}, {{2, 8, -5, 1}, {2116827698250530142u, 15980072395330008911u, 16043287621924258015u, 2848902872263299146u}}, {{2, 8, -5, 1}, {2151283883232266530u, 15835739432613356890u, 16244818995211638159u, 2755103786845588448u}}, {{2, 8, -5, 1}, {2185764546494942477u, 15691558719149966521u, 16445782654911593945u, 2661733929914817783u}}, {{2, 8, -5, 1}, {2220269399661425435u, 15547531330134204353u, 16646178537190623483u, 2568792082483124889u}}, {{2, 8, -5, 1}, {2254794501742563136u, 15403673531561128351u, 16845985514798286344u, 2476286766176984527u}}, {{2, 8, -5, 1}, {2289343156198760834u, 15259971367628333958u, 17045224481043825397u, 2384207032807298264u}}, {{2, 8, -5, 1}, {2323915076584928689u, 15116425878603392793u, 17243895443493596584u, 2292551635609933588u}}, {{2, 8, -5, 1}, {2358509931145848012u, 14973038275235884479u, 17441998193402026927u, 2201319423794194816u}}, {{2, 8, -5, 1}, {2393127434718088594u, 14829809574685095806u, 17639532785266045899u, 2110509132545182146u}}, {{2, 8, -5, 1}, {2427767256934034929u, 14686740963751089241u, 17836499058714810954u, 2020119592297272153u}}, {{2, 8, -5, 1}, {2462432603294326715u, 14543819060932112967u, 18032916856253586733u, 1930140483842324437u}}, {{2, 8, -5, 1}, {2497119672083538431u, 14401059391557250533u, 18228766265920262712u, 1840579717377516360u}}, {{2, 8, -5, 1}, {2531828135004552749u, 14258463106785428643u, 18424047198852602190u, 1751436095909818120u}}, {{2, 8, -4, 1}, {2566561140688236798u, 14116017107809181621u, 172034954876266109u, 1662699567249458653u}}, {{2, 8, -4, 1}, {2601318359321545568u, 13973722612736221992u, 366217408096129696u, 1574369071187683507u}}, {{2, 8, -4, 1}, {2636099461791125303u, 13831580827226400855u, 559850237061671643u, 1486443536926741275u}}, {{2, 8, -4, 1}, {2670904119684265676u, 13689592944560410187u, 752933219310962481u, 1398921883325192109u}}, {{2, 8, -4, 1}, {2705732005289816447u, 13547760145708558895u, 945466157368570361u, 1311803019140499317u}}, {{2, 8, -4, 1}, {2740582791599068992u, 13406083599399614389u, 1137448878454706414u, 1225085843268913729u}}, {{2, 8, -4, 1}, {2775456152306603114u, 13264564462189701612u, 1328881234196070034u, 1138769244982660835u}}, {{2, 8, -4, 1}, {2810351761811099497u, 13123203878531251566u, 1519763100338405478u, 1052852104164441112u}}, {{2, 8, -4, 1}, {2845269295216118226u, 12982002980841991509u, 1710094376460780697u, 967333291539254325u}}, {{2, 8, -4, 1}, {2880208428330843721u, 12840962889573969121u, 1899874985691598773u, 882211668903558899u}}, {{2, 8, -4, 1}, {2915172072749951596u, 12700071686591477191u, 2089122359279950160u, 797478266437616320u}}, {{2, 8, -4, 1}, {2950159902957237116u, 12559330552040968524u, 2277836257656850791u, 713132065555469439u}}, {{2, 8, -4, 1}, {2985168353063434215u, 12418753651396777778u, 2465999091442218672u, 629179779398743790u}}, {{2, 8, -4, 1}, {3020200278237621616u, 12278329333710310011u, 2653627865611470554u, 545612673643460328u}}, {{2, 8, -4, 1}, {3055255355111429692u, 12138058741652384882u, 2840722415847579957u, 462429699196908620u}}, {{2, 8, -4, 1}, {3090333216158573062u, 11997943177623330090u, 3027282382900809279u, 379629890299615799u}}, {{2, 8, -4, 1}, {3125436657536157930u, 11857971335481641092u, 3213324152960337019u, 297204872715817179u}}, {{2, 8, -4, 1}, {3160562211982960735u, 11718156896381265368u, 3398830879678106992u, 215161009688800434u}}, {{2, 8, -4, 1}, {3195709514253622168u, 11578501124344362338u, 3583802280079537900u, 133497304579099268u}}, {{2, 8, -4, 1}, {3230881304237674135u, 11438992973114936416u, 3768254334437862614u, 52205603656952338u}}, {{2, 8, -4, 0}, {3266077215636778544u, 11299633759130196860u, 3952186617466853886u, 18418029088270312494u}}, {{2, 8, -4, 0}, {3301296882923273373u, 11160424785555632068u, 4135598730628936629u, 18337478707311420485u}}, {{2, 8, -4, 0}, {3336539941341571843u, 11021367342356733496u, 4318490301833423812u, 18257297619720727324u}}, {{2, 8, -4, 0}, {3371806026909518280u, 10882462706370851547u, 4500860985136355095u, 18177484899892663336u}}, {{2, 8, -4, 0}, {3407094776419701128u, 10743712141379173721u, 4682710460441954489u, 18098039611626534911u}}, {{2, 8, -4, 0}, {3442405827440723587u, 10605116898178815425u, 4864038433205722632u, 18018960808365246460u}}, {{2, 8, -4, 0}, {3477738818318432339u, 10466678214655014023u, 5044844634139178727u, 17940247533431406852u}}, {{2, 8, -4, 0}, {3513093388177104819u, 10328397315853416804u, 5225128818916266580u, 17861898820260828424u}}, {{2, 8, -4, 0}, {3548472061774616764u, 10190264158585507351u, 5404905405885809348u, 17783907346942600577u}}, {{2, 8, -4, 0}, {3583874477357399117u, 10052280014246195934u, 5584174025509567721u, 17706272238366473448u}}, {{2, 8, -4, 0}, {3619300229837804273u, 9914446306247806411u, 5762934128481894633u, 17628992693919697801u}}, {{2, 8, -4, 0}, {3654748959029483117u, 9776764279240296928u, 5941185398320027191u, 17552067816261635025u}}, {{2, 8, -4, 0}, {3690220261515154278u, 9639235329161412327u, 6118927339877061760u, 17475496782075245001u}}, {{2, 8, -4, 0}, {3725716566627448349u, 9501849891559386970u, 6296173589496797091u, 17399272699050893954u}}, {{2, 8, -4, 0}, {3761237470266685951u, 9364609403937359340u, 6472923539634332283u, 17323394826096679969u}}, {{2, 8, -4, 0}, {3796782569172658555u, 9227515289565337324u, 6649176611238040433u, 17247862409682279327u}}, {{2, 8, -4, 0}, {3832348731053838222u, 9090579460383235165u, 6824918784018516482u, 17172680442071701750u}}, {{2, 8, -4, 0}, {3867935556643808527u, 8953803244497536488u, 7000149695088454728u, 17097848045469860871u}}, {{2, 8, -4, 0}, {3903548073632871678u, 8817167158961741892u, 7174895578671357061u, 17023353015866616342u}}, {{2, 8, -4, 0}, {3939185879898711923u, 8680672636846622069u, 7349155808531562122u, 16949194651367255235u}}, {{2, 8, -4, 0}, {3974845878002639876u, 8544331392008156188u, 7522916683399351710u, 16875377796936563235u}}, {{2, 8, -4, 0}, {4010527669761275283u, 8408144763895154359u, 7696177788638737672u, 16801901629671830988u}}, {{2, 8, -4, 0}, {4046233471752651916u, 8272104126381049952u, 7868951365773428636u, 16728759973156457779u}}, {{2, 8, -4, 0}, {4081962885292096408u, 8136210854896350870u, 8041236902605679415u, 16655952076091423608u}}, {{2, 8, -4, 0}, {4117715469123557070u, 8000466470012892927u, 8213033720147556212u, 16583477254426813815u}}, {{2, 8, -4, 0}, {4153493382282598825u, 7864862638047019882u, 8384353583443594105u, 16511329590028267318u}}, {{2, 8, -4, 0}, {4189293646449266425u, 7729410502802809884u, 8555183638224602238u, 16439513541600244546u}}, {{2, 8, -4, 0}, {4225115823075744427u, 7594111541081921698u, 8725523290774221919u, 16368028388683526389u}}, {{2, 8, -4, 0}, {4260962015920299623u, 7458957645348193603u, 8895383987212688606u, 16296868373429871664u}}, {{2, 8, -4, 0}, {4296831786152942748u, 7323950323511244226u, 9064765048545577663u, 16226032838543823071u}}, {{2, 8, -4, 0}, {4332724695859826205u, 7189091068540908673u, 9233665824950644835u, 16155521114095426763u}}, {{2, 8, -4, 0}, {4368640308045691972u, 7054381358545172302u, 9402085695457726003u, 16085332517773712952u}}, {{2, 8, -4, 0}, {4404580607759931489u, 6919813598245399912u, 9570035365177131644u, 16015461658513862563u}}, {{2, 8, -4, 0}, {4440545157806470567u, 6785389293792843675u, 9737514136042444342u, 15945907911401836359u}}, {{2, 8, -4, 0}, {4476533478970870890u, 6651110091321587362u, 9904521153032502603u, 15876670713256829622u}}, {{2, 8, -4, 0}, {4512545135908137070u, 6516977466448528834u, 10071055777796064995u, 15807749412987058217u}}, {{2, 8, -4, 0}, {4548579651357247860u, 6382993034116318625u, 10237117215908142231u, 15739143420918301977u}}, {{2, 8, -4, 0}, {4584638916788296205u, 6249149616302519932u, 10402715549063430522u, 15670847666946966129u}}, {{2, 8, -4, 0}, {4620722454939031622u, 6115448851803620375u, 10567849915928962897u, 15602861612020859721u}}, {{2, 8, -4, 0}, {4656829789531020273u, 5981892363443255260u, 10732519486361019059u, 15535184703233691594u}}, {{2, 8, -4, 0}, {4692960445272859541u, 5848481758152510036u, 10896723461071424616u, 15467816374089378719u}}, {{2, 8, -4, 0}, {4729113947863320127u, 5715218627050587941u, 11060461071295204696u, 15400756044763822281u}}, {{2, 8, -4, 0}, {4765289823994416421u, 5582104545525827404u, 11223731578459622300u, 15334003122364149028u}}, {{2, 8, -4, 0}, {4801489811099712026u, 5449132962244090949u, 11386544197999098073u, 15267552953688477635u}}, {{2, 8, -4, 0}, {4837713436000284944u, 5316305472783884827u, 11548898133423182875u, 15201404990472570821u}}, {{2, 8, -4, 0}, {4873960184102554450u, 5183623807472575055u, 11710792440665384330u, 15135558741234776565u}}, {{2, 8, -4, 0}, {4910231736450974545u, 5051081670847827052u, 11872235950797491124u, 15070009749543826711u}}, {{2, 8, -4, 0}, {4946527578738461828u, 4918680810233618788u, 12033227669473459706u, 15004757563579691603u}}, {{2, 8, -4, 0}, {4982847197713324366u, 4786422956058721599u, 12193766635093752877u, 14939801716843392267u}}, {{2, 8, -4, 0}, {5019190081183218923u, 4654309821939634919u, 12353851918459931937u, 14875141728428837531u}}, {{2, 8, -4, 0}, {5055555718019024301u, 4522343104763979104u, 12513482622430507625u, 14810777103292147612u}}, {{2, 8, -4, 0}, {5091943598158631640u, 4390524484774328728u, 12672657881578085609u, 14746707332518458448u}}, {{2, 8, -4, 0}, {5128355249936484773u, 4258848263348390326u, 12831385730256381123u, 14682928332714600693u}}, {{2, 8, -4, 0}, {5164792181910201327u, 4127308853732807291u, 12989674015530521035u, 14619436120342236462u}}, {{2, 8, -4, 0}, {5201251842749955564u, 3995915325218376636u, 13147512944895889634u, 14556233792134002501u}}, {{2, 8, -4, 0}, {5237733683013064063u, 3864669484590668063u, 13304901504174674292u, 14493320911564155847u}}, {{2, 8, -4, 0}, {5274239157125862086u, 3733565937850772558u, 13461847300518678636u, 14430693604924827844u}}, {{2, 8, -4, 0}, {5310769657995864576u, 3602599545578029100u, 13618357592284392833u, 14368348158725932658u}}, {{2, 8, -4, 0}, {5347324636285441082u, 3471772151060144594u, 13774431266290007810u, 14306284208357207425u}}, {{2, 8, -4, 0}, {5383903502040117957u, 3341085724919555693u, 13930067075454076353u, 14244501438628103761u}}, {{2, 8, -4, 0}, {5420505708203715132u, 3210542074277009320u, 14085263976008714391u, 14182999453584420710u}}, {{2, 8, -4, 0}, {5457130667207769468u, 3080143133002150297u, 14240020790935999347u, 14121777906537746497u}}, {{2, 8, -4, 0}, {5493779680587921194u, 2949884114984689914u, 14394344307686338125u, 14060833307705438826u}}, {{2, 8, -4, 0}, {5530452161619214117u, 2819766959117087856u, 14548233326420980297u, 14000165332804722026u}}, {{2, 8, -4, 0}, {5567149332935231554u, 2689787185877138238u, 14701694233176764347u, 13939770672287862305u}}, {{2, 8, -4, 0}, {5603870608699642284u, 2559946737393745910u, 14854725809659553357u, 13879649021469262906u}}, {{2, 8, -4, 0}, {5640615362861262238u, 2430247679618010096u, 15007326709805302915u, 13819800121963767989u}}, {{2, 8, -4, 0}, {5677384762997560437u, 2300685751369242502u, 15159503023789741473u, 13760220805383362465u}}, {{2, 8, -4, 0}, {5714178184112493840u, 2171263019016259208u, 15311253393155744739u, 13700910829336788813u}}, {{2, 8, -4, 0}, {5750995002484252977u, 2041981529266489525u, 15462576496827525164u, 13641869934422729254u}}, {{2, 8, -4, 0}, {5787834595671808590u, 1912843309256231906u, 15613471050729347177u, 13583097844525518577u}}, {{2, 8, -4, 0}, {5824698017351270166u, 1783844510004715573u, 15763942634007070217u, 13524591614705258878u}}, {{2, 8, -4, 0}, {5861586302048350973u, 1654981376596645884u, 15913996680976899197u, 13466348373181160380u}}, {{2, 8, -4, 0}, {5898498787270434545u, 1526256091124682915u, 16063631699018922785u, 13408367945270956858u}}, {{2, 8, -4, 0}, {5935434811869587746u, 1397670815047904097u, 16212846234642706207u, 13350650138372573336u}}, {{2, 8, -4, 0}, {5972395314813413056u, 1269222137101167184u, 16361645300296456548u, 13293192262227796546u}}, {{2, 8, -4, 0}, {6009379636309506562u, 1140912212754906957u, 16510027444049899357u, 13235994131929015993u}}, {{2, 8, -4, 0}, {6046387077005082679u, 1012743315424263807u, 16657991096489970456u, 13179055603648501558u}}, {{2, 8, -4, 0}, {6083418521609150756u, 884712232301527606u, 16805541018373699703u, 13122374102007878044u}}, {{2, 8, -4, 0}, {6120474795083161864u, 756815976210282652u, 16952681685020550307u, 13065947174112529115u}}, {{2, 8, -4, 0}, {6157555199741252340u, 629056823566884587u, 17099411503231880644u, 13009774702261764199u}}, {{2, 8, -4, 0}, {6194658998588032850u, 501437166307280266u, 17245728766691160106u, 12953856607578369539u}}, {{2, 8, -4, 0}, {6231786962658626335u, 373954207655990133u, 17391637716658374626u, 12898190541729246626u}}, {{2, 8, -4, 0}, {6268938356693883735u, 246610327050853534u, 17537136661832776974u, 12842776425865643128u}}, {{2, 8, -4, 0}, {6306113874856181815u, 119402998928774664u, 17682229517981284731u, 12787612047584698151u}}, {{2, 7, -4, 0}, {6343314192645726116u, 18439073852941804671u, 17826920084419941459u, 12732695250661092809u}}, {{2, 7, -4, 0}, {6380538536399475308u, 18312137250237899602u, 17971206515197799723u, 12678026026726219285u}}, {{2, 7, -4, 0}, {6417786134019475306u, 18185339749619823479u, 18115087008382376115u, 12623604347087098332u}}, {{2, 7, -4, 0}, {6455057567109451334u, 18058679221131458744u, 18258565003236996352u, 12569428201890710015u}}, {{2, 7, -4, 0}, {6492353398771827729u, 17932153612516339337u, 18401643830863044214u, 12515495632659918894u}}, {{2, 7, -3, 0}, {6529672819043299933u, 17805765530115091486u, 97577476734246396u, 12461806672471594826u}}, {{2, 7, -3, 0}, {6567016314938101346u, 17679513179712524522u, 239857121094721577u, 12408359483494013938u}}, {{2, 7, -3, 0}, {6604384355100738857u, 17553394841669305421u, 381741621679472940u, 12355152275362238646u}}, {{2, 7, -3, 0}, {6641776092139611766u, 17427413236818986680u, 523228912460447020u, 12302185135332364142u}}, {{2, 7, -3, 0}, {6679191918964687553u, 17301566897698263274u, 664321638560128721u, 12249456387067081785u}}, {{2, 7, -3, 0}, {6716632210251059485u, 17175854428344759423u, 805022350289102147u, 12196964397962017546u}}, {{2, 7, -3, 0}, {6754097282403298012u, 17050274635420853990u, 945333360189269248u, 12144707631008275023u}}, {{2, 7, -3, 0}, {6791586251812127861u, 16924830346595761903u, 1085252486447159151u, 12092686226443909269u}}, {{2, 7, -3, 0}, {6829099359683152828u, 16799520612278601355u, 1224781772199712731u, 12040898752046164235u}}, {{2, 7, -3, 0}, {6866636869130653515u, 16674344418820083354u, 1363923318550317363u, 11989343761803302991u}}, {{2, 7, -3, 0}, {6904197820238222241u, 16549304823790999197u, 1502674706025676124u, 11938021485624075119u}}, {{2, 7, -3, 0}, {6941783507549039876u, 16424397378242644978u, 1641041843297448945u, 11886929076252048456u}}, {{2, 7, -3, 0}, {6979394060591574056u, 16299621524996372075u, 1779026302466870544u, 11836065299832266160u}}, {{2, 7, -3, 0}, {7017028482682266737u, 16174980435966288548u, 1916625536671244426u, 11785430441720987221u}}, {{2, 7, -3, 0}, {7054686828887928172u, 16050473785622716166u, 2053840872626920615u, 11735023359915815853u}}, {{2, 7, -3, 0}, {7092369136541902893u, 15926101309216839791u, 2190673564537263263u, 11684842943774782032u}}, {{2, 7, -3, 0}, {7130075385657787735u, 15801862930609515670u, 2327124656594978451u, 11634888163266375162u}}, {{2, 7, -3, 0}, {7167806531815055831u, 15677755367612844078u, 2463198701919646692u, 11585156710890514900u}}, {{2, 7, -3, 0}, {7205562479432832493u, 15553778808710525467u, 2598896430855226643u, 11535647685278899352u}}, {{2, 7, -3, 0}, {7243342120426678769u, 15429936755905230295u, 2734214956159740156u, 11486361504174984997u}}, {{2, 7, -3, 0}, {7281146222283986853u, 15306226553111934507u, 2869158127164372502u, 11437296131461892262u}}, {{2, 7, -3, 0}, {7318974597629976909u, 15182648680357680973u, 3003726356786142369u, 11388450788760814108u}}, {{2, 7, -3, 0}, {7356826963024261909u, 15059203923927030459u, 3137919729657444608u, 11339824817540150128u}}, {{2, 7, -3, 0}, {7394703937317201920u, 14935890130929736266u, 3271741518774772453u, 11291416408952962202u}}, {{2, 7, -3, 0}, {7432605162635555721u, 14812708332741297589u, 3405191533719621223u, 11243225012381363587u}}, {{2, 7, -3, 0}, {7470531106579368090u, 14689656877247743311u, 3538272488957013590u, 11195249031561224712u}}, {{2, 7, -3, 0}, {7508481337207835821u, 14566737034208442773u, 3670983932372404481u, 11147488016675235675u}}, {{2, 7, -3, 0}, {7546455366470515913u, 14443950244336265732u, 3803325235943756038u, 11099941580606602367u}}, {{2, 7, -3, 0}, {7584453475607984777u, 14321295456908626340u, 3935298458225794985u, 11052608373086488455u}}, {{2, 7, -3, 0}, {7622475870502606917u, 14198771870089394711u, 4066905380896152946u, 11005487148914658436u}}, {{2, 7, -3, 0}, {7660522681829531787u, 14076378928343223064u, 4198147513846181405u, 10958576765274478077u}}, {{2, 7, -3, 0}, {7698593965209527102u, 13954116319861058271u, 4329026100218081337u, 10911876179090625822u}}, {{2, 7, -3, 0}, {7736689701364005106u, 13831983973995629584u, 4459542121390090554u, 10865384444428498599u}}, {{2, 7, -3, 0}, {7774809796272592222u, 13709982058705764427u, 4589696301911351443u, 10819100709934360857u}}, {{2, 7, -3, 0}, {7812954754817898704u, 13588108827754581896u, 4719491402781300301u, 10773023404513015452u}}, {{2, 7, -3, 0}, {7851124333381484753u, 13466364932197533047u, 4848927622779228651u, 10727151872298114417u}}, {{2, 7, -3, 0}, {7889318175330443302u, 13344751376132018687u, 4978004790360157256u, 10681485589274869555u}}, {{2, 7, -3, 0}, {7927536505894405291u, 13223267308847563870u, 5106724701949971503u, 10636023337805563944u}}, {{2, 7, -3, 0}, {7965779418415611690u, 13101912302139176683u, 5235088699944909568u, 10590764065236192645u}}, {{2, 7, -3, 0}, {8004046913245095409u, 12980686224726689419u, 5363097807858787111u, 10545706835404751785u}}, {{2, 7, -3, 0}, {8042338859354794367u, 12859589359954142684u, 5490752610185630917u, 10500850869448350273u}}, {{2, 7, -3, 0}, {8080655575381657215u, 12738620570219958566u, 5618055185309765445u, 10456194867320173976u}}, {{2, 7, -3, 0}, {8118996706398487889u, 12617780846096486768u, 5745005367409621060u, 10411738320152420815u}}, {{2, 7, -3, 0}, {8157362271672680796u, 12497069993514119481u, 5871604237948566087u, 10367480283646824848u}}, {{2, 7, -3, 0}, {8195752665467205444u, 12376486642703875018u, 5997854104245401405u, 10323419389777418677u}}, {{2, 7, -3, 0}, {8234167608026360673u, 12256031543792051662u, 6123755048349193919u, 10279555051432250689u}}, {{2, 7, -3, 0}, {8272607119379509710u, 12135704503132953198u, 6249308139890036208u, 10235886339302052472u}}, {{2, 7, -3, 0}, {8311071051956535321u, 12015505851239715387u, 6374513899275827231u, 10192412518174247551u}}, {{2, 7, -3, 0}, {8349559463882852863u, 11895435273791919792u, 6499373517946174048u, 10149132622333328518u}}, {{2, 7, -3, 0}, {8388072619842498248u, 11775491815561437422u, 6623888847403549606u, 10106045461739885765u}}, {{2, 7, -3, 0}, {8426610129850736427u, 11655676560432955438u, 6748059619290957622u, 10063150583191857081u}}, {{2, 7, -3, 0}, {8465172090936101505u, 11535989073467970566u, 6871887141369560345u, 10020446990522941373u}}, {{2, 7, -3, 0}, {8503758675831947053u, 11416428687938232360u, 6995372955150789817u, 9977933611264666641u}}, {{2, 7, -3, 0}, {8542370019781131167u, 11296994856210200977u, 7118518473372382830u, 9935609421472890361u}}, {{2, 7, -3, 0}, {8581006221612976348u, 11177687146308939236u, 7241324983682959996u, 9893473444389953278u}}, {{2, 7, -3, 0}, {8619666950586679110u, 11058506451203783277u, 7363792408831742443u, 9851525174119791150u}}, {{2, 7, -3, 0}, {8658352270226549417u, 10939452444550878867u, 7485921925810446792u, 9809763676876444207u}}, {{2, 7, -3, 0}, {8697062245562383102u, 10820524797006976537u, 7607714710301803511u, 9768188022982830832u}}, {{2, 7, -3, 0}, {8735796793406448189u, 10701723634625287749u, 7729171468892055826u, 9726797445975098929u}}, {{2, 7, -3, 0}, {8774556019908473631u, 10583048502574108807u, 7850293499529670977u, 9685590980854855136u}}, {{2, 7, -3, 0}, {8813339996400581795u, 10464499054642505390u, 7971081984568889778u, 9644567705687303680u}}, {{2, 7, -3, 0}, {8852148704099474006u, 10346075220852217737u, 8091537821457014303u, 9603726798588464502u}}, {{2, 7, -3, 0}, {8890982222626581359u, 10227776631287692921u, 8211662209727284734u, 9563067338369875691u}}, {{2, 7, -3, 0}, {8929840582169053065u, 10109603068032021143u, 8331456190500178031u, 9522588460930451538u}}, {{2, 7, -3, 0}, {8968723654131270307u, 9991554795390859471u, 8450920314099529159u, 9482289470753915900u}}, {{2, 7, -3, 0}, {9007631475465547293u, 9873631573657229740u, 8570055639712771917u, 9442169503141670107u}}, {{2, 7, -3, 0}, {9046564109190065686u, 9755833085236256091u, 8688863301470897681u, 9402227671480199810u}}, {{2, 7, -3, 0}, {9085521479866307056u, 9638159431659921232u, 8807344007978484722u, 9362463235208300882u}}, {{2, 7, -3, 0}, {9124503589239527905u, 9520610480357626954u, 8925498701917295732u, 9322875377791807214u}}, {{2, 7, -3, 0}, {9163510501187247631u, 9403185911985152161u, 9043328510522533352u, 9283463223959586632u}}, {{2, 7, -3, 0}, {9202542230823847974u, 9285885554953984445u, 9160834409213523106u, 9244225952428584219u}}, {{2, 7, -3, 0}, {9222720337506335216u, 9225327157924047118u, 9221416892761294673u, 9224023759227426226u}}, }; static constexpr table_ref SQRT_TABLE{SQRT_KNOTS, SQRT_PIECES, 393, 67}; static constexpr knot COTH_K8_KNOTS[] = { {0, 0}, {1, 0}, }; static constexpr cubic_bits COTH_K8_PIECES[] = { {{-1, 0, -1, 0}, {18446744073709503788u, 18984728u, 18446744073701779503u, 278569u}}, }; static constexpr table_ref COTH_K8_TABLE{COTH_K8_KNOTS, COTH_K8_PIECES, 1, 24}; static constexpr knot COTH_K12_KNOTS[] = { {0, 0}, {1152921504606846976, 62}, {2305843009213693952, 62}, {3458764513820540928, 62}, {1, 0}, }; static constexpr cubic_bits COTH_K12_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709538410u, 404814734u, 18446744073678661756u, 18446744073319125408u}}, {{-1, 0, -1, 0}, {18446744073702205177u, 490157639u, 18446744073334556823u, 90275420u}}, {{-1, 0, -1, 0}, {18446744073699235585u, 515924091u, 18446744073266016102u, 148111120u}}, {{0, 0, -1, 0}, {19680781u, 396680138u, 18446744073424711358u, 77402782u}}, }; static constexpr table_ref COTH_K12_TABLE{COTH_K12_KNOTS, COTH_K12_PIECES, 4, 28}; static constexpr knot COTH_K16_KNOTS[] = { {0, 0}, {576460752303423488, 62}, {1152921504606846976, 62}, {1729382256910270464, 62}, {2305843009213693952, 62}, {2882303761517117440, 62}, {3458764513820540928, 62}, {4035225266123964416, 62}, {1, 0}, }; static constexpr cubic_bits COTH_K16_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709523395u, 8442083302u, 18446744073447795763u, 18446744056778731399u}}, {{-1, 0, -1, -1}, {18446744073680307123u, 9083534733u, 18446744068606581686u, 18446744069408410621u}}, {{-1, 0, -1, 0}, {18446744073554682981u, 10619088110u, 18446744062285481923u, 4456052632u}}, {{-1, 0, -1, 0}, {18446744073507824700u, 11043602084u, 18446744061013742904u, 5717465876u}}, {{0, 0, -1, 0}, {1236699u, 9843500267u, 18446744063384364807u, 4152941337u}}, {{0, 0, -1, 0}, {386940997u, 7989551844u, 18446744066359717922u, 2558633341u}}, {{0, 0, -1, 0}, {820199024u, 6249359594u, 18446744068692245241u, 1515286185u}}, {{0, 0, -1, 0}, {1219707340u, 4873623350u, 18446744070272727452u, 909548633u}}, }; static constexpr table_ref COTH_K16_TABLE{COTH_K16_KNOTS, COTH_K16_PIECES, 8, 32}; static constexpr knot COTH_K20_KNOTS[] = { {0, 0}, {144115188075855872, 62}, {288230376151711744, 62}, {432345564227567616, 62}, {576460752303423488, 62}, {720575940379279360, 62}, {864691128455135232, 62}, {1008806316530991104, 62}, {1152921504606846976, 62}, {1297036692682702848, 62}, {1441151880758558720, 62}, {1585267068834414592, 62}, {1729382256910270464, 62}, {1873497444986126336, 62}, {2017612633061982208, 62}, {2161727821137838080, 62}, {2305843009213693952, 62}, {2449958197289549824, 62}, {2594073385365405696, 62}, {2738188573441261568, 62}, {2882303761517117440, 62}, {3026418949592973312, 62}, {3170534137668829184, 62}, {3314649325744685056, 62}, {3458764513820540928, 62}, {3602879701896396800, 62}, {3746994889972252672, 62}, {3891110078048108544, 62}, {4035225266123964416, 62}, {4179340454199820288, 62}, {4323455642275676160, 62}, {4467570830351532032, 62}, {1, 0}, }; static constexpr cubic_bits COTH_K20_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709550245u, 166715878426u, 18446744073507200497u, 18446743492908624786u}}, {{-1, 0, -1, -1}, {18446744073707296642u, 166907263987u, 18446744067959617580u, 18446743548218052827u}}, {{-1, 0, -1, -1}, {18446744073681308429u, 168114899176u, 18446744049080222131u, 18446743647574545279u}}, {{-1, 0, -1, -1}, {18446744073576220853u, 171437589635u, 18446744013904411991u, 18446743772271383321u}}, {{-1, 0, -1, -1}, {18446744073321566583u, 177521798147u, 18446743965324741803u, 18446743901902497164u}}, {{-1, 0, -1, -1}, {18446744072873884661u, 186109153589u, 18446743910326268468u, 18446744019512009891u}}, {{-1, 0, -1, 0}, {18446744072252295961u, 196065499832u, 18446743857105863940u, 40739372870u}}, {{-1, 0, -1, 0}, {18446744071545487817u, 205783647876u, 18446743812528755048u, 108954978997u}}, {{-1, 0, -1, 0}, {18446744070889134310u, 213691498953u, 18446743780750095129u, 151550698847u}}, {{-1, 0, -1, 0}, {18446744070428680734u, 218635115060u, 18446743763049396411u, 172686525041u}}, {{-1, 0, -1, 0}, {18446744070285065109u, 220042074757u, 18446743758454719495u, 177688241663u}}, {{-1, 0, -1, 0}, {18446744070534076295u, 217891058529u, 18446743764649787936u, 171739448775u}}, {{-1, 0, -1, 0}, {18446744071201251320u, 212569250682u, 18446743778803748779u, 159187909117u}}, {{-1, 0, -1, 0}, {18446744072268426681u, 204698167572u, 18446743798159847022u, 143317576844u}}, {{-1, 0, -1, 0}, {18446744073686238292u, 194980741406u, 18446743820365046105u, 126400361932u}}, {{0, 0, -1, 0}, {1678160851u, 184092371466u, 18446743843595592295u, 109876368614u}}, {{0, 0, -1, 0}, {3590388954u, 172617562171u, 18446743866551826213u, 94565312573u}}, {{0, 0, -1, 0}, {5643023621u, 161023204726u, 18446743888385310433u, 80858367108u}}, {{0, 0, -1, 0}, {7773527369u, 149656652679u, 18446743908601986970u, 68870958926u}}, {{0, 0, -1, 0}, {9929723963u, 138757968865u, 18446743926966888336u, 58554469524u}}, {{0, 0, -1, 0}, {12070404319u, 128478471375u, 18446743943422571069u, 49772663706u}}, {{0, 0, -1, 0}, {14164699635u, 118900511243u, 18446743958025093443u, 42350980089u}}, {{0, 0, -1, 0}, {16190790541u, 110055657561u, 18446743970896869759u, 36106412437u}}, {{0, 0, -1, 0}, {18134355371u, 101940019150u, 18446743982193769430u, 30864270943u}}, {{0, 0, -1, 0}, {19987014374u, 94526389453u, 18446743992083316992u, 26466505562u}}, {{0, 0, -1, 0}, {21744914316u, 87773421580u, 18446744000731062274u, 22774870721u}}, {{0, 0, -1, 0}, {23407519768u, 81632273891u, 18446744008292691428u, 19671121171u}}, {{0, 0, -1, 0}, {24976627674u, 76051229343u, 18446744014910004992u, 17055640822u}}, {{0, 0, -1, 0}, {26455593218u, 70978764098u, 18446744020709389594u, 14845364724u}}, {{0, 0, -1, 0}, {27848740908u, 66365472902u, 18446744025801816721u, 12971496691u}}, {{0, 0, -1, 0}, {29160929777u, 62165179577u, 18446744030283712224u, 11377297253u}}, {{0, 0, -1, 0}, {30397241991u, 58335485704u, 18446744034238266324u, 10016076605u}}, }; static constexpr table_ref COTH_K20_TABLE{COTH_K20_KNOTS, COTH_K20_PIECES, 32, 36}; static constexpr knot COTH_K24_KNOTS[] = { {0, 0}, {72057594037927936, 62}, {144115188075855872, 62}, {216172782113783808, 62}, {288230376151711744, 62}, {360287970189639680, 62}, {432345564227567616, 62}, {504403158265495552, 62}, {576460752303423488, 62}, {648518346341351424, 62}, {720575940379279360, 62}, {792633534417207296, 62}, {864691128455135232, 62}, {936748722493063168, 62}, {1008806316530991104, 62}, {1080863910568919040, 62}, {1152921504606846976, 62}, {1224979098644774912, 62}, {1297036692682702848, 62}, {1369094286720630784, 62}, {1441151880758558720, 62}, {1513209474796486656, 62}, {1585267068834414592, 62}, {1657324662872342528, 62}, {1729382256910270464, 62}, {1801439850948198400, 62}, {1873497444986126336, 62}, {1945555039024054272, 62}, {2017612633061982208, 62}, {2089670227099910144, 62}, {2161727821137838080, 62}, {2233785415175766016, 62}, {2305843009213693952, 62}, {2377900603251621888, 62}, {2449958197289549824, 62}, {2522015791327477760, 62}, {2594073385365405696, 62}, {2666130979403333632, 62}, {2738188573441261568, 62}, {2810246167479189504, 62}, {2882303761517117440, 62}, {2954361355555045376, 62}, {3026418949592973312, 62}, {3098476543630901248, 62}, {3170534137668829184, 62}, {3242591731706757120, 62}, {3314649325744685056, 62}, {3386706919782612992, 62}, {3458764513820540928, 62}, {3530822107858468864, 62}, {3602879701896396800, 62}, {3674937295934324736, 62}, {3746994889972252672, 62}, {3819052484010180608, 62}, {3891110078048108544, 62}, {3963167672086036480, 62}, {4035225266123964416, 62}, {4107282860161892352, 62}, {4179340454199820288, 62}, {4251398048237748224, 62}, {4323455642275676160, 62}, {4395513236313604096, 62}, {4467570830351532032, 62}, {4539628424389459968, 62}, {1, 0}, }; static constexpr cubic_bits COTH_K24_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709549967u, 3175517432327u, 18446744072736985070u, 18446728257260240203u}}, {{-1, 0, -1, -1}, {18446744073706749688u, 3175992035165u, 18446744045296164662u, 18446728802744597499u}}, {{-1, 0, -1, -1}, {18446744073672086059u, 3179203709033u, 18446743945204416557u, 18446729852692105085u}}, {{-1, 0, -1, -1}, {18446744073514848642u, 3189114179069u, 18446743736076496396u, 18446731330324623953u}}, {{-1, 0, -1, -1}, {18446744073067730631u, 3210407245399u, 18446743397205807887u, 18446733132619505343u}}, {{-1, 0, -1, -1}, {18446744072101496935u, 3247347784533u, 18446742925667390516u, 18446735142310405959u}}, {{-1, 0, -1, -1}, {18446744070365845723u, 3302750655624u, 18446742335493355705u, 18446737240322069299u}}, {{-1, 0, -1, -1}, {18446744067645033181u, 3377279668009u, 18446741654411943870u, 18446739316765974078u}}, {{-1, 0, -1, -1}, {18446744063813175576u, 3469192117639u, 18446740919051092103u, 18446741279167573856u}}, {{-1, 0, -1, -1}, {18446744058875427663u, 3574527077425u, 18446740169643198925u, 18446743057307327655u}}, {{-1, 0, -1, 0}, {18446744052986242617u, 3687640522701u, 18446739445152268891u, 531027919681u}}, {{-1, 0, -1, 0}, {18446744046442445284u, 3801937835695u, 18446738779464764681u, 1823831760915u}}, {{-1, 0, -1, 0}, {18446744039654726026u, 3910647173846u, 18446738198949033336u, 2857461314666u}}, {{-1, 0, -1, 0}, {18446744033104967152u, 4007505138897u, 18446737721386001400u, 3642536050502u}}, {{-1, 0, -1, 0}, {18446744027298115426u, 4087272579537u, 18446737356059855649u, 4200370864524u}}, {{-1, 0, -1, 0}, {18446744022716488422u, 4146047302025u, 18446737104686725795u, 4558800623817u}}, {{-1, 0, -1, 0}, {18446744019782254738u, 4181380831632u, 18446736962838439465u, 4748648309509u}}, {{-1, 0, -1, 0}, {18446744018831218923u, 4192232956811u, 18446736921559339324u, 4800989359712u}}, {{-1, 0, -1, 0}, {18446744020098641732u, 4178810322529u, 18446736968946970230u, 4745218942756u}}, {{-1, 0, -1, 0}, {18446744023716020477u, 4142336575283u, 18446737091547735730u, 4607836058125u}}, {{-1, 0, -1, 0}, {18446744029716663698u, 4084795421879u, 18446737275490443099u, 4411811737789u}}, {{-1, 0, -1, 0}, {18446744038047454837u, 4008678199711u, 18446737507336173195u, 4176396364903u}}, {{-1, 0, -1, 0}, {18446744048584250819u, 3916757052578u, 18446737774660387804u, 3917230861477u}}, {{-1, 0, -1, 0}, {18446744061148719450u, 3811895390816u, 18446738066404588776u, 3646647784943u}}, {{0, 0, -1, 0}, {1815370459u, 3696899881099u, 18446738373043813267u, 3374073635056u}}, {{0, 0, -1, 0}, {17764922638u, 3574412973533u, 18446738686616716789u, 3106468116679u}}, {{0, 0, -1, 0}, {35040040083u, 3446841732422u, 18446739000660396394u, 2848757188869u}}, {{0, 0, -1, 0}, {53394161510u, 3316317097064u, 18446739310085068221u, 2604233496091u}}, {{0, 0, -1, 0}, {72590124067u, 3184677217876u, 18446739611016033920u, 2374910240624u}}, {{0, 0, -1, 0}, {92406057003u, 3053468787888u, 18446739900623139495u, 2161823248446u}}, {{0, 0, -1, 0}, {112639270576u, 2923960995060u, 18446740176951707776u, 1965281636776u}}, {{0, 0, -1, 0}, {133108468160u, 2797167618910u, 18446740438763911670u, 1785070854499u}}, {{0, 0, -1, 0}, {153654617645u, 2673873725543u, 18446740685395729681u, 1620613595335u}}, {{0, 0, -1, 0}, {174140798551u, 2554664282074u, 18446740916631851201u, 1471094712266u}}, {{0, 0, -1, 0}, {194451305694u, 2439952764304u, 18446741132598992742u, 1335556197243u}}, {{0, 0, -1, 0}, {214490247395u, 2330008452025u, 18446741333676858130u, 1212967826615u}}, {{0, 0, -1, 0}, {234179832112u, 2224981595916u, 18446741520425253618u, 1102278411860u}}, {{0, 0, -1, 0}, {253458495646u, 2124926010950u, 18446741693525508336u, 1002451868626u}}, {{0, 0, -1, 0}, {272278983942u, 2029818921177u, 18446741853734236176u, 912491605074u}}, {{0, 0, -1, 0}, {290606474772u, 1939578068407u, 18446742001847519605u, 831456077732u}}, {{0, 0, -1, 0}, {308416795534u, 1854076220393u, 18446742138673734723u, 758467790429u}}, {{0, 0, -1, 0}, {325694773617u, 1773153288373u, 18446742265013424980u, 692717525314u}}, {{0, 0, -1, 0}, {342432739696u, 1696626302240u, 18446742381644837856u, 633465191615u}}, {{0, 0, -1, 0}, {358629192383u, 1624297504866u, 18446742489313944698u, 580038349889u}}, {{0, 0, -1, 0}, {374287623936u, 1555960823241u, 18446742588727957233u, 531829207459u}}, {{0, 0, -1, 0}, {389415500807u, 1491406959515u, 18446742680551528541u, 488290674226u}}, {{0, 0, -1, 0}, {404023388948u, 1430427324099u, 18446742765404978964u, 448931907493u}}, {{0, 0, -1, 0}, {418124211506u, 1372817009152u, 18446742843864018254u, 413313651213u}}, {{0, 0, -1, 0}, {431732625526u, 1318376976048u, 18446742916460545235u, 381043581555u}}, {{0, 0, -1, 0}, {444864504038u, 1266915606474u, 18446742983684197491u, 351771800697u}}, {{0, 0, -1, 0}, {457536510291u, 1218249744374u, 18446743045984398121u, 325186569062u}}, {{0, 0, -1, 0}, {469765751671u, 1172205335630u, 18446743103772706884u, 301010328577u}}, {{0, 0, -1, 0}, {481569501815u, 1128617754274u, 18446743157425331220u, 278996042691u}}, {{0, 0, -1, 0}, {492964980565u, 1087331888333u, 18446743207285690787u, 258923860148u}}, {{0, 0, -1, 0}, {503969182539u, 1048202044794u, 18446743253666958967u, 240598096771u}}, {{0, 0, -1, 0}, {514598746195u, 1011091721755u, 18446743296854527950u, 223844521305u}}, {{0, 0, -1, 0}, {524869856381u, 975873286107u, 18446743337108361698u, 208507926325u}}, {{0, 0, -1, 0}, {534798174299u, 942427587104u, 18446743374665214512u, 194449962561u}}, {{0, 0, -1, 0}, {544398789718u, 910643529551u, 18446743409740702920u, 181547213895u}}, {{0, 0, -1, 0}, {553686191091u, 880417624911u, 18446743442531225906u, 169689490364u}}, {{0, 0, -1, 0}, {562674249890u, 851653534283u, 18446743473215733808u, 158778317238u}}, {{0, 0, -1, 0}, {571376216126u, 824261613649u, 18446743501957349817u, 148725599525u}}, {{0, 0, -1, 0}, {579804722514u, 798158468994u, 18446743528904850509u, 139452442706u}}, {{0, 0, -1, 0}, {587971795227u, 773266526677u, 18446743554194013367u, 130888112113u}}, }; static constexpr table_ref COTH_K24_TABLE{COTH_K24_KNOTS, COTH_K24_PIECES, 64, 40}; static constexpr knot COTH_K28_KNOTS[] = { {0, 0}, {36028797018963968, 62}, {72057594037927936, 62}, {108086391056891904, 62}, {144115188075855872, 62}, {180143985094819840, 62}, {216172782113783808, 62}, {252201579132747776, 62}, {288230376151711744, 62}, {324259173170675712, 62}, {360287970189639680, 62}, {396316767208603648, 62}, {432345564227567616, 62}, {468374361246531584, 62}, {504403158265495552, 62}, {540431955284459520, 62}, {576460752303423488, 62}, {612489549322387456, 62}, {648518346341351424, 62}, {684547143360315392, 62}, {720575940379279360, 62}, {756604737398243328, 62}, {792633534417207296, 62}, {828662331436171264, 62}, {864691128455135232, 62}, {900719925474099200, 62}, {936748722493063168, 62}, {972777519512027136, 62}, {1008806316530991104, 62}, {1044835113549955072, 62}, {1080863910568919040, 62}, {1116892707587883008, 62}, {1152921504606846976, 62}, {1188950301625810944, 62}, {1224979098644774912, 62}, {1261007895663738880, 62}, {1297036692682702848, 62}, {1333065489701666816, 62}, {1369094286720630784, 62}, {1405123083739594752, 62}, {1441151880758558720, 62}, {1477180677777522688, 62}, {1513209474796486656, 62}, {1549238271815450624, 62}, {1585267068834414592, 62}, {1621295865853378560, 62}, {1657324662872342528, 62}, {1693353459891306496, 62}, {1729382256910270464, 62}, {1765411053929234432, 62}, {1801439850948198400, 62}, {1837468647967162368, 62}, {1873497444986126336, 62}, {1909526242005090304, 62}, {1945555039024054272, 62}, {1981583836043018240, 62}, {2017612633061982208, 62}, {2053641430080946176, 62}, {2089670227099910144, 62}, {2125699024118874112, 62}, {2161727821137838080, 62}, {2197756618156802048, 62}, {2233785415175766016, 62}, {2269814212194729984, 62}, {2305843009213693952, 62}, {2341871806232657920, 62}, {2377900603251621888, 62}, {2413929400270585856, 62}, {2449958197289549824, 62}, {2485986994308513792, 62}, {2522015791327477760, 62}, {2558044588346441728, 62}, {2594073385365405696, 62}, {2630102182384369664, 62}, {2666130979403333632, 62}, {2702159776422297600, 62}, {2738188573441261568, 62}, {2774217370460225536, 62}, {2810246167479189504, 62}, {2846274964498153472, 62}, {2882303761517117440, 62}, {2918332558536081408, 62}, {2954361355555045376, 62}, {2990390152574009344, 62}, {3026418949592973312, 62}, {3062447746611937280, 62}, {3098476543630901248, 62}, {3134505340649865216, 62}, {3170534137668829184, 62}, {3206562934687793152, 62}, {3242591731706757120, 62}, {3278620528725721088, 62}, {3314649325744685056, 62}, {3350678122763649024, 62}, {3386706919782612992, 62}, {3422735716801576960, 62}, {3458764513820540928, 62}, {3494793310839504896, 62}, {3530822107858468864, 62}, {3566850904877432832, 62}, {3602879701896396800, 62}, {3638908498915360768, 62}, {3674937295934324736, 62}, {3710966092953288704, 62}, {3746994889972252672, 62}, {3783023686991216640, 62}, {3819052484010180608, 62}, {3855081281029144576, 62}, {3891110078048108544, 62}, {3927138875067072512, 62}, {3963167672086036480, 62}, {3999196469105000448, 62}, {4035225266123964416, 62}, {4071254063142928384, 62}, {4107282860161892352, 62}, {4143311657180856320, 62}, {4179340454199820288, 62}, {4215369251218784256, 62}, {4251398048237748224, 62}, {4287426845256712192, 62}, {4323455642275676160, 62}, {4359484439294640128, 62}, {4395513236313604096, 62}, {4431542033332568064, 62}, {4467570830351532032, 62}, {4503599627370496000, 62}, {4539628424389459968, 62}, {4575657221408423936, 62}, {1, 0}, }; static constexpr cubic_bits COTH_K28_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709549881u, 58937548756555u, 18446744069616619793u, 18446347808091198922u}}, {{-1, 0, -1, -1}, {18446744073706567321u, 58938558963082u, 18446743952912384778u, 18446352442710565548u}}, {{-1, 0, -1, -1}, {18446744073668672506u, 58945573258956u, 18446743516229732929u, 18446361592879676216u}}, {{-1, 0, -1, -1}, {18446744073489336728u, 58968152807813u, 18446742564468436460u, 18446375025729925264u}}, {{-1, 0, -1, -1}, {18446744072948393110u, 59019612273086u, 18446740928593639651u, 18446392404779943993u}}, {{-1, 0, -1, -1}, {18446744071687648497u, 59115893185647u, 18446738473652380553u, 18446413304360973453u}}, {{-1, 0, -1, -1}, {18446744069204458919u, 59274225305180u, 18446735104636773991u, 18446437227346706416u}}, {{-1, 0, -1, -1}, {18446744064864459929u, 59511692264135u, 18446730769911208808u, 18446463625079354129u}}, {{-1, 0, -1, -1}, {18446744057932458847u, 59843820977703u, 18446725462117083083u, 18446491918306240831u}}, {{-1, 0, -1, -1}, {18446744047618522394u, 60283305658910u, 18446719216658930540u, 18446521517960356196u}}, {{-1, 0, -1, -1}, {18446744033134760151u, 60838958616382u, 18446712108042191282u, 18446551844724327265u}}, {{-1, 0, -1, -1}, {18446744013757364399u, 61514954195168u, 18446704244461598727u, 18446582346492488382u}}, {{-1, 0, -1, -1}, {18446743988888181260u, 62310402660533u, 18446695761122018632u, 18446612513067324452u}}, {{-1, 0, -1, -1}, {18446743958110427506u, 63219260973222u, 18446686812808306993u, 18446641887669909365u}}, {{-1, 0, -1, -1}, {18446743921234027910u, 64230560306190u, 18446677566210439781u, 18446670075085649406u}}, {{-1, 0, -1, -1}, {18446743878327274985u, 65328908118216u, 18446668192462098405u, 18446696746486908866u}}, {{-1, 0, -1, -1}, {18446743829732929129u, 66495207037196u, 18446658860275036269u, 18446721641158388542u}}, {{-1, 0, -1, 0}, {18446743776068309567u, 67707524201949u, 18446649729958949298u, 491781192951u}}, {{-1, 0, -1, 0}, {18446743718210227320u, 68942042739902u, 18446640948517923156u, 21315990285072u}}, {{-1, 0, -1, 0}, {18446743657266672275u, 70174030772124u, 18446632645919083096u, 39969065441023u}}, {{-1, 0, -1, 0}, {18446743594537923619u, 71378771400780u, 18446624932543946825u, 56432455677678u}}, {{-1, 0, -1, 0}, {18446743531470186320u, 72532408051164u, 18446617897762879899u, 70732975701231u}}, {{-1, 0, -1, 0}, {18446743469604982698u, 73612671851668u, 18446611609520329330u, 82935362519958u}}, {{-1, 0, -1, 0}, {18446743410527391237u, 74599470162703u, 18446606114783479636u, 93134847401452u}}, {{-1, 0, -1, 0}, {18446743355815884749u, 75475326903250u, 18446601440688374537u, 101450034605887u}}, {{-1, 0, -1, 0}, {18446743306996043229u, 76225675271041u, 18446597596213049243u, 108016304396621u}}, {{-1, 0, -1, 0}, {18446743265499867575u, 76839011408378u, 18446594574213916177u, 112979888261627u}}, {{-1, 0, -1, 0}, {18446743232631855271u, 77306923390866u, 18446592353676469867u, 116492702477306u}}, {{-1, 0, -1, 0}, {18446743209542463087u, 77624013678397u, 18446590902051403550u, 118707974068743u}}, {{-1, 0, -1, 0}, {18446743197209107027u, 77787735080417u, 18446590177569900491u, 119776651619018u}}, {{-1, 0, -1, 0}, {18446743196424455906u, 77798160653239u, 18446590131455092942u, 119844562078196u}}, {{-1, 0, -1, 0}, {18446743207791470743u, 77657707106701u, 18446590709968899896u, 119050252893536u}}, {{-1, 0, -1, 0}, {18446743231724427578u, 77370829591437u, 18446591856253582714u, 117523445200978u}}, {{-1, 0, -1, 0}, {18446743268455029709u, 76943703479128u, 18446593511944751369u, 115384017067361u}}, {{-1, 0, -1, 0}, {18446743318042655955u, 76383906204590u, 18446595618546926675u, 112741434404990u}}, {{-1, 0, -1, 0}, {18446743380387791414u, 75700109626445u, 18446598118574102085u, 109694549826750u}}, {{-1, 0, -1, 0}, {18446743455247732578u, 74901790844847u, 18446600956466232770u, 106331695153427u}}, {{-1, 0, -1, 0}, {18446743542253736625u, 73998967103297u, 18446604079298513408u, 102731000494334u}}, {{-1, 0, -1, 0}, {18446743640928883477u, 73001958366506u, 18446607437304058709u, 98960880964366u}}, {{-1, 0, -1, 0}, {18446743750706028761u, 71921179441939u, 18446610984232562995u, 95080640532219u}}, {{-1, 0, -1, 0}, {18446743870945338244u, 70766962106114u, 18446614677568067489u, 91141150744431u}}, {{-1, 0, -1, 0}, {18446744000951003469u, 69549406595136u, 18446618478628455662u, 87185569814386u}}, {{0, 0, -1, 0}, {66277288249u, 68278260996683u, 18446622352568033999u, 83250074601609u}}, {{0, 0, -1, 0}, {213581008193u, 66962826504008u, 18446626268302795749u, 79364584226968u}}, {{0, 0, -1, 0}, {368377040801u, 65611886124738u, 18446630198375917645u, 75553459437747u}}, {{0, 0, -1, 0}, {529887837039u, 64233654241036u, 18446634118778867703u, 71836166368322u}}, {{0, 0, -1, 0}, {697343653404u, 62835744357730u, 18446638008741328779u, 68227897087195u}}, {{0, 0, -1, 0}, {869990850517u, 61425152419281u, 18446641850501055087u, 64740142350488u}}, {{0, 0, -1, 0}, {1047098775665u, 60008253196864u, 18446645629062836268u, 61381214377619u}}, {{0, 0, -1, 0}, {1227965321832u, 58590807419612u, 18446649331953981314u, 58156719312188u}}, {{0, 0, -1, 0}, {1411921271373u, 57177977529583u, 18446652948982170402u, 55069980413740u}}, {{0, 0, -1, 0}, {1598333541596u, 55774350162774u, 18446656472000160763u, 52122414022481u}}, {{0, 0, -1, 0}, {1786607453221u, 54383963686212u, 18446659894680667861u, 49313861020245u}}, {{0, 0, -1, 0}, {1976188142295u, 53010339344965u, 18446663212303763821u, 46642876940136u}}, {{0, 0, -1, 0}, {2166561232455u, 51656514786292u, 18446666421558325405u, 44106984108482u}}, {{0, 0, -1, 0}, {2357252878495u, 50325078926756u, 18446669520358406409u, 41702889282344u}}, {{0, 0, -1, 0}, {2547829284592u, 49018207309420u, 18446672507674885462u, 39426670212173u}}, {{0, 0, -1, 0}, {2737895791970u, 47737697260832u, 18446675383382331838u, 37273934443792u}}, {{0, 0, -1, 0}, {2927095621671u, 46485002301154u, 18446678148120721693u, 35239953502176u}}, {{0, 0, -1, 0}, {3115108348850u, 45261265385888u, 18446680803171409272u, 33319775391455u}}, {{0, 0, -1, 0}, {3301648175902u, 44067350665132u, 18446683350346597713u, 31508318116961u}}, {{0, 0, -1, 0}, {3486462062990u, 42903873537438u, 18446685791891449494u, 29800446697818u}}, {{0, 0, -1, 0}, {3669327766288u, 41771228851555u, 18446688130397916199u, 28191035901352u}}, {{0, 0, -1, 0}, {3850051826622u, 40669617172245u, 18446690368729341828u, 26675020699989u}}, {{0, 0, -1, 0}, {4028467544229u, 39599069077355u, 18446692509954895158u, 25247436231520u}}, {{0, 0, -1, 0}, {4204432969027u, 38559467494090u, 18446694557292908201u, 23903448837757u}}, {{0, 0, -1, 0}, {4377828930214u, 37550568114232u, 18446696514062233950u, 22638379566109u}}, {{0, 0, -1, 0}, {4548557124040u, 36572017952283u, 18446698383640782985u, 21447721344450u}}, {{0, 0, -1, 0}, {4716538274279u, 35623372128328u, 18446700169430451450u, 20327150881750u}}, {{0, 0, -1, 0}, {4881710376211u, 34704108969883u, 18446701874827709704u, 19272536205136u}}, {{0, 0, -1, 0}, {5044027031709u, 33813643535093u, 18446703503199179182u, 18279940617349u}}, {{0, 0, -1, 0}, {5203455880345u, 32951339664129u, 18446705057861583242u, 17345623746383u}}, {{0, 0, -1, 0}, {5359977129171u, 32116520667278u, 18446706542065514533u, 16466040260019u}}, {{0, 0, -1, 0}, {5513582181965u, 31308478757622u, 18446707958982515979u, 15637836731234u}}, {{0, 0, -1, 0}, {5664272367232u, 30526483333821u, 18446709311695024125u, 14857847064648u}}, {{0, 0, -1, 0}, {5812057763017u, 29769788214865u, 18446710603188771946u, 14123086828403u}}, {{0, 0, -1, 0}, {5956956115670u, 29037637924068u, 18446711836347293097u, 13430746778928u}}, {{0, 0, -1, 0}, {6098991848972u, 28329273114304u, 18446713013948210879u, 12778185817032u}}, {{0, 0, -1, 0}, {6238195159491u, 27643935220817u, 18446714138661032898u, 12162923571730u}}, {{0, 0, -1, 0}, {6374601193698u, 26980870422084u, 18446715213046206664u, 11582632772295u}}, {{0, 0, -1, 0}, {6508249302126u, 26339332983238u, 18446716239555222311u, 11035131538488u}}, {{0, 0, -1, 0}, {6639182365741u, 25718588050696u, 18446717220531576353u, 10518375693059u}}, {{0, 0, -1, 0}, {6767446189672u, 25117913960884u, 18446718158212435303u, 10030451178776u}}, {{0, 0, -1, 0}, {6893088959494u, 24536604120449u, 18446719054730860035u, 9569566643962u}}, {{0, 0, -1, 0}, {7016160755352u, 23973968510056u, 18446719912118471404u, 9134046245191u}}, {{0, 0, -1, 0}, {7136713119381u, 23429334858942u, 18446720732308454966u, 8722322703120u}}, {{0, 0, -1, 0}, {7254798672042u, 22902049532710u, 18446721517138817870u, 8332930636923u}}, {{0, 0, -1, 0}, {7370470773215u, 22391478172543u, 18446722268355824357u, 7964500194198u}}, {{0, 0, -1, 0}, {7483783224096u, 21897006119985u, 18446722987617548001u, 7615750986205u}}, {{0, 0, -1, 0}, {7594790006195u, 21418038657784u, 18446723676497488978u, 7285486332645u}}, {{0, 0, -1, 0}, {7703545053958u, 20954001093866u, 18446724336488213490u, 6972587815672u}}, {{0, 0, -1, 0}, {7810102057765u, 20504338712473u, 18446724969004980101u, 6676010139273u}}, {{0, 0, -1, 0}, {7914514294315u, 20068516613677u, 18446725575389324313u, 6394776287411u}}, {{0, 0, -1, 0}, {8016834481597u, 19646019459934u, 18446726156912578375u, 6127972972192u}}, {{0, 0, -1, 0}, {8117114655912u, 19236351146089u, 18446726714779308116u, 5874746361837u}}, {{0, 0, -1, 0}, {8215406068566u, 18839034407158u, 18446727250130652742u, 5634298077073u}}, {{0, 0, -1, 0}, {8311759100115u, 18453610376384u, 18446727764047556986u, 5405881443910u}}, {{0, 0, -1, 0}, {8406223190175u, 18079638104421u, 18446728257553887959u, 5188797990294u}}, {{0, 0, -1, 0}, {8498846781018u, 17716694049010u, 18446728731619431506u, 4982394173974u}}, {{0, 0, -1, 0}, {8589677273341u, 17364371543238u, 18446729187162764935u, 4786058328912u}}, {{0, 0, -1, 0}, {8678760992728u, 17022280249295u, 18446729625054004661u, 4599217817762u}}, {{0, 0, -1, 0}, {8766143165493u, 16690045603625u, 18446730046117428747u, 4421336378168u}}, {{0, 0, -1, 0}, {8851867902698u, 16367308258464u, 18446730451133975400u, 4251911651036u}}, {{0, 0, -1, 0}, {8935978191291u, 16053723523983u, 18446730840843619442u, 4090472879358u}}, {{0, 0, -1, 0}, {9018515891382u, 15748960814542u, 18446731215947629460u, 3936578766629u}}, {{0, 0, -1, 0}, {9099521738822u, 15452703101960u, 18446731577110708915u, 3789815484394u}}, {{0, 0, -1, 0}, {9179035352296u, 15164646378180u, 18446731924963024904u, 3649794819019u}}, {{0, 0, -1, 0}, {9257095244266u, 14884499129258u, 18446732260102128578u, 3516152448265u}}, {{0, 0, -1, 0}, {9333738835151u, 14611981822184u, 18446732583094771430u, 3388546338792u}}, {{0, 0, -1, 0}, {9409002470204u, 14346826405733u, 18446732894478621797u, 3266655256245u}}, {{0, 0, -1, 0}, {9482921438622u, 14088775826214u, 18446733194763885990u, 3150177380051u}}, {{0, 0, -1, 0}, {9555529994468u, 13837583558775u, 18446733484434838464u, 3038829015592u}}, {{0, 0, -1, 0}, {9626861379037u, 13593013154664u, 18446733763951265441u, 2932343396833u}}, {{0, 0, -1, 0}, {9696947844352u, 13354837804699u, 18446734033749826278u, 2830469573006u}}, {{0, 0, -1, 0}, {9765820677499u, 13122839919039u, 18446734294245336839u, 2732971373308u}}, {{0, 0, -1, 0}, {9833510225577u, 12896810723200u, 18446734545831978968u, 2639626444040u}}, {{0, 0, -1, 0}, {9900045921028u, 12676549870187u, 18446734788884440052u, 2550225352964u}}, {{0, 0, -1, 0}, {9965456307196u, 12461865068506u, 18446735023758986502u, 2464570756032u}}, {{0, 0, -1, 0}, {10029769063924u, 12252571725751u, 18446735250794474861u, 2382476621991u}}, {{0, 0, -1, 0}, {10093011033092u, 12048492607410u, 18446735470313304041u, 2303767510661u}}, {{0, 0, -1, 0}, {10155208243956u, 11849457510495u, 18446735682622312083u, 2228277901030u}}, {{0, 0, -1, 0}, {10216385938211u, 11655302951549u, 18446735888013620640u, 2155851565532u}}, {{0, 0, -1, 0}, {10276568594688u, 11465871868582u, 18446736086765430240u, 2086340987204u}}, {{0, 0, -1, 0}, {10335779953627u, 11281013336457u, 18446736279142769217u, 2019606816588u}}, {{0, 0, -1, 0}, {10394043040469u, 11100582295231u, 18446736465398199075u, 1955517365545u}}, {{0, 0, -1, 0}, {10451380189130u, 10924439290969u, 18446736645772478856u, 1893948135298u}}, {{0, 0, -1, 0}, {10507813064714u, 10752450228542u, 18446736820495190976u, 1834781376256u}}, {{0, 0, -1, 0}, {10563362685652u, 10584486135897u, 18446736989785330851u, 1777905677335u}}, }; static constexpr table_ref COTH_K28_TABLE{COTH_K28_KNOTS, COTH_K28_PIECES, 128, 44}; static constexpr knot COTH_K32_KNOTS[] = { {0, 0}, {18014398509481984, 62}, {36028797018963968, 62}, {54043195528445952, 62}, {72057594037927936, 62}, {90071992547409920, 62}, {108086391056891904, 62}, {126100789566373888, 62}, {144115188075855872, 62}, {162129586585337856, 62}, {180143985094819840, 62}, {198158383604301824, 62}, {216172782113783808, 62}, {234187180623265792, 62}, {252201579132747776, 62}, {270215977642229760, 62}, {288230376151711744, 62}, {306244774661193728, 62}, {324259173170675712, 62}, {342273571680157696, 62}, {360287970189639680, 62}, {378302368699121664, 62}, {396316767208603648, 62}, {414331165718085632, 62}, {432345564227567616, 62}, {450359962737049600, 62}, {468374361246531584, 62}, {486388759756013568, 62}, {504403158265495552, 62}, {522417556774977536, 62}, {540431955284459520, 62}, {558446353793941504, 62}, {576460752303423488, 62}, {594475150812905472, 62}, {612489549322387456, 62}, {630503947831869440, 62}, {648518346341351424, 62}, {666532744850833408, 62}, {684547143360315392, 62}, {702561541869797376, 62}, {720575940379279360, 62}, {738590338888761344, 62}, {756604737398243328, 62}, {774619135907725312, 62}, {792633534417207296, 62}, {810647932926689280, 62}, {828662331436171264, 62}, {846676729945653248, 62}, {864691128455135232, 62}, {882705526964617216, 62}, {900719925474099200, 62}, {918734323983581184, 62}, {936748722493063168, 62}, {954763121002545152, 62}, {972777519512027136, 62}, {990791918021509120, 62}, {1008806316530991104, 62}, {1026820715040473088, 62}, {1044835113549955072, 62}, {1062849512059437056, 62}, {1080863910568919040, 62}, {1098878309078401024, 62}, {1116892707587883008, 62}, {1134907106097364992, 62}, {1152921504606846976, 62}, {1170935903116328960, 62}, {1188950301625810944, 62}, {1206964700135292928, 62}, {1224979098644774912, 62}, {1242993497154256896, 62}, {1261007895663738880, 62}, {1279022294173220864, 62}, {1297036692682702848, 62}, {1315051091192184832, 62}, {1333065489701666816, 62}, {1351079888211148800, 62}, {1369094286720630784, 62}, {1387108685230112768, 62}, {1405123083739594752, 62}, {1423137482249076736, 62}, {1441151880758558720, 62}, {1459166279268040704, 62}, {1477180677777522688, 62}, {1495195076287004672, 62}, {1513209474796486656, 62}, {1531223873305968640, 62}, {1549238271815450624, 62}, {1567252670324932608, 62}, {1585267068834414592, 62}, {1603281467343896576, 62}, {1621295865853378560, 62}, {1639310264362860544, 62}, {1657324662872342528, 62}, {1675339061381824512, 62}, {1693353459891306496, 62}, {1711367858400788480, 62}, {1729382256910270464, 62}, {1747396655419752448, 62}, {1765411053929234432, 62}, {1783425452438716416, 62}, {1801439850948198400, 62}, {1819454249457680384, 62}, {1837468647967162368, 62}, {1855483046476644352, 62}, {1873497444986126336, 62}, {1891511843495608320, 62}, {1909526242005090304, 62}, {1927540640514572288, 62}, {1945555039024054272, 62}, {1963569437533536256, 62}, {1981583836043018240, 62}, {1999598234552500224, 62}, {2017612633061982208, 62}, {2035627031571464192, 62}, {2053641430080946176, 62}, {2071655828590428160, 62}, {2089670227099910144, 62}, {2107684625609392128, 62}, {2125699024118874112, 62}, {2143713422628356096, 62}, {2161727821137838080, 62}, {2179742219647320064, 62}, {2197756618156802048, 62}, {2215771016666284032, 62}, {2233785415175766016, 62}, {2251799813685248000, 62}, {2269814212194729984, 62}, {2287828610704211968, 62}, {2305843009213693952, 62}, {2323857407723175936, 62}, {2341871806232657920, 62}, {2359886204742139904, 62}, {2377900603251621888, 62}, {2395915001761103872, 62}, {2413929400270585856, 62}, {2431943798780067840, 62}, {2449958197289549824, 62}, {2467972595799031808, 62}, {2485986994308513792, 62}, {2504001392817995776, 62}, {2522015791327477760, 62}, {2540030189836959744, 62}, {2558044588346441728, 62}, {2576058986855923712, 62}, {2594073385365405696, 62}, {2612087783874887680, 62}, {2630102182384369664, 62}, {2648116580893851648, 62}, {2666130979403333632, 62}, {2684145377912815616, 62}, {2702159776422297600, 62}, {2720174174931779584, 62}, {2738188573441261568, 62}, {2756202971950743552, 62}, {2774217370460225536, 62}, {2792231768969707520, 62}, {2810246167479189504, 62}, {2828260565988671488, 62}, {2846274964498153472, 62}, {2864289363007635456, 62}, {2882303761517117440, 62}, {2900318160026599424, 62}, {2918332558536081408, 62}, {2936346957045563392, 62}, {2954361355555045376, 62}, {2972375754064527360, 62}, {2990390152574009344, 62}, {3008404551083491328, 62}, {3026418949592973312, 62}, {3044433348102455296, 62}, {3062447746611937280, 62}, {3080462145121419264, 62}, {3098476543630901248, 62}, {3116490942140383232, 62}, {3134505340649865216, 62}, {3152519739159347200, 62}, {3170534137668829184, 62}, {3188548536178311168, 62}, {3206562934687793152, 62}, {3224577333197275136, 62}, {3242591731706757120, 62}, {3260606130216239104, 62}, {3278620528725721088, 62}, {3296634927235203072, 62}, {3314649325744685056, 62}, {3332663724254167040, 62}, {3350678122763649024, 62}, {3368692521273131008, 62}, {3386706919782612992, 62}, {3404721318292094976, 62}, {3422735716801576960, 62}, {3440750115311058944, 62}, {3458764513820540928, 62}, {3476778912330022912, 62}, {3494793310839504896, 62}, {3512807709348986880, 62}, {3530822107858468864, 62}, {3548836506367950848, 62}, {3566850904877432832, 62}, {3584865303386914816, 62}, {3602879701896396800, 62}, {3620894100405878784, 62}, {3638908498915360768, 62}, {3656922897424842752, 62}, {3674937295934324736, 62}, {3692951694443806720, 62}, {3710966092953288704, 62}, {3728980491462770688, 62}, {3746994889972252672, 62}, {3765009288481734656, 62}, {3783023686991216640, 62}, {3801038085500698624, 62}, {3819052484010180608, 62}, {3837066882519662592, 62}, {3855081281029144576, 62}, {3873095679538626560, 62}, {3891110078048108544, 62}, {3909124476557590528, 62}, {3927138875067072512, 62}, {3945153273576554496, 62}, {3963167672086036480, 62}, {3981182070595518464, 62}, {3999196469105000448, 62}, {4017210867614482432, 62}, {4035225266123964416, 62}, {4053239664633446400, 62}, {4071254063142928384, 62}, {4089268461652410368, 62}, {4107282860161892352, 62}, {4125297258671374336, 62}, {4143311657180856320, 62}, {4161326055690338304, 62}, {4179340454199820288, 62}, {4197354852709302272, 62}, {4215369251218784256, 62}, {4233383649728266240, 62}, {4251398048237748224, 62}, {4269412446747230208, 62}, {4287426845256712192, 62}, {4305441243766194176, 62}, {4323455642275676160, 62}, {4341470040785158144, 62}, {4359484439294640128, 62}, {4377498837804122112, 62}, {4395513236313604096, 62}, {4413527634823086080, 62}, {4431542033332568064, 62}, {4449556431842050048, 62}, {4467570830351532032, 62}, {4485585228861014016, 62}, {4503599627370496000, 62}, {4521614025879977984, 62}, {4539628424389459968, 62}, {4557642822898941952, 62}, {4575657221408423936, 62}, {4593671619917905920, 62}, {1, 0}, }; static constexpr cubic_bits COTH_K32_PIECES[] = { {{-1, 0, -1, -1}, {18446744073709549960u, 1073069739138038u, 18446744058081061802u, 18437391557451722035u}}, {{-1, 0, -1, -1}, {18446744073706690768u, 1073071675464413u, 18446743610840618987u, 18437427065870820362u}}, {{-1, 0, -1, -1}, {18446744073670036167u, 1073085239763384u, 18446741922606436624u, 18437497785811150682u}}, {{-1, 0, -1, -1}, {18446744073494017251u, 1073129545432523u, 18446738189087352370u, 18437603127768619024u}}, {{-1, 0, -1, -1}, {18446744072952153328u, 1073232596007992u, 18446731640025716497u, 18437742218121376747u}}, {{-1, 0, -1, -1}, {18446744071655828278u, 1073430507878953u, 18446721551779649982u, 18437913911628483436u}}, {{-1, 0, -1, -1}, {18446744069019862310u, 1073766510639263u, 18446707258910440703u, 18438116807666080105u}}, {{-1, 0, -1, -1}, {18446744064236345049u, 1074289754782898u, 18446688164541084506u, 18438349269850760308u}}, {{-1, 0, -1, -1}, {18446744056257870038u, 1075053961752359u, 18446663749286983529u, 18438609448632847587u}}, {{-1, 0, -1, -1}, {18446744043790944428u, 1076115955384050u, 18446633578599782301u, 18438895306387780107u}}, {{-1, 0, -1, -1}, {18446744025299957416u, 1077534116444411u, 18446597308408783155u, 18439204644493088664u}}, {{-1, 0, -1, -1}, {18446743999021693768u, 1079366803159360u, 18446554688989780601u, 18439535131852318902u}}, {{-1, 0, -1, -1}, {18446743962989991388u, 1081670780413004u, 18446505567036918799u, 18439884334315932089u}}, {{-1, 0, -1, -1}, {18446743915069780103u, 1084499698693674u, 18446449885957789184u, 18440249744452428204u}}, {{-1, 0, -1, -1}, {18446743852999416464u, 1087902661013352u, 18446387684454044388u, 18440628811139882533u}}, {{-1, 0, -1, -1}, {18446743774439958141u, 1091922912082427u, 18446319093488076247u, 18441018968477548841u}}, {{-1, 0, -1, -1}, {18446743677029809831u, 1096596679182501u, 18446244331769767569u, 18441417663557573615u}}, {{-1, 0, -1, -1}, {18446743558443026386u, 1101952188666497u, 18446163699925197319u, 18441822382686327324u}}, {{-1, 0, -1, -1}, {18446743416449480305u, 1108008876061302u, 18446077573530931147u, 18442230675701348335u}}, {{-1, 0, -1, -1}, {18446743248975089298u, 1114776801588127u, 18445986395212897041u, 18442640178091282394u}}, {{-1, 0, -1, -1}, {18446743054160351836u, 1122256276775721u, 18445890666017811739u, 18443048630690355512u}}, {{-1, 0, -1, -1}, {18446742830415548508u, 1130437701928938u, 18445790936267899421u, 18443453896783793501u}}, {{-1, 0, -1, -1}, {18446742576471126750u, 1139301608712222u, 18445687796106642175u, 18443853976524302895u}}, {{-1, 0, -1, -1}, {18446742291421986801u, 1148818897165440u, 18445581865935099389u, 18444247018620571538u}}, {{-1, 0, -1, -1}, {18446741974764617284u, 1158951252205034u, 18445473786925634455u, 18444631329315300895u}}, {{-1, 0, -1, -1}, {18446741626426279117u, 1169651721157597u, 18445364211783481752u, 18445005378721393611u}}, {{-1, 0, -1, -1}, {18446741246785696045u, 1180865431171028u, 18445253795907310967u, 18445367804629728079u}}, {{-1, 0, -1, -1}, {18446740836684969113u, 1192530423462285u, 18445143189078644366u, 18445717413939886137u}}, {{-1, 0, -1, -1}, {18446740397432682096u, 1204578580271798u, 18445033027787476877u, 18446053181895966943u}}, {{-1, 0, -1, -1}, {18446739930798397421u, 1216936620057998u, 18444923928278507534u, 18446374249333180776u}}, {{-1, 0, -1, -1}, {18446739438998951440u, 1229527136815308u, 18444816480379708784u, 18446679918157456396u}}, {{-1, 0, -1, 0}, {18446738924677139171u, 1242269660352823u, 18444711242153141241u, 225571580638250u}}, {{-1, 0, -1, 0}, {18446738390873528630u, 1255081715835824u, 18444608735387469075u, 498961604486643u}}, {{-1, 0, -1, 0}, {18446737840992262046u, 1267879862768744u, 18444509441932942660u, 755758344407419u}}, {{-1, 0, -1, 0}, {18446737278761784989u, 1280580695785665u, 18444413800862982704u, 995835611680352u}}, {{-1, 0, -1, 0}, {18446736708191495846u, 1293101792014332u, 18444322206432114478u, 1219187328182586u}}, {{-1, 0, -1, 0}, {18446736133525328754u, 1305362592299477u, 18444235006787959668u, 1425917234488281u}}, {{-1, 0, -1, 0}, {18446735559193275938u, 1317285206126496u, 18444152503385310609u, 1616228369186331u}}, {{-1, 0, -1, 0}, {18446734989761823462u, 1328795132602778u, 18444074951042929961u, 1790412488869201u}}, {{-1, 0, -1, 0}, {18446734429884221490u, 1339821892268250u, 18444002558578521571u, 1948839579204584u}}, {{-1, 0, -1, 0}, {18446733884251440099u, 1350299566767459u, 18443935489954142783u, 2091947587954362u}}, {{-1, 0, -1, 0}, {18446733357544578329u, 1360167245483273u, 18443873865862978372u, 2220232491272139u}}, {{-1, 0, -1, 0}, {18446732854389401442u, 1369369380078659u, 18443817765688652954u, 2334238785532724u}}, {{-1, 0, -1, 0}, {18446732379313582748u, 1377856049500196u, 18443767229769891861u, 2434550478686286u}}, {{-1, 0, -1, 0}, {18446731936707125219u, 1385583139356760u, 18443722261906117081u, 2521782637971341u}}, {{-1, 0, -1, 0}, {18446731530786337294u, 1392512440698848u, 18443682832043256918u, 2596573534976244u}}, {{-1, 0, -1, 0}, {18446731165561639300u, 1398611674095332u, 18443648879083438591u, 2659577414654106u}}, {{-1, 0, -1, 0}, {18446730844809383878u, 1403854445547230u, 18443620313767120754u, 2711457902056781u}}, {{-1, 0, -1, 0}, {18446730572047787238u, 1408220141209166u, 18443597021581425755u, 2752882049294203u}}, {{-1, 0, -1, 0}, {18446730350516989320u, 1411693768128260u, 18443578865653788127u, 2784515015536234u}}, {{-1, 0, -1, 0}, {18446730183163190744u, 1414265748278971u, 18443565689595407350u, 2807015364710155u}}, {{-1, 0, -1, 0}, {18446730072626753336u, 1415931673093733u, 18443557320264262499u, 2821030958834206u}}, {{-1, 0, -1, 0}, {18446730021234099171u, 1416692025485906u, 18443553570422518722u, 2827195419571440u}}, {{-1, 0, -1, 0}, {18446730030993200390u, 1416551876056092u, 18443554241267955855u, 2826125126478521u}}, {{-1, 0, -1, 0}, {18446730103592418215u, 1415520559786547u, 18443559124823521834u, 2818416717441861u}}, {{-1, 0, -1, 0}, {18446730240402424183u, 1413611339081243u, 18443568006173218949u, 2804645054814455u}}, {{-1, 0, -1, 0}, {18446730442480918920u, 1410841058519126u, 18443580665536245397u, 2785361619666514u}}, {{-1, 0, -1, 0}, {18446730710579853227u, 1407229796171651u, 18443596880174626846u, 2761093296219261u}}, {{-1, 0, -1, 0}, {18446731045154851950u, 1402800515806773u, 18443616426132482634u, 2732341508827124u}}, {{-1, 0, -1, 0}, {18446731446376542346u, 1397578723772579u, 18443639079807587294u, 2699581674699048u}}, {{-1, 0, -1, 0}, {18446731914143494661u, 1391592133834684u, 18443664619358026021u, 2663262936802923u}}, {{-1, 0, -1, 0}, {18446732448096492536u, 1384870342740775u, 18443692825948523511u, 2623808142985833u}}, {{-1, 0, -1, 0}, {18446733047633864010u, 1377444518809714u, 18443723484842474172u, 2581614039183848u}}, {{-1, 0, -1, 0}, {18446733711927619550u, 1369347105396401u, 18443756386346845499u, 2537051646615187u}}, {{-1, 0, -1, 0}, {18446734439940161082u, 1360611540670563u, 18443791326617994368u, 2490466794986117u}}, {{-1, 0, -1, 0}, {18446735230441344838u, 1351271994770057u, 18443828108337057557u, 2442180785935098u}}, {{-1, 0, -1, 0}, {18446736082025700466u, 1341363125048253u, 18443866541263982132u, 2392491163151615u}}, {{-1, 0, -1, 0}, {18446736993129628845u, 1330919849830837u, 18443906442679476777u, 2341672567793627u}}, {{-1, 0, -1, 0}, {18446737962048420967u, 1319977140829398u, 18443947637724218721u, 2289977659960893u}}, {{-1, 0, -1, 0}, {18446738986952959817u, 1308569834126333u, 18443989959644567967u, 2237638089036299u}}, {{-1, 0, -1, 0}, {18446740065905986165u, 1296732459446208u, 18444033249953844516u, 2184865497665116u}}, {{-1, 0, -1, 0}, {18446741196877827238u, 1284499087260957u, 18444077358517936618u, 2131852545989560u}}, {{-1, 0, -1, 0}, {18446742377761504394u, 1271903193137720u, 18444122143573648174u, 2078773944483804u}}, {{-1, 0, -1, 0}, {18446743606387151881u, 1258977538626663u, 18444167471687778348u, 2025787485337472u}}, {{0, 0, -1, 0}, {806826141954u, 1245754067898966u, 18444213217664471569u, 1973035063811214u}}, {{0, 0, -1, 0}, {2124242186472u, 1232263819280238u, 18444259264407894498u, 1920643682336488u}}, {{0, 0, -1, 0}, {3482646113452u, 1218536850779109u, 18444305502746799601u, 1868726431355481u}}, {{0, 0, -1, 0}, {4879745334642u, 1204602178682615u, 18444351831227032352u, 1817383442000092u}}, {{0, 0, -1, 0}, {6313244723418u, 1190487728276805u, 18444398155877538740u, 1766702806696172u}}, {{0, 0, -1, 0}, {7780856214861u, 1176220295750656u, 18444444389954938393u, 1716761464656938u}}, {{0, 0, -1, 0}, {9280307586023u, 1161825520352053u, 18444490453671251409u, 1667626050004200u}}, {{0, 0, -1, 0}, {10809350432435u, 1147327865884258u, 18444536273908908184u, 1619353700934949u}}, {{0, 0, -1, 0}, {12365767362308u, 1132750610658459u, 18444581783926734211u, 1571992828941081u}}, {{0, 0, -1, 0}, {13947378434350u, 1118115845051119u, 18444626923060188276u, 1525583847598954u}}, {{0, 0, -1, 0}, {15552046868780u, 1103444475852575u, 18444671636418744275u, 1480159860880218u}}, {{0, 0, -1, 0}, {17177684063948u, 1088756236634505u, 18444715874582944766u, 1435747311302887u}}, {{0, 0, -1, 0}, {18822253953147u, 1074069703407487u, 18444759593303318853u, 1392366588548669u}}, {{0, 0, -1, 0}, {20483776737735u, 1059402314884952u, 18444802753203047872u, 1350032599425430u}}, {{0, 0, -1, 0}, {22160332033662u, 1044770396715670u, 18444845319485979158u, 1308755300258412u}}, {{0, 0, -1, 0}, {23850061468984u, 1030189189092810u, 18444887261651330270u, 1268540192955896u}}, {{0, 0, -1, 0}, {25551170770039u, 1015672877193070u, 18444928553216192341u, 1229388786119763u}}, {{0, 0, -1, 0}, {27261931373640u, 1001234623943867u, 18444969171446730690u, 1191299022663386u}}, {{0, 0, -1, 0}, {28980681602051u, 986886604659834u, 18445009097098792191u, 1154265675463061u}}, {{0, 0, -1, 0}, {30705827436654u, 972640043131508u, 18445048314168460798u, 1118280712608512u}}, {{0, 0, -1, 0}, {32435842925121u, 958505248788954u, 18445086809652953773u, 1083333633836618u}}, {{0, 0, -1, 0}, {34169270255680u, 944491654600964u, 18445124573322120105u, 1049411779733479u}}, {{0, 0, -1, 0}, {35904719530659u, 930607855406267u, 18445161597500688029u, 1016500615276226u}}, {{0, 0, -1, 0}, {37640868270025u, 916861646406884u, 18445197876861309097u, 984583989260103u}}, {{0, 0, -1, 0}, {39376460674060u, 903260061585225u, 18445233408228360549u, 953644371120559u}}, {{0, 0, -1, 0}, {41110306672722u, 889809411835868u, 18445268190392394669u, 923663066616332u}}, {{0, 0, -1, 0}, {42841280787604u, 876515322630095u, 18445302223935062014u, 894620413789640u}}, {{0, 0, -1, 0}, {44568320830767u, 863382771056349u, 18445335511064283911u, 866495960564929u}}, {{0, 0, -1, 0}, {46290426463089u, 850416122102761u, 18445368055459407256u, 839268625289662u}}, {{0, 0, -1, 0}, {48006657633192u, 837619164068959u, 18445399862126040468u, 812916841460337u}}, {{0, 0, -1, 0}, {49716132916405u, 824995143013532u, 18445430937260242571u, 787418687815354u}}, {{0, 0, -1, 0}, {51418027771746u, 812546796160892u, 18445461288121716836u, 762752004914189u}}, {{0, 0, -1, 0}, {53111572733386u, 800276384206975u, 18445490922915645594u, 738894499260433u}}, {{0, 0, -1, 0}, {54796051551691u, 788185722477289u, 18445519850682792856u, 715823835964936u}}, {{0, 0, -1, 0}, {56470799297559u, 776276210903452u, 18445548081197495696u, 693517720885262u}}, {{0, 0, -1, 0}, {58135200442503u, 764548862795563u, 18445575624873163390u, 671953973119083u}}, {{0, 0, -1, 0}, {59788686925710u, 753004332397656u, 18445602492674904383u, 651110588672389u}}, {{0, 0, -1, 0}, {61430736218149u, 741642941222275u, 18445628696038905040u, 630965796068710u}}, {{0, 0, -1, 0}, {63060869392757u, 730464703167774u, 18445654246798190117u, 611498104613064u}}, {{0, 0, -1, 0}, {64678649208680u, 719469348428647u, 18445679157114402847u, 592686345974114u}}, {{0, 0, -1, 0}, {66283678216630u, 708656346214850u, 18445703439415251895u, 574509709700292u}}, {{0, 0, -1, 0}, {67875596891550u, 698024926300974u, 18445727106337283108u, 556947773240237u}}, {{0, 0, -1, 0}, {69454081797952u, 687574099430244u, 18445750170673645515u, 539980526994983u}}, {{0, 0, -1, 0}, {71018843792538u, 677302676601714u, 18445772645326533360u, 523588394888814u}}, {{0, 0, -1, 0}, {72569626268057u, 667209287271865u, 18445794543263998697u, 507752250907547u}}, {{0, 0, -1, 0}, {74106203441686u, 657292396504044u, 18445815877480842264u, 492453432017219u}}, {{0, 0, -1, 0}, {75628378690654u, 647550321100922u, 18445836660963303612u, 477673747842563u}}, {{0, 0, -1, 0}, {77135982937309u, 637981244756481u, 18445856906657284896u, 463395487453289u}}, {{0, 0, -1, 0}, {78628873085350u, 628583232264953u, 18445876627439855986u, 449601423576915u}}, {{0, 0, -1, 0}, {80106930508490u, 619354242824671u, 18445895836093801794u, 436274814529589u}}, {{0, 0, -1, 0}, {81570059592460u, 610292142475127u, 18445914545284985595u, 423399404131012u}}, {{0, 0, -1, 0}, {83018186330898u, 601394715705469u, 18445932767542314813u, 410959419846012u}}, {{0, 0, -1, 0}, {84451256975336u, 592659676272497u, 18445950515240108048u, 398939569373498u}}, {{0, 0, -1, 0}, {85869236739270u, 584084677265772u, 18445967800582674060u, 387325035883350u}}, {{0, 0, -1, 0}, {87272108555993u, 575667320456871u, 18445984635590924929u, 376101472083144u}}, {{0, 0, -1, 0}, {88659871889707u, 567405164969105u, 18446001032090856744u, 365254993279393u}}, {{0, 0, -1, 0}, {90032541599205u, 559295735303158u, 18446017001703741763u, 354772169582159u}}, {{0, 0, -1, 0}, {91390146853275u, 551336528753165u, 18446032555837886195u, 344640017387268u}}, {{0, 0, -1, 0}, {92732730096830u, 543525022246744u, 18446047705681817458u, 334845990257013u}}, {{0, 0, -1, 0}, {94060346066642u, 535858678641398u, 18446062462198774006u, 325377969307883u}}, {{0, 0, -1, 0}, {95373060855478u, 528334952508583u, 18446076836122379600u, 316224253202644u}}, {{0, 0, -1, 0}, {96670951023324u, 520951295435603u, 18446090837953392224u, 307373547833753u}}, {{0, 0, -1, 0}, {97954102754361u, 513705160874258u, 18446104477957425712u, 298814955775685u}}, {{0, 0, -1, 0}, {99222611058256u, 506594008564054u, 18446117766163549589u, 290537965575171u}}, {{0, 0, -1, 0}, {100476579014333u, 499615308556527u, 18446130712363679633u, 282532440940483u}}, {{0, 0, -1, 0}, {101716117057135u, 492766544866080u, 18446143326112678274u, 274788609883797u}}, {{0, 0, -1, 0}, {102941342301885u, 486045218771545u, 18446155616729090107u, 267297053864181u}}, {{0, 0, -1, 0}, {104152377908348u, 479448851791518u, 18446167593296443665u, 260048696972872u}}, {{0, 0, -1, 0}, {105349352481574u, 472974988355398u, 18446179264665055981u, 253034795197178u}}, {{0, 0, -1, 0}, {106532399508052u, 466621198190905u, 18446190639454281630u, 246246925794527u}}, {{0, 0, -1, 0}, {107701656825766u, 460385078447831u, 18446201726055152643u, 239676976803816u}}, {{0, 0, -1, 0}, {108857266126707u, 454264255576654u, 18446212532633360188u, 233317136717316u}}, {{0, 0, -1, 0}, {109999372490392u, 448256386979693u, 18446223067132533011u, 227159884332800u}}, {{0, 0, -1, 0}, {111128123946992u, 442359162451448u, 18446233337277771502u, 221197978802453u}}, {{0, 0, -1, 0}, {112243671068663u, 436570305423847u, 18446243350579399859u, 215424449892204u}}, {{0, 0, -1, 0}, {113346166587759u, 430887574031191u, 18446253114336902116u, 209832588462623u}}, {{0, 0, -1, 0}, {114435765040600u, 425308762008744u, 18446262635643010922u, 204415937180222u}}, {{0, 0, -1, 0}, {115512622435526u, 419831699438027u, 18446271921387920810u, 199168281465966u}}, {{0, 0, -1, 0}, {116576895944002u, 414454253351133u, 18446280978263600344u, 194083640686030u}}, {{0, 0, -1, 0}, {117628743613580u, 409174328205561u, 18446289812768179989u, 189156259588190u}}, {{0, 0, -1, 0}, {118668324101573u, 403989866240370u, 18446298431210394816u, 184380599985882u}}, {{0, 0, -1, 0}, {119695796428311u, 398898847723758u, 18446306839714063230u, 179751332690679u}}, {{0, 0, -1, 0}, {120711319748934u, 393899291101503u, 18446315044222584845u, 175263329692864u}}, {{0, 0, -1, 0}, {121715053142675u, 388989253055076u, 18446323050503442394u, 170911656588846u}}, {{0, 0, -1, 0}, {122707155418655u, 384166828477660u, 18446330864152694214u, 166691565253305u}}, {{0, 0, -1, 0}, {123687784937244u, 379430150375734u, 18446338490599445287u, 162598486753276u}}, {{0, 0, -1, 0}, {124657099446086u, 374777389703351u, 18446345935110286262u, 158628024500751u}}, {{0, 0, -1, 0}, {125615255929917u, 370206755135757u, 18446353202793691084u, 154775947639877u}}, {{0, 0, -1, 0}, {126562410473354u, 365716492788498u, 18446360298604365025u, 151038184664377u}}, {{0, 0, -1, 0}, {127498718135866u, 361304885887736u, 18446367227347535974u, 147410817260460u}}, {{0, 0, -1, 0}, {128424332838184u, 356970254397089u, 18446373993683182771u, 143890074370214u}}, {{0, 0, -1, 0}, {129339407259419u, 352710954605871u, 18446380602130195289u, 140472326470194u}}, {{0, 0, -1, 0}, {130244092744227u, 348525378683300u, 18446387057070461702u, 137154080059769u}}, {{0, 0, -1, 0}, {131138539219367u, 344411954202844u, 18446393362752879159u, 133931972353637u}}, {{0, 0, -1, 0}, {132022895119037u, 340369143640574u, 18446399523297284697u, 130802766172817u}}, {{0, 0, -1, 0}, {132897307318417u, 336395443851091u, 18446405542698303831u, 127763345028354u}}, {{0, 0, -1, 0}, {133761921074857u, 332489385524298u, 18446411424829114791u, 124810708391980u}}, {{0, 0, -1, 0}, {134616879976204u, 328649532626020u, 18446417173445126877u, 121941967147910u}}, {{0, 0, -1, 0}, {135462325895760u, 324874481825253u, 18446422792187571791u, 119154339220031u}}, {{0, 0, -1, 0}, {136298398953422u, 321162861910542u, 18446428284587007243u, 116445145368752u}}, {{0, 0, -1, 0}, {137125237482549u, 317513333197834u, 18446433654066732449u, 113811805151840u}}, {{0, 0, -1, 0}, {137942978002156u, 313924586931878u, 18446438903946115452u, 111251833043666u}}, {{0, 0, -1, 0}, {138751755194033u, 310395344683133u, 18446444037443832472u, 108762834707349u}}, {{0, 0, -1, 0}, {139551701884433u, 306924357741906u, 18446449057681019744u, 106342503414400u}}, {{0, 0, -1, 0}, {140342949029973u, 303510406511315u, 18446453967684338518u, 103988616606578u}}, {{0, 0, -1, 0}, {141125625707424u, 300152299900516u, 18446458770388954057u, 101699032594773u}}, {{0, 0, -1, 0}, {141899859107091u, 296848874719481u, 18446463468641429685u, 99471687389870u}}, {{0, 0, -1, 0}, {142665774529487u, 293598995076506u, 18446468065202537028u, 97304591660668u}}, {{0, 0, -1, 0}, {143423495385044u, 290401551779484u, 18446472562749983748u, 95195827814060u}}, {{0, 0, -1, 0}, {144173143196587u, 287255461741884u, 18446476963881060168u, 93143547192811u}}, {{0, 0, -1, 0}, {144914837604363u, 284159667394271u, 18446481271115206269u, 91145967386417u}}, {{0, 0, -1, 0}, {145648696373378u, 281113136102109u, 18446485486896500613u, 89201369650656u}}, {{0, 0, -1, 0}, {146374835402849u, 278114859590488u, 18446489613596072826u, 87308096431579u}}, {{0, 0, -1, 0}, {147093368737576u, 275163853376364u, 18446493653514441293u, 85464548989826u}}, {{0, 0, -1, 0}, {147804408581048u, 272259156208791u, 18446497608883777794u, 83669185121303u}}, {{0, 0, -1, 0}, {148508065310120u, 269399829517601u, 18446501481870100791u, 81920516970357u}}, {{0, 0, -1, 0}, {149204447491099u, 266584956870872u, 18446505274575399147u, 80217108931759u}}, {{0, 0, -1, 0}, {149893661897100u, 263813643441520u, 18446508989039688025u, 78557575637903u}}, {{0, 0, -1, 0}, {150575813526528u, 261085015483265u, 18446512627242998754u, 76940580027770u}}, {{0, 0, -1, 0}, {151251005622559u, 258398219816175u, 18446516191107304423u, 75364831494344u}}, {{0, 0, -1, 0}, {151919339693515u, 255752423321980u, 18446519682498382973u, 73829084107265u}}, {{0, 0, -1, 0}, {152580915534006u, 253146812449257u, 18446523103227619538u, 72332134907635u}}, {{0, 0, -1, 0}, {153235831246750u, 250580592728608u, 18446526455053749776u, 70872822272030u}}, {{0, 0, -1, 0}, {153884183264978u, 248052988297864u, 18446529739684545902u, 69450024342841u}}, {{0, 0, -1, 0}, {154526066375324u, 245563241437373u, 18446532958778447119u, 68062657522226u}}, {{0, 0, -1, 0}, {155161573741140u, 243110612115358u, 18446536113946136130u, 66709675027022u}}, {{0, 0, -1, 0}, {155790796926145u, 240694377543335u, 18446539206752063348u, 65390065502102u}}, {{0, 0, -1, 0}, {156413825918345u, 238313831741552u, 18446542238715920439u, 64102851689727u}}, {{0, 0, -1, 0}, {157030749154172u, 235968285114378u, 18446545211314064769u, 62847089152597u}}, {{0, 0, -1, 0}, {157641653542766u, 233657064035587u, 18446548125980896304u, 61621865048319u}}, {{0, 0, -1, 0}, {158246624490359u, 231379510443417u, 18446550984110188471u, 60426296953183u}}, {{0, 0, -1, 0}, {158845745924717u, 229134981445322u, 18446553787056374474u, 59259531733170u}}, {{0, 0, -1, 0}, {159439100319576u, 226922848932291u, 18446556536135790493u, 58120744460223u}}, {{0, 0, -1, 0}, {160026768719059u, 224742499202606u, 18446559232627877181u, 57009137371881u}}, {{0, 0, -1, 0}, {160608830762015u, 222593332594893u, 18446561877776340828u, 55923938872477u}}, {{0, 0, -1, 0}, {161185364706253u, 220474763130348u, 18446564472790275533u, 54864402574150u}}, {{0, 0, -1, 0}, {161756447452651u, 218386218163957u, 18446567018845247669u, 53829806376007u}}, {{0, 0, -1, 0}, {162322154569095u, 216327138044569u, 18446569517084343919u, 52819451579849u}}, {{0, 0, -1, 0}, {162882560314237u, 214296975783663u, 18446571968619184096u, 51832662040920u}}, {{0, 0, -1, 0}, {163437737661050u, 212295196732631u, 18446574374530899945u, 50868783352220u}}, {{0, 0, -1, 0}, {163987758320141u, 210321278268427u, 18446576735871081079u, 49927182060992u}}, {{0, 0, -1, 0}, {164532692762838u, 208374709487389u, 18446579053662689171u, 49007244916016u}}, {{0, 0, -1, 0}, {165072610244003u, 206454990907089u, 18446581328900941482u, 48108378144455u}}, {{0, 0, -1, 0}, {165607578824575u, 204561634176008u, 18446583562554164787u, 47230006756991u}}, {{0, 0, -1, 0}, {166137665393828u, 202694161790893u, 18446585755564620705u, 46371573880105u}}, {{0, 0, -1, 0}, {166662935691330u, 200852106821601u, 18446587908849303427u, 45532540114349u}}, {{0, 0, -1, 0}, {167183454328596u, 199035012643261u, 18446590023300710802u, 44712382917538u}}, {{0, 0, -1, 0}, {167699284810433u, 197242432675590u, 18446592099787589683u, 43910596011841u}}, {{0, 0, -1, 0}, {168210489555957u, 195473930129184u, 18446594139155656453u, 43126688813761u}}, {{0, 0, -1, 0}, {168717129919289u, 193729077758619u, 18446596142228293569u, 42360185886074u}}, {{0, 0, -1, 0}, {169219266209926u, 192007457622186u, 18446598109807222979u, 41610626410814u}}, {{0, 0, -1, 0}, {169716957712772u, 190308660848110u, 18446600042673157202u, 40877563682443u}}, {{0, 0, -1, 0}, {170210262707840u, 188632287407067u, 18446601941586428854u, 40160564620366u}}, {{0, 0, -1, 0}, {170699238489614u, 186977945890858u, 18446603807287599385u, 39459209300005u}}, {{0, 0, -1, 0}, {171183941386077u, 185345253297069u, 18446605640498047724u, 38773090501673u}}, {{0, 0, -1, 0}, {171664426777396u, 183733834819566u, 18446607441920539568u, 38101813276516u}}, {{0, 0, -1, 0}, {172140749114283u, 182143323644662u, 18446609212239777963u, 37444994528823u}}, {{0, 0, -1, 0}, {172612961936002u, 180573360752825u, 18446610952122935842u, 36802262614052u}}, {{0, 0, -1, 0}, {173081117888058u, 179023594725754u, 18446612662220171156u, 36173256951915u}}, {{0, 0, -1, 0}, {173545268739545u, 177493681558694u, 18446614343165125187u, 35557627653930u}}, {{0, 0, -1, 0}, {174005465400166u, 175983284477848u, 18446615995575404657u, 34955035164840u}}, {{0, 0, -1, 0}, {174461757936928u, 174492073762737u, 18446617620053048162u, 34365149917348u}}, {{0, 0, -1, 0}, {174914195590508u, 173019726573383u, 18446619217184977521u, 33787651999632u}}, {{0, 0, -1, 0}, {175362826791306u, 171565926782175u, 18446620787543434518u, 33222230835121u}}, {{0, 0, -1, 0}, {175807699175172u, 170130364810285u, 18446622331686403590u, 32668584874052u}}, {{0, 0, -1, 0}, {176248859598829u, 168712737468526u, 18446623850158020912u, 32126421296321u}}, {{0, 0, -1, 0}, {176686354154978u, 167312747802500u, 18446625343488970378u, 31595455725200u}}, {{0, 0, -1, 0}, {177120228187106u, 165930104941944u, 18446626812196866916u, 31075411951466u}}, {{0, 0, -1, 0}, {177550526303984u, 164564523954127u, 18446628256786627583u, 30566021667542u}}, {{0, 0, -1, 0}, {177977292393882u, 163215725701217u, 18446629677750830862u, 30067024211259u}}, {{0, 0, -1, 0}, {178400569638481u, 161883436701473u, 18446631075570064563u, 29578166318841u}}, {{0, 0, -1, 0}, {178820400526502u, 160567388994179u, 18446632450713262727u, 29099201886776u}}, {{0, 0, -1, 0}, {179236826867054u, 159267320008199u, 18446633803638031913u, 28629891742197u}}, {{0, 0, -1, 0}, {179649889802705u, 157982972434054u, 18446635134790967218u, 28170003421467u}}, {{0, 0, -1, 0}, {180059629822280u, 156714094099425u, 18446636444607958406u, 27719310956627u}}, {{0, 0, -1, 0}, {180466086773389u, 155460437847982u, 18446637733514486460u, 27277594669420u}}, {{0, 0, -1, 0}, {180869299874698u, 154221761421434u, 18446639001925910900u, 26844640972576u}}, {{0, 0, -1, 0}, {181269307727935u, 152997827344732u, 18446640250247748179u, 26420242178101u}}, {{0, 0, -1, 0}, {181666148329651u, 151788402814303u, 18446641478875941452u, 26004196312279u}}, {{0, 0, -1, 0}, {182059859082727u, 150593259589263u, 18446642688197122026u, 25596306937152u}}, {{0, 0, -1, 0}, {182450476807642u, 149412173885491u, 18446643878588862754u, 25196382978200u}}, {{0, 0, -1, 0}, {182838037753497u, 148244926272507u, 18446645050419923664u, 24804238558020u}}, }; static constexpr table_ref COTH_K32_TABLE{COTH_K32_KNOTS, COTH_K32_PIECES, 256, 48}; static constexpr knot SEC_KNOTS[] = { {0, 0}, {96013754435298304, 62}, {191948395975675904, 62}, {287727869793130752, 62}, {383276429964749568, 62}, {478518819521583360, 62}, {573383355364342400, 62}, {667804950721882240, 62}, {761716517326119168, 62}, {855060625129848576, 62}, {947778032998256896, 62}, {1039819187808073728, 62}, {1131138462231227648, 62}, {1221691354813222912, 62}, {1311440082007373568, 62}, {1400353440504419584, 62}, {1488398504495378944, 62}, {1575554197275840256, 62}, {1661794925519341568, 62}, {1747103975985191424, 62}, {1831467982965648896, 62}, {1914874244273581568, 62}, {1997313269897646080, 62}, {2078781181524017152, 62}, {2159270772142012160, 62}, {2238781508346146560, 62}, {2317311948621550080, 62}, {2394864592901033984, 62}, {2471442149015211520, 62}, {2547047529137665024, 62}, {2621687307113760256, 62}, {2695366981758424064, 62}, {2768094405983248384, 62}, {2839877447928080896, 62}, {2910723989324439552, 62}, {2980643004909079552, 62}, {3049644504128983040, 62}, {3117738421387796480, 62}, {3184935655149483008, 62}, {3251245962545888256, 62}, {3316680038172344320, 62}, {3381249460653007872, 62}, {3444964670359626240, 62}, {3507836967989146624, 62}, {3569877504737413120, 62}, {3631098230940420096, 62}, {3691509979665980416, 62}, {3751123901737600000, 62}, {3809950988456693760, 62}, {3868002971592187904, 62}, {3925290506782746624, 62}, {3981824971742568448, 62}, {4037617128563749888, 62}, {4092677575212432384, 62}, {4147017168249309184, 62}, {4200646588853989376, 62}, {4253576550438526976, 62}, {4305817185221063680, 62}, {4357378865539467264, 62}, {4408271595696466432, 62}, {4458505316420203520, 62}, {4508089902602182656, 62}, {4557034972021425152, 62}, {4605350173169551360, 62}, {1, 0}, }; static constexpr cubic_bits SEC_PIECES[] = { {{0, 0, 0, 0}, {4503599626846223u, 805757789u, 1388829840362990u, 14868507435276u}}, {{0, 0, 0, 0}, {4503599324519472u, 41141500572u, 1386970060323488u, 44641757400788u}}, {{0, 0, 0, 0}, {4503597102013178u, 198090042762u, 1383238403298487u, 74524085389952u}}, {{0, 0, 0, 0}, {4503589697396191u, 550864441045u, 1377610610093781u, 104588563828557u}}, {{0, 0, 0, 0}, {4503572152641839u, 1180872073022u, 1370050403322770u, 134907908575860u}}, {{0, 0, 0, 0}, {4503537736673281u, 2172569470791u, 1360509559000128u, 165554812379697u}}, {{0, 0, 0, 0}, {4503477842523258u, 3614343294026u, 1348927666751799u, 196602793503683u}}, {{0, 0, 0, 0}, {4503381862167343u, 5599327108647u, 1335232447782659u, 228125200739032u}}, {{0, 0, 0, 0}, {4503237038619838u, 8226222305701u, 1319339744840649u, 260195633966004u}}, {{0, 0, 0, 0}, {4503028296762496u, 11600096346392u, 1301153597770119u, 292887929552130u}}, {{0, 0, 0, 0}, {4502738056278460u, 15833139331316u, 1280566376567566u, 326276159307278u}}, {{0, 0, 0, 0}, {4502346012614044u, 21045580010479u, 1257458128466343u, 360435721774261u}}, {{0, 0, 0, 0}, {4501828922746124u, 27366252278571u, 1231697523044849u, 395441886295254u}}, {{0, 0, 0, 0}, {4501160364395473u, 34933336862285u, 1203141677330019u, 431370356224333u}}, {{0, 0, 0, 0}, {4500310454352674u, 43895342626261u, 1171635181941448u, 468298515787618u}}, {{0, 0, 0, 0}, {4499245601544556u, 54411505017194u, 1137011288274987u, 506303932302313u}}, {{0, 0, 0, 0}, {4497928196153214u, 66652744812388u, 1099090902390114u, 545465629470701u}}, {{0, 0, 0, 0}, {4496316311971400u, 80802296288729u, 1057682830547446u, 585863722897460u}}, {{0, 0, 0, 0}, {4494363424360027u, 97056139529951u, 1012584361132296u, 627578937608547u}}, {{0, 0, 0, 0}, {4492017986262619u, 115624494573319u, 963578923600652u, 670694744098716u}}, {{0, 0, 0, 0}, {4489223149618102u, 136731941333162u, 910437686837961u, 715295714813559u}}, {{0, 0, 0, 0}, {4485916424231319u, 160618053574985u, 852919463099762u, 761467656106809u}}, {{0, 0, 0, 0}, {4482029196442549u, 187538924564568u, 790768564016141u, 809299258321465u}}, {{0, 0, 0, 0}, {4477486445294208u, 217767138274084u, 723716490861086u, 858880584073916u}}, {{0, 0, 0, 0}, {4472206336410398u, 251592628179504u, 651481290298241u, 910303565110156u}}, {{0, 0, 0, 0}, {4466099707419713u, 289324086772611u, 573765918300562u, 963663040389240u}}, {{0, 0, 0, 0}, {4459069688691027u, 331289405560526u, 490258736117020u, 1019056232966139u}}, {{0, 0, 0, 0}, {4451011172697966u, 377836972108923u, 400632251043281u, 1076583431758307u}}, {{0, 0, 0, 0}, {4441810512312606u, 429335564873888u, 304544591911040u, 1136346895376004u}}, {{0, 0, 0, 0}, {4431344847034315u, 486176350688696u, 201636912445749u, 1198452383533335u}}, {{0, 0, 0, 0}, {4419481605781875u, 548773703929197u, 91533242045224u, 1263009012489433u}}, {{0, 0, -1, 0}, {4406078045709129u, 617565815463997u, 18446717914339482225u, 1330128997887019u}}, {{0, 0, -1, 0}, {4390980577214327u, 693016340038603u, 18446592221231612951u, 1399928405659907u}}, {{0, 0, -1, 0}, {4374024396947555u, 775614410478720u, 18446458098641873297u, 1472526314799722u}}, {{0, 0, -1, 0}, {4355032806233888u, 865876217249753u, 18446315098646259130u, 1548045509291704u}}, {{0, 0, -1, 0}, {4333816410016300u, 964347000707328u, 18446162752407081071u, 1626613320093196u}}, {{0, 0, -1, 0}, {4310172550918291u, 1071601809538029u, 18446000570251733830u, 1708361341116588u}}, {{0, 0, -1, 0}, {4283884601538110u, 1188246879443187u, 18445828040766603301u, 1793425679180255u}}, {{0, 0, -1, 0}, {4254721447376373u, 1314920102563427u, 18445644631261113854u, 1881946524285786u}}, {{0, 0, -1, 0}, {4222436827916558u, 1452292138909396u, 18445449787200836216u, 1974068273920737u}}, {{0, 0, -1, 0}, {4186768070306019u, 1601069986043151u, 18445242928281873624u, 2069941187476058u}}, {{0, 0, -1, 0}, {4147435726877225u, 1761996567700875u, 18445023450276401298u, 2169720263776701u}}, {{0, 0, -1, 0}, {4104142822367041u, 1935852026929525u, 18444790724336467632u, 2273565386953758u}}, {{0, 0, -1, 0}, {4056573678467495u, 2123456611089307u, 18444544094260421615u, 2381642343878881u}}, {{0, 0, -1, 0}, {4004392925286533u, 2325672640085806u, 18444282875148401686u, 2494123159628983u}}, {{0, 0, -1, 0}, {3947244898679938u, 2543404903512394u, 18444006354124644810u, 2611185538474167u}}, {{0, 0, -1, 0}, {3884752994396720u, 2777601288936513u, 18443713790624505066u, 2733012559589042u}}, {{0, 0, -1, 0}, {3816518290034919u, 3029256110860788u, 18443404413319251470u, 2859793772664779u}}, {{0, 0, -1, 0}, {3742118172708023u, 3299413211818635u, 18443077417533592592u, 2991726009439328u}}, {{0, 0, -1, 0}, {3661105717081314u, 3589166206740806u, 18442731966229012795u, 3129012722618916u}}, {{0, 0, -1, 0}, {3573008636574093u, 3899660316420338u, 18442367188963859988u, 3271864190901060u}}, {{0, 0, -1, 0}, {3477327784005046u, 4232095676530901u, 18441982179210015471u, 3420498338437416u}}, {{0, 0, -1, 0}, {3373536698632322u, 4587726923696869u, 18441575996038415340u, 3575139852997511u}}, {{0, 0, -1, 0}, {3261079683893170u, 4967867842882771u, 18441147659949179721u, 3736021569391167u}}, {{0, 0, -1, 0}, {3139370404137901u, 5373894023375237u, 18440696151175489714u, 3903384842703320u}}, {{0, 0, -1, 0}, {3007790678838892u, 5807244773025314u, 18440220408857149473u, 4077479591952451u}}, {{0, 0, -1, 0}, {2865689601586583u, 6269423937491997u, 18439719331398504166u, 4258563925649752u}}, {{0, 0, -1, 0}, {2712381957726895u, 6762003011916733u, 18439191774287566789u, 4446904711464010u}}, {{0, 0, -1, 0}, {2547146448484456u, 7286624731718881u, 18438636547519138840u, 4642778250901264u}}, {{0, 0, -1, 0}, {2369224625697668u, 7845004311180619u, 18438052415569907290u, 4846470038556684u}}, {{0, 0, -1, 0}, {2177818835689075u, 8438933756012842u, 18437438094155806500u, 5058275651251703u}}, {{0, 0, -1, 0}, {1972090895439904u, 9070283761521641u, 18436792249597042168u, 5278500706347761u}}, {{0, 0, -1, 0}, {1751160216278194u, 9741007268445243u, 18436113496486882359u, 5507461405964279u}}, {{0, 0, -1, 0}, {1618711936676416u, 10139649612987866u, 18435713552208658242u, 5641211623754705u}}, }; static constexpr table_ref SEC_TABLE{SEC_KNOTS, SEC_PIECES, 64, 52}; static constexpr knot GSEC_KNOTS[] = { {0, 0}, {457594750215015424, 62}, {812297712354075520, 62}, {1130386210204700416, 62}, {1426312963727272704, 62}, {1706392626525370368, 62}, {1974110680108110080, 62}, {2231656950995118592, 62}, {2480518266189266944, 62}, {2721765950175966208, 62}, {2956206272138330624, 62}, {3184464167883414528, 62}, {3407038777806508032, 62}, {3624337361502070784, 62}, {3836698019261208576, 62}, {4044407130959068160, 62}, {4247709602723394560, 62}, {4446818937763607040, 62}, {1, 0}, }; static constexpr cubic_bits GSEC_PIECES[] = { {{-1, 0, -1, 0}, {18446744073709420545u, 147379990913844u, 18446744072064536628u, 10625866943520u}}, {{-1, 0, -1, 0}, {18446744073581514097u, 147383585886098u, 18446744037578161556u, 10739216347965u}}, {{-1, 0, -1, 0}, {18446744072576397771u, 147400389155476u, 18446743943316202074u, 10916696725460u}}, {{-1, 0, -1, 0}, {18446744069135445924u, 147442157388831u, 18446743773810014815u, 11146691317869u}}, {{-1, 0, -1, 0}, {18446744060860527905u, 147522051551410u, 18446743516255060721u, 11423917835828u}}, {{-1, 0, -1, 0}, {18446744044475990587u, 147654499893644u, 18446743158983445427u, 11745500619048u}}, {{-1, 0, -1, 0}, {18446744015782904833u, 147855173267110u, 18446742690818715914u, 12109839358570u}}, {{-1, 0, -1, 0}, {18446743969606082963u, 148141009372921u, 18446742100725763886u, 12516128064329u}}, {{-1, 0, -1, 0}, {18446743899734766147u, 148530260878748u, 18446741377596058590u, 12964106422538u}}, {{-1, 0, -1, 0}, {18446743798855984237u, 149042565043397u, 18446740510090331560u, 13453922993835u}}, {{-1, 0, -1, 0}, {18446743658481917241u, 149699021860682u, 18446739486527121230u, 13986046645706u}}, {{-1, 0, -1, 0}, {18446743468871172379u, 150522280381455u, 18446738294794843846u, 14561209010448u}}, {{-1, 0, -1, 0}, {18446743218942926167u, 151536636099959u, 18446736922273193658u, 15180368006164u}}, {{-1, 0, -1, 0}, {18446742896185593572u, 152768130783206u, 18446735355770443276u, 15844679914097u}}, {{-1, 0, -1, 0}, {18446742486558371323u, 154244661417258u, 18446733581462512978u, 16555481599827u}}, {{-1, 0, -1, 0}, {18446741974386507597u, 155996093633085u, 18446731584838251535u, 17314277158189u}}, {{-1, 0, -1, 0}, {18446741342249554300u, 158054382037246u, 18446729350645875941u, 18122729118558u}}, {{-1, 0, -1, 0}, {18446740635746066287u, 160255149673146u, 18446727065346832013u, 18913809791149u}}, }; static constexpr table_ref GSEC_TABLE{GSEC_KNOTS, GSEC_PIECES, 18, 50}; static constexpr knot CSCH_KNOTS[] = { {0, 0}, {359518313040231424, 62}, {639168658796525568, 62}, {891308845675738112, 62}, {1127434421907134720, 62}, {1352700585242944512, 62}, {1569992238440082176, 62}, {1781183173865200640, 62}, {1987541943670509056, 62}, {2190034005590039040, 62}, {2389391482003464704, 62}, {2586215011014578176, 62}, {2781008316867646464, 62}, {2974166852249086976, 62}, {3166066862634351104, 62}, {3357018880648786944, 62}, {3547318230636569600, 62}, {3737213235160237056, 62}, {3926980746700631040, 62}, {4116830859891294208, 62}, {4306997154726673408, 62}, {4497696211222557184, 62}, {1, 0}, }; static constexpr cubic_bits CSCH_PIECES[] = { {{0, -1, 0, 0}, {65527u, 18446650248693305404u, 1332025197u, 10926102823000u}}, {{0, -1, 0, 0}, {63607574u, 18446650246420116694u, 29091165597u, 10809945741769u}}, {{0, -1, 0, 0}, {558938962u, 18446650235895599868u, 104133025225u, 10630345931475u}}, {{0, -1, 0, 0}, {2235259740u, 18446650210087190231u, 236982840112u, 10401693013325u}}, {{0, -1, 0, 0}, {6208402527u, 18446650161553470701u, 434942542998u, 10132080396064u}}, {{0, -1, 0, 0}, {13942833593u, 18446650082676487102u, 703372004496u, 9827241334710u}}, {{0, -1, 0, 0}, {27229344344u, 18446649965827142284u, 1046183154440u, 9491736988413u}}, {{0, -1, 0, 0}, {48160314099u, 18446649803485506124u, 1466132169620u, 9129418952525u}}, {{0, -1, 0, 0}, {79101026777u, 18446649588348627009u, 1964980894011u, 8743680707797u}}, {{0, -1, 0, 0}, {122660789150u, 18446649313407387804u, 2543642791545u, 8337573460078u}}, {{0, -1, 0, 0}, {181658518871u, 18446648972035991260u, 3202242871660u, 7913911565869u}}, {{0, -1, 0, 0}, {259094977504u, 18446648558022515445u, 3940258821080u, 7475280490180u}}, {{0, -1, 0, 0}, {358110767322u, 18446648065667781751u, 4756499867863u, 7024125811239u}}, {{0, -1, 0, 0}, {481941955483u, 18446647489866735273u, 5649125463129u, 6562786196547u}}, {{0, -1, 0, 0}, {633896305091u, 18446646826082445535u, 6615811902122u, 6093444495154u}}, {{0, -1, 0, 0}, {817305025202u, 18446646070432542315u, 7653718623140u, 5618182499501u}}, {{0, -1, 0, 0}, {1035462766920u, 18446645219799357568u, 8759437398301u, 5139025609043u}}, {{0, -1, 0, 0}, {1291626056885u, 18446644271698930793u, 9929252424704u, 4657847934659u}}, {{0, -1, 0, 0}, {1588935202076u, 18446643224456244475u, 11158975721477u, 4176467456259u}}, {{0, -1, 0, 0}, {1930361077810u, 18446642077250747056u, 12443976171681u, 3696642732116u}}, {{0, -1, 0, 0}, {2318692911743u, 18446640830025324243u, 13779344348591u, 3220023893728u}}, {{0, -1, 0, 0}, {2664610485714u, 18446639762237028784u, 14878086839716u, 2843142442041u}}, }; static constexpr table_ref CSCH_TABLE{CSCH_KNOTS, CSCH_PIECES, 22, 49}; static constexpr table_ref const* const COTH_BY_K[7] = { &COTH_K8_TABLE, &COTH_K12_TABLE, &COTH_K16_TABLE, &COTH_K20_TABLE, &COTH_K24_TABLE, &COTH_K28_TABLE, &COTH_K32_TABLE, }; static constexpr table_ref const* const SHARED_TABLE[12] = { &LN_TABLE, &EXP_TABLE, &SIN_TABLE, &TANF_TABLE, &TANG_TABLE, &SINH_TABLE, &COSH_TABLE, &SQRT_TABLE, nullptr, &SEC_TABLE, &GSEC_TABLE, &CSCH_TABLE, };