Epstein Zeta Library 0.5.0
Calculates the Epstein Zeta function
Loading...
Searching...
No Matches
Macros | Functions
zeta.c File Reference

Calculates the (regularized) Epstein zeta function. More...

#include <complex.h>
#include <math.h>
#include <stdbool.h>
#include <stdlib.h>
#include "crandall.h"
#include "tools.h"
#include "zeta.h"
Include dependency graph for zeta.c:

Macros

#define G_BOUND   3.2
 Smallest value z such that G(nu, z) is negligible for nu < 10.
 
#define EPS   ldexp(1, -30)
 epsilon for the cutoff around nu = dimension.
 
#define EPS_ZERO_Y   1e-64
 epsilon for the cutoff around x = 0 and y = 0
 

Functions

double complex sum_real (double nu, unsigned int dim, double lambda, const double *m, const double *x, const double *y, const int cutoffs[], double zArgBound)
 calculates the first sum in Crandall's formula.
 
double complex sum_fourier (double nu, unsigned int dim, double lambda, const double *m_invt, const double *x, const double *y, const int cutoffs[], double zArgBound)
 calculates the second sum in Crandall's formula.
 
double * vectorProj (unsigned int dim, const double *m, const double *m_invt, const double *v)
 calculate projection of vector to elementary lattice cell.
 
double complex epsteinZetaInternal (double nu, unsigned int dim, const double *m, const double *x, const double *y, double lambda, int reg)
 calculates the (regularized) Epstein Zeta function.
 

Detailed Description

Calculates the (regularized) Epstein zeta function.

Function Documentation

◆ epsteinZetaInternal()

double complex epsteinZetaInternal ( double nu,
unsigned int dim,
const double * m,
const double * x,
const double * y,
double lambda,
int reg )

calculates the (regularized) Epstein Zeta function.

Parameters
[in]nuexponent for the Epstein zeta function.
[in]dimdimension of the input vectors.
[in]mmatrix that transforms the lattice in the Epstein Zeta function.
[in]xx vector of the Epstein Zeta function.
[in]yy vector of the Epstein Zeta function.
[in]lambdarelative weight of the sums in Crandall's formula.
[in]reg0 for no regularization, > 0 for the regularization.
Returns
function value of the regularized Epstein zeta.

◆ sum_fourier()

double complex sum_fourier ( double nu,
unsigned int dim,
double lambda,
const double * m_invt,
const double * x,
const double * y,
const int cutoffs[],
double zArgBound )

calculates the second sum in Crandall's formula.

Parameters
[in]nuexponent for the Epstein zeta function.
[in]dimdimension of the input vectors.
[in]lambdaparameters that decides the weight of each sum.
[in]mmatrix that transforms the lattice in the Epstein Zeta function.
[in]xprojection of x vector to elementary lattice cell.
[in]yprojection of y vector to elementary lattice cell.
[in]cutoffshow many summands in each direction are considered.
[in]zArgBoundglobal bound on when to use the asymptotic expansion in the incomplete gamma evaluation.
Returns
helper function for the second sum in crandalls formula. Calculates sum_{k in m_invt whole_numbers ** dim without zero} G_{dim - nu}(lambda * (k + y)) X exp(-2 * PI * I * x * (k + y))

◆ sum_real()

double complex sum_real ( double nu,
unsigned int dim,
double lambda,
const double * m,
const double * x,
const double * y,
const int cutoffs[],
double zArgBound )

calculates the first sum in Crandall's formula.

Parameters
[in]nuexponent for the Epstein zeta function.
[in]dimdimension of the input vectors.
[in]lambdaparameters that decides the weight of each sum.
[in]mmatrix that transforms the lattice in the Epstein Zeta function.
[in]xprojection of x vector to elementary lattice cell.
[in]yprojection of y vector to elementary lattice cell.
[in]cutoffshow many summands in each direction are considered.
[in]zArgBoundglobal bound on when to use the asymptotic expansion in the incomplete gamma evaluation.
Returns
helper function for the first sum in crandalls formula. Calculates sum_{z in m whole_numbers ** dim} G_{nu}((z - x) / lambda)) X exp(-2 * PI * I * z * y)

◆ vectorProj()

double * vectorProj ( unsigned int dim,
const double * m,
const double * m_invt,
const double * v )

calculate projection of vector to elementary lattice cell.

Parameters
[in]dimdimension of the input vectors
[in]mmatrix that transforms the lattice in the function.
[in]m_invtinverse of m.
[in]vvector for which the projection to the elementary lattice cell is needet.
Returns
projection of v to the elementary lattice cell.