Skip to content

Commit 0dcc6df

Browse files
femtocleaner[bot]andreasnoack
authored andcommitted
Fix deprecations (#28)
1 parent 32f6415 commit 0dcc6df

File tree

10 files changed

+194
-194
lines changed

10 files changed

+194
-194
lines changed

src/cholesky.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module CholeskyModule
33
using ..JuliaBLAS
44
using Base.LinAlg: A_rdiv_Bc!
55

6-
function cholUnblocked!{T<:Number}(A::AbstractMatrix{T}, ::Type{Val{:L}})
6+
function cholUnblocked!(A::AbstractMatrix{T}, ::Type{Val{:L}}) where T<:Number
77
n = LinAlg.checksquare(A)
88
A[1,1] = sqrt(A[1,1])
99
if n > 1
@@ -17,7 +17,7 @@ module CholeskyModule
1717
A
1818
end
1919

20-
function cholBlocked!{T<:Number}(A::AbstractMatrix{T}, ::Type{Val{:L}}, blocksize::Integer)
20+
function cholBlocked!(A::AbstractMatrix{T}, ::Type{Val{:L}}, blocksize::Integer) where T<:Number
2121
n = LinAlg.checksquare(A)
2222
mnb = min(n, blocksize)
2323
A11 = view(A, 1:mnb, 1:mnb)
@@ -33,7 +33,7 @@ module CholeskyModule
3333
A
3434
end
3535

36-
function cholRecursive!{T}(A::StridedMatrix{T}, ::Type{Val{:L}}, cutoff = 1)
36+
function cholRecursive!(A::StridedMatrix{T}, ::Type{Val{:L}}, cutoff = 1) where T
3737
n = LinAlg.checksquare(A)
3838
if n == 1
3939
A[1,1] = sqrt(A[1,1])

src/eigenGeneral.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ module EigenGeneral
2020
end
2121

2222
# Hessenberg Matrix
23-
immutable HessenbergMatrix{T,S<:StridedMatrix} <: AbstractMatrix{T}
23+
struct HessenbergMatrix{T,S<:StridedMatrix} <: AbstractMatrix{T}
2424
data::S
2525
end
2626

27-
copy{T,S}(H::HessenbergMatrix{T,S}) = HessenbergMatrix{T,S}(copy(H.data))
27+
copy(H::HessenbergMatrix{T,S}) where {T,S} = HessenbergMatrix{T,S}(copy(H.data))
2828

29-
getindex{T,S}(H::HessenbergMatrix{T,S}, i::Integer, j::Integer) = i > j + 1 ? zero(T) : H.data[i,j]
29+
getindex(H::HessenbergMatrix{T,S}, i::Integer, j::Integer) where {T,S} = i > j + 1 ? zero(T) : H.data[i,j]
3030

3131
size(H::HessenbergMatrix) = size(H.data)
3232
size(H::HessenbergMatrix, i::Integer) = size(H.data, i)
@@ -43,12 +43,12 @@ module EigenGeneral
4343
end
4444

4545
# Hessenberg factorization
46-
immutable HessenbergFactorization{T, S<:StridedMatrix,U} <: Factorization{T}
46+
struct HessenbergFactorization{T, S<:StridedMatrix,U} <: Factorization{T}
4747
data::S
4848
τ::Vector{U}
4949
end
5050

51-
function hessfact!{T}(A::StridedMatrix{T})
51+
function hessfact!(A::StridedMatrix{T}) where T
5252
n = LinAlg.checksquare(A)
5353
τ = Vector{Householder{T}}(n - 1)
5454
for i = 1:n - 1
@@ -65,7 +65,7 @@ module EigenGeneral
6565
size(H::HessenbergFactorization, args...) = size(H.data, args...)
6666

6767
# Schur
68-
immutable Schur{T,S<:StridedMatrix} <: Factorization{T}
68+
struct Schur{T,S<:StridedMatrix} <: Factorization{T}
6969
data::S
7070
R::Rotation
7171
end
@@ -77,7 +77,7 @@ module EigenGeneral
7777
end
7878

7979

80-
function schurfact!{T<:Real}(H::HessenbergFactorization{T}; tol = eps(T), debug = false, shiftmethod = :Wilkinson, maxiter = 100*size(H, 1))
80+
function schurfact!(H::HessenbergFactorization{T}; tol = eps(T), debug = false, shiftmethod = :Wilkinson, maxiter = 100*size(H, 1)) where T<:Real
8181
n = size(H, 1)
8282
istart = 1
8383
iend = n
@@ -224,7 +224,7 @@ module EigenGeneral
224224
eigvals!(H::HessenbergMatrix; kwargs...) = eigvals!(schurfact!(H, kwargs...))
225225
eigvals!(H::HessenbergFactorization; kwargs...) = eigvals!(schurfact!(H, kwargs...))
226226

227-
function eigvals!{T}(S::Schur{T}; tol = eps(T))
227+
function eigvals!(S::Schur{T}; tol = eps(T)) where T
228228
HH = S.data
229229
n = size(HH, 1)
230230
vals = Vector{Complex{T}}(n)

src/eigenSelfAdjoint.jl

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module EigenSelfAdjoint
22

33
using Base.LinAlg: givensAlgorithm
44

5-
immutable SymmetricTridiagonalFactorization{T} <: Factorization{T}
5+
struct SymmetricTridiagonalFactorization{T} <: Factorization{T}
66
uplo::Char
77
factors::Matrix{T}
88
τ::Vector{T}
@@ -11,7 +11,7 @@ module EigenSelfAdjoint
1111

1212
Base.size(S::SymmetricTridiagonalFactorization, i::Integer) = size(S.factors, i)
1313

14-
immutable EigenQ{T} <: AbstractMatrix{T}
14+
struct EigenQ{T} <: AbstractMatrix{T}
1515
uplo::Char
1616
factors::Matrix{T}
1717
τ::Vector{T}
@@ -154,7 +154,7 @@ module EigenSelfAdjoint
154154
return c, s
155155
end
156156

157-
function eigvalsPWK!{T<:Real}(S::SymTridiagonal{T}, tol = eps(T), debug::Bool=false)
157+
function eigvalsPWK!(S::SymTridiagonal{T}, tol = eps(T), debug::Bool=false) where T<:Real
158158
d = S.dv
159159
e = S.ev
160160
n = length(d)
@@ -202,10 +202,10 @@ module EigenSelfAdjoint
202202
sort!(d)
203203
end
204204

205-
function eigQL!{T<:Real}(S::SymTridiagonal{T},
206-
vectors::Matrix = zeros(T, 0, size(S, 1)),
207-
tol = eps(T),
208-
debug::Bool=false)
205+
function eigQL!(S::SymTridiagonal{T},
206+
vectors::Matrix = zeros(T, 0, size(S, 1)),
207+
tol = eps(T),
208+
debug::Bool=false) where T<:Real
209209
d = S.dv
210210
e = S.ev
211211
n = length(d)
@@ -255,10 +255,10 @@ module EigenSelfAdjoint
255255
return d[p], vectors[:,p]
256256
end
257257

258-
function eigQR!{T<:Real}(S::SymTridiagonal{T},
259-
vectors::Matrix = zeros(T, 0, size(S, 1)),
260-
tol = eps(T),
261-
debug::Bool=false)
258+
function eigQR!(S::SymTridiagonal{T},
259+
vectors::Matrix = zeros(T, 0, size(S, 1)),
260+
tol = eps(T),
261+
debug::Bool=false) where T<:Real
262262
d = S.dv
263263
e = S.ev
264264
n = length(d)
@@ -399,7 +399,7 @@ module EigenSelfAdjoint
399399
S
400400
end
401401

402-
function zeroshiftQR!{T}(A::Bidiagonal{T})
402+
function zeroshiftQR!(A::Bidiagonal{T}) where T
403403
d = A.dv
404404
e = A.ev
405405
n = length(d)
@@ -420,12 +420,12 @@ module EigenSelfAdjoint
420420
end
421421

422422
symtri!(A::Hermitian) = A.uplo == 'L' ? symtriLower!(A.data) : symtriUpper!(A.data)
423-
symtri!{T<:Real}(A::Symmetric{T}) = A.uplo == 'L' ? symtriLower!(A.data) : symtriUpper!(A.data)
423+
symtri!(A::Symmetric{T}) where {T<:Real} = A.uplo == 'L' ? symtriLower!(A.data) : symtriUpper!(A.data)
424424

425425
# Assume that lower triangle stores the relevant part
426-
function symtriLower!{T}(AS::StridedMatrix{T},
427-
τ = zeros(T, size(AS, 1) - 1),
428-
u = Vector{T}(size(AS, 1)))
426+
function symtriLower!(AS::StridedMatrix{T},
427+
τ = zeros(T, size(AS, 1) - 1),
428+
u = Vector{T}(size(AS, 1))) where T
429429
n = size(AS, 1)
430430

431431
@inbounds for k = 1:(n - 2 + !(T<:Real))
@@ -477,9 +477,9 @@ module EigenSelfAdjoint
477477
end
478478

479479
# Assume that upper triangle stores the relevant part
480-
function symtriUpper!{T}(AS::StridedMatrix{T},
481-
τ = zeros(T, size(AS, 1) - 1),
482-
u = Vector{T}(size(AS, 1)))
480+
function symtriUpper!(AS::StridedMatrix{T},
481+
τ = zeros(T, size(AS, 1) - 1),
482+
u = Vector{T}(size(AS, 1))) where T
483483
n = LinAlg.checksquare(AS)
484484

485485
@inbounds for k = 1:(n - 2 + !(T<:Real))

src/householder.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ module HouseholderModule
77
import Base: Ac_mul_B, convert, size
88
import Base.LinAlg: A_mul_B!, Ac_mul_B!
99

10-
immutable Householder{T,S<:StridedVector}
10+
struct Householder{T,S<:StridedVector}
1111
v::S
1212
τ::T
1313
end
14-
immutable HouseholderBlock{T,S<:StridedMatrix,U<:StridedMatrix}
14+
struct HouseholderBlock{T,S<:StridedMatrix,U<:StridedMatrix}
1515
V::S
1616
T::UpperTriangular{T,U}
1717
end
@@ -65,7 +65,7 @@ module HouseholderModule
6565
A
6666
end
6767

68-
function A_mul_B!{T}(H::HouseholderBlock{T}, A::StridedMatrix{T}, M::StridedMatrix{T})
68+
function A_mul_B!(H::HouseholderBlock{T}, A::StridedMatrix{T}, M::StridedMatrix{T}) where T
6969
V = H.V
7070
mA, nA = size(A)
7171
nH = size(V, 1)
@@ -99,10 +99,10 @@ module HouseholderModule
9999

100100
return A
101101
end
102-
(*){T}(H::HouseholderBlock{T}, A::StridedMatrix{T}) =
102+
(*)(H::HouseholderBlock{T}, A::StridedMatrix{T}) where {T} =
103103
A_mul_B!(H, copy(A), similar(A, (min(size(H.V)...), size(A, 2))))
104104

105-
function Ac_mul_B!{T}(H::HouseholderBlock{T}, A::StridedMatrix{T}, M::StridedMatrix)
105+
function Ac_mul_B!(H::HouseholderBlock{T}, A::StridedMatrix{T}, M::StridedMatrix) where T
106106
V = H.V
107107
mA, nA = size(A)
108108
nH = size(V, 1)
@@ -136,9 +136,9 @@ module HouseholderModule
136136

137137
return A
138138
end
139-
Ac_mul_B{T}(H::HouseholderBlock{T}, A::StridedMatrix{T}) =
139+
Ac_mul_B(H::HouseholderBlock{T}, A::StridedMatrix{T}) where {T} =
140140
Ac_mul_B!(H, copy(A), similar(A, (min(size(H.V)...), size(A, 2))))
141141

142-
convert{T}(::Type{Matrix}, H::Householder{T}) = A_mul_B!(H, eye(T, size(H, 1)))
143-
convert{T}(::Type{Matrix{T}}, H::Householder{T}) = A_mul_B!(H, eye(T, size(H, 1)))
142+
convert(::Type{Matrix}, H::Householder{T}) where {T} = A_mul_B!(H, eye(T, size(H, 1)))
143+
convert(::Type{Matrix{T}}, H::Householder{T}) where {T} = A_mul_B!(H, eye(T, size(H, 1)))
144144
end

src/juliaBLAS.jl

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export rankUpdate!
1111

1212
## General
1313
### BLAS
14-
rankUpdate!{T<:BlasReal}::T, x::StridedVector{T}, y::StridedVector{T}, A::StridedMatrix{T}) = ger!(α, x, y, A)
14+
rankUpdate!::T, x::StridedVector{T}, y::StridedVector{T}, A::StridedMatrix{T}) where {T<:BlasReal} = ger!(α, x, y, A)
1515

