absx =
ABS(x);
55x/6227020800.))))))))))));
61 #define DBL_EPSILON 2.2204460492503131e-16 73 for(
i=0, sum=0., y=x;
i<500 ; ) {
105 if(order > 0 && u[0] == 0.) {
108 for(
i= 1;
i<= order;
i++)
109y[
i] = u[
i] / u[0];
123 value= y[2] - y[1] * y[1];
126 value= y[3] - 3. * y[2] * y[1] + 2. * y[1] * y[1] * y[1];
129 value= y[4] - 4. * y[3] * y[1] - 3. * y[2] * y[2]
130+ 12. * y[2] * (
tmp= y[1] * y[1]);
1414.694580336184385e+04,
142-1.560605207784446e+05,
1432.065049568014106e+05,
144-1.388934775095388e+05,
1455.031796415085709e+04,
146-9.601592329182778e+03,
1478.785855930895250e+02,
148-3.155153906098611e+01,
1492.908143421162229e-01,
150-2.319827630494973e-04,
1511.251639670050933e-10
173tx = xx + xgamma_dim;
174 for(
i= 0;
i<= order; ++
i) {
214* (1. + (order - 1) * xgamma_dim /
tmp);
255 if( (x < -0.1 && (ceil(x) == x || sx < 2.*
DBL_EPSILON))
264 for(k = 1; k <= order; k++) {
2981., 1., 2., 6., 24., 120., 720., 5040., 40320., 362880., 3628800.,
29939916800., 479001600., 6227020800., 87178291200., 1307674368000.,
30020922789888000., 355687428096000., 6402373705728000.,
301121645100408832000., 2432902008176640000., 51090942171709440000.,
3021124000727777607680000., 25852016738884976640000.,
303620448401733239439360000., 15511210043330985984000000.,
304403291461126605635584000000., 10888869450418352160768000000.,
305304888344611713860501504000000., 8841761993739701954543616000000.,
306265252859812191058636308480000000., 8222838654177922817725562880000000.,
307263130836933693530167218012160000000.,
3088683317618811886495518194401280000000.,
309295232799039604140847618609643520000000.
342 #define F(x) ((*f)((x), fargs)) 353 Int4epsit_cnt = 0, epsck;
359itmin =
MAX(1, itmin);
363epsit =
MAX(epsit, 1);
364epsit =
MIN(epsit, 3);
366epsck = itmin - epsit;
371 if(
ABS(x) == HUGE_VAL)
374 if(
ABS(y) == HUGE_VAL)
376romb[0] = 0.5 * h * (x + y);
377 for(
i= 1;
i<
MAX_DIAGS; ++
i, npts *= 2, h *= 0.5) {
380 for(k = 0, x = p+0.5*h; k < npts; k++, x += h) {
382 if(
ABS(y) == HUGE_VAL)
386romb[
i] = 0.5 * (romb[
i-1] + h*sum);
389 for(
n= 4, j =
i-1; j >= 0;
n*= 4, --j)
390romb[j] = (
n*romb[j+1] - romb[j]) / (
n-1);
393 if(
ABS(romb[1] - romb[0]) > eps *
ABS(romb[0])) {
398 if(
i>= itmin && epsit_cnt >= epsit)
439x += (x >= 0. ? 0.5 : -0.5);
486 # ifdef IS_BIG_ENDIAN 487 # define WORDS_BIGENDIAN 1 491 #define NCBI_Erf BLAST_Erf 492 #define NCBI_ErfC BLAST_ErfC 493 #define NCBI_INCLUDE_NCBI_ERF_C 1int32_t Int4
4-byte (32-bit) signed integer
const GenericPointer< typename T::ValueType > T2 value
static double s_LogDerivative(Int4 order, double *u)
evaluate a specified-order derivative of ln(f(x))
double BLAST_Log1p(double x)
Natural logarithm with shifted input.
#define F(x)
Make a parametrized function appear to have only one variable.
static const double kPrecomputedFactorial[]
Tabulated values of the first few factorials.
static double s_PolyGamma(double x, Int4 order)
Compute, to 10-digit accuracy, a specified order derivative of ln(abs(gamma(x))).
static double _default_gamma_coef[]
auxiliary values for computation of derivative of ln(gamma(x))
Int4 BLAST_Gdb3(Int4 *a, Int4 *b, Int4 *c)
Divide 3 numbers by their greatest common divisor.
long BLAST_Nint(double x)
Nearest integer.
double BLAST_Powi(double x, Int4 n)
Integral power of x.
#define MAX_DIAGS
Maximum number of diagonals in the Romberg array.
#define DBL_EPSILON
size of the next series term that indicates convergence in the log and polygamma functions
static double s_GeneralLnGamma(double x, Int4 order)
Compute a specified-order derivative of ln(gamma(x)) evaluated at some point x.
double BLAST_Expm1(double x)
Exponentional with base e.
double BLAST_LnFactorial(double x)
Logarithm of the factorial.
double BLAST_RombergIntegrate(double(*f)(double, void *), void *fargs, double p, double q, double eps, Int4 epsit, Int4 itmin)
Romberg numerical integrator.
double BLAST_Factorial(Int4 n)
Factorial function.
static double s_LnGamma(double x)
Compute ln(abs(gamma(x))) to 10-digit accuracy.
Int4 BLAST_Gcd(Int4 a, Int4 b)
Greatest common divisor.
double BLAST_LnGammaInt(Int4 n)
log(gamma(n)), integral n
Prototypes for portable math library (ported from C Toolkit)
#define POLYGAMMA_ORDER_MAX
Number of derivatives of polygamma(x) to carry in gamma-related computations for non-integral values ...
#define NCBIMATH_LN2
Natural log(2)
#define LOGDERIV_ORDER_MAX
Number of derivatives of log(x) to carry in gamma-related computations.
#define NCBIMATH_LNPI
Natural log(PI)
#define NCBIMATH_PI
value of pi is only used in gamma-related computations
#define DIM(A)
dimension of an array.
#define MIN(a, b)
returns smaller of a and b.
#define ABS(a)
returns absolute value of a (|a|)
#define MAX(a, b)
returns larger of a and b.
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4