@@ -82,12 +82,12 @@ for op in (
8282 end
8383end
8484
85- function Base.:\ (:: IdentityOperator , A:: AbstractSciMLOperator )
85+ function Base.:\ (ii :: IdentityOperator , A:: AbstractSciMLOperator )
8686 @assert size (A, 1 ) == ii. len
8787 A
8888end
8989
90- function Base.:/ (A:: AbstractSciMLOperator , :: IdentityOperator )
90+ function Base.:/ (A:: AbstractSciMLOperator , ii :: IdentityOperator )
9191 @assert size (A, 2 ) == ii. len
9292 A
9393end
@@ -471,16 +471,15 @@ function ComposedOperator(ops::AbstractSciMLOperator...; cache = nothing)
471471end
472472
473473# constructors
474- Base.:∘ (ops:: AbstractSciMLOperator... ) = ComposedOperator (ops... )
475- Base.:∘ (A:: ComposedOperator , B:: ComposedOperator ) = ComposedOperator (A. ops... , B. ops... )
476- Base.:∘ (A:: AbstractSciMLOperator , B:: ComposedOperator ) = ComposedOperator (A, B. ops... )
477- Base.:∘ (A:: ComposedOperator , B:: AbstractSciMLOperator ) = ComposedOperator (A. ops... , B)
478-
479- Base.:* (ops:: AbstractSciMLOperator... ) = ComposedOperator (ops... )
480- Base.:* (A:: AbstractSciMLOperator , B:: AbstractSciMLOperator ) = ∘ (A, B)
481- Base.:* (A:: ComposedOperator , B:: AbstractSciMLOperator ) = ∘ (A. ops[1 : end - 1 ]. .. , A. ops[end ] * B)
482- Base.:* (A:: AbstractSciMLOperator , B:: ComposedOperator ) = ∘ (A * B. ops[1 ], B. ops[2 : end ]. .. )
483- Base.:* (A:: ComposedOperator , B:: ComposedOperator ) = ComposedOperator (A. ops... , B. ops... )
474+ for op in (
475+ :* , :∘ ,
476+ )
477+ @eval Base.$ op (ops:: AbstractSciMLOperator... ) = reduce ($ op, ops)
478+ @eval Base.$ op (A:: AbstractSciMLOperator , B:: AbstractSciMLOperator ) = ComposedOperator (A, B)
479+ @eval Base.$ op (A:: ComposedOperator , B:: AbstractSciMLOperator ) = ComposedOperator (A. ops... , B)
480+ @eval Base.$ op (A:: AbstractSciMLOperator , B:: ComposedOperator ) = ComposedOperator (A, B. ops... )
481+ @eval Base.$ op (A:: ComposedOperator , B:: ComposedOperator ) = ComposedOperator (A. ops... , B. ops... )
482+ end
484483
485484for op in (
486485 :* , :∘ ,
0 commit comments