cairo-air 1.2.2

AIR (Algebraic Intermediate Representation) definitions for Cairo programs
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
// This file was created by the AIR team.

use crate::components::prelude::*;
use crate::components::subroutines::linear_combination_n_2_coefs_1_1::LinearCombinationN2Coefs11;
use crate::components::subroutines::linear_combination_n_4_coefs_1_1_m2_1::LinearCombinationN4Coefs11M21;
use crate::components::subroutines::linear_combination_n_4_coefs_4_2_1_1::LinearCombinationN4Coefs4211;
use crate::components::subroutines::linear_combination_n_4_coefs_4_2_m2_1::LinearCombinationN4Coefs42M21;

#[derive(Copy, Clone, Serialize, Deserialize, CairoSerialize)]
pub struct PoseidonHadesPermutation {}

impl PoseidonHadesPermutation {
    #[allow(unused_parens)]
    #[allow(clippy::double_parens)]
    #[allow(non_snake_case)]
    #[allow(clippy::unused_unit)]
    #[allow(unused_variables)]
    #[allow(clippy::too_many_arguments)]
    pub fn evaluate<E: EvalAtRow>(
        [poseidon_hades_permutation_input_limb_0, poseidon_hades_permutation_input_limb_1, poseidon_hades_permutation_input_limb_2, poseidon_hades_permutation_input_limb_3, poseidon_hades_permutation_input_limb_4, poseidon_hades_permutation_input_limb_5, poseidon_hades_permutation_input_limb_6, poseidon_hades_permutation_input_limb_7, poseidon_hades_permutation_input_limb_8, poseidon_hades_permutation_input_limb_9, poseidon_hades_permutation_input_limb_10, poseidon_hades_permutation_input_limb_11, poseidon_hades_permutation_input_limb_12, poseidon_hades_permutation_input_limb_13, poseidon_hades_permutation_input_limb_14, poseidon_hades_permutation_input_limb_15, poseidon_hades_permutation_input_limb_16, poseidon_hades_permutation_input_limb_17, poseidon_hades_permutation_input_limb_18, poseidon_hades_permutation_input_limb_19, poseidon_hades_permutation_input_limb_20, poseidon_hades_permutation_input_limb_21, poseidon_hades_permutation_input_limb_22, poseidon_hades_permutation_input_limb_23, poseidon_hades_permutation_input_limb_24, poseidon_hades_permutation_input_limb_25, poseidon_hades_permutation_input_limb_26, poseidon_hades_permutation_input_limb_27, poseidon_hades_permutation_input_limb_28, poseidon_hades_permutation_input_limb_29]: [E::F; 30],
        combination_limb_0_col0: E::F,
        combination_limb_1_col1: E::F,
        combination_limb_2_col2: E::F,
        combination_limb_3_col3: E::F,
        combination_limb_4_col4: E::F,
        combination_limb_5_col5: E::F,
        combination_limb_6_col6: E::F,
        combination_limb_7_col7: E::F,
        combination_limb_8_col8: E::F,
        combination_limb_9_col9: E::F,
        p_coef_col10: E::F,
        combination_limb_0_col11: E::F,
        combination_limb_1_col12: E::F,
        combination_limb_2_col13: E::F,
        combination_limb_3_col14: E::F,
        combination_limb_4_col15: E::F,
        combination_limb_5_col16: E::F,
        combination_limb_6_col17: E::F,
        combination_limb_7_col18: E::F,
        combination_limb_8_col19: E::F,
        combination_limb_9_col20: E::F,
        p_coef_col21: E::F,
        combination_limb_0_col22: E::F,
        combination_limb_1_col23: E::F,
        combination_limb_2_col24: E::F,
        combination_limb_3_col25: E::F,
        combination_limb_4_col26: E::F,
        combination_limb_5_col27: E::F,
        combination_limb_6_col28: E::F,
        combination_limb_7_col29: E::F,
        combination_limb_8_col30: E::F,
        combination_limb_9_col31: E::F,
        p_coef_col32: E::F,
        poseidon_full_round_chain_output_limb_0_col33: E::F,
        poseidon_full_round_chain_output_limb_1_col34: E::F,
        poseidon_full_round_chain_output_limb_2_col35: E::F,
        poseidon_full_round_chain_output_limb_3_col36: E::F,
        poseidon_full_round_chain_output_limb_4_col37: E::F,
        poseidon_full_round_chain_output_limb_5_col38: E::F,
        poseidon_full_round_chain_output_limb_6_col39: E::F,
        poseidon_full_round_chain_output_limb_7_col40: E::F,
        poseidon_full_round_chain_output_limb_8_col41: E::F,
        poseidon_full_round_chain_output_limb_9_col42: E::F,
        poseidon_full_round_chain_output_limb_10_col43: E::F,
        poseidon_full_round_chain_output_limb_11_col44: E::F,
        poseidon_full_round_chain_output_limb_12_col45: E::F,
        poseidon_full_round_chain_output_limb_13_col46: E::F,
        poseidon_full_round_chain_output_limb_14_col47: E::F,
        poseidon_full_round_chain_output_limb_15_col48: E::F,
        poseidon_full_round_chain_output_limb_16_col49: E::F,
        poseidon_full_round_chain_output_limb_17_col50: E::F,
        poseidon_full_round_chain_output_limb_18_col51: E::F,
        poseidon_full_round_chain_output_limb_19_col52: E::F,
        poseidon_full_round_chain_output_limb_20_col53: E::F,
        poseidon_full_round_chain_output_limb_21_col54: E::F,
        poseidon_full_round_chain_output_limb_22_col55: E::F,
        poseidon_full_round_chain_output_limb_23_col56: E::F,
        poseidon_full_round_chain_output_limb_24_col57: E::F,
        poseidon_full_round_chain_output_limb_25_col58: E::F,
        poseidon_full_round_chain_output_limb_26_col59: E::F,
        poseidon_full_round_chain_output_limb_27_col60: E::F,
        poseidon_full_round_chain_output_limb_28_col61: E::F,
        poseidon_full_round_chain_output_limb_29_col62: E::F,
        cube_252_output_limb_0_col63: E::F,
        cube_252_output_limb_1_col64: E::F,
        cube_252_output_limb_2_col65: E::F,
        cube_252_output_limb_3_col66: E::F,
        cube_252_output_limb_4_col67: E::F,
        cube_252_output_limb_5_col68: E::F,
        cube_252_output_limb_6_col69: E::F,
        cube_252_output_limb_7_col70: E::F,
        cube_252_output_limb_8_col71: E::F,
        cube_252_output_limb_9_col72: E::F,
        combination_limb_0_col73: E::F,
        combination_limb_1_col74: E::F,
        combination_limb_2_col75: E::F,
        combination_limb_3_col76: E::F,
        combination_limb_4_col77: E::F,
        combination_limb_5_col78: E::F,
        combination_limb_6_col79: E::F,
        combination_limb_7_col80: E::F,
        combination_limb_8_col81: E::F,
        combination_limb_9_col82: E::F,
        p_coef_col83: E::F,
        cube_252_output_limb_0_col84: E::F,
        cube_252_output_limb_1_col85: E::F,
        cube_252_output_limb_2_col86: E::F,
        cube_252_output_limb_3_col87: E::F,
        cube_252_output_limb_4_col88: E::F,
        cube_252_output_limb_5_col89: E::F,
        cube_252_output_limb_6_col90: E::F,
        cube_252_output_limb_7_col91: E::F,
        cube_252_output_limb_8_col92: E::F,
        cube_252_output_limb_9_col93: E::F,
        combination_limb_0_col94: E::F,
        combination_limb_1_col95: E::F,
        combination_limb_2_col96: E::F,
        combination_limb_3_col97: E::F,
        combination_limb_4_col98: E::F,
        combination_limb_5_col99: E::F,
        combination_limb_6_col100: E::F,
        combination_limb_7_col101: E::F,
        combination_limb_8_col102: E::F,
        combination_limb_9_col103: E::F,
        p_coef_col104: E::F,
        poseidon_3_partial_rounds_chain_output_limb_0_col105: E::F,
        poseidon_3_partial_rounds_chain_output_limb_1_col106: E::F,
        poseidon_3_partial_rounds_chain_output_limb_2_col107: E::F,
        poseidon_3_partial_rounds_chain_output_limb_3_col108: E::F,
        poseidon_3_partial_rounds_chain_output_limb_4_col109: E::F,
        poseidon_3_partial_rounds_chain_output_limb_5_col110: E::F,
        poseidon_3_partial_rounds_chain_output_limb_6_col111: E::F,
        poseidon_3_partial_rounds_chain_output_limb_7_col112: E::F,
        poseidon_3_partial_rounds_chain_output_limb_8_col113: E::F,
        poseidon_3_partial_rounds_chain_output_limb_9_col114: E::F,
        poseidon_3_partial_rounds_chain_output_limb_10_col115: E::F,
        poseidon_3_partial_rounds_chain_output_limb_11_col116: E::F,
        poseidon_3_partial_rounds_chain_output_limb_12_col117: E::F,
        poseidon_3_partial_rounds_chain_output_limb_13_col118: E::F,
        poseidon_3_partial_rounds_chain_output_limb_14_col119: E::F,
        poseidon_3_partial_rounds_chain_output_limb_15_col120: E::F,
        poseidon_3_partial_rounds_chain_output_limb_16_col121: E::F,
        poseidon_3_partial_rounds_chain_output_limb_17_col122: E::F,
        poseidon_3_partial_rounds_chain_output_limb_18_col123: E::F,
        poseidon_3_partial_rounds_chain_output_limb_19_col124: E::F,
        poseidon_3_partial_rounds_chain_output_limb_20_col125: E::F,
        poseidon_3_partial_rounds_chain_output_limb_21_col126: E::F,
        poseidon_3_partial_rounds_chain_output_limb_22_col127: E::F,
        poseidon_3_partial_rounds_chain_output_limb_23_col128: E::F,
        poseidon_3_partial_rounds_chain_output_limb_24_col129: E::F,
        poseidon_3_partial_rounds_chain_output_limb_25_col130: E::F,
        poseidon_3_partial_rounds_chain_output_limb_26_col131: E::F,
        poseidon_3_partial_rounds_chain_output_limb_27_col132: E::F,
        poseidon_3_partial_rounds_chain_output_limb_28_col133: E::F,
        poseidon_3_partial_rounds_chain_output_limb_29_col134: E::F,
        poseidon_3_partial_rounds_chain_output_limb_30_col135: E::F,
        poseidon_3_partial_rounds_chain_output_limb_31_col136: E::F,
        poseidon_3_partial_rounds_chain_output_limb_32_col137: E::F,
        poseidon_3_partial_rounds_chain_output_limb_33_col138: E::F,
        poseidon_3_partial_rounds_chain_output_limb_34_col139: E::F,
        poseidon_3_partial_rounds_chain_output_limb_35_col140: E::F,
        poseidon_3_partial_rounds_chain_output_limb_36_col141: E::F,
        poseidon_3_partial_rounds_chain_output_limb_37_col142: E::F,
        poseidon_3_partial_rounds_chain_output_limb_38_col143: E::F,
        poseidon_3_partial_rounds_chain_output_limb_39_col144: E::F,
        combination_limb_0_col145: E::F,
        combination_limb_1_col146: E::F,
        combination_limb_2_col147: E::F,
        combination_limb_3_col148: E::F,
        combination_limb_4_col149: E::F,
        combination_limb_5_col150: E::F,
        combination_limb_6_col151: E::F,
        combination_limb_7_col152: E::F,
        combination_limb_8_col153: E::F,
        combination_limb_9_col154: E::F,
        p_coef_col155: E::F,
        combination_limb_0_col156: E::F,
        combination_limb_1_col157: E::F,
        combination_limb_2_col158: E::F,
        combination_limb_3_col159: E::F,
        combination_limb_4_col160: E::F,
        combination_limb_5_col161: E::F,
        combination_limb_6_col162: E::F,
        combination_limb_7_col163: E::F,
        combination_limb_8_col164: E::F,
        combination_limb_9_col165: E::F,
        p_coef_col166: E::F,
        poseidon_full_round_chain_output_limb_0_col167: E::F,
        poseidon_full_round_chain_output_limb_1_col168: E::F,
        poseidon_full_round_chain_output_limb_2_col169: E::F,
        poseidon_full_round_chain_output_limb_3_col170: E::F,
        poseidon_full_round_chain_output_limb_4_col171: E::F,
        poseidon_full_round_chain_output_limb_5_col172: E::F,
        poseidon_full_round_chain_output_limb_6_col173: E::F,
        poseidon_full_round_chain_output_limb_7_col174: E::F,
        poseidon_full_round_chain_output_limb_8_col175: E::F,
        poseidon_full_round_chain_output_limb_9_col176: E::F,
        poseidon_full_round_chain_output_limb_10_col177: E::F,
        poseidon_full_round_chain_output_limb_11_col178: E::F,
        poseidon_full_round_chain_output_limb_12_col179: E::F,
        poseidon_full_round_chain_output_limb_13_col180: E::F,
        poseidon_full_round_chain_output_limb_14_col181: E::F,
        poseidon_full_round_chain_output_limb_15_col182: E::F,
        poseidon_full_round_chain_output_limb_16_col183: E::F,
        poseidon_full_round_chain_output_limb_17_col184: E::F,
        poseidon_full_round_chain_output_limb_18_col185: E::F,
        poseidon_full_round_chain_output_limb_19_col186: E::F,
        poseidon_full_round_chain_output_limb_20_col187: E::F,
        poseidon_full_round_chain_output_limb_21_col188: E::F,
        poseidon_full_round_chain_output_limb_22_col189: E::F,
        poseidon_full_round_chain_output_limb_23_col190: E::F,
        poseidon_full_round_chain_output_limb_24_col191: E::F,
        poseidon_full_round_chain_output_limb_25_col192: E::F,
        poseidon_full_round_chain_output_limb_26_col193: E::F,
        poseidon_full_round_chain_output_limb_27_col194: E::F,
        poseidon_full_round_chain_output_limb_28_col195: E::F,
        poseidon_full_round_chain_output_limb_29_col196: E::F,
        common_lookup_elements: &relations::CommonLookupElements,
        seq: E::F,
        eval: &mut E,
    ) -> [E::F; 0] {
        let M31_0 = E::F::from(M31::from(0));
        let M31_1 = E::F::from(M31::from(1));
        let M31_102193642 = E::F::from(M31::from(102193642));
        let M31_103094260 = E::F::from(M31::from(103094260));
        let M31_108487870 = E::F::from(M31::from(108487870));
        let M31_1090315331 = E::F::from(M31::from(1090315331));
        let M31_112 = E::F::from(M31::from(112));
        let M31_112479959 = E::F::from(M31::from(112479959));
        let M31_112795138 = E::F::from(M31::from(112795138));
        let M31_116 = E::F::from(M31::from(116));
        let M31_116986206 = E::F::from(M31::from(116986206));
        let M31_117420501 = E::F::from(M31::from(117420501));
        let M31_119023582 = E::F::from(M31::from(119023582));
        let M31_120369218 = E::F::from(M31::from(120369218));
        let M31_121146754 = E::F::from(M31::from(121146754));
        let M31_121657377 = E::F::from(M31::from(121657377));
        let M31_122233508 = E::F::from(M31::from(122233508));
        let M31_129717753 = E::F::from(M31::from(129717753));
        let M31_130418270 = E::F::from(M31::from(130418270));
        let M31_133303902 = E::F::from(M31::from(133303902));
        let M31_1343313504 = E::F::from(M31::from(1343313504));
        let M31_1480369132 = E::F::from(M31::from(1480369132));
        let M31_154 = E::F::from(M31::from(154));
        let M31_16173996 = E::F::from(M31::from(16173996));
        let M31_18765944 = E::F::from(M31::from(18765944));
        let M31_19292069 = E::F::from(M31::from(19292069));
        let M31_1987997202 = E::F::from(M31::from(1987997202));
        let M31_2 = E::F::from(M31::from(2));
        let M31_20 = E::F::from(M31::from(20));
        let M31_208 = E::F::from(M31::from(208));
        let M31_22899501 = E::F::from(M31::from(22899501));
        let M31_248 = E::F::from(M31::from(248));
        let M31_28820206 = E::F::from(M31::from(28820206));
        let M31_31 = E::F::from(M31::from(31));
        let M31_33413160 = E::F::from(M31::from(33413160));
        let M31_33439011 = E::F::from(M31::from(33439011));
        let M31_35 = E::F::from(M31::from(35));
        let M31_36279186 = E::F::from(M31::from(36279186));
        let M31_4 = E::F::from(M31::from(4));
        let M31_40454143 = E::F::from(M31::from(40454143));
        let M31_41224388 = E::F::from(M31::from(41224388));
        let M31_41320857 = E::F::from(M31::from(41320857));
        let M31_44781849 = E::F::from(M31::from(44781849));
        let M31_44848225 = E::F::from(M31::from(44848225));
        let M31_45351266 = E::F::from(M31::from(45351266));
        let M31_45553283 = E::F::from(M31::from(45553283));
        let M31_48193339 = E::F::from(M31::from(48193339));
        let M31_48383197 = E::F::from(M31::from(48383197));
        let M31_4883209 = E::F::from(M31::from(4883209));
        let M31_48945103 = E::F::from(M31::from(48945103));
        let M31_49157069 = E::F::from(M31::from(49157069));
        let M31_49554771 = E::F::from(M31::from(49554771));
        let M31_4974792 = E::F::from(M31::from(4974792));
        let M31_50468641 = E::F::from(M31::from(50468641));
        let M31_50758155 = E::F::from(M31::from(50758155));
        let M31_54415179 = E::F::from(M31::from(54415179));
        let M31_55508188 = E::F::from(M31::from(55508188));
        let M31_55955004 = E::F::from(M31::from(55955004));
        let M31_58475513 = E::F::from(M31::from(58475513));
        let M31_59852719 = E::F::from(M31::from(59852719));
        let M31_60124463 = E::F::from(M31::from(60124463));
        let M31_60709090 = E::F::from(M31::from(60709090));
        let M31_62360091 = E::F::from(M31::from(62360091));
        let M31_62439890 = E::F::from(M31::from(62439890));
        let M31_65659846 = E::F::from(M31::from(65659846));
        let M31_68491350 = E::F::from(M31::from(68491350));
        let M31_72285071 = E::F::from(M31::from(72285071));
        let M31_74972783 = E::F::from(M31::from(74972783));
        let M31_75104388 = E::F::from(M31::from(75104388));
        let M31_77099918 = E::F::from(M31::from(77099918));
        let M31_78826183 = E::F::from(M31::from(78826183));
        let M31_79012328 = E::F::from(M31::from(79012328));
        let M31_86573645 = E::F::from(M31::from(86573645));
        let M31_88680813 = E::F::from(M31::from(88680813));
        let M31_90391646 = E::F::from(M31::from(90391646));
        let M31_90842759 = E::F::from(M31::from(90842759));
        let M31_91013252 = E::F::from(M31::from(91013252));
        let M31_94624323 = E::F::from(M31::from(94624323));
        let M31_95050340 = E::F::from(M31::from(95050340));
        let M31_99 = E::F::from(M31::from(99));

        LinearCombinationN2Coefs11::evaluate(
            [
                poseidon_hades_permutation_input_limb_0.clone(),
                poseidon_hades_permutation_input_limb_1.clone(),
                poseidon_hades_permutation_input_limb_2.clone(),
                poseidon_hades_permutation_input_limb_3.clone(),
                poseidon_hades_permutation_input_limb_4.clone(),
                poseidon_hades_permutation_input_limb_5.clone(),
                poseidon_hades_permutation_input_limb_6.clone(),
                poseidon_hades_permutation_input_limb_7.clone(),
                poseidon_hades_permutation_input_limb_8.clone(),
                poseidon_hades_permutation_input_limb_9.clone(),
                M31_74972783.clone(),
                M31_117420501.clone(),
                M31_112795138.clone(),
                M31_91013252.clone(),
                M31_60709090.clone(),
                M31_44848225.clone(),
                M31_108487870.clone(),
                M31_44781849.clone(),
                M31_102193642.clone(),
                M31_208.clone(),
            ],
            combination_limb_0_col0.clone(),
            combination_limb_1_col1.clone(),
            combination_limb_2_col2.clone(),
            combination_limb_3_col3.clone(),
            combination_limb_4_col4.clone(),
            combination_limb_5_col5.clone(),
            combination_limb_6_col6.clone(),
            combination_limb_7_col7.clone(),
            combination_limb_8_col8.clone(),
            combination_limb_9_col9.clone(),
            p_coef_col10.clone(),
            common_lookup_elements,
            eval,
        );
        LinearCombinationN2Coefs11::evaluate(
            [
                poseidon_hades_permutation_input_limb_10.clone(),
                poseidon_hades_permutation_input_limb_11.clone(),
                poseidon_hades_permutation_input_limb_12.clone(),
                poseidon_hades_permutation_input_limb_13.clone(),
                poseidon_hades_permutation_input_limb_14.clone(),
                poseidon_hades_permutation_input_limb_15.clone(),
                poseidon_hades_permutation_input_limb_16.clone(),
                poseidon_hades_permutation_input_limb_17.clone(),
                poseidon_hades_permutation_input_limb_18.clone(),
                poseidon_hades_permutation_input_limb_19.clone(),
                M31_41224388.clone(),
                M31_90391646.clone(),
                M31_36279186.clone(),
                M31_129717753.clone(),
                M31_94624323.clone(),
                M31_75104388.clone(),
                M31_133303902.clone(),
                M31_48945103.clone(),
                M31_41320857.clone(),
                M31_112.clone(),
            ],
            combination_limb_0_col11.clone(),
            combination_limb_1_col12.clone(),
            combination_limb_2_col13.clone(),
            combination_limb_3_col14.clone(),
            combination_limb_4_col15.clone(),
            combination_limb_5_col16.clone(),
            combination_limb_6_col17.clone(),
            combination_limb_7_col18.clone(),
            combination_limb_8_col19.clone(),
            combination_limb_9_col20.clone(),
            p_coef_col21.clone(),
            common_lookup_elements,
            eval,
        );
        LinearCombinationN2Coefs11::evaluate(
            [
                poseidon_hades_permutation_input_limb_20.clone(),
                poseidon_hades_permutation_input_limb_21.clone(),
                poseidon_hades_permutation_input_limb_22.clone(),
                poseidon_hades_permutation_input_limb_23.clone(),
                poseidon_hades_permutation_input_limb_24.clone(),
                poseidon_hades_permutation_input_limb_25.clone(),
                poseidon_hades_permutation_input_limb_26.clone(),
                poseidon_hades_permutation_input_limb_27.clone(),
                poseidon_hades_permutation_input_limb_28.clone(),
                poseidon_hades_permutation_input_limb_29.clone(),
                M31_4883209.clone(),
                M31_28820206.clone(),
                M31_79012328.clone(),
                M31_49157069.clone(),
                M31_78826183.clone(),
                M31_72285071.clone(),
                M31_33413160.clone(),
                M31_90842759.clone(),
                M31_60124463.clone(),
                M31_116.clone(),
            ],
            combination_limb_0_col22.clone(),
            combination_limb_1_col23.clone(),
            combination_limb_2_col24.clone(),
            combination_limb_3_col25.clone(),
            combination_limb_4_col26.clone(),
            combination_limb_5_col27.clone(),
            combination_limb_6_col28.clone(),
            combination_limb_7_col29.clone(),
            combination_limb_8_col30.clone(),
            combination_limb_9_col31.clone(),
            p_coef_col32.clone(),
            common_lookup_elements,
            eval,
        );
        let poseidon_full_round_chain_chain_tmp_tmp_7d028_63 =
            eval.add_intermediate((seq.clone() * M31_2.clone()));
        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            -E::EF::from(M31_1.clone()),
            &[
                M31_1480369132.clone(),
                poseidon_full_round_chain_chain_tmp_tmp_7d028_63.clone(),
                M31_0.clone(),
                combination_limb_0_col0.clone(),
                combination_limb_1_col1.clone(),
                combination_limb_2_col2.clone(),
                combination_limb_3_col3.clone(),
                combination_limb_4_col4.clone(),
                combination_limb_5_col5.clone(),
                combination_limb_6_col6.clone(),
                combination_limb_7_col7.clone(),
                combination_limb_8_col8.clone(),
                combination_limb_9_col9.clone(),
                combination_limb_0_col11.clone(),
                combination_limb_1_col12.clone(),
                combination_limb_2_col13.clone(),
                combination_limb_3_col14.clone(),
                combination_limb_4_col15.clone(),
                combination_limb_5_col16.clone(),
                combination_limb_6_col17.clone(),
                combination_limb_7_col18.clone(),
                combination_limb_8_col19.clone(),
                combination_limb_9_col20.clone(),
                combination_limb_0_col22.clone(),
                combination_limb_1_col23.clone(),
                combination_limb_2_col24.clone(),
                combination_limb_3_col25.clone(),
                combination_limb_4_col26.clone(),
                combination_limb_5_col27.clone(),
                combination_limb_6_col28.clone(),
                combination_limb_7_col29.clone(),
                combination_limb_8_col30.clone(),
                combination_limb_9_col31.clone(),
            ],
        ));

        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1480369132.clone(),
                poseidon_full_round_chain_chain_tmp_tmp_7d028_63.clone(),
                M31_4.clone(),
                poseidon_full_round_chain_output_limb_0_col33.clone(),
                poseidon_full_round_chain_output_limb_1_col34.clone(),
                poseidon_full_round_chain_output_limb_2_col35.clone(),
                poseidon_full_round_chain_output_limb_3_col36.clone(),
                poseidon_full_round_chain_output_limb_4_col37.clone(),
                poseidon_full_round_chain_output_limb_5_col38.clone(),
                poseidon_full_round_chain_output_limb_6_col39.clone(),
                poseidon_full_round_chain_output_limb_7_col40.clone(),
                poseidon_full_round_chain_output_limb_8_col41.clone(),
                poseidon_full_round_chain_output_limb_9_col42.clone(),
                poseidon_full_round_chain_output_limb_10_col43.clone(),
                poseidon_full_round_chain_output_limb_11_col44.clone(),
                poseidon_full_round_chain_output_limb_12_col45.clone(),
                poseidon_full_round_chain_output_limb_13_col46.clone(),
                poseidon_full_round_chain_output_limb_14_col47.clone(),
                poseidon_full_round_chain_output_limb_15_col48.clone(),
                poseidon_full_round_chain_output_limb_16_col49.clone(),
                poseidon_full_round_chain_output_limb_17_col50.clone(),
                poseidon_full_round_chain_output_limb_18_col51.clone(),
                poseidon_full_round_chain_output_limb_19_col52.clone(),
                poseidon_full_round_chain_output_limb_20_col53.clone(),
                poseidon_full_round_chain_output_limb_21_col54.clone(),
                poseidon_full_round_chain_output_limb_22_col55.clone(),
                poseidon_full_round_chain_output_limb_23_col56.clone(),
                poseidon_full_round_chain_output_limb_24_col57.clone(),
                poseidon_full_round_chain_output_limb_25_col58.clone(),
                poseidon_full_round_chain_output_limb_26_col59.clone(),
                poseidon_full_round_chain_output_limb_27_col60.clone(),
                poseidon_full_round_chain_output_limb_28_col61.clone(),
                poseidon_full_round_chain_output_limb_29_col62.clone(),
            ],
        ));

        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1090315331.clone(),
                poseidon_full_round_chain_output_limb_0_col33.clone(),
                poseidon_full_round_chain_output_limb_1_col34.clone(),
                poseidon_full_round_chain_output_limb_2_col35.clone(),
                poseidon_full_round_chain_output_limb_3_col36.clone(),
                poseidon_full_round_chain_output_limb_4_col37.clone(),
                poseidon_full_round_chain_output_limb_5_col38.clone(),
                poseidon_full_round_chain_output_limb_6_col39.clone(),
                poseidon_full_round_chain_output_limb_7_col40.clone(),
                poseidon_full_round_chain_output_limb_8_col41.clone(),
                poseidon_full_round_chain_output_limb_9_col42.clone(),
            ],
        ));

        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1090315331.clone(),
                poseidon_full_round_chain_output_limb_10_col43.clone(),
                poseidon_full_round_chain_output_limb_11_col44.clone(),
                poseidon_full_round_chain_output_limb_12_col45.clone(),
                poseidon_full_round_chain_output_limb_13_col46.clone(),
                poseidon_full_round_chain_output_limb_14_col47.clone(),
                poseidon_full_round_chain_output_limb_15_col48.clone(),
                poseidon_full_round_chain_output_limb_16_col49.clone(),
                poseidon_full_round_chain_output_limb_17_col50.clone(),
                poseidon_full_round_chain_output_limb_18_col51.clone(),
                poseidon_full_round_chain_output_limb_19_col52.clone(),
            ],
        ));

        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1987997202.clone(),
                poseidon_full_round_chain_output_limb_20_col53.clone(),
                poseidon_full_round_chain_output_limb_21_col54.clone(),
                poseidon_full_round_chain_output_limb_22_col55.clone(),
                poseidon_full_round_chain_output_limb_23_col56.clone(),
                poseidon_full_round_chain_output_limb_24_col57.clone(),
                poseidon_full_round_chain_output_limb_25_col58.clone(),
                poseidon_full_round_chain_output_limb_26_col59.clone(),
                poseidon_full_round_chain_output_limb_27_col60.clone(),
                poseidon_full_round_chain_output_limb_28_col61.clone(),
                poseidon_full_round_chain_output_limb_29_col62.clone(),
                cube_252_output_limb_0_col63.clone(),
                cube_252_output_limb_1_col64.clone(),
                cube_252_output_limb_2_col65.clone(),
                cube_252_output_limb_3_col66.clone(),
                cube_252_output_limb_4_col67.clone(),
                cube_252_output_limb_5_col68.clone(),
                cube_252_output_limb_6_col69.clone(),
                cube_252_output_limb_7_col70.clone(),
                cube_252_output_limb_8_col71.clone(),
                cube_252_output_limb_9_col72.clone(),
            ],
        ));

        LinearCombinationN4Coefs11M21::evaluate(
            [
                poseidon_full_round_chain_output_limb_0_col33.clone(),
                poseidon_full_round_chain_output_limb_1_col34.clone(),
                poseidon_full_round_chain_output_limb_2_col35.clone(),
                poseidon_full_round_chain_output_limb_3_col36.clone(),
                poseidon_full_round_chain_output_limb_4_col37.clone(),
                poseidon_full_round_chain_output_limb_5_col38.clone(),
                poseidon_full_round_chain_output_limb_6_col39.clone(),
                poseidon_full_round_chain_output_limb_7_col40.clone(),
                poseidon_full_round_chain_output_limb_8_col41.clone(),
                poseidon_full_round_chain_output_limb_9_col42.clone(),
                poseidon_full_round_chain_output_limb_10_col43.clone(),
                poseidon_full_round_chain_output_limb_11_col44.clone(),
                poseidon_full_round_chain_output_limb_12_col45.clone(),
                poseidon_full_round_chain_output_limb_13_col46.clone(),
                poseidon_full_round_chain_output_limb_14_col47.clone(),
                poseidon_full_round_chain_output_limb_15_col48.clone(),
                poseidon_full_round_chain_output_limb_16_col49.clone(),
                poseidon_full_round_chain_output_limb_17_col50.clone(),
                poseidon_full_round_chain_output_limb_18_col51.clone(),
                poseidon_full_round_chain_output_limb_19_col52.clone(),
                cube_252_output_limb_0_col63.clone(),
                cube_252_output_limb_1_col64.clone(),
                cube_252_output_limb_2_col65.clone(),
                cube_252_output_limb_3_col66.clone(),
                cube_252_output_limb_4_col67.clone(),
                cube_252_output_limb_5_col68.clone(),
                cube_252_output_limb_6_col69.clone(),
                cube_252_output_limb_7_col70.clone(),
                cube_252_output_limb_8_col71.clone(),
                cube_252_output_limb_9_col72.clone(),
                M31_103094260.clone(),
                M31_121146754.clone(),
                M31_95050340.clone(),
                M31_16173996.clone(),
                M31_50758155.clone(),
                M31_54415179.clone(),
                M31_19292069.clone(),
                M31_45351266.clone(),
                M31_122233508.clone(),
                M31_248.clone(),
            ],
            combination_limb_0_col73.clone(),
            combination_limb_1_col74.clone(),
            combination_limb_2_col75.clone(),
            combination_limb_3_col76.clone(),
            combination_limb_4_col77.clone(),
            combination_limb_5_col78.clone(),
            combination_limb_6_col79.clone(),
            combination_limb_7_col80.clone(),
            combination_limb_8_col81.clone(),
            combination_limb_9_col82.clone(),
            p_coef_col83.clone(),
            common_lookup_elements,
            eval,
        );
        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1987997202.clone(),
                combination_limb_0_col73.clone(),
                combination_limb_1_col74.clone(),
                combination_limb_2_col75.clone(),
                combination_limb_3_col76.clone(),
                combination_limb_4_col77.clone(),
                combination_limb_5_col78.clone(),
                combination_limb_6_col79.clone(),
                combination_limb_7_col80.clone(),
                combination_limb_8_col81.clone(),
                combination_limb_9_col82.clone(),
                cube_252_output_limb_0_col84.clone(),
                cube_252_output_limb_1_col85.clone(),
                cube_252_output_limb_2_col86.clone(),
                cube_252_output_limb_3_col87.clone(),
                cube_252_output_limb_4_col88.clone(),
                cube_252_output_limb_5_col89.clone(),
                cube_252_output_limb_6_col90.clone(),
                cube_252_output_limb_7_col91.clone(),
                cube_252_output_limb_8_col92.clone(),
                cube_252_output_limb_9_col93.clone(),
            ],
        ));

        LinearCombinationN4Coefs42M21::evaluate(
            [
                poseidon_full_round_chain_output_limb_0_col33.clone(),
                poseidon_full_round_chain_output_limb_1_col34.clone(),
                poseidon_full_round_chain_output_limb_2_col35.clone(),
                poseidon_full_round_chain_output_limb_3_col36.clone(),
                poseidon_full_round_chain_output_limb_4_col37.clone(),
                poseidon_full_round_chain_output_limb_5_col38.clone(),
                poseidon_full_round_chain_output_limb_6_col39.clone(),
                poseidon_full_round_chain_output_limb_7_col40.clone(),
                poseidon_full_round_chain_output_limb_8_col41.clone(),
                poseidon_full_round_chain_output_limb_9_col42.clone(),
                cube_252_output_limb_0_col63.clone(),
                cube_252_output_limb_1_col64.clone(),
                cube_252_output_limb_2_col65.clone(),
                cube_252_output_limb_3_col66.clone(),
                cube_252_output_limb_4_col67.clone(),
                cube_252_output_limb_5_col68.clone(),
                cube_252_output_limb_6_col69.clone(),
                cube_252_output_limb_7_col70.clone(),
                cube_252_output_limb_8_col71.clone(),
                cube_252_output_limb_9_col72.clone(),
                cube_252_output_limb_0_col84.clone(),
                cube_252_output_limb_1_col85.clone(),
                cube_252_output_limb_2_col86.clone(),
                cube_252_output_limb_3_col87.clone(),
                cube_252_output_limb_4_col88.clone(),
                cube_252_output_limb_5_col89.clone(),
                cube_252_output_limb_6_col90.clone(),
                cube_252_output_limb_7_col91.clone(),
                cube_252_output_limb_8_col92.clone(),
                cube_252_output_limb_9_col93.clone(),
                M31_121657377.clone(),
                M31_112479959.clone(),
                M31_130418270.clone(),
                M31_4974792.clone(),
                M31_59852719.clone(),
                M31_120369218.clone(),
                M31_62439890.clone(),
                M31_50468641.clone(),
                M31_86573645.clone(),
                M31_154.clone(),
            ],
            combination_limb_0_col94.clone(),
            combination_limb_1_col95.clone(),
            combination_limb_2_col96.clone(),
            combination_limb_3_col97.clone(),
            combination_limb_4_col98.clone(),
            combination_limb_5_col99.clone(),
            combination_limb_6_col100.clone(),
            combination_limb_7_col101.clone(),
            combination_limb_8_col102.clone(),
            combination_limb_9_col103.clone(),
            p_coef_col104.clone(),
            common_lookup_elements,
            eval,
        );
        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            -E::EF::from(M31_1.clone()),
            &[
                M31_1343313504.clone(),
                seq.clone(),
                M31_4.clone(),
                cube_252_output_limb_0_col63.clone(),
                cube_252_output_limb_1_col64.clone(),
                cube_252_output_limb_2_col65.clone(),
                cube_252_output_limb_3_col66.clone(),
                cube_252_output_limb_4_col67.clone(),
                cube_252_output_limb_5_col68.clone(),
                cube_252_output_limb_6_col69.clone(),
                cube_252_output_limb_7_col70.clone(),
                cube_252_output_limb_8_col71.clone(),
                cube_252_output_limb_9_col72.clone(),
                combination_limb_0_col73.clone(),
                combination_limb_1_col74.clone(),
                combination_limb_2_col75.clone(),
                combination_limb_3_col76.clone(),
                combination_limb_4_col77.clone(),
                combination_limb_5_col78.clone(),
                combination_limb_6_col79.clone(),
                combination_limb_7_col80.clone(),
                combination_limb_8_col81.clone(),
                combination_limb_9_col82.clone(),
                cube_252_output_limb_0_col84.clone(),
                cube_252_output_limb_1_col85.clone(),
                cube_252_output_limb_2_col86.clone(),
                cube_252_output_limb_3_col87.clone(),
                cube_252_output_limb_4_col88.clone(),
                cube_252_output_limb_5_col89.clone(),
                cube_252_output_limb_6_col90.clone(),
                cube_252_output_limb_7_col91.clone(),
                cube_252_output_limb_8_col92.clone(),
                cube_252_output_limb_9_col93.clone(),
                combination_limb_0_col94.clone(),
                combination_limb_1_col95.clone(),
                combination_limb_2_col96.clone(),
                combination_limb_3_col97.clone(),
                combination_limb_4_col98.clone(),
                combination_limb_5_col99.clone(),
                combination_limb_6_col100.clone(),
                combination_limb_7_col101.clone(),
                combination_limb_8_col102.clone(),
                combination_limb_9_col103.clone(),
            ],
        ));

        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1343313504.clone(),
                seq.clone(),
                M31_31.clone(),
                poseidon_3_partial_rounds_chain_output_limb_0_col105.clone(),
                poseidon_3_partial_rounds_chain_output_limb_1_col106.clone(),
                poseidon_3_partial_rounds_chain_output_limb_2_col107.clone(),
                poseidon_3_partial_rounds_chain_output_limb_3_col108.clone(),
                poseidon_3_partial_rounds_chain_output_limb_4_col109.clone(),
                poseidon_3_partial_rounds_chain_output_limb_5_col110.clone(),
                poseidon_3_partial_rounds_chain_output_limb_6_col111.clone(),
                poseidon_3_partial_rounds_chain_output_limb_7_col112.clone(),
                poseidon_3_partial_rounds_chain_output_limb_8_col113.clone(),
                poseidon_3_partial_rounds_chain_output_limb_9_col114.clone(),
                poseidon_3_partial_rounds_chain_output_limb_10_col115.clone(),
                poseidon_3_partial_rounds_chain_output_limb_11_col116.clone(),
                poseidon_3_partial_rounds_chain_output_limb_12_col117.clone(),
                poseidon_3_partial_rounds_chain_output_limb_13_col118.clone(),
                poseidon_3_partial_rounds_chain_output_limb_14_col119.clone(),
                poseidon_3_partial_rounds_chain_output_limb_15_col120.clone(),
                poseidon_3_partial_rounds_chain_output_limb_16_col121.clone(),
                poseidon_3_partial_rounds_chain_output_limb_17_col122.clone(),
                poseidon_3_partial_rounds_chain_output_limb_18_col123.clone(),
                poseidon_3_partial_rounds_chain_output_limb_19_col124.clone(),
                poseidon_3_partial_rounds_chain_output_limb_20_col125.clone(),
                poseidon_3_partial_rounds_chain_output_limb_21_col126.clone(),
                poseidon_3_partial_rounds_chain_output_limb_22_col127.clone(),
                poseidon_3_partial_rounds_chain_output_limb_23_col128.clone(),
                poseidon_3_partial_rounds_chain_output_limb_24_col129.clone(),
                poseidon_3_partial_rounds_chain_output_limb_25_col130.clone(),
                poseidon_3_partial_rounds_chain_output_limb_26_col131.clone(),
                poseidon_3_partial_rounds_chain_output_limb_27_col132.clone(),
                poseidon_3_partial_rounds_chain_output_limb_28_col133.clone(),
                poseidon_3_partial_rounds_chain_output_limb_29_col134.clone(),
                poseidon_3_partial_rounds_chain_output_limb_30_col135.clone(),
                poseidon_3_partial_rounds_chain_output_limb_31_col136.clone(),
                poseidon_3_partial_rounds_chain_output_limb_32_col137.clone(),
                poseidon_3_partial_rounds_chain_output_limb_33_col138.clone(),
                poseidon_3_partial_rounds_chain_output_limb_34_col139.clone(),
                poseidon_3_partial_rounds_chain_output_limb_35_col140.clone(),
                poseidon_3_partial_rounds_chain_output_limb_36_col141.clone(),
                poseidon_3_partial_rounds_chain_output_limb_37_col142.clone(),
                poseidon_3_partial_rounds_chain_output_limb_38_col143.clone(),
                poseidon_3_partial_rounds_chain_output_limb_39_col144.clone(),
            ],
        ));

        LinearCombinationN4Coefs4211::evaluate(
            [
                poseidon_3_partial_rounds_chain_output_limb_0_col105.clone(),
                poseidon_3_partial_rounds_chain_output_limb_1_col106.clone(),
                poseidon_3_partial_rounds_chain_output_limb_2_col107.clone(),
                poseidon_3_partial_rounds_chain_output_limb_3_col108.clone(),
                poseidon_3_partial_rounds_chain_output_limb_4_col109.clone(),
                poseidon_3_partial_rounds_chain_output_limb_5_col110.clone(),
                poseidon_3_partial_rounds_chain_output_limb_6_col111.clone(),
                poseidon_3_partial_rounds_chain_output_limb_7_col112.clone(),
                poseidon_3_partial_rounds_chain_output_limb_8_col113.clone(),
                poseidon_3_partial_rounds_chain_output_limb_9_col114.clone(),
                poseidon_3_partial_rounds_chain_output_limb_10_col115.clone(),
                poseidon_3_partial_rounds_chain_output_limb_11_col116.clone(),
                poseidon_3_partial_rounds_chain_output_limb_12_col117.clone(),
                poseidon_3_partial_rounds_chain_output_limb_13_col118.clone(),
                poseidon_3_partial_rounds_chain_output_limb_14_col119.clone(),
                poseidon_3_partial_rounds_chain_output_limb_15_col120.clone(),
                poseidon_3_partial_rounds_chain_output_limb_16_col121.clone(),
                poseidon_3_partial_rounds_chain_output_limb_17_col122.clone(),
                poseidon_3_partial_rounds_chain_output_limb_18_col123.clone(),
                poseidon_3_partial_rounds_chain_output_limb_19_col124.clone(),
                poseidon_3_partial_rounds_chain_output_limb_20_col125.clone(),
                poseidon_3_partial_rounds_chain_output_limb_21_col126.clone(),
                poseidon_3_partial_rounds_chain_output_limb_22_col127.clone(),
                poseidon_3_partial_rounds_chain_output_limb_23_col128.clone(),
                poseidon_3_partial_rounds_chain_output_limb_24_col129.clone(),
                poseidon_3_partial_rounds_chain_output_limb_25_col130.clone(),
                poseidon_3_partial_rounds_chain_output_limb_26_col131.clone(),
                poseidon_3_partial_rounds_chain_output_limb_27_col132.clone(),
                poseidon_3_partial_rounds_chain_output_limb_28_col133.clone(),
                poseidon_3_partial_rounds_chain_output_limb_29_col134.clone(),
                M31_40454143.clone(),
                M31_49554771.clone(),
                M31_55508188.clone(),
                M31_116986206.clone(),
                M31_88680813.clone(),
                M31_45553283.clone(),
                M31_62360091.clone(),
                M31_77099918.clone(),
                M31_22899501.clone(),
                M31_99.clone(),
            ],
            combination_limb_0_col145.clone(),
            combination_limb_1_col146.clone(),
            combination_limb_2_col147.clone(),
            combination_limb_3_col148.clone(),
            combination_limb_4_col149.clone(),
            combination_limb_5_col150.clone(),
            combination_limb_6_col151.clone(),
            combination_limb_7_col152.clone(),
            combination_limb_8_col153.clone(),
            combination_limb_9_col154.clone(),
            p_coef_col155.clone(),
            common_lookup_elements,
            eval,
        );
        LinearCombinationN4Coefs4211::evaluate(
            [
                poseidon_3_partial_rounds_chain_output_limb_20_col125.clone(),
                poseidon_3_partial_rounds_chain_output_limb_21_col126.clone(),
                poseidon_3_partial_rounds_chain_output_limb_22_col127.clone(),
                poseidon_3_partial_rounds_chain_output_limb_23_col128.clone(),
                poseidon_3_partial_rounds_chain_output_limb_24_col129.clone(),
                poseidon_3_partial_rounds_chain_output_limb_25_col130.clone(),
                poseidon_3_partial_rounds_chain_output_limb_26_col131.clone(),
                poseidon_3_partial_rounds_chain_output_limb_27_col132.clone(),
                poseidon_3_partial_rounds_chain_output_limb_28_col133.clone(),
                poseidon_3_partial_rounds_chain_output_limb_29_col134.clone(),
                poseidon_3_partial_rounds_chain_output_limb_30_col135.clone(),
                poseidon_3_partial_rounds_chain_output_limb_31_col136.clone(),
                poseidon_3_partial_rounds_chain_output_limb_32_col137.clone(),
                poseidon_3_partial_rounds_chain_output_limb_33_col138.clone(),
                poseidon_3_partial_rounds_chain_output_limb_34_col139.clone(),
                poseidon_3_partial_rounds_chain_output_limb_35_col140.clone(),
                poseidon_3_partial_rounds_chain_output_limb_36_col141.clone(),
                poseidon_3_partial_rounds_chain_output_limb_37_col142.clone(),
                poseidon_3_partial_rounds_chain_output_limb_38_col143.clone(),
                poseidon_3_partial_rounds_chain_output_limb_39_col144.clone(),
                combination_limb_0_col145.clone(),
                combination_limb_1_col146.clone(),
                combination_limb_2_col147.clone(),
                combination_limb_3_col148.clone(),
                combination_limb_4_col149.clone(),
                combination_limb_5_col150.clone(),
                combination_limb_6_col151.clone(),
                combination_limb_7_col152.clone(),
                combination_limb_8_col153.clone(),
                combination_limb_9_col154.clone(),
                M31_48383197.clone(),
                M31_48193339.clone(),
                M31_55955004.clone(),
                M31_65659846.clone(),
                M31_68491350.clone(),
                M31_119023582.clone(),
                M31_33439011.clone(),
                M31_58475513.clone(),
                M31_18765944.clone(),
                M31_20.clone(),
            ],
            combination_limb_0_col156.clone(),
            combination_limb_1_col157.clone(),
            combination_limb_2_col158.clone(),
            combination_limb_3_col159.clone(),
            combination_limb_4_col160.clone(),
            combination_limb_5_col161.clone(),
            combination_limb_6_col162.clone(),
            combination_limb_7_col163.clone(),
            combination_limb_8_col164.clone(),
            combination_limb_9_col165.clone(),
            p_coef_col166.clone(),
            common_lookup_elements,
            eval,
        );
        let poseidon_full_round_chain_chain_id_tmp_7d028_146 = eval.add_intermediate(
            (poseidon_full_round_chain_chain_tmp_tmp_7d028_63.clone() + M31_1.clone()),
        );
        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            -E::EF::from(M31_1.clone()),
            &[
                M31_1480369132.clone(),
                poseidon_full_round_chain_chain_id_tmp_7d028_146.clone(),
                M31_31.clone(),
                combination_limb_0_col156.clone(),
                combination_limb_1_col157.clone(),
                combination_limb_2_col158.clone(),
                combination_limb_3_col159.clone(),
                combination_limb_4_col160.clone(),
                combination_limb_5_col161.clone(),
                combination_limb_6_col162.clone(),
                combination_limb_7_col163.clone(),
                combination_limb_8_col164.clone(),
                combination_limb_9_col165.clone(),
                combination_limb_0_col145.clone(),
                combination_limb_1_col146.clone(),
                combination_limb_2_col147.clone(),
                combination_limb_3_col148.clone(),
                combination_limb_4_col149.clone(),
                combination_limb_5_col150.clone(),
                combination_limb_6_col151.clone(),
                combination_limb_7_col152.clone(),
                combination_limb_8_col153.clone(),
                combination_limb_9_col154.clone(),
                poseidon_3_partial_rounds_chain_output_limb_30_col135.clone(),
                poseidon_3_partial_rounds_chain_output_limb_31_col136.clone(),
                poseidon_3_partial_rounds_chain_output_limb_32_col137.clone(),
                poseidon_3_partial_rounds_chain_output_limb_33_col138.clone(),
                poseidon_3_partial_rounds_chain_output_limb_34_col139.clone(),
                poseidon_3_partial_rounds_chain_output_limb_35_col140.clone(),
                poseidon_3_partial_rounds_chain_output_limb_36_col141.clone(),
                poseidon_3_partial_rounds_chain_output_limb_37_col142.clone(),
                poseidon_3_partial_rounds_chain_output_limb_38_col143.clone(),
                poseidon_3_partial_rounds_chain_output_limb_39_col144.clone(),
            ],
        ));

        eval.add_to_relation(RelationEntry::new(
            common_lookup_elements,
            E::EF::from(M31_1.clone()),
            &[
                M31_1480369132.clone(),
                poseidon_full_round_chain_chain_id_tmp_7d028_146.clone(),
                M31_35.clone(),
                poseidon_full_round_chain_output_limb_0_col167.clone(),
                poseidon_full_round_chain_output_limb_1_col168.clone(),
                poseidon_full_round_chain_output_limb_2_col169.clone(),
                poseidon_full_round_chain_output_limb_3_col170.clone(),
                poseidon_full_round_chain_output_limb_4_col171.clone(),
                poseidon_full_round_chain_output_limb_5_col172.clone(),
                poseidon_full_round_chain_output_limb_6_col173.clone(),
                poseidon_full_round_chain_output_limb_7_col174.clone(),
                poseidon_full_round_chain_output_limb_8_col175.clone(),
                poseidon_full_round_chain_output_limb_9_col176.clone(),
                poseidon_full_round_chain_output_limb_10_col177.clone(),
                poseidon_full_round_chain_output_limb_11_col178.clone(),
                poseidon_full_round_chain_output_limb_12_col179.clone(),
                poseidon_full_round_chain_output_limb_13_col180.clone(),
                poseidon_full_round_chain_output_limb_14_col181.clone(),
                poseidon_full_round_chain_output_limb_15_col182.clone(),
                poseidon_full_round_chain_output_limb_16_col183.clone(),
                poseidon_full_round_chain_output_limb_17_col184.clone(),
                poseidon_full_round_chain_output_limb_18_col185.clone(),
                poseidon_full_round_chain_output_limb_19_col186.clone(),
                poseidon_full_round_chain_output_limb_20_col187.clone(),
                poseidon_full_round_chain_output_limb_21_col188.clone(),
                poseidon_full_round_chain_output_limb_22_col189.clone(),
                poseidon_full_round_chain_output_limb_23_col190.clone(),
                poseidon_full_round_chain_output_limb_24_col191.clone(),
                poseidon_full_round_chain_output_limb_25_col192.clone(),
                poseidon_full_round_chain_output_limb_26_col193.clone(),
                poseidon_full_round_chain_output_limb_27_col194.clone(),
                poseidon_full_round_chain_output_limb_28_col195.clone(),
                poseidon_full_round_chain_output_limb_29_col196.clone(),
            ],
        ));

        []
    }
}