Skip to content

Commit be61a4e

Browse files
committed
restrict all arrays to eltype Number
1 parent b0da01f commit be61a4e

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/rulesets/LinearAlgebra/norm.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function frule((_, Δx), ::typeof(norm), x::Number, p::Real)
1717
return y, ∂y
1818
end
1919

20-
function rrule(::typeof(norm), x::AbstractArray, p::Real)
20+
function rrule(::typeof(norm), x::AbstractArray{<:Number}, p::Real)
2121
y = LinearAlgebra.norm(x, p)
2222
function norm_pullback_p(Δy)
2323
∂x = if isempty(x) || p == 0
@@ -48,7 +48,7 @@ function rrule(::typeof(norm), x::AbstractArray, p::Real)
4848
norm_pullback_p(::Zero) = (NO_FIELDS, Zero(), Zero())
4949
return y, norm_pullback_p
5050
end
51-
function rrule(::typeof(norm), x::AbstractArray)
51+
function rrule(::typeof(norm), x::AbstractArray{<:Number})
5252
y = LinearAlgebra.norm(x)
5353
function norm_pullback_2(Δy)
5454
∂x = if isempty(x)
@@ -64,7 +64,7 @@ function rrule(::typeof(norm), x::AbstractArray)
6464
norm_pullback_2(::Zero) = (NO_FIELDS, Zero())
6565
return y, norm_pullback_2
6666
end
67-
function rrule(::typeof(norm), x::Union{LinearAlgebra.AdjOrTransAbsVec}, p::Real)
67+
function rrule(::typeof(norm), x::LinearAlgebra.AdjOrTransAbsVec{<:Number}, p::Real)
6868
y, inner_pullback = rrule(norm, parent(x), p)
6969
function norm_pullback(Δy)
7070
(∂self, ∂x′, ∂p) = inner_pullback(Δy)
@@ -93,7 +93,7 @@ end
9393
##### `normp`
9494
#####
9595

96-
function rrule(::typeof(LinearAlgebra.normp), x::AbstractArray, p)
96+
function rrule(::typeof(LinearAlgebra.normp), x::AbstractArray{<:Number}, p)
9797
y = LinearAlgebra.normp(x, p)
9898
function normp_pullback(Δy)
9999
∂x = @thunk _normp_back_x(x, p, y, Δy)
@@ -138,14 +138,14 @@ end
138138
##### `normMinusInf`/`normInf`
139139
#####
140140

141-
function rrule(::typeof(LinearAlgebra.normMinusInf), x::AbstractArray)
141+
function rrule(::typeof(LinearAlgebra.normMinusInf), x::AbstractArray{<:Number})
142142
y = LinearAlgebra.normMinusInf(x)
143143
normMinusInf_pullback(Δy) = (NO_FIELDS, _normInf_back(x, y, Δy))
144144
normMinusInf_pullback(::Zero) = (NO_FIELDS, Zero())
145145
return y, normMinusInf_pullback
146146
end
147147

148-
function rrule(::typeof(LinearAlgebra.normInf), x::AbstractArray)
148+
function rrule(::typeof(LinearAlgebra.normInf), x::AbstractArray{<:Number})
149149
y = LinearAlgebra.normInf(x)
150150
normInf_pullback(Δy) = (NO_FIELDS, _normInf_back(x, y, Δy))
151151
normInf_pullback(::Zero) = (NO_FIELDS, Zero())
@@ -169,7 +169,7 @@ end
169169
##### `norm1`
170170
#####
171171

172-
function rrule(::typeof(LinearAlgebra.norm1), x::AbstractArray)
172+
function rrule(::typeof(LinearAlgebra.norm1), x::AbstractArray{<:Number})
173173
y = LinearAlgebra.norm1(x)
174174
norm1_pullback(Δy) = (NO_FIELDS, InplaceableThunk(
175175
@thunk(_norm1_back(x, y, Δy)),
@@ -201,7 +201,7 @@ function frule((_, Δx), ::typeof(LinearAlgebra.norm2), x)
201201
return y, _norm2_forward(x, Δx, y)
202202
end
203203

204-
function rrule(::typeof(LinearAlgebra.norm2), x::AbstractArray)
204+
function rrule(::typeof(LinearAlgebra.norm2), x::AbstractArray{<:Number})
205205
y = LinearAlgebra.norm2(x)
206206
norm2_pullback(Δy) = (NO_FIELDS, InplaceableThunk(
207207
@thunk(_norm2_back(x, y, Δy)),
@@ -233,7 +233,7 @@ end
233233
##### `normalize`
234234
#####
235235

236-
function rrule(::typeof(normalize), x::AbstractVector, p::Real)
236+
function rrule(::typeof(normalize), x::AbstractVector{<:Number}, p::Real)
237237
nrm, inner_pullback = rrule(norm, x, p)
238238
Ty = typeof(first(x) / nrm)
239239
y = copyto!(similar(x, Ty), x)
@@ -248,7 +248,7 @@ function rrule(::typeof(normalize), x::AbstractVector, p::Real)
248248
normalize_pullback(::Zero) = (NO_FIELDS, Zero(), Zero())
249249
return y, normalize_pullback
250250
end
251-
function rrule(::typeof(normalize), x::AbstractVector)
251+
function rrule(::typeof(normalize), x::AbstractVector{<:Number})
252252
nrm = LinearAlgebra.norm2(x)
253253
Ty = typeof(first(x) / nrm)
254254
y = copyto!(similar(x, Ty), x)

0 commit comments

Comments
 (0)