3 #include <fastad_bits/util/shape_traits.hpp>
4 #if __cplusplus <= 201703L
25 #if __cplusplus <= 201703L
28 inline constexpr
bool is_scl_v = ad::util::is_scl_v<T>;
31 inline constexpr
bool is_vec_v = ad::util::is_vec_v<T>;
34 inline constexpr
bool is_mat_v = ad::util::is_mat_v<T>;
47 requires(
const T cx) {
49 { cx.size() } -> std::same_as<size_t>;
51 std::same_as<typename T::shape_t, ppl::scl>
56 requires(
const T cx) {
58 { cx.size() } -> std::same_as<size_t>;
60 std::same_as<typename T::shape_t, ppl::vec>
65 requires(
const T cx) {
67 { cx.size() } -> std::same_as<size_t>;
69 std::same_as<typename T::shape_t, ppl::mat>
102 std::is_same_v<T, ppl::scl> ||
103 std::is_same_v<T, ppl::vec> ||
104 std::is_same_v<T, ppl::mat>
112 template <
class V,
class T>
121 using type = Eigen::Map<Eigen::Matrix<V, Eigen::Dynamic, 1>>;
127 using type = Eigen::Map<Eigen::Matrix<V, Eigen::Dynamic, Eigen::Dynamic>>;
131 template <
class V,
class T>