@@ -19,6 +19,7 @@ use openvm_stark_sdk::{
1919 config:: { fri_params:: standard_fri_params_with_100_bits_conjectured_security, FriParameters } ,
2020 p3_baby_bear:: BabyBear ,
2121} ;
22+ use rand:: { thread_rng, RngCore } ;
2223
2324pub type F = BabyBear ;
2425pub type E = BinomialExtensionField < F , EXT_DEG > ;
@@ -70,7 +71,17 @@ fn test_sumcheck_layer_eval() {
7071 }
7172}
7273
74+ fn new_rand_ext < C : Config , R : RngCore > ( rng : & mut R ) -> C :: EF {
75+ C :: EF :: from_base_slice ( & [
76+ C :: F :: from_canonical_u32 ( rng. next_u32 ( ) ) ,
77+ C :: F :: from_canonical_u32 ( rng. next_u32 ( ) ) ,
78+ C :: F :: from_canonical_u32 ( rng. next_u32 ( ) ) ,
79+ C :: F :: from_canonical_u32 ( rng. next_u32 ( ) ) ,
80+ ] )
81+ }
82+
7383fn build_test_program < C : Config > ( builder : & mut Builder < C > ) {
84+ let mut rng = thread_rng ( ) ;
7485 // 6 prod specs in 8 layers, 5 logup specs in 8 layers
7586 let round = 3 ;
7687 let num_prod_specs = 6 ;
@@ -114,292 +125,18 @@ fn build_test_program<C: Config>(builder: &mut Builder<C>) {
114125 builder. set ( & challenges, idx, e) ;
115126 }
116127
117- #[ rustfmt:: skip]
118- let prod_spec_eval_u32s = [
119- 1538906710u32 , 637535518 , 1753132406 , 1395236651 ,
120- 278806441 , 1722910382 , 1475548665 , 1117874675 ,
121- 1578586709 , 1826764884 , 384068476 , 1852240363 ,
122- 707958906 , 1960944944 , 183554399 , 1259273357 ,
123- 227285124 , 243066436 , 1718037317 , 369721963 ,
124- 1752968006 , 1061013677 , 775617499 , 1464907431 ,
125- 544300429 , 871461966 , 135151545 , 1343592602 ,
126- 1622220528 , 643966158 , 3932580 , 434948358 ,
127- 540553922 , 1446502052 , 153298741 , 1191216273 ,
128- 265936762 , 1463035257 , 1237633339 , 1797346310 ,
129- 1355791584 , 389527741 , 1741650463 , 1728913415 ,
130- 1825739540 , 1790924136 , 460776743 , 29536554 ,
131- 6842036 , 252495270 , 1968285155 , 299467416 ,
132- 49085744 , 1499815729 , 1098802236 , 644489275 ,
133- 1827273105 , 1888401527 , 390077051 , 565528894 ,
134- 1366177188 , 67441791 , 958486301 , 402056716 ,
135- 590379691 , 462035406 , 633459131 , 843304872 ,
136- 584100013 , 1932496508 , 250656031 , 146983915 ,
137- 1835173157 , 939973454 , 1844873638 , 1916054832 ,
138- 1601784696 , 167251717 , 409107688 , 1062925788 ,
139- 1291319514 , 1790529531 , 495655592 , 1093359708 ,
140- 790197205 , 674458164 , 195988318 , 399764452 ,
141- 106865258 , 967050329 , 350035523 , 1109292118 ,
142- 1815460301 , 281986036 , 900636603 , 1121197008 ,
143- 1228976590 , 1879998708 , 1924332706 , 434695844 ,
144- 1159360621 , 471397106 , 473371067 , 1009065094 ,
145- 1320176846 , 168020789 , 1265321929 , 1901808675 ,
146- 223657700 , 1480150183 , 1779968584 , 144416591 ,
147- 304407746 , 1864498679 , 1482460119 , 1554376965 ,
148- 1479261548 , 1657723043 , 1039345063 , 1053923521 ,
149- 442080513 , 1964082352 , 691664908 , 1941008321 ,
150- 1007729002 , 860529393 , 849697342 , 754485488 ,
151- 584295923 , 1072251466 , 1105105254 , 996079746 ,
152- 1305909868 , 1348028973 , 122275988 , 464050036 ,
153- 692807777 , 1098809324 , 397235220 , 596459886 ,
154- 1663209783 , 720230826 , 1422510715 , 1760654694 ,
155- 544197700 , 1417744567 , 1938716517 , 1571826328 ,
156- 1591430185 , 1173137446 , 175285007 , 1541718596 ,
157- 1715958587 , 1429966110 , 583013357 , 1667787861 ,
158- 109891172 , 668253167 , 161783842 , 296183397 ,
159- 1681897325 , 1054396117 , 264741948 , 464026995 ,
160- 1907686022 , 1532786783 , 394869458 , 1766734740 ,
161- 136047179 , 536856195 , 376188855 , 700633625 ,
162- 515518419 , 531043483 , 60673499 , 556496527 ,
163- 1743028981 , 873954569 , 1371062291 , 632169731 ,
164- 1353239206 , 526507035 , 1894490088 , 589441599 ,
165- 1610487168 , 1074160583 , 366366374 , 247602990 ,
166- 1535354896 , 894493713 , 1555870413 , 1389854934 ,
167- 1897251683 , 1525812801 , 675621735 , 697919636 ,
168- 1690274072 , 1466810921 , 1221110784 , 1741995587 ,
169- 1877169764 , 390876982 , 1794129810 , 297662156 ,
170- 144295349 , 417037264 , 1290835727 , 1654971513 ,
171- 1674131303 , 1625667423 , 1471248832 , 1676797844 ,
172- 1172916558 , 1707775403 , 423725211 , 1643279661 ,
173- 1695774264 , 378140395 , 1517569394 , 1666625392 ,
174- 1803981250 , 439036260 , 247966130 , 709534816 ,
175- 361144100 , 1546096548 , 1240886454 , 1898161518 ,
176- 843262057 , 1709259464 , 1301015977 , 1997626928 ,
177- 677153173 , 1606710353 , 1216038070 , 435565562 ,
178- 98686333 , 1773787396 , 267051994 , 99395396 ,
179- 545509105 , 782289675 , 1289865975 , 1707775075 ,
180- 1158993015 , 1506576588 , 993215179 , 1523099397 ,
181- 923914455 , 1895162386 , 284489994 , 1444139016 ,
182- 1943825680 , 466202724 , 1632522710 , 1384015062 ,
183- 723147188 , 1284031324 , 1430481515 , 341213007 ,
184- 171192499 , 1061688239 , 808927167 , 83182639 ,
185- 759209907 , 1728321272 , 976049976 , 1652071995 ,
186- 1002877840 , 69880246 , 1095135165 , 677588420 ,
187- 1384715290 , 829619452 , 170122781 , 1958173727 ,
188- 13389238 , 789379698 , 1883383039 , 1279195174 ,
189- 1618672336 , 1192839317 , 1348311124 , 758896285 ,
190- 1939775389 , 684108413 , 1838340479 , 1332232130 ,
191- 1070486028 , 549228790 , 868851698 , 1678207843 ,
192- 1754321489 , 637000403 , 647901906 , 45343322 ,
193- 1768524074 , 1167955205 , 1816497210 , 1609414096 ,
194- 1985231742 , 1540534482 , 232730819 , 232221968 ,
195- 1509637836 , 1480860627 , 884647789 , 1096458024 ,
196- 163721583 , 1248032262 , 436419506 , 1737102298 ,
197- 651105860 , 452298073 , 1064372507 , 1792838683 ,
198- 619243471 , 860127631 , 721724708 , 950768433 ,
199- 279913448 , 339693210 , 47730422 , 1952683911 ,
200- 1316500770 , 675944216 , 386902809 , 619333956 ,
201- 1194800389 , 43989936 , 1944372656 , 666045666 ,
202- 1155873844 , 522696968 , 58874730 , 1497238023 ,
203- 421619994 , 1980672127 , 1657191856 , 1913792631 ,
204- 1784663131 , 1118400672 , 1828104993 , 1637808383 ,
205- 414755472 , 775410449 , 747132157 , 136820101 ,
206- 1082674285 , 93190395 , 357955402 , 335652723 ,
207- 1192102705 , 480365232 , 1354935730 , 1391829361 ,
208- 966662991 , 1601510445 , 569528575 , 545490940 ,
209- 1753711688 , 807025222 , 580374183 , 587718008 ,
210- 977546290 , 1055719519 , 1157107032 , 562799608 ,
211- 859466927 , 840450024 , 815325134 , 936576801 ,
212- 1010587056 , 246624382 , 1808049797 , 1098183398 ,
213- 1005077390 , 772432546 , 1976629565 , 1003772218 ,
214- 1655315418 , 1767931114 , 982008720 , 785023351 ,
215- ] ;
216-
217- let prod_spec_evals: Array < C , Ext < C :: F , C :: EF > > =
218- builder. dyn_array ( prod_spec_eval_u32s. len ( ) / EXT_DEG ) ;
219- for ( idx, n) in prod_spec_eval_u32s. chunks ( EXT_DEG ) . enumerate ( ) {
220- let e: Ext < C :: F , C :: EF > = builder. constant ( C :: EF :: from_base_slice ( & [
221- C :: F :: from_canonical_u32 ( n[ 0 ] ) ,
222- C :: F :: from_canonical_u32 ( n[ 1 ] ) ,
223- C :: F :: from_canonical_u32 ( n[ 2 ] ) ,
224- C :: F :: from_canonical_u32 ( n[ 3 ] ) ,
225- ] ) ) ;
128+ let num_prod_evals = num_prod_specs * num_layers * 2 ;
129+ let prod_spec_evals: Array < C , Ext < C :: F , C :: EF > > = builder. dyn_array ( num_prod_evals) ;
130+ for idx in 0 ..num_prod_evals {
131+ let e: Ext < C :: F , C :: EF > = builder. constant ( new_rand_ext :: < C , _ > ( & mut rng) ) ;
226132
227133 builder. set ( & prod_spec_evals, idx, e) ;
228134 }
229135
230- #[ rustfmt:: skip]
231- let logup_spec_eval_u32s = [
232- 1522353967u32 , 457603397 , 421847521 , 1352563318 ,
233- 1746817766 , 737872688 , 1087008622 , 1850835028 ,
234- 456475558 , 892966330 , 638163666 , 148568548 ,
235- 678863061 , 1334386850 , 1896333039 , 154585769 ,
236- 433618446 , 1186936470 , 970218722 , 1213827097 ,
237- 1798557019 , 861757965 , 119285527 , 395360622 ,
238- 226164366 , 1330279872 , 66561048 , 785421608 ,
239- 1950755756 , 1559889596 , 348449876 , 1090789452 ,
240- 257578851 , 273164442 , 1644906 , 295600924 ,
241- 1187949602 , 1168249609 , 469763604 , 60929061 ,
242- 291163036 , 403842501 , 1421902433 , 1700188477 ,
243- 1046093370 , 921059131 , 1638991894 , 464012042 ,
244- 96905857 , 1370999592 , 271896041 , 13595534 ,
245- 1489760970 , 1650552701 , 133367846 , 25680377 ,
246- 377631580 , 652729291 , 645763356 , 426747355 ,
247- 482475486 , 1877299223 , 103226636 , 1333832358 ,
248- 1399609097 , 458536972 , 976248802 , 1109365280 ,
249- 515164588 , 1579426417 , 1601829549 , 607169702 ,
250- 852817956 , 1980537127 , 134138338 , 913344050 ,
251- 737880920 , 476360275 , 61624034 , 1610624252 ,
252- 264461991 , 546933535 , 937769429 , 293346965 ,
253- 1522058041 , 1012551797 , 994330314 , 23333322 ,
254- 1969510890 , 974351570 , 2012030621 , 120742000 ,
255- 450250620 , 180547360 , 642746933 , 1815029950 ,
256- 629489142 , 1176992624 , 723354779 , 572648755 ,
257- 1218615348 , 648847054 , 351903235 , 723149764 ,
258- 248065753 , 243829448 , 1283393001 , 1912627886 ,
259- 581641342 , 702465306 , 205969758 , 1061911274 ,
260- 1 , 0 , 0 , 0 ,
261- 1 , 0 , 0 , 0 ,
262- 1703043252 , 1467887451 , 1714319214 , 907866644 ,
263- 1542426838 , 742609036 , 1814393459 , 448706641 ,
264- 1960340767 , 46490834 , 186512520 , 363973095 ,
265- 846448854 , 463742343 , 2012517527 , 40473617 ,
266- 9472552 , 263483342 , 105738598 , 586389136 ,
267- 254290990 , 625150844 , 960233097 , 1488303724 ,
268- 1700231692 , 1471714612 , 1540211186 , 1590246915 ,
269- 945341972 , 1343225515 , 179976237 , 34857822 ,
270- 276912528 , 984309272 , 1277293398 , 1520924162 ,
271- 1823117694 , 604836357 , 1460812009 , 600052559 ,
272- 970469338 , 1771022707 , 181855831 , 1445947220 ,
273- 467514809 , 1514677498 , 947030389 , 170390653 ,
274- 415409007 , 1601463730 , 204153427 , 904614278 ,
275- 1855419512 , 2009471607 , 1352607379 , 576586082 ,
276- 1343812879 , 1176377580 , 1166188815 , 1592289048 ,
277- 761793881 , 1529621462 , 193034837 , 344011596 ,
278- 1669461833 , 1356800025 , 314186361 , 586497329 ,
279- 1832810846 , 1288092861 , 1619454491 , 732529408 ,
280- 737934269 , 909504928 , 769680420 , 1437893101 ,
281- 1727002258 , 1618231110 , 535125583 , 153412473 ,
282- 1917760929 , 588586507 , 564531165 , 1790797737 ,
283- 1666283994 , 1366948884 , 117673690 , 476470378 ,
284- 2012274032 , 1951406668 , 1739767532 , 1273142151 ,
285- 1591812317 , 1900205312 , 1912608761 , 1734766024 ,
286- 1265002082 , 1450462894 , 749810837 , 1329222552 ,
287- 745081805 , 1231519431 , 1420957967 , 883846107 ,
288- 1995463911 , 407795592 , 161655852 , 125886157 ,
289- 995318920 , 484905024 , 284135318 , 551493419 ,
290- 406742309 , 1089024446 , 637339867 , 1858138403 ,
291- 1230680117 , 187078889 , 1929517480 , 1125646261 ,
292- 1 , 0 , 0 , 0 ,
293- 1 , 0 , 0 , 0 ,
294- 1610035932 , 462442436 , 831412555 , 44798862 ,
295- 1748147276 , 1911945531 , 1329343740 , 971894393 ,
296- 362147969 , 1583335926 , 1528700112 , 426908674 ,
297- 847905883 , 447889090 , 1050883911 , 1883537469 ,
298- 1487501632 , 964178870 , 1818828551 , 1980840799 ,
299- 340372118 , 1697179193 , 215113037 , 1893217470 ,
300- 1138628493 , 1788052486 , 443362955 , 1349213730 ,
301- 589553425 , 562526667 , 1006040406 , 1194546769 ,
302- 1831034644 , 612004157 , 730213913 , 1068905440 ,
303- 371983982 , 502900790 , 802785198 , 822377635 ,
304- 1477528437 , 501356237 , 684668525 , 1306043781 ,
305- 621032592 , 1971342708 , 1411586583 , 733418745 ,
306- 186045462 , 1559301855 , 323758310 , 453170140 ,
307- 498381240 , 976247416 , 631213663 , 898017829 ,
308- 501459603 , 609703046 , 1379288251 , 177682695 ,
309- 912381595 , 121915494 , 1137416430 , 504054388 ,
310- 1138277238 , 1603388253 , 1838013301 , 1700271853 ,
311- 20488607 , 58775264 , 217974275 , 979141729 ,
312- 53136584 , 1331566240 , 1460303356 , 525812787 ,
313- 718385521 , 1477919263 , 1663622276 , 1089788203 ,
314- 1204483837 , 54225863 , 290660186 , 1441441958 ,
315- 134168813 , 349638823 , 1867912015 , 1579183319 ,
316- 55528656 , 1602973359 , 194297109 , 949763297 ,
317- 101931919 , 242300116 , 1610052257 , 1351823848 ,
318- 174522860 , 776955925 , 1706962365 , 808187490 ,
319- 1487253852 , 431806906 , 213982593 , 1170647308 ,
320- 1776840400 , 295916317 , 378708073 , 381270341 ,
321- 457494568 , 705823997 , 1407301442 , 1693003013 ,
322- 700310785 , 1349874247 , 1284363817 , 1566253815 ,
323- 1014298154 , 215294365 , 1070968678 , 871641358 ,
324- 1 , 0 , 0 , 0 ,
325- 1 , 0 , 0 , 0 ,
326- 1302679751 , 1121894357 , 368587356 , 1564724097 ,
327- 733815591 , 2012670011 , 1146780092 , 1439780227 ,
328- 1801628424 , 838692317 , 932318853 , 213634365 ,
329- 155292454 , 1644317110 , 1599846194 , 978829059 ,
330- 1282095862 , 1780431647 , 527412087 , 1024583705 ,
331- 804423802 , 951808322 , 689345230 , 180304167 ,
332- 1784562773 , 1514653374 , 2009396440 , 1143778943 ,
333- 235299446 , 1553017484 , 475425117 , 758292254 ,
334- 716575432 , 517083432 , 1728864125 , 418010549 ,
335- 43202592 , 507659742 , 433077118 , 1268144019 ,
336- 1462778342 , 1928073362 , 1330130180 , 1749624351 ,
337- 827401013 , 1236194147 , 1875519726 , 1437946791 ,
338- 607293265 , 309229599 , 1009445595 , 1725229718 ,
339- 1436309341 , 1952606463 , 943149111 , 291680468 ,
340- 1989684076 , 1944713370 , 1285294139 , 399758737 ,
341- 1572979232 , 213817406 , 214840530 , 184898060 ,
342- 1483844295 , 1536616777 , 494816009 , 217625163 ,
343- 529448032 , 786640964 , 1766471731 , 1424140424 ,
344- 1721961711 , 740275169 , 169908711 , 913969302 ,
345- 1359358267 , 1328322971 , 593228769 , 771095186 ,
346- 801680440 , 450930656 , 1796349530 , 1824428677 ,
347- 1111258504 , 1741666629 , 1098430204 , 1792001884 ,
348- 1679003061 , 590088446 , 647614538 , 1324461639 ,
349- 818996796 , 229187928 , 74288115 , 1158900266 ,
350- 1512606270 , 1381672753 , 785927403 , 493453164 ,
351- 425259497 , 1367873539 , 931023744 , 221202218 ,
352- 669580668 , 424996238 , 1840425275 , 1873362670 ,
353- 967642716 , 263556335 , 578560519 , 1558449223 ,
354- 607579284 , 1724012378 , 333582342 , 1195784167 ,
355- 1419727276 , 199294290 , 138807165 , 1061030752 ,
356- 1 , 0 , 0 , 0 ,
357- 1 , 0 , 0 , 0 ,
358- 776332180 , 1333076185 , 1855163818 , 1897408938 ,
359- 799274251 , 950452503 , 691904988 , 1205387466 ,
360- 659107883 , 434394982 , 129587940 , 639018629 ,
361- 659238594 , 1957584892 , 864291238 , 589178070 ,
362- 1267157231 , 48925338 , 200093884 , 1953762869 ,
363- 1227617341 , 1471420621 , 193077633 , 1007876111 ,
364- 228491220 , 1377349503 , 1889411060 , 1807513892 ,
365- 1593042934 , 1240864695 , 1472870721 , 583021932 ,
366- 598239104 , 1862008818 , 1811242869 , 780768026 ,
367- 520870395 , 292016292 , 322246659 , 868240490 ,
368- 1715620331 , 1183509209 , 2010262726 , 1003957251 ,
369- 264895455 , 307755941 , 201990485 , 1662471178 ,
370- 1643997923 , 1573129362 , 277821143 , 388834470 ,
371- 943361405 , 1449402196 , 614413575 , 1504113993 ,
372- 1860552739 , 1755127315 , 1734129760 , 1232115188 ,
373- 803035456 , 360488092 , 271342171 , 1269544258 ,
374- 290642673 , 660703582 , 986842267 , 870891877 ,
375- 454573044 , 1999346236 , 701614601 , 820253867 ,
376- 883282765 , 137247873 , 1727164949 , 1320585493 ,
377- 1738664600 , 1900116905 , 472215154 , 1114994489 ,
378- 104218174 , 1694603079 , 771486383 , 935361143 ,
379- 92277671 , 881040480 , 925124484 , 1464396527 ,
380- 100625197 , 65290355 , 1001454341 , 134627585 ,
381- 58629702 , 1541542242 , 568583607 , 1706262052 ,
382- 530687550 , 1303187245 , 1010302462 , 264001857 ,
383- 789816678 , 561378226 , 827432508 , 801307507 ,
384- 1613508315 , 1650822853 , 1603502703 , 439320335 ,
385- 15283580 , 1244486577 , 254345266 , 1745653280 ,
386- 1648250354 , 1528271018 , 528366563 , 1078707735 ,
387- 1430767759 , 1890467731 , 2001894083 , 799949326 ,
388- 1 , 0 , 0 , 0 ,
389- 1 , 0 , 0 , 0 ,
390- 1341839494 , 1092219735 , 755644898 , 966729319 ,
391- 1914277278 , 1545367697 , 1765189119 , 1693413008 ,
392- ] ;
393-
394- let logup_spec_evals: Array < C , Ext < C :: F , C :: EF > > =
395- builder. dyn_array ( logup_spec_eval_u32s. len ( ) / EXT_DEG ) ;
396- for ( idx, n) in logup_spec_eval_u32s. chunks ( EXT_DEG ) . enumerate ( ) {
397- let e: Ext < C :: F , C :: EF > = builder. constant ( C :: EF :: from_base_slice ( & [
398- C :: F :: from_canonical_u32 ( n[ 0 ] ) ,
399- C :: F :: from_canonical_u32 ( n[ 1 ] ) ,
400- C :: F :: from_canonical_u32 ( n[ 2 ] ) ,
401- C :: F :: from_canonical_u32 ( n[ 3 ] ) ,
402- ] ) ) ;
136+ let num_logup_evals = num_logup_specs * num_layers * 4 ;
137+ let logup_spec_evals: Array < C , Ext < C :: F , C :: EF > > = builder. dyn_array ( num_logup_evals) ;
138+ for idx in 0 ..num_logup_evals {
139+ let e: Ext < C :: F , C :: EF > = builder. constant ( new_rand_ext :: < C , _ > ( & mut rng) ) ;
403140
404141 builder. set ( & logup_spec_evals, idx, e) ;
405142 }
@@ -465,8 +202,7 @@ fn build_test_program<C: Config>(builder: &mut Builder<C>) {
465202 . chain ( logup_q_evals. into_iter ( ) )
466203 . collect :: < Vec < _ > > ( ) ;
467204
468- let next_layer_evals: Array < C , Ext < C :: F , C :: EF > > =
469- builder. dyn_array ( r_evals. len ( ) ) ;
205+ let next_layer_evals: Array < C , Ext < C :: F , C :: EF > > = builder. dyn_array ( r_evals. len ( ) ) ;
470206
471207 builder. sumcheck_layer_eval (
472208 & ctx,
0 commit comments