@@ -1323,15 +1323,6 @@ end
13231323# Generic routines #
13241324# ###################
13251325
1326- function _set_diag! (B:: UpperOrLowerTriangular , x)
1327- # get a mutable array to modify the diagonal
1328- Bm = parent (B) isa StridedArray ? B : copy! (similar (B), B)
1329- for i in diagind (Bm. data, IndexStyle (Bm. data))
1330- Bm. data[i] = x
1331- end
1332- Bm
1333- end
1334-
13351326for (t, unitt) in ((UpperTriangular, UnitUpperTriangular),
13361327 (LowerTriangular, UnitLowerTriangular))
13371328 tstrided = t{<: Any , <: StridedMaybeAdjOrTransMat }
@@ -1344,8 +1335,8 @@ for (t, unitt) in ((UpperTriangular, UnitUpperTriangular),
13441335 end
13451336
13461337 function (* )(A:: $unitt , x:: Number )
1347- B = $ t (A. data)* x
1348- _set_diag! (B, oneunit ( eltype (A)) * x)
1338+ B = copy! ( similar ( $ t (A. data)), A)
1339+ B * x
13491340 end
13501341
13511342 (* )(x:: Number , A:: $t ) = $ t (x* A. data)
@@ -1356,8 +1347,8 @@ for (t, unitt) in ((UpperTriangular, UnitUpperTriangular),
13561347 end
13571348
13581349 function (* )(x:: Number , A:: $unitt )
1359- B = x * $ t (A. data)
1360- _set_diag! (B, x * oneunit ( eltype (A)))
1350+ B = copy! ( similar ( $ t (A. data)), A )
1351+ x * B
13611352 end
13621353
13631354 (/ )(A:: $t , x:: Number ) = $ t (A. data/ x)
@@ -1368,8 +1359,8 @@ for (t, unitt) in ((UpperTriangular, UnitUpperTriangular),
13681359 end
13691360
13701361 function (/ )(A:: $unitt , x:: Number )
1371- B = $ t (A. data)/ x
1372- _set_diag! (B, oneunit ( eltype (A)) / x)
1362+ B = copy! ( similar ( $ t (A. data)), A)
1363+ B / x
13731364 end
13741365
13751366 (\ )(x:: Number , A:: $t ) = $ t (x\ A. data)
@@ -1380,8 +1371,8 @@ for (t, unitt) in ((UpperTriangular, UnitUpperTriangular),
13801371 end
13811372
13821373 function (\ )(x:: Number , A:: $unitt )
1383- B = x \ $ t (A. data)
1384- _set_diag! (B, x \ oneunit ( eltype (A)))
1374+ B = copy! ( similar ( $ t (A. data)), A )
1375+ x \ B
13851376 end
13861377 end
13871378end
0 commit comments