Navigation

  • index
  • next |
  • previous |
  • Arb 2.9.0-git documentation »

acb_dirichlet.h – Dirichlet L-functions, zeta functions, and related functions¶

Warning: the interfaces in this module are experimental and may change without notice.

This module will eventually allow working with Dirichlet L-functions and possibly slightly more general Dirichlet series. At the moment, it contains nothing interesting.

The code in other modules for computing the Riemann zeta function, Hurwitz zeta function and polylogarithm will possibly be migrated to this module in the future.

A Dirichlet L-function is the analytic continuation of an L-series

\[L(s,\chi) = \sum_{k=1}^\infty \frac{\chi(k)}{k^s}\]

where \(\chi(k)\) is a Dirichlet character.

Dirichlet characters¶

acb_dirichlet_group_struct¶
acb_dirichlet_group_t¶

Represents the group of Dirichlet characters mod q.

An acb_dirichlet_group_t is defined as an array of acb_dirichlet_struct of length 1, permitting it to be passed by reference.

void acb_dirichlet_group_init(acb_dirichlet_group_t G, ulong q)¶

Initializes G to the group of Dirichlet characters mod q.

This method computes the prime factorization of q and other useful invariants. It does not automatically precompute lookup tables of discrete logarithms or numerical roots of unity, and can therefore safely be called even with large q. For implementation reasons, the largest prime factor of q must not exceed \(10^{12}\) (an abort will be raised). This restriction could be removed in the future.

void acb_dirichlet_group_clear(acb_dirichlet_group_t G)¶

Clears G.

void acb_dirichlet_chi(acb_t res, const acb_dirichlet_group_t G, ulong m, ulong n, slong prec)¶

Sets res to \(\chi_m(n)\), the value of the Dirichlet character of index m evaluated at the integer n.

Requires that m is a valid index, that is, \(1 \le m \le q\) and m is coprime to q. There are no restrictions on n.

Euler products¶

void _acb_dirichlet_euler_product_real_ui(arb_t res, ulong s, const signed char * chi, int mod, int reciprocal, slong prec)¶

Sets res to \(L(s,\chi)\) where \(\chi\) is a real Dirichlet character given by the explicit list chi of character values at 0, 1, ..., mod - 1. If reciprocal is set, computes \(1 / L(s,\chi)\) (this is faster if the reciprocal can be used directly).

This function uses the Euler product, and is only intended for use when s is large. An error bound is computed via mag_hurwitz_zeta_uiui(). Since

\[\frac{1}{L(s,\chi)} = \prod_{p} \left(1 - \frac{\chi(p)}{p^s}\right) = \sum_{k=1}^{\infty} \frac{\mu(k)\chi(k)}{k^s}\]

and the truncated product gives all smooth-index terms in the series, we have

\[\left|\prod_{p < N} \left(1 - \frac{\chi(p)}{p^s}\right) - \frac{1}{L(s,\chi)}\right| \le \sum_{k=N}^{\infty} \frac{1}{k^s} = \zeta(s,N).\]

Simple functions¶

void acb_dirichlet_eta(acb_t res, const acb_t s, slong prec)¶

Sets res to the Dirichlet eta function \(\eta(s) = \sum_{k=1}^{\infty} (-1)^k / k^s = (1-2^{1-s}) \zeta(s)\), also known as the alternating zeta function. Note that the alternating character \(\{1,-1\}\) is not itself a Dirichlet character.

Logo

Table Of Contents

  • acb_dirichlet.h – Dirichlet L-functions, zeta functions, and related functions
    • Dirichlet characters
    • Euler products
    • Simple functions

Previous topic

acb_modular.h – modular forms of complex variables

Next topic

bernoulli.h – support for Bernoulli numbers

This Page

  • Show Source

Quick search

Navigation

  • index
  • next |
  • previous |
  • Arb 2.9.0-git documentation »
© Copyright 2012-2016, Fredrik Johansson. Created using Sphinx 1.5a0.