public static function ge_add( ParagonIE_Sodium_Core_Curve25519_Ge_P3
$p,
ParagonIE_Sodium_Core_Curve25519_Ge_Cached
$q ) { $r =
new ParagonIE_Sodium_Core_Curve25519_Ge_P1p1();
$r->X = self::
fe_add($p->Y,
$p->X
);
$r->Y = self::
fe_sub($p->Y,
$p->X
);
$r->Z = self::
fe_mul($r->X,
$q->YplusX
);
$r->Y = self::
fe_mul($r->Y,
$q->YminusX
);
$r->T = self::
fe_mul($q->T2d,
$p->T
);
$r->X = self::
fe_mul($p->Z,
$q->Z
);
$t0 = self::
fe_add($r->X,
$r->X
);
$r->X = self::
fe_sub($r->Z,
$r->Y
);
$r->Y = self::
fe_add($r->Z,
$r->Y
);
$r->Z = self::
fe_add($t0,
$r->T
);
$r->T = self::
fe_sub($t0,
$r->T
);