Metadata-Version: 2.1
Name: stdmathlib
Version: 0.1.8
Summary: A library to simplify mathematical computations.
Author-email: AstroKepler <nicholasbrislane1@gmail.com>
Project-URL: Homepage, https://github.com/astrokepler/stdmathlib
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: sympy>=1.0
Requires-Dist: numpy>=1.18.0
Requires-Dist: matplotlib>=3.0.0

# stdmathlib

A Python library to simplify mathematical computations.

## Installation

```bash
pip install stdmathlib
```

## Functions

### `integrate_expression`

Integrates a mathematical expression with respect to a variable.

**Parameters:**

- `expression_str` (str): The mathematical expression as a string.
- `var` (str): The variable to integrate with respect to (default is `'x'`).
- `lower_limit` (float, optional): The lower limit of integration.
- `upper_limit` (float, optional): The upper limit of integration.

**Returns:**

- `integral_expr`: The symbolic integral expression (indefinite integral).
- `integral_value` (optional): The numerical value of the definite integral.

**Example Usage:**

```python
from stdmathlib import integrate_expression

# Indefinite integral
integral_expr = integrate_expression('x**2')
print(f"Indefinite integral: {integral_expr} + C")  # Output: x**3/3 + C

# Definite integral from x=0 to x=2
integral_expr, integral_value = integrate_expression('x**2', lower_limit=0, upper_limit=2)
print(f"Indefinite integral: {integral_expr} + C")          # Output: x**3/3 + C
print(f"Definite integral from 0 to 2: {integral_value}")  # Output: 2.66666666666667
```

### `derivative`

Differentiates a mathematical expression with respect to a variable.

**Parameters:**

- `expression_str` (str): The mathematical expression as a string.
- `var` (str): The variable to differentiate with respect to (default is `'x'`).
- `eval_point` (float, optional): The point at which to evaluate the derivative.

**Returns:**

- `derivative_expr`: The symbolic derivative expression.
- `derivative_value` (optional): The numerical value of the derivative at `eval_point`.

**Example Usage:**

```python
from stdmathlib import derivative

# Differentiate symbolically
derivative = derivative('x**2 + 3*x + 2')
print(derivative)  # Output: 2*x + 3

# Differentiate and evaluate at x = 2
derivative_expr, derivative_value = derivative('x**2 + 3*x + 2', eval_point=2)
print(derivative_expr)      # Output: 2*x + 3
print(derivative_value)     # Output: 7
```

### `partial_derivative_expression`

Computes the partial derivative of a multivariable function with respect to specified variables.

**Parameters:**

- `expression_str` (str): The multivariable function as a string.
- `variables` (list of str): List of variable names in the function.
- `differentiation_vars` (list of str): List of variables to differentiate with respect to.
- `eval_points` (dict, optional): Dictionary of variable values for evaluation.

**Returns:**

- `derivative_expr`: The symbolic partial derivative expression.
- `derivative_value` (optional): The numerical value of the derivative at `eval_points`.

**Example Usage:**

```python
from stdmathlib import partial_derivative_expression

# Compute ?f/?x
expression = 'x**2 * y + y**3'
variables = ['x', 'y']
differentiation_vars = ['x']
partial_derivative = partial_derivative_expression(expression, variables, differentiation_vars)
print(partial_derivative)  # Output: 2*x*y
```

## Functions

### `plot`

Plots a mathematical expression using `matplotlib`.

**Parameters:**

- `expression_str` (str): The mathematical expression as a string, e.g., `'sin(x)'`.
- `var` (str): The variable in the expression (default is `'x'`).
- `range_start` (float): The start of the range for the variable (default is `-10`).
- `range_end` (float): The end of the range for the variable (default is `10`).
- `num_points` (int): The number of points to compute for plotting (default is `1000`).

**Returns:**

- `None`: Displays the plot.

**Example Usage:**

```python
from stdmathliblib import plot
import numpy as np

# Plot y = sin(x) from -2? to 2?
plot('sin(x)', range_start=-2*np.pi, range_end=2*np.pi)
```
