double bismuth(double x, double y) { double fx = fabs(x), fy = fabs(y), ret = 2.0; if ((fx < 1.0) && (fy < 1.0)) ret = powf(fabs(x + y), 1.0/3.0); else if ((fx > 1.0) || (fy > 1.0)) ret = x*x + x*y + y*y; return ret; }