curve25519_dalek/backend/vector/ifma/
constants.rs

1// -*- mode: rust; -*-
2//
3// This file is part of curve25519-dalek.
4// Copyright (c) 2018-2019 Henry de Valence
5// See LICENSE for licensing information.
6//
7// Authors:
8// - Henry de Valence <hdevalence@hdevalence.ca>
9
10//! This module contains constants used by the IFMA backend.
11
12use crate::backend::vector::packed_simd::u64x4;
13
14#[cfg(feature = "precomputed-tables")]
15use crate::window::NafLookupTable8;
16
17use super::edwards::{CachedPoint, ExtendedPoint};
18use super::field::{F51x4Reduced, F51x4Unreduced};
19
20/// The identity element as an `ExtendedPoint`.
21pub(crate) static EXTENDEDPOINT_IDENTITY: ExtendedPoint = ExtendedPoint(F51x4Unreduced([
22    u64x4::new_const(0, 1, 1, 0),
23    u64x4::new_const(0, 0, 0, 0),
24    u64x4::new_const(0, 0, 0, 0),
25    u64x4::new_const(0, 0, 0, 0),
26    u64x4::new_const(0, 0, 0, 0),
27]));
28
29/// The identity element as a `CachedPoint`.
30pub(crate) static CACHEDPOINT_IDENTITY: CachedPoint = CachedPoint(F51x4Reduced([
31    u64x4::new_const(121647, 121666, 243332, 2251799813685229),
32    u64x4::new_const(2251799813685248, 0, 0, 2251799813685247),
33    u64x4::new_const(2251799813685247, 0, 0, 2251799813685247),
34    u64x4::new_const(2251799813685247, 0, 0, 2251799813685247),
35    u64x4::new_const(2251799813685247, 0, 0, 2251799813685247),
36]));
37
38/// Odd multiples of the Ed25519 basepoint:
39#[cfg(feature = "precomputed-tables")]
40pub(crate) static BASEPOINT_ODD_LOOKUP_TABLE: NafLookupTable8<CachedPoint> = NafLookupTable8([
41    CachedPoint(F51x4Reduced([
42        u64x4::new_const(1277522120965857, 73557767439946, 243332, 1943719795065404),
43        u64x4::new_const(108375142003455, 341984820733594, 0, 2097709862669256),
44        u64x4::new_const(150073485536043, 750646439938056, 0, 581130035634455),
45        u64x4::new_const(2149983732744869, 1903255931888577, 0, 646644904824193),
46        u64x4::new_const(291045673509296, 1060034214701851, 0, 325245010451737),
47    ])),
48    CachedPoint(F51x4Reduced([
49        u64x4::new_const(
50            1970681836121889,
51            1660307753655178,
52            1077207637163462,
53            1436413309977108,
54        ),
55        u64x4::new_const(
56            158785710838757,
57            919645875412951,
58            174577133496574,
59            2213787394009350,
60        ),
61        u64x4::new_const(
62            1017606396438281,
63            1240932851489554,
64            918203302506967,
65            1239827708070863,
66        ),
67        u64x4::new_const(
68            1748989883612327,
69            1745367742532782,
70            1168385548387,
71            1211387683826673,
72        ),
73        u64x4::new_const(
74            799349980018733,
75            1471088235739693,
76            1505351346057417,
77            2104975925096407,
78        ),
79    ])),
80    CachedPoint(F51x4Reduced([
81        u64x4::new_const(
82            171437462972293,
83            36016853025886,
84            1184164975342640,
85            1633525003912147,
86        ),
87        u64x4::new_const(
88            2113383632509037,
89            1946216474924125,
90            1884174984466256,
91            1373317790955847,
92        ),
93        u64x4::new_const(
94            791293623466401,
95            1796466048084189,
96            444977763198796,
97            629823271230872,
98        ),
99        u64x4::new_const(
100            1093217720067380,
101            2157024270666135,
102            238122980108466,
103            806820763806847,
104        ),
105        u64x4::new_const(
106            793658959468458,
107            368578641413741,
108            11592529764159,
109            2144017075993471,
110        ),
111    ])),
112    CachedPoint(F51x4Reduced([
113        u64x4::new_const(
114            1538027396670268,
115            1588896993892061,
116            675619548648376,
117            788373514423313,
118        ),
119        u64x4::new_const(
120            1987517656073805,
121            1940987929951188,
122            666993851697339,
123            2040540928108427,
124        ),
125        u64x4::new_const(
126            375514548584082,
127            1726008037083790,
128            1070069155000872,
129            570111103756303,
130        ),
131        u64x4::new_const(
132            772223645372213,
133            2123395244967674,
134            868238486911408,
135            1846639042240362,
136        ),
137        u64x4::new_const(
138            872865734460736,
139            32277956842850,
140            1701451131455402,
141            773883376061880,
142        ),
143    ])),
144    CachedPoint(F51x4Reduced([
145        u64x4::new_const(
146            1845177363882902,
147            275858237213625,
148            1052127336883600,
149            171072805852218,
150        ),
151        u64x4::new_const(
152            139016783952609,
153            462699304987089,
154            430046471494974,
155            410922720999257,
156        ),
157        u64x4::new_const(
158            846403935976337,
159            243817706931454,
160            971825428236901,
161            571800039596794,
162        ),
163        u64x4::new_const(
164            807642685434918,
165            1933536976438782,
166            812324278898440,
167            688391556487313,
168        ),
169        u64x4::new_const(
170            76239450396192,
171            629532732688863,
172            1833302026979779,
173            650067934544499,
174        ),
175    ])),
176    CachedPoint(F51x4Reduced([
177        u64x4::new_const(
178            1373931604989264,
179            331159264656614,
180            364391529321767,
181            874765630865409,
182        ),
183        u64x4::new_const(
184            2109908262150241,
185            473400816504190,
186            91544045127333,
187            976307977609515,
188        ),
189        u64x4::new_const(
190            330175435673491,
191            2126511895885904,
192            1022944071588421,
193            2158480209801463,
194        ),
195        u64x4::new_const(
196            1305666795527971,
197            162063591028664,
198            2193154870675382,
199            1789166662611800,
200        ),
201        u64x4::new_const(
202            817858592500508,
203            1672743239440202,
204            859976879916778,
205            1167423340862516,
206        ),
207    ])),
208    CachedPoint(F51x4Reduced([
209        u64x4::new_const(
210            274334925170164,
211            565841102587251,
212            603083835949120,
213            607539210240861,
214        ),
215        u64x4::new_const(
216            196754662972649,
217            1339063476699167,
218            1406077076979491,
219            896902435668469,
220        ),
221        u64x4::new_const(
222            397962210956733,
223            174839587476217,
224            1381082665748936,
225            175195877334136,
226        ),
227        u64x4::new_const(
228            717429432748391,
229            1635309821746318,
230            363374010274647,
231            882908746261699,
232        ),
233        u64x4::new_const(
234            600946602802781,
235            1946596133370711,
236            1532135183320341,
237            690530671668253,
238        ),
239    ])),
240    CachedPoint(F51x4Reduced([
241        u64x4::new_const(
242            2074443704000945,
243            2163534804938345,
244            425423840926528,
245            1100826171404853,
246        ),
247        u64x4::new_const(
248            111700142796101,
249            1456893872751964,
250            1186145518682968,
251            2192182627706116,
252        ),
253        u64x4::new_const(
254            1848722121856066,
255            2123239575044749,
256            1323870754599272,
257            883211262889775,
258        ),
259        u64x4::new_const(
260            938263017712916,
261            689670293631396,
262            183944529557576,
263            501908638166580,
264        ),
265        u64x4::new_const(
266            2170571907220631,
267            36636756989655,
268            1875035480138608,
269            803703278398018,
270        ),
271    ])),
272    CachedPoint(F51x4Reduced([
273        u64x4::new_const(
274            1053429956874064,
275            1636640618139765,
276            1556890827801070,
277            2142720579528828,
278        ),
279        u64x4::new_const(
280            1814240918422814,
281            692326274601777,
282            1054896561802157,
283            2025454041705534,
284        ),
285        u64x4::new_const(
286            2109495823888757,
287            1287497869997176,
288            194170063200096,
289            621116840113213,
290        ),
291        u64x4::new_const(
292            2156505873679998,
293            2197064359737385,
294            1312887672223536,
295            369862818895912,
296        ),
297        u64x4::new_const(
298            977381163563657,
299            1878897311974033,
300            2144566861359744,
301            1832960882773351,
302        ),
303    ])),
304    CachedPoint(F51x4Reduced([
305        u64x4::new_const(
306            1266492498289486,
307            1301524759372145,
308            324789537938521,
309            442710471023019,
310        ),
311        u64x4::new_const(
312            1232722320001345,
313            1191193089162455,
314            176474006074813,
315            2158950213252857,
316        ),
317        u64x4::new_const(
318            1901782191467749,
319            494791441598902,
320            1820415815322129,
321            854954583485223,
322        ),
323        u64x4::new_const(
324            1511383667649702,
325            792536415032464,
326            2027741263854728,
327            1727944381044738,
328        ),
329        u64x4::new_const(
330            606355788891204,
331            1670687521471220,
332            582824350365415,
333            1509135066079912,
334        ),
335    ])),
336    CachedPoint(F51x4Reduced([
337        u64x4::new_const(
338            1079942762813598,
339            2015830004785901,
340            479916361323351,
341            1907956590950158,
342        ),
343        u64x4::new_const(
344            2053400302939156,
345            1319799126867070,
346            19493088767391,
347            1908755581402373,
348        ),
349        u64x4::new_const(
350            2235858054780980,
351            885832711204321,
352            810332865560178,
353            103174191215441,
354        ),
355        u64x4::new_const(
356            1843466881032833,
357            355511728384038,
358            693846715794114,
359            186545012724117,
360        ),
361        u64x4::new_const(
362            1661758432892509,
363            1491022339899281,
364            698941123765263,
365            174945407208560,
366        ),
367    ])),
368    CachedPoint(F51x4Reduced([
369        u64x4::new_const(
370            1075933251927831,
371            400263885306647,
372            1308157532880528,
373            347933379126665,
374        ),
375        u64x4::new_const(
376            673811632329433,
377            1584860147186478,
378            271778891257244,
379            498194055154207,
380        ),
381        u64x4::new_const(
382            703783427747558,
383            1051624728592032,
384            1371463103351544,
385            230351033002960,
386        ),
387        u64x4::new_const(
388            860729466483372,
389            421647596766583,
390            1520613871336707,
391            635298775280054,
392        ),
393        u64x4::new_const(
394            1168352891728845,
395            1691216293752089,
396            1799491997061519,
397            399728882318504,
398        ),
399    ])),
400    CachedPoint(F51x4Reduced([
401        u64x4::new_const(
402            420156727446514,
403            1483649215777128,
404            165508610199900,
405            1918121104840431,
406        ),
407        u64x4::new_const(
408            2129902293682427,
409            730952770435213,
410            2184527544565390,
411            1939880362232986,
412        ),
413        u64x4::new_const(
414            1771978364905086,
415            510975579746524,
416            927564335219142,
417            177574146260558,
418        ),
419        u64x4::new_const(
420            2164104536437514,
421            1532598873799015,
422            406875369182421,
423            1367005937406517,
424        ),
425        u64x4::new_const(
426            35073200082587,
427            1981124717036219,
428            1854087014063833,
429            122419694385217,
430        ),
431    ])),
432    CachedPoint(F51x4Reduced([
433        u64x4::new_const(
434            1963785875777739,
435            411497142699119,
436            1974557512687408,
437            1268304422747183,
438        ),
439        u64x4::new_const(
440            762752575978150,
441            1443822019541748,
442            1331556159904338,
443            377726798263780,
444        ),
445        u64x4::new_const(
446            825953972847841,
447            353487068141356,
448            1955697322427207,
449            2048226560172078,
450        ),
451        u64x4::new_const(
452            1482378558684434,
453            657691905625918,
454            923870001994493,
455            1694132799397736,
456        ),
457        u64x4::new_const(
458            1643904759603122,
459            170495566698285,
460            1218312703413378,
461            784318735038131,
462        ),
463    ])),
464    CachedPoint(F51x4Reduced([
465        u64x4::new_const(
466            939230507241903,
467            2238763473105245,
468            1827325199528162,
469            1153939339775538,
470        ),
471        u64x4::new_const(
472            38544505283339,
473            258889431497015,
474            351721979677947,
475            1357907379592829,
476        ),
477        u64x4::new_const(
478            1393974676373341,
479            1131355528938676,
480            473104915298872,
481            978783482501776,
482        ),
483        u64x4::new_const(
484            2131516168980501,
485            2113911780991092,
486            1477027502354261,
487            542884524860340,
488        ),
489        u64x4::new_const(
490            1029606261349423,
491            64226378557628,
492            1669131167474348,
493            2212808057234874,
494        ),
495    ])),
496    CachedPoint(F51x4Reduced([
497        u64x4::new_const(
498            1423176501543193,
499            163313632579593,
500            2220495688893001,
501            2220041045291870,
502        ),
503        u64x4::new_const(
504            1111834224023697,
505            1026815658023689,
506            1404605100939775,
507            1412149108248227,
508        ),
509        u64x4::new_const(
510            1542537854906076,
511            1270288391129127,
512            991419278941933,
513            1824939809581980,
514        ),
515        u64x4::new_const(
516            1142003215657891,
517            525980550896367,
518            1508270666157963,
519            917719462309053,
520        ),
521        u64x4::new_const(
522            400851268057105,
523            1620818232405188,
524            1251478578139510,
525            2162841805361886,
526        ),
527    ])),
528    CachedPoint(F51x4Reduced([
529        u64x4::new_const(
530            2125383272208441,
531            1368790097335984,
532            11813369275978,
533            639513785921674,
534        ),
535        u64x4::new_const(
536            2200806265616284,
537            1041996387620216,
538            1275149397833084,
539            1723371028064068,
540        ),
541        u64x4::new_const(
542            603720163891275,
543            2135593511176153,
544            2049641644431548,
545            1198460677818310,
546        ),
547        u64x4::new_const(
548            1862491879401621,
549            2008116580769441,
550            626566325260235,
551            1058308304975798,
552        ),
553        u64x4::new_const(
554            628557314314858,
555            1075323332046522,
556            1631772244117095,
557            1812174547405683,
558        ),
559    ])),
560    CachedPoint(F51x4Reduced([
561        u64x4::new_const(
562            1222773123817104,
563            363276129291452,
564            796237592807883,
565            1914425291893078,
566        ),
567        u64x4::new_const(
568            1721259057429088,
569            734941709009373,
570            1553365830564638,
571            1492120931079419,
572        ),
573        u64x4::new_const(
574            1009354843273686,
575            293884504384873,
576            1050281954944357,
577            134132942667344,
578        ),
579        u64x4::new_const(
580            23119363298711,
581            1694754778833445,
582            1725925193393496,
583            1738396998222001,
584        ),
585        u64x4::new_const(
586            1753692057254667,
587            118428526447110,
588            840961387840295,
589            1227619055408558,
590        ),
591    ])),
592    CachedPoint(F51x4Reduced([
593        u64x4::new_const(
594            1004186117579547,
595            508771992330056,
596            1426571663072421,
597            2238524171903259,
598        ),
599        u64x4::new_const(
600            744764613007812,
601            398885442368825,
602            2047459490294949,
603            2141797621077959,
604        ),
605        u64x4::new_const(
606            4556204156489,
607            1708213022802363,
608            1071381560923933,
609            393474529142567,
610        ),
611        u64x4::new_const(
612            350116198213005,
613            945907227204695,
614            168267474358731,
615            1801504420122711,
616        ),
617        u64x4::new_const(
618            728788674520360,
619            1262722049156121,
620            455259596607008,
621            1159442365834489,
622        ),
623    ])),
624    CachedPoint(F51x4Reduced([
625        u64x4::new_const(
626            2226818917892677,
627            185673745808179,
628            2240952219732549,
629            324137961621908,
630        ),
631        u64x4::new_const(
632            1659527641857410,
633            973964060249383,
634            1349692151487730,
635            1172743533370593,
636        ),
637        u64x4::new_const(
638            310591478467746,
639            2123977244137170,
640            774562885265820,
641            430035546191685,
642        ),
643        u64x4::new_const(
644            2150863173197992,
645            2101978317708856,
646            193592648406011,
647            1375328504508580,
648        ),
649        u64x4::new_const(
650            1946235834250479,
651            121741431658675,
652            1004342690620100,
653            2063466488599450,
654        ),
655    ])),
656    CachedPoint(F51x4Reduced([
657        u64x4::new_const(
658            463079632200153,
659            40415275714025,
660            545935352782679,
661            1458043501600908,
662        ),
663        u64x4::new_const(
664            783771976559993,
665            880839641726471,
666            1782028201271831,
667            41664413404590,
668        ),
669        u64x4::new_const(
670            985129151724159,
671            187728621410000,
672            16620051933318,
673            378011085567733,
674        ),
675        u64x4::new_const(
676            1820372198168638,
677            905710046480679,
678            1912961774249737,
679            1868135861067161,
680        ),
681        u64x4::new_const(
682            474460473983187,
683            1455684425673661,
684            652771171116843,
685            733511920760779,
686        ),
687    ])),
688    CachedPoint(F51x4Reduced([
689        u64x4::new_const(
690            1088886980746809,
691            1660218575261626,
692            527921875040240,
693            915086639857889,
694        ),
695        u64x4::new_const(
696            1814735788528175,
697            1586698876186367,
698            2040856637532862,
699            405684812785624,
700        ),
701        u64x4::new_const(
702            658578559700999,
703            1751442070931114,
704            1293623371490094,
705            715026719042518,
706        ),
707        u64x4::new_const(
708            382156225644820,
709            897982285504960,
710            577673183555858,
711            1158728558309719,
712        ),
713        u64x4::new_const(
714            1865791902475663,
715            124491617513788,
716            758484125168765,
717            734065580770143,
718        ),
719    ])),
720    CachedPoint(F51x4Reduced([
721        u64x4::new_const(
722            330985690350617,
723            2214424721795630,
724            973374650780848,
725            1507267060932964,
726        ),
727        u64x4::new_const(
728            1733823971011290,
729            1730742552292995,
730            669018866977489,
731            604527664126146,
732        ),
733        u64x4::new_const(
734            1082092498645474,
735            1029182053935309,
736            756799947765834,
737            1764720030308351,
738        ),
739        u64x4::new_const(
740            969912105693756,
741            38116887248276,
742            2148030115687613,
743            995140534653865,
744        ),
745        u64x4::new_const(
746            2154373397460354,
747            298128883464656,
748            479587543632539,
749            1061127201140779,
750        ),
751    ])),
752    CachedPoint(F51x4Reduced([
753        u64x4::new_const(
754            843064865526549,
755            2019481782959016,
756            1873125524281672,
757            2013330239022371,
758        ),
759        u64x4::new_const(
760            1192932403815186,
761            1818108671859220,
762            1247005102016258,
763            1210577394628058,
764        ),
765        u64x4::new_const(
766            132359273326717,
767            795492788299178,
768            1235924489372816,
769            891705064411550,
770        ),
771        u64x4::new_const(
772            1425833709104858,
773            152114045731085,
774            991347902581315,
775            1387773338707683,
776        ),
777        u64x4::new_const(
778            48024203807922,
779            157005564892977,
780            1474053161953744,
781            727448023498345,
782        ),
783    ])),
784    CachedPoint(F51x4Reduced([
785        u64x4::new_const(
786            1076621484026788,
787            1309917234320927,
788            1786998180233659,
789            1595497085944737,
790        ),
791        u64x4::new_const(
792            1737334672694726,
793            2038133716999447,
794            1929061192400917,
795            620544235219084,
796        ),
797        u64x4::new_const(
798            1550527313469747,
799            329096759623509,
800            1585214659209474,
801            693419841748324,
802        ),
803        u64x4::new_const(
804            1450010875912315,
805            2085047082180569,
806            757421110771886,
807            389367139787400,
808        ),
809        u64x4::new_const(
810            781339490566117,
811            132941783448971,
812            258650459725225,
813            2042274962585613,
814        ),
815    ])),
816    CachedPoint(F51x4Reduced([
817        u64x4::new_const(
818            859638991542650,
819            2249840007426442,
820            1138753070862357,
821            793751342318913,
822        ),
823        u64x4::new_const(
824            2133476133447306,
825            1027010646129239,
826            436851910892865,
827            866949948830344,
828        ),
829        u64x4::new_const(
830            1936003572431223,
831            531513680252193,
832            1929877059408416,
833            830585477662503,
834        ),
835        u64x4::new_const(
836            1460760405777960,
837            686673748420916,
838            275475330051554,
839            1581792376993692,
840        ),
841        u64x4::new_const(
842            894482039456784,
843            1801274480988632,
844            16407898635278,
845            1668497039215206,
846        ),
847    ])),
848    CachedPoint(F51x4Reduced([
849        u64x4::new_const(
850            258585746227669,
851            936490904651492,
852            1826793887434108,
853            1201219990633823,
854        ),
855        u64x4::new_const(
856            979462791643635,
857            461762372210187,
858            218708929991480,
859            1378150755760178,
860        ),
861        u64x4::new_const(
862            642542170229970,
863            787135445552820,
864            371168855880557,
865            182642566486693,
866        ),
867        u64x4::new_const(
868            1152277399721904,
869            1726910452705576,
870            1452393215705343,
871            2117799581546845,
872        ),
873        u64x4::new_const(
874            1211265143925330,
875            14373046151823,
876            1745528818271507,
877            1842106288572078,
878        ),
879    ])),
880    CachedPoint(F51x4Reduced([
881        u64x4::new_const(
882            635154614562157,
883            1956763034454109,
884            509123035953043,
885            445727657534780,
886        ),
887        u64x4::new_const(
888            2072765509783252,
889            1282639891593570,
890            1075086397362049,
891            722996110178195,
892        ),
893        u64x4::new_const(
894            1385572918825603,
895            1190035835509576,
896            218317841176013,
897            1047865370756924,
898        ),
899        u64x4::new_const(
900            473991569426488,
901            1910588123704592,
902            1338270051770806,
903            401676861680875,
904        ),
905        u64x4::new_const(
906            992455353618436,
907            126422733426929,
908            1955248037756399,
909            119233843022643,
910        ),
911    ])),
912    CachedPoint(F51x4Reduced([
913        u64x4::new_const(
914            1555272991526078,
915            2214378187116349,
916            366893798097444,
917            1401502118355702,
918        ),
919        u64x4::new_const(
920            1157229521930713,
921            2144787187506262,
922            1681597469697840,
923            847499096518697,
924        ),
925        u64x4::new_const(
926            1872802655800758,
927            1027119609820793,
928            1137278714788290,
929            1664750301179485,
930        ),
931        u64x4::new_const(
932            1091289858897030,
933            910126419483563,
934            1101920147235731,
935            597083075893952,
936        ),
937        u64x4::new_const(
938            1711011533670315,
939            185206680336278,
940            1620960612579784,
941            1968598849170880,
942        ),
943    ])),
944    CachedPoint(F51x4Reduced([
945        u64x4::new_const(
946            73077300235958,
947            257216723095630,
948            466947267713785,
949            847105214181598,
950        ),
951        u64x4::new_const(
952            1322905631406309,
953            407458059314731,
954            230045063190376,
955            923800751267786,
956        ),
957        u64x4::new_const(
958            1146027205000415,
959            1541328763727623,
960            768510249199119,
961            1630223587589059,
962        ),
963        u64x4::new_const(
964            1930368769879433,
965            1376145403022159,
966            1898149855343131,
967            1709421930518180,
968        ),
969        u64x4::new_const(
970            633944191571764,
971            58314960742839,
972            2050971151574988,
973            757799756090059,
974        ),
975    ])),
976    CachedPoint(F51x4Reduced([
977        u64x4::new_const(
978            361576929158539,
979            1035682890165818,
980            160945739362874,
981            266975208626222,
982        ),
983        u64x4::new_const(
984            1635371797076046,
985            2106722851965197,
986            451585919077206,
987            6692426667180,
988        ),
989        u64x4::new_const(
990            175820543533852,
991            2057511393764025,
992            1531846543720469,
993            1648320903946519,
994        ),
995        u64x4::new_const(
996            947461770620940,
997            1107335044817620,
998            1725565474111216,
999            2182263619949220,
1000        ),
1001        u64x4::new_const(
1002            726444888601221,
1003            1379664085279206,
1004            1517215633290417,
1005            1763968936542507,
1006        ),
1007    ])),
1008    CachedPoint(F51x4Reduced([
1009        u64x4::new_const(
1010            686545355846512,
1011            1712283265573167,
1012            1743509592736302,
1013            1653906616429153,
1014        ),
1015        u64x4::new_const(
1016            985108805667149,
1017            2244347650874753,
1018            1304749057936860,
1019            321846134330589,
1020        ),
1021        u64x4::new_const(
1022            296321076156886,
1023            1717929256240029,
1024            450933772486425,
1025            2015536856431605,
1026        ),
1027        u64x4::new_const(
1028            1690393512821866,
1029            646913049470189,
1030            2198650647576397,
1031            1230646705710442,
1032        ),
1033        u64x4::new_const(
1034            601961913448442,
1035            878806578800541,
1036            620497587492381,
1037            330716414244629,
1038        ),
1039    ])),
1040    CachedPoint(F51x4Reduced([
1041        u64x4::new_const(
1042            631510982676132,
1043            1755753187697174,
1044            1596201246674299,
1045            2197888384902121,
1046        ),
1047        u64x4::new_const(
1048            626957678275745,
1049            1447583371478595,
1050            1375375216702128,
1051            1443613232818823,
1052        ),
1053        u64x4::new_const(
1054            1962997804660501,
1055            1051744123184519,
1056            1002558639300437,
1057            1237313314603385,
1058        ),
1059        u64x4::new_const(
1060            2118828335274995,
1061            226398203764759,
1062            889099617161107,
1063            1620967117678504,
1064        ),
1065        u64x4::new_const(
1066            227261019362935,
1067            2046897556746842,
1068            591524060355369,
1069            2178552047369691,
1070        ),
1071    ])),
1072    CachedPoint(F51x4Reduced([
1073        u64x4::new_const(
1074            1375403119051662,
1075            222313965014452,
1076            539873444241395,
1077            213198095917915,
1078        ),
1079        u64x4::new_const(
1080            1436952871599114,
1081            1229749762725246,
1082            1174441562267670,
1083            265367077740349,
1084        ),
1085        u64x4::new_const(
1086            11107426165917,
1087            985954476039181,
1088            1147329112365579,
1089            1133931640328107,
1090        ),
1091        u64x4::new_const(
1092            585235055006843,
1093            699515259687482,
1094            299559608721134,
1095            2134819767146767,
1096        ),
1097        u64x4::new_const(
1098            1376401105588528,
1099            391412107507860,
1100            302743651807545,
1101            1362834426455518,
1102        ),
1103    ])),
1104    CachedPoint(F51x4Reduced([
1105        u64x4::new_const(
1106            1802940904616205,
1107            1615132760193234,
1108            869321663313735,
1109            666494072545310,
1110        ),
1111        u64x4::new_const(
1112            1452849320020701,
1113            1472716813676364,
1114            472862999490802,
1115            359937983286145,
1116        ),
1117        u64x4::new_const(
1118            1221198323133843,
1119            491718521756528,
1120            1387135774113906,
1121            793779904904008,
1122        ),
1123        u64x4::new_const(
1124            1032129287829151,
1125            30730741946697,
1126            217603185195068,
1127            2118169309744162,
1128        ),
1129        u64x4::new_const(
1130            225899335574721,
1131            1767553399797342,
1132            881082465669982,
1133            1435383196392870,
1134        ),
1135    ])),
1136    CachedPoint(F51x4Reduced([
1137        u64x4::new_const(
1138            1127093564374276,
1139            2245188499702906,
1140            1250041622887441,
1141            2179324911668149,
1142        ),
1143        u64x4::new_const(
1144            908019210866875,
1145            1879900391060964,
1146            1355047706206597,
1147            647218945377302,
1148        ),
1149        u64x4::new_const(
1150            1616265604422592,
1151            2134336781521657,
1152            1157711219915601,
1153            1227494173135033,
1154        ),
1155        u64x4::new_const(
1156            136450294813355,
1157            1984543542455033,
1158            1199486053011083,
1159            33687889941331,
1160        ),
1161        u64x4::new_const(
1162            1053447012707371,
1163            68239344331930,
1164            537448158443925,
1165            1829189783369646,
1166        ),
1167    ])),
1168    CachedPoint(F51x4Reduced([
1169        u64x4::new_const(
1170            996806463322563,
1171            2043104667851348,
1172            1110361398300309,
1173            1218740346887957,
1174        ),
1175        u64x4::new_const(
1176            399141907016839,
1177            1307691109658227,
1178            532535384961264,
1179            896201194398872,
1180        ),
1181        u64x4::new_const(
1182            111705272106160,
1183            1790972382466021,
1184            1159338112559144,
1185            303544352897203,
1186        ),
1187        u64x4::new_const(
1188            1036600573322969,
1189            1457119922663674,
1190            334117653665514,
1191            460023361701263,
1192        ),
1193        u64x4::new_const(
1194            1363773215189933,
1195            1915594049343802,
1196            1661249423378694,
1197            1744945551969247,
1198        ),
1199    ])),
1200    CachedPoint(F51x4Reduced([
1201        u64x4::new_const(
1202            3093919631215,
1203            574886478077610,
1204            1704446919728971,
1205            250093147254210,
1206        ),
1207        u64x4::new_const(
1208            1387413348737796,
1209            360142717826981,
1210            2116185073015983,
1211            474541388374100,
1212        ),
1213        u64x4::new_const(
1214            1632539630892580,
1215            1332404016215719,
1216            2145297637794728,
1217            1289783723173504,
1218        ),
1219        u64x4::new_const(
1220            1030244179060173,
1221            579782698595797,
1222            1062365251139982,
1223            677149839815546,
1224        ),
1225        u64x4::new_const(
1226            6671539419876,
1227            1426937459653775,
1228            406942403696343,
1229            675479224223817,
1230        ),
1231    ])),
1232    CachedPoint(F51x4Reduced([
1233        u64x4::new_const(
1234            271984148441782,
1235            1708099625818957,
1236            1499011822959235,
1237            516808451044836,
1238        ),
1239        u64x4::new_const(
1240            1124847751346323,
1241            2038336022958449,
1242            1721698491022600,
1243            705944403212572,
1244        ),
1245        u64x4::new_const(
1246            85459783780275,
1247            1715213099986669,
1248            1728445509034791,
1249            730657630359717,
1250        ),
1251        u64x4::new_const(
1252            1185034652652387,
1253            755472578204310,
1254            476118360897817,
1255            1800434542785310,
1256        ),
1257        u64x4::new_const(
1258            1815589628676941,
1259            491778500674079,
1260            1547664984392513,
1261            279891608681267,
1262        ),
1263    ])),
1264    CachedPoint(F51x4Reduced([
1265        u64x4::new_const(
1266            2036337168672113,
1267            1730787524684269,
1268            639134121311693,
1269            698060925015524,
1270        ),
1271        u64x4::new_const(
1272            315211075189491,
1273            1329055848835358,
1274            688621136402134,
1275            1271193060119448,
1276        ),
1277        u64x4::new_const(
1278            1697984374314012,
1279            459330773536457,
1280            305481314707918,
1281            61676911066002,
1282        ),
1283        u64x4::new_const(
1284            2166631826859191,
1285            2105217187401781,
1286            937587962768434,
1287            357397435365683,
1288        ),
1289        u64x4::new_const(
1290            1206757093145471,
1291            1287847622009294,
1292            1951336140421622,
1293            2233789834777410,
1294        ),
1295    ])),
1296    CachedPoint(F51x4Reduced([
1297        u64x4::new_const(
1298            82144190081093,
1299            1568417433687791,
1300            907555979158442,
1301            2037855062523867,
1302        ),
1303        u64x4::new_const(
1304            1225315484058853,
1305            315317868015613,
1306            1765025920288384,
1307            175223259828436,
1308        ),
1309        u64x4::new_const(
1310            1215010304871271,
1311            662713408454950,
1312            429517658575616,
1313            991062684008811,
1314        ),
1315        u64x4::new_const(
1316            993837615254894,
1317            1485561584889450,
1318            2001836754226476,
1319            1915943063896801,
1320        ),
1321        u64x4::new_const(
1322            818895101625673,
1323            1342479472068804,
1324            1380235330010671,
1325            23315169761453,
1326        ),
1327    ])),
1328    CachedPoint(F51x4Reduced([
1329        u64x4::new_const(
1330            1500726307559118,
1331            956166860173424,
1332            512663951564436,
1333            1940180717699824,
1334        ),
1335        u64x4::new_const(
1336            1789521472720825,
1337            779456898652427,
1338            2035063615853504,
1339            863582140589407,
1340        ),
1341        u64x4::new_const(
1342            634508890793787,
1343            1748041666732214,
1344            259642099961634,
1345            1294936839797812,
1346        ),
1347        u64x4::new_const(
1348            2183334898697038,
1349            2197242820694806,
1350            2217225409073703,
1351            992633998226449,
1352        ),
1353        u64x4::new_const(
1354            2197077498155916,
1355            1562008797791883,
1356            1395088759904208,
1357            331715244679294,
1358        ),
1359    ])),
1360    CachedPoint(F51x4Reduced([
1361        u64x4::new_const(
1362            186854731652320,
1363            284389440026580,
1364            1252175415119400,
1365            1025377410100223,
1366        ),
1367        u64x4::new_const(
1368            1578732129417607,
1369            898645497852382,
1370            2237766074482974,
1371            1939197790303592,
1372        ),
1373        u64x4::new_const(
1374            1438830390640145,
1375            1682452015845597,
1376            1108441197232223,
1377            1984134492898664,
1378        ),
1379        u64x4::new_const(
1380            282668727301669,
1381            1609018289552856,
1382            390363439795705,
1383            1138459124667912,
1384        ),
1385        u64x4::new_const(
1386            18889015928490,
1387            532489638086725,
1388            324621535996080,
1389            2210046082697453,
1390        ),
1391    ])),
1392    CachedPoint(F51x4Reduced([
1393        u64x4::new_const(
1394            2041327051605378,
1395            2244037852176483,
1396            2116336876147147,
1397            9616672544864,
1398        ),
1399        u64x4::new_const(
1400            969847387559191,
1401            1059119127679639,
1402            1764630094670633,
1403            364568045311834,
1404        ),
1405        u64x4::new_const(
1406            505938893153679,
1407            2075421412172902,
1408            326984153045666,
1409            1959549727324704,
1410        ),
1411        u64x4::new_const(
1412            1088715617911260,
1413            13917085151028,
1414            950568481355929,
1415            23687195265771,
1416        ),
1417        u64x4::new_const(
1418            1798284568673198,
1419            808382292203333,
1420            2214698741961545,
1421            610817203275867,
1422        ),
1423    ])),
1424    CachedPoint(F51x4Reduced([
1425        u64x4::new_const(
1426            1731488929623777,
1427            1158815615106413,
1428            1491090861948525,
1429            1428384712900962,
1430        ),
1431        u64x4::new_const(
1432            722237139522457,
1433            1514290328911535,
1434            1366197913116230,
1435            1519472657321210,
1436        ),
1437        u64x4::new_const(
1438            246028966932273,
1439            1888239319448405,
1440            423720022211163,
1441            455243905681470,
1442        ),
1443        u64x4::new_const(
1444            738323403716001,
1445            1758018973481179,
1446            1180718299482318,
1447            1008495946606708,
1448        ),
1449        u64x4::new_const(
1450            334959381596119,
1451            1704599537529481,
1452            2172191232106896,
1453            13502508918495,
1454        ),
1455    ])),
1456    CachedPoint(F51x4Reduced([
1457        u64x4::new_const(
1458            273393076768079,
1459            427388720298603,
1460            1071733376018227,
1461            1715429388968611,
1462        ),
1463        u64x4::new_const(
1464            751776629892313,
1465            1965239102856011,
1466            541955408230119,
1467            831043488876080,
1468        ),
1469        u64x4::new_const(
1470            643718536393104,
1471            390543998404644,
1472            2176730661486279,
1473            499459234889079,
1474        ),
1475        u64x4::new_const(
1476            1482404333915009,
1477            865527293526285,
1478            507957951411713,
1479            216456252558825,
1480        ),
1481        u64x4::new_const(
1482            2210281256300231,
1483            1519357818277551,
1484            1257866936775246,
1485            1689605217672864,
1486        ),
1487    ])),
1488    CachedPoint(F51x4Reduced([
1489        u64x4::new_const(
1490            2135395168187905,
1491            2214400157568614,
1492            2032983817870823,
1493            1124945109072647,
1494        ),
1495        u64x4::new_const(
1496            1602820011758145,
1497            906675633903289,
1498            782700735390986,
1499            2067218823525601,
1500        ),
1501        u64x4::new_const(
1502            786785748926382,
1503            1433583123655616,
1504            905839404290873,
1505            2249680349963778,
1506        ),
1507        u64x4::new_const(
1508            1940824582370584,
1509            1610961256326291,
1510            285307858781375,
1511            1755588655461194,
1512        ),
1513        u64x4::new_const(
1514            233682812055333,
1515            2146114223476434,
1516            41132209533476,
1517            535292431776371,
1518        ),
1519    ])),
1520    CachedPoint(F51x4Reduced([
1521        u64x4::new_const(
1522            600257696476418,
1523            18449221564824,
1524            1422209458591138,
1525            239571584769716,
1526        ),
1527        u64x4::new_const(
1528            2056372917056980,
1529            1155290566623531,
1530            1252473955568148,
1531            1276690716882081,
1532        ),
1533        u64x4::new_const(
1534            246974369025311,
1535            658117221519903,
1536            2000380937898441,
1537            1351183273924850,
1538        ),
1539        u64x4::new_const(
1540            1803747363753112,
1541            1736801515030186,
1542            2025633577199091,
1543            603378480769167,
1544        ),
1545        u64x4::new_const(
1546            57348749438551,
1547            1893551220299655,
1548            657926732731806,
1549            1522499384853705,
1550        ),
1551    ])),
1552    CachedPoint(F51x4Reduced([
1553        u64x4::new_const(
1554            591809128842736,
1555            284860517232591,
1556            27436696863545,
1557            886306697195798,
1558        ),
1559        u64x4::new_const(
1560            2113192175751749,
1561            1405882509906423,
1562            561316282804847,
1563            835573846576266,
1564        ),
1565        u64x4::new_const(
1566            94407289485409,
1567            1781534171669004,
1568            2098782516531528,
1569            598529921520053,
1570        ),
1571        u64x4::new_const(
1572            1860137004504786,
1573            2197323407480349,
1574            1516772733981532,
1575            961740253777086,
1576        ),
1577        u64x4::new_const(
1578            1484139612868217,
1579            1593557644636881,
1580            838834937143441,
1581            36382198263380,
1582        ),
1583    ])),
1584    CachedPoint(F51x4Reduced([
1585        u64x4::new_const(
1586            1165898865828562,
1587            1153420815042389,
1588            1068625028915785,
1589            1945927229911090,
1590        ),
1591        u64x4::new_const(
1592            843454394017146,
1593            571029655293754,
1594            386282254545998,
1595            1804608237584150,
1596        ),
1597        u64x4::new_const(
1598            370552451091100,
1599            1279105656351124,
1600            1864742949668631,
1601            2093071521726981,
1602        ),
1603        u64x4::new_const(
1604            1872542389052198,
1605            1679083953574330,
1606            349872262454465,
1607            1470311090717925,
1608        ),
1609        u64x4::new_const(
1610            685345654160323,
1611            319718985807814,
1612            1359932285384164,
1613            1410900103316331,
1614        ),
1615    ])),
1616    CachedPoint(F51x4Reduced([
1617        u64x4::new_const(
1618            2083666668832889,
1619            314624387816655,
1620            1496694646480345,
1621            1946728950459189,
1622        ),
1623        u64x4::new_const(
1624            1579153761571203,
1625            508771185291380,
1626            1002249659402007,
1627            551517831173801,
1628        ),
1629        u64x4::new_const(
1630            2132371471626150,
1631            1988122278556533,
1632            1552195130653890,
1633            1327637750292755,
1634        ),
1635        u64x4::new_const(
1636            118937099181527,
1637            382610380973142,
1638            634951529106471,
1639            382740054041699,
1640        ),
1641        u64x4::new_const(
1642            801287519643470,
1643            87822941589258,
1644            1908825350108451,
1645            1404208826499115,
1646        ),
1647    ])),
1648    CachedPoint(F51x4Reduced([
1649        u64x4::new_const(
1650            330347226380261,
1651            672119116965146,
1652            1761510370768005,
1653            1959200302484704,
1654        ),
1655        u64x4::new_const(
1656            1631876583009250,
1657            1684917718484264,
1658            1027256947805920,
1659            2174612545251129,
1660        ),
1661        u64x4::new_const(
1662            636668855699872,
1663            625187713984839,
1664            265886954766790,
1665            167898557908504,
1666        ),
1667        u64x4::new_const(
1668            1210974548180860,
1669            2051308710365526,
1670            907620584086428,
1671            1081788677970850,
1672        ),
1673        u64x4::new_const(
1674            621792955460854,
1675            1450945504745382,
1676            1666728650687828,
1677            977937146451674,
1678        ),
1679    ])),
1680    CachedPoint(F51x4Reduced([
1681        u64x4::new_const(
1682            24725936182267,
1683            2226765032752574,
1684            2036560083102883,
1685            2002351185719584,
1686        ),
1687        u64x4::new_const(
1688            1620080779405308,
1689            1493220053370419,
1690            2245691691038916,
1691            1152182628629603,
1692        ),
1693        u64x4::new_const(
1694            317928527147500,
1695            1855194218440212,
1696            979380281964169,
1697            861442286685289,
1698        ),
1699        u64x4::new_const(
1700            393308472784625,
1701            486143087279967,
1702            1234071346236405,
1703            777748237119399,
1704        ),
1705        u64x4::new_const(
1706            43850412814718,
1707            1497656407486446,
1708            744128331046695,
1709            1618035787321792,
1710        ),
1711    ])),
1712    CachedPoint(F51x4Reduced([
1713        u64x4::new_const(
1714            1670169946550211,
1715            1230951698726438,
1716            806586940221293,
1717            23159779184607,
1718        ),
1719        u64x4::new_const(
1720            634011340979302,
1721            764182085034744,
1722            731065727766955,
1723            1737985776442180,
1724        ),
1725        u64x4::new_const(
1726            240492712141842,
1727            73976435954441,
1728            162810587166835,
1729            697230894340912,
1730        ),
1731        u64x4::new_const(
1732            1299745598348388,
1733            1359436039694544,
1734            1856609816731554,
1735            25228008461513,
1736        ),
1737        u64x4::new_const(
1738            2180690501932381,
1739            2161211192848458,
1740            87069466793408,
1741            2003456332883860,
1742        ),
1743    ])),
1744    CachedPoint(F51x4Reduced([
1745        u64x4::new_const(
1746            1106932458043379,
1747            1675181364231371,
1748            1681785724775243,
1749            131824742557210,
1750        ),
1751        u64x4::new_const(
1752            1671649414647169,
1753            1827849994880670,
1754            1097958057111899,
1755            701956891169434,
1756        ),
1757        u64x4::new_const(
1758            2095539283710881,
1759            591029812888096,
1760            1699571518315654,
1761            1297589045812566,
1762        ),
1763        u64x4::new_const(
1764            1345612272298537,
1765            2166754730876055,
1766            2047982622154948,
1767            1785222806258129,
1768        ),
1769        u64x4::new_const(
1770            2181915268829890,
1771            1895697064378670,
1772            1288412327355885,
1773            1561075738281368,
1774        ),
1775    ])),
1776    CachedPoint(F51x4Reduced([
1777        u64x4::new_const(
1778            741330264098392,
1779            357073519729966,
1780            1603572339180975,
1781            433572083688575,
1782        ),
1783        u64x4::new_const(
1784            699685108971208,
1785            1719650727634959,
1786            1941668009419214,
1787            870374958347891,
1788        ),
1789        u64x4::new_const(
1790            385971389331537,
1791            11655507719711,
1792            94814615497633,
1793            515572102810609,
1794        ),
1795        u64x4::new_const(
1796            1396688200590426,
1797            1518748475144123,
1798            162386454324368,
1799            2083303971579002,
1800        ),
1801        u64x4::new_const(
1802            1511688632419263,
1803            251584258592336,
1804            545345887993880,
1805            1229840230314160,
1806        ),
1807    ])),
1808    CachedPoint(F51x4Reduced([
1809        u64x4::new_const(
1810            1298668855706029,
1811            2017860934939344,
1812            2224150456036391,
1813            1925926576297971,
1814        ),
1815        u64x4::new_const(
1816            259522963883544,
1817            1312469129541229,
1818            1647530465049600,
1819            1113737129047154,
1820        ),
1821        u64x4::new_const(
1822            733193298663145,
1823            2115712816303403,
1824            897628702762311,
1825            116440277571901,
1826        ),
1827        u64x4::new_const(
1828            1998719395229750,
1829            1662774553684237,
1830            194395608126452,
1831            98796702872301,
1832        ),
1833        u64x4::new_const(
1834            2226158244229144,
1835            91961728239158,
1836            526869903032152,
1837            849263805316773,
1838        ),
1839    ])),
1840    CachedPoint(F51x4Reduced([
1841        u64x4::new_const(
1842            472779569333556,
1843            854477760843410,
1844            2070906720349401,
1845            734613359834689,
1846        ),
1847        u64x4::new_const(
1848            1771897100487404,
1849            1604024196006064,
1850            319699348925383,
1851            437152129592623,
1852        ),
1853        u64x4::new_const(
1854            627618365135361,
1855            1768642666037955,
1856            588564169143939,
1857            35295037750744,
1858        ),
1859        u64x4::new_const(
1860            220241884231278,
1861            319104161410840,
1862            1048165719448798,
1863            1583931089774347,
1864        ),
1865        u64x4::new_const(
1866            166479451884333,
1867            1623611819962804,
1868            59990366193679,
1869            900727256046987,
1870        ),
1871    ])),
1872    CachedPoint(F51x4Reduced([
1873        u64x4::new_const(
1874            1944687327687331,
1875            1328410791053991,
1876            2083980670913902,
1877            609396833380574,
1878        ),
1879        u64x4::new_const(
1880            1907563845734496,
1881            1385619047697883,
1882            869817384774457,
1883            106642388505109,
1884        ),
1885        u64x4::new_const(
1886            1006516581737154,
1887            1561918369633937,
1888            1921172883211450,
1889            2216650451558824,
1890        ),
1891        u64x4::new_const(
1892            1780506017391778,
1893            233064930371847,
1894            1332962603425752,
1895            1380075261612354,
1896        ),
1897        u64x4::new_const(
1898            1907624789747741,
1899            1310065402098523,
1900            1838275780706825,
1901            884225500782782,
1902        ),
1903    ])),
1904    CachedPoint(F51x4Reduced([
1905        u64x4::new_const(
1906            198729830692545,
1907            100156148743413,
1908            2140568641558859,
1909            2220606475942394,
1910        ),
1911        u64x4::new_const(
1912            1108788217903741,
1913            1706330932366163,
1914            2050449866410661,
1915            684907598542847,
1916        ),
1917        u64x4::new_const(
1918            1101958322366646,
1919            659427843062405,
1920            253899933868173,
1921            896574852821269,
1922        ),
1923        u64x4::new_const(
1924            1157052140740658,
1925            440541103447032,
1926            2173354981480949,
1927            604768603561932,
1928        ),
1929        u64x4::new_const(
1930            961238337866054,
1931            830849154351308,
1932            1643852412409441,
1933            1436749321770368,
1934        ),
1935    ])),
1936    CachedPoint(F51x4Reduced([
1937        u64x4::new_const(
1938            784870637473285,
1939            1180234052037572,
1940            2086951602998715,
1941            419328169540373,
1942        ),
1943        u64x4::new_const(
1944            1966862397394559,
1945            788036164772123,
1946            2024355635709481,
1947            1471696676696146,
1948        ),
1949        u64x4::new_const(
1950            1468884300957205,
1951            1408016588131185,
1952            2229595828577885,
1953            240413942963547,
1954        ),
1955        u64x4::new_const(
1956            1481791691942441,
1957            970648959691160,
1958            1635500996148197,
1959            2236917233261585,
1960        ),
1961        u64x4::new_const(
1962            31660820731028,
1963            801794768903647,
1964            1069092619607344,
1965            282652554845923,
1966        ),
1967    ])),
1968    CachedPoint(F51x4Reduced([
1969        u64x4::new_const(
1970            911659428682786,
1971            762502588057038,
1972            1311399152500807,
1973            1966922911783311,
1974        ),
1975        u64x4::new_const(
1976            1229849228728540,
1977            258161307933217,
1978            2140796867375541,
1979            1569345075547911,
1980        ),
1981        u64x4::new_const(
1982            1487354676143742,
1983            1818317546165791,
1984            811033554173350,
1985            1768788663337616,
1986        ),
1987        u64x4::new_const(
1988            450017165913234,
1989            962535873747168,
1990            2099104262993585,
1991            503030952485785,
1992        ),
1993        u64x4::new_const(
1994            1259958681304518,
1995            479589250923541,
1996            1503904042161640,
1997            706283657294305,
1998        ),
1999    ])),
2000    CachedPoint(F51x4Reduced([
2001        u64x4::new_const(
2002            794562643024291,
2003            198670993088241,
2004            1678984629358943,
2005            273399517554618,
2006        ),
2007        u64x4::new_const(
2008            188458991574433,
2009            1389872130156447,
2010            1461868931574746,
2011            795140878721432,
2012        ),
2013        u64x4::new_const(
2014            624046647169653,
2015            630363741191019,
2016            911018499983500,
2017            1410140563046579,
2018        ),
2019        u64x4::new_const(
2020            1675056174405076,
2021            632544713589250,
2022            795454163559811,
2023            1535271563341780,
2024        ),
2025        u64x4::new_const(
2026            25504547444781,
2027            812510098987855,
2028            51290042016232,
2029            1992260991700127,
2030        ),
2031    ])),
2032    CachedPoint(F51x4Reduced([
2033        u64x4::new_const(
2034            269968325452358,
2035            470932785179706,
2036            1684444304834150,
2037            1027482126748243,
2038        ),
2039        u64x4::new_const(
2040            457941065342419,
2041            2117377568137882,
2042            1209423706730905,
2043            2192403099717071,
2044        ),
2045        u64x4::new_const(
2046            1899046404863678,
2047            1359500336071762,
2048            1492389156724726,
2049            1455627081827750,
2050        ),
2051        u64x4::new_const(
2052            2016101061876546,
2053            1967000012916571,
2054            582539481696050,
2055            1197538178790094,
2056        ),
2057        u64x4::new_const(
2058            639684852217504,
2059            1799941252757449,
2060            1470016556327743,
2061            846111828965901,
2062        ),
2063    ])),
2064]);