Skip to content

Commit b44a180

Browse files
committed
improve efficiency of NaN/Inf pruning by negating isfinite instead of checking isnan or isinf
1 parent 5c51df7 commit b44a180

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

src/partials.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ Base.convert{N,T}(::Type{Partials{N,T}}, partials::Partials{N,T}) = partials
8181
#----------------------#
8282

8383
@inline function @compat(Base.:*)(partials::Partials, x::Real)
84-
x = ifelse((isnan(x) || isinf(x)) && iszero(partials), one(x), x)
84+
x = ifelse(!isfinite(x) && iszero(partials), one(x), x)
8585
return Partials(scale_tuple(partials.values, x))
8686
end
8787

@@ -91,8 +91,8 @@ end
9191
end
9292

9393
@inline function _mul_partials{N}(a::Partials{N}, b::Partials{N}, x_a, x_b)
94-
x_a = ifelse((isnan(x_a) || isinf(x_a)) && iszero(a), one(x_a), x_a)
95-
x_b = ifelse((isnan(x_b) || isinf(x_b)) && iszero(b), one(x_b), x_b)
94+
x_a = ifelse(!isfinite(x_a) && iszero(a), one(x_a), x_a)
95+
x_b = ifelse(!isfinite(x_b) && iszero(b), one(x_b), x_b)
9696
return Partials(mul_tuples(a.values, b.values, x_a, x_b))
9797
end
9898

0 commit comments

Comments
 (0)