Skip to content

Commit 8a54fae

Browse files
committed
define zero_tangent for Tangent
1 parent f5efd7d commit 8a54fae

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/ChainRulesCore.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ export StructuralTangent, Tangent, MutableTangent, NoTangent, InplaceableThunk,
1919
include("debug_mode.jl")
2020

2121
include("tangent_types/abstract_tangent.jl")
22+
include("tangent_types/structural_tangent.jl")
2223
include("tangent_types/abstract_zero.jl")
2324
include("tangent_types/thunks.jl")
24-
include("tangent_types/structural_tangent.jl")
2525
include("tangent_types/notimplemented.jl")
2626

2727
include("tangent_arithmetic.jl")

src/tangent_types/abstract_zero.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ zero_tangent(x::Number) = zero(x)
113113

114114
zero_tangent(::Type) = NoTangent()
115115

116+
zero_tangent(x::Tangent) = ZeroTangent()
117+
# TODO: zero_tangent(x::MutableTangent)
118+
116119
@generated function zero_tangent(primal)
117120
fieldcount(primal) == 0 && return NoTangent() # no tangent space at all, no need for structural zero.
118121
zfield_exprs = map(fieldnames(primal)) do fname

0 commit comments

Comments
 (0)