From 02a552767b0b1135b1731c1c3d80b0d714a00b14 Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Mon, 25 Dec 2023 21:33:12 +0600 Subject: [PATCH] renamed functions, added ctg and actg --- src/Expressions/FunctionCallExpression.fu | 12 +++++++++--- src/Parser.fu | 18 ++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/Expressions/FunctionCallExpression.fu b/src/Expressions/FunctionCallExpression.fu index 060b1bf..aa8e664 100644 --- a/src/Expressions/FunctionCallExpression.fu +++ b/src/Expressions/FunctionCallExpression.fu @@ -16,9 +16,12 @@ class FunctionCallExpressionSin : FunctionCallExpression { class FunctionCallExpressionCos : FunctionCallExpression { internal override double FunctionImplementation(double x) => Math.Cos(x); } -class FunctionCallExpressionTan : FunctionCallExpression { +class FunctionCallExpressionTg : FunctionCallExpression { internal override double FunctionImplementation(double x) => Math.Tan(x); } +class FunctionCallExpressionCtg : FunctionCallExpression { + internal override double FunctionImplementation(double x) => 1 / Math.Tan(x); +} class FunctionCallExpressionAsin : FunctionCallExpression { internal override double FunctionImplementation(double x) => Math.Asin(x); @@ -26,10 +29,13 @@ class FunctionCallExpressionAsin : FunctionCallExpression { class FunctionCallExpressionAcos : FunctionCallExpression { internal override double FunctionImplementation(double x) => Math.Acos(x); } -class FunctionCallExpressionAtan : FunctionCallExpression { +class FunctionCallExpressionAtg : FunctionCallExpression { internal override double FunctionImplementation(double x) => Math.Atan(x); } +class FunctionCallExpressionActg : FunctionCallExpression { + internal override double FunctionImplementation(double x) => Math.Atan(1 / x); +} -class FunctionCallExpressionLog : FunctionCallExpression{ +class FunctionCallExpressionLn : FunctionCallExpression{ internal override double FunctionImplementation(double x) => Math.Log(x); } diff --git a/src/Parser.fu b/src/Parser.fu index b4f4dc4..8309002 100644 --- a/src/Parser.fu +++ b/src/Parser.fu @@ -119,7 +119,11 @@ class Parser { PushFunctionExpression(expressionStack, str, new FunctionCallExpressionCos()); break; case "tan": - PushFunctionExpression(expressionStack, str, new FunctionCallExpressionTan()); + case "tg": + PushFunctionExpression(expressionStack, str, new FunctionCallExpressionTg()); + break; + case "ctg": + PushFunctionExpression(expressionStack, str, new FunctionCallExpressionCtg()); break; case "asin": PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAsin()); @@ -128,10 +132,16 @@ class Parser { PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAcos()); break; case "atan": - PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAtan()); + case "atg": + case "arctg": + PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAtg()); break; - case "log": - PushFunctionExpression(expressionStack, str, new FunctionCallExpressionLog()); + case "actg": + case "arcctg": + PushFunctionExpression(expressionStack, str, new FunctionCallExpressionActg()); + break; + case "ln": + PushFunctionExpression(expressionStack, str, new FunctionCallExpressionLn()); break; default: { ThrowError($"invalid literal '{str}'");