LinearAlgebra.BLAS.gbmv!('N', 100, 1, 1, 1.0, A_POC, ones(100), 0.0, ones(100))
throws error
julia> LinearAlgebra.BLAS.gbmv!('N', 100, 1, 1, 1.0, (A_POC), ones(100), 0.0, on
es(100))
ERROR: LoadError: MethodError: no method matching strides(::Tridiagonal{Float64,
Vector{Float64}})
Closest candidates are:
strides(::LoopVectorization.LowDimArray) at C:\Users\Jianghui\.julia\packages\
LoopVectorization\O8WW6\src\broadcast.jl:10
strides(::SubArray) at subarray.jl:350
strides(::ArrayInterface.AbstractArray2) at C:\Users\Jianghui\.julia\packages\
ArrayInterface\VEFPY\src\ArrayInterface.jl:810
...
Stacktrace:
[1] stride(A::Tridiagonal{Float64, Vector{Float64}}, k::Int64)
@ Base .\abstractarray.jl:501
[2] stride1(x::Tridiagonal{Float64, Vector{Float64}})
@ LinearAlgebra ~\AppData\Local\Programs\Julia-1.6.0\share\julia\stdlib\v1.6\
LinearAlgebra\src\LinearAlgebra.jl:197
[3] _chkstride1
@ ~\AppData\Local\Programs\Julia-1.6.0\share\julia\stdlib\v1.6\LinearAlgebra\
src\LinearAlgebra.jl:203 [inlined]
[4] chkstride1
@ ~\AppData\Local\Programs\Julia-1.6.0\share\julia\stdlib\v1.6\LinearAlgebra\
src\LinearAlgebra.jl:201 [inlined]
[5] gbmv!(trans::Char, m::Int64, kl::Int64, ku::Int64, alpha::Float64, A::Tridi
agonal{Float64, Vector{Float64}}, x::Vector{Float64}, beta::Float64, y::Vector{F
loat64})
@ LinearAlgebra.BLAS ~\AppData\Local\Programs\Julia-1.6.0\share\julia\stdlib\
v1.6\LinearAlgebra\src\blas.jl:783
[6] top-level scope
@ ~\Documents\Manuscripts\SBB\v12\main_fvcf.jl:29
in expression starting at c:\Users\Jianghui\Documents\Manuscripts\SBB\v12\main_f
vcf.jl:29
when A is a tridiagonal matrix
julia> A_POC
100ร100 Tridiagonal{Float64, Vector{Float64}}:
-4736.81 2509.53 โ
โฆ โ
โ
โ
4286.01 -6265.57 1979.56 โ
โ
โ
โ
3614.68 -5169.42 โ
โ
โ
โ
โ
3056.74 โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โฆ โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โฎ โฑ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โ
โฆ โ
โ
โ
โ
โ
โ
0.0 โ
โ
โ
โ
โ
-0.0712289 0.0 โ
โ
โ
โ
0.061917 -0.061917 0.
โ
โ
โ
โ
0.0537804 -0.0537804
but it works after converting A_POC to a dense Matrix
LinearAlgebra.BLAS.gbmv!('N', 100, 1, 1, 1.0, Array(A_POC), ones(100), 0.0, ones(100))
Does this mean the BLAS
functions only accept dense matrices?