Package sage :: Package rings :: Module finite_field_givaro
[hide private]
[frames] | no frames]

Module finite_field_givaro



File: sage/rings/finite_field_givaro.pyx (starting at line 1)

Finite Extension Fields of cardinality up to $2^{16}$

SAGE includes the Givaro finite field library, for highly optimized
arithmetic in finite fields. 

NOTES: The arithmetic is performed by the Givaro C++ library which
uses Zech logs internally to represent finite field elements. This
implementation is the default finite extension field implementation in
SAGE for the cardinality $< 2^{16}$, as it is vastly faster than the
PARI implementation which uses polynomials to represent finite field
elements. Some functionality in this class however is implemented
using the PARI implementation.

EXAMPLES:
    sage: k = GF(5); type(k)
    <class 'sage.rings.finite_field_prime_modn.FiniteField_prime_modn'>
    sage: k = GF(5^2,'c'); type(k)
    <type 'sage.rings.finite_field_givaro.FiniteField_givaro'>
    sage: k = GF(2^16,'c'); type(k)
    <type 'sage.rings.finite_field_ntl_gf2e.FiniteField_ntl_gf2e'>
    sage: k = GF(3^16,'c'); type(k)
    <class 'sage.rings.finite_field_ext_pari.FiniteField_ext_pari'>

    sage: n = previous_prime_power(2^16 - 1)
    sage: while is_prime(n): 
    ...    n = previous_prime_power(n)
    sage: factor(n)
    251^2
    sage: k = GF(n,'c'); type(k)
    <type 'sage.rings.finite_field_givaro.FiniteField_givaro'>

AUTHORS:
     -- Martin Albrecht <malb@informatik.uni-bremen.de> (2006-06-05)
     -- William Stein (2006-12-07): editing, lots of docs, etc.
     -- Robert Bradshaw (2007-05-23): is_square/sqrt, pow.



Classes [hide private]
  FiniteField_givaro
  FiniteField_givaroElement
File: sage/rings/finite_field_givaro.pyx (starting at line 1138) An element of a (Givaro) finite field.
  FiniteField_givaro_iterator
File: sage/rings/finite_field_givaro.pyx (starting at line 1077) Iterator over FiniteField_givaro elements of degree 1.
Functions [hide private]
 
unpickle_FiniteField_givaro(...)
File: sage/rings/finite_field_givaro.pyx (starting at line 1056)...
 
unpickle_FiniteField_givaroElement(...)
File: sage/rings/finite_field_givaro.pyx (starting at line 2033)...
Variables [hide private]
  pari = Interface to the PARI C library
Function Details [hide private]

unpickle_FiniteField_givaro(...)

 
File: sage/rings/finite_field_givaro.pyx (starting at line 1056)

EXAMPLE:
   sage: k = GF(3**7, 'a')
   sage: loads(dumps(k)) == k # indirect doctest
   True

unpickle_FiniteField_givaroElement(...)

 
File: sage/rings/finite_field_givaro.pyx (starting at line 2033)

EXAMPLE:
    sage: k = GF(3**4, 'a')
    sage: e = k.random_element()
    sage: loads(dumps(e)) == e # indirect doctest
    True