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 Distribution

fastmat-0.2a3.tar.gz (185.7 kB view hashes)

Uploaded Source

Built Distributions

fastmat-0.2a3-cp37-cp37m-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.7m Windows x86-64

fastmat-0.2a3-cp37-cp37m-win32.whl (2.0 MB view hashes)

Uploaded CPython 3.7m Windows x86

fastmat-0.2a3-cp37-cp37m-manylinux1_x86_64.whl (3.6 MB view hashes)

Uploaded CPython 3.7m

fastmat-0.2a3-cp37-cp37m-manylinux1_i686.whl (3.2 MB view hashes)

Uploaded CPython 3.7m

fastmat-0.2a3-cp37-cp37m-macosx_10_6_intel.whl (5.7 MB view hashes)

Uploaded CPython 3.7m macOS 10.6+ intel

fastmat-0.2a3-cp36-cp36m-win_amd64.whl (2.3 MB view hashes)

Uploaded CPython 3.6m Windows x86-64

fastmat-0.2a3-cp36-cp36m-win32.whl (2.0 MB view hashes)

Uploaded CPython 3.6m Windows x86

fastmat-0.2a3-cp36-cp36m-manylinux1_x86_64.whl (3.6 MB view hashes)

Uploaded CPython 3.6m

fastmat-0.2a3-cp36-cp36m-manylinux1_i686.whl (3.2 MB view hashes)

Uploaded CPython 3.6m

fastmat-0.2a3-cp36-cp36m-macosx_10_6_intel.whl (5.9 MB view hashes)

Uploaded CPython 3.6m macOS 10.6+ intel

fastmat-0.2a3-cp35-cp35m-win_amd64.whl (2.3 MB view hashes)

Uploaded CPython 3.5m Windows x86-64

fastmat-0.2a3-cp35-cp35m-win32.whl (1.9 MB view hashes)

Uploaded CPython 3.5m Windows x86

fastmat-0.2a3-cp35-cp35m-manylinux1_x86_64.whl (3.5 MB view hashes)

Uploaded CPython 3.5m

fastmat-0.2a3-cp35-cp35m-manylinux1_i686.whl (3.1 MB view hashes)

Uploaded CPython 3.5m

fastmat-0.2a3-cp35-cp35m-macosx_10_6_intel.whl (5.6 MB view hashes)

Uploaded CPython 3.5m macOS 10.6+ intel

fastmat-0.2a3-cp34-cp34m-win_amd64.whl (2.3 MB view hashes)

Uploaded CPython 3.4m Windows x86-64

fastmat-0.2a3-cp34-cp34m-win32.whl (2.0 MB view hashes)

Uploaded CPython 3.4m Windows x86

fastmat-0.2a3-cp34-cp34m-manylinux1_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.4m

fastmat-0.2a3-cp34-cp34m-manylinux1_i686.whl (3.1 MB view hashes)

Uploaded CPython 3.4m

fastmat-0.2a3-cp34-cp34m-macosx_10_6_intel.whl (5.6 MB view hashes)

Uploaded CPython 3.4m macOS 10.6+ intel

fastmat-0.2a3-cp27-cp27mu-manylinux1_x86_64.whl (3.5 MB view hashes)

Uploaded CPython 2.7mu

fastmat-0.2a3-cp27-cp27mu-manylinux1_i686.whl (3.2 MB view hashes)

Uploaded CPython 2.7mu

fastmat-0.2a3-cp27-cp27m-win_amd64.whl (2.5 MB view hashes)

Uploaded CPython 2.7m Windows x86-64

fastmat-0.2a3-cp27-cp27m-win32.whl (2.1 MB view hashes)

Uploaded CPython 2.7m Windows x86

fastmat-0.2a3-cp27-cp27m-manylinux1_x86_64.whl (3.5 MB view hashes)

Uploaded CPython 2.7m

fastmat-0.2a3-cp27-cp27m-manylinux1_i686.whl (3.2 MB view hashes)

Uploaded CPython 2.7m

fastmat-0.2a3-cp27-cp27m-macosx_10_6_intel.whl (5.8 MB view hashes)

Uploaded CPython 2.7m macOS 10.6+ intel

Supported by

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