Skip to main content

Fused multiply-add for Python

Project description

Fused multiply-add for Python.

CircleCI PyPi Version GitHub stars

Fused multiply-add computes (x*y) + z with a single rounding. Useful for dot products, matrix multiplications, polynomial evaluations (e.g., with Horner’s rule), Newton’s method for evaluating functions, convolutions, artificial neural networks etc.

Use as

import pyfma

out = pyfma.fma(3.0, 2.0, 1.0)  # 3.0*2.0 + 1.0 = 7.0

Also works with NumPy inputs:

import numpy
import pyfma

x = numpy.random.rand(3, 4, 5)
y = numpy.random.rand(3, 4, 5)
z = numpy.random.rand(3, 4, 5)

out = pyfma.fma(x, y, z)

Built with pybind11.

Caution The C/C++ implementation of FMA in MS Windows is reportedly broken. Use with care.

Installation

pyfma can be installed from the Python Package Index, so with

pip install -U pyfma

you can install/upgrade.

Manual installation

For manual installation (if you’re a developer or just really keen on getting the bleeding edge version of pyfma), there are two possibilities:

  • Get the sources, type sudo python setup.py install. This does the trick most the time.

  • As a fallback, there’s a CMake-based installation. Simply go cmake /path/to/sources/ and make.

Testing

To run the pyfma unit tests, check out this repository and type

pytest

Distribution

To create a new release

  1. bump the __version__ number (in setup.py and src/pyfma.i)

  2. publish to PyPi and GitHub:

    make publish

License

pyfma is published under the MIT license.

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

pyfma-0.1.0.tar.gz (4.1 kB view hashes)

Uploaded Source

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