1515CompositeMap {T} (maps:: As ) where {T, As<: LinearMapTupleOrVector } = CompositeMap {T, As} (maps)
1616
1717Base. mapreduce (:: typeof (identity), :: typeof (Base. mul_prod), maps:: LinearMapTupleOrVector ) =
18- CompositeMap {promote_type(map(eltype, maps)...)} (reverse (maps))
18+ CompositeMap {promote_type(map(eltype, maps)...)} (_reverse! (maps))
1919Base. mapreduce (:: typeof (identity), :: typeof (Base. mul_prod), maps:: AbstractVector{<:LinearMap{T}} ) where {T} =
20- CompositeMap {T} (reverse (maps))
20+ CompositeMap {T} (reverse! (maps))
2121
2222MulStyle (A:: CompositeMap ) = MulStyle (A. maps... ) === TwoArg () ? TwoArg () : ThreeArg ()
2323
@@ -158,9 +158,9 @@ Base.:(*)(A₁::CompositeMap, A₂::ScaledMap) = (A₁ * A₂.lmap) * A₂.λ
158158
159159# special transposition behavior
160160LinearAlgebra. transpose (A:: CompositeMap{T} ) where {T} =
161- CompositeMap {T} (map (transpose, reverse (A. maps)))
161+ CompositeMap {T} (map (transpose, _reverse! (A. maps)))
162162LinearAlgebra. adjoint (A:: CompositeMap{T} ) where {T} =
163- CompositeMap {T} (map (adjoint, reverse (A. maps)))
163+ CompositeMap {T} (map (adjoint, _reverse! (A. maps)))
164164
165165# comparison of CompositeMap objects
166166Base.:(== )(A:: CompositeMap , B:: CompositeMap ) =
@@ -169,7 +169,7 @@ Base.:(==)(A::CompositeMap, B::CompositeMap) =
169169# multiplication with vectors/matrices
170170function Base.:(* )(A:: CompositeMap , x:: AbstractVector )
171171 MulStyle (A) === TwoArg () ?
172- foldr (* , reverse (A. maps), init= x) :
172+ foldr (* , _reverse! (A. maps), init= x) :
173173 invoke (* , Tuple{LinearMap, AbstractVector}, A, x)
174174end
175175
0 commit comments