| #include "cephes_mconf.h"
|
| static const float CBRT2 = 1.25992104989487316477;
|
| static const float CBRT4 = 1.58740105196819947475;
|
| if (!isfinite (x) || x == 0.0F )
|
| /* extract power of 2, leaving
|
| * mantissa between 0.5 and 1
|
| /* Approximate cube root of number between .5 and 1,
|
| * peak relative error = 9.2e-6
|
| x = (((-0.13466110473359520655053 * x
|
| + 0.54664601366395524503440 ) * x
|
| - 0.95438224771509446525043 ) * x
|
| + 1.1399983354717293273738 ) * x
|
| + 0.40238979564544752126924;
|
| /* exponent divided by 3 */
|
| /* argument less than 1 */
|
| /* multiply by power of 2 */
|
| x -= ( x - (z/(x*x)) ) * 0.333333333333;
|