1616
### Generic
1717
function rankUpdate!::Number, x::StridedVector, y::StridedVector, A::StridedMatrix)
@@ -27,8 +27,8 @@ function rankUpdate!(α::Number, x::StridedVector, y::StridedVector, A::StridedM
2727
end
2828

2929
## Hermitian
30-
rankUpdate!{T<:BlasReal,S<:StridedMatrix}::T, a::StridedVector{T}, A::HermOrSym{T,S}) = syr!(A.uplo, α, a, A.data)
31-
rankUpdate!{T<:BlasReal,S<:StridedMatrix}(a::StridedVector{T}, A::HermOrSym{T,S}) = rankUpdate!(one(T), a, A)
30+
rankUpdate!::T, a::StridedVector{T}, A::HermOrSym{T,S}) where {T<:BlasReal,S<:StridedMatrix} = syr!(A.uplo, α, a, A.data)
31+
rankUpdate!(a::StridedVector{T}, A::HermOrSym{T,S}) where {T<:BlasReal,S<:StridedMatrix} = rankUpdate!(one(T), a, A)
3232

3333
### Generic
3434
function rankUpdate!::Real, a::StridedVector, A::Hermitian)
@@ -45,10 +45,10 @@ end
4545

4646
# Rank k update
4747
## Real
48-
rankUpdate!{T<:BlasReal,S<:StridedMatrix}::T, A::StridedMatrix{T}, β::T, C::HermOrSym{T,S}) = syrk!(C.uplo, 'N', α, A, β, C.data)
48+
rankUpdate!::T, A::StridedMatrix{T}, β::T, C::HermOrSym{T,S}) where {T<:BlasReal,S<:StridedMatrix} = syrk!(C.uplo, 'N', α, A, β, C.data)
4949

