Skip to content

Commit 49a92ff

Browse files
committed
Use where for some linalg functions
1 parent 08fc7aa commit 49a92ff

File tree

11 files changed

+86
-86
lines changed

11 files changed

+86
-86
lines changed

base/datafmt.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ _chrinstr(sbuff::String, chr::UInt8, startpos::Int, endpos::Int) =
222222
(endpos >= startpos) && (C_NULL != ccall(:memchr, Ptr{UInt8},
223223
(Ptr{UInt8}, Int32, Csize_t), pointer(sbuff)+startpos-1, chr, endpos-startpos+1))
224224

225-
function store_cell{T}(dlmstore::DLMStore{T}, row::Int, col::Int,
226-
quoted::Bool, startpos::Int, endpos::Int)
225+
function store_cell(dlmstore::DLMStore{T}, row::Int, col::Int,
226+
quoted::Bool, startpos::Int, endpos::Int) where T
227227
drow = row - dlmstore.hdr_offset
228228

229229
ncols = dlmstore.ncols
@@ -291,7 +291,7 @@ function store_cell{T}(dlmstore::DLMStore{T}, row::Int, col::Int,
291291
nothing
292292
end
293293

294-
function result{T}(dlmstore::DLMStore{T})
294+
function result(dlmstore::DLMStore{T}) where T
295295
nrows = dlmstore.nrows - dlmstore.hdr_offset
296296
ncols = dlmstore.ncols
297297
lastcol = dlmstore.lastcol
@@ -456,9 +456,9 @@ function colval(sbuff::String, startpos::Int, endpos::Int, cells::Array{<:Char,2
456456
end
457457
colval(sbuff::String, startpos::Int, endpos::Int, cells::Array, row::Int, col::Int) = true
458458

459-
function dlm_parse{D}(dbuff::String, eol::D, dlm::D, qchar::D, cchar::D,
459+
function dlm_parse(dbuff::String, eol::D, dlm::D, qchar::D, cchar::D,
460460
ign_adj_dlm::Bool, allow_quote::Bool, allow_comments::Bool,
461-
skipstart::Int, skipblanks::Bool, dh::DLMHandler)
461+
skipstart::Int, skipblanks::Bool, dh::DLMHandler) where D
462462
ncols = nrows = col = 0
463463
is_default_dlm = (dlm == invalid_dlm(D))
464464
error_str = ""

base/fft/FFTW.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ for (f,direction) in ((:fft,FORWARD), (:bfft,BACKWARD))
618618
end
619619
end
620620

621-
function A_mul_B!{T}(y::StridedArray{T}, p::cFFTWPlan{T}, x::StridedArray{T})
621+
function A_mul_B!(y::StridedArray{T}, p::cFFTWPlan{T}, x::StridedArray{T}) where T
622622
assert_applicable(p, x, y)
623623
unsafe_execute!(p, x, y)
624624
return y
@@ -781,7 +781,7 @@ function plan_inv{T<:fftwNumber,K,inplace,N}(p::r2rFFTWPlan{T,K,inplace,N})
781781
1:length(iK)))
782782
end
783783

784-
function A_mul_B!{T}(y::StridedArray{T}, p::r2rFFTWPlan{T}, x::StridedArray{T})
784+
function A_mul_B!(y::StridedArray{T}, p::r2rFFTWPlan{T}, x::StridedArray{T}) where T
785785
assert_applicable(p, x, y)
786786
unsafe_execute!(p, x, y)
787787
return y

base/linalg/arnoldi.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ function SVDOperator(A::AbstractMatrix{T}) where T
315315
SVDOperator{Tnew,typeof(Anew)}(Anew)
316316
end
317317

318-
function A_mul_B!{T}(u::StridedVector{T}, s::SVDOperator{T}, v::StridedVector{T})
318+
function A_mul_B!(u::StridedVector{T}, s::SVDOperator{T}, v::StridedVector{T}) where T
319319
a, b = s.m, length(v)
320320
A_mul_B!(view(u,1:a), s.X, view(v,a+1:b)) # left singular vector
321321
Ac_mul_B!(view(u,a+1:b), s.X, view(v,1:a)) # right singular vector

base/linalg/givens.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function *(R::AbstractRotation{T}, A::AbstractVecOrMat{S}) where {T,S}
99
TS = typeof(zero(T)*zero(S) + zero(T)*zero(S))
1010
A_mul_B!(convert(AbstractRotation{TS}, R), TS == S ? copy(A) : convert(AbstractArray{TS}, A))
1111
end
12-
function A_mul_Bc{T,S}(A::AbstractVecOrMat{T}, R::AbstractRotation{S})
12+
function A_mul_Bc(A::AbstractVecOrMat{T}, R::AbstractRotation{S}) where {T,S}
1313
TS = typeof(zero(T)*zero(S) + zero(T)*zero(S))
1414
A_mul_Bc!(TS == T ? copy(A) : convert(AbstractArray{TS}, A), convert(AbstractRotation{TS}, R))
1515
end

base/linalg/lq.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ end
119119
size(A::LQPackedQ) = size(A.factors)
120120

121121
## Multiplication by LQ
122-
A_mul_B!{T<:BlasFloat}(A::LQ{T}, B::StridedVecOrMat{T}) = A[:L]*LAPACK.ormlq!('L','N',A.factors,A.τ,B)
123-
A_mul_B!{T<:BlasFloat}(A::LQ{T}, B::QR{T}) = A[:L]*LAPACK.ormlq!('L','N',A.factors,A.τ,full(B))
124-
A_mul_B!{T<:BlasFloat}(A::QR{T}, B::LQ{T}) = A_mul_B!(zeros(full(A)), full(A), full(B))
122+
A_mul_B!(A::LQ{T}, B::StridedVecOrMat{T}) where {T<:BlasFloat} = A[:L]*LAPACK.ormlq!('L','N',A.factors,A.τ,B)
123+
A_mul_B!(A::LQ{T}, B::QR{T}) where {T<:BlasFloat} = A[:L]*LAPACK.ormlq!('L','N',A.factors,A.τ,full(B))
124+
A_mul_B!(A::QR{T}, B::LQ{T}) where {T<:BlasFloat} = A_mul_B!(zeros(full(A)), full(A), full(B))
125125
function *(A::LQ{TA},B::StridedVecOrMat{TB}) where {TA,TB}
126126
TAB = promote_type(TA, TB)
127127
A_mul_B!(convert(Factorization{TAB},A), copy_oftype(B, TAB))
@@ -137,15 +137,15 @@ end
137137

138138
## Multiplication by Q
139139
### QB
140-
A_mul_B!{T<:BlasFloat}(A::LQPackedQ{T}, B::StridedVecOrMat{T}) = LAPACK.ormlq!('L','N',A.factors,A.τ,B)
140+
A_mul_B!(A::LQPackedQ{T}, B::StridedVecOrMat{T}) where {T<:BlasFloat} = LAPACK.ormlq!('L','N',A.factors,A.τ,B)
141141
function (*)(A::LQPackedQ,B::StridedVecOrMat)
142142
TAB = promote_type(eltype(A), eltype(B))
143143
A_mul_B!(convert(AbstractMatrix{TAB}, A), copy_oftype(B, TAB))
144144
end
145145

146146
### QcB
147-
Ac_mul_B!{T<:BlasReal}(A::LQPackedQ{T}, B::StridedVecOrMat{T}) = LAPACK.ormlq!('L','T',A.factors,A.τ,B)
148-
Ac_mul_B!{T<:BlasComplex}(A::LQPackedQ{T}, B::StridedVecOrMat{T}) = LAPACK.ormlq!('L','C',A.factors,A.τ,B)
147+
Ac_mul_B!(A::LQPackedQ{T}, B::StridedVecOrMat{T}) where {T<:BlasReal} = LAPACK.ormlq!('L','T',A.factors,A.τ,B)
148+
Ac_mul_B!(A::LQPackedQ{T}, B::StridedVecOrMat{T}) where {T<:BlasComplex} = LAPACK.ormlq!('L','C',A.factors,A.τ,B)
149149
function Ac_mul_B(A::LQPackedQ, B::StridedVecOrMat)
150150
TAB = promote_type(eltype(A), eltype(B))
151151
if size(B,1) == size(A.factors,2)
@@ -171,7 +171,7 @@ for (f1, f2) in ((:A_mul_Bc, :A_mul_B!),
171171
end
172172

173173
### AQ
174-
A_mul_B!{T<:BlasFloat}(A::StridedMatrix{T}, B::LQPackedQ{T}) = LAPACK.ormlq!('R', 'N', B.factors, B.τ, A)
174+
A_mul_B!(A::StridedMatrix{T}, B::LQPackedQ{T}) where {T<:BlasFloat} = LAPACK.ormlq!('R', 'N', B.factors, B.τ, A)
175175
function *(A::StridedMatrix{TA},B::LQPackedQ{TB}) where {TA,TB}
176176
TAB = promote_type(TA,TB)
177177
if size(B.factors,2) == size(A,2)
@@ -184,9 +184,9 @@ function *(A::StridedMatrix{TA},B::LQPackedQ{TB}) where {TA,TB}
184184
end
185185

186186
### AQc
187-
A_mul_Bc!{T<:BlasReal}(A::StridedMatrix{T}, B::LQPackedQ{T}) = LAPACK.ormlq!('R','T',B.factors,B.τ,A)
188-
A_mul_Bc!{T<:BlasComplex}(A::StridedMatrix{T}, B::LQPackedQ{T}) = LAPACK.ormlq!('R','C',B.factors,B.τ,A)
189-
function A_mul_Bc{TA<:Number,TB<:Number}( A::StridedVecOrMat{TA}, B::LQPackedQ{TB})
187+
A_mul_Bc!(A::StridedMatrix{T}, B::LQPackedQ{T}) where {T<:BlasReal} = LAPACK.ormlq!('R','T',B.factors,B.τ,A)
188+
A_mul_Bc!(A::StridedMatrix{T}, B::LQPackedQ{T}) where {T<:BlasComplex} = LAPACK.ormlq!('R','C',B.factors,B.τ,A)
189+
function A_mul_Bc( A::StridedVecOrMat{TA}, B::LQPackedQ{TB}) where {TA<:Number,TB<:Number}
190190
TAB = promote_type(TA,TB)
191191
A_mul_Bc!(copy_oftype(A, TAB), convert(AbstractMatrix{TAB},(B)))
192192
end

0 commit comments

Comments
 (0)