#include "Platform.h" #include #include #include #ifndef _WIN32 int _vscprintf(const char * format, va_list pargs) { int retval; va_list argcopy; va_copy(argcopy, pargs); retval = vsnprintf(nullptr, 0, format, argcopy); va_end(argcopy); return retval; } #endif #ifdef _MSC_VER #include int fesetround(int RoundType) { static const unsigned int msRound[4] = {_RC_NEAR, _RC_CHOP, _RC_UP, _RC_DOWN}; int32_t res = _controlfp(msRound[RoundType], _MCW_RC); if (res == _RC_NEAR) { return FE_TONEAREST; } if (res == _RC_CHOP) { return FE_TOWARDZERO; } if (res == _RC_UP) { return FE_UPWARD; } if (res == _RC_DOWN) { return FE_DOWNWARD; } return FE_TONEAREST; } #endif