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

Module totallyreal_data



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

Enumeration of Totally Real Fields

AUTHORS:
    -- Craig Citro and John Voight (2007-11-04):
        * Type checking and other polishing.
    -- John Voight (2007-10-09):
        * Improvements: Symth bound, Lagrange multipliers for b.
    -- John Voight (2007-09-19):
        * Various optimization tweaks.
    -- John Voight (2007-09-01):
        * Initial version.



Classes [hide private]
  tr_data
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 406) This class encodes the data used in the enumeration of totally real fields.
Functions [hide private]
 
easy_is_irreducible_py(...)
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 374) Used solely for testing easy_is_irreducible.
 
hermite_constant(...)
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 52) This function returns the nth Hermite constant (typically denoted $gamma_n$), defined to be $$ \max_L \min_{0 \neq x \in L} ||x||^2 $$ where $L$ runs over all lattices of dimension $n$ and determinant $1$.
 
int_has_small_square_divisor(...)
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 289) Returns the largest a such that a^2 divides d and a has prime divisors < 200.
 
lagrange_degree_3(...)
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 182) Private function.
Variables [hide private]
  ZZx = Univariate Polynomial Ring in x over Integer Ring
  i = 45
  primessq_py = [4, 9, 25, 49, 121, 169, 289, 361, 529, 841, 961...
Function Details [hide private]

easy_is_irreducible_py(...)

 
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 374)

Used solely for testing easy_is_irreducible.

EXAMPLES:
  sage: sage.rings.number_field.totallyreal_data.easy_is_irreducible_py(pari('x^2+1'))
  1
  sage: sage.rings.number_field.totallyreal_data.easy_is_irreducible_py(pari('x^2-1'))
  0

hermite_constant(...)

 
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 52)

This function returns the nth Hermite constant (typically denoted
$gamma_n$), defined to be
$$ \max_L \min_{0 \neq x \in L} ||x||^2 $$
where $L$ runs over all lattices of dimension $n$ and determinant $1$.
For $n \leq 8$ it returns the exact value of $\gamma_n$, and for $n > 9$ 
it returns an upper bound on $\gamma_n$. 

INPUT:
n -- integer

OUTPUT:
(an upper bound for) the Hermite constant gamma_n

EXAMPLES:
sage: hermite_constant(1) # trivial one-dimensional lattice
1.0
sage: hermite_constant(2) # Eisenstein lattice
1.1547005383792515
sage: 2/sqrt(3.)
1.15470053837925
sage: hermite_constant(8) # E_8
2.0

NOTES: 
The upper bounds used can be found in [CS] and [CE].

REFERENCES:
    [CE] Henry Cohn and Noam Elkies, New upper bounds on sphere
           packings I, Ann. Math. 157 (2003), 689--714.
    [CS] J.H. Conway and N.J.A. Sloane, Sphere packings, lattices and 
           groups, 3rd. ed., Grundlehren der Mathematischen Wissenschaften,
           vol. 290, Springer-Verlag, New York, 1999.

AUTHORS:
- John Voight (2007-09-03)

int_has_small_square_divisor(...)

 
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 289)

Returns the largest a such that a^2 divides d and a has prime divisors < 200.

EXAMPLES:
    sage: from sage.rings.number_field.totallyreal_data import int_has_small_square_divisor
    sage: int_has_small_square_divisor(500)
    100
    sage: is_prime(691)
    True
    sage: int_has_small_square_divisor(691)
    1
    sage: int_has_small_square_divisor(691^2)
    1

lagrange_degree_3(...)

 
File: sage/rings/number_field/totallyreal_data.pyx (starting at line 182)

Private function.  Solves the equations which arise in the Lagrange multiplier
for degree 3: for each 1 <= r <= n-2, we solve
    r*x^i + (n-1-r)*y^i + z^i = s_i (i = 1,2,3)
where the s_i are the power sums determined by the coefficients a.
We output the largest value of z which occurs.
We use a precomputed elimination ideal.

EXAMPLES:
    sage: sage.rings.number_field.totallyreal_data.lagrange_degree_3(3,0,1,2) # random low order bits
    [-1.000000000000000000000000467750, -0.9999999999999999999999994624949]
    sage: sage.rings.number_field.totallyreal_data.lagrange_degree_3(3,6,1,2) # random low order bits
    [-5.887850847558445916683125710722, -5.887850847558445916682940422175]


Variables Details [hide private]

primessq_py

Value:
[4,
 9,
 25,
 49,
 121,
 169,
 289,
 361,
...