Calculates the summand function G and related functions in Crandall's formula.
More...
#include "gamma.h"
#include "tools.h"
#include <complex.h>
#include <float.h>
#include <math.h>
|
|
#define | EPS ldexp(1, -30) |
| | epsilon for the cutoff around nu = dimension.
|
| |
|
#define | EPS_ZERO_PIY (M_PI * 1e-64) |
| | epsilon for the cutoff around arguments of the crandall function around zero.
|
| |
|
| double complex | crandall_gReg_nuequalsdimplus2k (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 s, 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) |
| | Calculates the upper Crandall function.
|
| |
Calculates the summand function G and related functions in Crandall's formula.
◆ 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.
calculates bounds on when to use asymptotic expansion of the upper incomplete gamma function, depending on the value of nu.
- Parameters
-
| [in] | nu | exponent 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 ) |
Calculates the upper Crandall function.
- Parameters
-
| [in] | dim | dimension of the input vectors. |
| [in] | nu | exponent of the regularized Epstein zeta function. |
| [in] | z | input vector of the function. |
| [in] | prefactor | prefactor of the vector, e. g. lambda or 1/lambda in Crandall's formula |
| [in] | zArgBound | minimum value of pi * z**2, when to use the fast asymptotic expansion in the calculation of the Crandall function. |
- Returns
- upperGamma(nu / 2,pi prefactor * z**2) / (pi * prefactor z**2)^(nu / 2).
◆ 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] | dim | dimension of the input vectors. |
| [in] | s | dimension minus exponent of the regularized Epstein zeta function, that is d - nu. |
| [in] | z | input vector of the function. |
| [in] | prefactor | prefactor 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_nuequalsdimplus2k()
| double complex crandall_gReg_nuequalsdimplus2k |
( |
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] | s | dimension minus exponent of the regularized Epstein zeta function. |
| [in] | arg | input of the function. |
| [in] | k | k = - s / 2 = (nu - d) / 2 as an integer. |
| [in] | lambda | scaling parameter of crandalls formula. |
- Returns
- arg ** (- s / 2) * (gamma(s / 2, arg) + ((-1)^k / k! ) * (log(arg) - log(lambda ** 2)).