33
44#define NROUNDS 91
55
6- void mimc7 (element * h , element * x_in , element * k )
6+ void mimc7 (element * h , element * x_in , element * k )
77{
8- element r [NROUNDS ];
9- element f [NROUNDS * 3 ];
8+ element r [NROUNDS ];
9+ element f [NROUNDS * 3 ];
1010
11- init_array (r , NROUNDS );
12- init_array (f , NROUNDS * 3 );
11+ init_array (r , NROUNDS );
12+ init_array (f , NROUNDS * 3 );
1313
14- int it = 0 ;
14+ int it = 0 ;
1515
16- for (int i = 0 ; i < NROUNDS ; i ++ )
17- {
18- if (i == 0 ) addmuladd (& f [it ], k , x_in , k , x_in );
19- else add3muladd3 (& f [it ], k , & r [i - 1 ], & c_mimc [i ], k , & r [i - 1 ], & c_mimc [i ]);
16+ for (int i = 0 ; i < NROUNDS ; i ++ )
17+ {
18+ if (i == 0 )
19+ addmuladd (& f [it ], k , x_in , k , x_in );
20+ else
21+ add3muladd3 (& f [it ], k , & r [i - 1 ], & c_mimc [i ], k , & r [i - 1 ], & c_mimc [i ]);
2022
21- mul (& f [it + 1 ], & f [it ], & f [it ]);
22- mul (& f [it + 2 ], & f [it + 1 ], & f [it ]);
23- if (i == 0 ) addmul (& r [i ], k , x_in , & f [it + 2 ]);
24- else add3mul (& r [i ], k , & r [i - 1 ], & c_mimc [i ], & f [it + 2 ]);
23+ mul (& f [it + 1 ], & f [it ], & f [it ]);
24+ mul (& f [it + 2 ], & f [it + 1 ], & f [it ]);
25+ if (i == 0 )
26+ addmul (& r [i ], k , x_in , & f [it + 2 ]);
27+ else
28+ add3mul (& r [i ], k , & r [i - 1 ], & c_mimc [i ], & f [it + 2 ]);
2529
26- it = it + 3 ;
27- }
30+ it = it + 3 ;
31+ }
2832
29- addmul (h , k , & r [NROUNDS - 1 ], & one );
33+ addmul (h , k , & r [NROUNDS - 1 ], & one );
3034}
3135
32- void multi_hash (element h , element * x_in , int arraySize )
36+ void multi_hash (element h , element * x_in , int arraySize )
3337{
34- element k [arraySize ];
35- init_array (k , arraySize );
36- input (& k [0 ], "0" );
37-
38- for (int i = 0 ; i < arraySize - 1 ; i ++ )
39- {
40- element hf ;
41- init (& hf );
42- mimc7 (& hf , & x_in [i ], & k [i ]);
43- add3mul (& k [i + 1 ], & x_in [i ], & k [i ], & hf , & one );
44- }
45-
46- element hf ;
47- init (& hf );
48- mimc7 (& hf , & x_in [arraySize - 1 ], & k [arraySize - 1 ]);
49- add3mul (& h , & x_in [arraySize - 1 ], & k [arraySize - 1 ], & hf , & one );
38+ element k [arraySize ];
39+ init_array (k , arraySize );
40+ input (& k [0 ], "0" );
41+
42+ for (int i = 0 ; i < arraySize - 1 ; i ++ )
43+ {
44+ element hf ;
45+ init (& hf );
46+ mimc7 (& hf , & x_in [i ], & k [i ]);
47+ add3mul (& k [i + 1 ], & x_in [i ], & k [i ], & hf , & one );
48+ }
49+
50+ element hf ;
51+ init (& hf );
52+ mimc7 (& hf , & x_in [arraySize - 1 ], & k [arraySize - 1 ]);
53+ add3mul (& h , & x_in [arraySize - 1 ], & k [arraySize - 1 ], & hf , & one );
5054}
5155
5256#endif
0 commit comments