How do you compute the class number of a number field in Sage?
The class_number
is a method associated to a QuadraticField object:
sage: K = QuadraticField(29, 'x') sage: K.class_number() 1 sage: K = QuadraticField(65, 'x') sage: K.class_number() 2 sage: K = QuadraticField(-11, 'x') sage: K.class_number() 1 sage: K = QuadraticField(-15, 'x') sage: K.class_number() 2 sage: K.class_group() Class group of order 2 with structure C2 of Number Field in x with defining polynomial x^2 + 15 sage: K = QuadraticField(401, 'x') sage: K.class_group() Class group of order 5 with structure C5 of Number Field in x with defining polynomial x^2 - 401 sage: K.class_number() 5 sage: K.discriminant() 401 sage: K = QuadraticField(-479, 'x') sage: K.class_group() Class group of order 25 with structure C25 of Number Field in x with defining polynomial x^2 + 479 sage: K.class_number() 25 sage: K.pari_polynomial() x^2 + 479 sage: K.degree() 2
Here's an example involving a more general type of number field:
sage: x = PolynomialRing(QQ, 'x').gen() sage: K = NumberField(x^5+10*x+1, 'a') sage: K Number Field in a with defining polynomial x^5 + 10*x + 1 sage: K.degree() 5 sage: K.pari_polynomial() x^5 + 10*x + 1 sage: K.discriminant() 25603125 sage: K.class_group() Class group of order 1 with structure of Number Field in a with defining polynomial x^5 + 10*x + 1 sage: K.class_number() 1
sage: K = CyclotomicField(19) sage: K.class_number() # long time 1
ring/number_field.py
file.
See About this document... for information on suggesting changes.