40 constexpr auto x(T phi)
const {
48 constexpr auto y(T theta)
const {
56 constexpr auto z(T psi)
const {
68template <
typename T, std::
size_t N>
71 template <
typename... Scalars>
75 auto set_elem = [&](
const auto& s) {
79 ((void)set_elem(std::forward<Scalars>(scalars)), ...);
87template <
typename T, std::
size_t N>
90 constexpr auto operator()(std::size_t i, std::size_t j, T s)
const {
92 "Shear transform indices must be within matrix bounds");
Registered scalar supporting the Akreon Linalg's field arithmetic interface.
constexpr auto constexpr_sin(T x, int terms=16)
Approximate sine with a truncated Taylor recurrence.
constexpr auto constexpr_cos(T x, int terms=16)
Approximate cosine with a truncated Taylor recurrence.
constexpr std::size_t mat_rows_v
Registered compile-time row count after cv/ref normalization.
Euler angle rotation about 2d plane.
constexpr auto operator()(T phi) const
Euler angle rotation about 3d roll, pitch, and yaw angles.
constexpr auto x(T phi) const
constexpr auto z(T psi) const
constexpr auto y(T theta) const
Scale directions spanning N dim space.
constexpr auto operator()(Scalars... scalars) const
Shear transform where jth component "shears" ith direction.
constexpr auto operator()(std::size_t i, std::size_t j, T s) const
Owning, fixed-size, row-major matrix container over a scalar field.
Owning, fixed-size vector container.