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 >= 0.29
- 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. Lately it also has been
seen on ARM cores coming in a Xilinx ZYNQ FPGA SoC shell. We encourage you to
go ahead trying other platforms as the aforementioned as well and are very
happy if you share your experience with us, allowing us to keep the list
updated.

### 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.2a1-cp37-cp37m-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.7mWindows x86-64

fastmat-0.2a1-cp37-cp37m-win32.whl (2.0 MB view details)

Uploaded CPython 3.7mWindows x86

fastmat-0.2a1-cp36-cp36m-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.6mWindows x86-64

fastmat-0.2a1-cp36-cp36m-win32.whl (2.0 MB view details)

Uploaded CPython 3.6mWindows x86

fastmat-0.2a1-cp35-cp35m-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.5mWindows x86-64

fastmat-0.2a1-cp35-cp35m-win32.whl (1.9 MB view details)

Uploaded CPython 3.5mWindows x86

fastmat-0.2a1-cp27-cp27m-win_amd64.whl (2.5 MB view details)

Uploaded CPython 2.7mWindows x86-64

fastmat-0.2a1-cp27-cp27m-win32.whl (2.1 MB view details)

Uploaded CPython 2.7mWindows x86

fastmat-0.2a1-cp27-cp27m-macosx_10_6_intel.whl (6.0 MB view details)

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

File details

Details for the file fastmat-0.2a1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f1da0b8b8fceb5d2e26e82073e8db2a0b0f0eb140b18fbf9af054a1803777f2b
MD5 2cbfc9a60c68ec7a9323be413d851bf7
BLAKE2b-256 7af9f71fbb0f7af22085ba829e8daa08280b38f086bb0d4af97b971997780b35

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp37-cp37m-win32.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 86407db37c7720f6c15650ffda4e76ea51e5db097c8fdac582d581d05c9acd04
MD5 0a0468384ae74132460fb0a148e08109
BLAKE2b-256 141a84aa67259ced019894ec86e84803064fe41ed8e8ae30351adeeb618fa443

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 74d23b10020d84dbdc0cd04ecb1a7eb416914d54fcc6b7231250e3f3fbd02a96
MD5 401ef3f85ed06450b17527d5c4bf245e
BLAKE2b-256 db1880fca3b71ba6af032daeb43514395930fb68d39bdbe7749506a939584812

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp36-cp36m-win32.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 50e85d5bc1d8aa2fe4156caba5e2840f824ee4d2ead0e67ab02cc4b1f1ecd217
MD5 4b8f543e25042c9cb2f1a24cbf7cd653
BLAKE2b-256 35c794c70f03475d37c15cb24a83a1776fe4e28885266ae059d38a619caab1ac

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 03a865c94e89571a7e20eeac460850c9e6fbe4660cf99118f6bd0694342e3bd5
MD5 a266e6ae2dd0236f4d43c57789ec65d8
BLAKE2b-256 b201731365c23829dbf88b779694cb2681e2898bf7d0bd4ac1c17736d01643f2

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp35-cp35m-win32.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 2b8a3ebe8b617643fd7ca8b0b23daa31edf10d377b305787c0f45218c90cd349
MD5 76f8bc3b9017fcf4bb83cafc0039a05d
BLAKE2b-256 f56087f0d6e1edde4c17c72179d06c236ea51bd7dbc128d009503cef1dc1d5a4

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp27-cp27m-win_amd64.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp27-cp27m-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 2.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 1739f2a4ec216c6107078f1b8e842ce478a8fa2d26c1f7566e9b6918bc6a4e72
MD5 13096bbaf2f59e7b4016c9dda94a1d02
BLAKE2b-256 6b1565296469a5c7450826c90d19aa878e5cfedff665ee081d42fe187f380a65

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp27-cp27m-win32.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp27-cp27m-win32.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 2.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for fastmat-0.2a1-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 4353a6556e73cf0d7350ba7c62d3e3f8a283568dc4a22f9119fd9da57fda4be9
MD5 487744b9f98cc78d9a1ca846e16ac230
BLAKE2b-256 399dfd688514486a3501909a34753ce5c51791cc87d730736d23c77f4691c581

See more details on using hashes here.

File details

Details for the file fastmat-0.2a1-cp27-cp27m-macosx_10_6_intel.whl.

File metadata

  • Download URL: fastmat-0.2a1-cp27-cp27m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 2.7m, macOS 10.6+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.0

File hashes

Hashes for fastmat-0.2a1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 de0592eec1cb3174de1c14daec7ac6e45d1be2c7eda8b31e1dcac512afa34069
MD5 2d6ad8596471f27f523d21755048a866
BLAKE2b-256 bd06d7f69c58dcfe520d0a6064f7099380df2be2852875f4d8a3ea26502a71e2

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