@@ -5318,6 +5318,14 @@ solution `X`.
5318
5318
"""
5319
5319
hetrs! (uplo:: AbstractChar , A:: AbstractMatrix , ipiv:: AbstractVector{BlasInt} , B:: AbstractVecOrMat )
5320
5320
5321
+ for f in (:syevd! , :syev! )
5322
+ _f = Symbol (:_ , f)
5323
+ @eval function $f (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix )
5324
+ W, A = $ _f (jobz, uplo, A)
5325
+ jobz == ' V' ? (W, A) : W
5326
+ end
5327
+ end
5328
+
5321
5329
# Symmetric (real) eigensolvers
5322
5330
for (syev, syevr, syevd, sygvd, elty) in
5323
5331
((:dsyev_ ,:dsyevr_ ,:dsyevd_ ,:dsygvd_ ,:Float64 ),
@@ -5329,7 +5337,7 @@ for (syev, syevr, syevd, sygvd, elty) in
5329
5337
# INTEGER INFO, LDA, LWORK, N
5330
5338
# * .. Array Arguments ..
5331
5339
# DOUBLE PRECISION A( LDA, * ), W( * ), WORK( * )
5332
- Base. @constprop :aggressive function syev ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5340
+ Base. @constprop :none function _syev ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5333
5341
require_one_based_indexing (A)
5334
5342
@chkvalidparam 1 jobz (' N' , ' V' )
5335
5343
chkuplo (uplo)
@@ -5350,7 +5358,7 @@ for (syev, syevr, syevd, sygvd, elty) in
5350
5358
resize! (work, lwork)
5351
5359
end
5352
5360
end
5353
- jobz == ' V ' ? ( W, A) : W
5361
+ W, A
5354
5362
end
5355
5363
5356
5364
# SUBROUTINE DSYEVR( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU,
@@ -5429,7 +5437,7 @@ for (syev, syevr, syevd, sygvd, elty) in
5429
5437
# * .. Array Arguments ..
5430
5438
# INTEGER IWORK( * )
5431
5439
# DOUBLE PRECISION A( LDA, * ), W( * ), WORK( * )
5432
- Base. @constprop :aggressive function syevd ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5440
+ Base. @constprop :none function _syevd ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5433
5441
require_one_based_indexing (A)
5434
5442
@chkvalidparam 1 jobz (' N' , ' V' )
5435
5443
chkstride1 (A)
@@ -5459,7 +5467,7 @@ for (syev, syevr, syevd, sygvd, elty) in
5459
5467
resize! (iwork, liwork)
5460
5468
end
5461
5469
end
5462
- jobz == ' V ' ? ( W, A) : W
5470
+ W, A
5463
5471
end
5464
5472
5465
5473
# Generalized eigenproblem
@@ -5526,7 +5534,7 @@ for (syev, syevr, syevd, sygvd, elty, relty) in
5526
5534
# * .. Array Arguments ..
5527
5535
# DOUBLE PRECISION RWORK( * ), W( * )
5528
5536
# COMPLEX*16 A( LDA, * ), WORK( * )
5529
- Base. @constprop :aggressive function syev ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5537
+ Base. @constprop :none function _syev ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5530
5538
require_one_based_indexing (A)
5531
5539
@chkvalidparam 1 jobz (' N' , ' V' )
5532
5540
chkstride1 (A)
@@ -5550,7 +5558,7 @@ for (syev, syevr, syevd, sygvd, elty, relty) in
5550
5558
resize! (work, lwork)
5551
5559
end
5552
5560
end
5553
- jobz == ' V ' ? ( W, A) : W
5561
+ W, A
5554
5562
end
5555
5563
5556
5564
# SUBROUTINE ZHEEVR( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU,
@@ -5639,7 +5647,7 @@ for (syev, syevr, syevd, sygvd, elty, relty) in
5639
5647
# INTEGER IWORK( * )
5640
5648
# DOUBLE PRECISION RWORK( * )
5641
5649
# COMPLEX*16 A( LDA, * ), WORK( * )
5642
- Base. @constprop :aggressive function syevd ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5650
+ Base. @constprop :none function _syevd ! (jobz:: AbstractChar , uplo:: AbstractChar , A:: AbstractMatrix{$elty} )
5643
5651
require_one_based_indexing (A)
5644
5652
@chkvalidparam 1 jobz (' N' , ' V' )
5645
5653
chkstride1 (A)
@@ -5673,7 +5681,7 @@ for (syev, syevr, syevd, sygvd, elty, relty) in
5673
5681
resize! (iwork, liwork)
5674
5682
end
5675
5683
end
5676
- jobz == ' V ' ? ( W, A) : W
5684
+ W, A
5677
5685
end
5678
5686
5679
5687
# SUBROUTINE ZHEGVD( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK,
0 commit comments