5 # ifndef VCCC_MATH_MATRIX_MATRIX_SUB_HPP
6 # define VCCC_MATH_MATRIX_MATRIX_SUB_HPP
16 template<
typename LhsType,
typename RhsType>
17 struct traits<MatrixSub<LhsType, RhsType>> {
25 option = traits<LhsType>::option | traits<RhsType>::option | Flag::kReferenceUnsafe
27 using value_type =
typename LhsType::value_type;
36 template<
typename LhsType,
typename RhsType>
39 using lhs_type = internal::math::hold_type_selector_t<LhsType>;
40 using rhs_type = internal::math::hold_type_selector_t<RhsType>;
44 constexpr
MatrixSub(
const LhsType& lhs,
const RhsType& rhs) noexcept : lhs(lhs), rhs(rhs) {}
58 return MatrixSub<E1, E2>{*
static_cast<const E1*
>(&lhs), *
static_cast<const E2*
>(&rhs)};
Definition: matrix_base.hpp:20
Definition: matrix_sub.hpp:37
internal::math::hold_type_selector_t< RhsType > rhs_type
Definition: matrix_sub.hpp:40
constexpr MatrixSub(const LhsType &lhs, const RhsType &rhs) noexcept
Definition: matrix_sub.hpp:44
constexpr value_type operator[](std::size_t i) const
Definition: matrix_sub.hpp:48
internal::math::hold_type_selector_t< LhsType > lhs_type
Definition: matrix_sub.hpp:39
typename LhsType::value_type value_type
Definition: matrix_sub.hpp:42
constexpr value_type operator()(std::size_t i) const
Definition: matrix_sub.hpp:46
constexpr MatrixMinus< E > operator-(const MatrixBase< E > &lhs)
Definition: matrix_minus.hpp:52
Definition: directory.h:12
constexpr auto size(const C &c) -> decltype(c.size())
Definition: size.hpp:16
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35