summaryrefslogtreecommitdiffstats log msg author committer range
blob: 3da7c5e3e5aa58b282af87385ed042d9289f2dc2 (plain)
 ```1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ``` ``````K. = CyclotomicField(220) omega = a^20 zeta = a^44 zeta10 = -zeta^3 alpha = [sum([zeta10^(i*j)*omega^(2^i) for i in range(10)]) for j in range(10)] powtab = [NN(10/gcd(i,10)) for i in range(10)] atab = [alpha[i]^powtab[i] for i in range(10)] atab_on_zeta_basis = [(QQ^4)((zeta.coordinates_in_terms_of_powers())(x)) for x in atab] sqrt5 = 1+2*(zeta+zeta^-1) sqrtm10m2sqrt5 = 2*(zeta-zeta^-1) sqrtm10p2sqrt5 = 2*(zeta^2-zeta^-2) nice_basis = [1, sqrt5, sqrtm10m2sqrt5, sqrtm10p2sqrt5] m = Matrix(QQ, 4, 4, [(QQ^4)((zeta.coordinates_in_terms_of_powers())(x)) for x in nice_basis]) atab_on_nice_basis = [v * m.inverse() for v in atab_on_zeta_basis] zetab = [ZZ(floor(arg(CC(N(alpha[i])/N(atab[i]^(1/powtab[i]))))/arg(zeta10)+0.5)) for i in range(10)] btab = [zeta10^zetab[i] for i in range(10)] btab_on_zeta_basis = [(QQ^4)((zeta.coordinates_in_terms_of_powers())(x)) for x in btab] btab_on_nice_basis = [v * m.inverse() for v in btab_on_zeta_basis] symbolic_basis = [1, sqrt(5), sqrt(-10-2*sqrt(5)), sqrt(-10+2*sqrt(5))] symbolic_omega = sum([sum([btab_on_nice_basis[i][j]*symbolic_basis[j] for j in range(4)])*(sum([atab_on_nice_basis[i][j]*symbolic_basis[j] for j in range(4)]))^(1/powtab[i]) for i in range(10)])/10 symbolic_cos = sum([sum([btab_on_nice_basis[i][j]*symbolic_basis[j] for j in range(4)])*(sum([atab_on_nice_basis[i][j]*symbolic_basis[j] for j in range(4)]))^(1/powtab[i]) for i in range(0,10,2)])/10 ``````