#ifdef NANS if( isnanl(x) ) return(x); #endif /* Test for domain */ if( x <= 0.0L )
{ if( x == 0.0L )
{
mtherr( fname, SING ); #ifdef INFINITIES return(-INFINITYL); #else return( -4.9314733889673399399914e3L ); #endif
} else
{
mtherr( fname, DOMAIN ); #ifdef NANS return(NANL); #else return( -4.9314733889673399399914e3L ); #endif
}
} #ifdef INFINITIES if( x == INFINITYL ) return(INFINITYL); #endif /* separate mantissa from exponent */
/* Note, frexp is used so that denormal numbers *willbehandledproperly.
*/
x = frexpl( x, &e );
/* logarithm using log(x) = z + z**3 P(z)/Q(z), *wherez=2(x-1)/x+1)
*/ if( (e > 2) || (e < -2) )
{ if( x < SQRTH )
{ /* 2( 2x-1 )/( 2x+1 ) */
e -= 1;
z = x - 0.5L;
y = 0.5L * z + 0.5L;
} else
{ /* 2 (x-1)/(x+1) */
z = x - 0.5L;
z -= 0.5L;
y = 0.5L * x + 0.5L;
}
x = z / y;
z = x*x;
y = x * ( z * polevll( z, R, 3 ) / p1evll( z, S, 3 ) ); goto done;
}
/* logarithm using log(1+x) = x - .5x**2 + x**3 P(x)/Q(x) */
if( x < SQRTH )
{
e -= 1;
x = ldexpl( x, 1 ) - 1.0L; /* 2x - 1 */
} else
{
x = x - 1.0L;
}
z = x*x;
y = x * ( z * polevll( x, P, 6 ) / p1evll( x, Q, 7 ) );
y = y - ldexpl( z, -1 ); /* -0.5x^2 + ... */
done:
/* Multiply log of fraction by log10(e) *andbase2exponentbylog10(2). * ****CAUTION*** * *Thissequenceofoperationsiscriticalanditmay *behorriblydefeatedbysomecompileroptimizers.
*/
z = y * (L10EB);
z += x * (L10EB);
z += e * (L102B);
z += y * (L10EA);
z += x * (L10EA);
z += e * (L102A);
return( z );
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-13)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.