삼각 행렬 벡터 곱셈에 BLAS 함수 dtrmv를 사용하려고합니다. 따라 문서!줄리아 삼각 행렬 벡터 BLAS 래퍼 BLAS.trmv
trmv (UL이 따 (DA), A는, b), OP (A) * OP는 전치 A에서의 tA (ID의 N, T에 의해 결정되는 (B)을 반환 및 C는 공액 전치 A). A의 ul 삼각형 (위쪽은 U, 아래쪽은 L) 만 사용됩니다. dA는 A가 단위 삼각형인지 여부를 나타냅니다 (대각선은 U라면 모두 1, N이라면 비 단원). 승수는 b에서 제자리에서 발생합니다.
실제로 이것을 사용하는 데 문제가 있습니다. 내 예가 여기에 있습니다.
julia> BLAS.trmv('L','N','N',Mchol,Z)
ERROR: MethodError: `trmv` has no method matching trmv(::Char, ::Char, ::Char, ::LowerTriangular{Float64,Array{Float64,2}}, ::Array{Float64,1})
Closest candidates are:
trmv(::Char, ::Char, ::Char, ::Union{DenseArray{Float64,2},SubArray{Float64,2,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}}, ::Union{DenseArray{Float64,1},SubArray{Float64,1,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}})
trmv(::Char, ::Char, ::Char, ::Union{DenseArray{Float32,2},SubArray{Float32,2,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}}, ::Union{DenseArray{Float32,1},SubArray{Float32,1,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}})
trmv(::Char, ::Char, ::Char, ::Union{DenseArray{Complex{Float64},2},SubArray{Complex{Float64},2,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}}, ::Union{DenseArray{Complex{Float64},1},SubArray{Complex{Float64},1,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}})
...
julia> typeof(Mchol)
LowerTriangular{Float64,Array{Float64,2}}
julia> typeof(Z)
Array{Float64,1}
오류를 해석하는 데 문제가 있습니다. 누구든지 도와 줄 수 있습니까?
편집이 :
작동 Mchol = CHOL (M)에 의해 산출 된 Mchol 해결 '! 작동하지 않습니다 하지만 MChol가 LAPACK.potrf에 의해 계산 ('L ', Mchol)