Skip to content

Ambiguity copy(::Mul{<:LazyLayout, <:BandedLayout}) #330

@DanielVandH

Description

@DanielVandH
julia> using LazyArrays, LinearAlgebra, BandedMatrices

julia> A = UpperTriangular(ApplyArray(inv, rand(5, 5)));

julia> v1, v2 = ApplyVector(+, rand(5), rand(5)), ApplyVector(+, rand(4), rand(4));

julia> B = Tridiagonal(v2, v1, v2);

julia> M = Mul(A, B);

julia> copy(M)
ERROR: MethodError: copy(::Mul{ArrayLayouts.TriangularLayout{'U', 'N', LazyArrays.LazyLayout}, ArrayLayouts.TridiagonalLayout{LazyArrays.LazyLayout, LazyArrays.LazyLayout, LazyArrays.LazyLayout}, UpperTriangular{Float64, ApplyArray{Float64, 2, typeof(inv), Tuple{Matrix{Float64}}}}, Tridiagonal{Float64, ApplyVector{Float64, typeof(+), Tuple{Vector{Float64}, Vector{Float64}}}}}) is ambiguous.

Candidates:
  copy(M::Mul{<:Any, <:Union{ArrayLayouts.HermitianLayout{BandedMatrices.BandedColumns{LazyArrays.LazyLayout}}, ArrayLayouts.SymmetricLayout{BandedMatrices.BandedColumns{LazyArrays.LazyLayout}}, BandedMatrices.BandedColumns{LazyArrays.LazyLayout}, BandedMatrices.BandedRows{LazyArrays.LazyLayout}, LazyArraysBandedMatricesExt.AbstractLazyBandedLayout, ArrayLayouts.BidiagonalLayout{LazyArrays.LazyLayout}, ArrayLayouts.SymTridiagonalLayout{LazyArrays.LazyLayout}, ArrayLayouts.TriangularLayout{UPLO, UNIT, BandedMatrices.BandedColumns{LazyArrays.LazyLayout}} where {UPLO, UNIT}, ArrayLayouts.TriangularLayout{UPLO, UNIT, BandedMatrices.BandedRows{LazyArrays.LazyLayout}} where {UPLO, UNIT}, ArrayLayouts.TridiagonalLayout{LazyArrays.LazyLayout}}})
    @ LazyArraysBandedMatricesExt C:\Users\djv23\.julia\packages\LazyArrays\hpRtS\ext\LazyArraysBandedMatricesExt.jl:550
  copy(M::Mul{<:Union{LazyArrays.AbstractLazyLayout, ArrayLayouts.HermitianLayout{<:LazyArrays.AbstractLazyLayout}, ArrayLayouts.SymmetricLayout{<:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'L', 'N', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'U', 'N', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'L', 'U', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'U', 'U', <:LazyArrays.AbstractLazyLayout}}})
    @ LazyArrays C:\Users\djv23\.julia\packages\LazyArrays\hpRtS\src\linalg\mul.jl:360

Possible fix, define
  copy(::Mul{var"#s27", StyleB} where {var"#s27"<:Union{…}, StyleB<:Union{…}})

Stacktrace:
 [1] top-level scope
   @ REPL[15]:1
Some type information was truncated. Use `show(err)` to see complete types.

julia> err
1-element ExceptionStack:
MethodError: copy(::Mul{ArrayLayouts.TriangularLayout{'U', 'N', LazyArrays.LazyLayout}, ArrayLayouts.TridiagonalLayout{LazyArrays.LazyLayout, LazyArrays.LazyLayout, LazyArrays.LazyLayout}, UpperTriangular{Float64, ApplyArray{Float64, 2, typeof(inv), Tuple{Matrix{Float64}}}}, Tridiagonal{Float64, ApplyVector{Float64, typeof(+), Tuple{Vector{Float64}, Vector{Float64}}}}}) is ambiguous.

Candidates:
  copy(M::Mul{<:Any, <:Union{ArrayLayouts.HermitianLayout{BandedMatrices.BandedColumns{LazyArrays.LazyLayout}}, ArrayLayouts.SymmetricLayout{BandedMatrices.BandedColumns{LazyArrays.LazyLayout}}, BandedMatrices.BandedColumns{LazyArrays.LazyLayout}, BandedMatrices.BandedRows{LazyArrays.LazyLayout}, LazyArraysBandedMatricesExt.AbstractLazyBandedLayout, ArrayLayouts.BidiagonalLayout{LazyArrays.LazyLayout}, ArrayLayouts.SymTridiagonalLayout{LazyArrays.LazyLayout}, ArrayLayouts.TriangularLayout{UPLO, UNIT, BandedMatrices.BandedColumns{LazyArrays.LazyLayout}} where {UPLO, UNIT}, ArrayLayouts.TriangularLayout{UPLO, UNIT, BandedMatrices.BandedRows{LazyArrays.LazyLayout}} where {UPLO, UNIT}, ArrayLayouts.TridiagonalLayout{LazyArrays.LazyLayout}}})
    @ LazyArraysBandedMatricesExt C:\Users\djv23\.julia\packages\LazyArrays\hpRtS\ext\LazyArraysBandedMatricesExt.jl:550
  copy(M::Mul{<:Union{LazyArrays.AbstractLazyLayout, ArrayLayouts.HermitianLayout{<:LazyArrays.AbstractLazyLayout}, ArrayLayouts.SymmetricLayout{<:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'L', 'N', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'U', 'N', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'L', 'U', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'U', 'U', <:LazyArrays.AbstractLazyLayout}}})
    @ LazyArrays C:\Users\djv23\.julia\packages\LazyArrays\hpRtS\src\linalg\mul.jl:360

Possible fix, define
  copy(::Mul{var"#s27", StyleB} where {var"#s27"<:Union{LazyArrays.AbstractLazyLayout, ArrayLayouts.HermitianLayout{<:LazyArrays.AbstractLazyLayout}, ArrayLayouts.SymmetricLayout{<:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'L', 'N', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'U', 'N', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'L', 'U', <:LazyArrays.AbstractLazyLayout}, ArrayLayouts.TriangularLayout{'U', 'U', <:LazyArrays.AbstractLazyLayout}}, StyleB<:Union{ArrayLayouts.HermitianLayout{BandedMatrices.BandedColumns{LazyArrays.LazyLayout}}, ArrayLayouts.SymmetricLayout{BandedMatrices.BandedColumns{LazyArrays.LazyLayout}}, BandedMatrices.BandedColumns{LazyArrays.LazyLayout}, BandedMatrices.BandedRows{LazyArrays.LazyLayout}, LazyArraysBandedMatricesExt.AbstractLazyBandedLayout, ArrayLayouts.BidiagonalLayout{LazyArrays.LazyLayout}, ArrayLayouts.SymTridiagonalLayout{LazyArrays.LazyLayout}, ArrayLayouts.TriangularLayout{UPLO, UNIT, BandedMatrices.BandedColumns{LazyArrays.LazyLayout}} where {UPLO, UNIT}, ArrayLayouts.TriangularLayout{UPLO, UNIT, BandedMatrices.BandedRows{LazyArrays.LazyLayout}} where {UPLO, UNIT}, ArrayLayouts.TridiagonalLayout{LazyArrays.LazyLayout}}})

Stacktrace:
 [1] top-level scope
   @ REPL[15]:1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions