Epstein Zeta Library 0.5.0
Calculates the Epstein Zeta function
Loading...
Searching...
No Matches
Functions
crandall.h File Reference

Calculates the summand function G and related functions in Crandall's formula. More...

#include <complex.h>
Include dependency graph for crandall.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

double complex crandall_gReg_nuequalsdim (double s, double arg, double k, double lambda)
 Calculates the regularization of the zero summand in the second sum in Crandall's formula in the special case of nu = dim + 2k for some natural number k.
 
double complex crandall_gReg (unsigned int dim, double nu, const double *z, double prefactor)
 Calculates the regularization of the zero summand in the second sum in Crandall's formula.
 
double assignzArgBound (double nu)
 calculates bounds on when to use asymptotic expansion of the upper incomplete gamma function, depending on the value of nu.
 
double complex crandall_g (unsigned int dim, double nu, const double *z, double prefactor, double zArgBound)
 Assumes x and y to be in the respective elementary lattice cell. Multiply with exp(2 * PI * i * x * y) to get the second sum in Crandall's.
 

Detailed Description

Calculates the summand function G and related functions in Crandall's formula.

Function Documentation

◆ assignzArgBound()

double assignzArgBound ( double nu)

calculates bounds on when to use asymptotic expansion of the upper incomplete gamma function, depending on the value of nu.

Parameters
[in]nuexponent of the regularized Epstein zeta function.
Returns
minimum value of z, when to use the fast asymptotic expansion in the calculation of the incomplete upper gamma function upperGamma(nu, z).

◆ crandall_g()

double complex crandall_g ( unsigned int dim,
double nu,
const double * z,
double prefactor,
double zArgBound )

Assumes x and y to be in the respective elementary lattice cell. Multiply with exp(2 * PI * i * x * y) to get the second sum in Crandall's.

Parameters
[in]dimdimension of the input vectors.
[in]nuexponent of the regularized Epstein zeta function.
[in]zinput vector of the function
[in]prefactorprefactor of the vector, e. g. lambda or 1/lambda in Crandall's formula
Returns
upperGamma(nu/2,pi prefactor * z**2) / (pi * prefactor z**2)^(nu / 2) in

◆ crandall_gReg()

double complex crandall_gReg ( unsigned int dim,
double s,
const double * z,
double prefactor )

Calculates the regularization of the zero summand in the second sum in Crandall's formula.

Parameters
[in]dimdimension of the input vectors
[in]sdimension minus exponent of the regularized Epstein zeta function, that is d - nu
[in]zinput vector of the function
[in]prefactorprefactor of the vector, e. g. lambda
Returns
- gamma(s/2) * gammaStar(s/2, pi * prefactor * z**2), where gammaStar is the twice regularized lower incomplete gamma function if s is not equal to - 2k and (pi * prefactor * y ** 2) ** (- s / 2) (gamma(s / 2, pi * prefactor * z ** 2) + ((-1)^k / k! ) * (log(pi * y ** 2) - log(prefactor ** 2))) if s is equal to - 2k for non negative natural number k

◆ crandall_gReg_nuequalsdim()

double complex crandall_gReg_nuequalsdim ( double s,
double arg,
double k,
double lambda )

Calculates the regularization of the zero summand in the second sum in Crandall's formula in the special case of nu = dim + 2k for some natural number k.

Parameters
[in]sdimension minus exponent of the regularized Epstein zeta function.
[in]arginput of the function
[in]kk = - s / 2 = (nu - d) / 2 as an integer
[in]lambdascaling parameter of crandalls formula
Returns
arg ** (- s / 2) * (gamma(s / 2, arg) + ((-1)^k / k! ) * (log(arg) - log(lambda ** 2))