anemoi/pallas/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!("37"),
11    MontFp!("1073600649493721386260794557469849503640066691537015824238818792459819652058"),
12    MontFp!("26281348989966017259792317449778718732316622220680883111323180762681136763865"),
13    MontFp!("26759025031544155887018479822803341874665690815791822188776685421877709775482"),
14    MontFp!("18591254890380010761864840202388680562911662159094449241596182239929363100704"),
15    MontFp!("16670159922847105555024340551469855955902138097272740024565593932869861693682"),
16    MontFp!("13495862858106627515637537555868576984930084039254289255166693115500631348485"),
17    MontFp!("25992885883364693492893526984482865427916570963557269563309307284375897438037"),
18    MontFp!("19144755574234386166181567106217473191690122379652580194612919592790889081733"),
19    MontFp!("24336927257701231555240819698817935092133289252116413150816020966978201101525"),
20    MontFp!("18811779461046155712735761687068915290737647863622609130367600608448330751854"),
21    MontFp!("24918215840194474199442067541882026699827645402334920395426931008216455598314"),
22    MontFp!("5575670157869159198176715286459175971250617976440186444249245623981112838723"),
23    MontFp!("18033629555373691019510128727387158017700638694867537767505529855931777227792"),
24    MontFp!("11204345192131346974251503060634424531930847456508603191046487769612226356466"),
25    MontFp!("6695322881246417057404927656184988772548199339460164912735460342449984650757"),
26    MontFp!("11046668350288503579760336005886659422438139074976054678139072669198820125523"),
27    MontFp!("17406093881223180355840833693508979756570758621297057172667600526109982692879"),
28    MontFp!("15654115810939573121853007233706921297705448878035521255163789541040142932005"),
29    MontFp!("26742387511008426237380814783211059048040143820957181490547789533049240802397"),
30    MontFp!("14729491161049187479462431166560060202595436538882668538070096769412375786491"),
31    MontFp!("10646945945591780974336353349757087204577924384685865045432970113151001496427"),
32    MontFp!("1894942756697365943018533093692753350687005044094733507802691220941794652376"),
33    MontFp!("22476303959950490370839306969800241436463661919550361890355084658996297047217"),
34    MontFp!("23217710365823183162722556433077700924032709249614405538004930330632973665678"),
35    MontFp!("1138919706201324107604217477591119033715682699360329347681269766898129260064"),
36    MontFp!("24379936598524113994898316699448364156829680691043617111736361974067258065460"),
37    MontFp!("14474413401630052484945443968288730407567729929862232136782960204423844020548"),
38];
39
40/// Additive round constants D for Anemoi.
41pub(crate) const D: [Felt; NUM_COLUMNS * NUM_HASH_ROUNDS] = [
42    MontFp!("11579208923731619542357098500868790785345222592776624286381870705739987052172"),
43    MontFp!("7005322261316609069095374149368943429205471293769760139844021269491539184205"),
44    MontFp!("8635109805850431260933782412348561577056610564420134064677479474386147757892"),
45    MontFp!("3465298535519838028637425876403487859625861168987193171354315904874453249521"),
46    MontFp!("2749966645161231950390217292435212715018890444216920273319663546391624368785"),
47    MontFp!("24129406675048643739919944984718668211592604873792891801467083774973823072112"),
48    MontFp!("8152525470927511811460280715669976866076469366461319755948806312723871861967"),
49    MontFp!("15002061184276845929193751235314568449283138300220420093314752252890870431531"),
50    MontFp!("2281147808231124126985934789906642042143342527732374999779009198498715959429"),
51    MontFp!("1825832179789237656522668473537407082806691409652327985205442343977760459233"),
52    MontFp!("24712356212267165723325706717751563168766505387684098625082469021761409591630"),
53    MontFp!("25171305279506752350509493663594977718076684935852529919365131192821266918102"),
54    MontFp!("23373436511013129058408904325542266752633905591121501445790926066372800007225"),
55    MontFp!("1235886287279880164327052605328574975941051837063412082315865305265229245969"),
56    MontFp!("7061399116127706886645267243015866814157489880056456561505481230928985785025"),
57    MontFp!("25852911802663093966168919181768711158358080254405699028372462339408444189665"),
58    MontFp!("16654825040461262708564306745423907205257839354433432946258876128555503589023"),
59    MontFp!("17366763259487207625122285524076530679610640910210555470010735756758398636391"),
60    MontFp!("7638319624558274114440431817412418459488709285285150989631734929845155696690"),
61    MontFp!("13079104012718395370445720457946859350043586237662931254239066693145986047094"),
62    MontFp!("27779010638119157733984803090082167820861169560545512543308120408218951291451"),
63    MontFp!("18048978110753019369336206364309497963063839415804829079894325523249309481399"),
64    MontFp!("8954668161794395147054048526648808307389650489500242648922879333659584736094"),
65    MontFp!("23888542053138787715352303493786599533386489374411991060698604543005819610947"),
66    MontFp!("4226549114477105189589794277262044618809743614843938435689526786032725654278"),
67    MontFp!("5448293452275563130841682664977742832075955555987542990543874757939581359013"),
68    MontFp!("8563707063890154306527618106092398081982428922263062428714943840082583850761"),
69    MontFp!("21958718864416409792944972718135044436303716652479358198939550606080869916198"),
70];