# teneva_ht_jax


## Description

This python package, named **teneva_ht_jax** (**ten**sor **eva**luation with **H**ierarchical **T**ucker and **jax**), provides a very compact implementation of basic operations in the Hierarchical Tucker (HT) format, including approximation and sampling from multidimensional arrays and multivariate functions. The program code is organized within a functional paradigm and it is very easy to learn and use.


## Installation

> Current version "0.1.2".

The package can be installed via pip: `pip install teneva_ht_jax` (it requires the [Python](https://www.python.org) programming language of the version >= 3.8). It can be also downloaded from the repository [teneva_ht_jax](https://github.com/AndreiChertkov/teneva_ht_jax) and installed by `python setup.py install` command from the root folder of the project.

> Required python packages [numpy](https://numpy.org) (1.22+), [scipy](https://www.scipy.org) (1.8+), [jax](https://github.com/google/jax) (3.3+; cpu version) and [optax](https://github.com/deepmind/optax) (0.1.5+) will be automatically installed during the installation of the main software product. However, it is recommended that you manually install them first.


## Documentation and examples

- See detailed [online documentation](https://teneva-ht-jax.readthedocs.io) for a description and various numerical examples for each function.
- See the jupyter notebooks in the `./demo` folder with brief description and demonstration of the capabilities of each function from the `teneva_ht_jax` package. Note that all examples from this folder are also presented in the online documentation.


## Authors

- [Andrei Chertkov](https://github.com/AndreiChertkov)
- [Gleb Ryzhakov](https://github.com/G-Ryzhakov)
- [Ivan Oseledets](https://github.com/oseledets)
- **Will be extended soon ;)**

> ✭ 🚂 The stars that you give to **teneva_ht_jax**, motivate us to develop faster and add new interesting features to the code 😃
