import java.lang.Math; public class CPMath { public static double ArcCos(double x) { return Math.acos(x); } public static double ArcCosh(double x) { return Ln(x + Sqrt(x * x - 1.0)); } public static double ArcSin(double x) { return Math.asin(x); } public static double ArcSinh(double x) { if(x >= 0.0) { return Ln(x + Sqrt(x * x + 1.0)); } else { return -Ln(-x + Sqrt(x * x + 1.0)); } } public static double ArcTan(double x) { return Math.atan(x); } public static double ArcTan2(double y, double x) { return Math.atan2(y, x); } public static double ArcTanh(double x) { return Ln((1.0 + x) / (1.0 - x)) / 2.0; } public static double Ceiling(double x) { return Math.ceil(x); } public static double Cos(double x) { return Math.cos(x); } public static double Cosh(double x) { return Math.cosh(x); } public static double Eps() { return Math.ulp(1.0); } public static double Exp(double x) { return Math.exp(x); } public static int Exponent(double x) { return Math.getExponent(x); } public static double Floor(double x) { return Math.floor(x); } public static double Frac(double x) { if(Math.abs(x) >= 1.0e16) { return 0; } else if(x >= 0) { return x - Floor(x); } else { return x + Floor(-x); } } public static double IntPower(double x, int n) { return Math.pow(x, n); } public static double Ln(double x) { return Math.log(x); } public static double Log(double x) { return Math.log10(x); } public static double Mantissa(double x) { // Not implemented SYSTEM.TRAP(-3); return 0; } public static double Pi() { return Math.PI; } public static double Power(double x, double y) { return Math.pow(x, y); } public static double Real(double m, int e) { return Math.scalb(m, e); } public static double Round(double x) { return Math.round(x); } public static double Sign(double x) { return Math.signum(x); } public static double Sin(double x) { return Math.sin(x); } public static double Sinh(double x) { return Math.sinh(x); } public static double Sqrt(double x) { return Math.sqrt(x); } public static double Tan(double x) { return Math.tan(x); } public static double Tanh(double x) { return Math.tanh(x); } public static double Trunc(double x) { if(Math.abs(x) >= 1.0e16) { return x; } else if(x >= 0) { return Floor(x); } else { return -Floor(-x); } } public static void BEGIN() { } }