|
@@ -53,39 +53,39 @@ namespace ulp
|
|
|
return Count;
|
|
return Count;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- template <typename valType>
|
|
|
|
|
- inline detail::xvec2<valType> ulp
|
|
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ inline detail::xvec2<T> ulp
|
|
|
(
|
|
(
|
|
|
- detail::xvec2<valType> const & a,
|
|
|
|
|
- detail::xvec2<valType> const & b
|
|
|
|
|
|
|
+ detail::xvec2<T> const & a,
|
|
|
|
|
+ detail::xvec2<T> const & b
|
|
|
)
|
|
)
|
|
|
{
|
|
{
|
|
|
- return detail::xvec2<valType>(
|
|
|
|
|
|
|
+ return detail::xvec2<T>(
|
|
|
ulp(a[0], b[0]),
|
|
ulp(a[0], b[0]),
|
|
|
ulp(a[1], b[1]));
|
|
ulp(a[1], b[1]));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- template <typename valType>
|
|
|
|
|
- inline detail::xvec3<valType> ulp
|
|
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ inline detail::xvec3<T> ulp
|
|
|
(
|
|
(
|
|
|
- detail::xvec3<valType> const & a,
|
|
|
|
|
- detail::xvec3<valType> const & b
|
|
|
|
|
|
|
+ detail::xvec3<T> const & a,
|
|
|
|
|
+ detail::xvec3<T> const & b
|
|
|
)
|
|
)
|
|
|
{
|
|
{
|
|
|
- return detail::xvec2<valType>(
|
|
|
|
|
|
|
+ return detail::xvec3<T>(
|
|
|
ulp(a[0], b[0]),
|
|
ulp(a[0], b[0]),
|
|
|
ulp(a[1], b[1]),
|
|
ulp(a[1], b[1]),
|
|
|
ulp(a[2], b[2]));
|
|
ulp(a[2], b[2]));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- template <typename valType>
|
|
|
|
|
- inline detail::xvec4<valType> ulp
|
|
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ inline detail::xvec4<T> ulp
|
|
|
(
|
|
(
|
|
|
- detail::xvec4<valType> const & a,
|
|
|
|
|
- detail::xvec4<valType> const & b
|
|
|
|
|
|
|
+ detail::xvec4<T> const & a,
|
|
|
|
|
+ detail::xvec4<T> const & b
|
|
|
)
|
|
)
|
|
|
{
|
|
{
|
|
|
- return detail::xvec2<valType>(
|
|
|
|
|
|
|
+ return detail::xvec4<T>(
|
|
|
ulp(a[0], b[0]),
|
|
ulp(a[0], b[0]),
|
|
|
ulp(a[1], b[1]),
|
|
ulp(a[1], b[1]),
|
|
|
ulp(a[2], b[2]),
|
|
ulp(a[2], b[2]),
|