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"
|
|
#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
|
| |
|
| 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.
|
| |
Calculates the (regularized) Epstein zeta function.
◆ 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] | nu | exponent for the Epstein zeta function. |
| [in] | dim | dimension of the input vectors. |
| [in] | m | matrix that transforms the lattice in the Epstein Zeta function. |
| [in] | x | x vector of the Epstein Zeta function. |
| [in] | y | y vector of the Epstein Zeta function. |
| [in] | lambda | relative weight of the sums in Crandall's formula. |
| [in] | reg | 0 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] | nu | exponent for the Epstein zeta function. |
| [in] | dim | dimension of the input vectors. |
| [in] | lambda | parameters that decides the weight of each sum. |
| [in] | m | matrix that transforms the lattice in the Epstein Zeta function. |
| [in] | x | projection of x vector to elementary lattice cell. |
| [in] | y | projection of y vector to elementary lattice cell. |
| [in] | cutoffs | how many summands in each direction are considered. |
| [in] | zArgBound | global 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] | nu | exponent for the Epstein zeta function. |
| [in] | dim | dimension of the input vectors. |
| [in] | lambda | parameters that decides the weight of each sum. |
| [in] | m | matrix that transforms the lattice in the Epstein Zeta function. |
| [in] | x | projection of x vector to elementary lattice cell. |
| [in] | y | projection of y vector to elementary lattice cell. |
| [in] | cutoffs | how many summands in each direction are considered. |
| [in] | zArgBound | global 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] | dim | dimension of the input vectors |
| [in] | m | matrix that transforms the lattice in the function. |
| [in] | m_invt | inverse of m. |
| [in] | v | vector for which the projection to the elementary lattice cell is needet. |
- Returns
- projection of v to the elementary lattice cell.