# Common math functions with the Mathf class

> Use Unity's Mathf class to apply trigonometric, logarithmic, and other math functions commonly required in game development.

Unity's [`Mathf`](/engine/6000.5/script-reference/unityengine/mathf.md) class provides a collection of common math functions, including trigonometric, logarithmic, and other functions commonly required in Unity projects. It's a Unity-specific alternative to the .NET [`System.MathF`](https://learn.microsoft.com/en-us/dotnet/api/system.mathf?view=net-10.0) class.

The following sections cover some of the key features of the `Mathf` class. For a full reference of every member of the class, refer to the [`Mathf` API reference](/engine/6000.5/script-reference/unityengine/mathf.md).

## Trigonometric functions

All Unity's trigonometry functions work in radians:

* [`Sin`](/engine/6000.5/script-reference/unityengine/mathf/sin.md)
* [`Cos`](/engine/6000.5/script-reference/unityengine/mathf/cos.md)
* [`Tan`](/engine/6000.5/script-reference/unityengine/mathf/tan.md)
* [`Asin`](/engine/6000.5/script-reference/unityengine/mathf/asin.md)
* [`Acos`](/engine/6000.5/script-reference/unityengine/mathf/acos.md)
* [`Atan`](/engine/6000.5/script-reference/unityengine/mathf/atan.md)
* [`Atan2`](/engine/6000.5/script-reference/unityengine/mathf/atan2.md)

[`PI`](/engine/6000.5/script-reference/unityengine/mathf/pi.md) is available as a constant, and you can multiply by the static values [`Rad2Deg`](/engine/6000.5/script-reference/unityengine/mathf/rad2deg.md) or [`Deg2Rad`](/engine/6000.5/script-reference/unityengine/mathf/deg2rad.md) to convert between radians and degrees.

## Powers and square roots

The `Mathf` class includes the following common power and square root functions:

* [`Pow`](/engine/6000.5/script-reference/unityengine/mathf/pow.md)
* [`Sqrt`](/engine/6000.5/script-reference/unityengine/mathf/sqrt.md)
* [`Exp`](/engine/6000.5/script-reference/unityengine/mathf/exp.md)

It also provides power-of-two related functions. These are useful when working with common binary data sizes, which are often constrained or optimized to power-of-two values (such as texture dimensions):

* [`ClosestPowerOfTwo`](/engine/6000.5/script-reference/unityengine/mathf/closestpoweroftwo.md)
* [`NextPowerOfTwo`](/engine/6000.5/script-reference/unityengine/mathf/nextpoweroftwo.md)
* [`IsPowerOfTwo`](/engine/6000.5/script-reference/unityengine/mathf/ispoweroftwo.md)

## Interpolation

The `Mathf` interpolation functions allow you to calculate a value somewhere between two given points. Each of these functions behaves in a different way, suitable for different situations. For more information, refer to the examples in each method's API reference:

* [`Lerp`](/engine/6000.5/script-reference/unityengine/mathf/lerp.md)
* [`LerpAngle`](/engine/6000.5/script-reference/unityengine/mathf/lerpangle.md)
* [`LerpUnclamped`](/engine/6000.5/script-reference/unityengine/mathf/lerpunclamped.md)
* [`InverseLerp`](/engine/6000.5/script-reference/unityengine/mathf/inverselerp.md)
* [`MoveTowards`](/engine/6000.5/script-reference/unityengine/mathf/movetowards.md)
* [`MoveTowardsAngle`](/engine/6000.5/script-reference/unityengine/mathf/movetowardsangle.md)
* [`SmoothDamp`](/engine/6000.5/script-reference/unityengine/mathf/smoothdamp.md)
* [`SmoothDampAngle`](/engine/6000.5/script-reference/unityengine/mathf/smoothdampangle.md)
* [`SmoothStep`](/engine/6000.5/script-reference/unityengine/mathf/smoothstep.md)

[Vector classes](/engine/6000.5/manual/scripting/programming-math/unity-engine-math/vectors.md) and the [`Quaternion`](/engine/6000.5/manual/scripting/programming-math/unity-engine-math/class-quaternion.md) class all have their own interpolation functions (such as [`Quaternion.Lerp`](/engine/6000.5/script-reference/unityengine/quaternion/lerp.md)) for interpolating positions, directions, and rotations in multiple dimensions.

## Limiting and repeating values

The following helper functions are often useful in games or apps and can save time when you need to limit values to a certain range or repeat them within a certain range:

* [`Max`](/engine/6000.5/script-reference/unityengine/mathf/max.md) and [`Min`](/engine/6000.5/script-reference/unityengine/mathf/min.md)
* [`Repeat`](/engine/6000.5/script-reference/unityengine/mathf/repeat.md) and [`PingPong`](/engine/6000.5/script-reference/unityengine/mathf/pingpong.md)
* [`Clamp`](/engine/6000.5/script-reference/unityengine/mathf/clamp.md) and [`Clamp01`](/engine/6000.5/script-reference/unityengine/mathf/clamp01.md)
* [`Ceil`](/engine/6000.5/script-reference/unityengine/mathf/ceil.md) and [`Floor`](/engine/6000.5/script-reference/unityengine/mathf/floor.md)

## Logarithmic

The [`Log`](/engine/6000.5/script-reference/unityengine/mathf/log.md) function allows you to calculate the logarithm of a specified number, either the natural logarithm or in a specified base. Additionally the [`Log10`](/engine/6000.5/script-reference/unityengine/mathf/log10.md) function returns the base-10 logarithm of the specified number.

## Additional resources

* [`Mathf` API reference](/engine/6000.5/script-reference/unityengine/mathf.md).
* [Unity Mathematics APIs](/engine/6000.5/manual/scripting/programming-math/unity-mathematics.md).
