Documentation
¶
Overview ¶
Package polynomials provides polynomial rings and modules over algebraic structures with helpers for sampling, evaluation, and serialisation.
Index ¶
- Variables
- type ModuleValuedPolynomial
- func (p *ModuleValuedPolynomial[ME, S]) Bytes() []byte
- func (p *ModuleValuedPolynomial[ME, S]) Clone() *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) CoefficientStructure() algebra.FiniteModule[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) Coefficients() []ME
- func (p *ModuleValuedPolynomial[ME, S]) ConstantTerm() ME
- func (p *ModuleValuedPolynomial[ME, S]) Degree() int
- func (p *ModuleValuedPolynomial[ME, S]) Derivative() *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) Equal(rhs *ModuleValuedPolynomial[ME, S]) bool
- func (p *ModuleValuedPolynomial[ME, S]) Eval(at S) ME
- func (p *ModuleValuedPolynomial[ME, S]) HashCode() base.HashCode
- func (p *ModuleValuedPolynomial[ME, S]) IsConstant() bool
- func (p *ModuleValuedPolynomial[ME, S]) IsOpIdentity() bool
- func (p *ModuleValuedPolynomial[ME, S]) IsTorsionFree() bool
- func (p *ModuleValuedPolynomial[ME, S]) LeadingCoefficient() ME
- func (p *ModuleValuedPolynomial[ME, S]) MarshalCBOR() ([]byte, error)
- func (p *ModuleValuedPolynomial[ME, S]) Op(e *ModuleValuedPolynomial[ME, S]) *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) OpElement(e ME) *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) OpInv() *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) PolynomialOp(poly *Polynomial[S]) *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) ScalarOp(actor S) *ModuleValuedPolynomial[ME, S]
- func (p *ModuleValuedPolynomial[ME, S]) ScalarStructure() algebra.Ring[S]
- func (p *ModuleValuedPolynomial[ME, S]) String() string
- func (p *ModuleValuedPolynomial[ME, S]) Structure() algebra.Structure[*ModuleValuedPolynomial[ME, S]]
- func (p *ModuleValuedPolynomial[ME, S]) TryOpInv() (*ModuleValuedPolynomial[ME, S], error)
- func (p *ModuleValuedPolynomial[ME, S]) UnmarshalCBOR(data []byte) error
- type Polynomial
- func (p *Polynomial[RE]) Add(e *Polynomial[RE]) *Polynomial[RE]
- func (p *Polynomial[RE]) Bytes() []byte
- func (p *Polynomial[RE]) Clone() *Polynomial[RE]
- func (p *Polynomial[RE]) CoefficientStructure() algebra.Ring[RE]
- func (p *Polynomial[RE]) Coefficients() []RE
- func (p *Polynomial[RE]) ConstantTerm() RE
- func (p *Polynomial[RE]) Degree() int
- func (p *Polynomial[RE]) Derivative() *Polynomial[RE]
- func (p *Polynomial[RE]) Double() *Polynomial[RE]
- func (p *Polynomial[RE]) Equal(rhs *Polynomial[RE]) bool
- func (p *Polynomial[RE]) EuclideanDiv(q *Polynomial[RE]) (quot, rem *Polynomial[RE], err error)
- func (p *Polynomial[RE]) EuclideanValuation() algebra.Cardinal
- func (p *Polynomial[RE]) Eval(at RE) RE
- func (p *Polynomial[RE]) HashCode() base.HashCode
- func (p *Polynomial[RE]) IsConstant() bool
- func (p *Polynomial[RE]) IsMonic() bool
- func (p *Polynomial[RE]) IsOne() bool
- func (p *Polynomial[RE]) IsOpIdentity() bool
- func (p *Polynomial[RE]) IsTorsionFree() bool
- func (p *Polynomial[RE]) IsZero() bool
- func (p *Polynomial[RE]) LeadingCoefficient() RE
- func (p *Polynomial[RE]) MarshalCBOR() ([]byte, error)
- func (p *Polynomial[RE]) Mul(e *Polynomial[RE]) *Polynomial[RE]
- func (p *Polynomial[RE]) Neg() *Polynomial[RE]
- func (p *Polynomial[RE]) Op(e *Polynomial[RE]) *Polynomial[RE]
- func (p *Polynomial[RE]) OpInv() *Polynomial[RE]
- func (p *Polynomial[RE]) OtherOp(e *Polynomial[RE]) *Polynomial[RE]
- func (p *Polynomial[RE]) ScalarMul(s RE) *Polynomial[RE]
- func (p *Polynomial[RE]) ScalarOp(s RE) *Polynomial[RE]
- func (p *Polynomial[RE]) ScalarStructure() algebra.Ring[RE]
- func (p *Polynomial[RE]) Square() *Polynomial[RE]
- func (p *Polynomial[RE]) String() string
- func (p *Polynomial[RE]) Structure() algebra.Structure[*Polynomial[RE]]
- func (p *Polynomial[RE]) Sub(e *Polynomial[RE]) *Polynomial[RE]
- func (*Polynomial[RE]) TryDiv(e *Polynomial[RE]) (*Polynomial[RE], error)
- func (*Polynomial[RE]) TryInv() (*Polynomial[RE], error)
- func (p *Polynomial[RE]) TryNeg() (*Polynomial[RE], error)
- func (p *Polynomial[RE]) TryOpInv() (*Polynomial[RE], error)
- func (p *Polynomial[RE]) TrySub(e *Polynomial[RE]) (*Polynomial[RE], error)
- func (p *Polynomial[RE]) UnmarshalCBOR(data []byte) error
- type PolynomialModule
- func (*PolynomialModule[ME, S]) ElementSize() int
- func (m *PolynomialModule[ME, S]) FromBytes(bytes []byte) (*ModuleValuedPolynomial[ME, S], error)
- func (m *PolynomialModule[ME, S]) MultiScalarOp(scalars []S, elements []*ModuleValuedPolynomial[ME, S]) (*ModuleValuedPolynomial[ME, S], error)
- func (m *PolynomialModule[ME, S]) Name() string
- func (m *PolynomialModule[ME, S]) New(coeffs ...ME) (*ModuleValuedPolynomial[ME, S], error)
- func (m *PolynomialModule[ME, S]) OpIdentity() *ModuleValuedPolynomial[ME, S]
- func (*PolynomialModule[ME, S]) Order() algebra.Cardinal
- func (m *PolynomialModule[ME, S]) RandomModuleValuedPolynomial(degree int, prng io.Reader) (*ModuleValuedPolynomial[ME, S], error)
- func (m *PolynomialModule[ME, S]) RandomModuleValuedPolynomialWithConstantTerm(degree int, constantTerm ME, prng io.Reader) (*ModuleValuedPolynomial[ME, S], error)
- func (m *PolynomialModule[ME, S]) ScalarStructure() algebra.Structure[S]
- type PolynomialRing
- func (r *PolynomialRing[RE]) Characteristic() algebra.Cardinal
- func (*PolynomialRing[RE]) ElementSize() int
- func (r *PolynomialRing[RE]) FromBytes(inBytes []byte) (*Polynomial[RE], error)
- func (r *PolynomialRing[RE]) IsDomain() bool
- func (r *PolynomialRing[RE]) Name() string
- func (r *PolynomialRing[RE]) New(coeffs ...RE) (*Polynomial[RE], error)
- func (r *PolynomialRing[RE]) One() *Polynomial[RE]
- func (r *PolynomialRing[RE]) OpIdentity() *Polynomial[RE]
- func (*PolynomialRing[RE]) Order() algebra.Cardinal
- func (r *PolynomialRing[RE]) RandomPolynomial(degree int, prng io.Reader) (*Polynomial[RE], error)
- func (r *PolynomialRing[RE]) RandomPolynomialWithConstantTerm(degree int, constantTerm RE, prng io.Reader) (*Polynomial[RE], error)
- func (r *PolynomialRing[RE]) ScalarStructure() algebra.Structure[RE]
- func (r *PolynomialRing[RE]) Zero() *Polynomial[RE]
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrValidation = errs.New("invalid") ErrDivisionByZero = errs.New("division by zero") ErrOperationNotSupported = errs.New("operation not supported") ErrLengthMismatch = errs.New("input length mismatch") ErrFailed = errs.New("internal error") ErrSerialisationFailed = errs.New("serialisation failed") )
Functions ¶
This section is empty.
Types ¶
type ModuleValuedPolynomial ¶
type ModuleValuedPolynomial[ME algebra.ModuleElement[ME, S], S algebra.RingElement[S]] struct { // contains filtered or unexported fields }
func LiftPolynomial ¶
func LiftPolynomial[ME algebra.ModuleElement[ME, RE], RE algebra.RingElement[RE]](poly *Polynomial[RE], baseElem algebra.ModuleElement[ME, RE]) (*ModuleValuedPolynomial[ME, RE], error)
func (*ModuleValuedPolynomial[ME, S]) Bytes ¶
func (p *ModuleValuedPolynomial[ME, S]) Bytes() []byte
func (*ModuleValuedPolynomial[ME, S]) Clone ¶
func (p *ModuleValuedPolynomial[ME, S]) Clone() *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) CoefficientStructure ¶
func (p *ModuleValuedPolynomial[ME, S]) CoefficientStructure() algebra.FiniteModule[ME, S]
func (*ModuleValuedPolynomial[ME, S]) Coefficients ¶
func (p *ModuleValuedPolynomial[ME, S]) Coefficients() []ME
func (*ModuleValuedPolynomial[ME, S]) ConstantTerm ¶
func (p *ModuleValuedPolynomial[ME, S]) ConstantTerm() ME
func (*ModuleValuedPolynomial[ME, S]) Degree ¶
func (p *ModuleValuedPolynomial[ME, S]) Degree() int
func (*ModuleValuedPolynomial[ME, S]) Derivative ¶
func (p *ModuleValuedPolynomial[ME, S]) Derivative() *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) Equal ¶
func (p *ModuleValuedPolynomial[ME, S]) Equal(rhs *ModuleValuedPolynomial[ME, S]) bool
func (*ModuleValuedPolynomial[ME, S]) Eval ¶
func (p *ModuleValuedPolynomial[ME, S]) Eval(at S) ME
func (*ModuleValuedPolynomial[ME, S]) HashCode ¶
func (p *ModuleValuedPolynomial[ME, S]) HashCode() base.HashCode
func (*ModuleValuedPolynomial[ME, S]) IsConstant ¶
func (p *ModuleValuedPolynomial[ME, S]) IsConstant() bool
func (*ModuleValuedPolynomial[ME, S]) IsOpIdentity ¶
func (p *ModuleValuedPolynomial[ME, S]) IsOpIdentity() bool
func (*ModuleValuedPolynomial[ME, S]) IsTorsionFree ¶
func (p *ModuleValuedPolynomial[ME, S]) IsTorsionFree() bool
func (*ModuleValuedPolynomial[ME, S]) LeadingCoefficient ¶
func (p *ModuleValuedPolynomial[ME, S]) LeadingCoefficient() ME
func (*ModuleValuedPolynomial[ME, S]) MarshalCBOR ¶
func (p *ModuleValuedPolynomial[ME, S]) MarshalCBOR() ([]byte, error)
func (*ModuleValuedPolynomial[ME, S]) Op ¶
func (p *ModuleValuedPolynomial[ME, S]) Op(e *ModuleValuedPolynomial[ME, S]) *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) OpElement ¶
func (p *ModuleValuedPolynomial[ME, S]) OpElement(e ME) *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) OpInv ¶
func (p *ModuleValuedPolynomial[ME, S]) OpInv() *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) PolynomialOp ¶
func (p *ModuleValuedPolynomial[ME, S]) PolynomialOp(poly *Polynomial[S]) *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) ScalarOp ¶
func (p *ModuleValuedPolynomial[ME, S]) ScalarOp(actor S) *ModuleValuedPolynomial[ME, S]
func (*ModuleValuedPolynomial[ME, S]) ScalarStructure ¶
func (p *ModuleValuedPolynomial[ME, S]) ScalarStructure() algebra.Ring[S]
func (*ModuleValuedPolynomial[ME, S]) String ¶
func (p *ModuleValuedPolynomial[ME, S]) String() string
func (*ModuleValuedPolynomial[ME, S]) Structure ¶
func (p *ModuleValuedPolynomial[ME, S]) Structure() algebra.Structure[*ModuleValuedPolynomial[ME, S]]
func (*ModuleValuedPolynomial[ME, S]) TryOpInv ¶
func (p *ModuleValuedPolynomial[ME, S]) TryOpInv() (*ModuleValuedPolynomial[ME, S], error)
func (*ModuleValuedPolynomial[ME, S]) UnmarshalCBOR ¶
func (p *ModuleValuedPolynomial[ME, S]) UnmarshalCBOR(data []byte) error
type Polynomial ¶
type Polynomial[RE algebra.RingElement[RE]] struct { // contains filtered or unexported fields }
func (*Polynomial[RE]) Add ¶
func (p *Polynomial[RE]) Add(e *Polynomial[RE]) *Polynomial[RE]
func (*Polynomial[RE]) Bytes ¶
func (p *Polynomial[RE]) Bytes() []byte
func (*Polynomial[RE]) Clone ¶
func (p *Polynomial[RE]) Clone() *Polynomial[RE]
func (*Polynomial[RE]) CoefficientStructure ¶
func (p *Polynomial[RE]) CoefficientStructure() algebra.Ring[RE]
func (*Polynomial[RE]) Coefficients ¶
func (p *Polynomial[RE]) Coefficients() []RE
func (*Polynomial[RE]) ConstantTerm ¶
func (p *Polynomial[RE]) ConstantTerm() RE
func (*Polynomial[RE]) Degree ¶
func (p *Polynomial[RE]) Degree() int
func (*Polynomial[RE]) Derivative ¶
func (p *Polynomial[RE]) Derivative() *Polynomial[RE]
func (*Polynomial[RE]) Double ¶
func (p *Polynomial[RE]) Double() *Polynomial[RE]
func (*Polynomial[RE]) Equal ¶
func (p *Polynomial[RE]) Equal(rhs *Polynomial[RE]) bool
func (*Polynomial[RE]) EuclideanDiv ¶
func (p *Polynomial[RE]) EuclideanDiv(q *Polynomial[RE]) (quot, rem *Polynomial[RE], err error)
func (*Polynomial[RE]) EuclideanValuation ¶
func (p *Polynomial[RE]) EuclideanValuation() algebra.Cardinal
func (*Polynomial[RE]) Eval ¶
func (p *Polynomial[RE]) Eval(at RE) RE
func (*Polynomial[RE]) HashCode ¶
func (p *Polynomial[RE]) HashCode() base.HashCode
func (*Polynomial[RE]) IsConstant ¶
func (p *Polynomial[RE]) IsConstant() bool
func (*Polynomial[RE]) IsMonic ¶
func (p *Polynomial[RE]) IsMonic() bool
func (*Polynomial[RE]) IsOne ¶
func (p *Polynomial[RE]) IsOne() bool
func (*Polynomial[RE]) IsOpIdentity ¶
func (p *Polynomial[RE]) IsOpIdentity() bool
func (*Polynomial[RE]) IsTorsionFree ¶
func (p *Polynomial[RE]) IsTorsionFree() bool
func (*Polynomial[RE]) IsZero ¶
func (p *Polynomial[RE]) IsZero() bool
func (*Polynomial[RE]) LeadingCoefficient ¶
func (p *Polynomial[RE]) LeadingCoefficient() RE
func (*Polynomial[RE]) MarshalCBOR ¶
func (p *Polynomial[RE]) MarshalCBOR() ([]byte, error)
func (*Polynomial[RE]) Mul ¶
func (p *Polynomial[RE]) Mul(e *Polynomial[RE]) *Polynomial[RE]
func (*Polynomial[RE]) Neg ¶
func (p *Polynomial[RE]) Neg() *Polynomial[RE]
func (*Polynomial[RE]) Op ¶
func (p *Polynomial[RE]) Op(e *Polynomial[RE]) *Polynomial[RE]
func (*Polynomial[RE]) OpInv ¶
func (p *Polynomial[RE]) OpInv() *Polynomial[RE]
func (*Polynomial[RE]) OtherOp ¶
func (p *Polynomial[RE]) OtherOp(e *Polynomial[RE]) *Polynomial[RE]
func (*Polynomial[RE]) ScalarMul ¶
func (p *Polynomial[RE]) ScalarMul(s RE) *Polynomial[RE]
func (*Polynomial[RE]) ScalarOp ¶
func (p *Polynomial[RE]) ScalarOp(s RE) *Polynomial[RE]
func (*Polynomial[RE]) ScalarStructure ¶
func (p *Polynomial[RE]) ScalarStructure() algebra.Ring[RE]
func (*Polynomial[RE]) Square ¶
func (p *Polynomial[RE]) Square() *Polynomial[RE]
func (*Polynomial[RE]) String ¶
func (p *Polynomial[RE]) String() string
func (*Polynomial[RE]) Structure ¶
func (p *Polynomial[RE]) Structure() algebra.Structure[*Polynomial[RE]]
func (*Polynomial[RE]) Sub ¶
func (p *Polynomial[RE]) Sub(e *Polynomial[RE]) *Polynomial[RE]
func (*Polynomial[RE]) TryDiv ¶
func (*Polynomial[RE]) TryDiv(e *Polynomial[RE]) (*Polynomial[RE], error)
func (*Polynomial[RE]) TryInv ¶
func (*Polynomial[RE]) TryInv() (*Polynomial[RE], error)
func (*Polynomial[RE]) TryNeg ¶
func (p *Polynomial[RE]) TryNeg() (*Polynomial[RE], error)
func (*Polynomial[RE]) TryOpInv ¶
func (p *Polynomial[RE]) TryOpInv() (*Polynomial[RE], error)
func (*Polynomial[RE]) TrySub ¶
func (p *Polynomial[RE]) TrySub(e *Polynomial[RE]) (*Polynomial[RE], error)
func (*Polynomial[RE]) UnmarshalCBOR ¶
func (p *Polynomial[RE]) UnmarshalCBOR(data []byte) error
type PolynomialModule ¶
type PolynomialModule[ME algebra.ModuleElement[ME, S], S algebra.RingElement[S]] struct { // contains filtered or unexported fields }
func NewPolynomialModule ¶
func NewPolynomialModule[ME algebra.ModuleElement[ME, S], S algebra.RingElement[S]](module algebra.FiniteModule[ME, S]) (*PolynomialModule[ME, S], error)
func (*PolynomialModule[ME, S]) ElementSize ¶
func (*PolynomialModule[ME, S]) ElementSize() int
func (*PolynomialModule[ME, S]) FromBytes ¶
func (m *PolynomialModule[ME, S]) FromBytes(bytes []byte) (*ModuleValuedPolynomial[ME, S], error)
func (*PolynomialModule[ME, S]) MultiScalarOp ¶
func (m *PolynomialModule[ME, S]) MultiScalarOp(scalars []S, elements []*ModuleValuedPolynomial[ME, S]) (*ModuleValuedPolynomial[ME, S], error)
func (*PolynomialModule[ME, S]) Name ¶
func (m *PolynomialModule[ME, S]) Name() string
func (*PolynomialModule[ME, S]) New ¶
func (m *PolynomialModule[ME, S]) New(coeffs ...ME) (*ModuleValuedPolynomial[ME, S], error)
func (*PolynomialModule[ME, S]) OpIdentity ¶
func (m *PolynomialModule[ME, S]) OpIdentity() *ModuleValuedPolynomial[ME, S]
func (*PolynomialModule[ME, S]) Order ¶
func (*PolynomialModule[ME, S]) Order() algebra.Cardinal
func (*PolynomialModule[ME, S]) RandomModuleValuedPolynomial ¶
func (m *PolynomialModule[ME, S]) RandomModuleValuedPolynomial(degree int, prng io.Reader) (*ModuleValuedPolynomial[ME, S], error)
func (*PolynomialModule[ME, S]) RandomModuleValuedPolynomialWithConstantTerm ¶
func (m *PolynomialModule[ME, S]) RandomModuleValuedPolynomialWithConstantTerm(degree int, constantTerm ME, prng io.Reader) (*ModuleValuedPolynomial[ME, S], error)
func (*PolynomialModule[ME, S]) ScalarStructure ¶
func (m *PolynomialModule[ME, S]) ScalarStructure() algebra.Structure[S]
type PolynomialRing ¶
type PolynomialRing[RE algebra.RingElement[RE]] struct { // contains filtered or unexported fields }
func NewPolynomialRing ¶
func NewPolynomialRing[RE algebra.RingElement[RE]](ring algebra.FiniteRing[RE]) (*PolynomialRing[RE], error)
func (*PolynomialRing[RE]) Characteristic ¶
func (r *PolynomialRing[RE]) Characteristic() algebra.Cardinal
func (*PolynomialRing[RE]) ElementSize ¶
func (*PolynomialRing[RE]) ElementSize() int
func (*PolynomialRing[RE]) FromBytes ¶
func (r *PolynomialRing[RE]) FromBytes(inBytes []byte) (*Polynomial[RE], error)
func (*PolynomialRing[RE]) IsDomain ¶
func (r *PolynomialRing[RE]) IsDomain() bool
func (*PolynomialRing[RE]) Name ¶
func (r *PolynomialRing[RE]) Name() string
func (*PolynomialRing[RE]) New ¶
func (r *PolynomialRing[RE]) New(coeffs ...RE) (*Polynomial[RE], error)
func (*PolynomialRing[RE]) One ¶
func (r *PolynomialRing[RE]) One() *Polynomial[RE]
func (*PolynomialRing[RE]) OpIdentity ¶
func (r *PolynomialRing[RE]) OpIdentity() *Polynomial[RE]
func (*PolynomialRing[RE]) Order ¶
func (*PolynomialRing[RE]) Order() algebra.Cardinal
func (*PolynomialRing[RE]) RandomPolynomial ¶
func (r *PolynomialRing[RE]) RandomPolynomial(degree int, prng io.Reader) (*Polynomial[RE], error)
func (*PolynomialRing[RE]) RandomPolynomialWithConstantTerm ¶
func (r *PolynomialRing[RE]) RandomPolynomialWithConstantTerm(degree int, constantTerm RE, prng io.Reader) (*Polynomial[RE], error)
func (*PolynomialRing[RE]) ScalarStructure ¶
func (r *PolynomialRing[RE]) ScalarStructure() algebra.Structure[RE]
func (*PolynomialRing[RE]) Zero ¶
func (r *PolynomialRing[RE]) Zero() *Polynomial[RE]
Click to show internal directories.
Click to hide internal directories.