Skip to main content

Add a quaternion dtype to NumPy

Project description

Test Status Documentation Status PyPI Version Conda Version MIT License DOI

Quaternions in numpy

This Python module adds a quaternion dtype to NumPy.

The code was originally based on code by Martin Ling (which he wrote with help from Mark Wiebe), but was rewritten with ideas from rational to work with newer python versions (and to fix a few bugs), and greatly expands the applications of quaternions.

See also the pure-python package quaternionic.

Quickstart

conda install -c conda-forge quaternion

or

python -m pip install --upgrade --force-reinstall numpy-quaternion

Optionally add --user after install in the second command if you're not using a python environment — though you should start.

Installation

Assuming you use conda to manage your python installation (which is currently the preferred choice for science and engineering with python), you can install this package simply as

conda install -c conda-forge quaternion

If you prefer to use pip, you can instead do

python -m pip install --upgrade --force-reinstall numpy-quaternion

(See here for a veteran python core contributor's explanation of why you should always use python -m pip instead of just pip or pip3.) The --upgrade --force-reinstall options are not always necessary, but will ensure that pip will update numpy if it has to.

If you refuse to use conda, you might want to install inside your home directory without root privileges. (Conda does this by default anyway.) This is done by adding --user to the above command:

python -m pip install --user --upgrade --force-reinstall numpy-quaternion

Note that pip will attempt to compile the code — which requires a working C compiler.

Finally, there's also the fully manual option of just downloading the code, changing to the code directory, and running

python -m pip install --upgrade --force-reinstall .

This should work regardless of the installation method, as long as you have a compiler hanging around.

Basic usage

The full documentation can be found on Read the Docs, and most functions have docstrings that should explain the relevant points. The following are mostly for the purposes of example.

>>> import numpy as np
>>> import quaternion
>>> np.quaternion(1,0,0,0)
quaternion(1, 0, 0, 0)
>>> q1 = np.quaternion(1,2,3,4)
>>> q2 = np.quaternion(5,6,7,8)
>>> q1 * q2
quaternion(-60, 12, 30, 24)
>>> a = np.array([q1, q2])
>>> a
array([quaternion(1, 2, 3, 4), quaternion(5, 6, 7, 8)], dtype=quaternion)
>>> np.exp(a)
array([quaternion(1.69392, -0.78956, -1.18434, -1.57912),
       quaternion(138.909, -25.6861, -29.9671, -34.2481)], dtype=quaternion)

Note that this package represents a quaternion as a scalar, followed by the x component of the vector part, followed by y, followed by z. These components can be accessed directly:

>>> q1.w, q1.x, q1.y, q1.z
(1.0, 2.0, 3.0, 4.0)

However, this only works on an individual quaternion; for arrays it is better to use "vectorized" operations like as_float_array.

The following ufuncs are implemented (which means they run fast on numpy arrays):

add, subtract, multiply, divide, log, exp, power, negative, conjugate,
copysign, equal, not_equal, less, less_equal, isnan, isinf, isfinite, absolute

Quaternion components are stored as double-precision floating point numbers — floats, in python language, or float64 in more precise numpy language. Numpy arrays with dtype=quaternion can be accessed as arrays of doubles without any (slow, memory-consuming) copying of data; rather, a view of the exact same memory space can be created within a microsecond, regardless of the shape or size of the quaternion array.

Comparison operations follow the same lexicographic ordering as tuples.

The unary tests isnan and isinf return true if they would return true for any individual component; isfinite returns true if it would return true for all components.

Real types may be cast to quaternions, giving quaternions with zero for all three imaginary components. Complex types may also be cast to quaternions, with their single imaginary component becoming the first imaginary component of the quaternion. Quaternions may not be cast to real or complex types.

Several array-conversion functions are also included. For example, to convert an Nx4 array of floats to an N-dimensional array of quaternions, use as_quat_array:

>>> import numpy as np
>>> import quaternion
>>> a = np.random.rand(7, 4)
>>> a
array([[ 0.93138726,  0.46972279,  0.18706385,  0.86605021],
       [ 0.70633523,  0.69982741,  0.93303559,  0.61440879],
       [ 0.79334456,  0.65912598,  0.0711557 ,  0.46622885],
       [ 0.88185987,  0.9391296 ,  0.73670503,  0.27115149],
       [ 0.49176628,  0.56688076,  0.13216632,  0.33309146],
       [ 0.11951624,  0.86804078,  0.77968826,  0.37229404],
       [ 0.33187593,  0.53391165,  0.8577846 ,  0.18336855]])
>>> qs = quaternion.as_quat_array(a)
>>> qs
array([ quaternion(0.931387262880247, 0.469722787598354, 0.187063852060487, 0.866050210100621),
       quaternion(0.706335233363319, 0.69982740767353, 0.933035590130247, 0.614408786768725),
       quaternion(0.793344561317281, 0.659125976566815, 0.0711557025000925, 0.466228847713644),
       quaternion(0.881859869074069, 0.939129602918467, 0.736705031709562, 0.271151494174001),
       quaternion(0.491766284854505, 0.566880763189927, 0.132166320200012, 0.333091463422536),
       quaternion(0.119516238634238, 0.86804077992676, 0.779688263524229, 0.372294043850009),
       quaternion(0.331875925159073, 0.533911652483908, 0.857784598617977, 0.183368547490701)], dtype=quaternion)

[Note that quaternions are printed with full precision, unlike floats, which is why you see extra digits above. But the actual data is identical in the two cases.] To convert an N-dimensional array of quaternions to an Nx4 array of floats, use as_float_array:

>>> b = quaternion.as_float_array(qs)
>>> b
array([[ 0.93138726,  0.46972279,  0.18706385,  0.86605021],
       [ 0.70633523,  0.69982741,  0.93303559,  0.61440879],
       [ 0.79334456,  0.65912598,  0.0711557 ,  0.46622885],
       [ 0.88185987,  0.9391296 ,  0.73670503,  0.27115149],
       [ 0.49176628,  0.56688076,  0.13216632,  0.33309146],
       [ 0.11951624,  0.86804078,  0.77968826,  0.37229404],
       [ 0.33187593,  0.53391165,  0.8577846 ,  0.18336855]])

It is also possible to convert a quaternion to or from a 3x3 array of floats representing a rotation matrix, or an array of N quaternions to or from an Nx3x3 array of floats representing N rotation matrices, using as_rotation_matrix and from_rotation_matrix. Similar conversions are possible for rotation vectors using as_rotation_vector and from_rotation_vector, and for spherical coordinates using as_spherical_coords and from_spherical_coords. Finally, it is possible to derive the Euler angles from a quaternion using as_euler_angles, or create a quaternion from Euler angles using from_euler_angles — though be aware that Euler angles are basically the worst things ever.1 Before you complain about those functions using something other than your favorite conventions, please read this page.

Dependencies

With the standard installation methods, hopefully you won't need to worry about dependencies directly. But in case you do, here's what you need to know.

The basic requirements for this code are reasonably current versions of python and numpy. In particular, python versions 3.10 through 3.13 are routinely tested. Because of its crucial dependence on numpy, this package can only support versions of python that are directly supported by numpy — which limits support to releases from the past few years. Old versions of python will work with older versions of this package, which are still available from PyPI and conda-forge. Some older versions of python may still work with newer versions of this package, but your mileage may vary.

However, certain advanced functions in this package (including squad, mean_rotor_in_intrinsic_metric, integrate_angular_velocity, and related functions) require scipy and can automatically use numba. Scipy is a standard python package for scientific computation, and implements interfaces to C and Fortran codes for optimization (among other things) need for finding mean and optimal rotors. Numba uses LLVM to compile python code to machine code, accelerating many numerical functions by factors of anywhere from 2 to 2000. It is possible to run all the code without numba, but these particular functions can be anywhere from 4 to 400 times slower without it.

Both scipy and numba can be installed with pip or conda. However, because conda is specifically geared toward scientific python, it is generally more robust for these more complicated packages. In fact, the main anaconda package comes with both numba and scipy. If you prefer the smaller download size of miniconda (which comes with minimal extras), you'll also have to run this command:

conda install numpy scipy numba

Bug reports and feature requests

Bug reports and feature requests are entirely welcome (with very few exceptions). The best way to do this is to open an issue on this code's github page. For bug reports, please try to include a minimal working example demonstrating the problem.

Pull requests are also entirely welcome, of course, if you have an idea where the code is going wrong, or have an idea for a new feature that you know how to implement.

This code is routinely tested on recent versions of both python (3.8 though 3.11) and numpy (>=1.13). But the test coverage is not necessarily as complete as it could be, so bugs may certainly be present, especially in the higher-level functions like mean_rotor_....

Acknowledgments

This code is, of course, hosted on github. Because it is an open-source project, the hosting is free, and all the wonderful features of github are available, including free wiki space and web page hosting, pull requests, a nice interface to the git logs, etc. Github user Hannes Ovrén (hovren) pointed out some errors in a previous version of this code and suggested some nice utility functions for rotation matrices, etc. Github user Stijn van Drongelen (rhymoid) contributed some code that makes compilation work with MSVC++. Github user Jon Long (longjon) has provided some elegant contributions to substantially improve several tricky parts of this code. Rebecca Turner (9999years) and Leo Stein (duetosymmetry) did all the work in getting the documentation onto Read the Docs.

Every change in this code is automatically tested on Github Actions. The code is downloaded and installed fresh each time, and then tested, on each of the different supported versions of python, on each of the supported platforms. This ensures that no change I make to the code breaks either installation or any of the features that I have written tests for. Github Actions also automatically builds the pip versions of the code hosted on pypi. Conda-forge also uses Github Actions to build the conda/mamba version hosted on anaconda.org. These are all free services for open-source projects like this one.

The work of creating this code was supported in part by the Sherman Fairchild Foundation and by NSF Grants No. PHY-1306125 and AST-1333129.



1 Euler angles are awful

Euler angles are pretty much the worst things ever and it makes me feel bad even supporting them. Quaternions are faster, more accurate, basically free of singularities, more intuitive, and generally easier to understand. You can work entirely without Euler angles (I certainly do). You absolutely never need them. But if you really can't give them up, they are mildly supported.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

numpy_quaternion-2024.0.9.tar.gz (67.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

numpy_quaternion-2024.0.9-cp313-cp313-win_amd64.whl (70.8 kB view details)

Uploaded CPython 3.13Windows x86-64

numpy_quaternion-2024.0.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (184.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numpy_quaternion-2024.0.9-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (190.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

numpy_quaternion-2024.0.9-cp313-cp313-macosx_11_0_arm64.whl (55.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpy_quaternion-2024.0.9-cp313-cp313-macosx_10_13_x86_64.whl (61.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

numpy_quaternion-2024.0.9-cp313-cp313-macosx_10_13_universal2.whl (86.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

numpy_quaternion-2024.0.9-cp312-cp312-win_amd64.whl (70.8 kB view details)

Uploaded CPython 3.12Windows x86-64

numpy_quaternion-2024.0.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (184.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numpy_quaternion-2024.0.9-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (190.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

numpy_quaternion-2024.0.9-cp312-cp312-macosx_11_0_arm64.whl (55.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpy_quaternion-2024.0.9-cp312-cp312-macosx_10_13_x86_64.whl (61.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

numpy_quaternion-2024.0.9-cp312-cp312-macosx_10_13_universal2.whl (86.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

numpy_quaternion-2024.0.9-cp311-cp311-win_amd64.whl (70.8 kB view details)

Uploaded CPython 3.11Windows x86-64

numpy_quaternion-2024.0.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (183.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numpy_quaternion-2024.0.9-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (188.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

numpy_quaternion-2024.0.9-cp311-cp311-macosx_11_0_arm64.whl (55.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpy_quaternion-2024.0.9-cp311-cp311-macosx_10_9_x86_64.whl (61.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

numpy_quaternion-2024.0.9-cp311-cp311-macosx_10_9_universal2.whl (86.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

numpy_quaternion-2024.0.9-cp310-cp310-win_amd64.whl (70.8 kB view details)

Uploaded CPython 3.10Windows x86-64

numpy_quaternion-2024.0.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (182.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numpy_quaternion-2024.0.9-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (187.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

numpy_quaternion-2024.0.9-cp310-cp310-macosx_11_0_arm64.whl (55.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpy_quaternion-2024.0.9-cp310-cp310-macosx_10_9_x86_64.whl (61.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

numpy_quaternion-2024.0.9-cp310-cp310-macosx_10_9_universal2.whl (86.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file numpy_quaternion-2024.0.9.tar.gz.

File metadata

  • Download URL: numpy_quaternion-2024.0.9.tar.gz
  • Upload date:
  • Size: 67.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for numpy_quaternion-2024.0.9.tar.gz
Algorithm Hash digest
SHA256 de0125055bb2fed019c1afe8fe5a9844739a46196a1ee8838fa6b6b2a149aaad
MD5 6e3ac0cb5665c00b2c0ab72a725eefe4
BLAKE2b-256 1a781e99d71c017eb7e1df2eb045caa42eb58443060c053b21449f6d3cc3029a

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3e73de609c0b7dd70fef279db0512e907edcaa969da5d432f0db79926be1e7e6
MD5 16e7219fc956bf4bfa27976cdf81c12e
BLAKE2b-256 0c1a36c55b38f3db3fd636f7a1be23dbc17e6528d55bf13e629850b9d8048cc2

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f3afc7526aed0ac80c12d64b04209f505b2611ad5964f117432a80628dd94272
MD5 a506eab36967e5758e7aff026b4f706a
BLAKE2b-256 eb7f56bee75d88bd0466ef704f859464f071c9da48e0b03f2af482485b813fe8

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 025e7403485dbcfe392812356bd0a5581fdd8b0150f5b304e4fed967e544cf89
MD5 2b74b744e6bd8f296cf56cc0fa62350c
BLAKE2b-256 682d22bfca64c229d74a38294e2e3021ecf6021938fa6f37cbf3d962ce04b986

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d716d17dbe8db4d71cf49592cb81b5c6125323bae7d36bccb8c4e8175cb3e48
MD5 c8da94c9e3b954586f959dd1aae5ae00
BLAKE2b-256 0af0b23540eb803cec6c63cf4d004cc51e40a75086250a12cdd6e88ace852239

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 bef717eecbd073a4f4c9aab72b96c0429888a458fd38586d6f3281564df47ed9
MD5 e13ef3c2e30a2611de6fe5b108b9d59f
BLAKE2b-256 250d1a10f78e74fc149d486fd481878c5175118a1c3507ee4661fe13f0511ce9

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 21227bea08be9a8e10a87c2bab8e58ec00f218ab925c6e53418905f3540bd42d
MD5 c78630c074c623eb764bf46ac39084a2
BLAKE2b-256 e5e5e079bb99ab3f76f8f073b3c7e8f39b96b74f12dda270ef78f5925023efc2

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 298090f4eb512b07f0e2e6b0bb3daa3ddb0a8d5eb43c582accd7515d0e8b1025
MD5 083a706929c169e1fb2e265ca9496cbf
BLAKE2b-256 3b88303bc8c5fd49b0dcef99b0dcd7d2d8709b54ba73bcfa15cc608525955189

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 112fda689b5e66fd7079a5bfbfaf95ba51e78167afb56484657788491854499a
MD5 21fe42e5ad0a7cc99589f2110822d724
BLAKE2b-256 6b79f32684cf06eaf2cbc78076e6fcc03ef5530a3aae96d8cf418f3294991e6c

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 5045fbe067bd14d50df0f9595dd85b248f4aa312f8c93a5c0ea83cf359cb63c7
MD5 8c621bceaf9718d554128da157274cef
BLAKE2b-256 3b4b0ffc89ccc964436117695da42966ac52cea66326da005268f2efa27ed187

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e1470b0a04e068a1bee285d3fc5a60670992a6697c60036517baa7cae4ad14d
MD5 11751d0f34837077d284b48606eecd99
BLAKE2b-256 9196984700059e3b49c152b08525783c596e19aaa2d0ea5308479a1d4e7c43b7

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b8b917f4d815b099aee978a4794ceaddea18d0604a3e405cc7e5351106abd726
MD5 fa4b1a8483b6322b69c39685b7db6358
BLAKE2b-256 a0998c1305b5e2fbf82a3819abb0b25ca5322ca0a77481cf45e34421ac25dd4e

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 c75588ce5b9d0849951e3973a16f8b376cd9e3c6a879b0dcaeb4e2e6541c589b
MD5 e2e792d5d656446b89b5ef718d212e0d
BLAKE2b-256 86d238d6d37d19e6a374510031aff609f24e5885667ef004601a76dbcf6b083d

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f54edb764f59a5b5cb1ba0b14055c3ac25db07d15f15d9142e17814bc15f6f6c
MD5 5ebed9a473969c8069f7c3d31e874534
BLAKE2b-256 c21943ec1ef1e51ceccb84ebe4381ce4cef5ead5912004af251d7bd132ea19af

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f5d6716127c177800c76e099a96fc823b824778528b7a897569b9cbf8f996e0
MD5 f37b75eb5d6d1bef7bcd8a39fe2104a4
BLAKE2b-256 f0133172a8654706cb1ea34660c74942eb27560bcca686a5e5b5872f1d260340

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 040783270aa26d934740a3e01f378d04ab4cee23a10fc07b43b931b9b301bba9
MD5 721e813ab1a4303504b91d9f0b3a0ecb
BLAKE2b-256 345431e916ef683be9e6d43b5bd751a135c9ca5ebd41767b396c4ccbeda51ff2

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0c3d0aa5041958f437a52fcdb4513a0d53302e81519b562ab5e609526fb135d
MD5 83cd117978b265dd8ae3167bfc2de69b
BLAKE2b-256 b4453e434c4acfd02a051e24280e2318c97363878c1986b44c32d0b9b6d3d2b8

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fbda4faec1b690e8edc398c0f49e020131c299a39714483de133e21dbd85050f
MD5 2c3f84e72394d87e4a0eca61d2863627
BLAKE2b-256 c417da67763f14f94ed157f4bb5e5e36c653749aa5a125c1e301eebb844a9719

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a60afc19935942fbdc6a9b6948fbb7a89c793c93895a9e44731d335c22baabdb
MD5 137f35d1f2313ca33ac1442a6e93e0c3
BLAKE2b-256 9a12b88daeca29f4e792e6d751fae458b16f2fe8610abaad3f8e589705e42b50

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 76bd8c320882b13aed5924820328488e064178eb4bdae904f14c4f95b58c9186
MD5 83d270929ed6c8466328f528219c1fba
BLAKE2b-256 22bdcdb9804fd6795bac1d4329eda7e2845c59299d173d4be2c3642087c4f7b7

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 90e58d34a8c04b48bd139aac3e4078eb17cc6639c2b1935917d7080376ffad63
MD5 9ca5d18a690e94a44d41ba962da7afd6
BLAKE2b-256 efe424bf985889181d3c68b1452029c66e9eeb931765e9938343ff10d4956861

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6a1af1987af9bf00b95c8578b072fa13dc38b6937f1f0a53eeea9cd5b8893a9d
MD5 c611729cdd514baa1a2540eb1a94a571
BLAKE2b-256 46be0ad6ed0b24b65e35775e9c270b377287199c4a0322d2dab2ee3df7e920ef

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d50b68b9269f9da8fea998c856e42c02307fa58d62880390d4217951d4923ded
MD5 a0279069f759930e118b2a1fae94f4f6
BLAKE2b-256 0e968ab39231e055cc5dc4fb12a07856c494436cba4ca21ea04d1fb9f13a455e

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7be09090b6dc2749bee54d0105e3c26eb63848b683daac30f9c85b909a58a6fa
MD5 bfa32fbdbe86685ce5f75e4e10a384c8
BLAKE2b-256 9b35ddf0fe4fe1c509b24682d9e962cdb3ecce1349331a48b111eb80b38653f0

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.9-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.9-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c12b1902e5774f50d00eb49712b0cbff4ff01933b7c8e31b305e976c428f883d
MD5 5f4220e7e270ec2c6e9c95a40ebd6c80
BLAKE2b-256 9d0ecfc21d3d012e244ce2bc3bdd269c084ab9a839411e59707b8f5d7095548a

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