diff options
author | julie <julielangou@users.noreply.github.com> | 2012-04-12 00:56:00 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2012-04-12 00:56:00 +0000 |
commit | d1c0c25cd21baff8edfe9273b2f975ac81da2703 (patch) | |
tree | f8e44c4112fca053cb04b9cc2d07fa905ef28c85 /SRC/csyrfsx.f | |
parent | 21199982e23bb604c3a4e61f8dc3b5db69009039 (diff) | |
download | lapack-d1c0c25cd21baff8edfe9273b2f975ac81da2703.tar.gz lapack-d1c0c25cd21baff8edfe9273b2f975ac81da2703.tar.bz2 lapack-d1c0c25cd21baff8edfe9273b2f975ac81da2703.zip |
Follow up to rev r1130
Fix bug bug0088 reported by Mike Pont from NAG on the forum
(see http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=2893)
Actually there were a lot of problems regarding arguments checking.
I tried to correct most of them.
Apply the fix propose to all x[he/sy]rfsx.f routines
- Use IGNORE_CWISE as suggested to prevent use of unitialize variable PARAMS
I also appied the previous TESTING fix to all routines
INFO has new value in ZHERFSX (see description of INFO between ZHESVX and ZHESVXX)
This is set on line 634 (IF ( INFO .LE. N ) INFO = N + J) of zherfsx.f
And this is not handled by the testing LIN/zdrvhex.f
I just add .AND. INFO.LE.N at line 638 to avoid raising an error when INFO = N + J
At the moment, I would recommand a further look at those routines.
ZHE, ZSY led to 182 Tests failing to pass the threshold
and the same for complex
better than before, but still....
Diffstat (limited to 'SRC/csyrfsx.f')
-rw-r--r-- | SRC/csyrfsx.f | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/SRC/csyrfsx.f b/SRC/csyrfsx.f index 0ff61b12..6d76b4c0 100644 --- a/SRC/csyrfsx.f +++ b/SRC/csyrfsx.f @@ -535,9 +535,9 @@ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN INFO = -8 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -11 + INFO = -12 ELSE IF( LDX.LT.MAX( 1, N ) ) THEN - INFO = -13 + INFO = -14 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'CSYRFSX', -INFO ) @@ -680,7 +680,7 @@ IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0 ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0 - IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0 + IF ( .NOT. IGNORE_CWISE $ .AND. INFO.LT.N + J ) INFO = N + J ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) $ .LT. ERR_LBND ) THEN |