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)) }