32double round_msvc(
double x) {
return (floor(x + 0.5)); }
39long __stdcall MyUnhandledExceptionFilter(
40 struct _EXCEPTION_POINTERS *ExceptionInfo) {
43 switch (ExceptionInfo->ExceptionRecord->ExceptionCode) {
44 case EXCEPTION_FLT_DENORMAL_OPERAND:
45 case EXCEPTION_FLT_DIVIDE_BY_ZERO:
46 case EXCEPTION_FLT_INEXACT_RESULT:
47 case EXCEPTION_FLT_INVALID_OPERATION:
48 case EXCEPTION_FLT_OVERFLOW:
49 case EXCEPTION_FLT_STACK_CHECK:
50 case EXCEPTION_FLT_UNDERFLOW:
52 return EXCEPTION_CONTINUE_EXECUTION;
55 return EXCEPTION_CONTINUE_SEARCH;
62int mysnprintf(
char *buffer,
int count,
const char *format, ...) {
66 va_start(arg, format);
67 ret = _vsnprintf(buffer, count, format, arg);
74int NextPow2(
int size) {
85extern "C" int clock_gettime_monotonic(
struct timespec *tv) {
86 static LARGE_INTEGER ticksPerSec;
89 if (!ticksPerSec.QuadPart) {
90 QueryPerformanceFrequency(&ticksPerSec);
91 if (!ticksPerSec.QuadPart) {
97 QueryPerformanceCounter(&ticks);
99 tv->tv_sec = (long)(ticks.QuadPart / ticksPerSec.QuadPart);
100 tv->tv_nsec = (long)(((ticks.QuadPart % ticksPerSec.QuadPart) * 1e9) /
101 ticksPerSec.QuadPart);
Extern C linked utilities.