|
@@ -198,10 +198,32 @@ namespace findMSB
|
|
|
|
|
|
|
|
namespace findLSB
|
|
namespace findLSB
|
|
|
{
|
|
{
|
|
|
|
|
+ template <typename genType>
|
|
|
|
|
+ struct type
|
|
|
|
|
+ {
|
|
|
|
|
+ genType Value;
|
|
|
|
|
+ genType Return;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ type<int> const DataI32[] =
|
|
|
|
|
+ {
|
|
|
|
|
+ {0x00000001, 0},
|
|
|
|
|
+ {0x00000003, 0},
|
|
|
|
|
+ {0x00000002, 1},
|
|
|
|
|
+ {0x80000000, 31}
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
int test()
|
|
int test()
|
|
|
{
|
|
{
|
|
|
int Error(0);
|
|
int Error(0);
|
|
|
|
|
|
|
|
|
|
+ for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(type<int>); ++i)
|
|
|
|
|
+ {
|
|
|
|
|
+ int Result = glm::findLSB(DataI32[i].Value);
|
|
|
|
|
+ Error += DataI32[i].Return == Result ? 0 : 1;
|
|
|
|
|
+ assert(!Error);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return Error;
|
|
return Error;
|
|
|
}
|
|
}
|
|
|
}//findLSB
|
|
}//findLSB
|