def dbl_prog

bend-collections-laws-crypto@1.0.0.0 · spec/crypto/secp256k1/curve.bend:80

import bend-collections-laws-crypto@1.0.0.0/spec/crypto/secp256k1/curve.bend as Curve
import Base

80# RCB Algorithm 9 (a = 0). Registers: 0 X, 1 Y, 2 Z, 3 b3; lines write
81# registers 4..21:
82#   t0 = Y Y (4)        Z3 = t0 + t0 (5)    Z3 = Z3 + Z3 (6)
83#   Z3 = Z3 + Z3 (7)    t1 = Y Z (8)        t2 = Z Z (9)
84#   t2 = b3 t2 (10)     X3 = t2 Z3 (11)     Y3 = t0 + t2 (12)
85#   Z3 = t1 Z3 (13)     t1 = t2 + t2 (14)   t2 = t1 + t2 (15)
86#   t0 = t0 - t2 (16)   Y3 = t0 Y3 (17)     Y3 = X3 + Y3 (18)
87#   t1 = X Y (19)       X3 = t0 t1 (20)     X3 = X3 + X3 (21)
88# and the result is (X3 : Y3 : Z3) = registers (21 : 18 : 13).
89def dbl_prog() -> List<&2, SOp>:
90  [SMul{1n, 1n}, SAdd{4n, 4n}, SAdd{5n, 5n}, SAdd{6n, 6n}, SMul{1n, 2n},
91   SMul{2n, 2n}, SMul{3n, 9n}, SMul{10n, 7n}, SAdd{4n, 10n}, SMul{8n, 7n},
92   SAdd{10n, 10n}, SAdd{14n, 10n}, SSub{4n, 15n}, SMul{16n, 12n}, SAdd{11n, 17n},
93   SMul{0n, 1n}, SMul{16n, 19n}, SAdd{20n, 20n}]

Uses (2)

Used by (3)