123456789101112131415161718192021222324252627282930 |
- #include <u.h>
- #include <libc.h>
- #include "map.h"
- double
- cubrt(double a)
- {
- double x,y,x1;
- if(a==0)
- return(0.);
- y = 1;
- if(a<0) {
- y = -y;
- a = -a;
- }
- while(a<1) {
- a *= 8;
- y /= 2;
- }
- while(a>1) {
- a /= 8;
- y *= 2;
- }
- x = 1;
- do {
- x1 = x;
- x = (2*x1+a/(x1*x1))/3;
- } while(fabs(x-x1)>10.e-15);
- return(x*y);
- }
|