anemoi/bls12_381/anemoi_4_3/
round_constants.rs

1//! Additive round constants implementation for Anemoi
2
3use super::Felt;
4use super::MontFp;
5use super::NUM_COLUMNS;
6use super::NUM_HASH_ROUNDS;
7
8/// Additive round constants C for Anemoi.
9pub(crate) const C: [Felt; NUM_COLUMNS * NUM_HASH_ROUNDS] = [
10    MontFp!("34"),
11    MontFp!("2409289674515964039800397748272111586458994661533518055907529629170127329220156383807226014157842079357698539867013"),
12    MontFp!("1802890129851246813659007827792457593591967954225177465003958629059592331820704634471444444986557107601258510809477"),
13    MontFp!("1366428804697833582063848054305795687954475449034979896655574252789854899897540076046144771877065071793763289418351"),
14    MontFp!("1163541058489375705939253000052582717589688304227800166492711905258422639004264764757007766200652553778388947035196"),
15    MontFp!("2599218593288406336569579192798319465964123611604399512225989866255377952008868331814277376059326979184013957243034"),
16    MontFp!("2993830509114556863244789033608536874914179736946552181411992791029556788397323446496586721760740748289013332901133"),
17    MontFp!("2932967614544061807629422328681114446918863769052036236303157911161745697584259582722320641675444262607500451521234"),
18    MontFp!("573867724519177799887804458177387030173270153738844699474012364904682058619398469863390936470658172346803816809223"),
19    MontFp!("2169302661807782192819083660107127008416486061111307480230258982271812813799722461983520587577786378648188103454631"),
20    MontFp!("1133666418013810241414908075022499235296993280312781822452385964216874801671701825960318123895614335938760508544136"),
21    MontFp!("7320791599365261197841722630662281594061547708454973801725301869104063474393733554766362896312294381939651269940"),
22    MontFp!("1432935248360662927643819144861808734341932605053762049493082292040138104615792396202250808062614715861752190946805"),
23    MontFp!("2583833373728593704021157974703974558359295366533860522321522038366193319955292039163994743042293933066883948654592"),
24    MontFp!("2937843952585528477034428820500164949369595385650147011395924721149432944978203468423932270486030958918618718133774"),
25    MontFp!("2016345024601830151259381187202398906964660156510971189292565321422037885005531752790800488105030179576323646918307"),
26    MontFp!("1119368933669939254933129802114314937366171824793327290199562881033964528457085147370031558362957166251919093672436"),
27    MontFp!("1117866845876569156446927663089092006614187554239119249620551000572349910482693143825068160636763612048789582893917"),
28    MontFp!("3106755410607727733260023252411795216281474922841743919595051448766548339207630174571583789429811949294710997058661"),
29    MontFp!("3214475880343662145719694759711820602803354147963418577193854518026687105647117143039656082316944486264420420083707"),
30    MontFp!("2181777351436712524740845170723304835772975798682434494893533952443015954881544024162116615968295237954156090015479"),
31    MontFp!("3150996442651337779854227623465319452545978787323095052124611575066255549200887824450996702648755197465893447553108"),
32    MontFp!("3594492996608017165923826832404826992424753508505712056193258478167704471457155555827277985636181897273436531670345"),
33    MontFp!("2130280606550521829273247604714168899251396836985538978769241333945451548395643926572781311470155551914557372783293"),
34    MontFp!("1426521663463083722392973856516691592534870899730251620491465314056437420299837766620639706949497870380582190400416"),
35    MontFp!("1394831624486937300472526778215145335126502260627639111731651198388073466185375773695237426839790797198658853759274"),
36    MontFp!("1684777022564509910904192199836013514761083181134622416169381549848716459174831281625863491929688843422335344576677"),
37    MontFp!("2747802006963432234019584421086509864529380158787937428682347967205845246912384854434669096407280496105668570264393"),
38];
39
40/// Additive round constants D for Anemoi.
41pub(crate) const D: [Felt; NUM_COLUMNS * NUM_HASH_ROUNDS] = [
42    MontFp!("2001204777610833696708894912867952078278441409969503942666029068062015825245418932221343814564507832018947136279928"),
43    MontFp!("3826513763458521314219567272270443891024853964046424536622054625432077976042769253035620050368391189675094837809334"),
44    MontFp!("1063107713031121519411563272879293251937270524183678010670450933115443400882622227431956230480822501821312815871925"),
45    MontFp!("42665699209431865526678110523011572587195911536882980370562485045640790536651606013706779017371744312266756143226"),
46    MontFp!("2593616443352813769313984452413363298820096767172941008460934430459434341959084720908601613540992934429124163663031"),
47    MontFp!("3445313289483567977654585256289480273481949967092942892242708319656324476540882224972921445045708638133198335533296"),
48    MontFp!("3192492627653335175744539633470668336196141661930128734747515931998918540002187124742333052074612515566985362129282"),
49    MontFp!("2547649044414563697839447539673626134488243586579015327687176980331042270766317197975117193635357308183921642411810"),
50    MontFp!("1099523866041459732336071250292823203050785916176055703688332369001377317279107674828456376950577717515699602254992"),
51    MontFp!("2110978114661787702977625063352943407581419716091921022493074914568442894036625603955636249703747202115533050562827"),
52    MontFp!("2742942427494406416835851503502765917481859714365711472415318649513714011248170304976608950610168443057107769196062"),
53    MontFp!("1032616112411685014329059762241309190066345874304787161813153915365878094628056149578107411256907679798736073584293"),
54    MontFp!("3720639284256286777885486895808125541131496669581508031047489058058775904278758367623731437121324756978073932189626"),
55    MontFp!("285147165734273738555310511044767434879394503666001156592366596460734290704614083149837964618029588443760579000053"),
56    MontFp!("3353223398208346765924676129190460622023772300171595814559958111308287910230835659930306488376549488924491887638278"),
57    MontFp!("1847743781556372017859903107023074805906254963575822530505094639780827671835357881304224927641589987880645978085238"),
58    MontFp!("1276711465038890289048882965391056654378440021576268403183802186504675616706971496188786358583532942051011315471748"),
59    MontFp!("691228688577243768272955437496213949913873643565462900653286234242995820309773429650873182503380666146330966355656"),
60    MontFp!("251914423155492399522837463295128075436204652809902068958033305809317127287025185061274600527694359394022738370358"),
61    MontFp!("3778063759444817783110573407461437844802384590413987149937390439393422365794543954979084744189883838700075595617618"),
62    MontFp!("1934929038618629983185937505823606629077609187460918365721844653106617460736005097993532405601911966181440015801921"),
63    MontFp!("2320167441164978816009594569696001472138030068644981461001418203929791876632542835289462713928413203991626535001977"),
64    MontFp!("2191577806391864262081395743269660031449260656701322427815417216127835312574139344472180342330718235434302798187784"),
65    MontFp!("143384727666092503141091126709382164563321877724551888439896000105517211089821652224733889810733168373872800963159"),
66    MontFp!("362774526546857925715835949875033233949509299343143435961496795710346570662211776506172330241752626471327042551086"),
67    MontFp!("3749513354124102474923453308439771359385441372722941350582236744365949088615781585030507900907102495625747140132158"),
68    MontFp!("1233347002419474022342137492968527408581274622666052084819463343857616419792012632389960087998811440202381370643937"),
69    MontFp!("1712391298150119923167804325349403984636989492862769635380925689414680029106760142205815914122444371184163757994080"),
70];