anemoi/ed_on_bls12_377/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!("2070"),
11    MontFp!("6612529487892872556951602928046477324292633016111489595003177094593756717991"),
12    MontFp!("5979696533729491715846134977040519588883641246669155240022600273635977461488"),
13    MontFp!("5761310912037237324186829422286804283879338127162802014987390028854161914237"),
14    MontFp!("495513847329877925653068137864262536848696586186157780263769757231090358152"),
15    MontFp!("6021403047692515510825438148053498942493458564797322420508926994079461811249"),
16    MontFp!("7186659688422290509884223845323191160707758730890509532877511322387936946287"),
17    MontFp!("4583080575471434113157611199618049385047460501828761562670661254301947376186"),
18    MontFp!("7638139888211081053291016400713794304479396956356746593609515867926942792019"),
19    MontFp!("2465203538329912236421670797285498765943747053490232285911997452596551025952"),
20    MontFp!("3912386062997706973497076386767704132776421373802061843489157707334482631282"),
21    MontFp!("950063258513504321334357608353665606353897497188663031049452044417633771297"),
22    MontFp!("8403640257876412668724710112036017395929125708537170766946726261849158045401"),
23    MontFp!("7712946076829975071838408345478462467189599654272051201581564201823258275759"),
24    MontFp!("7144311256144039293845510493889855894025617612402413902349299621133042227503"),
25    MontFp!("775455870885297827081253245552615242708877612053438659837983174154717589901"),
26    MontFp!("7182514215913249698164316469581764409668747547836430624880588201715113987729"),
27    MontFp!("8047737770492312348258259431759680022124154770500056743120106191745794885874"),
28    MontFp!("2064647765913261809003549072194959531306508462939302350710187759506947310764"),
29    MontFp!("57246621944702767319874141159748900865349029222940763464768952468087134856"),
30    MontFp!("1111830253322655282277644650055921780849717035749573022808463288215659079865"),
31    MontFp!("2652999802006043752448692478992464403613523434802030570780732962410963917664"),
32    MontFp!("624906270490530570123511649912590003021731705567433201623948724288933968767"),
33    MontFp!("6224946315437781207545173206981195990662431460942805535454730423169875938872"),
34    MontFp!("3982563198115914606073202721796280336682458024657468680391651734769311832159"),
35    MontFp!("4658579641314541818707768457386760664054470469895201982376046179410528230397"),
36];
37
38/// Additive round constants D for Anemoi.
39pub(crate) const D: [Felt; NUM_COLUMNS * NUM_HASH_ROUNDS] = [
40    MontFp!("1151517511285686876033930673470210890642168091157372340172986380352373989212"),
41    MontFp!("8313407843588761636341397004200686193081582728358661597084904995307720127958"),
42    MontFp!("5894754118685856030959640120524029200402643703827424062794017367237226537944"),
43    MontFp!("6225729341403803842656197968454311873545122205410870499667548642817000413518"),
44    MontFp!("205137281738069451862795601170246678149627303378140352724850479411874715355"),
45    MontFp!("6280387326510909240391029014043481061941170903079104654878749236621835591277"),
46    MontFp!("3211007526061926139896557467165291487272263438555207966308051413826597186499"),
47    MontFp!("1156789257521271946525808224144147689758746830583259658009942866102197039223"),
48    MontFp!("2052761830574759519618599622380527958787439094790947281986493055748567910940"),
49    MontFp!("5873648074532163330353942360417776929774470148168296464132949616697174806739"),
50    MontFp!("7780180521675770745916563477524005233754958052900126361006487830953262607603"),
51    MontFp!("5367218561601770297109708101793964685479215797376527210475523688398003170443"),
52    MontFp!("6885525322645472792280224857007158862065918261892374234906786811186864058859"),
53    MontFp!("6744191986009237398749786493133601911473173828717054331450366271522553712042"),
54    MontFp!("6679189901307201439330727786363802351756570571717591216626682039660892306985"),
55    MontFp!("859695360458662175922333940710559678586612192458415636024107113044157092208"),
56    MontFp!("7374124679685367559222705721696347479405481850649735551581774278916389181543"),
57    MontFp!("344247329246261988423687147776714538631771359249097503794800333391250263472"),
58    MontFp!("888565831499378002236996715015152417877077701214338379094561542164224914641"),
59    MontFp!("7874987281369391588158010125445486296958599223741840281693117711404363400599"),
60    MontFp!("376417838224406224236641083604357831428055874276900109260239155410304474867"),
61    MontFp!("2466948231317996897763552315224898432338643894419157319141250349967198735491"),
62    MontFp!("1085614875797407786885110691933637764341250590022780182102301859776553957245"),
63    MontFp!("7235015765154860627662635651686241730128731966487952177841825079019085350175"),
64    MontFp!("5904023245864816791350805606004384722571228758809403722346849673117100551222"),
65    MontFp!("7129400533473646207341234744278863028090022825136936686239985638119906372285"),
66];