mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-03 22:33:06 +00:00
fix fp6, better test function
This commit is contained in:
parent
3cff0928c4
commit
a0f7e6619d
@ -6,7 +6,12 @@
|
||||
/// h = fg + sh(f'g')
|
||||
/// h' = (f+f')(g+g') - fg - f'g'
|
||||
///
|
||||
/// Note: each symbol in the stack comments takes up six words
|
||||
/// Note: each symbol in the stack comments consists of six words
|
||||
|
||||
global test_mul_Fp6:
|
||||
%mul_fp6
|
||||
%jump(0xdeadbeef)
|
||||
|
||||
|
||||
global test_mul_Fp12:
|
||||
// stack: f, f', g, g'
|
||||
@ -44,8 +49,8 @@ global mul_Fp12:
|
||||
%dup2_fp6
|
||||
// stack: g , g', g , f'
|
||||
%add_fp6
|
||||
%swap_fp6
|
||||
// stack: g + g', g , f'
|
||||
%jump(0xdeadbeef)
|
||||
%swap_fp6
|
||||
// stack: g , g + g', f'
|
||||
%load_fp6(0)
|
||||
|
||||
@ -1,343 +1,162 @@
|
||||
// cost: 159
|
||||
%macro mul_fp6
|
||||
// stack: c0, c0_, c1, c1_, c2, c2_, d0, d0_, d1, d1_, d2, d2_
|
||||
SWAP3
|
||||
// stack: c1_, c0_, c1, c0, c2, c2_, d0, d0_, d1, d1_, d2, d2_
|
||||
SWAP11
|
||||
// stack: d2_, c0_, c1, c0, c2, c2_, d0, d0_, d1, d1_, d2, c1_
|
||||
SWAP4
|
||||
// stack: c2, c0_, c1, c0, d2_, c2_, d0, d0_, d1, d1_, d2, c1_
|
||||
SWAP9
|
||||
// stack: d1_, c0_, c1, c0, d2_, c2_, d0, d0_, d1, c2, d2, c1_
|
||||
SWAP7
|
||||
// stack: d0_, c0_, c1, c0, d2_, c2_, d0, d1_, d1, c2, d2, c1_
|
||||
SWAP10
|
||||
// stack: d2, c0_, c1, c0, d2_, c2_, d0, d1_, d1, c2, d0_, c1_
|
||||
SWAP6
|
||||
// stack: d0, c0_, c1, c0, d2_, c2_, d2, d1_, d1, c2, d0_, c1_
|
||||
SWAP2
|
||||
// stack: c1, c0_, d0, c0, d2_, c2_, d2, d1_, d1, c2, d0_, c1_
|
||||
SWAP8
|
||||
// stack: d1, c0_, d0, c0, d2_, c2_, d2, d1_, c1, c2, d0_, c1_
|
||||
SWAP1
|
||||
// stack: c0_, d1, d0, c0, d2_, c2_, d2, d1_, c1, c2, d0_, c1_
|
||||
SWAP5
|
||||
// stack: c2_, d1, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
SWAP1
|
||||
// stack: d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP6
|
||||
// stack: c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP12
|
||||
// stack: d0_, c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP5
|
||||
// stack: c0, d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP5
|
||||
// stack: d0, c0, d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d0c0, d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
SUBFP254
|
||||
// stack: d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP3
|
||||
// stack: c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP10
|
||||
// stack: d1_, c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP14
|
||||
// stack: c1_, d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP8
|
||||
// stack: d2_, c1_, d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d2_c1_, d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP11
|
||||
// stack: c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP10
|
||||
// stack: d2, c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d2c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP13
|
||||
// stack: c2, d2c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP5
|
||||
// stack: d1, c2, d2c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d1c2, d2c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: d1c2 + d2c1, d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
SUBFP254
|
||||
// stack: d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP11
|
||||
// stack: c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP8
|
||||
// stack: d2_, c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP15
|
||||
// stack: c1_, d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP11
|
||||
// stack: d2, c1_, d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d2c1_, d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP13
|
||||
// stack: c2, d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP12
|
||||
// stack: d1_, c2, d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d1_c2, d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP5
|
||||
// stack: c2_, d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP5
|
||||
// stack: d1, c2_, d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: d1c2_, d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP6
|
||||
// stack: d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP10
|
||||
// stack: c0_, d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP15
|
||||
// stack: d0_, c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP9
|
||||
// stack: c0, d0_, c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: c0d0_, c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP2
|
||||
// stack: d1c2_ + d1_c2 + d2c1_ + d2_c1, c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
DUP4
|
||||
// stack: d1c2 + d2c1 - d2_c1_ + d1_c2_, d1c2_ + d1_c2 + d2c1_ + d2_c1, c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
PUSH 9
|
||||
// stack: 9, d1c2 + d2c1 - d2_c1_ + d1_c2_, d1c2_ + d1_c2 + d2c1_ + d2_c1, c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
MULFP254
|
||||
// stack: 9d1c2 + d2c1 - d2_c1_ + d1_c2_, d1c2_ + d1_c2 + d2c1_ + d2_c1, c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
SUBFP254
|
||||
// stack: 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1, c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
ADDFP254
|
||||
// stack: 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, c1_
|
||||
SWAP15
|
||||
// stack: c1_, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP3
|
||||
// stack: d0c0 - d0_c0_, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP2
|
||||
// stack: d1c2 + d2c1 - d2_c1_ + d1_c2_, d1c2_ + d1_c2 + d2c1_ + d2_c1, d0c0 - d0_c0_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP1
|
||||
// stack: d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
PUSH 9
|
||||
// stack: 9, d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: 9d1c2_ + d1_c2 + d2c1_ + d2_c1, d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_, d0c0 - d0_c0_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, d1_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP9
|
||||
// stack: d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP9
|
||||
// stack: d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP5
|
||||
// stack: c2_, d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP8
|
||||
// stack: d2_, c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP4
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP7
|
||||
DUP12
|
||||
MULFP254
|
||||
DUP6
|
||||
DUP15
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP5
|
||||
DUP14
|
||||
// stack: c2, d2_, c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c2d2_, c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP8
|
||||
// stack: d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP6
|
||||
// stack: c2_, d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP11
|
||||
// stack: d2, c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP15
|
||||
// stack: c2, d2, c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c2d2, c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SUBFP254
|
||||
// stack: c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP15
|
||||
// stack: d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP5
|
||||
// stack: c1_, d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP4
|
||||
// stack: d1_, c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP12
|
||||
// stack: c0_, d1_, c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c0_d1_, c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP2
|
||||
// stack: c2d2 - c2_d2_, c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP4
|
||||
// stack: c2d2_ + c2_d2, c2d2 - c2_d2_, c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
PUSH 9
|
||||
// stack: 9, c2d2_ + c2_d2, c2d2 - c2_d2_, c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: 9c2d2_ + c2_d2, c2d2 - c2_d2_, c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SUBFP254
|
||||
// stack: 9c2d2_ + c2_d2 - c2d2 - c2_d2_, c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SUBFP254
|
||||
// stack: 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP8
|
||||
// stack: d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP15
|
||||
// stack: c1, d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c1d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP7
|
||||
// stack: d1, c1d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP11
|
||||
// stack: c0, d1, c1d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c0d1, c1d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0d1 + c1d0, 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c1, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP13
|
||||
// stack: c1, c2d2 - c2_d2_, c2d2_ + c2_d2, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP2
|
||||
// stack: c2d2_ + c2_d2, c2d2 - c2_d2_, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP1
|
||||
// stack: c2d2 - c2_d2_, c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
PUSH 9
|
||||
// stack: 9, c2d2 - c2_d2_, c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: 9c2d2 - c2_d2_, c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP7
|
||||
// stack: d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP5
|
||||
// stack: c1_, d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP16
|
||||
// stack: d0_, c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP4
|
||||
// stack: c1, d0_, c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c1d0_, c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP6
|
||||
// stack: d1, c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP12
|
||||
// stack: c0_, d1, c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c0_d1, c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0_d1 + c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP4
|
||||
// stack: d1_, c0_d1 + c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP10
|
||||
// stack: c0, d1_, c0_d1 + c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c0d1_, c0_d1 + c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0d1_ + c0_d1 + c1d0_ + c1_d0, 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP13
|
||||
// stack: c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP15
|
||||
// stack: d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP7
|
||||
// stack: c2_, d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP4
|
||||
// stack: d1_, c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP6
|
||||
// stack: c1_, d1_, c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c1_d1_, c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP10
|
||||
// stack: d2_, c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP12
|
||||
// stack: c0_, d2_, c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c0_d2_, c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP8
|
||||
// stack: d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP3
|
||||
// stack: c2, d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP7
|
||||
// stack: d1, c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP5
|
||||
// stack: c1, d1, c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c1d1, c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c1d1 + c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP13
|
||||
// stack: d2, c1d1 + c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP11
|
||||
// stack: c0, d2, c1d1 + c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: c0d2, c1d1 + c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: c0d2 + c1d1 + c2d0, c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SUBFP254
|
||||
// stack: c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP5
|
||||
DUP15
|
||||
MULFP254
|
||||
DUP7
|
||||
DUP15
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP8
|
||||
DUP14
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP9
|
||||
DUP13
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP11
|
||||
DUP6
|
||||
MULFP254
|
||||
DUP11
|
||||
DUP6
|
||||
MULFP254
|
||||
SUBFP254
|
||||
DUP2
|
||||
DUP4
|
||||
PUSH 9
|
||||
MULFP254
|
||||
SUBFP254
|
||||
ADDFP254
|
||||
SWAP15
|
||||
// stack: d0_, c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: d0_c2, c1, d1_, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP3
|
||||
SWAP2
|
||||
// stack: d1_, c1, d0_c2, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP1
|
||||
PUSH 9
|
||||
MULFP254
|
||||
// stack: d1_c1, d0_c2, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: d1_c1 + d0_c2, c1_, d1, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
SWAP9
|
||||
DUP13
|
||||
DUP9
|
||||
MULFP254
|
||||
DUP3
|
||||
DUP9
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP3
|
||||
DUP10
|
||||
MULFP254
|
||||
DUP15
|
||||
DUP10
|
||||
MULFP254
|
||||
SUBFP254
|
||||
DUP3
|
||||
DUP9
|
||||
MULFP254
|
||||
DUP15
|
||||
DUP8
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP2
|
||||
DUP4
|
||||
PUSH 9
|
||||
MULFP254
|
||||
SUBFP254
|
||||
SUBFP254
|
||||
DUP12
|
||||
DUP9
|
||||
MULFP254
|
||||
DUP15
|
||||
DUP8
|
||||
MULFP254
|
||||
ADDFP254
|
||||
ADDFP254
|
||||
SWAP13
|
||||
SWAP2
|
||||
// stack: d1, c1_, d1_c1 + d0_c2, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP1
|
||||
PUSH 9
|
||||
MULFP254
|
||||
// stack: d1c1_, d1_c1 + d0_c2, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: d1c1_ + d1_c1 + d0_c2, c2_, d0, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
DUP11
|
||||
DUP9
|
||||
MULFP254
|
||||
DUP4
|
||||
DUP9
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP3
|
||||
DUP8
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP15
|
||||
DUP7
|
||||
MULFP254
|
||||
ADDFP254
|
||||
ADDFP254
|
||||
SWAP13
|
||||
DUP3
|
||||
DUP11
|
||||
MULFP254
|
||||
DUP2
|
||||
DUP10
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP5
|
||||
DUP8
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP16
|
||||
DUP7
|
||||
MULFP254
|
||||
DUP4
|
||||
DUP10
|
||||
MULFP254
|
||||
ADDFP254
|
||||
DUP13
|
||||
DUP12
|
||||
MULFP254
|
||||
ADDFP254
|
||||
SUBFP254
|
||||
SWAP15
|
||||
SWAP7
|
||||
MULFP254
|
||||
SWAP7
|
||||
MULFP254
|
||||
SWAP7
|
||||
MULFP254
|
||||
SWAP2
|
||||
// stack: d0, c2_, d1c1_ + d1_c1 + d0_c2, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: d0c2_, d1c1_ + d1_c1 + d0_c2, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: d0c2_ + d1c1_ + d1_c1 + d0_c2, c0, d2_, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP2
|
||||
// stack: d2_, c0, d0c2_ + d1c1_ + d1_c1 + d0_c2, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: d2_c0, d0c2_ + d1c1_ + d1_c1 + d0_c2, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: d2_c0 + d0c2_ + d1c1_ + d1_c1 + d0_c2, c0_, d2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
ADDFP254
|
||||
SWAP2
|
||||
// stack: d2, c0_, d2_c0 + d0c2_ + d1c1_ + d1_c1 + d0_c2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
MULFP254
|
||||
// stack: d2c0_, d2_c0 + d0c2_ + d1c1_ + d1_c1 + d0_c2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
ADDFP254
|
||||
// stack: d2c0_ + d2_c0 + d0c2_ + d1c1_ + d1_c1 + d0_c2, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0
|
||||
SWAP5
|
||||
// stack: 9d1c2 + d2c1 - d2_c1_ + d1_c2_ - d1c2_ + d1_c2 + d2c1_ + d2_c1 + c0d0_ + c0_d0, 9d1c2_ + d1_c2 + d2c1_ + d2_c1 + d1c2 + d2c1 - d2_c1_ + d1_c2_ + d0c0 - d0_c0_, c0d1 + c1d0 + 9c2d2_ + c2_d2 - c2d2 - c2_d2_ - c0_d1_ + c1_d0_, c0d1_ + c0_d1 + c1d0_ + c1_d0 + 9c2d2 - c2_d2_ + c2d2_ + c2_d2, c0d2 + c1d1 + c2d0 - c0_d2_ + c1_d1_ + c2_d0_, d2c0_ + d2_c0 + d0c2_ + d1c1_ + d1_c1 + d0_c2
|
||||
%endmacro
|
||||
|
||||
@ -4,25 +4,40 @@ use ethereum_types::U256;
|
||||
use crate::cpu::kernel::aggregator::combined_kernel;
|
||||
use crate::cpu::kernel::interpreter::run_with_kernel;
|
||||
|
||||
#[test]
|
||||
fn test_field() -> Result<()> {
|
||||
let kernel = combined_kernel();
|
||||
let initial_offset = kernel.global_labels["test_mul_Fp12"];
|
||||
let initial_stack: Vec<U256> = vec![
|
||||
1, 1, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0,
|
||||
]
|
||||
.iter()
|
||||
.map(|&x| U256::from(x as u32))
|
||||
.rev()
|
||||
.collect();
|
||||
let final_stack: Vec<U256> = run_with_kernel(&kernel, initial_offset, initial_stack)?
|
||||
.stack()
|
||||
.to_vec();
|
||||
let expected: Vec<U256> = vec![5, 5, 9, 0, 5, 3, 17, 12, 100, 1, 3, 0]
|
||||
fn make_stack(xs: &[u32]) -> Vec<U256> {
|
||||
Vec::from(xs)
|
||||
.iter()
|
||||
.map(|&x| U256::from(x as u32))
|
||||
.rev()
|
||||
.collect();
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_fp6() -> Result<()> {
|
||||
let kernel = combined_kernel();
|
||||
let initial_offset = kernel.global_labels["test_mul_Fp6"];
|
||||
let initial_stack: Vec<U256> = make_stack(&[1, 1, 0, 0, 1, 0, 3, 0, 0, 1, 0, 0]);
|
||||
let final_stack: Vec<U256> = run_with_kernel(&kernel, initial_offset, initial_stack)?
|
||||
.stack()
|
||||
.to_vec();
|
||||
let expected: Vec<U256> = make_stack(&[2, 12, 100, 1, 3, 0]);
|
||||
|
||||
assert_eq!(final_stack, expected);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_fp12() -> Result<()> {
|
||||
let kernel = combined_kernel();
|
||||
let initial_offset = kernel.global_labels["test_mul_Fp12"];
|
||||
let initial_stack: Vec<U256> = make_stack(&[
|
||||
1, 1, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0,
|
||||
]);
|
||||
let final_stack: Vec<U256> = run_with_kernel(&kernel, initial_offset, initial_stack)?
|
||||
.stack()
|
||||
.to_vec();
|
||||
let expected: Vec<U256> = make_stack(&[5, 5, 9, 0, 5, 3, 17, 12, 100, 1, 3, 0]);
|
||||
|
||||
assert_eq!(final_stack, expected);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user