Skip to content

Latest commit

 

History

History
37 lines (24 loc) · 871 Bytes

File metadata and controls

37 lines (24 loc) · 871 Bytes

Solidity API

ModUtils

modExp

function modExp(uint256 base, uint256 exponent, uint256 p) internal view returns (uint256 o)

Wraps the modular exponent pre-compile introduced in Byzantium. Returns base^exponent mod p.

modSqrt

function modSqrt(uint256 a, uint256 p) internal view returns (uint256)

Calculates and returns the square root of a mod p if such a square root exists. The modulus p must be an odd prime. If a square root does not exist, function returns 0.

legendre

function legendre(uint256 a, uint256 p) internal view returns (int256)

Calculates the Legendre symbol of the given a mod p.

Return Values

Name Type Description
[0] int256 Returns 1 if a is a quadratic residue mod p, -1 if it is a non-quadratic residue, and 0 if a is 0.