5050
## Complex
51-
rankUpdate!{T<:BlasReal,S<:StridedMatrix}::T, A::StridedMatrix{Complex{T}}, β::T, C::Hermitian{T,S}) = herk!(C.uplo, 'N', α, A, β, C.data)
51+
rankUpdate!::T, A::StridedMatrix{Complex{T}}, β::T, C::Hermitian{T,S}) where {T<:BlasReal,S<:StridedMatrix} = herk!(C.uplo, 'N', α, A, β, C.data)
5252

5353
### Generic
5454
function rankUpdate!::Real, A::StridedVecOrMat, C::Hermitian)
@@ -78,12 +78,12 @@ end
7878

7979
# BLAS style A_mul_B!
8080
## gemv
81-
A_mul_B!{T<:BlasFloat}::T, A::StridedMatrix{T}, x::StridedVector{T}, β::T, y::StridedVector{T}) = gemv!('N', α, A, x, β, y)
82-
Ac_mul_B!{T<:BlasFloat}::T, A::StridedMatrix{T}, x::StridedVector{T}, β::T, y::StridedVector{T}) = gemv!('C', α, A, x, β, y)
81+
A_mul_B!::T, A::StridedMatrix{T}, x::StridedVector{T}, β::T, y::StridedVector{T}) where {T<:BlasFloat} = gemv!('N', α, A, x, β, y)
82+
Ac_mul_B!::T, A::StridedMatrix{T}, x::StridedVector{T}, β::T, y::StridedVector{T}) where {T<:BlasFloat} = gemv!('C', α, A, x, β, y)
8383

