sage: x = polygen(QQ); K.<a> = NumberField(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4)
gp: K = bnfinit(y^12 - 4*y^11 + 13*y^10 - 22*y^9 - 9*y^8 - 36*y^7 + 116*y^6 - 174*y^5 + 134*y^4 - 176*y^3 + 106*y^2 + 8*y - 4, 1)
magma: R<x> := PolynomialRing(Rationals()); K<a> := NumberField(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4);
oscar: Qx, x = polynomial_ring(QQ); K, a = number_field(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4)
x12−4x11+13x10−22x9−9x8−36x7+116x6−174x5+134x4+⋯−4
sage: K.defining_polynomial()
magma: DefiningPolynomial(K);
oscar: defining_polynomial(K)
Degree: | | 12 |
|
Signature: | | [4,4] |
|
Discriminant: | |
4492085992834072576
=217⋅1711
|
magma: OK := Integers(K); Discriminant(OK);
oscar: OK = ring_of_integers(K); discriminant(OK)
|
Root discriminant: | | 35.84 | sage: (K.disc().abs())^(1./K.degree())
gp: abs(K.disc)^(1/poldegree(K.pol))
magma: Abs(Discriminant(OK))^(1/Degree(K));
oscar: (1.0 * dK)^(1/degree(K))
|
Galois root discriminant: | | 255/241711/12≈65.73125404566245
|
Ramified primes: | |
2, 17
|
gp: factor(abs(K.disc))[,1]~
magma: PrimeDivisors(Discriminant(OK));
oscar: prime_divisors(discriminant((OK)))
|
Discriminant root field: | | Q(34)
|
#Aut(K/Q): | | 2 |
|
This field is not Galois over Q. |
This is not a CM field. |
1, a, a2, a3, a4, a5, a6, a7, 21a8−21a7−21a6, 21a9−21a6, 21a10−21a7, 1025565104061a11+512782552036462637583a10+10255651040618507822553a9+512782552035503383148a8+10255651040610378115441a7−5127825520314421540230a6−40376578961435789a5+51278255203191083478a4−5127825520313663026652a3−5127825520324507776156a2−2698855537340954538a+5127825520312747442137
C2, which has order 2
sage: K.class_group().invariants()
sage: UK = K.unit_group()
magma: UK, fUK := UnitGroup(K);
oscar: UK, fUK = unit_group(OK)
Rank: | | 7
|
|
Torsion generator: | |
−1
(order 2)
| sage: UK.torsion_generator()
magma: K!f(TU.1) where TU,f is TorsionUnitGroup(K);
oscar: torsion_units_generator(OK)
|
Fundamental units: | |
512782552032156597924a11−512782552037122302696a10+5127825520323323254914a9−5127825520332058366503a8−5127825520338325439245a7−51278255203109792814009a6+4037657891371385597a5−51278255203266365831598a4+51278255203110378943949a3−51278255203348929425280a2+26988555371790537998a+512782552038230423917, 512782552034976904581a11−5127825520320369279019a10+102556510406133925114157a9−102556510406234714343525a8−10255651040658071375093a7−51278255203185261153935a6+4037657894647236693a5−51278255203927210331151a4+51278255203809999780647a3−51278255203982118768654a2+269885553735213332949a−5127825520388418111885, 1025565104066754078643a11−5127825520313298705968a10+5127825520342144854912a9−102556510406139061541489a8−5127825520342240937380a7−51278255203118273992182a6+4037657893228754997a5−51278255203492643646545a4+51278255203417503378886a3−51278255203537065000610a2+269885553713840519878a+5127825520376128348273, 512782552033558586006a11−5127825520312640858443a10+10255651040679739203821a9−102556510406119371522677a8−102556510406124569516709a7−51278255203158804599388a6+4037657892902783711a5−51278255203366493704253a4+51278255203374840904811a3−51278255203457561840488a2+26988555377171938831a+5127825520321724362643, 5127825520314277853066a11−102556510406106866654533a10+51278255203169929653610a9−51278255203262974148688a8−102556510406435492478097a7−51278255203541092179346a6+40376578912361191636a5−512782552032055319408888a4+512782552031134420632432a3−512782552031943006712373a2+269885553757572559511a+51278255203246113838893, 10255651040615797673723a11−10255651040661120782939a10+102556510406199320639711a9−51278255203164914721423a8−5127825520379928635679a7−51278255203315348647412a6+4037657896750538650a5−512782552031270578433808a4+512782552031031928706391a3−512782552031461895560269a2+269885553737863195224a+51278255203155227043941, 51278255203790026372a11+102556510406332178395a10−102556510406801643957a9+10255651040629404847539a8−5127825520344554384474a7−51278255203122826044183a6−403765789374831052a5+51278255203170876412699a4−51278255203144522535893a3−5127825520394812497400a2+26988555375769320994a−512782552037224619509
| sage: UK.fundamental_units()
magma: [K|fUK(g): g in Generators(UK)];
oscar: [K(fUK(a)) for a in gens(UK)]
|
Regulator: | | 86961.9671975
|
|
s→1lim(s−1)ζK(s)=(≈(≈(w⋅∣D∣2r1⋅(2π)r2⋅R⋅h2⋅449208599283407257624⋅(2π)4⋅86961.9671975⋅21.02316289221
# self-contained SageMath code snippet to compute the analytic class number formula
x = polygen(QQ); K.<a> = NumberField(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4)
DK = K.disc(); r1,r2 = K.signature(); RK = K.regulator(); RR = RK.parent()
hK = K.class_number(); wK = K.unit_group().torsion_generator().order();
2^r1 * (2*RR(pi))^r2 * RK * hK / (wK * RR(sqrt(abs(DK))))
# self-contained Pari/GP code snippet to compute the analytic class number formula
K = bnfinit(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4, 1);
[polcoeff (lfunrootres (lfuncreate (K))[1][1][2], -1), 2^K.r1 * (2*Pi)^K.r2 * K.reg * K.no / (K.tu[1] * sqrt (abs (K.disc)))]
/* self-contained Magma code snippet to compute the analytic class number formula */
Qx<x> := PolynomialRing(QQ); K<a> := NumberField(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4);
OK := Integers(K); DK := Discriminant(OK);
UK, fUK := UnitGroup(OK); clK, fclK := ClassGroup(OK);
r1,r2 := Signature(K); RK := Regulator(K); RR := Parent(RK);
hK := #clK; wK := #TorsionSubgroup(UK);
2^r1 * (2*Pi(RR))^r2 * RK * hK / (wK * Sqrt(RR!Abs(DK)));
# self-contained Oscar code snippet to compute the analytic class number formula
Qx, x = PolynomialRing(QQ); K, a = NumberField(x^12 - 4*x^11 + 13*x^10 - 22*x^9 - 9*x^8 - 36*x^7 + 116*x^6 - 174*x^5 + 134*x^4 - 176*x^3 + 106*x^2 + 8*x - 4);
OK = ring_of_integers(K); DK = discriminant(OK);
UK, fUK = unit_group(OK); clK, fclK = class_group(OK);
r1,r2 = signature(K); RK = regulator(K); RR = parent(RK);
hK = order(clK); wK = torsion_units_order(K);
2^r1 * (2*pi)^r2 * RK * hK / (wK * sqrt(RR(abs(DK))))
S42:D4 (as 12T260):
sage: K.galois_group(type='pari')
magma: G = GaloisGroup(K);
oscar: G, Gtx = galois_group(K); G, transitive_group_identification(G)
Fields in the database are given up to isomorphism. Isomorphic
intermediate fields are shown with their multiplicities.
sage: K.subfields()[1:-1]
gp: L = nfsubfields(K); L[2..length(b)]
magma: L := Subfields(K); L[2..#L];
oscar: subfields(K)[2:end-1]
p |
2 |
3 |
5 |
7 |
11 |
13 |
17 |
19 |
23 |
29 |
31 |
37 |
41 |
43 |
47 |
53 |
59 |
Cycle type |
R |
62 |
8,4 |
8,22 |
62 |
6,4,2 |
R |
25,12 |
8,22 |
8,4 |
43 |
42,22 |
12 |
6,32 |
4,2,16 |
4,22,14 |
6,22,12 |
In the table, R denotes a ramified prime.
Cycle lengths which are repeated in a cycle type are indicated by
exponents.
# to obtain a list of
[ei,fi] for the factorization of the ideal
pOK for
p=7 in Sage:
p = 7; [(e, pr.norm().valuation(p)) for pr,e in K.factor(p)]
\\ to obtain a list of
[ei,fi] for the factorization of the ideal
pOK for
p=7 in Pari:
p = 7; pfac = idealprimedec(K, p); vector(length(pfac), j, [pfac[j][3], pfac[j][4]])
// to obtain a list of
[ei,fi] for the factorization of the ideal
pOK for $p=7 in Magma:
p := 7; [<pr[2], Valuation(Norm(pr[1]), p)> : pr in Factorization(p*Integers(K))];
# to obtain a list of
[ei,fi] for the factorization of the ideal
pOK for
p=7 in Oscar:
p = 7; pfac = factor(ideal(ring_of_integers(K), p)); [(e, valuation(norm(pr),p)) for (pr,e) in pfac]