diff --git a/AngouriMath/Convenience/MathS.cs b/AngouriMath/Convenience/MathS.cs index 23414bd5f..9bdc89bc4 100644 --- a/AngouriMath/Convenience/MathS.cs +++ b/AngouriMath/Convenience/MathS.cs @@ -198,9 +198,27 @@ public static EntitySet Solve(Entity equation, VariableEntity var) /// /// /// - /// angle between B and C + /// angle between B and A /// public static Entity Arccotan(Entity a) => Arccotanf.Hang(a); + + /// + /// https://en.wikipedia.org/wiki/Inverse_trigonometric_functions + /// + /// + /// + /// angle between C and B + /// + public static Entity Arcsec(Entity a) => Arccosf.Hang(1 / a); + + /// + /// https://en.wikipedia.org/wiki/Inverse_trigonometric_functions + /// + /// + /// + /// angle between C and A + /// + public static Entity Arccosec(Entity a) => Arcsinf.Hang(1 / a); /// /// https://en.wikipedia.org/wiki/Natural_logarithm @@ -414,4 +432,4 @@ public static Entity OptimizeTree(Entity tree) return tree; } } -} \ No newline at end of file +} diff --git a/AngouriMath/Convenience/SynonymFunctions.cs b/AngouriMath/Convenience/SynonymFunctions.cs index e6261419c..d31b4eb01 100644 --- a/AngouriMath/Convenience/SynonymFunctions.cs +++ b/AngouriMath/Convenience/SynonymFunctions.cs @@ -36,6 +36,8 @@ internal static class SynonymFunctions { "lnf", args => MathS.Log(args[0], MathS.e) }, { "secf", args => MathS.Sec(args[0]) }, { "cosecf", args => MathS.Cosec(args[0]) }, + { "arcsecf", args => MathS.Arcsec(args[0]) }, + { "arccosecf", args => MathS.Arccosec(args[0]) }, }; /// diff --git a/AngouriMath/Core/FromString/SyntaxInfo.cs b/AngouriMath/Core/FromString/SyntaxInfo.cs index d2453b558..cbe4ebd33 100644 --- a/AngouriMath/Core/FromString/SyntaxInfo.cs +++ b/AngouriMath/Core/FromString/SyntaxInfo.cs @@ -42,6 +42,8 @@ internal static class SyntaxInfo { "arccos", 1 }, { "arctan", 1 }, { "arccotan", 1 }, + { "arcsec", 1 }, + { "arccosec", 1 }, }; internal static readonly Dictionary operatorNames = new Dictionary {