Skip to content

Commit

Permalink
Fixed usubBorrw
Browse files Browse the repository at this point in the history
  • Loading branch information
Groovounet committed Mar 16, 2014
1 parent 00e860e commit 3f327d5
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 8 deletions.
6 changes: 3 additions & 3 deletions glm/detail/func_integer.inl
Original file line number Diff line number Diff line change
Expand Up @@ -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 <>
Expand Down
1 change: 1 addition & 0 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 21 additions & 5 deletions test/core/core_func_integer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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;
Expand Down

0 comments on commit 3f327d5

Please sign in to comment.