Skip to content

[Feat] Introduce the SWJ Bucket#3111

Draft
ljedrz wants to merge 1 commit intoProvableHQ:stagingfrom
ljedrz:feat/extended_jacobian_coords
Draft

[Feat] Introduce the SWJ Bucket#3111
ljedrz wants to merge 1 commit intoProvableHQ:stagingfrom
ljedrz:feat/extended_jacobian_coords

Conversation

@ljedrz
Copy link
Copy Markdown
Collaborator

@ljedrz ljedrz commented Jan 20, 2026

This PR is an adaptation of an optimization from arkworks-rs/algebra#961. I applied an engineering methodology, and attempted to achieve some of its benefits while keeping the changes to the overall snarkVM setup to a minimum. I kept the original object and method names in order for the changes to the original implementation to be obvious, and I'm happy to adjust them as suggested.

The benchmark improvements are as follows:

VariableBase MSM on BLS12-377 (10000)
                        time:   [5.2378 ms 5.2534 ms 5.2741 ms]
                        change: [−6.3783% −5.9368% −5.4829%] (p = 0.00 < 0.05)
                        Performance has improved.

VariableBase MSM on BLS12-377 (100000)
                        time:   [38.772 ms 39.120 ms 39.356 ms]
                        change: [−4.0878% −3.2866% −2.4340%] (p = 0.00 < 0.05)
                        Performance has improved.

VariableBase MSM on BLS12-377 (200000)
                        time:   [74.431 ms 74.823 ms 75.201 ms]
                        change: [−4.0821% −3.1051% −2.0457%] (p = 0.00 < 0.05)
                        Performance has improved.

VariableBase MSM on BLS12-377 (300000)
                        time:   [113.81 ms 114.22 ms 114.65 ms]
                        change: [−3.6044% −2.8496% −1.9350%] (p = 0.00 < 0.05)
                        Performance has improved.

VariableBase MSM on BLS12-377 (400000)
                        time:   [151.39 ms 152.30 ms 152.86 ms]
                        change: [−4.8841% −3.3533% −2.0991%] (p = 0.00 < 0.05)
                        Performance has improved.

VariableBase MSM on BLS12-377 (500000)
                        time:   [169.65 ms 170.48 ms 171.48 ms]
                        change: [−3.5561% −2.6155% −1.5546%] (p = 0.00 < 0.05)
                        Performance has improved.

VariableBase MSM on BLS12-377 (1000000)
                        time:   [327.14 ms 329.88 ms 332.75 ms]
                        change: [−2.2997% −1.2623% −0.1854%] (p = 0.05 < 0.05)
                        Change within noise threshold.

VariableBase MSM on BLS12-377 (2000000)
                        time:   [554.93 ms 557.95 ms 561.27 ms]
                        change: [−3.3382% −2.0033% −0.6625%] (p = 0.01 < 0.05)
                        Change within noise threshold.

Variable MSM on Edwards-BLS12 (10000)
                        time:   [2.8178 ms 2.8247 ms 2.8321 ms]
                        change: [−6.6454% −6.1873% −5.7313%] (p = 0.00 < 0.05)
                        Performance has improved.

Variable MSM on Edwards-BLS12 (100000)
                        time:   [21.649 ms 21.723 ms 21.849 ms]
                        change: [−6.0544% −5.2547% −4.4025%] (p = 0.00 < 0.05)
                        Performance has improved.

Variable MSM on Edwards-BLS12 (1000000)
                        time:   [204.23 ms 205.39 ms 206.60 ms]
                        change: [−5.6802% −4.9662% −4.1791%] (p = 0.00 < 0.05)
                        Performance has improved.

snark_circuit_setup_100 time:   [8.7288 ms 8.7451 ms 8.7612 ms]
                        change: [−2.8766% −2.5939% −2.3085%] (p = 0.00 < 0.05)
                        Performance has improved.

snark_circuit_setup_1000
                        time:   [16.645 ms 16.680 ms 16.716 ms]
                        change: [−3.2832% −3.0163% −2.7459%] (p = 0.00 < 0.05)
                        Performance has improved.

snark_circuit_setup_10000
                        time:   [94.389 ms 94.579 ms 94.773 ms]
                        change: [−3.1072% −2.8311% −2.5615%] (p = 0.00 < 0.05)
                        Performance has improved.

snark_prove_v1          time:   [99.202 ms 99.507 ms 99.820 ms]
                        change: [−3.4576% −2.9960% −2.4999%] (p = 0.00 < 0.05)
                        Performance has improved.

snark_prove_v2          time:   [101.52 ms 101.87 ms 102.22 ms]
                        change: [−2.8756% −2.3354% −1.8458%] (p = 0.00 < 0.05)
                        Performance has improved.

Filing as a draft in case any of the applications is invalid, and to potentially adjust the names and placement of new objects.

Signed-off-by: ljedrz <ljedrz@users.noreply.github.com>
@ljedrz ljedrz requested a review from vicsn January 20, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant