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.13.tar.gz (66.6 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.13-cp314-cp314t-win_amd64.whl (72.5 kB view details)

Uploaded CPython 3.14tWindows x86-64

numpy_quaternion-2024.0.13-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (193.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numpy_quaternion-2024.0.13-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (196.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

numpy_quaternion-2024.0.13-cp314-cp314t-macosx_11_0_arm64.whl (56.4 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp314-cp314t-macosx_10_15_x86_64.whl (62.2 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

numpy_quaternion-2024.0.13-cp314-cp314t-macosx_10_15_universal2.whl (88.0 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ universal2 (ARM64, x86-64)

numpy_quaternion-2024.0.13-cp314-cp314-win_amd64.whl (71.8 kB view details)

Uploaded CPython 3.14Windows x86-64

numpy_quaternion-2024.0.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (185.3 kB view details)

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

numpy_quaternion-2024.0.13-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (190.7 kB view details)

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

numpy_quaternion-2024.0.13-cp314-cp314-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp314-cp314-macosx_10_15_x86_64.whl (61.8 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

numpy_quaternion-2024.0.13-cp314-cp314-macosx_10_15_universal2.whl (87.1 kB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

numpy_quaternion-2024.0.13-cp313-cp313t-win_amd64.whl (71.0 kB view details)

Uploaded CPython 3.13tWindows x86-64

numpy_quaternion-2024.0.13-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (193.6 kB view details)

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

numpy_quaternion-2024.0.13-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (196.5 kB view details)

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

numpy_quaternion-2024.0.13-cp313-cp313t-macosx_11_0_arm64.whl (56.4 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp313-cp313t-macosx_10_13_x86_64.whl (62.1 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ x86-64

numpy_quaternion-2024.0.13-cp313-cp313t-macosx_10_13_universal2.whl (87.8 kB view details)

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

numpy_quaternion-2024.0.13-cp313-cp313-win_amd64.whl (70.3 kB view details)

Uploaded CPython 3.13Windows x86-64

numpy_quaternion-2024.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (185.3 kB view details)

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

numpy_quaternion-2024.0.13-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (190.9 kB view details)

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

numpy_quaternion-2024.0.13-cp313-cp313-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp313-cp313-macosx_10_13_x86_64.whl (61.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

numpy_quaternion-2024.0.13-cp313-cp313-macosx_10_13_universal2.whl (86.9 kB view details)

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

numpy_quaternion-2024.0.13-cp312-cp312-win_amd64.whl (70.3 kB view details)

Uploaded CPython 3.12Windows x86-64

numpy_quaternion-2024.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (185.2 kB view details)

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

numpy_quaternion-2024.0.13-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (190.8 kB view details)

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

numpy_quaternion-2024.0.13-cp312-cp312-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp312-cp312-macosx_10_13_x86_64.whl (61.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

numpy_quaternion-2024.0.13-cp312-cp312-macosx_10_13_universal2.whl (86.9 kB view details)

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

numpy_quaternion-2024.0.13-cp311-cp311-win_amd64.whl (70.3 kB view details)

Uploaded CPython 3.11Windows x86-64

numpy_quaternion-2024.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (183.7 kB view details)

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

numpy_quaternion-2024.0.13-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (188.4 kB view details)

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

numpy_quaternion-2024.0.13-cp311-cp311-macosx_11_0_arm64.whl (55.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp311-cp311-macosx_10_9_x86_64.whl (61.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

numpy_quaternion-2024.0.13-cp311-cp311-macosx_10_9_universal2.whl (86.6 kB view details)

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

numpy_quaternion-2024.0.13-cp310-cp310-win_amd64.whl (70.3 kB view details)

Uploaded CPython 3.10Windows x86-64

numpy_quaternion-2024.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (182.9 kB view details)

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

numpy_quaternion-2024.0.13-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (187.5 kB view details)

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

numpy_quaternion-2024.0.13-cp310-cp310-macosx_11_0_arm64.whl (55.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpy_quaternion-2024.0.13-cp310-cp310-macosx_10_9_x86_64.whl (61.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

numpy_quaternion-2024.0.13-cp310-cp310-macosx_10_9_universal2.whl (86.6 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for numpy_quaternion-2024.0.13.tar.gz
Algorithm Hash digest
SHA256 e155853fefdfb972b4674f47c30ddb12c825f3ab135a2ea14c67472905c49fd1
MD5 b64dbd4933acebce06a20b6c05af2860
BLAKE2b-256 63a0dad368bca6ef25e2c242fe9a774ee46143d2ab186c521fdc5342e95291a4

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 a5f29103a49dde42c8cd013426c271bd24a503bd7a65496b5c11a3aecb106658
MD5 d80ffd37e6e9830f2430ae7beb5536c4
BLAKE2b-256 9995d397789052e7929deaac93e2295ade90870c43d22a5965e5cc2e69efd5a1

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 835a79b24177a3b0af2479578de7745106b8c2dc34ebd0d930217dd4ee82f528
MD5 0ab4e8ff0f2fcfcaae826d75e8cc4891
BLAKE2b-256 b6422fccac5c4627107758a49c99f61b09f70ba724a5be1c0a69e4856b4414ef

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 d7f36242bc655a30261cfaf2638b88093e210bfc946f57ed7b8582ce19239108
MD5 d887ee6da71eb49086e0521aa5fd80dc
BLAKE2b-256 880d39ea31d3a04b2b2b5165fcdb29d92c6d2a8ab9bbf14ce56528cf6360a4c2

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c687d35a223c64455a918153e54c7650996e0d82bd418b46721d55daab2b2652
MD5 819c8f81b80b832a3a0f5b3871545f1f
BLAKE2b-256 f63bb90bf6d045f4b7dc810584da783c26835574dd1fac29f938981bae02723d

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cb6a3e770958591067e4a6aabbbea911edaf61cf15697f521ddce90f0594ac43
MD5 dedeb3cc1f1406d1cd0febf4cc89f828
BLAKE2b-256 7936c568a39a706b1305c27f97d196dcb800820e7db7de11dc0cb4bae9971bbe

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314t-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 ff5cdc7e34b540dbfd4b649deb042426e154b588eb9337a9b3694c9cbec1ccf8
MD5 dcbfd56a36647c9b1bf820e781dfae46
BLAKE2b-256 17c537db52a827f455c3b865ae065a8a1512d7d2d471bc95d912823a1fe3aa8a

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 619d149ba8a6b97f51818f440c78c66cb64d92b4829014fca3f1a23f00d1a9ea
MD5 431b339d3c089a35f56e568f6a214c39
BLAKE2b-256 53ae669cdaf6e265dd36eaa74f47c19a6c10040f0fa29a96e24632b42ca2a308

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 45b12a16c902e645d5d815be3f9699dfa06223c33f56127ac1b611367681a622
MD5 6921c3ea2b9e8d393d2542cb3d67766d
BLAKE2b-256 188127a56ae61f9b956bcbd305a9ce6a34a72f87f311a61690ba2f389fb15023

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 d2475745d8c5c97e28d9e15ad8a27ff5f9f0b89bb63580a971520da2ccc86f3e
MD5 641352aa7027349c6a49328c333c0334
BLAKE2b-256 e4f47a73bf4d5d3a181e412f9d276f0bf455c0ee20b803926c8e37701b82d05d

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 053f63f9f27dca61435533cd3f912e6f7b8b0a3a770f05f846f2014939556b8d
MD5 95eb6ee8f77a7a836b372ed3a9e78d95
BLAKE2b-256 e1a69d56ab21dcbbf2c903df23849a6b12f945ce2144d592424ca92a462121bb

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 07368592539aa03c779177a44342acde65bf3e46e39387ae55f4cdc36eccdac7
MD5 198fd24e80da72f06a3f2524bd10ba64
BLAKE2b-256 2cbd5b5ee95e61f5a8d7bce39a72a67f9efa9f268a8170bc96acd7fdb78c6afb

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 46d78886594559b2e9a35bc54461b3c1736a3b1442a34eec8a7c718ecbe617bb
MD5 d38033f36225ef6bf556ee32be8926fa
BLAKE2b-256 ca3fee965448f5617c2eda6c1a72dd2f47659ff7bf8ee15fc9f78e42eb8f4d84

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp313-cp313t-win_amd64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 9700dd4c9a2ca19890a1fcfb559e738b3d824ec8224e400eb146240cac03b0f7
MD5 c115bae7cce9c17afacd7f42e8df478b
BLAKE2b-256 983bf97ce15668d29ad79d7a34a5e3fecec8d1c22b713a7ade07ffa74aa0f952

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 77a6c9c10de8636cf3b7706045ef21edfc09746f73d4adb883b525ddcb19823a
MD5 5befdf75de749dda6859b61eefd7556d
BLAKE2b-256 ef0857ea9c58700211ef7ecbb30ee3bb076c9f9a4f12595f270b4cf5ea2da1e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 af4ee46bd834a822c200fb1dc8dc15bee8fa97e2286227fdd0acf243e6974fb9
MD5 c86d70b195df8700647f3dc65e818271
BLAKE2b-256 611b17612dc0517f30ea2679de936975a5c6c827e299ddcbb2b7cc9471b3de10

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41a84c60e50533f833c536475dc49bce4e53a5c100c639cf503f37216b49c8f8
MD5 acb3f18d352cfe05c3aa15cb2ff32fe7
BLAKE2b-256 d8c56a105c9a4ffbe3ec51cc45ed916f0a0d9aae35dc9a8dfd29e8cd66122043

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp313-cp313t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e0a299e25b6d874b4cd169afd0cf4b703a4ddc8817513eb425fa5a6488001116
MD5 cb78c95d76d40350419bc5a80104c2f5
BLAKE2b-256 bc3b343695fc743d2a0814ef9a221a52733c576abe08d17f3795e5b84bfa8355

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-cp313-cp313t-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313t-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 eb438f4d9ab1fd1697f884be0840944d0c55dd934065811473237451b96ec2e2
MD5 f92950e030ed13053a3b823c4fe90998
BLAKE2b-256 777777e84011dbe4bb08504e45052d7177efeed90cc66139922b6de467a9a4a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a8a847a3dbce1dbb4275d6e01ce59ac876da142affb82e6d66814fc1db3f4793
MD5 d711b924b8fee1467ddb2b9973b6e7c0
BLAKE2b-256 fbcc88846e576745bb962790d3a6581963a0b248a9335a800f601dc52fecd258

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1771afd3abe8477adc0af1fe7b2542eaebf31fafa64a134059e21f8b606d2f0e
MD5 744edffdd0a60ddcd9c66a5c4dd5f1c1
BLAKE2b-256 2ec43fe4f7957d6d79d508ff99a62951034bd19956f4d2c98ada26d5575ff3cc

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-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.13-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 b5596e429f3c15d736f23380c7d054903e44fdd4d07a2b9af6f75ec6c9acfe4c
MD5 872d742021c8a076253b637ff66a5566
BLAKE2b-256 fe21562f81ebae486f6068c12a2be7523c08c2a21110ed0773a1d38088248109

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87f062c9258baa5c00ee3dc8c90553314668551d8893d500e101eae25fc4826f
MD5 5aa0dda861a4c0105ca2ad2c0dc06bf6
BLAKE2b-256 af2bbb67708f88beea90bddc74229ac7eaa1d9c38c7415179e16a6cba013f5b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 070df97e1ad59d6a41b4759ddba53e214488de63c948f144c3c61c9374a64f8d
MD5 2008567831bc2bc76c0ecb0f2a634178
BLAKE2b-256 4f0b26ba2dbfe74da3a956828dee249483fdb90d0f1b08b2a55872ff20e12736

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 0cd3f2256debaffd8407d1829c1ced71d3b910e75245152d1be673fcb7f23f08
MD5 545e3d3aa759c395a01f2558ec159157
BLAKE2b-256 8360135ab1c887344d4f1e70a4025733b2e9e19f2349ac21106b713911620a40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a6f4b0d7002961e0d1e93fec77fc23b607f7840e99eeafe52d10502296601849
MD5 1dd0a37bb69a572c732168f309ec0b23
BLAKE2b-256 883c2fad7bec16d2180c138721ef70bc6a0b42bbcf1f3783d22b9cd4804d6cbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 174b555490222e129621e4fa26389487d027881807d73f9c0c8de457cb93a6c4
MD5 8888907cbcfd8c47e500827245c22275
BLAKE2b-256 76e0bdcef92b7b0eb83d2751f1994b584a7081c79be9e55096ac1ff9a16e7692

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-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.13-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 cc2e037ad4269a8f7c9ccf37711cae16451745822e0e77db5a4da7c3633c51d1
MD5 9d0df79480085d7753082b2104eba97c
BLAKE2b-256 07404058220b3d60890b62e0a2e8212e2546695827cf85e6186405ecf8ef33f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e64b15888c2d363fb1bd289f8d6f9785658edefe15acfc317395faca223a0ebb
MD5 b83a0af152b3349cd19ec26d60ddde92
BLAKE2b-256 dc9c6a64269df4f032d883c5da72052850ef94fb79743b70606719c1ca579c79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 95e35c3c1033984cdc0177c723f084c0e617d9065eb071287aae35b9d7f8d0f5
MD5 cfa179ecdbe0fb7fa9aa1c38a2ac2edb
BLAKE2b-256 bab2138065f2c50fd66b89623a5ee45d43d2341cfede4d7e0f7292075953ff12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 9663e8692eea26cae1936ebaaf518805037c59dc75811df1b702279ff72a6ebe
MD5 eb5806e3783199fb69990e81b52c2d37
BLAKE2b-256 0a75429a5c49ae52afa1d401c0d1cedd0adb79dccb00f471b8d04153826263e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1d4d6207929a4121fd065105771161f5327d008f3b49591d24ea8b439a477466
MD5 46cc7a3aec3ac77359450c72a3d3e1d6
BLAKE2b-256 3b5b3e6034b748629d7a23e9dac78a520ef7f12a41f385a2075d071ee11afdb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dfe75b8e27429547e4b30f20d98a62909505409210a44355d7f2e0349cda0178
MD5 186f843a1153c84db4d8072479bcda77
BLAKE2b-256 5269564bcea574aa32bc59ddf34516c757b3a3ac32452b6d9a644126b4d2bcd5

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-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.13-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 20629d806e1081dea5d7989271b7e1b5f38b4c9ad6e2a6add08be69739c80763
MD5 8eb3d51c0228c00e8d0a770cfedd723b
BLAKE2b-256 4c0403394fad3c7e0e56fd95c6534c85d248488a984b49cc635d4329dafe21bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c7e846247cd8fb87be42c442bc59f079b1251d2a3121818f0bddd7d54c22267
MD5 aeadfb4d01cfa5068f006f755e7e1963
BLAKE2b-256 29db370d466c6e1be404fe8bf881e36154d8da6374ec6b812e2c8e11e4804eae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 13233fdfff25230570a7f64af52ae11dcd4da37f9a8165df95a26e1b2e2dd62a
MD5 05734827ccd6242be0f9cad4bc570dc4
BLAKE2b-256 ff8bed2d8f4ec184225ebaf5e2999dcc5ca558a9d517efc82fb2e5431eee7e5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4786147c63d2314d92d78f326de946fa093bb98555fd84e5e2e2911fdafb6240
MD5 630623ae302f610b3c49f3efc9eac285
BLAKE2b-256 443ba944cd59ae64af8d9f30925f556b45d63bce135cdf304a4de755e23eea1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68dce4dfaf0a26e9f8e3819b9452a264050e1746bbaa0ce85281ed00913f70f5
MD5 3756b2e779ec584b1595a306150ff9c7
BLAKE2b-256 522c61417b3ea1723dd3a62f49f44f7cf0c7bbcd0193e03b6fe182c08e936a28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 51f698c64e53587fd8cb49aefbc6e66ac1a21a6d77dd501a0650a6b5541aa87a
MD5 5c7994fb9191118ba1df831026d5f7d4
BLAKE2b-256 97fc55313e092e6ae824524eb75b1c3b5b01504839153767bbbfa0b7c0d0ef96

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.13-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.13-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 e4da767ba9f44c9427ed244c7e9bb8c75f98f6efb32ed1b297b00e2fa8ee4202
MD5 d2a5e6dbfc334e43215a7e7838cd83ea
BLAKE2b-256 ed98b18cee3516fc028b8268a4c6f2159bd052b7dafcb5e03f2a59ded5015ac9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2684e34f566fa9028c88f3ce4b15c73e791544421b6d4b5bf2093a224b6e4448
MD5 ed2d9e746ec39d26435365800b722e53
BLAKE2b-256 e7b377cdbb048938002046353a07198b9bc7819d0393122da8741a38472b58ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 978b43861a7a5ec8a3d11a4b3794f00c13f4e29d6a71bf46ed37fd734569a88a
MD5 94ee61d412dc348611670bee4a79c229
BLAKE2b-256 62d0da3500651e65989306f737bab669cdca7f0076f4ef42c3660ac7b6c72766

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.13-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 02b3f1faee8f1e24771676545fd2802e367716f5caa913af78ab5310cfe4e163
MD5 8de2f03de967b2929f8528fcd3f9c2b3
BLAKE2b-256 fccfe0bd6680ccb4e5f549a5d5ecf084f2bf922cfc06280b0bee8bab44abb6ff

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