mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 02:04:35 +00:00
Fixed vector based ULP functions
This commit is contained in:
parent
2ca5985b0e
commit
8e4dcece16
@ -54,42 +54,54 @@ namespace ulp
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline detail::xvec2<T> ulp
|
||||
inline std::size_t ulp
|
||||
(
|
||||
detail::xvec2<T> const & a,
|
||||
detail::xvec2<T> const & b
|
||||
)
|
||||
{
|
||||
return detail::xvec2<T>(
|
||||
ulp(a[0], b[0]),
|
||||
ulp(a[1], b[1]));
|
||||
std::size_t ulps[] =
|
||||
{
|
||||
ulp(a[0], b[0]),
|
||||
ulp(a[1], b[1])
|
||||
};
|
||||
|
||||
return glm::max(ulps[0], ulps[1])s;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline detail::xvec3<T> ulp
|
||||
inline std::size_t ulp
|
||||
(
|
||||
detail::xvec3<T> const & a,
|
||||
detail::xvec3<T> const & b
|
||||
)
|
||||
{
|
||||
return detail::xvec3<T>(
|
||||
ulp(a[0], b[0]),
|
||||
ulp(a[1], b[1]),
|
||||
ulp(a[2], b[2]));
|
||||
std::size_t ulps[] =
|
||||
{
|
||||
ulp(a[0], b[0]),
|
||||
ulp(a[1], b[1]),
|
||||
ulp(a[2], b[2])
|
||||
};
|
||||
|
||||
return glm::max(glm::max(ulps[0], ulps[1]), ulps[2]);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline detail::xvec4<T> ulp
|
||||
inline std::size_t ulp
|
||||
(
|
||||
detail::xvec4<T> const & a,
|
||||
detail::xvec4<T> const & b
|
||||
)
|
||||
{
|
||||
return detail::xvec4<T>(
|
||||
ulp(a[0], b[0]),
|
||||
ulp(a[1], b[1]),
|
||||
ulp(a[2], b[2]),
|
||||
ulp(a[3], b[3]));
|
||||
std::size_t ulps[] =
|
||||
{
|
||||
ulp(a[0], b[0]),
|
||||
ulp(a[1], b[1]),
|
||||
ulp(a[2], b[2]),
|
||||
ulp(a[3], b[3])
|
||||
};
|
||||
|
||||
return glm::max(glm::max(ulps[0], ulps[1]), glm::max(ulps[2], ulps[3]));
|
||||
}
|
||||
|
||||
}//namespace ulp
|
||||
|
@ -0,0 +1,32 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Created : 2011-04-26
|
||||
// Updated : 2011-04-26
|
||||
// Licence : This source is under MIT licence
|
||||
// File : test/gtx/ulp.cpp
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <glm/glm.hpp>
|
||||
#include <glm/gtx/ulp.hpp>
|
||||
#include <iostream>
|
||||
|
||||
int test_ulp_float()
|
||||
{
|
||||
std::size_t A = ulp(0.01, 0.02);
|
||||
std::size_t B = ulp(glm::vec2(0.01), glm::vec2(0.02));
|
||||
std::size_t C = ulp(glm::vec3(0.01), glm::vec3(0.02));
|
||||
std::size_t D = ulp(glm::vec4(0.01), glm::vec4(0.02));
|
||||
std::cout << "glm::ulp test: " << A << std::endl;
|
||||
std::cout << "glm::ulp test: " << B << std::endl;
|
||||
std::cout << "glm::ulp test: " << C << std::endl;
|
||||
std::cout << "glm::ulp test: " << D << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test_ulp_float();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user