mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-09 12:15:09 -05:00
feat(polynomial): add 2**13 and 2**14 polynomials
This commit is contained in:
274
examples/v0_parameters.ref-23-03-2022
Normal file
274
examples/v0_parameters.ref-23-03-2022
Normal file
@@ -0,0 +1,274 @@
|
||||
{ /* 6.3e-5 errors */
|
||||
{ /* precision 1 */
|
||||
/* 0 */ V0Parameter( 1, 10, 538, 2, 8, 3, 3), // 46 mops, 5.9e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 10, 514, 2, 8, 5, 2), // 46 mops, 5.4e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 10, 519, 2, 8, 5, 2), // 46 mops, 6.0e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 10, 515, 3, 6, 5, 2), // 59 mops, 4.9e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 10, 523, 3, 6, 5, 2), // 60 mops, 5.4e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 11, 563, 1, 23, 3, 3), // 71 mops, 5.4e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 11, 563, 1, 23, 3, 3), // 71 mops, 5.5e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 11, 563, 1, 23, 3, 3), // 71 mops, 5.8e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 11, 564, 1, 23, 3, 3), // 71 mops, 5.8e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 11, 569, 1, 23, 3, 3), // 72 mops, 5.5e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 11, 555, 1, 23, 5, 2), // 75 mops, 5.7e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 11, 532, 2, 16, 5, 2), // 101 mops, 6.2e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 11, 532, 2, 16, 5, 2), // 101 mops, 6.2e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 11, 532, 2, 16, 5, 2), // 101 mops, 6.3e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 11, 533, 2, 16, 5, 2), // 101 mops, 4.9e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 11, 533, 2, 16, 5, 2), // 101 mops, 5.5e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 11, 535, 2, 16, 5, 2), // 102 mops, 5.3e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 11, 544, 2, 16, 5, 2), // 103 mops, 5.6e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 11, 533, 3, 12, 5, 2), // 130 mops, 5.0e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 11, 533, 3, 12, 5, 2), // 130 mops, 6.0e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 11, 536, 3, 12, 5, 2), // 131 mops, 5.6e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 11, 552, 3, 12, 5, 2), // 135 mops, 5.7e-5 errors
|
||||
/* 22 */ V0Parameter( 1, 11, 536, 4, 9, 5, 2), // 160 mops, 6.1e-5 errors
|
||||
/* 23 */ V0Parameter( 1, 11, 555, 4, 9, 5, 2), // 166 mops, 5.7e-5 errors
|
||||
/* 24 */ V0Parameter( 1, 11, 539, 5, 8, 5, 2), // 191 mops, 5.2e-5 errors
|
||||
/* 25 */ V0Parameter( 1, 11, 593, 5, 8, 5, 2), // 209 mops, 6.2e-5 errors
|
||||
/* 26 */ V0Parameter( 1, 11, 541, 7, 6, 5, 2), // 251 mops, 6.3e-5 errors
|
||||
/* 27 */ V0Parameter( 1, 11, 569, 8, 5, 5, 2), // 294 mops, 6.1e-5 errors
|
||||
/* 28 */ V0Parameter( 1, 11, 549, 11, 4, 5, 2), // 374 mops, 5.5e-5 errors
|
||||
/* 29 */ V0Parameter( 1, 11, 559, 15, 3, 5, 2), // 503 mops, 5.8e-5 errors
|
||||
/* 30 */ V0Parameter( 1, 11, 542, 44, 1, 10, 1), // 1358 mops, 6.0e-5 errors
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 2 */
|
||||
/* 0 */ V0Parameter( 1, 10, 557, 2, 8, 5, 2), // 49 mops, 5.2e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 10, 564, 2, 8, 5, 2), // 50 mops, 5.7e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 10, 558, 3, 6, 5, 2), // 63 mops, 5.1e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 10, 569, 3, 6, 5, 2), // 65 mops, 5.7e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 11, 579, 1, 23, 5, 2), // 78 mops, 6.0e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 11, 579, 1, 23, 5, 2), // 78 mops, 6.1e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 11, 580, 1, 23, 5, 2), // 78 mops, 5.3e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 11, 581, 1, 23, 5, 2), // 78 mops, 5.4e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 11, 585, 1, 23, 5, 2), // 78 mops, 6.3e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 11, 639, 1, 23, 5, 2), // 85 mops, 6.3e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 11, 579, 2, 16, 5, 2), // 109 mops, 6.0e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 11, 579, 2, 16, 5, 2), // 109 mops, 6.0e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 11, 579, 2, 16, 5, 2), // 109 mops, 6.1e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 11, 579, 2, 16, 5, 2), // 109 mops, 6.3e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 11, 580, 2, 16, 5, 2), // 109 mops, 5.9e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 11, 583, 2, 16, 5, 2), // 110 mops, 5.7e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 11, 599, 2, 16, 5, 2), // 113 mops, 6.3e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 11, 580, 3, 12, 5, 2), // 141 mops, 5.2e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 11, 581, 3, 12, 5, 2), // 141 mops, 5.3e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 11, 585, 3, 12, 5, 2), // 142 mops, 5.7e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 11, 622, 3, 12, 5, 2), // 151 mops, 6.3e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 11, 585, 4, 9, 5, 2), // 174 mops, 6.3e-5 errors
|
||||
/* 22 */ V0Parameter( 1, 11, 639, 4, 9, 5, 2), // 190 mops, 6.3e-5 errors
|
||||
/* 23 */ V0Parameter( 1, 11, 589, 5, 8, 5, 2), // 208 mops, 6.1e-5 errors
|
||||
/* 24 */ V0Parameter( 1, 11, 591, 6, 7, 5, 2), // 241 mops, 6.3e-5 errors
|
||||
/* 25 */ V0Parameter( 1, 11, 595, 7, 6, 5, 2), // 275 mops, 5.7e-5 errors
|
||||
/* 26 */ V0Parameter( 1, 11, 627, 8, 5, 11, 2), // 338 mops, 6.3e-5 errors
|
||||
/* 27 */ V0Parameter( 1, 11, 611, 11, 4, 5, 2), // 416 mops, 6.2e-5 errors
|
||||
/* 28 */ V0Parameter( 1, 11, 617, 15, 3, 11, 2), // 569 mops, 5.8e-5 errors
|
||||
/* 29 */ V0Parameter( 1, 11, 600, 44, 1, 22, 1), // 1531 mops, 5.8e-5 errors
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 3 */
|
||||
/* 0 */ V0Parameter( 1, 10, 673, 2, 8, 5, 4), // 59 mops, 5.8e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 10, 641, 3, 6, 5, 2), // 72 mops, 6.3e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 10, 649, 3, 6, 7, 3), // 76 mops, 6.2e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 11, 679, 1, 23, 5, 4), // 90 mops, 6.2e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 11, 679, 1, 23, 5, 4), // 90 mops, 6.3e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 11, 680, 1, 23, 5, 4), // 90 mops, 5.0e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 11, 681, 1, 23, 5, 4), // 90 mops, 4.8e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 11, 684, 1, 23, 5, 4), // 90 mops, 5.9e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 11, 710, 1, 23, 5, 4), // 94 mops, 6.0e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 11, 679, 2, 16, 5, 4), // 127 mops, 6.2e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 11, 679, 2, 16, 5, 4), // 127 mops, 6.2e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 11, 679, 2, 16, 5, 4), // 127 mops, 6.3e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 11, 680, 2, 16, 5, 4), // 127 mops, 4.8e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 11, 680, 2, 16, 5, 4), // 127 mops, 5.7e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 11, 682, 2, 16, 5, 4), // 127 mops, 6.0e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 11, 694, 2, 16, 5, 4), // 130 mops, 5.7e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 11, 652, 3, 12, 7, 3), // 163 mops, 4.8e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 11, 652, 3, 12, 7, 3), // 163 mops, 6.0e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 11, 655, 3, 12, 7, 3), // 164 mops, 6.3e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 11, 675, 3, 12, 7, 3), // 168 mops, 6.2e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 11, 656, 4, 9, 7, 3), // 200 mops, 5.4e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 11, 679, 4, 9, 7, 3), // 206 mops, 6.3e-5 errors
|
||||
/* 22 */ V0Parameter( 1, 11, 659, 5, 8, 7, 3), // 237 mops, 5.1e-5 errors
|
||||
/* 23 */ V0Parameter( 1, 11, 660, 6, 7, 7, 3), // 273 mops, 5.7e-5 errors
|
||||
/* 24 */ V0Parameter( 1, 11, 638, 7, 6, 11, 2), // 309 mops, 6.2e-5 errors
|
||||
/* 25 */ V0Parameter( 1, 11, 675, 8, 5, 11, 2), // 364 mops, 6.3e-5 errors
|
||||
/* 26 */ V0Parameter( 1, 11, 647, 11, 4, 11, 2), // 455 mops, 5.7e-5 errors
|
||||
/* 27 */ V0Parameter( 1, 11, 660, 15, 3, 11, 2), // 608 mops, 5.9e-5 errors
|
||||
/* 28 */ V0Parameter( 1, 11, 641, 44, 1, 22, 1), // 1635 mops, 6.3e-5 errors
|
||||
/* 29 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 4 */
|
||||
/* 0 */ V0Parameter( 1, 10, 691, 3, 6, 7, 3), // 80 mops, 6.2e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 10, 731, 3, 6, 7, 3), // 85 mops, 6.3e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 11, 720, 1, 23, 5, 4), // 95 mops, 5.5e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 11, 720, 1, 23, 5, 4), // 95 mops, 5.6e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 11, 720, 1, 23, 5, 4), // 95 mops, 6.0e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 11, 721, 1, 23, 5, 4), // 95 mops, 6.0e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 11, 726, 1, 23, 5, 4), // 95 mops, 5.4e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 11, 764, 1, 23, 5, 4), // 100 mops, 6.3e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 11, 720, 2, 16, 5, 4), // 134 mops, 5.5e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 11, 720, 2, 16, 5, 4), // 134 mops, 5.5e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 11, 720, 2, 16, 5, 4), // 134 mops, 5.6e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 11, 720, 2, 16, 5, 4), // 134 mops, 5.8e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 11, 721, 2, 16, 5, 4), // 134 mops, 5.3e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 11, 723, 2, 16, 5, 4), // 135 mops, 6.2e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 11, 738, 2, 16, 5, 4), // 137 mops, 5.9e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 11, 692, 3, 12, 7, 3), // 172 mops, 5.6e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 11, 693, 3, 12, 7, 3), // 173 mops, 5.4e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 11, 697, 3, 12, 7, 3), // 174 mops, 5.3e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 11, 724, 3, 12, 7, 3), // 180 mops, 6.1e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 11, 697, 4, 9, 7, 3), // 212 mops, 6.0e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 11, 731, 4, 9, 7, 3), // 222 mops, 6.2e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 11, 700, 5, 8, 7, 3), // 251 mops, 6.3e-5 errors
|
||||
/* 22 */ V0Parameter( 1, 11, 702, 6, 7, 7, 3), // 290 mops, 6.1e-5 errors
|
||||
/* 23 */ V0Parameter( 1, 11, 681, 7, 6, 11, 2), // 329 mops, 5.8e-5 errors
|
||||
/* 24 */ V0Parameter( 1, 11, 686, 9, 5, 11, 2), // 407 mops, 5.6e-5 errors
|
||||
/* 25 */ V0Parameter( 1, 11, 692, 11, 4, 11, 2), // 486 mops, 6.2e-5 errors
|
||||
/* 26 */ V0Parameter( 1, 11, 715, 15, 3, 11, 2), // 658 mops, 6.3e-5 errors
|
||||
/* 27 */ V0Parameter( 1, 11, 690, 44, 1, 22, 1), // 1760 mops, 6.2e-5 errors
|
||||
/* 28 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 29 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 5 */
|
||||
/* 0 */ V0Parameter( 1, 11, 774, 1, 23, 5, 4), // 101 mops, 5.6e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 11, 774, 1, 23, 5, 4), // 101 mops, 5.7e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 11, 774, 1, 23, 5, 4), // 101 mops, 5.8e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 11, 774, 1, 23, 5, 4), // 101 mops, 6.2e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 11, 776, 1, 23, 5, 4), // 101 mops, 6.2e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 11, 787, 1, 23, 5, 4), // 103 mops, 6.0e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 11, 774, 2, 16, 5, 4), // 144 mops, 5.6e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 11, 774, 2, 16, 5, 4), // 144 mops, 5.6e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 11, 774, 2, 16, 5, 4), // 144 mops, 5.7e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 11, 774, 2, 16, 5, 4), // 144 mops, 5.7e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 11, 774, 2, 16, 5, 4), // 144 mops, 6.0e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 11, 775, 2, 16, 5, 4), // 144 mops, 6.2e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 11, 781, 2, 16, 5, 4), // 145 mops, 6.0e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 11, 745, 3, 12, 7, 3), // 185 mops, 5.6e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 11, 745, 3, 12, 7, 3), // 185 mops, 6.0e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 11, 747, 3, 12, 7, 3), // 186 mops, 5.8e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 11, 755, 3, 12, 7, 3), // 187 mops, 6.2e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 11, 747, 4, 9, 7, 3), // 226 mops, 6.0e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 11, 756, 4, 9, 7, 3), // 229 mops, 6.3e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 11, 748, 5, 8, 7, 3), // 268 mops, 6.2e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 11, 766, 5, 8, 7, 3), // 274 mops, 6.0e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 11, 773, 6, 7, 7, 3), // 319 mops, 6.0e-5 errors
|
||||
/* 22 */ V0Parameter( 1, 11, 756, 7, 6, 11, 2), // 365 mops, 6.2e-5 errors
|
||||
/* 23 */ V0Parameter( 1, 11, 729, 11, 4, 11, 2), // 512 mops, 6.0e-5 errors
|
||||
/* 24 */ V0Parameter( 1, 11, 745, 14, 3, 11, 2), // 645 mops, 6.1e-5 errors
|
||||
/* 25 */ V0Parameter( 1, 11, 746, 22, 2, 11, 2), // 972 mops, 6.2e-5 errors
|
||||
/* 26 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 27 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 28 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 29 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 6 */
|
||||
/* 0 */ V0Parameter( 1, 12, 833, 1, 23, 5, 4), // 230 mops, 5.9e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 12, 833, 1, 23, 5, 4), // 230 mops, 6.2e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 12, 835, 1, 23, 5, 4), // 231 mops, 5.9e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 12, 843, 1, 23, 5, 4), // 233 mops, 5.9e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 12, 833, 2, 15, 5, 4), // 328 mops, 5.8e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 12, 833, 2, 15, 5, 4), // 328 mops, 5.8e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 12, 833, 2, 15, 5, 4), // 328 mops, 5.8e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 12, 833, 2, 15, 5, 4), // 328 mops, 5.8e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 12, 833, 2, 15, 5, 4), // 328 mops, 6.1e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 12, 834, 2, 15, 5, 4), // 328 mops, 6.2e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 12, 840, 2, 15, 5, 4), // 331 mops, 6.0e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 12, 843, 2, 15, 11, 2), // 371 mops, 6.3e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 12, 804, 3, 12, 7, 3), // 424 mops, 6.2e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 12, 807, 3, 12, 7, 3), // 425 mops, 5.6e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 12, 818, 3, 12, 7, 3), // 431 mops, 6.3e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 12, 806, 4, 9, 7, 3), // 519 mops, 5.6e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 12, 813, 4, 9, 7, 3), // 524 mops, 5.8e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 12, 809, 5, 8, 7, 3), // 616 mops, 5.8e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 12, 839, 5, 8, 7, 3), // 638 mops, 6.2e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 12, 828, 6, 7, 11, 2), // 753 mops, 6.3e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 12, 793, 8, 5, 11, 2), // 908 mops, 6.2e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 12, 791, 11, 4, 11, 2), // 1184 mops, 6.3e-5 errors
|
||||
/* 22 */ V0Parameter( 1, 12, 805, 14, 3, 11, 2), // 1487 mops, 6.0e-5 errors
|
||||
/* 23 */ V0Parameter( 1, 12, 821, 22, 2, 11, 2), // 2286 mops, 6.3e-5 errors
|
||||
/* 24 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 25 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 26 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 27 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 28 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 29 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 7 */
|
||||
/* 0 */ V0Parameter( 1, 13, 894, 1, 23, 5, 4), // 521 mops, 6.1e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 13, 901, 1, 23, 5, 4), // 524 mops, 6.3e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 13, 892, 2, 15, 5, 4), // 742 mops, 6.1e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 13, 892, 2, 15, 5, 4), // 742 mops, 6.1e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 13, 892, 2, 15, 5, 4), // 742 mops, 6.1e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 13, 892, 2, 15, 5, 4), // 742 mops, 6.1e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 13, 892, 2, 15, 5, 4), // 742 mops, 6.3e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 13, 893, 2, 15, 5, 4), // 743 mops, 6.3e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 13, 898, 2, 15, 5, 4), // 747 mops, 6.0e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 13, 900, 2, 15, 7, 3), // 777 mops, 6.3e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 13, 864, 3, 12, 7, 3), // 963 mops, 5.8e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 13, 867, 3, 12, 7, 3), // 966 mops, 5.8e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 13, 885, 3, 12, 7, 3), // 986 mops, 6.3e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 13, 865, 4, 9, 7, 3), // 1180 mops, 5.7e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 13, 871, 4, 9, 7, 3), // 1188 mops, 6.2e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 13, 870, 5, 8, 7, 3), // 1405 mops, 5.9e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 13, 871, 6, 7, 7, 3), // 1624 mops, 6.3e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 13, 873, 7, 6, 7, 3), // 1846 mops, 6.2e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 13, 854, 8, 5, 11, 2), // 2073 mops, 6.0e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 13, 883, 10, 4, 11, 2), // 2584 mops, 6.2e-5 errors
|
||||
/* 20 */ V0Parameter( 1, 13, 872, 14, 3, 11, 2), // 3424 mops, 6.3e-5 errors
|
||||
/* 21 */ V0Parameter( 1, 13, 860, 43, 1, 11, 2), // 9613 mops, 6.3e-5 errors
|
||||
/* 22 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 23 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 24 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 25 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 26 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 27 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 28 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 29 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
{ /* precision 8 */
|
||||
/* 0 */ V0Parameter( 1, 14, 952, 2, 15, 5, 4), // 1670 mops, 6.3e-5 errors
|
||||
/* 1 */ V0Parameter( 1, 14, 952, 2, 15, 5, 4), // 1670 mops, 6.3e-5 errors
|
||||
/* 2 */ V0Parameter( 1, 14, 952, 2, 15, 5, 4), // 1670 mops, 6.3e-5 errors
|
||||
/* 3 */ V0Parameter( 1, 14, 952, 2, 15, 5, 4), // 1670 mops, 6.3e-5 errors
|
||||
/* 4 */ V0Parameter( 1, 14, 953, 2, 15, 5, 4), // 1672 mops, 5.8e-5 errors
|
||||
/* 5 */ V0Parameter( 1, 14, 954, 2, 15, 5, 4), // 1674 mops, 5.9e-5 errors
|
||||
/* 6 */ V0Parameter( 1, 14, 958, 2, 15, 5, 4), // 1680 mops, 6.2e-5 errors
|
||||
/* 7 */ V0Parameter( 1, 14, 958, 2, 15, 7, 3), // 1740 mops, 6.3e-5 errors
|
||||
/* 8 */ V0Parameter( 1, 14, 924, 3, 12, 7, 3), // 2172 mops, 5.7e-5 errors
|
||||
/* 9 */ V0Parameter( 1, 14, 928, 3, 12, 7, 3), // 2181 mops, 6.0e-5 errors
|
||||
/* 10 */ V0Parameter( 1, 14, 965, 3, 12, 7, 3), // 2265 mops, 6.3e-5 errors
|
||||
/* 11 */ V0Parameter( 1, 14, 924, 4, 9, 7, 3), // 2663 mops, 6.3e-5 errors
|
||||
/* 12 */ V0Parameter( 1, 14, 932, 4, 9, 7, 3), // 2685 mops, 6.0e-5 errors
|
||||
/* 13 */ V0Parameter( 1, 14, 932, 5, 8, 7, 3), // 3180 mops, 6.3e-5 errors
|
||||
/* 14 */ V0Parameter( 1, 14, 935, 6, 7, 7, 3), // 3687 mops, 6.1e-5 errors
|
||||
/* 15 */ V0Parameter( 1, 14, 912, 7, 6, 11, 2), // 4197 mops, 6.1e-5 errors
|
||||
/* 16 */ V0Parameter( 1, 14, 918, 8, 5, 11, 2), // 4711 mops, 6.0e-5 errors
|
||||
/* 17 */ V0Parameter( 1, 14, 945, 10, 4, 11, 2), // 5852 mops, 6.3e-5 errors
|
||||
/* 18 */ V0Parameter( 1, 14, 910, 21, 2, 11, 2), // 10956 mops, 5.9e-5 errors
|
||||
/* 19 */ V0Parameter( 1, 14, 916, 43, 1, 22, 1), // 22049 mops, 6.3e-5 errors
|
||||
/* 20 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 21 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 22 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 23 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 24 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 25 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 26 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 27 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 28 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 29 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 30 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
/* 31 : NO SOLUTION */ V0Parameter(0,0,0,0,0,0,0),
|
||||
},
|
||||
}
|
||||
@@ -1,9 +1,18 @@
|
||||
use clap::Parser;
|
||||
use rayon_cond::CondIterator;
|
||||
|
||||
use concrete_optimizer::global_parameters::DEFAUT_DOMAINS;
|
||||
use concrete_optimizer::optimisation::atomic_pattern as optimize_atomic_pattern;
|
||||
|
||||
const _4_SIGMA: f64 = 1.0 - 0.999_936_657_516;
|
||||
const MIN_LOG_POLY_SIZE: u64 = DEFAUT_DOMAINS
|
||||
.glwe_pbs_constrained
|
||||
.log2_polynomial_size
|
||||
.start as u64;
|
||||
const MAX_LOG_POLY_SIZE: u64 =
|
||||
DEFAUT_DOMAINS.glwe_pbs_constrained.log2_polynomial_size.end as u64 - 1;
|
||||
const MIN_LWE_DIM: u64 = DEFAUT_DOMAINS.free_glwe.glwe_dimension.start as u64;
|
||||
const MAX_LWE_DIM: u64 = DEFAUT_DOMAINS.free_glwe.glwe_dimension.end as u64 - 1;
|
||||
|
||||
/// Simple program to greet a person
|
||||
#[derive(Parser, Debug)]
|
||||
@@ -12,7 +21,7 @@ struct Args {
|
||||
#[clap(long, default_value_t = 1, help = "1..16")]
|
||||
min_precision: u64,
|
||||
|
||||
#[clap(long, default_value_t = 7, help = "1..16")]
|
||||
#[clap(long, default_value_t = 8, help = "1..16")]
|
||||
max_precision: u64,
|
||||
|
||||
#[clap(long, default_value_t = _4_SIGMA)]
|
||||
@@ -21,10 +30,10 @@ struct Args {
|
||||
#[clap(long, default_value_t = 128, help = "Only 128 is supported")]
|
||||
security_level: u64,
|
||||
|
||||
#[clap(long, default_value_t = 10, help = "8..16")]
|
||||
#[clap(long, default_value_t = MIN_LOG_POLY_SIZE, help = "8..16")]
|
||||
min_log_poly_size: u64,
|
||||
|
||||
#[clap(long, default_value_t = 12, help = "8..16")]
|
||||
#[clap(long, default_value_t = MAX_LOG_POLY_SIZE, help = "8..16")]
|
||||
max_log_poly_size: u64,
|
||||
|
||||
#[clap(long, default_value_t = 1, help = "EXPERIMENTAL")]
|
||||
@@ -34,10 +43,10 @@ struct Args {
|
||||
// only usefull for very low precision, some parts are not correcte if used with k > 1
|
||||
max_glwe_dim: u64,
|
||||
|
||||
#[clap(long, default_value_t = 512)]
|
||||
#[clap(long, default_value_t = MIN_LWE_DIM)]
|
||||
min_intern_lwe_dim: u64,
|
||||
|
||||
#[clap(long, default_value_t = 1024)]
|
||||
#[clap(long, default_value_t = MAX_LWE_DIM)]
|
||||
max_intern_lwe_dim: u64, // 16bits needs around 1300
|
||||
|
||||
#[clap(long, default_value_t = 4096)]
|
||||
@@ -132,7 +141,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_reference_output() {
|
||||
const REF_FILE: &str = "examples/v0_parameters.ref-02-03-2022";
|
||||
const REF_FILE: &str = "examples/v0_parameters.ref-23-03-2022";
|
||||
const V0_PARAMETERS_EXE: &str = "target/debug/examples/v0_parameters";
|
||||
const CMP_LINES: &str = "\n";
|
||||
const EXACT_EQUALITY: i32 = 0;
|
||||
|
||||
@@ -48,13 +48,13 @@ pub struct ParameterDomains {
|
||||
pub const DEFAUT_DOMAINS: ParameterDomains = ParameterDomains {
|
||||
glwe_pbs_constrained: GlweParameters {
|
||||
log2_polynomial_size: Range { start: 8, end: 15 },
|
||||
glwe_dimension: Range { start: 1, end: 10 },
|
||||
glwe_dimension: Range { start: 1, end: 2 },
|
||||
},
|
||||
free_glwe: GlweParameters {
|
||||
log2_polynomial_size: Range { start: 0, end: 1 },
|
||||
glwe_dimension: Range {
|
||||
start: 600,
|
||||
end: 2000,
|
||||
start: 512,
|
||||
end: 1025,
|
||||
},
|
||||
},
|
||||
pbs_decomposition: PbsDecompositionParameters {
|
||||
@@ -83,6 +83,12 @@ impl IntoIterator for &Range {
|
||||
}
|
||||
}
|
||||
|
||||
impl Range {
|
||||
pub fn as_vec(self) -> Vec<u64> {
|
||||
self.into_iter().collect()
|
||||
}
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
#[allow(clippy::needless_pass_by_value)]
|
||||
pub fn minimal_unify(_g: unparametrized::AtomicPatternDag) -> parameter_indexed::AtomicPatternDag {
|
||||
|
||||
10
src/lib.rs
10
src/lib.rs
@@ -33,10 +33,14 @@ pub extern "C" fn optimise_bootstrap(
|
||||
noise_factor: f64,
|
||||
maximum_acceptable_error_probability: f64,
|
||||
) -> optimisation::atomic_pattern::Solution {
|
||||
use global_parameters::DEFAUT_DOMAINS;
|
||||
let sum_size = 1;
|
||||
let glwe_log_polynomial_sizes: Vec<_> = (10..=12).collect();
|
||||
let glwe_dimensions: Vec<_> = (1..=1).collect();
|
||||
let internal_lwe_dimensions: Vec<_> = (512..=1024).collect();
|
||||
let glwe_log_polynomial_sizes = DEFAUT_DOMAINS
|
||||
.glwe_pbs_constrained
|
||||
.log2_polynomial_size
|
||||
.as_vec();
|
||||
let glwe_dimensions = DEFAUT_DOMAINS.glwe_pbs_constrained.glwe_dimension.as_vec();
|
||||
let internal_lwe_dimensions = DEFAUT_DOMAINS.free_glwe.glwe_dimension.as_vec();
|
||||
let result = optimisation::atomic_pattern::optimise_one::<u64>(
|
||||
sum_size,
|
||||
precision,
|
||||
|
||||
@@ -560,7 +560,7 @@ pub fn optimise_one<W: UnsignedInteger>(
|
||||
assert!(glwe_dim < 4);
|
||||
|
||||
for &glwe_log_poly_size in glwe_log_polynomial_sizes {
|
||||
assert!(8 < glwe_log_poly_size);
|
||||
assert!(8 <= glwe_log_poly_size);
|
||||
assert!(glwe_log_poly_size < 18);
|
||||
let glwe_poly_size = 1 << glwe_log_poly_size;
|
||||
if lower_bound_cut(glwe_poly_size) {
|
||||
|
||||
Reference in New Issue
Block a user