@@ -265,15 +265,17 @@ end
265
265
* (J:: UniformScaling , x:: Number ) = UniformScaling (J. λ* x)
266
266
267
267
/ (J1:: UniformScaling , J2:: UniformScaling ) = J2. λ == 0 ? throw (SingularException (1 )) : UniformScaling (J1. λ/ J2. λ)
268
- / (J:: UniformScaling , A:: AbstractMatrix ) = lmul! (J. λ, inv (A))
268
+ / (J:: UniformScaling , A:: AbstractMatrix ) =
269
+ (invA = inv (A); lmul! (J. λ, convert (AbstractMatrix{promote_type (eltype (J),eltype (invA))}, invA)))
269
270
/ (A:: AbstractMatrix , J:: UniformScaling ) = J. λ == 0 ? throw (SingularException (1 )) : A/ J. λ
270
271
/ (v:: AbstractVector , J:: UniformScaling ) = reshape (v, length (v), 1 ) / J
271
272
272
273
/ (J:: UniformScaling , x:: Number ) = UniformScaling (J. λ/ x)
273
274
274
275
\ (J1:: UniformScaling , J2:: UniformScaling ) = J1. λ == 0 ? throw (SingularException (1 )) : UniformScaling (J1. λ\ J2. λ)
275
276
\ (J:: UniformScaling , A:: AbstractVecOrMat ) = J. λ == 0 ? throw (SingularException (1 )) : J. λ\ A
276
- \ (A:: AbstractMatrix , J:: UniformScaling ) = rmul! (inv (A), J. λ)
277
+ \ (A:: AbstractMatrix , J:: UniformScaling ) =
278
+ (invA = inv (A); rmul! (convert (AbstractMatrix{promote_type (eltype (invA),eltype (J))}, invA), J. λ))
277
279
\ (F:: Factorization , J:: UniformScaling ) = F \ J (size (F,1 ))
278
280
279
281
\ (x:: Number , J:: UniformScaling ) = UniformScaling (x\ J. λ)
0 commit comments