An Cairo implementation of finite field operations.
Our goal is to use Hints as little as possible. Actually, we only used Hints in two functions.
We use BigInt3
as a unique representation of a big number, but unreduceBigInt3
to represent a big number with limbs in [-k\*BASE, k\*BASE]
and unreduceBigInt5
with limbs in [-k\*BASE^2, k\*BASE^2]
.
Function bigint_div_mod
is the one of the functions which use hints, it computes x/y^2 mod p
. x
is unreduceBigInt5
and y
is unreduceBigInt3
, return a BigInt3
.
Other field computions can be done by calling this function.
For example, bigint_div_mul
can be x\*y/1 mod p
, with x
, y
are unreduceBigInt3
.
See common-ec-cairo for how to use this library.
MIT License © EulerSmile