fe_1(h.Z)
}
-const ge_p2_dbl_t: FieldElement = fe()
-/**
- * r = 2 * p
- */
//@ts-expect-error
@inline
-export function ge_p2_dbl (r: ge_p1p1, p: ge_p2): void {
- const t = ge_p2_dbl_t
- fe_sq(r.X, p.X)
- fe_sq(r.Z, p.Y)
- fe_sq2(r.T, p.Z)
- fe_add(r.Y, p.X, p.Y)
- fe_sq(t, r.Y)
- fe_add(r.Y, r.Z, r.X)
- fe_sub(r.Z, r.Z, r.X)
- fe_sub(r.X, t, r.Y)
- fe_sub(r.T, r.T, r.Z)
+export function ge_p1p1_0 (h: ge_p1p1): void {
+ fe_0(h.X)
+ fe_1(h.Y)
+ fe_1(h.Z)
+ fe_0(h.T)
+}
+
+//@ts-expect-error
+@inline
+export function ge_p3_0 (h: ge_p3): void {
+ fe_0(h.X)
+ fe_1(h.Y)
+ fe_1(h.Z)
+ fe_0(h.T)
+}
+
+//@ts-expect-error
+@inline
+export function ge_precomp_0 (h: ge_precomp): void {
+ fe_1(h.yplusx)
+ fe_1(h.yminusx)
+ fe_0(h.xy2d)
}
/**
fe_mul(r.T, p.X, p.Y)
}
-//@ts-expect-error
-@inline
-export function ge_p1p1_0 (h: ge_p1p1): void {
- fe_0(h.X)
- fe_1(h.Y)
- fe_1(h.Z)
- fe_0(h.T)
-}
-
-//@ts-expect-error
-@inline
-export function ge_p3_0 (h: ge_p3): void {
- fe_0(h.X)
- fe_1(h.Y)
- fe_1(h.Z)
- fe_0(h.T)
-}
-
-const ge_p3_dbl_t: FieldElement = fe()
/**
- * r = 2 * p
+ * r = p
*/
-export function ge_p3_dbl (r: ge_p1p1, p: ge_p3): void {
- const t = ge_p3_dbl_t
- fe_sq(r.X, p.X)
- fe_sq(r.Z, p.Y)
- fe_sq2(r.T, p.Z)
- fe_add(r.Y, p.X, p.Y)
- fe_sq(t, r.Y)
- fe_add(r.Y, r.Z, r.X)
- fe_sub(r.Z, r.Z, r.X)
- fe_sub(r.X, t, r.Y)
- fe_sub(r.T, r.T, r.Z)
+//@ts-expect-error
+@inline
+export function ge_p3_to_cached (r: ge_cached, p: ge_p3): void {
+ fe_add(r.YplusX, p.Y, p.X)
+ fe_sub(r.YminusX, p.Y, p.X)
+ fe_copy(r.Z, p.Z)
+ fe_mul(r.T2d, p.T, ed25519_d2)
}
const ge_p3_tobytes_recip: FieldElement = fe()
s[31] ^= fe_isnegative(x) << 7
}
+const ge_p2_dbl_t: FieldElement = fe()
/**
- * r = p
+ * r = 2 * p
*/
//@ts-expect-error
@inline
-export function ge_p3_to_cached (r: ge_cached, p: ge_p3): void {
- fe_add(r.YplusX, p.Y, p.X)
- fe_sub(r.YminusX, p.Y, p.X)
- fe_copy(r.Z, p.Z)
- fe_mul(r.T2d, p.T, ed25519_d2)
+export function ge_p2_dbl (r: ge_p1p1, p: ge_p2): void {
+ const t = ge_p2_dbl_t
+ fe_sq(r.X, p.X)
+ fe_sq(r.Z, p.Y)
+ fe_sq2(r.T, p.Z)
+ fe_add(r.Y, p.X, p.Y)
+ fe_sq(t, r.Y)
+ fe_add(r.Y, r.Z, r.X)
+ fe_sub(r.Z, r.Z, r.X)
+ fe_sub(r.X, t, r.Y)
+ fe_sub(r.T, r.T, r.Z)
}
-//@ts-expect-error
-@inline
-export function ge_precomp_0 (h: ge_precomp): void {
- fe_1(h.yplusx)
- fe_1(h.yminusx)
- fe_0(h.xy2d)
+const ge_p3_dbl_t: FieldElement = fe()
+/**
+ * r = 2 * p
+ */
+export function ge_p3_dbl (r: ge_p1p1, p: ge_p3): void {
+ const t = ge_p3_dbl_t
+ fe_sq(r.X, p.X)
+ fe_sq(r.Z, p.Y)
+ fe_sq2(r.T, p.Z)
+ fe_add(r.Y, p.X, p.Y)
+ fe_sq(t, r.Y)
+ fe_add(r.Y, r.Z, r.X)
+ fe_sub(r.Z, r.Z, r.X)
+ fe_sub(r.X, t, r.Y)
+ fe_sub(r.T, r.T, r.Z)
}
const ge_add_cached_t0: FieldElement = fe()