Skip to content

Commit ebff52d

Browse files
mzgubicoxinabox
andauthored
rename differentials (#162)
* ignore dev * bump version, compat * rename DoesNotExist * rename Composite to Tangent * rename Zero to ZeroTangent * update docs * docs manifest * Update docs/Project.toml Co-authored-by: Lyndon White <oxinabox@ucc.asn.au> Co-authored-by: Lyndon White <oxinabox@ucc.asn.au>
1 parent 094a78b commit ebff52d

File tree

2 files changed

+32
-32
lines changed

2 files changed

+32
-32
lines changed

src/rand_tangent.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ Returns a randomly generated tangent vector appropriate for the primal value `x`
55
"""
66
rand_tangent(x) = rand_tangent(Random.GLOBAL_RNG, x)
77

8-
rand_tangent(rng::AbstractRNG, x::Symbol) = DoesNotExist()
9-
rand_tangent(rng::AbstractRNG, x::AbstractChar) = DoesNotExist()
10-
rand_tangent(rng::AbstractRNG, x::AbstractString) = DoesNotExist()
8+
rand_tangent(rng::AbstractRNG, x::Symbol) = NoTangent()
9+
rand_tangent(rng::AbstractRNG, x::AbstractChar) = NoTangent()
10+
rand_tangent(rng::AbstractRNG, x::AbstractString) = NoTangent()
1111

12-
rand_tangent(rng::AbstractRNG, x::Integer) = DoesNotExist()
12+
rand_tangent(rng::AbstractRNG, x::Integer) = NoTangent()
1313

1414
rand_tangent(rng::AbstractRNG, x::T) where {T<:Number} = randn(rng, T)
1515

@@ -20,11 +20,11 @@ rand_tangent(rng::AbstractRNG, ::BigFloat) = big(randn(rng))
2020
rand_tangent(rng::AbstractRNG, x::StridedArray) = rand_tangent.(Ref(rng), x)
2121

2222
function rand_tangent(rng::AbstractRNG, x::T) where {T<:Tuple}
23-
return Composite{T}(rand_tangent.(Ref(rng), x)...)
23+
return Tangent{T}(rand_tangent.(Ref(rng), x)...)
2424
end
2525

2626
function rand_tangent(rng::AbstractRNG, xs::T) where {T<:NamedTuple}
27-
return Composite{T}(; map(x -> rand_tangent(rng, x), xs)...)
27+
return Tangent{T}(; map(x -> rand_tangent(rng, x), xs)...)
2828
end
2929

3030
function rand_tangent(rng::AbstractRNG, x::T) where {T}
@@ -37,11 +37,11 @@ function rand_tangent(rng::AbstractRNG, x::T) where {T}
3737
tangents = map(field_names) do field_name
3838
rand_tangent(rng, getfield(x, field_name))
3939
end
40-
if all(tangent isa DoesNotExist for tangent in tangents)
40+
if all(tangent isa NoTangent for tangent in tangents)
4141
# if none of my fields can be perturbed then I can't be perturbed
42-
return DoesNotExist()
42+
return NoTangent()
4343
else
44-
Composite{T}(; NamedTuple{field_names}(tangents)...)
44+
Tangent{T}(; NamedTuple{field_names}(tangents)...)
4545
end
4646
else
4747
return NO_FIELDS

test/rand_tangent.jl

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ using FiniteDifferences: rand_tangent
66
@testset "Primal: $(typeof(x)), Tangent: $T_tangent" for (x, T_tangent) in [
77

88
# Things without sensible tangents.
9-
("hi", DoesNotExist),
10-
('a', DoesNotExist),
11-
(:a, DoesNotExist),
12-
(true, DoesNotExist),
13-
(4, DoesNotExist),
9+
("hi", NoTangent),
10+
('a', NoTangent),
11+
(:a, NoTangent),
12+
(true, NoTangent),
13+
(4, NoTangent),
1414

1515
# Numbers.
1616
(5.0, Float64),
@@ -25,54 +25,54 @@ using FiniteDifferences: rand_tangent
2525
([randn(5, 4), 4.0], Vector{Any}),
2626

2727
# Tuples.
28-
((4.0, ), Composite{Tuple{Float64}}),
29-
((5.0, randn(3)), Composite{Tuple{Float64, Vector{Float64}}}),
28+
((4.0, ), Tangent{Tuple{Float64}}),
29+
((5.0, randn(3)), Tangent{Tuple{Float64, Vector{Float64}}}),
3030

3131
# NamedTuples.
32-
((a=4.0, ), Composite{NamedTuple{(:a,), Tuple{Float64}}}),
33-
((a=5.0, b=1), Composite{NamedTuple{(:a, :b), Tuple{Float64, Int}}}),
32+
((a=4.0, ), Tangent{NamedTuple{(:a,), Tuple{Float64}}}),
33+
((a=5.0, b=1), Tangent{NamedTuple{(:a, :b), Tuple{Float64, Int}}}),
3434

3535
# structs.
36-
(Foo(5.0, 4, rand(rng, 3)), Composite{Foo}),
37-
(Foo(4.0, 3, Foo(5.0, 2, 4)), Composite{Foo}),
36+
(Foo(5.0, 4, rand(rng, 3)), Tangent{Foo}),
37+
(Foo(4.0, 3, Foo(5.0, 2, 4)), Tangent{Foo}),
3838
(sin, typeof(NO_FIELDS)),
39-
# all fields DoesNotExist implies DoesNotExist
40-
(Pair(:a, "b"), DoesNotExist),
41-
(1:10, DoesNotExist),
42-
(1:2:10, DoesNotExist),
39+
# all fields NoTangent implies NoTangent
40+
(Pair(:a, "b"), NoTangent),
41+
(1:10, NoTangent),
42+
(1:2:10, NoTangent),
4343

4444
# LinearAlgebra types (also just structs).
4545
(
4646
UpperTriangular(randn(3, 3)),
47-
Composite{UpperTriangular{Float64, Matrix{Float64}}},
47+
Tangent{UpperTriangular{Float64, Matrix{Float64}}},
4848
),
4949
(
5050
Diagonal(randn(2)),
51-
Composite{Diagonal{Float64, Vector{Float64}}},
51+
Tangent{Diagonal{Float64, Vector{Float64}}},
5252
),
5353
(
5454
SVector{2, Float64}(1.0, 2.0),
55-
Composite{typeof(SVector{2, Float64}(1.0, 2.0))},
55+
Tangent{typeof(SVector{2, Float64}(1.0, 2.0))},
5656
),
5757
(
5858
SMatrix{2, 2, ComplexF64}(1.0, 2.0, 3.0, 4.0),
59-
Composite{typeof(SMatrix{2, 2, ComplexF64}(1.0, 2.0, 3.0, 4.0))},
59+
Tangent{typeof(SMatrix{2, 2, ComplexF64}(1.0, 2.0, 3.0, 4.0))},
6060
),
6161
(
6262
Symmetric(randn(2, 2)),
63-
Composite{Symmetric{Float64, Matrix{Float64}}},
63+
Tangent{Symmetric{Float64, Matrix{Float64}}},
6464
),
6565
(
6666
Hermitian(randn(ComplexF64, 1, 1)),
67-
Composite{Hermitian{ComplexF64, Matrix{ComplexF64}}},
67+
Tangent{Hermitian{ComplexF64, Matrix{ComplexF64}}},
6868
),
6969
(
7070
Adjoint(randn(ComplexF64, 3, 3)),
71-
Composite{Adjoint{ComplexF64, Matrix{ComplexF64}}},
71+
Tangent{Adjoint{ComplexF64, Matrix{ComplexF64}}},
7272
),
7373
(
7474
Transpose(randn(3)),
75-
Composite{Transpose{Float64, Vector{Float64}}},
75+
Tangent{Transpose{Float64, Vector{Float64}}},
7676
),
7777
]
7878
@test rand_tangent(rng, x) isa T_tangent

0 commit comments

Comments
 (0)