|
8 | 8 | ),
|
9 | 9 | T in (Float64, ComplexF64),
|
10 | 10 | sz in [(3,), (3, 3), (3, 2, 1)]
|
| 11 | +println("starting unexported fnorm=$fnorm, T=$T, sz=$sz") |
11 | 12 |
|
12 | 13 | x = randn(T, sz)
|
13 | 14 | # finite differences is unstable if maxabs (minabs) values are not well
|
|
37 | 38 | @test rrule(fnorm, x)[2](Zero())[2] isa Zero
|
38 | 39 | end
|
39 | 40 | ndims(x) > 1 && @testset "non-strided" begin
|
| 41 | +println("... non-strided") |
40 | 42 | xp = if x isa Matrix
|
41 | 43 | view(x, [1,2,3], 1:3)
|
42 | 44 | elseif x isa Array{T,3}
|
|
51 | 53 | rrule_test(fnorm, ȳ, (xp, x̄))
|
52 | 54 | end
|
53 | 55 | T == Float64 && ndims(x) == 1 && @testset "Integer input" begin
|
| 56 | +println("... integer") |
54 | 57 | x = [1,2,3]
|
55 | 58 | int_fwd, int_back = rrule(fnorm, x)
|
56 | 59 | float_fwd, float_back = rrule(fnorm, float(x))
|
|
61 | 64 | @testset "norm(x::Array{$T,$(length(sz))})" for
|
62 | 65 | T in (Float64, ComplexF64),
|
63 | 66 | sz in [(0,), (3,), (3, 3), (3, 2, 1)]
|
| 67 | +println("starting exported norm T=$T, sz=$sz") |
64 | 68 |
|
65 | 69 | x = randn(T, sz)
|
66 | 70 |
|
|
84 | 88 | @test rrule(norm, x)[2](Zero())[2] isa Zero
|
85 | 89 | end
|
86 | 90 | ndims(x) > 1 && @testset "non-strided" begin
|
| 91 | +println("... non-strided'") |
87 | 92 | xp = if x isa Matrix
|
88 | 93 | view(x, [1,2,3], 1:3)
|
89 | 94 | elseif x isa Array{T,3}
|
|
103 | 108 | p in (1.0, 2.0, Inf, -Inf, 2.5),
|
104 | 109 | T in (Float64, ComplexF64),
|
105 | 110 | sz in (fnorm === norm ? [(0,), (3,), (3, 3), (3, 2, 1)] : [(3,), (3, 3), (3, 2, 1)])
|
| 111 | +println("starting p-norm p=$p, T=$T, sz=$sz") |
106 | 112 |
|
107 | 113 | x = randn(T, sz)
|
108 | 114 | # finite differences is unstable if maxabs (minabs) values are not well
|
|
142 | 148 | @test unthunk(unthunk(int_back(1.0)[2])) ≈ unthunk(unthunk(float_back(1.0)[2]))
|
143 | 149 | end
|
144 | 150 | end
|
| 151 | +println("starting adjoint/transpose norm T=$T") |
145 | 152 | @testset "norm($fdual(::Vector{$T}), p)" for
|
146 | 153 | T in (Float64, ComplexF64),
|
147 | 154 | fdual in (adjoint, transpose)
|
|
155 | 162 | end
|
156 | 163 | @testset "norm(x::$T, p)" for T in (Float64, ComplexF64)
|
157 | 164 | @testset "p = $p" for p in (-1.0, 2.0, 2.5)
|
| 165 | +println("starting the other set of p-norm tests, p=$p, T=$T, sz=$sz") |
158 | 166 | test_frule(norm, randn(T), p)
|
159 | 167 | test_rrule(norm, randn(T), p)
|
160 | 168 |
|
161 | 169 | _, back = rrule(norm, randn(T), p)
|
162 | 170 | @test back(Zero()) == (NO_FIELDS, Zero(), Zero())
|
163 | 171 | end
|
164 | 172 | @testset "p = 0" begin
|
| 173 | +println("starting 0-norm tests, T=$T, sz=$sz") |
165 | 174 | p = 0.0
|
166 | 175 | x = randn(T)
|
167 | 176 | y = norm(x, p)
|
|
0 commit comments