@@ -311,20 +311,14 @@ isreal(M::Bidiagonal) = isreal(M.dv) && isreal(M.ev)
311311adjoint (B:: Bidiagonal{<:Number} ) = Bidiagonal (vec (adjoint (B. dv)), vec (adjoint (B. ev)), B. uplo == ' U' ? :L : :U )
312312adjoint (B:: Bidiagonal{<:Number, <:Base.ReshapedArray{<:Number,1,<:Adjoint}} ) =
313313 Bidiagonal (adjoint (parent (B. dv)), adjoint (parent (B. ev)), B. uplo == ' U' ? :L : :U )
314+ adjoint (B:: Bidiagonal ) = Bidiagonal (adjoint .(B. dv), adjoint .(B. ev), B. uplo == ' U' ? :L : :U )
314315transpose (B:: Bidiagonal{<:Number} ) = Bidiagonal (B. dv, B. ev, B. uplo == ' U' ? :L : :U )
316+ transpose (B:: Bidiagonal ) = Bidiagonal (transpose .(B. dv), transpose .(B. ev), B. uplo == ' U' ? :L : :U )
315317permutedims (B:: Bidiagonal ) = Bidiagonal (B. dv, B. ev, B. uplo == ' U' ? ' L' : ' U' )
316318function permutedims (B:: Bidiagonal , perm)
317319 Base. checkdims_perm (axes (B), axes (B), perm)
318320 NTuple {2} (perm) == (2 , 1 ) ? permutedims (B) : B
319321end
320- function Base. copy (aB:: Adjoint{<:Any,<:Bidiagonal} )
321- B = aB. parent
322- return Bidiagonal (map (x -> copy .(adjoint .(x)), (B. dv, B. ev))... , B. uplo == ' U' ? :L : :U )
323- end
324- function Base. copy (tB:: Transpose{<:Any,<:Bidiagonal} )
325- B = tB. parent
326- return Bidiagonal (map (x -> copy .(transpose .(x)), (B. dv, B. ev))... , B. uplo == ' U' ? :L : :U )
327- end
328322
329323@noinline function throw_zeroband_error (A)
330324 uplo = A. uplo
@@ -1362,14 +1356,10 @@ function ldiv!(c::AbstractVecOrMat, A::Bidiagonal, b::AbstractVecOrMat)
13621356 end
13631357 return c
13641358end
1365- ldiv! (A:: AdjOrTrans{<:Any,<:Bidiagonal} , b:: AbstractVecOrMat ) = @inline ldiv! (b, A, b)
1366- ldiv! (c:: AbstractVecOrMat , A:: AdjOrTrans{<:Any,<:Bidiagonal} , b:: AbstractVecOrMat ) =
1367- (t = wrapperop (A); _rdiv! (t (c), t (b), t (A)); return c)
13681359
13691360# ## Generic promotion methods and fallbacks
13701361\ (A:: Bidiagonal , B:: AbstractVecOrMat ) =
13711362 ldiv! (matprod_dest (A, B, promote_op (\ , eltype (A), eltype (B))), A, B)
1372- \ (xA:: AdjOrTrans{<:Any,<:Bidiagonal} , B:: AbstractVecOrMat ) = copy (xA) \ B
13731363
13741364# ## Triangular specializations
13751365for tri in (:UpperTriangular , :UnitUpperTriangular )
@@ -1441,9 +1431,6 @@ function _rdiv!(C::AbstractMatrix, A::AbstractMatrix, B::Bidiagonal)
14411431 C
14421432end
14431433rdiv! (A:: AbstractMatrix , B:: Bidiagonal ) = @inline _rdiv! (A, A, B)
1444- rdiv! (A:: AbstractMatrix , B:: AdjOrTrans{<:Any,<:Bidiagonal} ) = @inline _rdiv! (A, A, B)
1445- _rdiv! (C:: AbstractMatrix , A:: AbstractMatrix , B:: AdjOrTrans{<:Any,<:Bidiagonal} ) =
1446- (t = wrapperop (B); ldiv! (t (C), t (B), t (A)); return C)
14471434
14481435/ (A:: AbstractMatrix , B:: Bidiagonal ) =
14491436 _rdiv! (similar (A, promote_op (/ , eltype (A), eltype (B)), size (A)), A, B)
@@ -1476,15 +1463,9 @@ function /(D::Diagonal, B::Bidiagonal)
14761463 return B. uplo == ' U' ? UpperTriangular (A) : LowerTriangular (A)
14771464end
14781465
1479- / (A:: AbstractMatrix , B:: Transpose{<:Any,<:Bidiagonal} ) = A / copy (B)
1480- / (A:: AbstractMatrix , B:: Adjoint{<:Any,<:Bidiagonal} ) = A / copy (B)
14811466# disambiguation
14821467/ (A:: AdjointAbsVec , B:: Bidiagonal ) = adjoint (adjoint (B) \ parent (A))
14831468/ (A:: TransposeAbsVec , B:: Bidiagonal ) = transpose (transpose (B) \ parent (A))
1484- / (A:: AdjointAbsVec , B:: Transpose{<:Any,<:Bidiagonal} ) = adjoint (adjoint (B) \ parent (A))
1485- / (A:: TransposeAbsVec , B:: Transpose{<:Any,<:Bidiagonal} ) = transpose (transpose (B) \ parent (A))
1486- / (A:: AdjointAbsVec , B:: Adjoint{<:Any,<:Bidiagonal} ) = adjoint (adjoint (B) \ parent (A))
1487- / (A:: TransposeAbsVec , B:: Adjoint{<:Any,<:Bidiagonal} ) = transpose (transpose (B) \ parent (A))
14881469
14891470factorize (A:: Bidiagonal ) = A
14901471function inv (B:: Bidiagonal{T} ) where T
0 commit comments