@@ -18,7 +18,9 @@ ClosedScalar = Union{T, Complex{T}} where T <: ClosedReal
18
18
19
19
Matrix factorization type of the Bunch-Kaufman factorization of a symmetric or
20
20
Hermitian matrix `A` as `P'UDU'P` or `P'LDL'P`, depending on whether the upper
21
- (the default) or the lower triangle is stored in `A`. If `A` is complex symmetric
21
+ (the default) or the lower triangle is stored in `A`. Here, `U` and `L` are
22
+ respectively upper and lower triangular, `P` is a permutation matrix, and `D`
23
+ is block diagonal with 1-by-1 and 2-by-2 blocks. If `A` is complex symmetric
22
24
then `U'` and `L'` denote the unconjugated transposes, i.e. `transpose(U)` and
23
25
`transpose(L)`, respectively. This is the return type of [`bunchkaufman`](@ref),
24
26
the corresponding matrix factorization function.
@@ -136,6 +138,8 @@ bkcopy_oftype(A::Symmetric{<:Complex}, S) = Symmetric(copytrito!(similar(parent(
136
138
Compute the Bunch-Kaufman [^Bunch1977] factorization of a symmetric or
137
139
Hermitian matrix `A` as `P'*U*D*U'*P` or `P'*L*D*L'*P`, depending on
138
140
which triangle is stored in `A`, and return a [`BunchKaufman`](@ref) object.
141
+ Here, `U` and `L` are respectively upper and lower triangular, `P` is a
142
+ permutation matrix, and `D` is block diagonal with 1-by-1 and 2-by-2 blocks.
139
143
Note that if `A` is complex symmetric then `U'` and `L'` denote
140
144
the unconjugated transposes, i.e. `transpose(U)` and `transpose(L)`.
141
145
@@ -706,18 +710,20 @@ LD<:AbstractMatrix, ipiv<:AbstractVector{Integer}, info::BlasInt
706
710
707
711
Computes the Bunch-Kaufman factorization of a symmetric or Hermitian
708
712
matrix `A` of size `NxN` as `P'*U*D*U'*P` or `P'*L*D*L'*P`, depending on
709
- which triangle is stored in `A`. Note that if `A` is complex symmetric
710
- then `U'` and `L'` denote the unconjugated transposes, i.e.
711
- `transpose(U)` and `transpose(L)`. The resulting `U` or `L` and D are
712
- stored in-place in `A`, LAPACK style. `LD` is just a reference to `A`
713
- (that is, `LD===A`). `ipiv` stores the permutation information of the
714
- algorithm in LAPACK format. `info` indicates whether the factorization
715
- was successful and non-singular when `info==0`, or else `info` takes a
716
- different value. The outputs `LD`, `ipiv`, `info` follow the format of
717
- the LAPACK functions of the Bunch-Kaufman factorization (`dsytrf`,
718
- `csytrf`, `chetrf`, etc.), so this function can (ideally) be used
719
- interchangeably with its LAPACK counterparts `LAPACK.sytrf!`,
720
- `LAPACK.sytrf_rook!`, etc.
713
+ which triangle is stored in `A`. Here, `U` and `L` are
714
+ respectively upper and lower triangular, `P` is a permutation matrix,
715
+ and `D` is block diagonal with 1-by-1 and 2-by-2 blocks. Note that if
716
+ `A` is complex symmetric then `U'` and `L'` denote the unconjugated
717
+ transposes, i.e. `transpose(U)` and `transpose(L)`. The resulting `U` or
718
+ `L` and `D` are stored in-place in `A`, LAPACK style. `LD` is just a
719
+ reference to `A` (that is, `LD===A`). `ipiv` stores the permutation
720
+ information of the algorithm in LAPACK format. `info` indicates whether
721
+ the factorization was successful and non-singular when `info==0`, or
722
+ else `info` takes a different value. The outputs `LD`, `ipiv`, `info`
723
+ follow the format of the LAPACK functions of the Bunch-Kaufman
724
+ factorization (`dsytrf`, `csytrf`, `chetrf`, etc.), so this function can
725
+ (ideally) be used interchangeably with its LAPACK counterparts
726
+ `LAPACK.sytrf!`, `LAPACK.sytrf_rook!`, etc.
721
727
722
728
`uplo` is a character, either `'U'` or `'L'`, indicating whether the
723
729
matrix is stored in the upper triangular part (`uplo=='U'`) or in the
0 commit comments