Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ickk/ega
PGA mathematics library
https://github.com/ickk/ega
mathematics
Last synced: about 16 hours ago
JSON representation
PGA mathematics library
- Host: GitHub
- URL: https://github.com/ickk/ega
- Owner: ickk
- Created: 2023-07-25T02:40:31.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2024-07-02T16:52:46.000Z (6 months ago)
- Last Synced: 2024-11-11T03:11:49.789Z (about 2 months ago)
- Topics: mathematics
- Language: Rust
- Homepage:
- Size: 344 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This repository contains (work-in-progress) sparse-implementations of 3D
Projective Geometric Algebra, intended for use in computer graphics.There is an implementation based on rigidgeometricalgebra.org (`rga`), and
there is also an implementation largely based on PGA4CS.pdf on bivector.net
(`ega`).---
There is basically complete test coverage, and most of the important operators
have been implemented. While `rga` is in a more "complete" state compared to
`ega` it would be possible to use either of the libraries, with the following
caveats:
- Some higher-level/compound operators (sandwich products, &c) do not yet have
their own sparse implementations;
- there is currently no feature enabling explicit SIMD optimisations;
- some desirable 3rd party traits do not yet have implementations (bytemuck,
serde, rand, mint);
- aside from the included unit tests, to my knowledge there has been no
extensive use of these libraries in production code or otherwise.Other considerations:
- While `mint` serves as a light-weight common interchange interface for
traditional gamedev math types, it occurs to me that (projective)
geometric-algebra libraries might be better served by their own interchange
crate; there-by allowing `ega`, `rga`, and other geometric algebra
implementations to co-exist.---
As indicated in the `LICENSE` files of the respective projects, each library is
distributed under permissive Apache2, MIT, and Zlib licenses; unless explicitly
stated otherwise, any contributions you intentionally submit for inclusion in
these works shall be licensed accordingly.