polynomials

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package polynomials provides polynomial rings and modules over algebraic structures with helpers for sampling, evaluation, and serialisation.

Index

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 (*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]

Directories

Path Synopsis
interpolation
lagrange
Package lagrange provides Lagrange interpolation utilities over finite fields and modules.
Package lagrange provides Lagrange interpolation utilities over finite fields and modules.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL