Base class for all number fields#

class sage.rings.number_field.number_field_base.NumberField#

Bases: Field

Base class for all number fields.

OK(*args, **kwds)#

Synonym for self.maximal_order(...).

EXAMPLES:

sage: NumberField(x^3 - 2,'a').OK()
Maximal Order in Number Field in a with defining polynomial x^3 - 2
bach_bound()#

Return the Bach bound associated to this number field.

Assuming the General Riemann Hypothesis, this is a bound B so that every integral ideal is equivalent modulo principal fractional ideals to an integral ideal of norm at most B.

OUTPUT:

symbolic expression or the Integer 1

EXAMPLES:

We compute both the Minkowski and Bach bounds for a quadratic field, where the Minkowski bound is much better:

sage: K = QQ[sqrt(5)]
sage: K.minkowski_bound()
1/2*sqrt(5)
sage: K.minkowski_bound().n()
1.11803398874989
sage: K.bach_bound()
12*log(5)^2
sage: K.bach_bound().n()
31.0834847277628

We compute both the Minkowski and Bach bounds for a bigger degree field, where the Bach bound is much better:

sage: K = CyclotomicField(37)
sage: K.minkowski_bound().n()
7.50857335698544e14
sage: K.bach_bound().n()
191669.304126267
The bound of course also works for the rational numbers:

sage: QQ.minkowski_bound() 1

degree()#

Return the degree of this number field.

EXAMPLES:

sage: NumberField(x^3 + 9, 'a').degree()
3
discriminant()#

Return the discriminant of this number field.

EXAMPLES:

sage: NumberField(x^3 + 9, 'a').discriminant()
-243
is_absolute()#

Return True if self is viewed as a single extension over Q.

EXAMPLES:

sage: K.<a> = NumberField(x^3+2)
sage: K.is_absolute()
True
sage: y = polygen(K)
sage: L.<b> = NumberField(y^2+1)
sage: L.is_absolute()
False
sage: QQ.is_absolute()
True
maximal_order()#

Return the maximal order, i.e., the ring of integers of this number field.

EXAMPLES:

sage: NumberField(x^3 - 2,'b').maximal_order()
Maximal Order in Number Field in b with defining polynomial x^3 - 2
minkowski_bound()#

Return the Minkowski bound associated to this number field.

This is a bound B so that every integral ideal is equivalent modulo principal fractional ideals to an integral ideal of norm at most B.

See also

bach_bound()

OUTPUT:

symbolic expression or Rational

EXAMPLES:

The Minkowski bound for \(\QQ[i]\) tells us that the class number is 1:

sage: K = QQ[I]
sage: B = K.minkowski_bound(); B
4/pi
sage: B.n()
1.27323954473516

We compute the Minkowski bound for \(\QQ[\sqrt[3]{2}]\):

sage: K = QQ[2^(1/3)]
sage: B = K.minkowski_bound(); B
16/3*sqrt(3)/pi
sage: B.n()
2.94042077558289
sage: int(B)
2

We compute the Minkowski bound for \(\QQ[\sqrt{10}]\), which has class number 2:

sage: K = QQ[sqrt(10)]
sage: B = K.minkowski_bound(); B
sqrt(10)
sage: int(B)
3
sage: K.class_number()
2

We compute the Minkowski bound for \(\QQ[\sqrt{2}+\sqrt{3}]\):

sage: K.<y,z> = NumberField([x^2-2, x^2-3])
sage: L.<w> = QQ[sqrt(2) + sqrt(3)]
sage: B = K.minkowski_bound(); B
9/2
sage: int(B)
4
sage: B == L.minkowski_bound()
True
sage: K.class_number()
1

The bound of course also works for the rational numbers:

sage: QQ.minkowski_bound()
1
ring_of_integers(*args, **kwds)#

Synonym for self.maximal_order(...).

EXAMPLES:

sage: K.<a> = NumberField(x^2 + 1)
sage: K.ring_of_integers()
Gaussian Integers in Number Field in a with defining polynomial x^2 + 1
signature()#

Return (r1, r2), where r1 and r2 are the number of real embeddings and pairs of complex embeddings of this field, respectively.

EXAMPLES:

sage: NumberField(x^3 - 2, 'a').signature()
(1, 1)
sage.rings.number_field.number_field_base.is_NumberField(x)#

Return True if x is of number field type.

EXAMPLES:

sage: from sage.rings.number_field.number_field_base import is_NumberField
sage: is_NumberField(NumberField(x^2+1,'a'))
True
sage: is_NumberField(QuadraticField(-97,'theta'))
True
sage: is_NumberField(CyclotomicField(97))
True

Note that the rational numbers QQ are a number field.:

sage: is_NumberField(QQ)
True
sage: is_NumberField(ZZ)
False