/*
//---------------- set of mathematical functions
CLASS {NATIVE_Mathematics|_Java}, NATIVE :



*/

public class Mathematics
{

    /*
    // {Mathematics} native functions code:
    
    CONST STR :
        NATIVE_Mathematics_import = ""

        NATIVE_Power = @
        "    RESULT = Math.pow(X_B, X_Exp);"

        NATIVE_Sqrt = @
        "    try {"
        "        RESULT = Math.sqrt(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Is_NAN = @
        "    RESULT = Double.isNaN(X_V);"

        NATIVE_Is_INF = @
        "    RESULT = Double.isInfinite(X_V);"

        NATIVE_Abs = @
        "    RESULT = Math.abs(X_X);"

        NATIVE_Round = @
        "   RESULT = Math.round(X_X);"
        
        NATIVE_Trunc = @
        "   RESULT = (int)X_X;"

        NATIVE_Log10 = @
        "    try {"
        "        RESULT = Math.log10(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }" 

        NATIVE_Ln = @
        "    try {"
        "        RESULT = Math.log(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Base_log = @
        "    try {"
        "        RESULT = Math.log(X_X) / Math.log(X_Base);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_PI = @
        "    RESULT = Math.PI;"

        NATIVE_Sin = @
        "    try {"
        "        RESULT = Math.sin(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Cos = @"    try {"
        "        RESULT = Math.cos(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Tan = @
        "    try {"
        "        RESULT = Math.tan(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Cotan = @
        "    try {"
        "        RESULT = 1 / Math.tan(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arcsin = @
        "    try {"
        "        RESULT = Math.asin(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arccos = @"    try {"
        "        RESULT = Math.acos(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arctan = @
        "    try {"
        "        RESULT = Math.atan(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arctan2 = @
        "    try {"
        "        RESULT = Math.atan2(X_Y, X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Exp = @
        "    try {"
        "        RESULT = Math.exp(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Sinh = @"    try {"
        "        RESULT = Math.sinh(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Cosh = @
        "    try {"
        "        RESULT = Math.cosh(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Tanh = @
        "    try {"
        "        RESULT = Math.tanh(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Coth = @
        "    try {"
        "        RESULT = 1 / Math.tanh(X_X);"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arcsinh = @
        "    try {"
        "        RESULT = Math.log(X_X + Math.sqrt(X_X * X_X + 1));"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arccosh = @
        "    try {"
        "        RESULT = Math.log(X_X + Math.sqrt(X_X * X_X - 1));"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }"

        NATIVE_Arctanh = @
        "    try {"
        "        RESULT = 0.5 * Math.log((1 + X_X) / (1 - X_X));"
        "    }"
        "    catch (Exception E) {"
        "        AL4_system.Any_exception(E);"
        "        RESULT = Double.NaN;"
        "    }" 

        .
    */


}
/*
END
*/