8484
## gemm
85-
A_mul_B!{T<:BlasFloat}::T, A::StridedMatrix{T}, B::StridedMatrix{T}, β::T, C::StridedMatrix{T}) = gemm!('N', 'N', α, A, B, β, C)
86-
Ac_mul_B!{T<:BlasFloat}::T, A::StridedMatrix{T}, B::StridedMatrix{T}, β::T, C::StridedMatrix{T}) = gemm!('C', 'N', α, A, B, β, C)
85+
A_mul_B!::T, A::StridedMatrix{T}, B::StridedMatrix{T}, β::T, C::StridedMatrix{T}) where {T<:BlasFloat} = gemm!('N', 'N', α, A, B, β, C)
86+
Ac_mul_B!::T, A::StridedMatrix{T}, B::StridedMatrix{T}, β::T, C::StridedMatrix{T}) where {T<:BlasFloat} = gemm!('C', 'N', α, A, B, β, C)
8787
# Not optimized since it is a generic fallback. Can probably soon be removed when the signatures in base have been updated.
8888
function A_mul_B!::Number, A::StridedMatrix, B::StridedVecOrMat, β::Number, C::StridedVecOrMat)
8989
m, n = size(C, 1), size(C, 2)
@@ -128,17 +128,17 @@ end
128128

