NZMATH  1.2.0
About: NZMATH is a Python based number theory oriented calculation system.
  Fossies Dox: NZMATH-1.2.0.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider Class Reference
Inheritance diagram for nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider:
[legend]
Collaboration diagram for nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider:
[legend]

Public Member Functions

def __init__ (self, ch)
 
def __pow__ (self, index, mod=None)
 
def mod_pow (self, polynom, index)
 
def squarefree_decomposition (self)
 
def pthroot (self)
 
def distinct_degree_factorization (self)
 
def split_same_degrees (self, degree)
 
def factor (self)
 
def isirreducible (self)
 

Public Attributes

 ch
 

Private Member Functions

def _small_index_mod_pow (self, polynom, index)
 

Detailed Description

PrimeCharacteristicFunctionsProvider provides efficient powering
and factorization for polynomials whose coefficient ring has prime
characteristic.

- A client of this mix-in class should use DivisionProvider also.
- A client of this mix-in class must have attribute ch, which
  stores the prime characteristic of the coefficient ring.

Definition at line 732 of file uniutil.py.

Constructor & Destructor Documentation

◆ __init__()

def nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider.__init__ (   self,
  ch 
)
Do not instantiate PrimeCharacteristicFunctionsProvider.
This initializer should be called from descendant.

Definition at line 742 of file uniutil.py.

References nzmath.matrix.Matrix.__class__, nzmath.matrix.RingMatrix.__class__, nzmath.matrix.RingSquareMatrix.__class__, nzmath.matrix.FieldMatrix.__class__, nzmath.matrix.MatrixRing.__class__, and nzmath.matrix.Subspace.__class__.

Member Function Documentation

◆ __pow__()

◆ _small_index_mod_pow()

◆ distinct_degree_factorization()

def nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider.distinct_degree_factorization (   self)
Return the distinct degree factorization of the polynomial.
The return value is a dict whose keys are integers and values
are corresponding product of factors of the degree.  For
example, if A = A1 * A2, and all irreducible factors of A1
having degree 1 and all irreducible factors of A2 having
degree 2, then the result is:
  {1: A1, 2: A2}.

The given polynomial must be square free, and its coefficient
ring must be a finite field.

Definition at line 884 of file uniutil.py.

References nzmath.compatibility.card(), nzmath.poly.formalsum.FormalSumContainerInterface.itercoefficients(), nzmath.poly.univar.BasicPolynomial.itercoefficients(), nzmath.poly.formalsum.DictFormalSum.itercoefficients(), nzmath.poly.multivar.BasicPolynomial.itercoefficients(), nzmath.poly.formalsum.ListFormalSum.itercoefficients(), nzmath.poly.univar.SortedPolynomial.itercoefficients(), nzmath.poly.multiutil.OrderProvider.order, nzmath.poly.uniutil.OrderProvider.order, nzmath.finitefield.FiniteField.order(), nzmath.finitefield.FinitePrimeFieldElement.order(), nzmath.permute.Permute.order(), nzmath.group.GroupElement.order(), nzmath.permute.ExPermute.order(), and nzmath.elliptic.ECoverGF.order().

◆ factor()

def nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider.factor (   self)
Factor the polynomial.

The returned value is a list of tuples whose first component
is a factor and second component is its multiplicity.

Definition at line 969 of file uniutil.py.

References nzmath.poly.ratfunc.RationalFunction.getRing(), nzmath.poly.multiutil.RingElementProvider.getRing(), nzmath.real.Real.getRing(), nzmath.finitefield.FinitePrimeFieldElement.getRing(), nzmath.imaginary.Complex.getRing(), nzmath.intresidue.IntegerResidueClass.getRing(), nzmath.ring.RingElement.getRing(), nzmath.poly.multiutil.RingPolynomial.getRing(), nzmath.finitefield.ExtendedFieldElement.getRing(), nzmath.rational.Rational.getRing(), nzmath.algfield.BasicAlgNumber.getRing(), nzmath.ring.ResidueClass.getRing(), nzmath.algfield.MatAlgNumber.getRing(), nzmath.rational.Integer.getRing(), nzmath.matrix.RingSquareMatrix.getRing(), nzmath.poly.uniutil.RingElementProvider.getRing(), nzmath.poly.uniutil.RingPolynomial.getRing(), nzmath.poly.multiutil.OrderProvider.order, nzmath.poly.uniutil.OrderProvider.order, nzmath.finitefield.FiniteField.order(), nzmath.finitefield.FinitePrimeFieldElement.order(), nzmath.permute.Permute.order(), nzmath.group.GroupElement.order(), nzmath.permute.ExPermute.order(), nzmath.elliptic.ECoverGF.order(), nzmath.poly.uniutil.DivisionProvider.scalar_exact_division(), nzmath.poly.uniutil.PseudoDivisionProvider.scalar_exact_division(), and nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider.squarefree_decomposition().

Referenced by nzmath.squarefree.SquarefreeDecompositionMethod.generate().

◆ isirreducible()

◆ mod_pow()

◆ pthroot()

def nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider.pthroot (   self)

◆ split_same_degrees()

◆ squarefree_decomposition()

def nzmath.poly.uniutil.PrimeCharacteristicFunctionsProvider.squarefree_decomposition (   self)

Member Data Documentation

◆ ch


The documentation for this class was generated from the following file: