Skip to content

Commit 478d4a8

Browse files
committed
method ambiguities
1 parent 1bfa2ce commit 478d4a8

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/basic.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,22 @@ Base.:*(ops::AbstractSciMLOperator...) = ComposedOperator(ops...)
512512
Base.:*(A::AbstractSciMLOperator, B::AbstractSciMLOperator) = (A, B)
513513
Base.:*(A::ComposedOperator, B::AbstractSciMLOperator) = (A.ops[1:end-1]..., A.ops[end] * B)
514514
Base.:*(A::AbstractSciMLOperator, B::ComposedOperator) = (A * B.ops[1], B.ops[2:end]...)
515+
Base.:*(A::ComposedOperator, B::ComposedOperator) = ComposedOperator(A.ops..., B.ops...)
516+
517+
for op in (
518+
:*, :,
519+
)
520+
# identity
521+
@eval function Base.$op(::IdentityOperator{N}, A::ComposedOperator) where{N}
522+
@assert size(A, 1) == N
523+
A
524+
end
525+
526+
@eval function Base.$op(A::ComposedOperator, ::IdentityOperator{N}) where{N}
527+
@assert size(A, 2) == N
528+
A
529+
end
530+
end
515531

516532
Base.convert(::Type{AbstractMatrix}, L::ComposedOperator) = prod(op -> convert(AbstractMatrix, op), L.ops)
517533
SparseArrays.sparse(L::ComposedOperator) = prod(_sparse, L.ops)

0 commit comments

Comments
 (0)