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 // isnan
template <typename Scalar, size_t N> template <typename Scalar>
bool isnan(const Dual<Scalar, N>& a) 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 // isfinite
template <typename Scalar, size_t N> template <typename Scalar>
bool isfinite(const Dual<Scalar, N>& a) 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 // isinf
template <typename Scalar, size_t N> template <typename Scalar>
bool isinf(const Dual<Scalar, N>& a) 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 // trig
+8 -8
View File
@@ -167,21 +167,21 @@ int main()
{ {
// isnan // isnan
TEST(!isnan(a)); TEST(!IsNan(a));
Dual<float, 1> c(sqrt(-1.f),0); Dual<float, 1> c(sqrt(-1.f),0);
TEST(isnan(c)); TEST(IsNan(c));
} }
{ {
// isfinite/isinf // isfinite/isinf
TEST(isfinite(a)); TEST(IsFinite(a));
TEST(!isinf(a)); TEST(!IsInf(a));
Dual<float, 1> c(sqrt(-1.f),0); Dual<float, 1> c(sqrt(-1.f),0);
TEST(!isfinite(c)); TEST(!IsFinite(c));
TEST(!isinf(c)); TEST(!IsInf(c));
Dual<float, 1> d(INFINITY,0); Dual<float, 1> d(INFINITY,0);
TEST(!isfinite(d)); TEST(!IsFinite(d));
TEST(isinf(d)); TEST(IsInf(d));
} }
{ {