# Base class for all number fields¶

Base class for all number fields

TESTS:

sage: k = NumberField(x^2 + 1, 'i'); k == loads(dumps(k))
True

class sage.rings.number_field.number_field_base.NumberField

Bases: sage.rings.ring.Field

Base class for all number fields.

OK(*args, **kwds)

Synomym 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

is_finite()

Return False since number fields are not finite.

EXAMPLES:

sage: z = polygen(QQ)
sage: K.<theta, beta> = NumberField([z^3 - 3, z^2 + 1])
sage: K.is_finite()
False
sage: K.order()
+Infinity

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, which is a bound B so that every integral ideal is equivalent modulo principal fractional ideals to an integral ideal of norm at most B.

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)

Synomym for self.maximal_order(...).

EXAMPLES:

sage: K.<a> = NumberField(x^2 + 1)
sage: K.ring_of_integers()
Maximal Order 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
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


#### Previous topic

Algebraic Number Fields

Number Fields