module math; double E = 2.7182818284590452354; double PI = 3.141592653589793238; double DEGTORAD = 3.141592653590/180; double RADTODEG = 180/3.141592653590; native double sin(double x); native double cos(double x); native double tan(double x); native double asin(double x); native double acos(double x); native double atan(double x); native double atan2(double y, double x); // = atan(y/x) native double sinh(double x); native double cosh(double x); native double tanh(double x); native double asinh(double x); native double acosh(double x); native double atanh(double x); native double sqrt(double x); native double exp(double x); // e^x native double exp2(double x); // 2^x native double log(double x); // base e native double log10(double x);// base 10 native double log2(double x); // base 2 native double pow(double x, double y); // x^y native double ipow(double x, int n); // x^n (faster than pow) native int abs(int x); native double fabs(double x); native double ceil(double x); native double floor(double x); native double round(double x); // rounds to nearest integer native double trunc(double x); native double hypot(double x, double y); // = sqrt(x*x+y*y) native double cbrt(double x); // cube root // Calculates polynomial a0 + x*a1 + x^2*a2 + x^3*a3 + ... native double poly(double x, float[] A);