GdMath: a fast math library for game development
Project description
GdMath: a fast math library for game development
Main features
- 100% Cython implementation (~30x speedup from pure python on average)
- Codegen based
- Linear Algebra
- Vector
- Pythonic and GLSL-like
- Operators +, -, *, /, @(dot), ^(cross), |(distance) ...
- Fast swizzling (e.g.
Vec3(1, 2, 3).zxy
) - Flexible constructor (e.g.
Vec3(Vec2(1, 2), 3)
) - Iterating and unpacking (e.g.
x, y, z = Vec3(1, 2, 3)
)
- Transform
- Transform2D & Transform3D
- Godot and GLSL like api
- Vector
Please refer to the wiki for more details
Implementation details
This library uses code generation.
Every swizzle pattern and constructor are implemented as individual methods and properties (For performance reasons).
As a result, code generation is required so that I don't have to maintain 50,000+ lines of code by hand...
Besides, it also has the convenience that vector classes of every dimension and type (e.g. Vec2 Vec3 Vec2i Vec3i) are generated from the same template, so a lot of repetitive code is avoided.
Notes
- This library was initially inspired by Godot's math library. (pun intended)
- FYI, when I was coding this, I didn't know about
Cython.Tempita
until it's too late. It'd probably be a lot easier if I knew it from the beginning and don't have to write as much codegen by myself... But I'd still need to do things like overloading by myself anyway, so it's not a big deal.
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
gdmath-1.4.0.tar.gz
(55.8 kB
view hashes)
Built Distributions
gdmath-1.4.0-cp312-cp312-win32.whl
(357.9 kB
view hashes)
gdmath-1.4.0-cp311-cp311-win32.whl
(354.0 kB
view hashes)
gdmath-1.4.0-cp310-cp310-win32.whl
(354.1 kB
view hashes)
gdmath-1.4.0-cp39-cp39-win32.whl
(354.5 kB
view hashes)
Close
Hashes for gdmath-1.4.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 498bb535b4d54159680b8f9b79052eb59c6a440f0e1c2f40832e6de3bcad0a7b |
|
MD5 | 77c767a5b0aedf204e1882ec1ff4f978 |
|
BLAKE2b-256 | ced72aff7364fce6b73692dffe4093f4fc48efacc339c299d3ee556bc2856d6b |
Close
Hashes for gdmath-1.4.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcc4da38c836e43a19a48d6400d1a8ec5390f2f8b920411d00a8ad3d848e477e |
|
MD5 | 7cf5fd0d96293b4400024b19254ec85c |
|
BLAKE2b-256 | 7e6a454178ffbb53aac05df9cfa065320f4ab53910507071ee833886a3f43603 |
Close
Hashes for gdmath-1.4.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 051378f83b8fcbe093f3d355a813db91a8f607a28367ee4762f9190b2c624558 |
|
MD5 | 80f2cc59b345af328d468e4d5aa4e9ac |
|
BLAKE2b-256 | e5356174d8d978d9aeea190cef1fa792b35bc68e5f2693cb3efba23b3c684e16 |
Close
Hashes for gdmath-1.4.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e9f835e4e6a92f80f63c1436919d0c2d2a4ae91de2869d7efcd13a17a16d330 |
|
MD5 | d84c5771fb6e04da248eb2aed2aa0c2b |
|
BLAKE2b-256 | 6f7dc343a85296f3cd6f3a244bad9d9d781900d8b1efce50be994dc6999e14e4 |
Close
Hashes for gdmath-1.4.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40d83648145d21be254704921a60baccfc8c6bdb1c45582a0d5847987b90fde3 |
|
MD5 | 9d95e2dddf7b1c4f7eda3adb264c5ffd |
|
BLAKE2b-256 | 3f1896861d9fd3b6b9ac44a855de1e0ebdd407bc057b20e4af0a915ea5b60669 |
Close
Hashes for gdmath-1.4.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac060e97d4df4dc060733a2b2808de72cad1503642b4ef889666cf21402cffa6 |
|
MD5 | 99e9a8f1a0dc3777af0c159989ac9940 |
|
BLAKE2b-256 | 26a4f9b119ef623d24b7fc8c025b13a394b215727d85923326f45abb3a9e49e1 |
Close
Hashes for gdmath-1.4.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a299951bf394e0def260c36a02dbdfc8b68799a2b2d6fe75aed5934dd88c9d69 |
|
MD5 | d224c680f0ed29e63440b14f627081ab |
|
BLAKE2b-256 | 11a74351de9b3a7e9d8327158a3d96d8fcfa7a96b0d222c9789669a7d8545748 |
Close
Hashes for gdmath-1.4.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79582894da5dbeb284940f0b93a8053445cdf579004885f27ac122c19f43d20b |
|
MD5 | 33e77b4cd837b25bce17fceef3f27ce6 |
|
BLAKE2b-256 | 634a7eb897b463f511cc679a25009006a08a4e5a5fcc197eb789e3d81abbf5fd |
Close
Hashes for gdmath-1.4.0-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9370bbc24a3bc4663791d9188d041ef1edd38e568e96278fdd31739b364305bb |
|
MD5 | 04fbdbdff2e028c6cd23fe53d4b5c605 |
|
BLAKE2b-256 | f5588a02418a9cf4d17c50724775fbb28ef1d0cb2b9b50c33f18feac5cab31c8 |
Close
Hashes for gdmath-1.4.0-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78274f9ac73408d413e7bfe49bab2e6f1b90966febe7ab7ffc2fb605740bc4e8 |
|
MD5 | 9012ba600294714635b5b75af504cd23 |
|
BLAKE2b-256 | ede591c78c72c71ecd02dbe7d7761c09650ad2d99a4649e1645e5cd2511ba53d |
Close
Hashes for gdmath-1.4.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cc345d93ef0cc7b407304fa02f16f97a8d7d0fd3c8c9b30817c8f838cb8bf77 |
|
MD5 | 9515e6a2c264c65841249b3b9af4e768 |
|
BLAKE2b-256 | f1c9cd3f2b9ee44e116f4e8c6a593482c7276b47b975154cdb545e3ff8605853 |
Close
Hashes for gdmath-1.4.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3c26609e6b3ef7b3d8c9668ec1d4fbca3670a9faa2c6a54fefb12762ffbd3b0 |
|
MD5 | d67e2e726b4b2bfcbf79bce114d67e64 |
|
BLAKE2b-256 | 0b3b428f1448a764d8c4cb7773987c9b3f99843b93f85ce2da3b775aa6a41af9 |
Close
Hashes for gdmath-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8e08fe448dec3c9c6cfbdc073975de2850830745ee3424f89c71e3bbbb22c2f |
|
MD5 | 5473016f080117e2ad89ba4db52473f5 |
|
BLAKE2b-256 | 0f017445bd87f025f1366d9595bc6ca0810a6cccb3a570147253a3ba7f6d5587 |
Close
Hashes for gdmath-1.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1719b7d3cae773261da75512c85d8c9cb7a33df1b76ed032fc2738fe42568bdd |
|
MD5 | 92c8e23b6e79518356de868c87ec3a34 |
|
BLAKE2b-256 | 145f366f0dd5873731f95f2b9312fb963abc386d0fda7d34ae08d8521ce2684d |
Close
Hashes for gdmath-1.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4b0bb0df86931bdb5364cc9e34c808a78437bace5344f54d592b59bc1fcd440 |
|
MD5 | f933546d4cbb540f8d1af16466c04ef9 |
|
BLAKE2b-256 | 39bf8d78304a97151ff799b7239d80fd7ea20cb67e2ccabf3aaf2eeaab8c1c52 |
Close
Hashes for gdmath-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 628cc972a7d844e3f35960d0e7df4637908fdd91042c5d70bd5d865b93c6d50d |
|
MD5 | 04fe9292cabb19333fda6259c9334077 |
|
BLAKE2b-256 | b6d2812d63c5d9d875b1258793613f91bac51ceacd1998dfc4bc5cd6dd7ddb71 |
Close
Hashes for gdmath-1.4.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c53f30376cdab62aa6fb36bf399195e3501293d8537f181c39306e0602cd599 |
|
MD5 | f6624fd742ce558c4cefc48bfc1869fe |
|
BLAKE2b-256 | e4875d28c2cb566b3a0354507b6bf7a4882927a98550d34f4118191903b34e5e |
Close
Hashes for gdmath-1.4.0-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f35684b35a2d05ee2cb3ca98b163c30f48d32857e93f100e6a782412ac3f484c |
|
MD5 | 8389381b729f846981502ce8d4666fa4 |
|
BLAKE2b-256 | 839d85fbb2ba08aafd5701831f8db593c3ecb5b631c3ecedaddfa2e4f295d474 |
Close
Hashes for gdmath-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 659f0e5f10eb4b527ccf5d1f31229ace8a26183538f9fd4f11f8c67c9bea9d15 |
|
MD5 | 3eb0780dc3e56f18ffa77102b1e9230c |
|
BLAKE2b-256 | 13cede9e739eb7b4a2de0512dd9735df240bfd5d6da619ef6970c5eb9b9648d0 |
Close
Hashes for gdmath-1.4.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ced51b96238956cc144e220516a92beb7cf548b6aa9150c8c37eb71bf410bb8b |
|
MD5 | 802b03fcaa73f3bebe82c2b45d599639 |
|
BLAKE2b-256 | 5297964fdd1c1adfa3ab7acf47976fe54d4c3f087c8f83377773b5d2c51b50f3 |
Close
Hashes for gdmath-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac586d8ea815c951946a496eba8d6e9b57e4da2f2b780bea3fd63cbc3e1290c8 |
|
MD5 | 34929f1093c669df64e8b11e3578c3a4 |
|
BLAKE2b-256 | aad54026b6225296e2ab6e58692f69e05fa151c01b1eebbdef9ec02d1b9e1254 |
Close
Hashes for gdmath-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e960aab56194d693c893b81d108009d5bf098cbbac447126ce917731c7834be |
|
MD5 | 93a8773ab041830bd9c75ee3b935b0db |
|
BLAKE2b-256 | 9faf63fef0ccaf9c364dcfca79e65d9d22828ccc7275e09dfd672a4ffbc66a2f |
Close
Hashes for gdmath-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 989f47f54e9b863bf45c6001dd84d432f4fb906bc20f2d4ed78b190de86a734d |
|
MD5 | aca05e4c42b3d5a3765d69df5bf91b7a |
|
BLAKE2b-256 | 9d002431543f01231616ba4c65743aaaebfeac544f6468d677756f77139b0051 |
Close
Hashes for gdmath-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c34fbd980773b6700b1538b44b4ab08212d49cda3333f8d795ebea0e945d676a |
|
MD5 | e0ef462e46c72a03d998cfe561c7d76f |
|
BLAKE2b-256 | 1d01ba12eb0a3a32068066df7984e2e103b50a28666e0a407d0005fc84135373 |
Close
Hashes for gdmath-1.4.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9f2e87da2dede98b46e30fafc81b47268af752ff76a91152f18e0f000f8e2b9 |
|
MD5 | ba289b629926d35f45be3fd4a98e9e89 |
|
BLAKE2b-256 | c942c37a18bc4be56dea3be20842126c077fc1d9d75fa10e97b435de16e06a6f |
Close
Hashes for gdmath-1.4.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a128cf5d0df0744f0a1f138dc6e9f1f29b7b7690be83c913012e38bb0106b559 |
|
MD5 | 3ec82a0ae37378384fb62d499ae27f8c |
|
BLAKE2b-256 | f57d5a633c3998ce27d2a70a1a194d7cf3567f0c9a4aa183497cf9bee04fdebb |
Close
Hashes for gdmath-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d87941944dc17d9fbc5c8a435f679d32b9f54319a500e10ed79e926531c1df5 |
|
MD5 | 5cdb6f3852173755f7b77d5157205a6b |
|
BLAKE2b-256 | 4b686e66e67443d2ba43705ffd70579f2aa06d8461afdb519cc4284482a336bf |
Close
Hashes for gdmath-1.4.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8d82106e72f4a0fad8896cea83e1b51984fd472d7a7403e393614cc6304a856 |
|
MD5 | 3319e3cbf9528854a78b49c957403f18 |
|
BLAKE2b-256 | e22a0dad7a565cf09d341e92748a1fabd4dc6c76fb7c2d9638b5b3699f8682cc |
Close
Hashes for gdmath-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e272bce7f56c54227ab911e3d6d4def59d156fb3fa403599d382214c641009d |
|
MD5 | bfe564be5305d08d3a7dafd9d5add625 |
|
BLAKE2b-256 | 0b126d96492859d37e4a4de7ae841209bdf36b2edf013a84af91c7cabbdd9654 |
Close
Hashes for gdmath-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d3cb862f12038e7554d61208d2db242d2e0799b3b41a5385589a293a787b8bd |
|
MD5 | 9f5451bd7b8ab9483c2448f17b3e2a61 |
|
BLAKE2b-256 | 2d9bb523d53e4128bca1674a09df4b169acb8a244036e428381a48db9597bcf0 |
Close
Hashes for gdmath-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d10297a84aa558315d1b50e161190252a397a3d720de06a13456d3349d3b467 |
|
MD5 | 3b88d747cc0149a8ed5460409616bbe1 |
|
BLAKE2b-256 | 58a3a7ba40caeb7eb2e8c1be05f553fa782f11aeb4fd54f2a28bc13cc16851de |
Close
Hashes for gdmath-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c098fef97c6c0cde5096e33a65ff4a1a4618c790af25c424b75e12ae6a02241 |
|
MD5 | 7501eb03973063e7466e1a8fb3542f89 |
|
BLAKE2b-256 | a83c45cf43b5dc8bf1a9cb8847aa8b371ae41e0e9f77492940cacf00ff82d736 |
Close
Hashes for gdmath-1.4.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 856b5e62268b78a2fc7f3167a05f9098846e8afc3c32eeb3084bc42755259801 |
|
MD5 | 619803a07cc9e798fc8eac72ffa409bd |
|
BLAKE2b-256 | 789a1b6dfaa50b08ae3aca603e5ad54ed05ca00e972671c52d57933bef5810fd |
Close
Hashes for gdmath-1.4.0-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98d41c612674a868365ea28156228b6d0379e8fdb820daa69d234d514589b588 |
|
MD5 | da9447242f4fa816d284d399146949e4 |
|
BLAKE2b-256 | 51cd470786135e68219da6f05225a28c033a158290670a27dc848d1c690f86df |
Close
Hashes for gdmath-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d99e92bdf7e12a6ce90a6ad5583a3387da09edb7d4408f5c97f49717427cc2e |
|
MD5 | 99ab0f829c8be626477f2fd130e4cb54 |
|
BLAKE2b-256 | 04019b8eaa3226f4987658666c1266e842bc8fd47043c051720b0e8252c20b7d |
Close
Hashes for gdmath-1.4.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76431e589c5c8adcc4c246df6abb90364fcee1bd816bde818af78b098487101b |
|
MD5 | 7dd99d5479f8966c49c147b2684b1cd1 |
|
BLAKE2b-256 | a431d6747dfbe0c61d835b9e58a052b29a1fc6456a80a5ba7146961276622b7a |
Close
Hashes for gdmath-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e42403bbba8ef1a1c615a96ec6298d7695dcb05709e18ec3bb8e2df0385488d |
|
MD5 | c062557ab7859a5aef3636e4266c2a59 |
|
BLAKE2b-256 | 298394ecff1805cb67599abf56954bb80960b7fc64851af13bf2783118cfae9b |
Close
Hashes for gdmath-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c311a4b52895000d9a39578c4fbdd357a46823ef1c2b5cb0a87c54fb106d83ef |
|
MD5 | e30c84cebf767cfaad744c6a58141b1b |
|
BLAKE2b-256 | 3f7619ecaccb1e84f7f2fab1c8fd1234c9dfdd653504835700867976333be4ed |
Close
Hashes for gdmath-1.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b15280c8ab341ffff2d0808bcdc2d24665e735bcd0500de86e0185e0aa46ebc |
|
MD5 | e7e9434b70710ec34ebac6c468f47197 |
|
BLAKE2b-256 | 1e7311f1e008efcbc72d8ec5aea506250d2a215044abaeabaa519050e271c48d |
Close
Hashes for gdmath-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04b5a36cab20c98d7345dff79c82b760c93f5a0535e6429db1afb8fb2c35141e |
|
MD5 | b41fdf6367058762ad9fff152dc6ee6e |
|
BLAKE2b-256 | ca7f3fc575f37147854a82afb17dbad738dcddf57c3462351faa2c35d8a9ef45 |