Skip to content

Commit 58e6e1b

Browse files
Michael Abbottmcabbott
authored andcommitted
only alter equality, not ordering
1 parent cfe7530 commit 58e6e1b

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
@@ -384,7 +384,9 @@ for pred in UNARY_PREDICATES
384384
@eval Base.$(pred)(d::Dual) = $(pred)(value(d))
385385
end
386386

387-
# BINARY_PREDICATES = Symbol[:isequal, :isless, :<, :>, :(==), :(!=), :(<=), :(>=)]
387+
# BINARY_PREDICATES = Symbol[:isequal, :isless, :<, :>, :(==), :(!=), :(<=), :(>=)] # prelude.jl
388+
389+
Base.iszero(x::Dual) = iszero(value(x)) && iszero(partials(x))
388390

389391
for pred in [:isequal, :(==)]
390392
@eval begin
@@ -408,13 +410,9 @@ for pred in [:isless, :<, :>, :(<=), :(>=)]
408410
@eval begin
409411
@define_binary_dual_op(
410412
Base.$(pred),
411-
if value(x) == value(y) # both Dual
412-
$(pred)(partials(x), partials(y))
413-
else
414-
$(pred)(value(x), value(y))
415-
end,
416-
$(pred)(value(x), y), # only x is Dual
417-
$(pred)(x, value(y)), # only y is Dual
413+
$(pred)(value(x), value(y)),
414+
$(pred)(value(x), y),
415+
$(pred)(x, value(y)),
418416
)
419417
end
420418
end

0 commit comments

Comments
 (0)