diff --git a/Engine.Core/Math.cs b/Engine.Core/Math.cs
index eda310b..5d203db 100644
--- a/Engine.Core/Math.cs
+++ b/Engine.Core/Math.cs
@@ -4,32 +4,187 @@ using System.Numerics;
namespace Syntriax.Engine.Core;
public static class Math
-{
- public const float RadianToDegree = 180f / PI;
- public const float DegreeToRadian = PI / 180f;
-
- public const float E = 2.718281828459045f;
+{///
+ /// The value of Pi (π), a mathematical constant approximately equal to 3.14159.
+ ///
public const float PI = 3.1415926535897932f;
+
+ ///
+ /// The value of Tau (τ), a mathematical constant equal to 2π, approximately equal to 6.28319.
+ ///
public const float Tau = 2f * PI;
+ ///
+ /// The base of the natural logarithm, approximately equal to 2.71828.
+ ///
+ public const float E = 2.718281828459045f;
+
+ ///
+ /// The conversion factor from radians to degrees.
+ ///
+ public const float RadianToDegree = 180f / PI;
+
+ ///
+ /// The conversion factor from degrees to radians.
+ ///
+ public const float DegreeToRadian = PI / 180f;
+
+ ///
+ /// Returns the absolute value of a number.
+ ///
+ /// The type of the number.
+ /// The number.
+ /// The absolute value of .
public static T Abs(T x) where T : INumber => x > T.Zero ? x : -x;
+
+ ///
+ /// Returns the arccosine of a number.
+ ///
+ /// The number.
+ /// The arccosine of .
public static float Acos(float x) => MathF.Acos(x);
+
+ ///
+ /// Returns the arcsine of a number.
+ ///
+ /// The number.
+ /// The arcsine of .
public static float Asin(float x) => MathF.Asin(x);
+
+ ///
+ /// Returns the angle whose tangent is the quotient of two specified numbers.
+ ///
+ /// The y-coordinate of a point.
+ /// The x-coordinate of a point.
+ /// The angle, measured in radians.
public static float Atan2(float y, float x) => MathF.Atan2(y, x);
+
+ ///
+ /// Returns the hyperbolic arctangent of a number.
+ ///
+ /// The number.
+ /// The hyperbolic arctangent of .
public static float Atanh(float x) => MathF.Atanh(x);
+
+ ///
+ /// Clamps a number between a minimum and maximum value.
+ ///
+ /// The type of the number.
+ /// The number to clamp.
+ /// The minimum value.
+ /// The maximum value.
+ /// The clamped value.
public static T Clamp(this T x, T min, T max) where T : INumber => (x < min) ? min : (x > max) ? max : x;
+
+ ///
+ /// Returns the smallest integral value that is greater than or equal to the specified number.
+ ///
+ /// The number.
+ /// The smallest integral value that is greater than or equal to .
public static float Ceiling(float x) => MathF.Ceiling(x);
+
+ ///
+ /// Returns a value with the magnitude of and the sign of .
+ ///
+ /// The magnitude value.
+ /// The sign value.
+ /// A value with the magnitude of and the sign of .
public static float CopySign(float x, float y) => MathF.CopySign(x, y);
+
+ ///
+ /// Returns the largest integral value that is less than or equal to the specified number.
+ ///
+ /// The number.
+ /// The largest integral value that is less than or equal to .
public static float Floor(float x) => MathF.Floor(x);
+
+ ///
+ /// Returns the remainder of the division of two specified numbers.
+ ///
+ /// The dividend.
+ /// The divisor.
+ /// The remainder of the division of by .
public static float IEEERemainder(float x, float y) => MathF.IEEERemainder(x, y);
+
+ ///
+ /// Returns the natural (base e) logarithm of a specified number.
+ ///
+ /// The number.
+ /// The base.
+ /// The natural logarithm of with base .
public static float Log(float x, float y) => MathF.Log(x, y);
+
+ ///
+ /// Returns the larger of two numbers.
+ ///
+ /// The type of the numbers.
+ /// The first number.
+ /// The second number.
+ /// The larger of and .
public static T Max(T x, T y) where T : INumber => (x > y) ? x : y;
+
+ ///
+ /// Returns the number whose absolute value is larger.
+ ///
+ /// The first number.
+ /// The second number.
+ /// The number whose absolute value is larger.
public static float MaxMagnitude(float x, float y) => MathF.MaxMagnitude(x, y);
+
+ ///
+ /// Returns the smaller of two numbers.
+ ///
+ /// The type of the numbers.
+ /// The first number.
+ /// The second number.
+ /// The smaller of and .
public static T Min(T x, T y) where T : INumber => (x < y) ? x : y;
+
+ ///
+ /// Returns the number whose absolute value is smaller.
+ ///
+ /// The first number.
+ /// The second number.
+ /// The number whose absolute value is smaller.
public static float MinMagnitude(float x, float y) => MathF.MinMagnitude(x, y);
+
+ ///
+ /// Returns a specified number raised to the specified power.
+ ///
+ /// The number to raise to a power.
+ /// The power to raise to.
+ /// The number raised to the power .
public static float Pow(float x, float y) => MathF.Pow(x, y);
+
+ ///
+ /// Rounds a number to a specified number of fractional digits.
+ ///
+ /// The number to round.
+ /// The number of fractional digits in the return value.
+ /// Specification for how to round if it is midway between two other numbers.
+ /// The number rounded to fractional digits.
public static float Round(float x, int digits, MidpointRounding mode) => MathF.Round(x, digits, mode);
+
+ ///
+ /// Returns the square of a number.
+ ///
+ /// The type of the number.
+ /// The number to square.
+ /// The square of .
public static T Sqr(T x) where T : INumber => x * x;
+
+ ///
+ /// Returns the square root of a specified number.
+ ///
+ /// The number.
+ /// The square root of .
public static float Sqrt(float x) => MathF.Sqrt(x);
+
+ ///
+ /// Calculates the integral part of a number.
+ ///
+ /// The number.
+ /// The integral part of .
public static float Truncate(float x) => MathF.Truncate(x);
+
}