Fixed the integer division code on windows

This commit is contained in:
Benoit Steiner 2016-03-09 07:06:36 -08:00
parent 6d30683113
commit b084133dbf

View File

@ -36,7 +36,13 @@ namespace {
#ifdef __CUDA_ARCH__ #ifdef __CUDA_ARCH__
return (sizeof(T) == 8) ? __clzll(val) : __clz(val); return (sizeof(T) == 8) ? __clzll(val) : __clz(val);
#elif EIGEN_COMP_MSVC #elif EIGEN_COMP_MSVC
return (sizeof(T) == 8) ? __lzcnt64(val) : __lzcnt(val); unsigned long index;
if (sizeof(T) == 8) {
_BitScanReverse64(&index, val);
} else {
_BitScanReverse(&index, val);
}
return (sizeof(T) == 8) ? 63 - index : 31 - index;
#else #else
EIGEN_STATIC_ASSERT(sizeof(unsigned long long) == 8, YOU_MADE_A_PROGRAMMING_MISTAKE); EIGEN_STATIC_ASSERT(sizeof(unsigned long long) == 8, YOU_MADE_A_PROGRAMMING_MISTAKE);
return (sizeof(T) == 8) ? return (sizeof(T) == 8) ?