# Number fields¶

class sage.categories.number_fields.NumberFields(s=None)

The category of number fields.

EXAMPLES:

We create the category of number fields:

sage: C = NumberFields()
sage: C
Category of number fields


By definition, it is infinite:

sage: NumberFields().Infinite() is NumberFields()
True


Notice that the rational numbers $$\QQ$$ are considered as an object in this category:

sage: RationalField() in C
True


However, we can define a degree 1 extension of $$\QQ$$, which is of course also in this category:

sage: x = PolynomialRing(RationalField(), 'x').gen()
sage: K = NumberField(x - 1, 'a'); K
Number Field in a with defining polynomial x - 1
sage: K in C
True


Number fields all lie in this category, regardless of the name of the variable:

sage: K = NumberField(x^2 + 1, 'a')
sage: K in C
True

class ElementMethods

Bases: object

class ParentMethods

Bases: object

zeta_function(prec=53, max_imaginary_part=0, max_asymp_coeffs=40, algorithm='pari')

Return the Dedekind zeta function of this number field.

Actually, this returns an interface for computing with the Dedekind zeta function $$\zeta_F(s)$$ of the number field $$F$$.

INPUT:

• prec – optional integer (default 53) bits precision

• max_imaginary_part – optional real number (default 0)

• max_asymp_coeffs – optional integer (default 40)

• algorithm – optional (default “pari”) either “gp” or “pari”

OUTPUT: The zeta function of this number field.

If algorithm is “gp”, this returns an interface to Tim Dokchitser’s gp script for computing with L-functions.

If algorithm is “pari”, this returns instead an interface to Pari’s own general implementation of L-functions.

EXAMPLES:

sage: K.<a> = NumberField(ZZ['x'].0^2+ZZ['x'].0-1)
sage: Z = K.zeta_function(); Z
PARI zeta function associated to Number Field in a with defining polynomial x^2 + x - 1
sage: Z(-1)
0.0333333333333333
sage: L.<a, b, c> = NumberField([x^2 - 5, x^2 + 3, x^2 + 1])
sage: Z = L.zeta_function()
sage: Z(5)
1.00199015670185


Using the algorithm “pari”:

sage: K.<a> = NumberField(ZZ['x'].0^2+ZZ['x'].0-1)
sage: Z = K.zeta_function(algorithm="pari")
sage: Z(-1)
0.0333333333333333
sage: L.<a, b, c> = NumberField([x^2 - 5, x^2 + 3, x^2 + 1])
sage: Z = L.zeta_function(algorithm="pari")
sage: Z(5)
1.00199015670185

super_categories()

EXAMPLES:

sage: NumberFields().super_categories()
[Category of infinite fields]