> ## Documentation Index
> Fetch the complete documentation index at: https://programming-for-career.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Mathematical Functions in C++

> Learn about mathematical functions in C++ for calculations like exponentiation, logarithms, trigonometry, rounding, and more.

## Introduction

Mathematics plays a crucial role in programming, helping to solve real-world problems efficiently. C++ provides a rich set of built-in mathematical functions to perform calculations. These functions are available in the `<cmath>` library and allow us to perform operations like exponentiation, logarithms, trigonometry, rounding, and more.

## Including the `<cmath>` Library

Most mathematical functions in C++ are available in the `<cmath>` library. To use them, you need to include this header file at the beginning of your program:

```cpp theme={null}
#include <iostream>
#include <cmath>
using namespace std;
```

Now, let’s explore different mathematical functions with real-world examples.

## 1️⃣ Power and Square Root Functions

### `pow(base, exponent)`: Raises a number to a power.

```cpp theme={null}
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double base = 2.0, exponent = 3.0;
    double result = pow(base, exponent);
    cout << base << " raised to the power of " << exponent << " is " << result << endl;
    return 0;
}
```

**Real-Life Example**: Calculating compound interest, population growth, or physics calculations.

### `sqrt(x)`: Computes the square root of a number.

```cpp theme={null}
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double number = 25.0;
    cout << "Square root of " << number << " is " << sqrt(number) << endl;
    return 0;
}
```

**Real-Life Example**: Finding the diagonal length of a rectangle using the Pythagorean theorem.

## 2️⃣ Logarithmic and Exponential Functions

### `log(x)`: Returns the natural logarithm (base e).

```cpp theme={null}
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double number = 10.0;
    cout << "Natural logarithm of " << number << " is " << log(number) << endl;
    return 0;
}
```

**Real-Life Example**: Calculating growth rates or solving exponential decay problems.

### `log10(x)`: Returns the base-10 logarithm.

```cpp theme={null}
cout << "Log base 10 of 100 is " << log10(100) << endl;  // Output: 2
```

**Real-Life Example**: Used in decibel calculations or pH level measurements.

### `exp(x)`: Computes e^x (exponential function).

```cpp theme={null}
cout << "e raised to the power 2 is " << exp(2) << endl;  // Output: 7.389
```

**Real-Life Example**: Used in finance to calculate continuous compounding interest.

## 3️⃣ Trigonometric Functions

C++ provides trigonometric functions such as `sin()`, `cos()`, and `tan()` that work with **radians**.

```cpp theme={null}
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double angle = 45.0;  // in degrees
    double radians = angle * (M_PI / 180.0); // Convert to radians

    cout << "Sine of " << angle << " degrees: " << sin(radians) << endl;
    cout << "Cosine of " << angle << " degrees: " << cos(radians) << endl;
    cout << "Tangent of " << angle << " degrees: " << tan(radians) << endl;
    return 0;
}
```

**Real-Life Example**: Used in engineering, physics, and game development for trajectory calculations.

## 4️⃣ Rounding and Absolute Functions

### `ceil(x)`: Rounds up to the nearest integer.

```cpp theme={null}
cout << "Ceil of 4.3: " << ceil(4.3) << endl;  // Output: 5
```

**Real-Life Example**: Used when calculating the number of buses needed for a group.

### `floor(x)`: Rounds down to the nearest integer.

```cpp theme={null}
cout << "Floor of 4.8: " << floor(4.8) << endl;  // Output: 4
```

**Real-Life Example**: Used in financial applications for rounding down currency values.

### `round(x)`: Rounds to the nearest integer.

```cpp theme={null}
cout << "Round of 4.5: " << round(4.5) << endl;  // Output: 5
```

**Real-Life Example**: Used in grading systems where scores are rounded.

### `abs(x)`: Returns the absolute value.

```cpp theme={null}
cout << "Absolute of -10: " << abs(-10) << endl;  // Output: 10
```

**Real-Life Example**: Used in distance calculations.

## 5️⃣ Fmod and Remainder Functions

### `fmod(x, y)`: Returns the remainder of x/y.

```cpp theme={null}
cout << "fmod(10.5, 3): " << fmod(10.5, 3) << endl;  // Output: 1.5
```

**Real-Life Example**: Used in periodic calculations like rotations in a circular motion.

## Common Errors and Solutions

| **Error**                  | **Cause**                            | **Solution**                                    |
| -------------------------- | ------------------------------------ | ----------------------------------------------- |
| Undefined function         | `<cmath>` not included               | Add `#include <cmath>`                          |
| Wrong trigonometric result | Angle in degrees instead of radians  | Convert degrees to radians using `M_PI / 180.0` |
| Incorrect logarithm        | Using `log(x)` instead of `log10(x)` | Use `log10(x)` for base-10 logs                 |

## Conclusion

Mathematical functions in C++ help solve complex problems in various domains. We explored:

* **Power and Square Root (`pow()`, `sqrt()`)**
* **Logarithms (`log()`, `log10()`)**
* **Trigonometry (`sin()`, `cos()`, `tan()`)**
* **Rounding (`ceil()`, `floor()`, `round()`)**
* **Absolute and Modulus (`abs()`, `fmod()`)**

**Next Up**: **Conditional Statements in C++ (if-else, switch, ternary operator)!**
