16 #ifndef OPENKALMAN_MAKE_EIGEN_MATRIX_HPP 17 #define OPENKALMAN_MAKE_EIGEN_MATRIX_HPP 29 template<values::number Scalar, std::
size_t rows, std::
size_t columns = 1, std::convertible_to<Scalar> ... Args>
30 requires (rows != stdex::dynamic_extent) and (columns != stdex::dynamic_extent) and (
sizeof...(Args) == rows * columns)
32 template<
typename Scalar, std::size_t rows, std::size_t columns = 1,
typename ... Args, std::enable_if_t<
33 values::number<Scalar> and (stdex::convertible_to<Args, Scalar> and ...) and
34 (rows != stdex::dynamic_extent) and (columns != stdex::dynamic_extent) and (
sizeof...(Args) == rows * columns),
int> = 0>
40 std::tuple d_tup {Dimensions<rows>{}, Dimensions<columns>{}};
41 return make_dense_object_from<M>(std::move(d_tup),
static_cast<const Scalar
>(args)...);
50 template<std::size_t rows, std::size_t columns = 1,
values::number...Args> requires
51 (rows != stdex::dynamic_extent) and (columns != stdex::dynamic_extent) and (
sizeof...(Args) == rows * columns) and
54 template<std::size_t rows, std::size_t columns = 1,
typename ... Args, std::enable_if_t<(values::number<Args> and ...) and
55 (rows != stdex::dynamic_extent) and (columns != stdex::dynamic_extent) and (
sizeof...(Args) == rows * columns),
int> = 0>
69 template<values::number Scalar, std::convertible_to<Scalar>...Args> requires (not std::is_void_v<Scalar>)
71 template<
typename Scalar,
typename ... Args, std::enable_if_t<
72 values::number<Scalar> and (stdex::convertible_to<Args, Scalar> and ...) and (not std::is_void_v<Scalar>),
int> = 0>
86 template<
typename Scalar = void,
values::number ... Args> requires (std::is_void_v<Scalar>) and
89 template<
typename Scalar = void,
typename ... Args, std::enable_if_t<(values::number<Args> and ...) and std::is_void_v<Scalar>,
int> = 0>
auto make_eigen_matrix(const Args...args)
Make a native Eigen matrix from a list of coefficients in row-major order.
Definition: make_eigen_matrix.hpp:37
constexpr bool number
T is a numerical field type.
Definition: number.hpp:41
std::conditional_t< sizeof...(dims)==1, Eigen::Matrix< Scalar, detail::eigen_index_convert< dims >..., detail::eigen_index_convert< 1 > >, Eigen::Matrix< Scalar, detail::eigen_index_convert< dims >... > > eigen_matrix_t
An alias for a self-contained, writable, native Eigen matrix.
Definition: eigen-forward-declarations.hpp:491
Definition: eigen-forward-declarations.hpp:22