5 # ifndef VCCC_MATH_MAT_EXPRESSION_HPP
6 # define VCCC_MATH_MAT_EXPRESSION_HPP
10 # include <type_traits>
19 template<
typename Derived>
27 rows = derived_traits::rows,
28 cols = derived_traits::cols,
33 static_assert((
rows > 0 &&
cols > 0),
"matrix size must be greater than 0");
59 template<
typename Derived>
61 std::false_type is_matrix_impl(...);
67 struct is_matrix : decltype(::vccc::internal::math::is_matrix_impl(std::declval<T>())) {};
71 template<
typename Derived>
72 struct std::tuple_size<
vccc::MatrixBase<Derived>>
73 : std::integral_constant<std::size_t, vccc::MatrixBase<Derived>::size> {};
77 template<std::
size_t I,
typename Derived>
Definition: matrix_base.hpp:20
constexpr value_type operator[](std::size_t i) const
Definition: matrix_base.hpp:42
constexpr derived_type & derived()
Definition: matrix_base.hpp:49
Derived derived_type
Definition: matrix_base.hpp:22
constexpr const derived_type & derived() const
Definition: matrix_base.hpp:46
constexpr value_type operator()(std::size_t i) const
static polymorphic virtual-like member functions
Definition: matrix_base.hpp:36
typename derived_traits::value_type value_type
Definition: matrix_base.hpp:24
internal::math::traits< derived_type > derived_traits
Definition: matrix_base.hpp:23
@ size
Definition: matrix_base.hpp:29
@ cols
Definition: matrix_base.hpp:28
@ rows
Definition: matrix_base.hpp:27
constexpr VCCC_INLINE_OR_STATIC detail::size_niebloid size
returns the size of a container or array
Definition: size.hpp:145
Definition: matrix.hpp:495
constexpr std::enable_if_t<(I< m *n), typename vccc::Matrix< T, m, n >::value_type & > get(vccc::Matrix< T, m, n > &matrix)
Definition: matrix.hpp:499
Definition: directory.h:12
Definition: matrix_base.hpp:67