129129
## trmm
130130
### BLAS versions
131-
A_mul_B!{T<:BlasFloat,S}::T, A::UpperTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'U', 'N', 'N', α, A.data, B)
132-
A_mul_B!{T<:BlasFloat,S}::T, A::LowerTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'L', 'N', 'N', α, A.data, B)
133-
A_mul_B!{T<:BlasFloat,S}::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'U', 'N', 'U', α, A.data, B)
134-
A_mul_B!{T<:BlasFloat,S}::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'L', 'N', 'U', α, A.data, B)
135-
Ac_mul_B!{T<:BlasFloat,S}::T, A::UpperTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'U', 'C', 'N', α, A.data, B)
136-
Ac_mul_B!{T<:BlasFloat,S}::T, A::LowerTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'L', 'C', 'N', α, A.data, B)
137-
Ac_mul_B!{T<:BlasFloat,S}::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'U', 'C', 'U', α, A.data, B)
138-
Ac_mul_B!{T<:BlasFloat,S}::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T}) = trmm!('L', 'L', 'C', 'U', α, A.data, B)
131+
A_mul_B!::T, A::UpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'U', 'N', 'N', α, A.data, B)
132+
A_mul_B!::T, A::LowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'L', 'N', 'N', α, A.data, B)
133+
A_mul_B!::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'U', 'N', 'U', α, A.data, B)
134+
A_mul_B!::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'L', 'N', 'U', α, A.data, B)
135+
Ac_mul_B!::T, A::UpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'U', 'C', 'N', α, A.data, B)
136+
Ac_mul_B!::T, A::LowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'L', 'C', 'N', α, A.data, B)
137+
Ac_mul_B!::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'U', 'C', 'U', α, A.data, B)
138+
Ac_mul_B!::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:BlasFloat,S} = trmm!('L', 'L', 'C', 'U', α, A.data, B)
139139

140140
### Generic fallbacks
141-
function A_mul_B!{T<:Number,S}::T, A::UpperTriangular{T,S}, B::StridedMatrix{T})
141+
function A_mul_B!::T, A::UpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
142142
AA = A.data
143143
m, n = size(B)
144144
for i = 1:m
@@ -151,7 +151,7 @@ function A_mul_B!{T<:Number,S}(α::T, A::UpperTriangular{T,S}, B::StridedMatrix{
151151
end
152152
return B
153153
end
154-
function A_mul_B!{T<:Number,S}::T, A::LowerTriangular{T,S}, B::StridedMatrix{T})
154+
function A_mul_B!::T, A::LowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
155155
AA = A.data
156156
m, n = size(B)
157157
for i = m:-1:1
@@ -164,7 +164,7 @@ function A_mul_B!{T<:Number,S}(α::T, A::LowerTriangular{T,S}, B::StridedMatrix{
164164
end
165165
return B
166166
end
167-
function A_mul_B!{T<:Number,S}::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T})
167+
function A_mul_B!::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
168168
AA = A.data
169169
m, n = size(B)
170170
for i = 1:m
@@ -177,7 +177,7 @@ function A_mul_B!{T<:Number,S}(α::T, A::UnitUpperTriangular{T,S}, B::StridedMat
177177
end
178178
return B
179179
end
180-
function A_mul_B!{T<:Number,S}::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T})
180+
function A_mul_B!::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
181181
AA = A.data
182182
m, n = size(B)
183183
for i = m:-1:1
@@ -190,7 +190,7 @@ function A_mul_B!{T<:Number,S}(α::T, A::UnitLowerTriangular{T,S}, B::StridedMat
190190
end
191191
return B
192192
end
193-
function Ac_mul_B!{T<:Number,S}::T, A::UpperTriangular{T,S}, B::StridedMatrix{T})
193+
function Ac_mul_B!::T, A::UpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
194194
AA = A.data
195195
m, n = size(B)
196196
for i = m:-1:1
@@ -203,7 +203,7 @@ function Ac_mul_B!{T<:Number,S}(α::T, A::UpperTriangular{T,S}, B::StridedMatrix
203203
end
204204
return B
205205
end
206-
function Ac_mul_B!{T<:Number,S}::T, A::LowerTriangular{T,S}, B::StridedMatrix{T})
206+
function Ac_mul_B!::T, A::LowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
207207
AA = A.data
208208
m, n = size(B)
209209
for i = 1:m
@@ -216,7 +216,7 @@ function Ac_mul_B!{T<:Number,S}(α::T, A::LowerTriangular{T,S}, B::StridedMatrix
216216
end
217217
return B
218218
end
219-
function Ac_mul_B!{T<:Number,S}::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T})
219+
function Ac_mul_B!::T, A::UnitUpperTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
220220
AA = A.data
221221
m, n = size(B)
222222
for i = m:-1:1
@@ -229,7 +229,7 @@ function Ac_mul_B!{T<:Number,S}(α::T, A::UnitUpperTriangular{T,S}, B::StridedMa
229229
end
230230
return B
231231
end
232-
function Ac_mul_B!{T<:Number,S}::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T})
232+
function Ac_mul_B!::T, A::UnitLowerTriangular{T,S}, B::StridedMatrix{T}) where {T<:Number,S}
233233
AA = A.data
234234
m, n = size(B)
235235
for i = 1:m

0 commit comments

Comments
 (0)