Fix weird C preprocessor conflicts (#101)

This commit is contained in:
Julian Kent
2019-11-01 14:23:35 +01:00
committed by GitHub
parent 215203fc6f
commit 445f58d484
2 changed files with 35 additions and 17 deletions
+27 -9
View File
@@ -234,24 +234,42 @@ Dual<Scalar, N> min(const Dual<Scalar, N>& a, const Dual<Scalar, N>& b)
}
// isnan
template <typename Scalar, size_t N>
bool isnan(const Dual<Scalar, N>& a)
template <typename Scalar>
bool IsNan(Scalar a)
{
return isnan(a.value);
return isnan(a);
}
template <typename Scalar, size_t N>
bool IsNan(const Dual<Scalar, N>& a)
{
return IsNan(a.value);
}
// isfinite
template <typename Scalar, size_t N>
bool isfinite(const Dual<Scalar, N>& a)
template <typename Scalar>
bool IsFinite(Scalar a)
{
return isfinite(a.value);
return isfinite(a);
}
template <typename Scalar, size_t N>
bool IsFinite(const Dual<Scalar, N>& a)
{
return IsFinite(a.value);
}
// isinf
template <typename Scalar, size_t N>
bool isinf(const Dual<Scalar, N>& a)
template <typename Scalar>
bool IsInf(Scalar a)
{
return isinf(a.value);
return isinf(a);
}
template <typename Scalar, size_t N>
bool IsInf(const Dual<Scalar, N>& a)
{
return IsInf(a.value);
}
// trig
+8 -8
View File
@@ -167,21 +167,21 @@ int main()
{
// isnan
TEST(!isnan(a));
TEST(!IsNan(a));
Dual<float, 1> c(sqrt(-1.f),0);
TEST(isnan(c));
TEST(IsNan(c));
}
{
// isfinite/isinf
TEST(isfinite(a));
TEST(!isinf(a));
TEST(IsFinite(a));
TEST(!IsInf(a));
Dual<float, 1> c(sqrt(-1.f),0);
TEST(!isfinite(c));
TEST(!isinf(c));
TEST(!IsFinite(c));
TEST(!IsInf(c));
Dual<float, 1> d(INFINITY,0);
TEST(!isfinite(d));
TEST(isinf(d));
TEST(!IsFinite(d));
TEST(IsInf(d));
}
{