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
{