$vxx = self::
fe_sq($h->X
);
$vxx = self::
fe_mul($vxx,
$v);
$check = self::
fe_sub($vxx,
$u); /* vx^2 - u */
# if (fe_isnonzero(check)) {
# fe_add(check,vxx,u); /* vx^2+u */
# if (fe_isnonzero(check)) {
# return -1;
# }
# fe_mul(h->X,h->X,sqrtm1);
# }
if (self::
fe_isnonzero($check)) { $check = self::
fe_add($vxx,
$u); /* vx^2 + u */
if (self::
fe_isnonzero($check)) { throw new RangeException('Internal check failed.'
);
} $h->X = self::
fe_mul( $h->X,
ParagonIE_Sodium_Core_Curve25519_Fe::
fromArray(self::
$sqrtm1) );
} # if (fe_isnegative(h->X) == (s[31] >> 7)) {