Skip to content

Commit 6c7c881

Browse files
Michael Abbottmcabbott
authored andcommitted
only alter equality, not ordering
1 parent fc8e291 commit 6c7c881

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/dual.jl

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,9 @@ for pred in UNARY_PREDICATES
336336
@eval Base.$(pred)(d::Dual) = $(pred)(value(d))
337337
end
338338

339-
# BINARY_PREDICATES = Symbol[:isequal, :isless, :<, :>, :(==), :(!=), :(<=), :(>=)]
339+
# BINARY_PREDICATES = Symbol[:isequal, :isless, :<, :>, :(==), :(!=), :(<=), :(>=)] # prelude.jl
340+
341+
Base.iszero(x::Dual) = iszero(value(x)) && iszero(partials(x))
340342

341343
for pred in [:isequal, :(==)]
342344
@eval begin
@@ -360,13 +362,9 @@ for pred in [:isless, :<, :>, :(<=), :(>=)]
360362
@eval begin
361363
@define_binary_dual_op(
362364
Base.$(pred),
363-
if value(x) == value(y) # both Dual
364-
$(pred)(partials(x), partials(y))
365-
else
366-
$(pred)(value(x), value(y))
367-
end,
368-
$(pred)(value(x), y), # only x is Dual
369-
$(pred)(x, value(y)), # only y is Dual
365+
$(pred)(value(x), value(y)),
366+
$(pred)(value(x), y),
367+
$(pred)(x, value(y)),
370368
)
371369
end
372370
end

0 commit comments

Comments
 (0)