Metadata-Version: 2.1
Name: numba-quaternion
Version: 0.1.0
Summary: Some convenience functions for Cosmology-related analysis.
Home-page: https://github.com/ickc/numba_quaternion
License: BSD-3-Clause
Keywords: cosmology,CMB
Author: Kolen Cheung
Author-email: christian.kolen@gmail.com
Requires-Python: >=3.8
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Utilities
Provides-Extra: docs
Provides-Extra: extras
Provides-Extra: tests
Requires-Dist: coloredlogs (>=14,<16); extra == "extras"
Requires-Dist: coverage; extra == "tests"
Requires-Dist: coveralls; extra == "tests"
Requires-Dist: flake8; extra == "tests"
Requires-Dist: numba (>=0.52)
Requires-Dist: numpy (>=1,<2)
Requires-Dist: pygments-style-solarized; extra == "docs"
Requires-Dist: pytest-cov; extra == "tests"
Requires-Dist: pytest-parallel; extra == "tests"
Requires-Dist: pytest; extra == "tests"
Requires-Dist: sphinx (>=3.3,<4.0); extra == "docs"
Requires-Dist: sphinx-bootstrap-theme; extra == "docs"
Requires-Dist: sphinxcontrib-apidoc; extra == "docs"
Project-URL: Documentation, https://ickc.github.io/numba_quaternion
Project-URL: Repository, https://github.com/ickc/numba_quaternion
Description-Content-Type: text/x-rst

.. This is auto-generated from `docs/README.md`. Do not edit this file directly.

==================================================================================
numba_quaternion—quaternion operations that can be used within Numba-jit functions
==================================================================================

:Date:   March 18, 2021

.. contents::
   :depth: 3
..

+-------------+----------------------------------------------------------------------------------+
| docs        | |Documentation Status| |image2|                                                  |
+=============+==================================================================================+
| tests       | |GitHub Actions| |Coverage Status|                                               |
|             |                                                                                  |
|             | |Codacy Code Quality Status| |Scrutinizer Status| |CodeClimate Quality Status|   |
+-------------+----------------------------------------------------------------------------------+
| package     | |Supported versions| |Supported implementations| |PyPI Wheel|                    |
|             |                                                                                  |
|             | |PyPI Package latest release| |GitHub Releases| |Development Status| |Downloads| |
|             |                                                                                  |
|             | |Commits since latest release| |License|                                         |
+-------------+----------------------------------------------------------------------------------+
| conda-forge | |Conda Recipe| |Conda Downloads| |Conda Version| |Conda Platforms|               |
+-------------+----------------------------------------------------------------------------------+

Introduction
============

This package contains some numba-jit-compiled functions that perform Quaternion operations and a convenient class ``Quaternion`` that provide convenient methods wrapping around those functions.

``Quaternion`` behaves like a Numpy array containing quaternion, e.g. respect Numpy broadcast operations, but without really imitating a ``numpy.ndarray`` and implemented a ``dtype``.

This design allows you to write any jit-compiled functions involving those provided jit-compiled functions, and then write your own class methods that calls those functions as a convenient interface (by class inheritance.)

If you do not care to use Quaternion in other jit-compiled functions you write, check out packages below instead.

Other Python quaternion projects
================================

Other Python projects that implements quaternions and I knew and used are:

-  `zonca/quaternionarray <https://github.com/zonca/quaternionarray>`__: written in pure Python using Numpy. Note that unusually they put the real part in the last column. ``lastcol_quat_to_canonical`` and ``canonical_quat_to_lastcol`` convert between those and the canonical ordering (where real part comes first.)
-  `hpc4cmb/toast <https://github.com/hpc4cmb/toast>`__: toast.qarray is a reimplementation of the above quaternionarray package in C++ with the same interface, and following the same convention.
-  `moble/quaternion <https://github.com/moble/quaternion>`__: implement Quaternion as a Numpy dtype in C.
-  `moble/quaternionic <https://github.com/moble/quaternionic>`__: implement Quaternion as a Numpy dtype using Numba. This package is inspired by my expectation of quaternionic—I expected I could use them in a Numba-jit-compiled function but it doesn’t.

