1use decaf377::Fq;
2use poseidon_parameters::v1::{
3 Alpha, ArcMatrix, Matrix, MdsMatrix, OptimizedArcMatrix, OptimizedMdsMatrices,
4 PoseidonParameters, RoundNumbers, SquareMatrix,
5};
6
7pub const fn rate_1() -> PoseidonParameters<2, 1, 4, 1, 39, 2, 78, 31> {
9 PoseidonParameters {
10 M: 128,
11 arc: ArcMatrix::<39, 2, 78>::new_from_known([
12 Fq::from_montgomery_limbs([
13 6258896775460530561,
14 1267570262938364784,
15 10583705394133388288,
16 4331270346116315,
17 ]),
18 Fq::from_montgomery_limbs([
19 15454694353288852986,
20 2205227775135851582,
21 9104115866970654747,
22 48952601862872692,
23 ]),
24 Fq::from_montgomery_limbs([
25 17632203450119298224,
26 13599315412875479343,
27 7140007131719627884,
28 569020719923681609,
29 ]),
30 Fq::from_montgomery_limbs([
31 6608939517720255573,
32 15066841911042588370,
33 8648475674864948310,
34 578035154261448463,
35 ]),
36 Fq::from_montgomery_limbs([
37 1055805092356900670,
38 5486646384412869322,
39 9705528431443784365,
40 307684188417815151,
41 ]),
42 Fq::from_montgomery_limbs([
43 11248650571348093756,
44 1514639161444600232,
45 968234586550369174,
46 1313541476846290422,
47 ]),
48 Fq::from_montgomery_limbs([
49 5189078861895589451,
50 9996051726892023924,
51 14955307722807799098,
52 1320126769029056157,
53 ]),
54 Fq::from_montgomery_limbs([
55 14397975440942704641,
56 14269464930912859892,
57 9230505175050478925,
58 1093012507774165575,
59 ]),
60 Fq::from_montgomery_limbs([
61 6847445113090943697,
62 17673603016395516883,
63 15250705377106188486,
64 539035154593930175,
65 ]),
66 Fq::from_montgomery_limbs([
67 6947720323756162913,
68 3313209312340777357,
69 18395293995391548637,
70 209157278787801614,
71 ]),
72 Fq::from_montgomery_limbs([
73 3458319354278701363,
74 11429938079178703613,
75 7005241729732086579,
76 150425083810087548,
77 ]),
78 Fq::from_montgomery_limbs([
79 2543869222269883848,
80 6129645233495109995,
81 1076912762679804840,
82 1127382646597654684,
83 ]),
84 Fq::from_montgomery_limbs([
85 3802085031173312140,
86 1153736051705836195,
87 34368926314299214,
88 870379362515076367,
89 ]),
90 Fq::from_montgomery_limbs([
91 5488449230911278270,
92 2470593653263895214,
93 2746242821352744093,
94 1170504430408456781,
95 ]),
96 Fq::from_montgomery_limbs([
97 3039943962034370722,
98 16476527388322339887,
99 5748836754427063321,
100 874163389084517420,
101 ]),
102 Fq::from_montgomery_limbs([
103 11160556015001057055,
104 18242508582059343688,
105 1914918650959602739,
106 1060251542697903110,
107 ]),
108 Fq::from_montgomery_limbs([
109 1250158851421170863,
110 3598229175113435790,
111 11440021114985999339,
112 539355236403595924,
113 ]),
114 Fq::from_montgomery_limbs([
115 17381864786167270102,
116 5920159615239164628,
117 7621039653090189177,
118 80820461513544845,
119 ]),
120 Fq::from_montgomery_limbs([
121 9427313983461117140,
122 12722081891364237901,
123 2526344363227396036,
124 169367802375106360,
125 ]),
126 Fq::from_montgomery_limbs([
127 18279043286872423918,
128 11282585104763746254,
129 6663752460065940976,
130 1313306297247703395,
131 ]),
132 Fq::from_montgomery_limbs([
133 11348011840530639501,
134 13585724393536580138,
135 16173408530293170097,
136 237306649524404549,
137 ]),
138 Fq::from_montgomery_limbs([
139 9105438583131143101,
140 484614180087189633,
141 11007155874658626631,
142 1105934356159118197,
143 ]),
144 Fq::from_montgomery_limbs([
145 17692463671930692407,
146 8848595903938472796,
147 11444065729641962767,
148 856337008348787181,
149 ]),
150 Fq::from_montgomery_limbs([
151 11475710285348090819,
152 12082432292625800602,
153 4973698077631026180,
154 250886293876957218,
155 ]),
156 Fq::from_montgomery_limbs([
157 3831119291993789483,
158 11955292354948817093,
159 10578474534116863906,
160 292270082742245378,
161 ]),
162 Fq::from_montgomery_limbs([
163 11074518745033881448,
164 14103711443902779277,
165 9703092681767716480,
166 1027943651677607178,
167 ]),
168 Fq::from_montgomery_limbs([
169 14255504761835093988,
170 12836619582277229653,
171 16470467141944117103,
172 216605519265731395,
173 ]),
174 Fq::from_montgomery_limbs([
175 17412479146814766387,
176 7550994961529157056,
177 16948400072627593287,
178 686398674032066558,
179 ]),
180 Fq::from_montgomery_limbs([
181 14019001188641598557,
182 17711295492607709098,
183 17317648113970387478,
184 1005852188387049762,
185 ]),
186 Fq::from_montgomery_limbs([
187 2757938402041260135,
188 10858479133892891281,
189 6226991255650955925,
190 113236437448370768,
191 ]),
192 Fq::from_montgomery_limbs([
193 2864831845918016166,
194 11222314241298259255,
195 6809710896423414618,
196 391420167412878448,
197 ]),
198 Fq::from_montgomery_limbs([
199 15295022328131697798,
200 14180180046854426704,
201 5969598612677890929,
202 422063763314834782,
203 ]),
204 Fq::from_montgomery_limbs([
205 9004302479558436050,
206 9395856654729450347,
207 1876513748778519470,
208 1078019802682326971,
209 ]),
210 Fq::from_montgomery_limbs([
211 17483474807509017611,
212 1860495490123329066,
213 10427704098322365889,
214 168618466562963955,
215 ]),
216 Fq::from_montgomery_limbs([
217 3325616628101926400,
218 6318651352098105269,
219 10561353542035867513,
220 347869863814864598,
221 ]),
222 Fq::from_montgomery_limbs([
223 10608180854761738188,
224 7227409243651228657,
225 10245865730256963695,
226 33366710867335616,
227 ]),
228 Fq::from_montgomery_limbs([
229 6377899455837337983,
230 6460750903815498030,
231 14658523922399852198,
232 850391300192126368,
233 ]),
234 Fq::from_montgomery_limbs([
235 9949314602248501685,
236 9592125889973713334,
237 12540141676151911968,
238 902630930644097978,
239 ]),
240 Fq::from_montgomery_limbs([
241 9874569741817026646,
242 8597014183735249181,
243 14218226934847278615,
244 990148636388408942,
245 ]),
246 Fq::from_montgomery_limbs([
247 9660554731559651732,
248 4712943300030820950,
249 8606150340609690108,
250 160577077343575019,
251 ]),
252 Fq::from_montgomery_limbs([
253 1527563399863479849,
254 15731827835699836031,
255 7229971325383988685,
256 826813386663462338,
257 ]),
258 Fq::from_montgomery_limbs([
259 18280004775370667641,
260 10717313307037013407,
261 3515684275541234253,
262 1288829721588576759,
263 ]),
264 Fq::from_montgomery_limbs([
265 9831584723932855792,
266 1077247411674292976,
267 4470807593665567057,
268 629496612576050491,
269 ]),
270 Fq::from_montgomery_limbs([
271 18018152400203412106,
272 16658517283861939563,
273 15927825308647499591,
274 1046841820836193453,
275 ]),
276 Fq::from_montgomery_limbs([
277 424287065221489244,
278 17051291629546655826,
279 4983999217110075951,
280 1278494067020803559,
281 ]),
282 Fq::from_montgomery_limbs([
283 13081137544640017921,
284 1196650010435295235,
285 15746798075854654528,
286 1203678627802318991,
287 ]),
288 Fq::from_montgomery_limbs([
289 939677723946433505,
290 11567589096003441629,
291 12722931402128711345,
292 720362007908860959,
293 ]),
294 Fq::from_montgomery_limbs([
295 14103532265560668917,
296 10923867233350724517,
297 18049017711808115649,
298 375405789021031150,
299 ]),
300 Fq::from_montgomery_limbs([
301 497571197013480246,
302 10623440047065153586,
303 4886324577963912147,
304 1126015905264708236,
305 ]),
306 Fq::from_montgomery_limbs([
307 8235696195804714347,
308 8423059580415141744,
309 17356311622946336763,
310 215719902708291122,
311 ]),
312 Fq::from_montgomery_limbs([
313 13167547990249432274,
314 13822834764858661811,
315 1681839468362828968,
316 1102696208723885390,
317 ]),
318 Fq::from_montgomery_limbs([
319 14358625551422878077,
320 17488520719897236232,
321 10532471740075617546,
322 780155994080253829,
323 ]),
324 Fq::from_montgomery_limbs([
325 17574454647216920383,
326 13786111586753929723,
327 11740472500664499721,
328 34830030445253818,
329 ]),
330 Fq::from_montgomery_limbs([
331 9209614961980615136,
332 9937652035573086410,
333 1218815569248823646,
334 236722195254239968,
335 ]),
336 Fq::from_montgomery_limbs([
337 3620849600049355235,
338 2774041983584442196,
339 6713450660153581499,
340 1022079506649410443,
341 ]),
342 Fq::from_montgomery_limbs([
343 15478035690602744699,
344 17214923924946245378,
345 13206453575278417593,
346 842388521454715001,
347 ]),
348 Fq::from_montgomery_limbs([
349 7853082889027573297,
350 5688955180632238595,
351 4814575662942306312,
352 837428779080817192,
353 ]),
354 Fq::from_montgomery_limbs([
355 6927274665365457380,
356 4891595237470578015,
357 9799180733026983523,
358 417480065074766363,
359 ]),
360 Fq::from_montgomery_limbs([
361 9633744074825535160,
362 13348096458316776884,
363 10200632920038276183,
364 1241967248070647028,
365 ]),
366 Fq::from_montgomery_limbs([
367 7315634111998276785,
368 14989100225520468879,
369 2450102833924358633,
370 264607654026641770,
371 ]),
372 Fq::from_montgomery_limbs([
373 7717087918080228437,
374 10060974775377729782,
375 15332244215838611263,
376 711171330417334270,
377 ]),
378 Fq::from_montgomery_limbs([
379 2324103748366230971,
380 10995578112328024729,
381 15408740786099239677,
382 1268694519894110373,
383 ]),
384 Fq::from_montgomery_limbs([
385 11893493435520502207,
386 3766971087184646941,
387 15414311780153824548,
388 275458309578547698,
389 ]),
390 Fq::from_montgomery_limbs([
391 3031245967343841039,
392 4502052608729245908,
393 4341196184555983012,
394 1220348581034324635,
395 ]),
396 Fq::from_montgomery_limbs([
397 14560505796665136876,
398 9750262619582169702,
399 11805062379512156262,
400 947525094566692079,
401 ]),
402 Fq::from_montgomery_limbs([
403 7374167934946983346,
404 10320986442790179232,
405 1316321051690183387,
406 672142052910646114,
407 ]),
408 Fq::from_montgomery_limbs([
409 6678718452413104008,
410 3653041364903437992,
411 3698421704565957570,
412 448468818117066870,
413 ]),
414 Fq::from_montgomery_limbs([
415 12909750526124334775,
416 6274889465513641781,
417 11804747737295382226,
418 507133470520718817,
419 ]),
420 Fq::from_montgomery_limbs([
421 9667929895833397580,
422 11082007517281041627,
423 10049496943206931153,
424 128401977346054829,
425 ]),
426 Fq::from_montgomery_limbs([
427 12310961684508931943,
428 17018879353361910672,
429 9780939516032057631,
430 874860903480789609,
431 ]),
432 Fq::from_montgomery_limbs([
433 1042224041096057459,
434 15183806776241160696,
435 2334295613683866263,
436 49327571912713520,
437 ]),
438 Fq::from_montgomery_limbs([
439 17515802687784336662,
440 10591106814883990536,
441 4193417463306063615,
442 23930315094714182,
443 ]),
444 Fq::from_montgomery_limbs([
445 15007113684212052093,
446 95900555196155559,
447 9807646841884583683,
448 251554444378507936,
449 ]),
450 Fq::from_montgomery_limbs([
451 8094314597037982537,
452 326195237272228919,
453 9972406889128755860,
454 563568079596439234,
455 ]),
456 Fq::from_montgomery_limbs([
457 12074057828954296990,
458 17459062068677478655,
459 2059156604363327430,
460 860353551420485928,
461 ]),
462 Fq::from_montgomery_limbs([
463 13609943108532429528,
464 16610915446730445558,
465 9788093117338911219,
466 1175759231734449357,
467 ]),
468 Fq::from_montgomery_limbs([
469 7485446014387007697,
470 13102110362887743132,
471 11648775823210990955,
472 43349719308454144,
473 ]),
474 Fq::from_montgomery_limbs([
475 11902878575783530648,
476 16441587368398080183,
477 9321126611136841229,
478 579191052426365547,
479 ]),
480 ]),
481 mds: MdsMatrix::new_from_known([
482 Fq::from_montgomery_limbs([
483 14093733558879256570,
484 16573587507929677817,
485 13530556323685588983,
486 1151689812725735417,
487 ]),
488 Fq::from_montgomery_limbs([
489 15302903146332116305,
490 8895355854553175376,
491 548696419140371791,
492 319366418254432479,
493 ]),
494 Fq::from_montgomery_limbs([
495 15302903146332116305,
496 8895355854553175376,
497 548696419140371791,
498 319366418254432479,
499 ]),
500 Fq::from_montgomery_limbs([
501 16270238816294404093,
502 17510165790819614716,
503 15988650198697570299,
504 575844906362867708,
505 ]),
506 ]),
507 alpha: Alpha::Exponent(17),
508 rounds: RoundNumbers { r_P: 31, r_F: 8 },
509 optimized_mds: OptimizedMdsMatrices {
510 M_hat: SquareMatrix::<1, 1>::new_from_known([Fq::from_montgomery_limbs([
511 16270238816294404093,
512 17510165790819614716,
513 15988650198697570299,
514 575844906362867708,
515 ])]),
516 v: Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
517 15302903146332116305,
518 8895355854553175376,
519 548696419140371791,
520 319366418254432479,
521 ])]),
522 w: Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
523 15302903146332116305,
524 8895355854553175376,
525 548696419140371791,
526 319366418254432479,
527 ])]),
528 M_prime: SquareMatrix::<2, 4>::new_from_known([
529 Fq::from_montgomery_limbs([
530 9015221291577245683,
531 8239323489949974514,
532 1646089257421115374,
533 958099254763297437,
534 ]),
535 Fq::from_montgomery_limbs([0, 0, 0, 0]),
536 Fq::from_montgomery_limbs([0, 0, 0, 0]),
537 Fq::from_montgomery_limbs([
538 16270238816294404093,
539 17510165790819614716,
540 15988650198697570299,
541 575844906362867708,
542 ]),
543 ]),
544 M_doubleprime: SquareMatrix::<2, 4>::new_from_known([
545 Fq::from_montgomery_limbs([
546 14093733558879256570,
547 16573587507929677817,
548 13530556323685588983,
549 1151689812725735417,
550 ]),
551 Fq::from_montgomery_limbs([
552 15302903146332116305,
553 8895355854553175376,
554 548696419140371791,
555 319366418254432479,
556 ]),
557 Fq::from_montgomery_limbs([
558 5871380364199810372,
559 17134679344503149891,
560 2194785676561487165,
561 1277465673017729916,
562 ]),
563 Fq::from_montgomery_limbs([
564 9015221291577245683,
565 8239323489949974514,
566 1646089257421115374,
567 958099254763297437,
568 ]),
569 ]),
570 M_inverse: SquareMatrix::<2, 4>::new_from_known([
571 Fq::from_montgomery_limbs([
572 5994009629053419274,
573 15434301171572932352,
574 1350487059822599859,
575 1102422137481273087,
576 ]),
577 Fq::from_montgomery_limbs([
578 18054649431151608138,
579 10789890749345300822,
580 12135909219384222141,
581 1220664558067982680,
582 ]),
583 Fq::from_montgomery_limbs([
584 18054649431151608138,
585 10789890749345300822,
586 12135909219384222141,
587 1220664558067982680,
588 ]),
589 Fq::from_montgomery_limbs([
590 11262517505635122707,
591 5960750817236483583,
592 14179438877114240358,
593 859563904274372775,
594 ]),
595 ]),
596 M_hat_inverse: SquareMatrix::<1, 1>::new_from_known([Fq::from_montgomery_limbs([
597 16163137587655999434,
598 1588334981690687431,
599 11094542470912991159,
600 1141836277676842951,
601 ])]),
602 M_00: Fq::from_montgomery_limbs([
603 14093733558879256570,
604 16573587507929677817,
605 13530556323685588983,
606 1151689812725735417,
607 ]),
608 M_i: Matrix::<2, 2, 4>::new_from_known([
609 Fq::from_montgomery_limbs([
610 9015221291577245683,
611 8239323489949974514,
612 1646089257421115374,
613 958099254763297437,
614 ]),
615 Fq::from_montgomery_limbs([0, 0, 0, 0]),
616 Fq::from_montgomery_limbs([0, 0, 0, 0]),
617 Fq::from_montgomery_limbs([0, 0, 0, 4]),
618 ]),
619 v_collection: [
620 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
621 15302903146332116305,
622 8895355854553175376,
623 548696419140371791,
624 319366418254432479,
625 ])]),
626 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
627 18204910156218979669,
628 16293041589642941780,
629 9975069610392864084,
630 1088801882579738168,
631 ])]),
632 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
633 483667834981143894,
634 4307404968133219670,
635 16943348926633375062,
636 1281160748661064590,
637 ])]),
638 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
639 483667834981143894,
640 4307404968133219670,
641 16943348926633375062,
642 992930372509352846,
643 ])]),
644 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
645 483667834981143894,
646 4307404968133219670,
647 16943348926633375062,
648 920872778471424910,
649 ])]),
650 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
651 483667834981143894,
652 4307404968133219670,
653 16943348926633375062,
654 902858379961942926,
655 ])]),
656 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
657 483667834981143894,
658 4307404968133219670,
659 16943348926633375062,
660 898354780334572430,
661 ])]),
662 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
663 483667834981143894,
664 4307404968133219670,
665 16943348926633375062,
666 897228880427729806,
667 ])]),
668 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
669 483667834981143894,
670 4307404968133219670,
671 16943348926633375062,
672 896947405451019150,
673 ])]),
674 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
675 483667834981143894,
676 4307404968133219670,
677 16943348926633375062,
678 896877036706841486,
679 ])]),
680 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
681 483667834981143894,
682 4307404968133219670,
683 16943348926633375062,
684 896859444520797070,
685 ])]),
686 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
687 483667834981143894,
688 4307404968133219670,
689 16943348926633375062,
690 896855046474285966,
691 ])]),
692 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
693 483667834981143894,
694 4307404968133219670,
695 16943348926633375062,
696 896853946962658190,
697 ])]),
698 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
699 483667834981143894,
700 4307404968133219670,
701 16943348926633375062,
702 896853672084751246,
703 ])]),
704 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
705 483667834981143894,
706 4307404968133219670,
707 16943348926633375062,
708 896853603365274510,
709 ])]),
710 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
711 483667834981143894,
712 4307404968133219670,
713 16943348926633375062,
714 896853586185405326,
715 ])]),
716 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
717 483667834981143894,
718 4307404968133219670,
719 16943348926633375062,
720 896853581890438030,
721 ])]),
722 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
723 483667834981143894,
724 4307404968133219670,
725 16943348926633375062,
726 896853580816696206,
727 ])]),
728 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
729 483667834981143894,
730 4307404968133219670,
731 16943348926633375062,
732 896853580548260750,
733 ])]),
734 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
735 483667834981143894,
736 4307404968133219670,
737 16943348926633375062,
738 896853580481151886,
739 ])]),
740 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
741 483667834981143894,
742 4307404968133219670,
743 16943348926633375062,
744 896853580464374670,
745 ])]),
746 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
747 483667834981143894,
748 4307404968133219670,
749 16943348926633375062,
750 896853580460180366,
751 ])]),
752 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
753 483667834981143894,
754 4307404968133219670,
755 16943348926633375062,
756 896853580459131790,
757 ])]),
758 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
759 483667834981143894,
760 4307404968133219670,
761 16943348926633375062,
762 896853580458869646,
763 ])]),
764 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
765 483667834981143894,
766 4307404968133219670,
767 16943348926633375062,
768 896853580458804110,
769 ])]),
770 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
771 483667834981143894,
772 4307404968133219670,
773 16943348926633375062,
774 896853580458787726,
775 ])]),
776 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
777 483667834981143894,
778 4307404968133219670,
779 16943348926633375062,
780 896853580458783630,
781 ])]),
782 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
783 483667834981143894,
784 4307404968133219670,
785 16943348926633375062,
786 896853580458782606,
787 ])]),
788 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
789 483667834981143894,
790 4307404968133219670,
791 16943348926633375062,
792 896853580458782350,
793 ])]),
794 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
795 483667834981143894,
796 4307404968133219670,
797 16943348926633375062,
798 896853580458782286,
799 ])]),
800 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
801 483667834981143894,
802 4307404968133219670,
803 16943348926633375062,
804 896853580458782270,
805 ])]),
806 ],
807 w_hat_collection: [
808 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
809 5871380364199810372,
810 17134679344503149891,
811 2194785676561487165,
812 1277465673017729916,
813 ])]),
814 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
815 2862272125674542349,
816 12261906873994007818,
817 6321048831233967347,
818 1074021580006399469,
819 ])]),
820 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
821 9272583245283021873,
822 11217561065666991141,
823 4379357376214336458,
824 260245207961077682,
825 ])]),
826 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
827 196844833712984260,
828 7976756115248861334,
829 17517429504857345834,
830 1040980831844310728,
831 ])]),
832 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
833 17057618151146341133,
834 12523702104395956820,
835 12271391923288747173,
836 128082215312722720,
837 ])]),
838 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
839 12890240383456709684,
840 13201320270164724051,
841 12192079545735885462,
842 512328861250890882,
843 ])]),
844 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
845 13941971633936019663,
846 9450685481039963469,
847 4906550719283927641,
848 704035074315390132,
849 ])]),
850 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
851 17423394883381543738,
852 6433782946050643252,
853 5689644244654688611,
854 125579555885213732,
855 ])]),
856 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
857 14353347312397520104,
858 7288387710493021395,
859 4311832904909202829,
860 502318223540854929,
861 ])]),
862 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
863 1347655275989709727,
864 4245699316062704462,
865 10279052303396300340,
866 663992523475246318,
867 ])]),
868 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
869 4665119351487123067,
870 10521689812050988343,
871 15701185823635138767,
872 1310689723212811875,
873 ])]),
874 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
875 16483972148533344745,
876 4256692817894913241,
877 5006417198399918906,
878 1206917780786727308,
879 ])]),
880 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
881 8419151115589576609,
882 16090192988689716068,
883 17567574918587694308,
884 791830011082389037,
885 ])]),
886 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
887 13778856883705323138,
888 14545068902940102031,
889 993508820741100432,
890 476759302953209355,
891 ])]),
892 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
893 17496437634930473479,
894 14825680012141475389,
895 15452500040433442369,
896 561756841124664021,
897 ])]),
898 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
899 13920016566121523227,
900 15948124448946968822,
901 17948232698074155269,
902 901746993810482688,
903 ])]),
904 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
905 17335574612123557994,
906 13976794743969113048,
907 2516139938686944276,
908 916427233865583959,
909 ])]),
910 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
911 12551062722422145446,
912 6091475924057689953,
913 14574745195976306768,
914 975148194085989039,
915 ])]),
916 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
917 11859759237326046870,
918 11443688791831100804,
919 7468934004005101886,
920 1210032034967609362,
921 ])]),
922 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
923 8369043544469936725,
924 7944688737015363087,
925 8970898067298874614,
926 804287027805917254,
927 ])]),
928 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
929 13578426599226763602,
930 409795969952241723,
931 3500289563004924887,
932 526587369847322221,
933 ])]),
934 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
935 16694716497016235335,
936 13624820501318689005,
937 7032878935779188570,
938 761069108701115486,
939 ])]),
940 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
941 9987630261992854810,
942 4683578953455993781,
943 14194957110635732328,
944 353715693428115148,
945 ])]),
946 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
947 2331531148080600167,
948 12273208361624145621,
949 12918060978883315103,
950 69582403024287196,
951 ])]),
952 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
953 9326124592322400668,
954 12199345299077479252,
955 14778755768114157182,
956 278329612097148786,
957 ])]),
958 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
959 411010221870499440,
960 11903893048890813778,
961 3774790851327973882,
962 1113318448388595147,
963 ])]),
964 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
965 17914279703776401853,
966 9785505765254214980,
967 12641069530299914214,
968 417432681489860393,
969 ])]),
970 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
971 15591384841505236723,
972 14234171535107478802,
973 6702510657540042648,
974 324450355271268176,
975 ])]),
976 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
977 7025307144892292044,
978 1596453919301260363,
979 8363298556450618979,
980 1297801421085072705,
981 ])]),
982 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
983 7477979248444469037,
984 5449237394315104554,
985 12548356277080942984,
986 1155364572275770626,
987 ])]),
988 Matrix::<1, 1, 1>::new_from_known([Fq::from_montgomery_limbs([
989 9288667662653177009,
990 2413627220660929702,
991 10841843085892687389,
992 585617177038562311,
993 ])]),
994 ],
995 },
996 optimized_arc: OptimizedArcMatrix::<39, 2, 78>::new_from_known([
997 Fq::from_montgomery_limbs([
998 6258896775460530561,
999 1267570262938364784,
1000 10583705394133388288,
1001 4331270346116315,
1002 ]),
1003 Fq::from_montgomery_limbs([
1004 15454694353288852986,
1005 2205227775135851582,
1006 9104115866970654747,
1007 48952601862872692,
1008 ]),
1009 Fq::from_montgomery_limbs([
1010 17632203450119298224,
1011 13599315412875479343,
1012 7140007131719627884,
1013 569020719923681609,
1014 ]),
1015 Fq::from_montgomery_limbs([
1016 6608939517720255573,
1017 15066841911042588370,
1018 8648475674864948310,
1019 578035154261448463,
1020 ]),
1021 Fq::from_montgomery_limbs([
1022 1055805092356900670,
1023 5486646384412869322,
1024 9705528431443784365,
1025 307684188417815151,
1026 ]),
1027 Fq::from_montgomery_limbs([
1028 11248650571348093756,
1029 1514639161444600232,
1030 968234586550369174,
1031 1313541476846290422,
1032 ]),
1033 Fq::from_montgomery_limbs([
1034 5189078861895589451,
1035 9996051726892023924,
1036 14955307722807799098,
1037 1320126769029056157,
1038 ]),
1039 Fq::from_montgomery_limbs([
1040 14397975440942704641,
1041 14269464930912859892,
1042 9230505175050478925,
1043 1093012507774165575,
1044 ]),
1045 Fq::from_montgomery_limbs([
1046 6847445113090943697,
1047 17673603016395516883,
1048 15250705377106188486,
1049 539035154593930175,
1050 ]),
1051 Fq::from_montgomery_limbs([
1052 3611307702635802055,
1053 2044680977517755214,
1054 1507155857745404241,
1055 416523989909284581,
1056 ]),
1057 Fq::from_montgomery_limbs([
1058 15773496315521971064,
1059 3417307918093239503,
1060 5319102997109207920,
1061 1059459273997968718,
1062 ]),
1063 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1064 Fq::from_montgomery_limbs([
1065 10991357984979900529,
1066 11786708072563616304,
1067 15195751910119459835,
1068 1325497062894455603,
1069 ]),
1070 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1071 Fq::from_montgomery_limbs([
1072 16027823656497991124,
1073 9570249298141187698,
1074 9384192828271733406,
1075 598167880091560796,
1076 ]),
1077 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1078 Fq::from_montgomery_limbs([
1079 4121766814818268604,
1080 5642500678209337527,
1081 11249605790034284655,
1082 169274140565479991,
1083 ]),
1084 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1085 Fq::from_montgomery_limbs([
1086 18428671666826012339,
1087 3103504747064554186,
1088 2824060703077903905,
1089 650804942285219865,
1090 ]),
1091 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1092 Fq::from_montgomery_limbs([
1093 6536595406830723568,
1094 12507627360655164307,
1095 5816557923264156407,
1096 1171438146865855396,
1097 ]),
1098 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1099 Fq::from_montgomery_limbs([
1100 7014452833430165540,
1101 2192734170292167642,
1102 18020153564698148489,
1103 943832042172430504,
1104 ]),
1105 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1106 Fq::from_montgomery_limbs([
1107 15061407369851519692,
1108 5313653764899529765,
1109 18112450540856929121,
1110 723535739146239880,
1111 ]),
1112 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1113 Fq::from_montgomery_limbs([
1114 11839250336475774987,
1115 15868350915088614311,
1116 11144158850926607283,
1117 20878601091348541,
1118 ]),
1119 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1120 Fq::from_montgomery_limbs([
1121 4149527232578341040,
1122 5854266614316639968,
1123 16351407150591024716,
1124 455766835829125567,
1125 ]),
1126 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1127 Fq::from_montgomery_limbs([
1128 12471037099388658934,
1129 2086101075023281280,
1130 1788538226576314996,
1131 1339656767645635692,
1132 ]),
1133 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1134 Fq::from_montgomery_limbs([
1135 11602956738027931852,
1136 9207937453523162767,
1137 13647296147603057333,
1138 111521899082870644,
1139 ]),
1140 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1141 Fq::from_montgomery_limbs([
1142 4471865953303794141,
1143 10665791129581261198,
1144 12917311030821790127,
1145 421715564603751799,
1146 ]),
1147 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1148 Fq::from_montgomery_limbs([
1149 7266742212555730010,
1150 4344990323783613969,
1151 6675828359235980546,
1152 1075010774212196894,
1153 ]),
1154 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1155 Fq::from_montgomery_limbs([
1156 17274747138948537703,
1157 8997958909963391104,
1158 7585281533244210281,
1159 1289863406379487668,
1160 ]),
1161 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1162 Fq::from_montgomery_limbs([
1163 16682415876718386807,
1164 6754707099034381256,
1165 17068117384213468958,
1166 1039851084794055603,
1167 ]),
1168 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1169 Fq::from_montgomery_limbs([
1170 17452413239970755288,
1171 15172605790896474036,
1172 12289534575869712530,
1173 1247895409152971025,
1174 ]),
1175 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1176 Fq::from_montgomery_limbs([
1177 9189529962407134994,
1178 11058665231577655834,
1179 16040250280290103955,
1180 583188588452985106,
1181 ]),
1182 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1183 Fq::from_montgomery_limbs([
1184 12330122353729758122,
1185 7872244451651384396,
1186 1718216203500654841,
1187 947488898510695688,
1188 ]),
1189 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1190 Fq::from_montgomery_limbs([
1191 2532148827221633905,
1192 11277707113691069015,
1193 13146274701375091754,
1194 1122111291456835663,
1195 ]),
1196 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1197 Fq::from_montgomery_limbs([
1198 13318309830858313604,
1199 15574521868164640680,
1200 16956455155077117710,
1201 135767028023417208,
1202 ]),
1203 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1204 Fq::from_montgomery_limbs([
1205 750420733483410590,
1206 2418854296448104823,
1207 15284086408483984263,
1208 341138452402312061,
1209 ]),
1210 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1211 Fq::from_montgomery_limbs([
1212 16457963474965655942,
1213 5443472470949495638,
1214 2064775438293218219,
1215 400327702117075871,
1216 ]),
1217 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1218 Fq::from_montgomery_limbs([
1219 10542835534533651006,
1220 6753561243806226378,
1221 12003236697439509817,
1222 241774398989798606,
1223 ]),
1224 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1225 Fq::from_montgomery_limbs([
1226 1079740531825589218,
1227 855297542685037903,
1228 469984130808287107,
1229 1004975734823384044,
1230 ]),
1231 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1232 Fq::from_montgomery_limbs([
1233 11494156914009901023,
1234 10804976036978117356,
1235 8604768447320145756,
1236 183564350030538687,
1237 ]),
1238 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1239 Fq::from_montgomery_limbs([
1240 16681620867545906411,
1241 2060231339788432100,
1242 17049513972176383365,
1243 112003830623007503,
1244 ]),
1245 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1246 Fq::from_montgomery_limbs([
1247 668347479965076886,
1248 10549614204057010371,
1249 13122395911704198577,
1250 892397509190749082,
1251 ]),
1252 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1253 Fq::from_montgomery_limbs([
1254 832717394377902022,
1255 17441619158292034189,
1256 10775807051709353596,
1257 73942828503744396,
1258 ]),
1259 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1260 Fq::from_montgomery_limbs([
1261 17843890747357672894,
1262 10605743677137367533,
1263 6810818872903428049,
1264 148499098324463880,
1265 ]),
1266 Fq::from_montgomery_limbs([0, 0, 0, 0]),
1267 Fq::from_montgomery_limbs([
1268 1042224041096057459,
1269 15183806776241160696,
1270 2334295613683866263,
1271 49327571912713520,
1272 ]),
1273 Fq::from_montgomery_limbs([
1274 17515802687784336662,
1275 10591106814883990536,
1276 4193417463306063615,
1277 23930315094714182,
1278 ]),
1279 Fq::from_montgomery_limbs([
1280 15007113684212052093,
1281 95900555196155559,
1282 9807646841884583683,
1283 251554444378507936,
1284 ]),
1285 Fq::from_montgomery_limbs([
1286 8094314597037982537,
1287 326195237272228919,
1288 9972406889128755860,
1289 563568079596439234,
1290 ]),
1291 Fq::from_montgomery_limbs([
1292 12074057828954296990,
1293 17459062068677478655,
1294 2059156604363327430,
1295 860353551420485928,
1296 ]),
1297 Fq::from_montgomery_limbs([
1298 13609943108532429528,
1299 16610915446730445558,
1300 9788093117338911219,
1301 1175759231734449357,
1302 ]),
1303 Fq::from_montgomery_limbs([
1304 7485446014387007697,
1305 13102110362887743132,
1306 11648775823210990955,
1307 43349719308454144,
1308 ]),
1309 Fq::from_montgomery_limbs([
1310 11902878575783530648,
1311 16441587368398080183,
1312 9321126611136841229,
1313 579191052426365547,
1314 ]),
1315 ]),
1316 }
1317}