#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);
}
