Jackalope / jmath (public) (License: GPLv3 or later) (since 2018-10-11) (hash sha1)
C++ conxstexpr template Math library with:
- multidimensional vectors and matrices
- geometry primitives with projection, distance and intersection functions
- coordinate systems conversions
- some routines

Depends on GCE-math C++ library as git submodule.

Used with clang (version 9 or 10) and gcc (version 9).
Written with C++17.
List of commits:
Subject Hash Author Date (UTC)
removed nodiscard from matrix *= operator and removed redundant function rotate(axis) 0dea084c205202125acfe390a248be61c962d393 jp.larry 2020-01-01 03:09:48
rafactoring update, matrix multiplication now works in different way 2f2e01d80896cd96428a9c9394382e6f040f92fb jp.larry 2019-12-31 11:00:01
round_down function 672a293659a39e29be0d84f28801cf2718070f10 Jackalope 2019-12-28 03:02:03
migw warning solved 80dec7906c5fe2dc026d6774fd526df2ded049cc Jackalope 2019-12-21 10:22:55
refactoring 8b9c8aef3bcbbe3a3a72160eacd15b2d8397524c jp.larry 2019-12-19 08:10:49
lookat and projection functions refactoring f37008f4ad0e4501e89a6a26b4270bc5d6080578 jp.larry 2019-12-16 10:58:53
gcem correct include 03e0350e04d3e1b2c9e7d4f58ef473ce9b5cf319 Your Name 2019-11-27 04:30:39
changed directories layout abcc3ff61e8246f0519498b755bfe23877626144 Your Name 2019-11-26 22:52:02
CMakeLists.txt added 41ddc92280ce3969f8b3f16efce7e63c8c70425a Your Name 2019-11-12 10:32:19
removed excess definition 67b8131470fbbf0d87f2f51cea6326fcdab8d180 Your Name 2019-07-07 12:24:10
gcem updated ff3d073843c2f3a153de930a3651ad8e02c1b7d1 jp.larry 2019-06-19 10:59:53
new functions 46561c6e97aa1ba2d0c41a19ba1977b0427b5f4b Your Name 2019-05-07 05:42:45
new functions 61e3c490daf394f07a4b9de2640d9e1b42fc2dd1 Your Name 2019-05-05 11:28:57
pragma removed 5843f3d68f0d3c08d5be7d16ef8c05db5bceda89 jp.larry 2019-05-01 12:31:57
uint replaced with unsigned int bbde30ca5f66601143ed8862aded9da0cd3aadf8 Your Name 2019-04-30 23:30:19
New enums for vector subscription (X, Y, Z, W, U, V indices) 760dc000f5349f72f8c73330801d1986c46dbb49 jp.larry 2019-04-29 10:43:53
new vector function 570b1dab1163d43426d70048a7ed51162127774e jp.larry 2019-04-26 04:45:13
new functions all vector summ, all vector equal to value ... a47df1be3233abb5e6e2f479b24725bb474cc483 jp.larry 2019-04-25 04:04:26
vector abs 85a414da1c952aa9ec9e2c9e4c8a938becb7a24d jp.larry 2019-04-20 14:11:03
gcem added as module 8a7946d3c3de780c6cee1bba325bb9e4b9490e42 Your Name 2019-03-18 22:05:51
Commit 0dea084c205202125acfe390a248be61c962d393 - removed nodiscard from matrix *= operator and removed redundant function rotate(axis)
Author: jp.larry
Author date (UTC): 2020-01-01 03:09
Committer name: jp.larry
Committer date (UTC): 2020-01-01 03:09
Parent(s): 2f2e01d80896cd96428a9c9394382e6f040f92fb
Signing key:
Tree: 4a951d98e4b9fd30e34c86b2152ec734c11e4c13
File Lines added Lines deleted
include/math/matrix/base.hpp 1 1
include/math/matrix/matrix_functions.hpp 0 6
File include/math/matrix/base.hpp changed (mode: 100644) (index 7b3ab1c..f45d03a)
... ... namespace math
29 29 } }
30 30
31 31 MATR_T template<int other_size, int other_vector_size, typename other_t> MATR_T template<int other_size, int other_vector_size, typename other_t>
32 [[nodiscard]] constexpr inline MATRIX&
32 constexpr inline MATRIX&
33 33 MATRIX::operator*=(const matrix<other_size, other_vector_size, other_t>& m) { MATRIX::operator*=(const matrix<other_size, other_vector_size, other_t>& m) {
34 34 static_assert(other_vector_size == vector_size); static_assert(other_vector_size == vector_size);
35 35 return *this = (*this) * m; return *this = (*this) * m;
File include/math/matrix/matrix_functions.hpp changed (mode: 100644) (index e44c862..2ea07de)
... ... namespace math
48 48 return mat; return mat;
49 49 } }
50 50 T_IMPL MATRIX(3) T_IMPL MATRIX(3)
51 rotation(VEC_ARG(3) x, VEC_ARG(3) y, VEC_ARG(3) z) {
52 return {{{x.x, y.x, z.x},
53 {x.y, y.y, z.y},
54 {x.z, y.z, z.z}}};
55 }
56 T_IMPL MATRIX(3)
57 51 rotation(const vector<3, vector<3, T>> &axis) { rotation(const vector<3, vector<3, T>> &axis) {
58 52 return rotation(axis.x, axis.y, axis.z); return rotation(axis.x, axis.y, axis.z);
59 53 } }
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/Jackalope/jmath

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/jmath

Clone this repository using git:
git clone git://git.rocketgit.com/user/Jackalope/jmath

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main