| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
std::exception OO tree instance is included (as they are not using virtual base classes)
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
multi Matrix ops
|
|
|
|
| |
assignment op
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(perfomance)
Native C++ Mat4f multiplications beat JOGL's Matrix4f Java implementation by factor >13 (Java-17/C++ -O3),
utilizing same code logic.
Java:
Summary loops 25000000: I4a 1080 ms total, 0.021600 us/mul, I4a / I2 141.732283%, I4a / I4b 99.447514%
Summary loops 25000000: I4b 1086 ms total, 0.021720 us/mul, I4b / I2 142.519685%, I4b / I4a 100.555556%
C++:
Summary loops 300000000: I4a 981 ms total (981,836 us), 1.636394 ns/mul, I4a / I4b 99.785742%
Summary loops 300000000: I4b 983 ms total (983,944 us), 1.639908 ns/mul, I4b / I4a 100.214718%
Java: 21.600 ns/mul <- 0.021600 us/mul
C++: 1.64 ns/mul
Java / C++: >13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
enforce 'constexpr'; mat4f dropped Stack for constexpr; Dropped math.cpp having clear dependencies
Dropped math.cpp having clear dependencies
Adding ctor w/ initializer_list
Enforcing 'constexpr' where possible also enforces strict aliasing etc,
hence resulting in a more tight definition.
Template types for floating-point or integral types are used,
added the generic inner class typedef variations used in methods for clarity
and proper meta-programming.
alignas() on base type enforces utilization with arrays.
operator[] uses address of first element w/ strict alignment
and proper type (for constexpr).
|
| |
|
|
|
|
| |
operator*(const Vec4f&)
|
|
|
|
| |
[v]format_string(..) for [v]printf(..) formatting a string
|
| |
|
|
gfxbox2 and certain Jogl of mine classes to jau::math::**
Chosen CamelCase (PascalCase) for class types, differing from gfxbox2.
Status:
- Compile clean
- Tests
-- test_math_float.cpp: Covers epsilon/zero/equal/compare/IEC559 of float_math.hpp
-- test_math_vec.cpp: Covers Vec2f + Vec3f (TODO)
-- TODO: Mat4f, Quaternion, Frustum, ...
|