| 1234567891011121314151617181920212223242526 |
- //
- // macro.h
- // matrix
- //
- // Created by Sam Jaffe on 2/17/24.
- // Copyright © 2024 Sam Jaffe. All rights reserved.
- //
- #include <math/vector/macro.h>
- #define MATRIX_DISABLE_IF_MATRIX(_type, t, r, c) \
- std::enable_if_t<!is_matrix_v<_type>, matrix<t, r, c>>
- #define MATRIX_FOR_EACH_RANGE(i, i_max, j, j_max) \
- for (size_t i = 0; i < i_max; ++i) \
- for (size_t j = 0; j < j_max; ++j)
- #define MATRIX_FOR_EACH(i, j) MATRIX_FOR_EACH_RANGE(i, R, j, C)
- #define MATRIX_CTOR_N_ARGS(N_IN) \
- DEFER_RESOLUTION matrix(REPEAT(N_IN, ARGN, COMMA, vector::vector<T, C>), \
- DEFERRED_ENABLE_IF_T(N_IN == R, bool) = true) \
- : matrix(std::array{REPEAT(N_IN, ARGN, COMMA)})
- #define MATRIX_CTOR_DEDUCTION(N_IN) \
- template <typename T, size_t N> \
- matrix(REPEAT(N_IN, ARGN, COMMA, vector::vector<T, N>))->matrix<T, N_IN, N>
|