@@ -4195,11 +4195,10 @@ for (syconv, sysv, sytrf, sytri, sytrs, elty) in
4195
4195
# * .. Array Arguments ..
4196
4196
# INTEGER IPIV( * )
4197
4197
# DOUBLE PRECISION A( LDA, * ), WORK( * )
4198
- function sytrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
4198
+ function sytrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} , ipiv :: AbstractVector{BlasInt} )
4199
4199
chkstride1 (A)
4200
4200
n = checksquare (A)
4201
4201
chkuplo (uplo)
4202
- ipiv = similar (A, BlasInt, n)
4203
4202
if n == 0
4204
4203
return A, ipiv, zero (BlasInt)
4205
4204
end
@@ -4220,6 +4219,12 @@ for (syconv, sysv, sytrf, sytri, sytrs, elty) in
4220
4219
return A, ipiv, info[]
4221
4220
end
4222
4221
4222
+ function sytrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
4223
+ n = checksquare (A)
4224
+ ipiv = similar (A, BlasInt, n)
4225
+ sytrf! (uplo, A, ipiv)
4226
+ end
4227
+
4223
4228
# SUBROUTINE DSYTRI2( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
4224
4229
# * .. Scalar Arguments ..
4225
4230
# CHARACTER UPLO
@@ -4538,11 +4543,10 @@ for (syconv, hesv, hetrf, hetri, hetrs, elty, relty) in
4538
4543
# * .. Array Arguments ..
4539
4544
# INTEGER IPIV( * )
4540
4545
# COMPLEX*16 A( LDA, * ), WORK( * )
4541
- function hetrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
4546
+ function hetrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} , ipiv :: AbstractVector{BlasInt} )
4542
4547
chkstride1 (A)
4543
4548
n = checksquare (A)
4544
4549
chkuplo (uplo)
4545
- ipiv = similar (A, BlasInt, n)
4546
4550
work = Vector {$elty} (undef, 1 )
4547
4551
lwork = BlasInt (- 1 )
4548
4552
info = Ref {BlasInt} ()
@@ -4560,6 +4564,12 @@ for (syconv, hesv, hetrf, hetri, hetrs, elty, relty) in
4560
4564
A, ipiv, info[]
4561
4565
end
4562
4566
4567
+ function hetrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
4568
+ n = checksquare (A)
4569
+ ipiv = similar (A, BlasInt, n)
4570
+ hetrf! (uplo, A, ipiv)
4571
+ end
4572
+
4563
4573
# SUBROUTINE ZHETRI2( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
4564
4574
# * .. Scalar Arguments ..
4565
4575
# CHARACTER UPLO
@@ -4806,11 +4816,10 @@ for (sysv, sytrf, sytri, sytrs, elty, relty) in
4806
4816
# * .. Array Arguments ..
4807
4817
# INTEGER IPIV( * )
4808
4818
# COMPLEX*16 A( LDA, * ), WORK( * )
4809
- function sytrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
4819
+ function sytrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} , ipiv :: AbstractVector{BlasInt} )
4810
4820
chkstride1 (A)
4811
4821
n = checksquare (A)
4812
4822
chkuplo (uplo)
4813
- ipiv = similar (A, BlasInt, n)
4814
4823
if n == 0
4815
4824
return A, ipiv, zero (BlasInt)
4816
4825
end
@@ -4831,6 +4840,12 @@ for (sysv, sytrf, sytri, sytrs, elty, relty) in
4831
4840
A, ipiv, info[]
4832
4841
end
4833
4842
4843
+ function sytrf! (uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
4844
+ n = checksquare (A)
4845
+ ipiv = similar (A, BlasInt, n)
4846
+ sytrf! (uplo, A, ipiv)
4847
+ end
4848
+
4834
4849
# SUBROUTINE ZSYTRI2( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
4835
4850
# * .. Scalar Arguments ..
4836
4851
# CHARACTER UPLO
@@ -5116,6 +5131,20 @@ zero at position `info`.
5116
5131
"""
5117
5132
sytrf! (uplo:: AbstractChar , A:: AbstractMatrix )
5118
5133
5134
+ """
5135
+ sytrf!(uplo, A, ipiv) -> (A, ipiv, info)
5136
+
5137
+ Computes the Bunch-Kaufman factorization of a symmetric matrix `A`. If
5138
+ `uplo = U`, the upper half of `A` is stored. If `uplo = L`, the lower
5139
+ half is stored.
5140
+
5141
+ Returns `A`, overwritten by the factorization, the pivot vector `ipiv`, and
5142
+ the error code `info` which is a non-negative integer. If `info` is positive
5143
+ the matrix is singular and the diagonal part of the factorization is exactly
5144
+ zero at position `info`.
5145
+ """
5146
+ sytrf! (uplo:: AbstractChar , A:: AbstractMatrix , ipiv:: AbstractVector{BlasInt} )
5147
+
5119
5148
"""
5120
5149
sytri!(uplo, A, ipiv)
5121
5150
@@ -5161,6 +5190,20 @@ zero at position `info`.
5161
5190
"""
5162
5191
hetrf! (uplo:: AbstractChar , A:: AbstractMatrix )
5163
5192
5193
+ """
5194
+ hetrf!(uplo, A, ipiv) -> (A, ipiv, info)
5195
+
5196
+ Computes the Bunch-Kaufman factorization of a Hermitian matrix `A`. If
5197
+ `uplo = U`, the upper half of `A` is stored. If `uplo = L`, the lower
5198
+ half is stored.
5199
+
5200
+ Returns `A`, overwritten by the factorization, the pivot vector `ipiv`, and
5201
+ the error code `info` which is a non-negative integer. If `info` is positive
5202
+ the matrix is singular and the diagonal part of the factorization is exactly
5203
+ zero at position `info`.
5204
+ """
5205
+ hetrf! (uplo:: AbstractChar , A:: AbstractMatrix , ipiv:: AbstractVector{BlasInt} )
5206
+
5164
5207
"""
5165
5208
hetri!(uplo, A, ipiv)
5166
5209
0 commit comments