def add
bend-collections@1.0.0.0 · src/crypto/ed25519/point.bend:66
import bend-collections@1.0.0.0/src/crypto/ed25519/point.bend as Point
import Base
import bend-collections@1.0.0.0/src/crypto/curve25519/field.bend as F
66
67def add(+c: Cs, p: Pt, q: Pt) -> Pt:
68 match p q:
69 case Pt{+x1, +y1, +z1, +t1} Pt{+x2, +y2, +z2, +t2}:
70 +a = F.mul(F.sub(y1, x1), F.sub(y2, x2))
71 +b = F.mul(F.add(y1, x1), F.add(y2, x2))
72 +cc = F.mul(F.mul(t1, cs_d2(c)), t2)
73 +dd = F.mul(F.add(z1, z1), z2)
74 +e = F.sub(b, a)
75 +f = F.sub(dd, cc)
76 +g = F.add(dd, cc)
77 +h = F.add(b, a)
78 Pt{F.mul(e, f), F.mul(g, h), F.mul(f, g), F.mul(e, h)}