Curve.dbl_prog: def of bend-collections-laws-crypto@1.0.0.0 Import: import bend-collections-laws-crypto@1.0.0.0/spec/crypto/secp256k1/curve.bend as Curve Lines 80-93 of bend-collections-laws-crypto@1.0.0.0/spec/crypto/secp256k1/curve.bend: https://jend.leeeet.dev/read.txt?path=bend-collections-laws-crypto@1.0.0.0/spec/crypto/secp256k1/curve.bend&start_line=80&end_line=93 import Base # RCB Algorithm 9 (a = 0). Registers: 0 X, 1 Y, 2 Z, 3 b3; lines write # registers 4..21: # t0 = Y Y (4) Z3 = t0 + t0 (5) Z3 = Z3 + Z3 (6) # Z3 = Z3 + Z3 (7) t1 = Y Z (8) t2 = Z Z (9) # t2 = b3 t2 (10) X3 = t2 Z3 (11) Y3 = t0 + t2 (12) # Z3 = t1 Z3 (13) t1 = t2 + t2 (14) t2 = t1 + t2 (15) # t0 = t0 - t2 (16) Y3 = t0 Y3 (17) Y3 = X3 + Y3 (18) # t1 = X Y (19) X3 = t0 t1 (20) X3 = X3 + X3 (21) # and the result is (X3 : Y3 : Z3) = registers (21 : 18 : 13). def dbl_prog() -> List<&2, SOp>: [SMul{1n, 1n}, SAdd{4n, 4n}, SAdd{5n, 5n}, SAdd{6n, 6n}, SMul{1n, 2n}, SMul{2n, 2n}, SMul{3n, 9n}, SMul{10n, 7n}, SAdd{4n, 10n}, SMul{8n, 7n}, SAdd{10n, 10n}, SAdd{14n, 10n}, SSub{4n, 15n}, SMul{16n, 12n}, SAdd{11n, 17n}, SMul{0n, 1n}, SMul{16n, 19n}, SAdd{20n, 20n}] Uses (2): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/spec/crypto/secp256k1/curve.bend&name=SOp