_igamc_helper_series Class — pytorch Architecture
Architecture documentation for the _igamc_helper_series class in Math.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/native/Math.h lines 685–710
template <typename scalar_t>
static scalar_t _igamc_helper_series(scalar_t a, scalar_t x) {
// Compute igamc using DLMF 8.7.3 [igam1]. This is related to the series in
// _igam_helper_series but extra care is taken to avoid cancellation.
int n;
scalar_t fac = 1;
scalar_t sum = 0;
scalar_t term, logx;
static scalar_t MAXITER = 2000;
static scalar_t MACHEP = std::is_same_v<scalar_t, double> ?
1.11022302462515654042E-16 : 5.9604644775390625E-8;
for (n = 1; n < MAXITER; n++) {
fac *= -x / n;
term = fac / (a + n);
sum += term;
if (std::fabs(term) <= MACHEP * std::fabs(sum)) {
break;
}
}
logx = std::log(x);
term = -std::expm1(a * logx - std::lgamma(1+a));
return term - std::exp(a * logx - std::lgamma(a)) * sum;
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free