#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "sleefsimd.h" static jmp_buf sigjmp; static void sighandler(int signum) { longjmp(sigjmp, 1); } int detectFeature() { signal(SIGILL, sighandler); if (setjmp(sigjmp) == 0) { #ifdef ENABLE_DP double s[VECTLENDP]; int i; for(i=0;i= 2) { i = read(fd, buf, 1); if (i != 1) return i; if (*buf == '\n') break; rcnt++; buf++; cnt--; } *++buf = '\0'; rcnt++; return rcnt; } int startsWith(char *str, char *prefix) { return strncmp(str, prefix, strlen(prefix)) == 0; } double u2d(uint64_t u) { union { double f; uint64_t i; } tmp; tmp.i = u; return tmp.f; } uint64_t d2u(double d) { union { double f; uint64_t i; } tmp; tmp.f = d; return tmp.i; } float u2f(uint32_t u) { union { float f; uint32_t i; } tmp; tmp.i = u; return tmp.f; } uint32_t f2u(float d) { union { float f; uint32_t i; } tmp; tmp.f = d; return tmp.i; } typedef struct { double x, y; } double2; #ifdef ENABLE_DP double xxsin(double d) { double s[VECTLENDP]; int i; for(i=0;i