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.11.tar.gz (67.3 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.11-cp313-cp313-win_amd64.whl (70.0 kB view details)

Uploaded CPython 3.13Windows x86-64

numpy_quaternion-2024.0.11-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.11-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (190.5 kB view details)

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

numpy_quaternion-2024.0.11-cp313-cp313-macosx_11_0_arm64.whl (55.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpy_quaternion-2024.0.11-cp313-cp313-macosx_10_13_x86_64.whl (61.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

numpy_quaternion-2024.0.11-cp313-cp313-macosx_10_13_universal2.whl (86.5 kB view details)

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

numpy_quaternion-2024.0.11-cp312-cp312-win_amd64.whl (70.0 kB view details)

Uploaded CPython 3.12Windows x86-64

numpy_quaternion-2024.0.11-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.11-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.11-cp312-cp312-macosx_11_0_arm64.whl (55.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpy_quaternion-2024.0.11-cp312-cp312-macosx_10_13_x86_64.whl (61.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

numpy_quaternion-2024.0.11-cp312-cp312-macosx_10_13_universal2.whl (86.5 kB view details)

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

numpy_quaternion-2024.0.11-cp311-cp311-win_amd64.whl (70.0 kB view details)

Uploaded CPython 3.11Windows x86-64

numpy_quaternion-2024.0.11-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.11-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.11-cp311-cp311-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpy_quaternion-2024.0.11-cp311-cp311-macosx_10_9_x86_64.whl (61.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

numpy_quaternion-2024.0.11-cp311-cp311-macosx_10_9_universal2.whl (86.2 kB view details)

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

numpy_quaternion-2024.0.11-cp310-cp310-win_amd64.whl (70.0 kB view details)

Uploaded CPython 3.10Windows x86-64

numpy_quaternion-2024.0.11-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.11-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.11-cp310-cp310-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpy_quaternion-2024.0.11-cp310-cp310-macosx_10_9_x86_64.whl (61.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

numpy_quaternion-2024.0.11-cp310-cp310-macosx_10_9_universal2.whl (86.2 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for numpy_quaternion-2024.0.11.tar.gz
Algorithm Hash digest
SHA256 ab43880b515922ea23160bfeb034d884b17b01946d62936c2b2c84d3750ebeb7
MD5 5babea9b4875afe73df04ef0e5810dee
BLAKE2b-256 1aeb8771e0882366b348fa219c70c37def719ca03ddce172e267d2ac546fd89a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 96811e8504fdb20b3e24959df50099301039ff20e6c7fa6fe820c3d52078cfaf
MD5 5fb398298ab6b667686ecdd916abc34a
BLAKE2b-256 27caa286f319213d490f7e8e88bfe7443b850e50b3f751f340d71aeda1d22b64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 738978f3a6e15ed4b49cea5bc404af7a498e43727d1bd9c4a3129967f8a06c20
MD5 ea9a9abefb30c1cd984f6b03942696ef
BLAKE2b-256 13da76669be96e6a1b2f8afa3305c8692a42ccd0ae2ec46849722662c1cb8bc6

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.11-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.11-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 eedfe5b24348bd06306579c537e16475e357c5ba4fcfab76e47119eb271b1f71
MD5 9b591d4cac24587ac0b254dfd5f8b523
BLAKE2b-256 0f47213c176811a98abe1d308c9e2b700322f2bec0d96711ce2e6884debdecdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8570b75e656674ca5d1f00b8f1b906ffdb05e9e555ac92a77213950bd500e16e
MD5 64b914389b9815c0d440403fc004e8e8
BLAKE2b-256 4ef40a8b72d4905d70a40055d325868ac22f75064a0680074349551c06727b14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ceb403c04cff9d533f294d19d3951af3d2790af8d0bdf5a34979a75f1b7fa9e9
MD5 d99173ab39cbc6b8419de0f0b4304421
BLAKE2b-256 0ccf45c26d7332dbbfda237959dfc9971dc9acfbe6da2477a7d0235879ca13a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 43917700911d3c23f6ed6ab48803644ce91b15cdc0bc17b7ee4441fa31f8e9ce
MD5 8ef48a9322f6707853efc0d972f530e4
BLAKE2b-256 a2879fd539602f6573479e74c91c1b7ddf14db8c3332bc8d287cf0f8027f2760

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a5647842d0c0b0e791cac834cc7a48556cb4f00a63f3f8f16655f11210c51f51
MD5 fa8e909ec3c91fca92d82d32269bf4f7
BLAKE2b-256 752e61883ea53ce3e4c01d06a83a191b41bd330ece7767252ea364e6412835bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3d625b5440b702c43a5ca36a459e56117da64ba52ea1b187165ebd783d1bbcbc
MD5 1860c6d9426bf727849015cc63623d57
BLAKE2b-256 801b993c6fa11b70e040780e4935cd7e481c56f867608c34c3d0adff096d82a0

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.11-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.11-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 d016bb2ae13d12824c9cd63a919ca7a43275db2271446c58507336109d320863
MD5 4d049ed7e7c9530d6523d448395f4c6c
BLAKE2b-256 aa9baea12d9b1c6f954aa39158acda6dd5b6fc208959721b3807125d23aab621

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0e92babfb24fc9421d21fca7999f4b5296a8fffc54465a2ca41b70209dc4e9a
MD5 b0b2f56294fcb0eacce81a3fd8044436
BLAKE2b-256 ada1d8c4d5c6aabb9b70ab7eeb1c757b4e5cfab6afee3fac8d57e166ee0f2568

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0e0a5a1313c916e6876703d88ac3968ad18fefcffcdcbafad33b921813fbea5c
MD5 45c34f156122138bb993963ba0c0c81c
BLAKE2b-256 eed1e0816736a7179708f18d368c1d8f7d8b4714497c7cc3fcbf33fc973245bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 2c19339b8f1fbec2336d0a16b71cdebed76078da1b8a4fbd8f25612aaa7f701f
MD5 d67975b06f5f5f763a882c465c8a0d0f
BLAKE2b-256 ff3c43f6a3ff47951827b4b4483c1d4ebfc45645014d06507a7de557c92917e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9c459e2b06309e7d40e4e58c2b9cc2b31766c488957d7674795ca9c9ba8d52ac
MD5 0606564f46403db892a9bff0055aba63
BLAKE2b-256 4af2f52c06a0fa0733108d0b0fcdce01cb278b9017f4ed42d88c0423022b0943

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6bfd2dfb292b1726b0e471e75e287b04dfff9bfdca76a1856019599a0c23b6d8
MD5 91734cc9536df8e99c5ed2652879f783
BLAKE2b-256 107a13d1e7d0dcf457682bb9f002eaba258f448950d792ebaaea6120119e315a

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.11-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.11-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 2d4240ee43f7f492ca4d1141e16a973347b0d76ec69da7fa7855d1e8907a1040
MD5 74fbf7f2cdbd5f06c41781cd3991b31e
BLAKE2b-256 6de1d5e39e13b2f1a2a0e5ad27ef30bd468d76238f0ab1285d1394360250dcba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e88589decda0e5cbc48e65f5a6e7b0ff7dbd16403c7d3d559f0393eaca1aab63
MD5 f9c1f0f9ad35cb36849a774b70d22db9
BLAKE2b-256 33aa9b1ef740900eaa3b9c463b31cf7782a90320e4d9cacaf2f30aa0208c09a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 adc6749bbcecdd8c7dd8f978845bc6edcce897a7c91ade181e9b3de7cdcb98f0
MD5 a9c152702c1d65835cf9b493c8c8783f
BLAKE2b-256 d15f7c2fcf6d6bae4af97e74f73a8ce7691e7792a20ae0f4ed6ed815b610551c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 955e15520deb1a4c8c28e7314bc8a02413495edb87411d41ac43e17aac20ba86
MD5 3f89577b7072beddf51a0715df238de0
BLAKE2b-256 ec4e1ad2c2dca927000200ebc8462c049ff59afdcfdcd8b7b7bf0da0a5e7350b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 59b8cf91ada5618891606dcadf08f4787dfe9690c862a345ebab57a84e962a96
MD5 262a2d24c77910e7d4f462a33d966eea
BLAKE2b-256 be9408faee3e647c233898ca3913669a6b3a970655e76670864ed1e12dcbfc8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 38e9902a17d5b56f2d8b3bf47319a3e661c1d635ab5853eb27719160d9cd2955
MD5 2a75d6da251991814a3f236c8426ea81
BLAKE2b-256 14cf9ab2a941d121e84190193abf5bf3c18b1c948b4ec590b68dee295e2af8a2

See more details on using hashes here.

File details

Details for the file numpy_quaternion-2024.0.11-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.11-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ba41e3e182b32577f4dffecb17ef67db452fdcecface5b3500091aeb9e58809b
MD5 7567fb9120b689e22b5ded2f3888a9a4
BLAKE2b-256 5de36f4e12a160e4a1148e16f962693e630dfa2f808391590272c8bef983c12c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2edea0451147d29b67cec5cb606e42dd71dee0a307ffcc60177d39400e25e31a
MD5 e5a75c1580f67d3580d59701d9497296
BLAKE2b-256 56809fea16e0012df19b3403b13337c195940633c03e51bc8530241a9a6b86bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 86aa02975a991e50f4dd9104a69f5c6c11f37cae55a150a76b807efeb445a617
MD5 c4009fdeaf72d51283b309a660d64717
BLAKE2b-256 c53ec0a9728bae1d04bc6d79f5dc2dc1da4d3ee49962e46f2c73fb006e684f43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpy_quaternion-2024.0.11-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5d556dd36ac8da952ba6a5994b399e1e7643612915b06efedf92305a4a7dfb53
MD5 7d821a1d4dfd279c1e22179dbf169d33
BLAKE2b-256 c5016200e17ec3c19ecc1aaf304631691351bca2ea40cc91306fb443b87d983d

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