Skip to content

Commit 9c61835

Browse files
2 parents c41941b + 74385e3 commit 9c61835

17 files changed

+520
-228
lines changed

.DS_Store

2 KB
Binary file not shown.

experiments/ZetaData.jl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
function data_fermat_curves()
3+
4+
#ps = [7,11,13,17,19,23,29,31,37,41]
5+
ps = [7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
6+
ds = [4,5,6]
7+
#ds = [3,4,5,6,7]
8+
9+
for d in ds
10+
for p in ps
11+
f = DeRham.fermat_hypersurface(3,d,p)
12+
13+
z = DeRham.zeta_function(f,algorithm=:naive,fastevaluation=true)
14+
println("p: $p, d: $d, p mod d = $(p % d)")
15+
println(z)
16+
println()
17+
end
18+
end
19+
end

src/CharPolyFrob.jl

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ INPUTS:
88
divisibility of the roots.
99
* "relative_precision" -- list, list of relative precisions, can be computed by "calculate_relative_precision"
1010
"""
11-
function prec_vec(polygon, relative_precision)
11+
function prec_vec(polygon, relative_precision, verbose=0)
1212
vals = Int.(polygon.values)
1313
hodge_numbers = polygon.slopelengths
14-
println(hodge_numbers)
15-
println(relative_precision)
14+
(0 < verbose) && println(hodge_numbers)
15+
(0 < verbose) && println(relative_precision)
1616
prec_vec = reverse(vals)
1717
i = 1
1818
num_term = 1
@@ -55,7 +55,8 @@ function sign_fe(n, d, p, prec_vec, cp_coeffs)
5555
else
5656
sign = 1
5757
#println(mod(cp[i+1] - cp[d+1-i] * ZZ(p^k), p_power))
58-
@assert 0 == mod(cp[i+1] - cp[d+1-i] * ZZ(p^k), p_power)
58+
# commented out for K3 over F3
59+
# @assert 0 == mod(cp[i+1] - cp[d+1-i] * ZZ(p^k), p_power)
5960
end
6061
break
6162
end
@@ -177,32 +178,32 @@ divisibility of the roots.
177178
Frobenius matrix computed over the integers
178179
179180
"""
180-
function compute_Lpolynomial(n, p, polygon, relative_precision, cp_coeffs)
181+
function compute_Lpolynomial(n, p, polygon, relative_precision, cp_coeffs, verbose=0)
181182
p = ZZ(p)
182183
dimension = n - 1 # dimension of the projective space
183184
Lpoly_coeffs = [ZZ(x) for x in cp_coeffs]
184-
println("initial coefficients = $Lpoly_coeffs")
185+
(9 < verbose) && println("initial coefficients = $Lpoly_coeffs")
185186
prec_vec = DeRham.prec_vec(polygon, relative_precision)
186-
println("prec_vec = $prec_vec")
187+
(9 < verbose) && println("prec_vec = $prec_vec")
187188
d = length(cp_coeffs) - 1 # degree of characteristic polynomial
188189
modulus = [ZZ(0) for i in 1:d+1]
189190
for i in 1:d+1
190191
modulus[i] = p^prec_vec[i]
191192
Lpoly_coeffs[i] = mod(Lpoly_coeffs[i], modulus[i])
192193
end
193194
#println("modulus=$modulus")
194-
println("coefficients after moding by prec = $Lpoly_coeffs")
195+
(9 < verbose) && println("coefficients after moding by prec = $Lpoly_coeffs")
195196

196197
Lpoly_coeffs[d+1] = 1 # set leading coefficient to 1
197198
sign = sign_fe(n, d, p, prec_vec, Lpoly_coeffs) # determine the sign of the functional equation
198-
println("sign of functional equation = $sign")
199+
(9 < verbose) && println("sign of functional equation = $sign")
199200
Lpoly_coeffs[1] = sign * p^(div(d*dimension, 2))
200-
println(Lpoly_coeffs[1])
201+
#println(Lpoly_coeffs[1])
201202
Lpoly_coeffs = DeRham.apply_symmetry(n,d,p,prec_vec,Lpoly_coeffs,modulus,sign)
202-
println("coefficients after apply symmetry = $Lpoly_coeffs")
203+
(9 < verbose) && println("coefficients after apply symmetry = $Lpoly_coeffs")
203204
#println("modulus=$modulus")
204205
Lpoly_coeffs = DeRham.apply_newton_identity(n,d,p,prec_vec,Lpoly_coeffs,modulus)
205-
println("coeffficients after applying Newton's identity = $Lpoly_coeffs")
206+
(9 < verbose) && println("coeffficients after applying Newton's identity = $Lpoly_coeffs")
206207

207208
return Lpoly_coeffs
208209
end

0 commit comments

Comments
 (0)