Metadata-Version: 2.1
Name: exponentation
Version: 1.0.0
Summary: This is a computational library based on AI for optimal exponentiation.
Home-page: https://github.com/Katyana01/Library.git
Author: katya_r
Author-email: katerina.riabova@gmail.com
Project-URL: GitHub, https://github.com/Katyana01/Library
Keywords: files speedfiles
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: pandas
Requires-Dist: torch
Requires-Dist: numpy

# exponentation

![Build Status](https://img.shields.io/badge/build-passing-brightgreen)
![Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen)
![Version](https://img.shields.io/badge/version-1.0.0-blue)
![License](https://img.shields.io/badge/license-MIT-green)
![Python](https://img.shields.io/badge/python-3.6%2B-blue)
![Downloads](https://img.shields.io/badge/downloads-10k%2B-brightgreen)


## 📊 Описание

**✨Exponentation** - это библиотека Python, которая помогает определить наиболее эффективный метод возведения в степень, учитывая различные критерии, такие как основание степени и температура нагревания процессора. Эта библиотека разработана для того, чтобы помочь вам выбрать оптимальный метод для вашего конкретного случая, учитывая разные факторы.

## 🚀 Функционал

- **Автоматический выбор метода:** Exponentation автоматически выбирает наиболее эффективный метод возведения в степень на основе входных данных, таких как основание, степени и учет нагревания процессора.
- **Результаты с различными методами:** Вы можете получить результаты возведения в степень с использованием различных методов и сравнить их для выбора наилучшего.
- **Управление методом:** Для возведения числа в степень можно использовать различные методы без необходимости выбора наилучшего. Каждый из предложенных методов выполняет эту операцию по-своему:
  - **Древовидный метод (tree)**
  - **Накапливающий метод (accum)**
  - **Наивный метод (power_with_naive)**
  - **Метод "Лестница Монтгомери" (stairs)**
  - **Метод множителей (power_fact)**
  - **Право-левый метод (right_left)**
  - **Бинарный метод (binary)**

  Вы можете использовать каждый из этих методов отдельно для возведения числа в степень.




## 📦 Установка

```bash
pip install exponentation
```

## 🛠️ Доступные функции

Exponentation предоставляет следующие функции для работы с возведением в степень:

- **get_best_methods(base: list[int, float],
    exponent: list[int],
    t_factor: list[int],
    by_time=True,
    by_memory=True):** Эта функция определяет наиболее эффективный метод возведения числа в степень на основе входных данных, таких как основание степени и учет температуры нагревания процессора.
  
  ```python
  import exponentation
  
  prediction = exponentation.get_best_methods([10, 100, 1500], [101, 13, 170000], [1, 0, 1], by_time=True, by_memory=True))

  print(prediction)  

- **get_result_by_best_method(df: DataFrame, by_time_method=True, by_memory_method=False):** Дополнительно с результатом прошлой функции Вы можете использовать следующую функцию, которая выведет дополнительной колонкой результат предпочтительным методом (по времени или по памяти определяется на входе)
  
  ```python
  result_df = exponentation.get_result_by_best_method(df=df, by_time_method=True)
  
  print(result)

- Также, помимо использования общего метода get_prediction, вы можете вызвать каждый метод отдельно и получить результат возведения чисел в степень.

  ```python
  exponentation.right_left(100, 100)
  
❗❗❗ Важно отметить то, что на вход в основания могут поступать все рациональные числа, а на вход в степень - натуральные.



Made with ❤️ by Katya Ryabova
