github.com/cloudflare/circl@v1.5.0/ecc/bls12381/ff/uroot.go (about) 1 package ff 2 3 // URootSize is the length in bytes of a root of unit. 4 const URootSize = Fp12Size 5 6 // URoot represents an n-th root of unit, that is an element x in Cyclo6 such 7 // that x^n=1, where n = ScalarOrder(). 8 type URoot Cyclo6 9 10 func (z URoot) String() string { return (Cyclo6)(z).String() } 11 func (z *URoot) UnmarshalBinary(b []byte) error { return (*Fp12)(z).UnmarshalBinary(b) } 12 func (z URoot) MarshalBinary() ([]byte, error) { return (Fp12)(z).MarshalBinary() } 13 func (z *URoot) SetIdentity() { (*Fp12)(z).SetOne() } 14 func (z URoot) IsEqual(x *URoot) int { return (Cyclo6)(z).IsEqual((*Cyclo6)(x)) } 15 func (z URoot) IsIdentity() int { i := &URoot{}; i.SetIdentity(); return z.IsEqual(i) } 16 func (z *URoot) Exp(x *URoot, n []byte) { (*Cyclo6)(z).exp((*Cyclo6)(x), n) } 17 func (z *URoot) Mul(x, y *URoot) { (*Cyclo6)(z).Mul((*Cyclo6)(x), (*Cyclo6)(y)) } 18 func (z *URoot) Sqr(x *URoot) { (*Cyclo6)(z).Sqr((*Cyclo6)(x)) } 19 func (z *URoot) Inv(x *URoot) { (*Cyclo6)(z).Inv((*Cyclo6)(x)) }