16 #ifndef OPENKALMAN_EIGEN_TRAITS_CWISENULLARYOP_HPP 17 #define OPENKALMAN_EIGEN_TRAITS_CWISENULLARYOP_HPP 19 #include <type_traits> 24 template<
typename NullaryOp,
typename PlainObjectType>
35 struct has_params : std::bool_constant<
36 Eigen::CwiseNullaryOp<NullaryOp, PlainObjectType>::RowsAtCompileTime == Eigen::Dynamic or
37 Eigen::CwiseNullaryOp<NullaryOp, PlainObjectType>::ColsAtCompileTime == Eigen::Dynamic> {};
39 template<
typename Scalar>
40 struct has_params<Eigen::internal::scalar_constant_op<Scalar>> : std::true_type {};
42 template<
typename...Args>
43 struct has_params<Eigen::internal::linspaced_op<Args...>> : std::true_type {};
50 template<
typename Arg>
51 static constexpr
auto get_constant(
const Arg& arg)
53 return NullaryTraits::template get_constant(arg);
57 template<
typename Arg>
58 static constexpr
auto get_constant_diagonal(
const Arg& arg)
60 return NullaryTraits::template get_constant_diagonal(arg);
64 template<Applicability b>
65 static constexpr
bool one_dimensional = OpenKalman::one_dimensional<PlainObjectType, b>;
68 template<Applicability b>
69 static constexpr
bool is_square = square_shaped<PlainObjectType, b>;
72 template<TriangleType t>
73 static constexpr
bool is_triangular = NullaryTraits::template is_triangular<t>;
76 static constexpr
bool is_triangular_adapter =
false;
79 static constexpr
bool is_hermitian = NullaryTraits::is_hermitian;
86 #endif //OPENKALMAN_EIGEN_TRAITS_CWISENULLARYOP_HPP constexpr bool one_dimensional
Specifies that a type is one-dimensional in every index.
Definition: one_dimensional.hpp:83
Definition: indexible_object_traits.hpp:36
Definition: basics.hpp:41
Trait object providing get and set routines.
Definition: eigen-forward-declarations.hpp:502
Definition: eigen-forward-declarations.hpp:32
Definition: eigen-comma-initializers.hpp:20