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.finitefield Namespace Reference

Classes

class  ExtendedField
 
class  ExtendedFieldElement
 
class  FiniteField
 
class  FiniteFieldElement
 
class  FinitePrimeField
 
class  FinitePrimeFieldElement
 

Functions

def fqiso (f_q, gfq)
 
def embedding (f_q1, f_q2)
 
def double_embeddings (f_q1, f_q2)
 
def _findroot (f_q1, f_q2, f_q2_subgen)
 
def affine_multiple_method (lhs, field)
 
def FiniteExtendedField (characteristic, n_or_modulus)
 

Variables

 _log = logging.getLogger('nzmath.finitefield')
 
 FinitePrimeFieldPolynomial = uniutil.FinitePrimeFieldPolynomial
 
 FiniteExtendedFieldElement = ExtendedFieldElement
 

Detailed Description

finite fields.

Function Documentation

◆ _findroot()

def nzmath.finitefield._findroot (   f_q1,
  f_q2,
  f_q2_subgen 
)
private
Find root of the defining polynomial of f_q1 in f_q2

Definition at line 889 of file finitefield.py.

References nzmath.finitefield.affine_multiple_method(), nzmath.compatibility.card(), and nzmath.bigrange.range().

Referenced by nzmath.finitefield.embedding().

◆ affine_multiple_method()

def nzmath.finitefield.affine_multiple_method (   lhs,
  field 
)
Find and return a root of the equation lhs = 0 by brute force
search in the given field.  If there is no root in the field,
ValueError is raised.

The first argument lhs is a univariate polynomial with
coefficients in a finite field.  The second argument field is
an extension field of the field of coefficients of lhs.

Affine multiple A(X) is $\sum_{i=0}^{n} a_i X^{q^i} - a$ for some
a_i's and a in the coefficient field of lhs, which is a multiple
of the lhs.

Definition at line 904 of file finitefield.py.

References nzmath.compatibility.card(), nzmath.arith1.inverse(), and nzmath.bigrange.range().

Referenced by nzmath.finitefield._findroot().

◆ double_embeddings()

def nzmath.finitefield.double_embeddings (   f_q1,
  f_q2 
)
Return embedding homomorphism functions from f_q1 and f_q2
to the composite field.

Definition at line 871 of file finitefield.py.

References nzmath.finitefield.embedding(), and nzmath.finitefield.FiniteExtendedField().

Referenced by nzmath.finitefield.ExtendedFieldElement._op().

◆ embedding()

def nzmath.finitefield.embedding (   f_q1,
  f_q2 
)
Return embedding homomorphism function from f_q1 to f_q2,
where q1 = p ** k1, q2 = p ** k2 and k1 divides k2.

Definition at line 839 of file finitefield.py.

References nzmath.finitefield._findroot(), nzmath.compatibility.card(), and nzmath.finitefield.fqiso().

Referenced by nzmath.finitefield.double_embeddings().

◆ FiniteExtendedField()

def nzmath.finitefield.FiniteExtendedField (   characteristic,
  n_or_modulus 
)
Return ExtendedField F_{p^n} or F_p[]/(modulus).

This is a convenience wrapper for backward compatibility.

Definition at line 998 of file finitefield.py.

Referenced by nzmath.finitefield.double_embeddings().

◆ fqiso()

def nzmath.finitefield.fqiso (   f_q,
  gfq 
)
Return isomorphism function of extended finite fields from f_q to gfq.

Definition at line 807 of file finitefield.py.

References nzmath.compatibility.card().

Referenced by nzmath.finitefield.embedding().

Variable Documentation

◆ _log

nzmath.finitefield._log = logging.getLogger('nzmath.finitefield')
private

Definition at line 21 of file finitefield.py.

◆ FiniteExtendedFieldElement

nzmath.finitefield.FiniteExtendedFieldElement = ExtendedFieldElement

Definition at line 1006 of file finitefield.py.

◆ FinitePrimeFieldPolynomial

nzmath.finitefield.FinitePrimeFieldPolynomial = uniutil.FinitePrimeFieldPolynomial

Definition at line 358 of file finitefield.py.