39 [[nodiscard]]
constexpr operator matrix<D>() const noexcept
52 ttlet x_mul = _v.xxxx() * _v;
53 ttlet y_mul = _v.yyyy() * _v;
54 ttlet z_mul = _v.zzzz() * _v;
56 auto twos =
f32x4(-2.0f, 2.0f, 2.0f, 0.0f);
57 auto one =
f32x4(1.0f, 0.0f, 0.0f, 0.0f);
58 ttlet col0 = one + addsub<0b0011>(z_mul.zwxy(), y_mul.yxwz()) * twos;
61 ttlet col1 = one + addsub<0b0110>(x_mul.yxwz(), z_mul.wzyx()) * twos;
64 ttlet col2 = one + addsub<0b0101>(y_mul.wzyx(), x_mul.zwxy()) * twos;