Metadata-Version: 2.1
Name: teneva
Version: 0.4
Summary: Fast multidimensional cross approximation in the tensor-train (TT) format.
Home-page: https://github.com/AndreiChertkov/teneva
Author: Andrei Chertkov
Author-email: a.chertkov@skoltech.ru
License: UNKNOWN
Project-URL: Source, https://github.com/AndreiChertkov/teneva
Description: # teneva
        
        
        ## Description
        
        This python package, named **teneva** (**ten**sor **eva**luation), provides very compact implementation for the multidimensional cross approximation algorithm in the tensor-train (TT) format.
        This package also contains a function for quickly calculating the values of the constructed low-rank tensor approximation, as well as a number of auxiliary useful utilities.
        
        In the current implementation, this software product actually almost duplicates the functionality related to the `rectcross` algoritm of the popular [ttpy](https://github.com/oseledets/ttpy) python package.
        However, this compact implementation does not require a fortran compiler to be installed.
        
        > The repository also contains a rough implementation of the jax-based version of the code. Upon completion of development, the corresponding release will be made with the addition of the necessary documentation. See the colab notebooks [teneva_code](https://colab.research.google.com/drive/1WIyrvFPJkW0nVULjeL05cn1XSjhNNsvM?usp=sharing) and [teneva_code_jax](https://colab.research.google.com/drive/1UT5Kif3rS9eScLkZOBUWM6OLJbWFMbol?usp=sharing) with related code and examples.
        
        
        ## Requirements
        
        1. [Python](https://www.python.org) programming language (version >= 3.7).
        1. "Standard" python packages [numpy](https://numpy.org) and [scipy](https://www.scipy.org) (all of them are included in [anaconda](https://www.anaconda.com/download/) distribution).
        1. Python package [numba](https://github.com/numba/numba).
            > With this package, the tensor values at the given points will be calculated an order of magnitude faster.
        
        
        ## Installation
        
        1. Install **python** (version >= 3.7) and "standard" python packages listed in the section **Requirements** above. The best way is to install only **anaconda** distribution which includes all the packages.
        1. Install **numba** python package according to instructions from the corresponding repository.
        1. Download this repository and run `python setup.py install` from the root folder of the project.
            > You can also install this package via pip: `pip install teneva`.
        1. To uninstall this package from the system run `pip uninstall teneva`.
        
        
        ## Examples
        
        - See the colab notebook [teneva_demo](https://colab.research.google.com/drive/1tRlJGk497N0UpBkR4bhCmymO9lPEnQmY?usp=sharing) with examples.
        
        
        ## Tests
        
        - See the colab notebook [teneva_test](https://colab.research.google.com/drive/1ijgeyefhGK3RXS_rnuHqsb_FObRGGSQa?usp=sharing), where the comparison with the package `ttpy` is provided.
        - See the folder `test` with unit tests. Call it as
            ```bash
            python -m unittest test_base test_vs_ttpy
            ```
            > To run the test test_vs_ttpy, you should first install the [ttpy](https://github.com/oseledets/ttpy) python package.
        
Keywords: low-rank representation tensor train format TT-decomposition cross approximation
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: Jupyter
Requires-Python: >=3.6
Description-Content-Type: text/markdown
