Transcendental.java
package church.math.operators;

@SuppressWarnings("unchecked")
public class Transcendental {
    public static interface $Log<T> {
        public T log(T a);
    }

    public static interface $Exp<T> {
        public T exp(T a);
    }

    public static interface $Sqrt<T> {
        public T sqrt(T a);
    }

    public static interface $Sin<T> {
        public T sin(T a);
    }

    public static interface $Cos<T> {
        public T cos(T a);
    }

    public static interface $Tan<T> {
        public T tan(T a);
    }

    public static interface $Asin<T> {
        public T asin(T a);
    }

    public static interface $Acos<T> {
        public T acos(T a);
    }

    public static interface $Atan<T> {
        public T atan(T a);
    }

    public static double log(double x) {
        return java.lang.Math.log(x);
    }

    public static double exp(double x) {
        return java.lang.Math.exp(x);
    }

    public static double sqrt(double x) {
        return java.lang.Math.sqrt(x);
    }

    public static double sin(double x) {
        return java.lang.Math.sin(x);
    }

    public static double cos(double x) {
        return java.lang.Math.cos(x);
    }

    public static double tan(double x) {
        return java.lang.Math.tan(x);
    }

    public static double asin(double x) {
        return java.lang.Math.asin(x);
    }

    public static double acos(double x) {
        return java.lang.Math.acos(x);
    }

    public static double atan(double x) {
        return java.lang.Math.atan(x);
    }

}