#pragma once #include #include #include #include struct alignas(16) Vec128 { public: union { int8_t m_I8[16]; int16_t m_I16[8]; int32_t m_I32[4]; int64_t m_I64[2]; uint8_t m_U8[16]; uint16_t m_U16[8]; uint32_t m_U32[4]; uint64_t m_U64[2]; float m_F32[4]; double m_F64[2]; }; private: template std::string ToStringInt(const T* x, int n, int w) { std::ostringstream oss; for (int i=0; i std::string ToStringUint(const T* x, int n, int w) { std::ostringstream oss; for (int i=0; i std::string ToStringHex(const T* x, int n, int w) { std::ostringstream oss; for (int i=0; i std::string ToStringFP(const T* x, int n, int w, int p) { std::ostringstream oss; oss << std::fixed << std::setprecision(p); for (int i=0; i