#ifdef ANSIC float igamif( float aa, float yy0 ) #else float igamif( aa, yy0 ) double aa, yy0; #endif
{ float a, y0, d, y, x0, lgm; int i;
a = aa;
y0 = yy0; /* approximation to inverse function */
d = 1.0/(9.0*a);
y = ( 1.0 - d - ndtrif(y0) * sqrtf(d) );
x0 = a * y * y * y;
lgm = lgamf(a);
for( i=0; i<10; i++ )
{ if( x0 <= 0.0 )
{
mtherr( "igamif", UNDERFLOW ); return(0.0);
}
y = igamcf(a,x0); /* compute the derivative of the function at this point */
d = (a - 1.0) * logf(x0) - x0 - lgm; if( d < -MAXLOGF )
{
mtherr( "igamif", UNDERFLOW ); goto done;
}
d = -expf(d); /* compute the step to the next approximation of x */ if( d == 0.0 ) goto done;
d = (y - y0)/d;
x0 = x0 - d; if( i < 3 ) continue; if( fabsf(d/x0) < (2.0 * MACHEPF) ) goto done;
}
done: return( x0 );
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-17)
¤
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.