Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: lfuncheckfeq Section: l_functions C-Name: lfuncheckfeq Prototype: lGDGb Help: lfuncheckfeq(L,{t}): given an L-function (Lmath, Ldata or Linit), check whether the functional equation is satisfied. If the function has poles, the polar part must be specified. The program returns a bit accuracy which should be a large negative value close to the current bit accuracy. If t is given, it checks the functional equation for the theta function at t and 1/t. Doc: Given the data attached to an $L$-function (\kbd{Lmath}, \kbd{Ldata} or \kbd{Linit}), check whether the functional equation is satisfied. This is most useful for an \kbd{Ldata} constructed ``by hand'', via \kbd{lfuncreate}, to detect mistakes. If the function has poles, the polar part must be specified. The routine returns a bit accuracy $b$ such that $|w - \hat{w}| < 2^{b}$, where $w$ is the root number contained in \kbd{data}, and $$\hat{w} = \theta(1/t) t^{-k} / \overline{\theta}(t)$$ is a computed value derived from the assumed functional equation. If the parameter $t$ is omitted, we try random samples on the real line in the segment $[1, 1.25]$. Of course, a large negative value of the order of \kbd{realbitprecision} is expected but if $\overline{\theta}$ is very small all over the sampled segment, you should first increase \kbd{realbitprecision} by $-\log_2 |\overline{\theta}(t)|$ (which is positive if $\theta$ is small) to get a meaningful result. If $t$ is given, it should be close to the unit disc for efficiency and such that $\overline{\theta}(t) \neq 0$. We then check the functional equation at that $t$. Again, if $\overline{\theta}(t)$ is very small, you should first increase \kbd{realbitprecision} to get a useful result. \bprog ? \pb 128 \\ 128 bits of accuracy ? default(realbitprecision) %1 = 128 ? L = lfuncreate(1); \\ Riemann zeta ? lfuncheckfeq(L) %3 = -124 @eprog\noindent i.e. the given data is consistent to within 4 bits for the particular check consisting of estimating the root number from all other given quantities. Checking away from the unit disc will either fail with a precision error, or give disappointing results (if $\theta(1/t)$ is large it will be computed with a large absolute error) \bprog ? lfuncheckfeq(L, 2+I) %4 = -115 ? lfuncheckfeq(L,10) *** at top-level: lfuncheckfeq(L,10) *** ^------------------ *** lfuncheckfeq: precision too low in lfuncheckfeq. @eprog