.. |Documentation Status| image:: https://readthedocs.org/projects/python-numba_quaternion/badge/?version=latest
   :target: https://python-numba_quaternion.readthedocs.io/en/latest/?badge=latest&style=plastic
.. |image1| image:: https://github.com/ickc/python-numba_quaternion/workflows/GitHub%20Pages/badge.svg
   :target: https://ickc.github.io/python-numba_quaternion
.. |GitHub Actions| image:: https://github.com/ickc/python-numba_quaternion/workflows/Python%20package/badge.svg
.. |Coverage Status| image:: https://codecov.io/gh/ickc/python-numba_quaternion/branch/master/graphs/badge.svg?branch=master
   :target: https://codecov.io/github/ickc/python-numba_quaternion
.. |Codacy Code Quality Status| image:: https://img.shields.io/codacy/grade/078ebc537c5747f68c1d4ad3d3594bbf.svg
   :target: https://www.codacy.com/app/ickc/python-numba_quaternion
.. |Scrutinizer Status| image:: https://img.shields.io/scrutinizer/quality/g/ickc/python-numba_quaternion/master.svg
   :target: https://scrutinizer-ci.com/g/ickc/python-numba_quaternion/
.. |CodeClimate Quality Status| image:: https://codeclimate.com/github/ickc/python-numba_quaternion/badges/gpa.svg
   :target: https://codeclimate.com/github/ickc/python-numba_quaternion
.. |Supported versions| image:: https://img.shields.io/pypi/pyversions/python-numba_quaternion.svg
   :target: https://pypi.org/project/python-numba_quaternion
.. |Supported implementations| image:: https://img.shields.io/pypi/implementation/python-numba_quaternion.svg
   :target: https://pypi.org/project/python-numba_quaternion
.. |PyPI Wheel| image:: https://img.shields.io/pypi/wheel/python-numba_quaternion.svg
   :target: https://pypi.org/project/python-numba_quaternion
.. |PyPI Package latest release| image:: https://img.shields.io/pypi/v/python-numba_quaternion.svg
   :target: https://pypi.org/project/python-numba_quaternion
.. |GitHub Releases| image:: https://img.shields.io/github/tag/ickc/python-numba_quaternion.svg?label=github+release
   :target: https://github.com/ickc/python-numba_quaternion/releases
.. |Development Status| image:: https://img.shields.io/pypi/status/python-numba_quaternion.svg
   :target: https://pypi.python.org/pypi/python-numba_quaternion/
.. |Downloads| image:: https://img.shields.io/pypi/dm/python-numba_quaternion.svg
   :target: https://pypi.python.org/pypi/python-numba_quaternion/
.. |Commits since latest release| image:: https://img.shields.io/github/commits-since/ickc/python-numba_quaternion/v0.13.4.svg
   :target: https://github.com/ickc/python-numba_quaternion/compare/v0.13.4...master
.. |License| image:: https://img.shields.io/pypi/l/python-numba_quaternion.svg
.. |Conda Recipe| image:: https://img.shields.io/badge/recipe-python-numba_quaternion-green.svg
   :target: https://anaconda.org/conda-forge/python-numba_quaternion
.. |Conda Downloads| image:: https://img.shields.io/conda/dn/conda-forge/python-numba_quaternion.svg
   :target: https://anaconda.org/conda-forge/python-numba_quaternion
.. |Conda Version| image:: https://img.shields.io/conda/vn/conda-forge/python-numba_quaternion.svg
   :target: https://anaconda.org/conda-forge/python-numba_quaternion
.. |Conda Platforms| image:: https://img.shields.io/conda/pn/conda-forge/python-numba_quaternion.svg
   :target: https://anaconda.org/conda-forge/python-numba_quaternion
.. |image2| image:: https://github.com/ickc/python-numba_quaternion/workflows/GitHub%20Pages/badge.svg
   :target: https://ickc.github.io/python-numba_quaternion

