/*

CLASS {NATIVE_Mathematics|_CSharp},
NATIVE, TESTED :

*/
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;


public class NATIVE_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.IsInfinity(X_V);"
        
        NATIVE_Abs = @
        "    RESULT = Math.Abs(X_X);" 
        
        NATIVE_Round = @
        "   RESULT = Math.Round(X_X);"
        
        NATIVE_Trunc = @
        "   RESULT = (int)Math.Truncate(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
*/
