# fe_mul(z2,tmp1,tmp0);
$z2 = self::
fe_mul($tmp1,
$tmp0);
} # fe_cswap(x2,x3,swap);
self::
fe_cswap($x2,
$x3,
$swap);
# fe_cswap(z2,z3,swap);
self::
fe_cswap($z2,
$z3,
$swap);
# fe_invert(z2,z2);
$z2 = self::
fe_invert($z2);
# fe_mul(x2,x2,z2);
$x2 = self::
fe_mul($x2,
$z2);
# fe_tobytes(q,x2);
return (string) self::
fe_tobytes($x2);
} /**
* @internal You should not use this directly from another application
*
* @param ParagonIE_Sodium_Core32_Curve25519_Fe $edwardsY
* @param ParagonIE_Sodium_Core32_Curve25519_Fe $edwardsZ
* @return ParagonIE_Sodium_Core32_Curve25519_Fe
* @throws SodiumException
* @throws TypeError
*/