Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Method ambiguities #209

Open
nsajko opened this issue Apr 15, 2023 · 1 comment
Open

Method ambiguities #209

nsajko opened this issue Apr 15, 2023 · 1 comment

Comments

@nsajko
Copy link
Contributor

nsajko commented Apr 15, 2023

  | | |_| | | | (_| |  |  Version 1.10.0-DEV.982 (2023-04-10)
 _/ |\__'_|_|_|\__'_|  |  Commit ea72b942792 (4 days old master)
|__/                   |

julia> using Test, MutableArithmetics
WARNING: using MutableArithmetics.Test in module Main conflicts with an existing identifier.

julia> detect_ambiguities(MutableArithmetics, recursive = true)
92-element Vector{Tuple{Method, Method}}:
 (mul!(C::AbstractMatrix, tA::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractVecOrMat, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:382, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::AbstractMatrix, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:415, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (buffered_operate_to_fallback!(::IsNotMutable, buffer, output, op::Function, args...) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:396, buffered_operate_to_fallback!(buffer, output, op::F, args::Vararg{Any, N}) where {F<:Function, N} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:429)
 (mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:413, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (promote_operation_fallback(op::Function, x::Type{<:AbstractArray}, y::Type{<:AbstractArray}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:15, promote_operation_fallback(op::Union{typeof(add_dot), AddSubMul}, T::Type, args::Vararg{Type, N}) where N @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:94)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250, mul!(y::AbstractVector, adjA::LinearAlgebra.Adjoint{<:Any, <:Union{LinearAlgebra.LowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitLowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitUpperTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UpperTriangular{T, S} where S<:AbstractMatrix{T}, StridedArray{T, 2}} where T}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1837)
 (mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:260, mul!(y::AbstractVector, tA::LinearAlgebra.Transpose{<:Any, <:SparseArrays.AbstractSparseMatrixCSC}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1923)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:675, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:208)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:270, mul!(y::AbstractVector, adjA::LinearAlgebra.Adjoint{<:Any, <:Union{LinearAlgebra.LowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitLowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitUpperTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UpperTriangular{T, S} where S<:AbstractMatrix{T}, StridedArray{T, 2}} where T}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1837)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250, mul!(y::AbstractVector, tA::LinearAlgebra.Transpose{<:Any, <:Union{LinearAlgebra.LowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitLowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitUpperTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UpperTriangular{T, S} where S<:AbstractMatrix{T}, StridedArray{T, 2}} where T}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1799)
 (mul!(C::AbstractMatrix, adjA::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, tB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:467, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, tA::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, tB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:421, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.AbstractTriangular, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:200, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:216)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:677, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.AbstractTriangular, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:200)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250, mul!(y::AbstractVector, A::SparseArrays.AbstractSparseMatrixCSC, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1893)
 (mul!(C::AbstractMatrix, adjA::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, tB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:467, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:677, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:144)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:412, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (buffered_operate_to_fallback!(::IsMutable, buffer, output, op::Function, args...) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:416, buffered_operate_to_fallback!(buffer, output, op::F, args::Vararg{Any, N}) where {F<:Function, N} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:429)
 (mul!(C::AbstractMatrix, adjA::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractVecOrMat, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:437, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractVecOrMat, A::LinearAlgebra.AbstractTriangular, B::AbstractVecOrMat) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:685, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:144)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:402, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractMatrix, tA::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, tB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:421, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:677, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:216)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250, mul!(y::AbstractVector, A::Union{LinearAlgebra.LowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitLowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitUpperTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UpperTriangular{T, S} where S<:AbstractMatrix{T}, StridedArray{T, 2}} where T, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1763)
 (mul!(C::AbstractMatrix, A::AbstractMatrix, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:415, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:689, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::AbstractVecOrMat) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:684, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:216)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:402, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(out::AbstractMatrix, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:407, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.Diagonal, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:419, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::AbstractMatrix, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:411, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (buffered_operate_fallback!(::IsNotMutable, buffer, op::Function, args...) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:469, buffered_operate_fallback!(buffer, op::F, args::Vararg{Any, N}) where {F<:Function, N} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:496)
 (mul!(out::AbstractVector, D::LinearAlgebra.Diagonal, V::AbstractVector, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:395, mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250)
 (mul!(C::AbstractMatrix, Da::LinearAlgebra.Diagonal, Db::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:413, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractVecOrMat, A::LinearAlgebra.AbstractTriangular, B::AbstractVecOrMat) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:685, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:208)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::AbstractMatrix, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:397, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractVector, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::AbstractVector, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:410, mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250)
 (mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:192, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:208)
 (mul!(out::AbstractMatrix, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:409, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250, mul!(y::AbstractVector, adjA::LinearAlgebra.Adjoint{<:Any, <:SparseArrays.AbstractSparseMatrixCSC}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1926)
 (mul!(C::AbstractMatrix, adjA::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, tB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:467, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290)
 (buffered_operate_fallback!(buffer, op::F, args::Vararg{Any, N}) where {F<:Function, N} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:496, buffered_operate_fallback!(::IsMutable, buffer, ::typeof(add_dot), a, b, c) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:711)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::AbstractMatrix, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:397, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(out::AbstractMatrix, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:407, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290)
 (promote_operation_fallback(op::Function, x::Type{<:AbstractArray}, y::Type{<:AbstractArray}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:15, promote_operation_fallback(::typeof(/), ::Type{S}, ::Type{T}) where {S, T} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:36)
 (mul!(C::AbstractVecOrMat, A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:679, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:216)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::AbstractVecOrMat) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:684, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:144)
 (mul!(C::AbstractMatrix, adjA::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractVecOrMat, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:437, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:412, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractMatrix, A::AbstractVecOrMat, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:453, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (buffered_operate_fallback!(::IsMutable, buffer, op::Function, args...) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:488, buffered_operate_fallback!(buffer, op::F, args::Vararg{Any, N}) where {F<:Function, N} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:496)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:675, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.AbstractTriangular, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:200)
 (mul!(out::AbstractMatrix, A::AbstractMatrix, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:404, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:400, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::AbstractMatrix, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:415, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280)
 (buffered_operate_to_fallback!(buffer, output, op::F, args::Vararg{Any, N}) where {F<:Function, N} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:429, buffered_operate_to_fallback!(::IsMutable, buffer, output, ::typeof(add_dot), a, b, c) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:699)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::AbstractMatrix, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:411, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:184, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:216)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:416, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:260, mul!(y::AbstractVector, tA::LinearAlgebra.Transpose{<:Any, <:Union{LinearAlgebra.LowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitLowerTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UnitUpperTriangular{T, S} where S<:AbstractMatrix{T}, LinearAlgebra.UpperTriangular{T, S} where S<:AbstractMatrix{T}, StridedArray{T, 2}} where T}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1799)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:675, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:144)
 (mul!(C::AbstractVecOrMat, A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:679, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:144)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:250, mul!(y::AbstractVector, tA::LinearAlgebra.Transpose{<:Any, <:SparseArrays.AbstractSparseMatrixCSC}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1923)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:400, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(out::AbstractMatrix, A::AbstractMatrix, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:404, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:417, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(out::AbstractMatrix, A::AbstractMatrix, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:404, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:418, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, tA::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractVecOrMat, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:382, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(C::AbstractMatrix, tA::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, tB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:421, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractVecOrMat, A::LinearAlgebra.AbstractTriangular, B::AbstractVecOrMat) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:685, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:216)
 (mul!(out::AbstractMatrix, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, D::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:409, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(out::AbstractMatrix, D::LinearAlgebra.Diagonal, B::AbstractMatrix, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/diagonal.jl:397, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (promote_operation_fallback(op::Function, x::Type{<:AbstractArray}, y::Type{<:AbstractArray}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:15, promote_operation_fallback(::typeof(LinearAlgebra.dot), ::Type{A}, ::Type{B}) where {A, B} @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/interface.jl:670)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:689, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::AbstractVecOrMat, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:453, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280)
 (mul!(ret::AbstractVector{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractVector, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:270, mul!(y::AbstractVector, adjA::LinearAlgebra.Adjoint{<:Any, <:SparseArrays.AbstractSparseMatrixCSC}, x::SparseArrays.AbstractSparseVector, α::Number, β::Number) @ SparseArrays ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:1926)
 (mul!(C::AbstractMatrix, A::AbstractVecOrMat, tB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:407, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::LinearAlgebra.Diagonal, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:414, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::AbstractVecOrMat, tB::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:407, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:290)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:687, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:687, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractVecOrMat, A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:679, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.AbstractTriangular, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:200)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.AbstractTriangular, B::AbstractVecOrMat) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:684, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:208)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:413, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:310)
 (mul!(C::AbstractMatrix, A::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, B::AbstractMatrix, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:411, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:300)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.Adjoint{<:Any, <:AbstractVecOrMat}, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:416, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractVecOrMat, B::AbstractVecOrMat, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:240)
 (mul!(C::AbstractMatrix, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::Union{LinearAlgebra.Bidiagonal, LinearAlgebra.SymTridiagonal, LinearAlgebra.Tridiagonal}, alpha::Number, beta::Number) @ LinearAlgebra ~/tmp/julia-ea72b94279/share/julia/stdlib/v1.10/LinearAlgebra/src/bidiag.jl:417, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}, B::AbstractMatrix, α::Number, β::Number) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:280)
 (mul!(ret::AbstractMatrix{<:AbstractMutable}, A::LinearAlgebra.AbstractTriangular, B::AbstractMatrix) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:200, mul!(ret::AbstractMatrix{<:AbstractMutable}, A::AbstractMatrix, B::LinearAlgebra.Transpose{<:Any, <:AbstractVecOrMat}) @ MutableArithmetics ~/.julia/packages/MutableArithmetics/geMUn/src/dispatch.jl:208)
@odow
Copy link
Member

odow commented Apr 16, 2023

This is known and it is a pretty unavoidable consequence of how Julia's dispatch currently works.

We'll fix ambiguity errors on a case-by-case basis with working examples that demonstrate a problem, but it's hard to fix all of them in a generic manner.

@odow odow changed the title many ambiguous methods Method ambiguities Nov 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants