longdouble expx2l (x, sign) longdouble x; int sign;
{ longdouble u, u1, m, f;
x = fabsl (x); if (sign < 0)
x = -x;
/* Represent x as an exact multiple of M plus a residual. M is a power of 2 chosen so that exp(m * m) does not overflow
or underflow and so that |x - m| is small. */
m = MINV * floorl(M * x + 0.5L);
f = x - m;
/* x^2 = m^2 + 2mf + f^2 */
u = m * m;
u1 = 2 * m * f + f * f;
if (sign < 0)
{
u = -u;
u1 = -u1;
}
if ((u+u1) > MAXLOGL) return (INFINITYL);
/* u is exact, u1 is small. */
u = expl(u) * expl(u1); return(u);
}
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet)
¤
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 ist noch experimentell.