static inline float4 quat(float re, const float3 &im) { return float4(re, im.x, im.y, im.z); } static inline float re(float qt[4]) { return qt[0]; } static inline float re(const float4 &v) { return v[0]; } static inline float3 im(float qt[4]) { return float3(qt[1], qt[2], qt[3]); } static inline float3 im(const float4 &v) { return float3(v[1], v[2], v[3]); }