Skip to content

Commit 4927622

Browse files
Michael Abbottmcabbott
authored andcommitted
only alter equality, not ordering
1 parent 1c53bbb commit 4927622

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
@@ -331,7 +331,9 @@ for pred in UNARY_PREDICATES
331331
@eval Base.$(pred)(d::Dual) = $(pred)(value(d))
332332
end
333333

334-
# BINARY_PREDICATES = Symbol[:isequal, :isless, :<, :>, :(==), :(!=), :(<=), :(>=)]
334+
# BINARY_PREDICATES = Symbol[:isequal, :isless, :<, :>, :(==), :(!=), :(<=), :(>=)] # prelude.jl
335+
336+
Base.iszero(x::Dual) = iszero(value(x)) && iszero(partials(x))
335337

336338
for pred in [:isequal, :(==)]
337339
@eval begin
@@ -355,13 +357,9 @@ for pred in [:isless, :<, :>, :(<=), :(>=)]
355357
@eval begin
356358
@define_binary_dual_op(
357359
Base.$(pred),
358-
if value(x) == value(y) # both Dual
359-
$(pred)(partials(x), partials(y))
360-
else
361-
$(pred)(value(x), value(y))
362-
end,
363-
$(pred)(value(x), y), # only x is Dual
364-
$(pred)(x, value(y)), # only y is Dual
360+
$(pred)(value(x), value(y)),
361+
$(pred)(value(x), y),
362+
$(pred)(x, value(y)),
365363
)
366364
end
367365
end

0 commit comments

Comments
 (0)