![pyfer_cover](aux/kurvy.png)

-----------------

# Kurvy ~ Trigonometric Curve Approximation Toolkit

[![PyPI - Version](https://img.shields.io/pypi/v/kurvy.svg)](https://pypi.org/project/kurvy/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/kurvy.svg)](https://pypi.org/project/kurvy/)
[![License: MIT](https://img.shields.io/badge/license-MIT-C06524)](https://github.com/celerygemini/kurvy/blob/main/LICENSE)

## 💡 What is it?

**kurvy** is a Python package that helps approximate trigonometric curves by implementing a gradient descent algorithm.

### Features

- Find the optimal parameters for trigonometric-like data.
- Customize training loops.
- Add momentum to parameter updates.
- Apply L2 regularization.
- Randomly generate trigonometric data and errors.

## 🛠️ Setup 

Install it from **PyPI** by running `pip install kurvy`.

### Dependencies 

The code was written with **Python 3.9.16**, and it is recommended to run it in a virtual environment. 
All the required libraries are listed in the `requirements.txt` file in this repo.

## 🚀 Execution

Once the package has been installed, it is simply a case of experimenting with the various classes and functions. For a quickstart, please see the [demo](https://github.com/celerygemini/kurvy/blob/main/demo.ipynb).

## 📝 Documentation

Documentation is currently available in the form of docstrings.

## ⚖️ License

The project is licensed under the MIT license.