private static double power(double x, double y) {
		double value;
		if (y < INFINITESIMAL && y > -INFINITESIMAL) {
			value = 1.0;
		}
		else if (y - 0.5 < INFINITESIMAL && y - 0.5 > -INFINITESIMAL) {
			value = Math.sqrt(x);
		}
		else if (y - 1.0 < INFINITESIMAL && y - 1.0 > -INFINITESIMAL) {
			value = x;
		}
		else if (y - 2.0 < INFINITESIMAL && y - 2.0 > -INFINITESIMAL) {
			value = x * x;
		}
		else {
			value = Math.pow(x, y);
		}
		return value;
	}