renamed functions, added ctg and actg

This commit is contained in:
Timerix22 2023-12-25 21:33:12 +06:00
parent e30cfc6cf4
commit 02a552767b
2 changed files with 23 additions and 7 deletions

View File

@ -16,9 +16,12 @@ class FunctionCallExpressionSin : FunctionCallExpression {
class FunctionCallExpressionCos : FunctionCallExpression { class FunctionCallExpressionCos : FunctionCallExpression {
internal override double FunctionImplementation(double x) => Math.Cos(x); internal override double FunctionImplementation(double x) => Math.Cos(x);
} }
class FunctionCallExpressionTan : FunctionCallExpression { class FunctionCallExpressionTg : FunctionCallExpression {
internal override double FunctionImplementation(double x) => Math.Tan(x); 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 { class FunctionCallExpressionAsin : FunctionCallExpression {
internal override double FunctionImplementation(double x) => Math.Asin(x); internal override double FunctionImplementation(double x) => Math.Asin(x);
@ -26,10 +29,13 @@ class FunctionCallExpressionAsin : FunctionCallExpression {
class FunctionCallExpressionAcos : FunctionCallExpression { class FunctionCallExpressionAcos : FunctionCallExpression {
internal override double FunctionImplementation(double x) => Math.Acos(x); internal override double FunctionImplementation(double x) => Math.Acos(x);
} }
class FunctionCallExpressionAtan : FunctionCallExpression { class FunctionCallExpressionAtg : FunctionCallExpression {
internal override double FunctionImplementation(double x) => Math.Atan(x); 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); internal override double FunctionImplementation(double x) => Math.Log(x);
} }

View File

@ -119,7 +119,11 @@ class Parser {
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionCos()); PushFunctionExpression(expressionStack, str, new FunctionCallExpressionCos());
break; break;
case "tan": case "tan":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionTan()); case "tg":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionTg());
break;
case "ctg":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionCtg());
break; break;
case "asin": case "asin":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAsin()); PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAsin());
@ -128,10 +132,16 @@ class Parser {
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAcos()); PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAcos());
break; break;
case "atan": case "atan":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAtan()); case "atg":
case "arctg":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionAtg());
break; break;
case "log": case "actg":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionLog()); case "arcctg":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionActg());
break;
case "ln":
PushFunctionExpression(expressionStack, str, new FunctionCallExpressionLn());
break; break;
default: { default: {
ThrowError($"invalid literal '{str}'"); ThrowError($"invalid literal '{str}'");