{ "info": { "author": "Nico Schl\u00f6mer", "author_email": "nico.schloemer@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development :: Libraries" ], "description": "# pyfma\n\n[Fused multiply-add](https://en.wikipedia.org/wiki/Multiply%E2%80%93accumulate_operation#Fused_multiply%E2%80%93add)\nfor Python.\n\n[![CircleCI](https://img.shields.io/circleci/project/github/nschloe/pyfma/master.svg?style=flat-square)](https://circleci.com/gh/nschloe/pyfma/tree/master)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/ambv/black)\n[![PyPi Version](https://img.shields.io/pypi/v/pyfma.svg?style=flat-square)](https://pypi.python.org/pypi/pyfma)\n[![GitHub stars](https://img.shields.io/github/stars/nschloe/pyfma.svg?logo=github&label=Stars&logoColor=white&style=flat-square)](https://github.com/nschloe/pyfma)\n\nFused multiply-add computes `(x*y) + z` with a _single rounding_. Useful for dot\nproducts, matrix multiplications, polynomial evaluations (e.g., with Horner's rule),\nNewton's method for evaluating functions, convolutions, artificial neural networks etc.\n\nUse as\n```python\nimport pyfma\n\nout = pyfma.fma(3.0, 2.0, 1.0) # 3.0*2.0 + 1.0 = 7.0\n```\nAlso works with NumPy inputs:\n```python\nimport numpy\nimport pyfma\n\nx = numpy.random.rand(3, 4, 5)\ny = numpy.random.rand(3, 4, 5)\nz = numpy.random.rand(3, 4, 5)\n\nout = pyfma.fma(x, y, z)\n```\n\nBuilt with [pybind11](https://github.com/pybind/pybind11).\n\n> **Caution**\n> The C/C++ implementation of FMA in *MS Windows* is [reportedly\n> broken](https://bugs.python.org/msg312480). Use with care.\n\n### Installation\n\npyfma can be [installed from the Python Package\nIndex](https://pypi.python.org/pypi/pyfma/), so with\n```\npip3 install pyfma --user\n```\nyou can install/upgrade.\n\n#### Manual installation\n\nFor manual installation (if you're a developer or just really keen on getting the\nbleeding edge version of pyfma), there are two possibilities:\n\n * Get the sources, type `python3 setup.py install`. This does the trick\n most the time.\n * As a fallback, there's a CMake-based installation. Simply go `cmake\n /path/to/sources/` and `make`.\n\n### Testing\n\nTo run the pyfma unit tests, check out this repository and type\n```\npytest\n```\n\n### License\n\npyfma is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nschloe/pyfma", "keywords": "", "license": "License :: OSI Approved :: MIT License", "maintainer": "", "maintainer_email": "", "name": "pyfma", "package_url": "https://pypi.org/project/pyfma/", "platform": "", "project_url": "https://pypi.org/project/pyfma/", "project_urls": { "Homepage": "https://github.com/nschloe/pyfma" }, "release_url": "https://pypi.org/project/pyfma/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Fused multiply-add for Python", "version": "0.1.1" }, "last_serial": 5429246, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9f118a9071d9780803b003d22211df63", "sha256": "79514717f8e632a0fb165e3d61222ed61202bea7b0e082f7b41c91e738f1fbc9" }, "downloads": -1, "filename": "pyfma-0.1.0.tar.gz", "has_sig": true, "md5_digest": "9f118a9071d9780803b003d22211df63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4120, "upload_time": "2018-02-21T10:45:12", "url": "https://files.pythonhosted.org/packages/a3/27/f9c88d493c09fae7e6f25301001a2aad8ed3e27cd36185454934c98583b1/pyfma-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4c80476f0509b89b492eaa6678687d91", "sha256": "2c9ea44c5e30ca8318ca794ff1e3941d3dc7958901b1a9c430d38734bf7b6f8d" }, "downloads": -1, "filename": "pyfma-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4c80476f0509b89b492eaa6678687d91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3411, "upload_time": "2019-06-21T06:19:12", "url": "https://files.pythonhosted.org/packages/20/be/57d2d76560ddd4c95683dd56bcc52dc15c8a1fe1589627a97e8a44810cca/pyfma-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c80476f0509b89b492eaa6678687d91", "sha256": "2c9ea44c5e30ca8318ca794ff1e3941d3dc7958901b1a9c430d38734bf7b6f8d" }, "downloads": -1, "filename": "pyfma-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4c80476f0509b89b492eaa6678687d91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3411, "upload_time": "2019-06-21T06:19:12", "url": "https://files.pythonhosted.org/packages/20/be/57d2d76560ddd4c95683dd56bcc52dc15c8a1fe1589627a97e8a44810cca/pyfma-0.1.1.tar.gz" } ] }