Skip to main content

fast linear transforms in Python

Project description

# fastmat
[![Version](https://img.shields.io/pypi/v/fastmat.svg)](https://pypi.python.org/pypi/fastmat)
[![Status](https://img.shields.io/pypi/status/fastmat.svg)](https://pypi.python.org/pypi/fastmat)
[![Python wheels](https://img.shields.io/pypi/wheel/fastmat.svg)](https://pypi.python.org/pypi/fastmat)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/8af2b42d33cc4f5ba5b91566032c44ed)](https://www.codacy.com/app/ChristophWWagner/fastmat-EMS-TU-Ilmenau?utm_source=github.com&utm_medium=referral&utm_content=EMS-TU-Ilmenau/fastmat&utm_campaign=Badge_Grade)
[![Documentation Status](https://readthedocs.org/projects/fastmat/badge/?version=latest)](http://fastmat.readthedocs.io/en/latest/?badge=latest)

[![License](https://img.shields.io/pypi/l/fastmat.svg)](https://pypi.python.org/pypi/fastmat)
[![Python versions](https://img.shields.io/pypi/pyversions/fastmat.svg)](https://pypi.python.org/pypi/fastmat)
[![Implementation](https://img.shields.io/pypi/implementation/fastmat.svg)](https://pypi.python.org/pypi/fastmat)

[![Coverage Status](https://coveralls.io/repos/github/EMS-TU-Ilmenau/fastmat/badge.svg?branch=master)](https://coveralls.io/github/EMS-TU-Ilmenau/fastmat?branch=master)
[![GitHub issues](https://img.shields.io/github/issues/EMS-TU-Ilmenau/fastmat.svg)](https://github.com/EMS-TU-Ilmenau/fastmat/issues)
**stable:** [![Build Status](https://www.travis-ci.org/EMS-TU-Ilmenau/fastmat.svg?branch=stable)](https://www.travis-ci.org/EMS-TU-Ilmenau/fastmat) **master:** [![Build Status](https://www.travis-ci.org/EMS-TU-Ilmenau/fastmat.svg?branch=master)](https://www.travis-ci.org/EMS-TU-Ilmenau/fastmat)

## Description
Scientific computing requires handling large composed or structured matrices.
Fastmat is a framework for handling large composed or structured matrices.
It allows expressing and using them in a mathematically intuitive way while
storing and handling them internally in an efficient way. This approach allows
huge savings in computational time and memory requirements compared to using
dense matrix representations.

### Dependencies
- Python >= 2.7 or >=3.4
- Numpy >= 1.7
- Scipy >= 1.0
- Cython >= 1.19
- soft dependencies:
- matplotlib: for demos and tools that make use of plotting functions

### Authors & Contact Information
- Sebastian Semper | sebastian.semper@tu-ilmenau.de
Technische Universität Ilmenau, Institute for Mathematics, EMS Group
- Christoph Wagner | christoph.wagner@tu-ilmenau.de
Technische Universität Ilmenau, Institute for Information Technology, EMS Group
- **<https://www.tu-ilmenau.de/it-ems/>**

## Citation / Acknowledgements
If you use fastmat, or parts of it, for commercial purposes you are required
to acknowledge the use of fastmat visibly to all users of your work and put a
reference to the project and the EMS Group at TU Ilmenau.

If you use fastmat for your scientific work you are required to mention the
EMS Group at TU Ilmenau and cite the following publication affiliated with the
project:
> C. Wagner and S. Semper, _Fast Linear Transforms in Python_,
> arXiV:1710.09578, 2017
>
> -- <cite>https://arxiv.org/abs/1710.09578</cite>

- **<https://www.tu-ilmenau.de/it-ems/>**

## Installation
fastmat currently supports Linux, Windows and Mac OS. You may choose one of
these installation methods:

### Installing with pip:

fastmat is included in the Python Package Index (PyPI) and can be installed
from the commandline by running one easy and straightforward command:
`pip install fastmat`

When installing with pip all dependencies of the package will be installed
along. With release 0.1.1 python wheels will be offered for many versions
greatly improving installation time and effort.

### Manually installing from source
- download the source distribution from our github repository:
https://github.com/EMS-TU-Ilmenau/fastmat/archive/stable.zip
- unpack its contents and navigate to the project root directory
- run `pip install .` to install fastmat on your computer
- you may also install fastmat without pip, using the offered makefile:
* type `make install` to install fastmat on your computer
* If you intend to install the package locally for your user type
`make install MODE=--user` instead
* You may add a version specifier for all `make` targets that directly or indirectly invoke Python:
`make install PYTHON=python2`
`make compile PYTHON=python3`
* If you only would like to compile the package to use it from this local
directory without installing it, type `make compile`
* An uninstallation of a previously run `make install`is possible, provided the installation log file `setup.files` has been preserved
Invoking `make uninstall` without a local `setup.files` causes another installation for generating the setup file log prior to uninstalling
- **NOTE: Windows users**
If you intent on building fastmat from source on a windows platform, make sure you have installed a c compiler environment and make interpreter. One way to accomplish this is to install these tools for Python 2.7 (you may also chose different ones, of course):
* Intel Distribution for Python 2.7
* Microsoft Visual C++ Compiler 9.0 for Python 2.7
* GNU make for Windows 3.81 or newer
* depending on your system: The relevant header files

## Demos
Feel free to have a look at the demos in the `demo/` directory of the source
distribution. Please make sure to have fastmat already installed when running
these.

Please note that the edgeDetect demo requires the Python Imaging Library (PIL)
installed and the SAFT demos do compile a cython-core of a user defined matrix
class beforehand thus having a delaying the first time they're executed.

## Documentation / HELP !
Please have a look at the documentation, which is included in the source
distribution at github or may be built locally on your machine by running
`make doc`

If you experience any trouble please do not hesitate to contact us or to open
an issue on our github projectpage: https://github.com/EMS-TU-Ilmenau/fastmat

### FAQ

Please check out our project documentation at [readthedocs](https://fastmat.readthedocs.io/).

#### Windows: Installation fails with various "file not found" errors
Often, this is caused by missing header files. Unfortunately windows ships
without a c-compiler and the header files necessary to compile native binary
code. If you use the Intel Distribution for Python this can be resolved by
installing the Visual Studio Build tools with the version as recommended by
the version of the Intel Distribution for Python that you are using.

#### Issue not resolved yet?
Please contact us or leave your bug report in the *issue* section. Thank You!


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fastmat-0.1.2-cp36-cp36m-macosx_10_6_intel.whl (6.2 MB view details)

Uploaded CPython 3.6mmacOS 10.6+ Intel (x86-64, i386)

fastmat-0.1.2-cp35-cp35m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.5m

fastmat-0.1.2-cp35-cp35m-manylinux1_i686.whl (3.2 MB view details)

Uploaded CPython 3.5m

fastmat-0.1.2-cp34-cp34m-manylinux1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.4m

fastmat-0.1.2-cp34-cp34m-manylinux1_i686.whl (3.2 MB view details)

Uploaded CPython 3.4m

fastmat-0.1.2-cp27-cp27mu-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 2.7mu

fastmat-0.1.2-cp27-cp27mu-manylinux1_i686.whl (3.3 MB view details)

Uploaded CPython 2.7mu

fastmat-0.1.2-cp27-cp27m-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 2.7m

fastmat-0.1.2-cp27-cp27m-manylinux1_i686.whl (3.3 MB view details)

Uploaded CPython 2.7m

File details

Details for the file fastmat-0.1.2-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp36-cp36m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 6.2 MB
  • Tags: CPython 3.6m, macOS 10.6+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.3

File hashes

Hashes for fastmat-0.1.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 df06b45cee06bd0a67604dad336213b9f63bdda23362847ae700727087aacaed
MD5 a980b3bc6da98aad51666ff5f8c9ec8c
BLAKE2b-256 ac5a93910ff7903251aa8eba9522f9bf1183cb46e68066b57ffda18871090c31

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.5.6

File hashes

Hashes for fastmat-0.1.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fdd905887bcad4a124bd1ec5ed048e27fc0d27aef49adb4ae99e90437af355bc
MD5 3a8bd392290f5f4b2781e7230d53ab3c
BLAKE2b-256 e885e762783cf8c96d502c8467c9b72929f94b8955dcf8652a1c578e1f210fa3

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp35-cp35m-manylinux1_i686.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp35-cp35m-manylinux1_i686.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.5.6

File hashes

Hashes for fastmat-0.1.2-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 e09c38b6cc426cbfcb2f2d0d5febc8351f5a340e89616503e7a19fa6af834850
MD5 15055f739ce5c47daadc257d102dd534
BLAKE2b-256 8b9ebe069fdae21246714ae9e9131e1e2f966a26eb54f4448ac4157055bfbc81

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp34-cp34m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.4m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/35.0.2 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.4.6

File hashes

Hashes for fastmat-0.1.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b92d15aee30004a1e92532be7dc5945b14c8900bd0d5f25c3de048fe5229eb6e
MD5 ac9830cf4182923f7d2f229372834864
BLAKE2b-256 6bbaee570d0cdf37b3241f6ae3ac11a8c9da1a706a06abda5d24f171fc921b8c

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp34-cp34m-manylinux1_i686.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp34-cp34m-manylinux1_i686.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.4m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/35.0.2 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.4.6

File hashes

Hashes for fastmat-0.1.2-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 730be24deb197f62f059c91c2bc37ec1cdf05463b045ec208f4ed67065fdcf4c
MD5 2c967e625e8ff5db499136ed5e5a1682
BLAKE2b-256 fae7a7f273318406fb8ac00bcddfbf9e21945a97c9a8e6376b7a5e407012ce28

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp27-cp27mu-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 2.7mu
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/38.2.4 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/2.7.14

File hashes

Hashes for fastmat-0.1.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 201ac79598526cd03b0b97006d87411f7eba3beebe0c7e9b46f430ea9c35ec7a
MD5 b5e6ce7a5c5d23c573df8aa01590ff82
BLAKE2b-256 2f62afd23721c407815d22cf9cd5b4ed52932ef990f58493b978efd3d0e7f6ce

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp27-cp27mu-manylinux1_i686.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp27-cp27mu-manylinux1_i686.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 2.7mu
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/38.2.4 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/2.7.14

File hashes

Hashes for fastmat-0.1.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm Hash digest
SHA256 cb8b4ff1f8271ddab5d0a892b3c8a1df880795b8a2132617cd01572970ceac7a
MD5 c3b5cd51c0204b5ff0e0502fc13ac017
BLAKE2b-256 6ebb63b3e37623f4b8647269d40eae3593e4fef65a6c14d8d25a94a9c4217834

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp27-cp27m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 2.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/38.2.4 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/2.7.14

File hashes

Hashes for fastmat-0.1.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5c555a522ea8ce4b2e6aa5eb24a05722ea740aa2ce57e46e98fc5f1152126312
MD5 fc96561d82c4686d9da413cce022aaed
BLAKE2b-256 79c1301de5d2c118686312923736532d7ec7ae7811e1772fa1d5c0f5c4763c85

See more details on using hashes here.

File details

Details for the file fastmat-0.1.2-cp27-cp27m-manylinux1_i686.whl.

File metadata

  • Download URL: fastmat-0.1.2-cp27-cp27m-manylinux1_i686.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 2.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/38.2.4 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/2.7.14

File hashes

Hashes for fastmat-0.1.2-cp27-cp27m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 f68262d8bc95203bae6544e21df42ce3164d7b59521275ede31ede12106f5373
MD5 888fb4ac75c1c70b93278b7dade9a647
BLAKE2b-256 d1162c4f6ba38ef264be53e718091e978a6f4df87b8a22cdc8412aeda8afeaa0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page