diff --git a/benchmarks.csv b/benchmarks.csv
index c614c534..28be1159 100644
--- a/benchmarks.csv
+++ b/benchmarks.csv
@@ -19,9 +19,15 @@ kyber768 (10 executions),m4fspeed,631912,631599,632459,656455,656155,656969,7055
kyber768 (10 executions),m4fstack,634213,632786,644273,662556,661130,672615,712081,710655,722140
Signature Schemes,,,,,,,,,,
Scheme,Implementation,Key Generation [cycles] (mean),Key Generation [cycles] (min),Key Generation [cycles] (max),Sign [cycles] (mean),Sign [cycles] (min),Sign [cycles] (max),Verify [cycles] (mean),Verify [cycles] (min),Verify [cycles] (max)
-aimer-l1-param1 (10 executions),ref,392943,392938,392977,32386301,32386203,32386424,31111672,31111588,31111782
-aimer-l1-param2 (10 executions),ref,392938,392938,392941,79450721,79450349,79451595,78429263,78398061,78434987
-aimer-l3-param1 (10 executions),ref,981288,981288,981290,90953716,90953603,90953763,88350755,88350600,88350906
+aimer128f (10 executions),mem_opt,564325,564324,564326,46875341,46874593,46876276,26989249,26988505,26989828
+aimer128f (10 executions),ref,564323,564323,564324,28991142,28991115,28991171,26994617,26994234,26994927
+aimer128s (10 executions),mem_opt,564323,564323,564325,374834586,374834473,374834973,227230761,227230441,227230833
+aimer192f (10 executions),mem_opt,1397043,1397043,1397043,117993511,117991579,117995094,76372135,76370763,76373839
+aimer192f (10 executions),ref,1397040,1397040,1397041,81884026,81883991,81884035,76458825,76456517,76460984
+aimer192s (10 executions),mem_opt,1397047,1397039,1397079,916637185,916637133,916637425,629249382,629249345,629249415
+aimer256f (10 executions),mem_opt,3344254,3344250,3344255,233973308,233969892,233976707,170620601,170617448,170623743
+aimer256f (10 executions),ref,3344258,3344255,3344292,164484408,164483962,164484481,170648722,170647189,170651027
+aimer256s (10 executions),mem_opt,3344262,3344252,3344293,1752719642,1752719422,1752720844,1361337862,1361336718,1361338013
ascon-sign-128f-robust (10 executions),ref,122506162,122506099,122506254,2855797836,2855797243,2855798602,174707763,169973472,179525137
ascon-sign-128f-simple (10 executions),ref,69376878,69376875,69376883,1629111557,1629111334,1629112028,97798317,95509050,98714007
ascon-sign-128s-robust (10 executions),ref,7842366557,7842366432,7842366620,59267552580,59267543517,59267565672,60232378,57865239,62848708
@@ -173,9 +179,15 @@ kyber768,m4fspeed,5396,6468,6452,,,,,,
kyber768,m4fstack,2820,2860,2844,,,,,,
Signature Schemes,,,,,,,,,,
Scheme,Implementation,Key Generation [bytes],Sign [bytes],Verify [bytes],,,,,,
-aimer-l1-param1,ref,10952,187724,196728,,,,,,
-aimer-l1-param2,ref,10952,442668,451672,,,,,,
-aimer-l3-param1,ref,23864,413940,435640,,,,,,
+aimer128f,mem_opt,8728,13864,15440,,,,,,
+aimer128f,ref,8728,123376,15448,,,,,,
+aimer128s,mem_opt,8728,27324,34624,,,,,,
+aimer192f,mem_opt,19192,29976,31608,,,,,,
+aimer192f,ref,19192,273104,31608,,,,,,
+aimer192s,mem_opt,19192,43220,60384,,,,,,
+aimer256f,mem_opt,50040,77164,78568,,,,,,
+aimer256f,ref,50040,573284,78716,,,,,,
+aimer256s,mem_opt,50040,76140,117044,,,,,,
ascon-sign-128f-robust,ref,3260,2772,2992,,,,,,
ascon-sign-128f-simple,ref,2632,2144,2448,,,,,,
ascon-sign-128s-robust,ref,3452,2916,2240,,,,,,
@@ -328,9 +340,15 @@ kyber768,m4fspeed,75.4,74.4,69.2,,,,,,
kyber768,m4fstack,75.3,73.8,68.7,,,,,,
Signature Schemes,,,,,,,,,,
Scheme,Implementation,Key Generation [%],Sign [%],Verify [%],,,,,,
-aimer-l1-param1,ref,72.0,47.2,46.7,,,,,,
-aimer-l1-param2,ref,72.0,48.7,48.7,,,,,,
-aimer-l3-param1,ref,77.4,41.7,41.6,,,,,,
+aimer128f,mem_opt,50.6,66.1,49.6,,,,,,
+aimer128f,ref,50.6,48.8,49.6,,,,,,
+aimer128s,mem_opt,50.6,67.9,50.2,,,,,,
+aimer192f,mem_opt,53.5,56.4,40.5,,,,,,
+aimer192f,ref,53.5,39.8,40.5,,,,,,
+aimer192s,mem_opt,53.5,58.1,40.9,,,,,,
+aimer256f,mem_opt,58.9,40.6,27.0,,,,,,
+aimer256f,ref,58.9,28.0,27.0,,,,,,
+aimer256s,mem_opt,58.9,42.4,27.2,,,,,,
ascon-sign-128f-robust,ref,0.0,0.0,0.0,,,,,,
ascon-sign-128f-simple,ref,0.0,0.0,0.0,,,,,,
ascon-sign-128s-robust,ref,0.0,0.0,0.0,,,,,,
@@ -482,9 +500,15 @@ kyber768,m4fspeed,15964,0,0,15964,,,,,
kyber768,m4fstack,13288,0,0,13288,,,,,
Signature Schemes,,,,,,,,,,
Scheme,Implementation,.text [bytes],.data [bytes],.bss [bytes],Total [bytes],,,,,
-aimer-l1-param1,ref,19302,468,0,19770,,,,,
-aimer-l1-param2,ref,19894,468,0,20362,,,,,
-aimer-l3-param1,ref,23398,468,0,23866,,,,,
+aimer128f,mem_opt,17476,0,0,17476,,,,,
+aimer128f,ref,17076,0,0,17076,,,,,
+aimer128s,mem_opt,17452,0,0,17452,,,,,
+aimer192f,mem_opt,25384,0,0,25384,,,,,
+aimer192f,ref,24956,0,0,24956,,,,,
+aimer192s,mem_opt,25288,0,0,25288,,,,,
+aimer256f,mem_opt,27804,0,0,27804,,,,,
+aimer256f,ref,27304,0,0,27304,,,,,
+aimer256s,mem_opt,27636,0,0,27636,,,,,
ascon-sign-128f-robust,ref,17664,0,0,17664,,,,,
ascon-sign-128f-simple,ref,17596,0,0,17596,,,,,
ascon-sign-128s-robust,ref,17972,0,0,17972,,,,,
diff --git a/benchmarks.md b/benchmarks.md
index 87df4aa4..dfc2106f 100644
--- a/benchmarks.md
+++ b/benchmarks.md
@@ -21,9 +21,15 @@
## Signature Schemes
| scheme | implementation | key generation [cycles] | sign [cycles] | verify [cycles] |
| ------ | -------------- | ----------------------- | ------------- | --------------- |
-| aimer-l1-param1 (10 executions) | ref | AVG: 392,943
MIN: 392,938
MAX: 392,977 | AVG: 32,386,301
MIN: 32,386,203
MAX: 32,386,424 | AVG: 31,111,672
MIN: 31,111,588
MAX: 31,111,782 |
-| aimer-l1-param2 (10 executions) | ref | AVG: 392,938
MIN: 392,938
MAX: 392,941 | AVG: 79,450,721
MIN: 79,450,349
MAX: 79,451,595 | AVG: 78,429,263
MIN: 78,398,061
MAX: 78,434,987 |
-| aimer-l3-param1 (10 executions) | ref | AVG: 981,288
MIN: 981,288
MAX: 981,290 | AVG: 90,953,716
MIN: 90,953,603
MAX: 90,953,763 | AVG: 88,350,755
MIN: 88,350,600
MAX: 88,350,906 |
+| aimer128f (10 executions) | mem_opt | AVG: 564,325
MIN: 564,324
MAX: 564,326 | AVG: 46,875,341
MIN: 46,874,593
MAX: 46,876,276 | AVG: 26,989,249
MIN: 26,988,505
MAX: 26,989,828 |
+| aimer128f (10 executions) | ref | AVG: 564,323
MIN: 564,323
MAX: 564,324 | AVG: 28,991,142
MIN: 28,991,115
MAX: 28,991,171 | AVG: 26,994,617
MIN: 26,994,234
MAX: 26,994,927 |
+| aimer128s (10 executions) | mem_opt | AVG: 564,323
MIN: 564,323
MAX: 564,325 | AVG: 374,834,586
MIN: 374,834,473
MAX: 374,834,973 | AVG: 227,230,761
MIN: 227,230,441
MAX: 227,230,833 |
+| aimer192f (10 executions) | mem_opt | AVG: 1,397,043
MIN: 1,397,043
MAX: 1,397,043 | AVG: 117,993,511
MIN: 117,991,579
MAX: 117,995,094 | AVG: 76,372,135
MIN: 76,370,763
MAX: 76,373,839 |
+| aimer192f (10 executions) | ref | AVG: 1,397,040
MIN: 1,397,040
MAX: 1,397,041 | AVG: 81,884,026
MIN: 81,883,991
MAX: 81,884,035 | AVG: 76,458,825
MIN: 76,456,517
MAX: 76,460,984 |
+| aimer192s (10 executions) | mem_opt | AVG: 1,397,047
MIN: 1,397,039
MAX: 1,397,079 | AVG: 916,637,185
MIN: 916,637,133
MAX: 916,637,425 | AVG: 629,249,382
MIN: 629,249,345
MAX: 629,249,415 |
+| aimer256f (10 executions) | mem_opt | AVG: 3,344,254
MIN: 3,344,250
MAX: 3,344,255 | AVG: 233,973,308
MIN: 233,969,892
MAX: 233,976,707 | AVG: 170,620,601
MIN: 170,617,448
MAX: 170,623,743 |
+| aimer256f (10 executions) | ref | AVG: 3,344,258
MIN: 3,344,255
MAX: 3,344,292 | AVG: 164,484,408
MIN: 164,483,962
MAX: 164,484,481 | AVG: 170,648,722
MIN: 170,647,189
MAX: 170,651,027 |
+| aimer256s (10 executions) | mem_opt | AVG: 3,344,262
MIN: 3,344,252
MAX: 3,344,293 | AVG: 1,752,719,642
MIN: 1,752,719,422
MAX: 1,752,720,844 | AVG: 1,361,337,862
MIN: 1,361,336,718
MAX: 1,361,338,013 |
| ascon-sign-128f-robust (10 executions) | ref | AVG: 122,506,162
MIN: 122,506,099
MAX: 122,506,254 | AVG: 2,855,797,836
MIN: 2,855,797,243
MAX: 2,855,798,602 | AVG: 174,707,763
MIN: 169,973,472
MAX: 179,525,137 |
| ascon-sign-128f-simple (10 executions) | ref | AVG: 69,376,878
MIN: 69,376,875
MAX: 69,376,883 | AVG: 1,629,111,557
MIN: 1,629,111,334
MAX: 1,629,112,028 | AVG: 97,798,317
MIN: 95,509,050
MAX: 98,714,007 |
| ascon-sign-128s-robust (10 executions) | ref | AVG: 7,842,366,557
MIN: 7,842,366,432
MAX: 7,842,366,620 | AVG: 59,267,552,580
MIN: 59,267,543,517
MAX: 59,267,565,672 | AVG: 60,232,378
MIN: 57,865,239
MAX: 62,848,708 |
@@ -177,9 +183,15 @@
## Signature Schemes
| Scheme | Implementation | Key Generation [bytes] | Sign [bytes] | Verify [bytes] |
| ------ | -------------- | ---------------------- | ------------ | -------------- |
-| aimer-l1-param1 | ref | 10,952 | 187,724 | 196,728 |
-| aimer-l1-param2 | ref | 10,952 | 442,668 | 451,672 |
-| aimer-l3-param1 | ref | 23,864 | 413,940 | 435,640 |
+| aimer128f | mem_opt | 8,728 | 13,864 | 15,440 |
+| aimer128f | ref | 8,728 | 123,376 | 15,448 |
+| aimer128s | mem_opt | 8,728 | 27,324 | 34,624 |
+| aimer192f | mem_opt | 19,192 | 29,976 | 31,608 |
+| aimer192f | ref | 19,192 | 273,104 | 31,608 |
+| aimer192s | mem_opt | 19,192 | 43,220 | 60,384 |
+| aimer256f | mem_opt | 50,040 | 77,164 | 78,568 |
+| aimer256f | ref | 50,040 | 573,284 | 78,716 |
+| aimer256s | mem_opt | 50,040 | 76,140 | 117,044 |
| ascon-sign-128f-robust | ref | 3,260 | 2,772 | 2,992 |
| ascon-sign-128f-simple | ref | 2,632 | 2,144 | 2,448 |
| ascon-sign-128s-robust | ref | 3,452 | 2,916 | 2,240 |
@@ -334,9 +346,15 @@
## Signature Schemes
| Scheme | Implementation | Key Generation [%] | Sign [%] | Verify [%] |
| ------ | -------------- | ------------------ | -------- | ---------- |
-| aimer-l1-param1 | ref | 72.0% | 47.2% | 46.7% |
-| aimer-l1-param2 | ref | 72.0% | 48.7% | 48.7% |
-| aimer-l3-param1 | ref | 77.4% | 41.7% | 41.6% |
+| aimer128f | mem_opt | 50.6% | 66.1% | 49.6% |
+| aimer128f | ref | 50.6% | 48.8% | 49.6% |
+| aimer128s | mem_opt | 50.6% | 67.9% | 50.2% |
+| aimer192f | mem_opt | 53.5% | 56.4% | 40.5% |
+| aimer192f | ref | 53.5% | 39.8% | 40.5% |
+| aimer192s | mem_opt | 53.5% | 58.1% | 40.9% |
+| aimer256f | mem_opt | 58.9% | 40.6% | 27.0% |
+| aimer256f | ref | 58.9% | 28.0% | 27.0% |
+| aimer256s | mem_opt | 58.9% | 42.4% | 27.2% |
| ascon-sign-128f-robust | ref | 0.0% | 0.0% | 0.0% |
| ascon-sign-128f-simple | ref | 0.0% | 0.0% | 0.0% |
| ascon-sign-128s-robust | ref | 0.0% | 0.0% | 0.0% |
@@ -490,9 +508,15 @@
## Signature Schemes
| Scheme | Implementation | .text [bytes] | .data [bytes] | .bss [bytes] | Total [bytes] |
| ------ | -------------- | ------------- | ------------- | ------------ | ------------- |
-| aimer-l1-param1 | ref | 19,302 | 468 | 0 | 19,770 |
-| aimer-l1-param2 | ref | 19,894 | 468 | 0 | 20,362 |
-| aimer-l3-param1 | ref | 23,398 | 468 | 0 | 23,866 |
+| aimer128f | mem_opt | 17,476 | 0 | 0 | 17,476 |
+| aimer128f | ref | 17,076 | 0 | 0 | 17,076 |
+| aimer128s | mem_opt | 17,452 | 0 | 0 | 17,452 |
+| aimer192f | mem_opt | 25,384 | 0 | 0 | 25,384 |
+| aimer192f | ref | 24,956 | 0 | 0 | 24,956 |
+| aimer192s | mem_opt | 25,288 | 0 | 0 | 25,288 |
+| aimer256f | mem_opt | 27,804 | 0 | 0 | 27,804 |
+| aimer256f | ref | 27,304 | 0 | 0 | 27,304 |
+| aimer256s | mem_opt | 27,636 | 0 | 0 | 27,636 |
| ascon-sign-128f-robust | ref | 17,664 | 0 | 0 | 17,664 |
| ascon-sign-128f-simple | ref | 17,596 | 0 | 0 | 17,596 |
| ascon-sign-128s-robust | ref | 17,972 | 0 | 0 | 17,972 |
diff --git a/mupq b/mupq
index d5d4ed32..817a9de4 160000
--- a/mupq
+++ b/mupq
@@ -1 +1 @@
-Subproject commit d5d4ed32d3016346c2c882f0ca3c951936364205
+Subproject commit 817a9de4bbcc87bf5fb57ca85eecf0d566e0c414
diff --git a/skiplist.py b/skiplist.py
index 4f6a868b..f483bfb7 100644
--- a/skiplist.py
+++ b/skiplist.py
@@ -1,11 +1,16 @@
skip_list = [
- {'scheme': 'aimer-l1-param1', 'implementation': 'ref', 'estmemory': 206848},
- {'scheme': 'aimer-l1-param2', 'implementation': 'ref', 'estmemory': 461824},
- {'scheme': 'aimer-l1-param3', 'implementation': 'ref', 'estmemory': 1442816},
- {'scheme': 'aimer-l3-param1', 'implementation': 'ref', 'estmemory': 452608},
- {'scheme': 'aimer-l3-param2', 'implementation': 'ref', 'estmemory': 1091584},
- {'scheme': 'aimer-l5-param1', 'implementation': 'ref', 'estmemory': 926720},
- {'scheme': 'aimer-l5-param2', 'implementation': 'ref', 'estmemory': 2169856},
+ {'scheme': 'aimer192s', 'implementation': 'opt_mem', 'estmemory': 70656},
+ {'scheme': 'aimer192s', 'implementation': 'ref', 'estmemory': 2036736},
+ {'scheme': 'aimer192f', 'implementation': 'opt_mem', 'estmemory': 46080},
+ {'scheme': 'aimer192f', 'implementation': 'ref', 'estmemory': 287744},
+ {'scheme': 'aimer128s', 'implementation': 'opt_mem', 'estmemory': 39936},
+ {'scheme': 'aimer128s', 'implementation': 'ref', 'estmemory': 924672},
+ {'scheme': 'aimer256f', 'implementation': 'opt_mem', 'estmemory': 105472},
+ {'scheme': 'aimer256f', 'implementation': 'ref', 'estmemory': 600064},
+ {'scheme': 'aimer256s', 'implementation': 'opt_mem', 'estmemory': 135168},
+ {'scheme': 'aimer256s', 'implementation': 'ref', 'estmemory': 4148224},
+ {'scheme': 'aimer128f', 'implementation': 'opt_mem', 'estmemory': 22528},
+ {'scheme': 'aimer128f', 'implementation': 'ref', 'estmemory': 131072},
{'scheme': 'ascon-sign-128f-robust', 'implementation': 'ref', 'estmemory': 21504},
{'scheme': 'ascon-sign-128f-simple', 'implementation': 'ref', 'estmemory': 21504},
{'scheme': 'ascon-sign-128s-robust', 'implementation': 'ref', 'estmemory': 12288},