Advanced Operations

Hecke Operators

Hecke operators represent the hear of the study of modular forms modulo two.

Main.ModularFormsModuloTwo.HeckeMethod
Hecke(p, f)

Compute Tp|f (with mathematical accuracy).

Example

julia> d=delta()
julia> disp(d)
MF mod 2 (coef to 1000) - 01000000010000000000000001000000000000000000000001...

julia> disp(Hecke(2, d))
MF mod 2 (coef to 500) - 00100000000000000010000000000000000000000000000000...

julia> disp(Hecke(3, d))
MF mod 2 (coef to 333) - 00000000000000000000000000000000000000000000000000...
source

Recognizer

The functions defined in this section allow the user to switch between the two representations of modular forms modulo two: (capped) infinite q-series and finite Δ-series.

Main.ModularFormsModuloTwo.drop_errorFunction
drop_error(f, precalculated, LENGTH)

Drops the numerical error that f might have (as long as this error isn't too large).

Example

julia> precalculated = loadFormListBinary(10^2, 10^6)
julia> f = delta(10^6) + delta_k(3, 10^6)
julia> disp(f)
MF mod 2 (coef to 1000000) - 01010000010100000001000001000000000000000001000001...

julia> T11f = MFmod2.Hecke(11, f)
julia> disp(T11f)
MF mod 2 (coef to 90909) - 01000000010000000000000001000000000000000000000001...

julia> T11f_exact = drop_error(T11f, precalculated)
julia> disp(T11f_exact)
MF mod 2 (coef to 1000000) - 01000000010000000000000001000000000000000000000001...
source
Main.ModularFormsModuloTwo.to_qFunction
to_q(df, precalculated)

Compute the q-series representation of f (using precalculated).

Example

julia> precalculated = loadFormListBinary(10^2, 10^6)
julia> df = Delta_k(5)
julia> disp(df)
MF mod 2 (coef to 100) - 00000100000000000000000000000000000000000000000000...

julia> f = to_q(df, precalculated)
julia> disp(f)
MF mod 2 (coef to 1000000) - 00000100000001000000000000000100000001000000010000...
source
Main.ModularFormsModuloTwo.to_ΔFunction
to_Δ(f, precalculated)
-- or --
to_delta(f, precalculated)

Compute the Δ-series representation of f (using precalculated).

Example

julia> precalculated = loadFormListBinary(10^2, 10^6)
julia> f = delta(10^6) + delta_k(3, 10^6)
julia> disp(f)
MF mod 2 (coef to 1000000) - 01010000010100000001000001000000000000000001000001...

julia> df = to_delta(f, precalculated)
100-element SparseArrays.SparseVector{Int8,Int64} with 2 stored entries:
  [2  ]  =  1
  [4  ]  =  1

julia> disp(df)
MF mod 2 (coef to 100) - 01010000000000000000000000000000000000000000000000...
source