Fixed usubBorrw

This commit is contained in:
Christophe Riccio 2014-03-16 12:33:00 +01:00
parent 00e860eeee
commit 3f327d5e70
3 changed files with 25 additions and 8 deletions

View File

@ -110,10 +110,10 @@ namespace glm
GLM_STATIC_ASSERT(sizeof(uint) == sizeof(uint32), "uint and uint32 size mismatch");
Borrow = x >= y ? static_cast<uint32>(0) : static_cast<uint32>(1);
if(x > y)
return static_cast<uint32>(static_cast<int64>(x) - static_cast<int64>(y));
if(y >= x)
return y - x;
else
return static_cast<uint32>((static_cast<int64>(1) << static_cast<int64>(32)) + static_cast<int64>(x) - static_cast<int64>(y));
return static_cast<uint32>((static_cast<int64>(1) << static_cast<int64>(32)) + (static_cast<int64>(y) - static_cast<int64>(x)));
}
template <>

View File

@ -48,6 +48,7 @@ GLM 0.9.5.3: 2014-0X-XX
- Added support for all extensions but GTX_string_cast to CUDA
- Fixed strict aliasing warnings in GCC 4.8.1 / Android NDK 9c (#152)
- Fixed missing bitfieldInterleave definisions
- Fixed usubBorrow (#171)
================================================================================
GLM 0.9.5.2: 2014-02-08

View File

@ -197,14 +197,14 @@ namespace findLSB
genType Value;
genType Return;
};
type<int> const DataI32[] =
{
{0x00000001, 0},
{0x00000003, 0},
{0x00000002, 1}
{0x00000003, 0},
{0x00000002, 1}
};
int test()
{
int Error(0);
@ -215,11 +215,27 @@ namespace findLSB
Error += DataI32[i].Return == Result ? 0 : 1;
assert(!Error);
}
return Error;
}
}//findLSB
namespace usubBorrow
{
int test()
{
int Error(0);
glm::uint x = 16;
glm::uint y = 17;
glm::uint Borrow = 0;
glm::uint Result = glm::usubBorrow(x, y, Borrow);
return Error;
}
}//namespace usubBorrow
int main()
{
int Error = 0;