Function dbl [src]

Double a P384 point.

Prototype

pub fn dbl(p: P384) P384

Parameters

p: P384

Source

pub fn dbl(p: P384) P384 { var t0 = p.x.sq(); var t1 = p.y.sq(); var t2 = p.z.sq(); var t3 = p.x.mul(p.y); t3 = t3.dbl(); var Z3 = p.x.mul(p.z); Z3 = Z3.add(Z3); var Y3 = B.mul(t2); Y3 = Y3.sub(Z3); var X3 = Y3.dbl(); Y3 = X3.add(Y3); X3 = t1.sub(Y3); Y3 = t1.add(Y3); Y3 = X3.mul(Y3); X3 = X3.mul(t3); t3 = t2.dbl(); t2 = t2.add(t3); Z3 = B.mul(Z3); Z3 = Z3.sub(t2); Z3 = Z3.sub(t0); t3 = Z3.dbl(); Z3 = Z3.add(t3); t3 = t0.dbl(); t0 = t3.add(t0); t0 = t0.sub(t2); t0 = t0.mul(Z3); Y3 = Y3.add(t0); t0 = p.y.mul(p.z); t0 = t0.dbl(); Z3 = t0.mul(Z3); X3 = X3.sub(Z3); Z3 = t0.mul(t1); Z3 = Z3.dbl().dbl(); return .{ .x = X3, .y = Y3, .z = Z3, }; }