A Euclidean vector space module.
Project description
PyEVSpace
PyEVSpace is a Python Euclidean Vector Space module containing Euclidean vector and matrix types. The module is created by extending C code with the Python/C API to ensure the best performance and runs faster than the same code implemented directly in python. The python types are designed to be used to represent physical vectors and rotations between reference frames, however they can be utilized in other ways if so desired.
Install
The python module can be installed with
pip install pyevspace
Alternatively the repository can be downloaded or cloned using:
git clone https://github.com/qbizzle68/pyevspace.git
and built there using:
py setup.py build
This is only recommended if editing the source code and testing its functionality. Most users should install using pip
.
Usage
To use the module simply import the pyevspace module into your project:
from pyevspace import *
# create vector
vec = EVector(1, 2, 3)
# create matrix from sequences
mat = EMatrix( ((1, 3, 2), (7, 4, 3), (8, 4, 2)) )
# rotate vector
rotated = mat @ vec
The module only contains two types, and a handful of module level methods, so it is probably necessary to import everything. However, if you don't wish to overpopulate the namespace, you can import the module using an alias:
import pyevspace as evs
vec = evs.EVector()
Examples
Examples of numeric operators
v1 = EVector(1, 2, 3)
v2 = EVector(4, 5, 6)
print(v1 * 2)
# prints [ 2.00000, 4.00000, 6.00000 ]
print(v1 + v2)
# prints [ 5.00000, 7.00000, 9.00000 ]
print(v1 - v2)
# prints [-3.00000, -3.00000, -3.00000 ]
Examples of vector and matrix operators
v1 = EVector(1, 2, 3)
v2 = EVector(4, 5, 6)
m1 = EMatrix( EVector(4, 2, 3), EVector(8, 5, 2), EVector(4, 2, 1) )
print( dot(v1, v2) )
# prints 32.0
print( cross(v1, v2) )
# prints [ -3.00000, 6.00000, -3.00000 ]
print( det(m1) )
# prints -8.0
print( transpose(m1) )
# prints
# [ 4.00000, 2.00000, 3.00000 ]
# [ 8.00000, 5.00000, 2.00000 ]
# [ 4.00000, 2.00000, 1.00000 ]
Methods and operators
EVector
operators:
+
addition (otherEVector
)+=
inplace addition (otherEVector
)-
subtraction (otherEVector
)-=
inplace subtraction (otherEVector
)*
multiplication (floats or ints)*=
inplace multiplication (floats or ints)/
division (floats or ints)/=
inplace division (floats or ints)
EVector
methods:
mag()
magnitude of a vectormag2()
square of the magnitude of a vectornormalize()
normalizes a vectorcopy()
creates a deep copy of the vector[0]
gets the first comonent of a vector[1] = 4
sets the second comonent of a vector to 4
EMatrix
operators:
+
addition (otherEMatrix
)+=
inplace addition (otherEMatrix
)-
subtraction (otherEMatrix
)-=
inplace subtraction (otherEMatrix
)*
multiplication (floats or ints)*=
inplace multiplication (floats or ints)@
matrix multiplication (otherEMatrix
orEVector
)@=
inplace matrix multiplication (otherEMatrix
orEVector
)/
division (floats or ints)/=
inplace division (floats or ints)
EMatrix
methods:
get(row, column)
gets a component of a matrixset(row, column, value)
sets a comonent of a matrix to a valuecopy()
creates a deep copy of the matrix
module level methods:
dot(EVector, EVector)
vector dot productcross(EVector, EVector)
vector cross productnorm(EVector)
returns a normalized vectorvang(EVector, EVector)
computes the angle between two vectorsvxcl(EVector, EVector)
computes a vector exculded from anotherdet(EMatrix)
computes the determinate of a matrixtranspose(EMatrix)
computes the transpose of a matrix
License
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
Built Distribution
File details
Details for the file pyevspace-0.0.7.tar.gz
.
File metadata
- Download URL: pyevspace-0.0.7.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a65b5e807a4bcc2fe8937d7ac1bd88155d62f8e5ef4e8d60cefbbe663ae6b06 |
|
MD5 | 1e9f8feff1120fb8f0b50203d836c54d |
|
BLAKE2b-256 | efb65ffb0f4ee238aafcd0629705883d096fd2a7267c69821196774d7447fd8a |
File details
Details for the file pyevspace-0.0.7-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: pyevspace-0.0.7-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 16.1 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d64efdd4ba70d1011dfcbadc80a4d66d82cb601d27373fbcacfc58a4bf8228e |
|
MD5 | 66aa81186c62ee1d69a3efc693fc5452 |
|
BLAKE2b-256 | 944cdc8ec25c06884217655f4762a3047baf895539ce22bde2f772bf31e09dda |