|
template<typename T , int C, int R, bool RM, bool V> |
static constexpr auto | eagine::math::rows (const matrix< T, C, R, RM, V > &) noexcept |
| Returns then number of matrix rows.
|
|
template<typename T , int C, int R, bool RM, bool V> |
static constexpr auto | eagine::math::columns (const matrix< T, C, R, RM, V > &) noexcept |
| Returns then number of matrix columns.
|
|
template<typename T , int C, int R, bool RM, bool V> |
static constexpr auto | eagine::math::row_major (const matrix< T, C, R, RM, V > &) noexcept |
| Indicates if a matrix is row-major.
|
|
template<typename T , int N, bool RM, bool V> |
static constexpr auto | eagine::math::dimension (const matrix< T, N, N, RM, V > &) noexcept |
| Returns the dimension of a square matrix.
|
|
template<int CI, int RI, typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_cm (const matrix< T, C, R, false, V > &m) noexcept -> std::enable_if_t<(CI< C &&RI< R), T > |
| Returns the matrix element at [CI, RI]. Column-major implementation.
|
|
template<int CI, int RI, typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_cm (const matrix< T, C, R, true, V > &m) noexcept -> std::enable_if_t<(CI< C &&RI< R), T > |
| Returns the matrix element at [CI, RI]. Row-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_cm (const matrix< T, C, R, false, V > &m, int ci, int ri) noexcept -> T |
| Returns the matrix element at [ci, ri]. Column-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_cm (const matrix< T, C, R, true, V > &m, int ci, int ri) noexcept -> T |
| Returns the matrix element at [ci, ri]. Row-major implementation.
|
|
template<int RI, int CI, typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_rm (const matrix< T, C, R, false, V > &m) noexcept -> std::enable_if_t<(CI< C &&RI< R), T > |
| Returns the matrix element at [RI, CI]. Column-major implementation.
|
|
template<int RI, int CI, typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_rm (const matrix< T, C, R, true, V > &m) noexcept -> std::enable_if_t<(CI< C &&RI< R), T > |
| Returns the matrix element at [RI, CI]. Row-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_rm (const matrix< T, C, R, false, V > &m, int ri, int ci) noexcept -> T |
| Returns the matrix element at [ri, ci]. Column-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::get_rm (const matrix< T, C, R, true, V > &m, int ri, int ci) noexcept -> T |
| Returns the matrix element at [ri, ci]. Row-major implementation.
|
|
template<int CI, int RI, typename T , int C, int R, bool V> |
static auto | eagine::math::set_cm (matrix< T, C, R, false, V > &m, T v) noexcept -> std::enable_if_t<(CI< C &&RI< R)> |
| Sets the matrix element at [CI, RI]. Column-major implementation.
|
|
template<int CI, int RI, typename T , int C, int R, bool V> |
static auto | eagine::math::set_cm (matrix< T, C, R, true, V > &m, T v) noexcept -> std::enable_if_t<(CI< C &&RI< R)> |
| Sets the matrix element at [CI, RI]. Row-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static void | eagine::math::set_cm (matrix< T, C, R, false, V > &m, int ci, int ri, T v) noexcept |
| Sets the matrix element at [ci, ri]. Column-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static void | eagine::math::set_cm (matrix< T, C, R, true, V > &m, int ci, int ri, T v) noexcept |
| Sets the matrix element at [ci, ri]. Row-major implementation.
|
|
template<int RI, int CI, typename T , int C, int R, bool V> |
static auto | eagine::math::set_rm (matrix< T, C, R, false, V > &m, T v) noexcept -> std::enable_if_t<(CI< C &&RI< R)> |
| Sets the matrix element at [RI, CI]. Column-major implementation.
|
|
template<int RI, int CI, typename T , int C, int R, bool V> |
static auto | eagine::math::set_rm (matrix< T, C, R, true, V > &m, T v) noexcept -> std::enable_if_t<(CI< C &&RI< R)> |
| Sets the matrix element at [RI, CI]. Row-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static void | eagine::math::set_rm (matrix< T, C, R, false, V > &m, int ri, int ci, T v) noexcept |
| Sets the matrix element at [ri, ci]. Column-major implementation.
|
|
template<typename T , int C, int R, bool V> |
static void | eagine::math::set_rm (matrix< T, C, R, true, V > &m, int ri, int ci, T v) noexcept |
| Sets the matrix element at [ri, ci]. Row-major implementation.
|
|
template<typename T , int C, int R, bool RM, bool V> |
static auto | eagine::math::transpose (const matrix< T, C, R, RM, V > &m) noexcept -> matrix< T, R, C, RM, V > |
| Transposes a matrix.
|
|
template<typename T , int C, int R, bool RM, bool V> |
static auto | eagine::math::reorder (const matrix< T, C, R, RM, V > &m) noexcept -> matrix< T, C, R, !RM, V > |
| Returns a matrix reordered (switches row/column major).
|
|
template<typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::make_row_major (matrix< T, C, R, true, V > m) noexcept -> matrix< T, C, R, true, V > |
| Returns a matrix ordered as row-major.
|
|
template<typename T , int C, int R, bool V> |
static auto | eagine::math::make_row_major (const matrix< T, C, R, false, V > &m) noexcept -> matrix< T, C, R, true, V > |
| Returns a matrix ordered as row-major.
|
|
template<typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::make_column_major (matrix< T, C, R, false, V > m) noexcept -> matrix< T, C, R, false, V > |
| Returns a matrix ordered as column-major.
|
|
template<typename T , int C, int R, bool V> |
static auto | eagine::math::make_column_major (const matrix< T, C, R, true, V > &m) noexcept -> matrix< T, C, R, false, V > |
| Returns a matrix ordered as column-major.
|
|
template<int I, typename T , int C, int R, bool RM, bool V> |
static constexpr auto | eagine::math::major_vector (const matrix< T, C, R, RM, V > &m) noexcept -> std::enable_if_t<(I<(RM ? R :C)), vector< T,(RM ? C :R), V >> |
| Returns the I-th major vector of a matrix.
|
|
template<int I, typename T , int C, int R, bool RM, bool V> |
static auto | eagine::math::minor_vector (const matrix< T, C, R, RM, V > &m) noexcept -> std::enable_if_t<(I<(RM ? C :R)), vector< T,(RM ? R :C), V >> |
| Returns the I-th minor vector of a matrix.
|
|
template<int I, typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::row (const matrix< T, C, R, true, V > &m) noexcept -> vector< T, C, V > |
| Returns the I-th row vector of a matrix. Row-major implementation.
|
|
template<int I, typename T , int C, int R, bool V> |
static auto | eagine::math::row (const matrix< T, C, R, false, V > &m) noexcept -> vector< T, C, V > |
| Returns the I-th row vector of a matrix. Column-major implementation.
|
|
template<typename T , int R, int C, bool RM, bool V> |
static auto | eagine::math::row (const matrix< T, C, R, RM, V > &m, int i) noexcept -> vector< T, C, V > |
| Returns the i-th row vector of a matrix.
|
|
template<int I, typename T , int C, int R, bool V> |
static constexpr auto | eagine::math::column (const matrix< T, C, R, false, V > &m) noexcept -> vector< T, R, V > |
| Returns the I-th column vector of a matrix. Column-major implementation.
|
|
template<int I, typename T , int C, int R, bool V> |
static auto | eagine::math::column (const matrix< T, C, R, true, V > &m) noexcept -> vector< T, R, V > |
| Returns the I-th column vector of a matrix. Row-major implementation.
|
|
template<typename T , int R, int C, bool RM, bool V> |
static auto | eagine::math::column (const matrix< T, C, R, RM, V > &m, int i) noexcept -> vector< T, R, V > |
| Returns the i-th column vector of a matrix.
|
|
template<typename T , int M, int N, int K, bool RM1, bool RM2, bool V> |
static auto | eagine::math::multiply (const matrix< T, K, M, RM1, V > &m1, const matrix< T, N, K, RM2, V > &m2) noexcept -> matrix< T, N, M, RM1, V > |
| Matrix multiplication function.
|
|
template<typename T , int C, int R, bool RM, bool V> |
static auto | eagine::math::multiply (const matrix< T, C, R, RM, V > &m, const vector< T, C, V > &v) noexcept -> vector< T, R, V > |
| Matrix-vector multiplication function.
|
|
template<typename MC1 , typename MC2 , typename = std::enable_if_t< is_matrix_constructor<MC1>::value && is_matrix_constructor<MC2>::value && are_multiplicable<constructed_matrix_t<MC1>, constructed_matrix_t<MC2>>::value>> |
static auto | eagine::math::operator* (const MC1 &mc1, const MC2 &mc2) noexcept |
| Multiplication operator for matrix constructors. More...
|
|