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 {
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);
}

View File

@ -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}'");