arnaucube
arnaucube/sonobePublic Self-hosted repository
sonobe/folding-schemes/src/transcript/poseidon/grumpkin.rs
folding-schemes/src/transcript/poseidon/grumpkin.rsRaw
  1use crate::utils::vec::mat_from_str_mat;
  2use ark_crypto_primitives::sponge::poseidon::PoseidonConfig;
  3use ark_ff::{BigInteger, PrimeField};
  4use ark_grumpkin::Fr;
  5
  6// Poseidon constants for Grumpkin curve as generated by
  7// https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/master/code/generate_params_poseidon.sage
  8// generated with `sage generate_params_poseidon.sage 1 0 254 5 5 128 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47`
  9pub(crate) fn constants<F: PrimeField>() -> (Vec<Vec<F>>, Vec<Vec<F>>) {
 10    assert_eq!(
 11        F::MODULUS.to_bytes_be(),
 12        Fr::MODULUS.to_bytes_be(),
 13        "The prime field must be isomorphic to Grumpkin's scalar field."
 14    );
 15
 16    let ark_string: Vec<Vec<&'static str>> = vec![
 17        vec![
 18            "1302239555262414373374689806120238567451910671048356388761256768881091977026",
 19            "20142103518641694351566464807000085009490728625878244431319536321251441942827",
 20            "1848725460637284900919684211664029868073589532499995561090226899069857587691",
 21            "5361307675224911135631066913685411082885932664964555034697699114860673882233",
 22            "4473122481411436076578491888827463154326954640259385462117207234024651916467",
 23        ],
 24        vec![
 25            "4533665742580623759631463707292502457303336027513946514723234383907861855246",
 26            "18472882194054405184784552208176156100293313194921931757669044776860165723544",
 27            "13757170890682053314816924771913668733053950646218560510866549037895645369564",
 28            "15806422895261109419898318282501524707572435539997217203708101166323921748108",
 29            "4766645625917486367271392557885239315740765821810232842247605581184299843494",
 30        ],
 31        vec![
 32            "20755837067826525663784916442484716524757386712340218661351088127992212106824",
 33            "6931011592102208154123444754548015589930397906195731845090389578241299211369",
 34            "12872548123049027593925484150531538114342387406107964171770931024714006292181",
 35            "19021338859263582291104968524901108269784177222899573306303774240117233382398",
 36            "17624901113592432267211565106957770530605134617091943075252981153737028641716",
 37        ],
 38        vec![
 39            "11897559166778002356641650092926138527561825100763949484362978917091516510740",
 40            "16531220301863555769676315206097401335513858226194647800882375473715925042232",
 41            "17424778277809172963111651706245659891848752348049503063931347914108000943672",
 42            "8755320631024432262855370560922521571750691690410643309032862198109856402583",
 43            "13001374422759326741836935513643753155827889666543672420219715996498314514388",
 44        ],
 45        vec![
 46            "1216381760598407582699518975893828293652170521927520199708385998164690424621",
 47            "12904452162183097363015957196342633654786993893983128901759408322407067297371",
 48            "12561546531549776115730200560156766849625548211823920139512193600272045292214",
 49            "6930331115111210258738101597156664444782725205072006650173982958818687844256",
 50            "20343201589001547428520895531352840937278491384202851733146323236738523363974",
 51        ],
 52        vec![
 53            "21276658617773026322558061138281506464246599637634454717771400932019299351058",
 54            "10097707957242243649644020228037307057787037645761780570978695646445962985259",
 55            "20884899049383530051119245117264409449924070600456004919419167743735821727525",
 56            "13397377812553675887463913728139069073663372700997375397306322061704817036699",
 57            "18616452404841674533221000354835108216941859123618809264334834815478741347616",
 58        ],
 59        vec![
 60            "14095582055409818879058497145465115091368953664985761666416195570775862375876",
 61            "989852126716121482840752331182237457108026053334039713051379901905011698070",
 62            "17340662943780963387950947862140795796989106523426385169679957973719353360741",
 63            "21755563706267022930627043190481285340144355046068185172121349807216561640069",
 64            "15325642321391280884601090785518744373251074806018161393832307224918948529190",
 65        ],
 66        vec![
 67            "10947071261274459198985325724422809398466752666178363754986952007564051091991",
 68            "19953459756557134691582789660250080388719207918492892241424355079847437897323",
 69            "13017630646666130918684255548141038078663596336503425492693574842865036949889",
 70            "4905735010145524529321574488779565535942265382177114282705789859908899904195",
 71            "10994310769595981723441482938782205505832502558966986540479894047164733348048",
 72        ],
 73        vec![
 74            "4558883426533135507911287152839063026974356902037934918621088392204919960394",
 75            "11389411190803682369640964183611054693569262790844534007467939610145999369106",
 76            "18427429659657004292641659748828676044508307931530940913274422128932825189144",
 77            "4747632600112900813091981406884834870751420906815558480423623116525080457937",
 78            "5490841575344500401467379479524085742106499725818479519577052331586947120981",
 79        ],
 80        vec![
 81            "2347382691271463868967750760346366670376966725559856646130273282076458003368",
 82            "16502441246700317204003385838804213772286717383737310147868712728226242159711",
 83            "14646651083202779369271496867484659085917125847409070439596464462441721106180",
 84            "13041468713723203915781425513068453721571105549428616212880344099041922281475",
 85            "3565173238238447220537445892325048229194756045427371806218935305698716190995",
 86        ],
 87        vec![
 88            "17943632701836793558610248175530473966863264931644843118326991954984458357290",
 89            "8629262964952314380681928360755010594313865847541533524671645031866347944808",
 90            "7572585832263212060188863708270352053805259115073057646408375965480399606343",
 91            "83274726636107851152653695232725466625000275473180660596342055855019190940",
 92            "18419438698221392832302278310087737661219932827207397795877863686561542628223",
 93        ],
 94        vec![
 95            "16874449584406008639769137537482670173495631460698323839993762270762442482009",
 96            "8749161354809478532131350694773024129109208098976978805205338319260439258799",
 97            "20095113607838931495450163196664901744414657849787917039337877115367663583621",
 98            "21496402233796304778674847416310373229074196587894223152969939251561124632593",
 99            "7306593543990928826856646724176363830912005405046339703530820920160807073796",
100        ],
101        vec![
102            "16574885752032489191936718275612881782825833553621719044993535519938387127400",
103            "17893846554920802635748353716139419828283296002539047685567560104482290794073",
104            "8217710934970159387824787503447453277040037054856124483775233206267781444657",
105            "11736757443656203051940992851618854589883051155619796589606327570587773463597",
106            "7357108854635356516029972411581451513334735628108242015429096369590782972006",
107        ],
108        vec![
109            "8147957389683128377316520163944526066526593720865319955477800843043644615989",
110            "8578207148496795372472985004149219327836996063338727427201924899856749727241",
111            "878253637253843051899747206938918363442655844121997039811453253482370007284",
112            "20781125944276624211500376146292543892734001454479669416166826579753807566548",
113            "20773295400756975680254195587466646104772947626518629881700760847706165190894",
114        ],
115        vec![
116            "8895732064456860615031330861811147768090897020733265327161274654936972538582",
117            "13954796436586071032237593323904206118434100817076378166833933826515717194615",
118            "6355545976680142042668472818246836867663718105500649088196115931833309333103",
119            "4499982511725783916459995397890272599887600061913175041084892456480149140119",
120            "15967465264568599312952212489705525749991909148648023268083881356822830788370",
121        ],
122        vec![
123            "7045959712343242541933282090760122650714071751280111869924239373404367611226",
124            "2758736619576784375230833756818006811754042435434827244702302161302877039098",
125            "19397434025124552842587969987983638711272147892938019758837488416168452483405",
126            "10440333186925843771206432302032975829293919982173553632337605164736343289924",
127            "20794828600186593697605470276342298530768058055061372707773720672699288893913",
128        ],
129        vec![
130            "709447844943698498852757143805467220589543729112138798025120783273302752965",
131            "17630037546285330880196515002704642932154600033057727390686078225861835742326",
132            "11964069260068059126618472914968597496192458090458011601036083658775820131292",
133            "19972222798144604337869256501706490565052674557941336457278259071687666383574",
134            "20844290750559969884082493778608981257417176059035561389829575829623760080290",
135        ],
136        vec![
137            "14878046182581709281495871580054466314356460127105044683621574875682589989779",
138            "17065124944399078846233335855360993858196260091317227579344094536004687852415",
139            "1360185877806851401242557944439065061377489353855369475692187665353692978482",
140            "12049768792718449936655304983585280196700538370638579473561453856246399176898",
141            "15709845344656905001433765150369354864137327645236573224421289508062355021142",
142        ],
143        vec![
144            "12621360382058090679255394201724646640587139016796614995047968862337201466266",
145            "18274600673536226005784163227137914855155135034599653130567948750716142598090",
146            "21787884937926839264206539030201705373748985208764895579805499705238531820296",
147            "5518911123238579609231332432611943975352402278711652122694671920605456058290",
148            "21761949116188843619537619306753312531716136775725591544674153934240863529357",
149        ],
150        vec![
151            "17796869701357527201664204976604962048892070624767673384550605654779596007581",
152            "2647864604326554986833555225919077882119773589724990209783919042763253098108",
153            "19617892249447454311609020630034101548030577828642557996979504904433175197191",
154            "16539302958461539414481327333293722887554229697833863735141593451081482424120",
155            "4643606366993265766773586170443164470758797322755782618742651473789684357708",
156        ],
157        vec![
158            "4071581142654619843147341131359139210505553973938073256620554556892698535665",
159            "8438506585452949563345440953823822856687668373103117920012160878623100635715",
160            "5752648847295773759323596722843573010957235282128774345262290688283958122187",
161            "4895183974327552378943157516835940807537265497873725882428018890508283672707",
162            "99879445459850652926996475631572406748626601406767594664854914412536794882",
163        ],
164        vec![
165            "1923718358753835151721387946715785538388643977826645864293502204191986917822",
166            "20477927320500904716666257724334897086463565247896774882102460405414651843209",
167            "4006849405528300180014054829493834535617772179184109802880071219554470452886",
168            "10107976939430331960441747215493937401372845315504512470617212987469116885943",
169            "7119571668689414144607710005511178646031929995895119888457483830175098096498",
170        ],
171        vec![
172            "9872390410521458646121186788124410025628155737484619433357017546855004223978",
173            "21606915995435014503540652557971419337975068893666154677779514355357198577484",
174            "18001171795801887563745450369173596829659495012571495799316565738291413999685",
175            "20937233136022841286771273476220803640966790989321822224992915812050072125029",
176            "13853572901603423386283135192760416047463779350471925431886912539052870854516",
177        ],
178        vec![
179            "7070600116437505566301516576517233788065772494741576728836386496081684767923",
180            "11184373642166206206995287089301456597658294766117413157771494639288064885056",
181            "12841477105033880138152882352270850924315792748224498738103381953046184795144",
182            "1755167770148415657695387316779398514494819098407216925610122012803274394347",
183            "17004098977713219442909011456539313463808204294677194009536257955735490204316",
184        ],
185        vec![
186            "13918334833224327546297267827647471092666708610949564904320302281568358386219",
187            "11114170313788260091002151042271544880186588359420682000730043368717205266601",
188            "18439850522357402898303132218070821687887062629580147710920704074847733864016",
189            "10530436785876228149266150677701972714943238262920190774882843981609997621353",
190            "21072114166085741592816517938297707270436788587579436145325231685649812963629",
191        ],
192        vec![
193            "2094411010794090876717462570342717890672062958788201315289761804428904533721",
194            "8915878887328839142983427035164815337561276204353902884382943661261415445046",
195            "7616342698079827765791968427743036240203047763116805302331458419499028658482",
196            "8200710106989617402554959919916002247984642580296370147402494036734414480292",
197            "20744924048241957058281161545923736050414168021353274950816510886479212477941",
198        ],
199        vec![
200            "21382304571836070549931341837111711288815078485385836691041098667712848959513",
201            "5363454082341013317554893533404052402561614424686599343270520107449141324251",
202            "19271380433074332255461750206392593155229797371298469126288176518859012402488",
203            "19284858754791044234619190072916658819128950416929669576669828359721253583476",
204            "4347052022768834992831956681958567468275115041393166850705568538274021535653",
205        ],
206        vec![
207            "5347579665803543154579370003793541492663176864561245170012842054646916411756",
208            "15154015709945488235461044557840341690070793639780701389600826304410652635126",
209            "14284408872658800251723507539653877329628932861134484971720825469778534181682",
210            "9711589473384623153441082777119419277451857932364007911882413378746629857300",
211            "12386040029204472714497332338926304138183035061201374723092754304685826751973",
212        ],
213        vec![
214            "2982316836932298422050557525101873891357503977663776438631253526538497978038",
215            "9441977932804102579353475137962384655847637389761448611532778568891212385341",
216            "8539525209965113683210134921270851023819533178131265377811744281414999344105",
217            "15410066578620981498634743331974323624474573834322740404100062731142779729944",
218            "12392063012290922514331017726588085071539844101072814893654199668124656370438",
219        ],
220        vec![
221            "17065187639764462859853096495755804816599495563961724364982614144577063825801",
222            "2008764007761084581130273411301054447855384981112680350916101365339816942167",
223            "12033786842942478889587047472531970811285454161836192807274525954252993062530",
224            "3984393467579617759108600545867686724263281569823213622742775912250034844523",
225            "18618339702539879228841658632418255862053759038071892766106358111976063460190",
226        ],
227        vec![
228            "18156898408367441617119711804274259507528069577887238632062644667202857018593",
229            "21080042863306662936950095604614158871112079027267728361334324632449882247493",
230            "16240965012479307524071605734375101960274551356571955298617984622775658350016",
231            "14221844007451140205992483251522807080442254924228164870716910231527342559914",
232            "7292289663573284912177572483254539576411910175285178060564787819667108102326",
233        ],
234        vec![
235            "8103273422142674255776372834488704655604711673426196023800875386912884557457",
236            "18054187581485462987355985044629428571768458762730021689491495998294234577693",
237            "20453295504331160733306660954772311473025215927027991341100710420100047539002",
238            "3554118714213142358752758480123600824792611607375962381969520157236774923426",
239            "16830192789363703470207646307443660978790147868390422240433276093601295592554",
240        ],
241        vec![
242            "15107140136797957315748929296388826049467241369326022314386608202530282365423",
243            "21285265735865763357384027044858771755072817264141123441908045614213326425978",
244            "2777078076018600443384138666065892999827937343665706320976121985854040040062",
245            "10306526793348313220313360232622366773192621454610895150539556890481223908878",
246            "3986094169820581741224158158414757002901140745319315875507610903859141202594",
247        ],
248        vec![
249            "21395437918063083580979333150773034354616142666169453508234137643490987983673",
250            "13129544875124812052819482497670660745332583868001421786918912932537916025567",
251            "21689372610185905991917284292707031919082550146838541051789173093404095075260",
252            "5305829976126283652922397651017903920529015051010018920756189140868470197981",
253            "2553681848662163005833529966579252450790058534306544039492996212114422395433",
254        ],
255        vec![
256            "17713528016716160377032633031860382085838469031075655507795128756976791355435",
257            "9491820604894314039555713267327419914973891054344379708675409342186583881613",
258            "6888439906763505303063673789064050442951420414130075443251542450847862464460",
259            "14770568168929423572115974934221902453911829356761238549785497088819971653517",
260            "15835128816772321432767426850947174577707938773126912973158661902028150167517",
261        ],
262        vec![
263            "2764734647777982876147187592277418709626222378470508712045781515019904687169",
264            "14699561850422431548490916788128110229469336625799148789554766764560249484208",
265            "16202237139602136968728272054154053690700101264849231363184732378737631713776",
266            "21010382217320933047328167881513834327367306210350848830624615290126734674978",
267            "21878796003151751780103238716473704388589102790973207193769075594800938087472",
268        ],
269        vec![
270            "16438931517546594489433313976198411445658491191751450877756574263898742742630",
271            "15455021954879694880064386371706730890497994176717928888903890601866739219035",
272            "277392098767674408206679066669309082190128728677980290645097736422198920211",
273            "5385642205466209548834686561634430250955636094674076888166796942411558088911",
274            "17152161762746123707923926605859839391687842796333435151544669011943325907368",
275        ],
276        vec![
277            "3539586941998825906572765166881959268581870110160554530811172791559432510434",
278            "21291265123168208642370952811729162800582110383948835797311786248565114295223",
279            "2475340677262844094762960246163985089881056535034632621616818968620298251230",
280            "7798235620200455154874326974510730344303802310964712096010822362290605624218",
281            "14364505836915122239803412656452014006778204615405446331730923361702473284265",
282        ],
283        vec![
284            "3872806894327146131397743191674114521881565862842516477386664477274530674192",
285            "16164023672176103844702158338588552984086839649602006663630596524214840215227",
286            "7439761190815555063979460097977546697596706515018808044867072104367234295151",
287            "21364402501789153204603544261572251710651046144649289908173963362038696965375",
288            "8541399769584536552281910909458898334230834359986988903753611163373264370868",
289        ],
290        vec![
291            "17647063943033783343020879048153964677277647702692500560761944649467500611781",
292            "15431008881896942001008226179572746419787757159745657256720934853277152574653",
293            "20852931786641660679003694154889935566769395955557209711272839603920934953150",
294            "229293965011229721775346264940129463558498351348196659393871004320274382782",
295            "7102765778493273901641218835005965594441081283488593995494571562113400044023",
296        ],
297        vec![
298            "4301428317229312828848967074495057161390882846626923162898001307573720630811",
299            "6989871140410537543374674628221533758557593095781620131775473860353033620371",
300            "14067861690966768379045513737638214939361046173691580428921121219527106167265",
301            "10989355720245531664247415871120996675597011727515839530375673271732849482030",
302            "10636028492234020984772246771393454781159159764299311356516055847130840656251",
303        ],
304        vec![
305            "1509516411118548818479457061390140842030611053766198534277289864733053431984",
306            "6016527014717414985715406835438830385705629018768225890341272217512754139075",
307            "18009870630854269740667553351515356750620208866286443996079385817462687994328",
308            "12941208659965353535945982278425167790646108682089354539893990334776263126582",
309            "6408630755002382624736766372813746743394479801231860327307412987646876771160",
310        ],
311        vec![
312            "6473275960778512513582331085185673196248957133908028732835704730551444739301",
313            "4671308961157574927916195230344644717882965779035591214536796362854427778381",
314            "19414951835068462134134049195061882403344971565248849237922973692054730376754",
315            "14719038943075760086280025662026793548388999166109750623206284980568171488172",
316            "12271960755926571759397203838320016671890894112192008081391935132421981211443",
317        ],
318        vec![
319            "21409190531342114688424168613381967368449891418465485126773696301325070397882",
320            "107881145622341766195797697180398630966146686121294922902505492300376581701",
321            "17382945389561659460319815947516238642247658799110915338488621060102080047539",
322            "6328410082901692275666073849891663711371196642536900744578688459148095541551",
323            "5499749772383208465048180320867175193567502820575626739181055378423718868039",
324        ],
325        vec![
326            "3204525958061714990518441380431615353302696462736414225170035013526539981058",
327            "9376764803231999304238028037321448743861331501170058694965687575771463991453",
328            "5237849715714294820293831443727094658731366644369324164620835602118042346870",
329            "9239495575265257427822371973110544704770778444170109638878775549832354515494",
330            "7880425335496839386103630104455216237845620064265863480289309995594489485862",
331        ],
332        vec![
333            "10207842905317613746951982575056147000309206576502209186044867806033750144086",
334            "18745940987111747211061984736915990760500362627666000109808520301610434121504",
335            "13079189067909178317435686398656108053236860538441664302331350911412055820915",
336            "17067019205640552338021677449560599552840430767893036009592844143843557994424",
337            "13016918696846808514331427814150121751322377780531194517695510258675820732909",
338        ],
339        vec![
340            "21489797151464601775632825035710818267963200552334448174801229855857128663775",
341            "4934888620039211187671244780535801635284292253603825321579664975935835597948",
342            "16602483151127971722313642909560175097035441303962316845857049824454750801486",
343            "18641807385681192758876550180654220921365911502760326609634613337194020209523",
344            "16925927598302001873588652395266396371351036692514405706361568743594010741532",
345        ],
346        vec![
347            "14486092351755954790229242015868583215610453135748933043922672728536022197704",
348            "20778174490546328244258656158430202863648695790985677923372400582930757310418",
349            "16631748808740506031147919524411887259543162754298984304792262445311999057100",
350            "8786033961094907554640397512269007851362576125025617120625202376510922518234",
351            "17544380304193526481389764226846912653688724640722680092503328991834898226758",
352        ],
353        vec![
354            "2040898632628667450504825873427940388725164943108463598147204658638706060670",
355            "11266666625440259700781586210036861414729690333809733995405037631962446956155",
356            "13460535253234440686890388506029233180141711540662215480601224102735227984512",
357            "12636160103920207730958920610195885429915333096038982786347009836030899638483",
358            "6383739819588725781339075155063162102005724252294667119009147433389509274581",
359        ],
360        vec![
361            "3615415542286145222801248937923769406863619912085574834683457411852358326065",
362            "21484290530292488749479723708756361451822492014684193820961010478972790190053",
363            "9248035906677166766115225191221800851151572573012446205259169609929901480989",
364            "8431379073917134790658087470500967107593432305778554481716806377637231835193",
365            "18827891457467202141300330875540352074826671738513349870408037755815876855513",
366        ],
367        vec![
368            "12257405118592396506493659207395476994164449510609233957374912486666332869265",
369            "21226225959854014471324834236076174784480392729934587257035277409456041350054",
370            "20286225677735463160252689903334639277764329300633051406303811016606383879277",
371            "10279964694039468933161973601611338291797534036555810740994417216892754405764",
372            "19505712206874315617549350996181917781225952142243549491268122179248885644216",
373        ],
374        vec![
375            "20038967257440016050053835036217347375509692369869123828333050890335921590418",
376            "8523701096675837950983704311311321332315273369885750549632214593466999278559",
377            "3555295004833619124925912036253452620323771244275346931178469823606125124449",
378            "13784324444186967604165178202741636059533026352459109519158961779055205702963",
379            "1990731083029044014598831932498759644447254974253506030415271492596479699841",
380        ],
381        vec![
382            "17578439096922405381448775550808806383371194977564690298325676455726616889023",
383            "8482864734928111222662141206829539770993499916626142030432142812087814950739",
384            "14427490653680209977995871526275577094021456563142468863069496015597239256954",
385            "2886468118550034063520843296160011102344999339741412744323416088047748803031",
386            "14572134157746751340989844304520965763735898987561573587755290732664963516241",
387        ],
388        vec![
389            "2012188439304315533653966624269826479632693436228005577812006502639655900430",
390            "15532739752336769387812617799347097353090822643182498581522593843370142001319",
391            "17529534703270713594321571895249323223685495976329442080636746684463806784661",
392            "21031534080894610876355523771107722102837183493228844664680261397823519630070",
393            "19436577385855087170357474710455765498240805774464631546842557209664504220669",
394        ],
395        vec![
396            "12949787909663269259076764555571843769659200695381876462828212199650601988661",
397            "19840887115057106171541062849618907727997426564328068613363838385495062694080",
398            "11070881582551838082405230404504983313196662759570037918719480824477325348619",
399            "21121613659252535934567682773727354352249754361426783252117493686550694641841",
400            "13853384193563682327636191280511053847941124197231804085111291238364825228055",
401        ],
402        vec![
403            "16534768562387351990889034654990847617621658362728970493903460833326016536279",
404            "16737626808770332056817306496249435585235512996421417871213979019489327200794",
405            "4955268430584609526967650698915505429623726703834197733312701363048061722841",
406            "9263608332778781442606069584033040773652544643298512410910187831068155040930",
407            "14054336891450573864216276098381163567665599861126245131928674022194523625593",
408        ],
409        vec![
410            "21801176434550838737352604795544877125500872320940890751193577820117534718405",
411            "9079447684660962172190409320608785803288621417039371710407887510606175315445",
412            "8133910245538672265863502046036258662943074913843998565031782462595186859432",
413            "9027563286570496827301683766505646642464515894808680909417176262524667994607",
414            "17813887182413861707818763379048369988110623133775484154852873751145361117513",
415        ],
416        vec![
417            "8273529887305322812400486795371424723512754022502284544817751808933420020056",
418            "6193911737909565720690901657318625169120108300025594301424772109607790217525",
419            "373596750078768704743702896865778923677151831044315726342014805308595338731",
420            "15663337206542612442532133239045611552243679621992911236973616735274383423741",
421            "17476521689840597137182775014002918999849301054751890629300658136899537687697",
422        ],
423        vec![
424            "10121895709985849082387712269452727249466555335022614339144618832725920412034",
425            "11353776892399275074635875354785293934117783200085751402421982281545221342465",
426            "15469593317594462447141531241838454642357125438273561690975191399478697119085",
427            "17865888279934933809429394512960214291450883690852180796520429879983293128990",
428            "6274350675415573512803325527372997466731705110595230630336129852455603760381",
429        ],
430        vec![
431            "9515352341824235667448011992857822921915261676679964918079021159851642025303",
432            "477707918786271386693553202815432152082461724031549221576128656997166664476",
433            "11386216724751845172421028486683728466296560704582636027450491190849829017239",
434            "4868197961579949504657937771026878598470017307487284109130104378522476324759",
435            "7991796353928888821416988025327754752177012963861843782973600632603733430518",
436        ],
437        vec![
438            "11333649983259548605035153795104287405127917441832737799837601790907346338950",
439            "3253711061374706142428324171829325260316225494115007268262947478002641026402",
440            "5496514984404605000691982099037699217882902140738102410212416632722084066284",
441            "6974913403648934971601590531570930173199234097058361874070921020086428415758",
442            "5883566280233036595341911997921541009923447375421011739277658309528500897712",
443        ],
444        vec![
445            "21445567565181758135550457460741698101787978571665239784748669483459739751994",
446            "243826411958605269263143447048452095693190359309032214693902308098516987479",
447            "21154333990044972665175047861269029145893456380868567541001936195732856016776",
448            "3319183817985491659546270466674828377723765699200573232068916648375974981613",
449            "3073970873570833352097605152458525154296900481368706411115318768432378669842",
450        ],
451        vec![
452            "20483576083983106606340357456603738075578078878737741433492057427336395394207",
453            "18720024904290757089439759576658550350669656533688125048290648882155502317676",
454            "1642499300715381739293473205810772993318440465411115612594671091056540126965",
455            "19304118143010791587684818902506948075645331242883697200070316546112584129578",
456            "17514394941065568574615190205049601810984856925614240654769418757202361926933",
457        ],
458        vec![
459            "11556753834792658188438232905095955072130370253803724342392908382453645967403",
460            "6129219138206469959108774259486604720996391435645088561379200297574544675692",
461            "18072280082137011908300861638959080543066161505384020771128066003845703716201",
462            "17698719397344644673462975571660619385706341688261285732100232300374907025408",
463            "19711276008373408462398739099936823239389914489313560182281159321304186912571",
464        ],
465    ];
466
467    let mds_string: Vec<Vec<&'static str>> = vec![
468        vec![
469            "11040268765618966485743930331384449252540178255721603113765764162439951530662",
470            "14619397736929193730245228786408558236521630763386146399322813942010841864899",
471            "10667900877576512207318813047240865767100252874399171146942316173885571898103",
472            "12165316291228285262842448955655563528504835782461286041201951512387113326195",
473            "10396208898093391600689903392326434668878305652248452965403131377623408094066",
474        ],
475        vec![
476            "19503909329721711777979879761659766779862832905278244618068517524827486499103",
477            "4959388492818549747321625860510175535335795548729907524166782031582541039280",
478            "16115979899849295727011176917576445189620726075595230031659429359211848784926",
479            "505854154613852852989462660917429865956711080615787601025929677126127137972",
480            "3809388125781819260420235233525803721174258720871002958819149356974147520791",
481        ],
482        vec![
483            "16684302548808282795274602108101884787806448235075553242259501124382211853639",
484            "15761534168109871534581041602143280815389334970289855273694992235420618466756",
485            "11194351297025208548187494208359225900929561831849862863133416814929915734783",
486            "1892277486669848856135789846900228616904357145126282105455443798229090074187",
487            "2781765068911985355639433624785498046913019524724151023603546614690160030185",
488        ],
489        vec![
490            "12037519845045404407540321574767620698649052766728735733715255850418456502517",
491            "2732503219087414496659560236942305660362604072017478968909949641450059765139",
492            "6751856993585408160559297753599536526938230756668214257332833164872580357525",
493            "21154610483210081693552160119046341221136362570739966307225431519652159656367",
494            "6208150041573103146633376259286490046406285001830507663903329995399090412043",
495        ],
496        vec![
497            "18063113951004757412844021744032560391991074710825639164600470602537681012962",
498            "4309850927493714562265638576973404086579410809307210903617085917528289705963",
499            "17965146435760138739568881121411723561477417980023835001880054802493337747241",
500            "4834762967413709351083800837287853102040090485798752777075791579043757218092",
501            "18099176386979510370196738775718135350042677134310008561670476620955846754392",
502        ],
503    ];
504
505    (
506        mat_from_str_mat(ark_string).unwrap(),
507        mat_from_str_mat(mds_string).unwrap(),
508    )
509}
510
511pub fn poseidon_config<F: PrimeField>() -> PoseidonConfig<F> {
512    let full_rounds: usize = 8;
513    let partial_rounds: usize = 56;
514    let alpha = 5;
515    let rate = 4;
516    let (ark, mds) = constants::<F>();
517
518    PoseidonConfig::new(full_rounds, partial_rounds, alpha, mds, ark, rate, 1)
519}