LAPACK Archives

[Lapack] Defects in LAPACK.


I have a few more defects noticed in LAPACK 3.2.1 to report:
1. Hanging could occur in ?gebal if a NaN is in input matrix. Hanging occurs in 
loop 160 (lines 266-275 for dgebal), because exit condition is always fail in 
the case and the loop become infinite.
Fix could be like following:
Adding DISNAN in External Functions list:
???? ?LOGICAL??????????? LSAME, DISNAN
???? ?EXTERNAL?????????? LSAME, DISNAN

And adding NaN check in the LOOP:
? 160??? CONTINUE
???? ????IF( C.GE.G .OR. MAX( F, C, CA ).GE.SFMAX2 .OR.
???? $?????? MIN( R, G, RA ).LE.SFMIN2 )GO TO 170
???? ????IF( DISNAN( C+F+CA+R+G+RA ) ) THEN
*?????????? Exit if NaN to avoid infinite loop
???? ???????INFO = -3
???? ???????CALL XERBLA( 'DGEBAL', -INFO )
???? ???????RETURN
???? ????END IF
???? ????F = F*SCLFAC
???? ????C = C*SCLFAC
???? ????CA = CA*SCLFAC
???? ????R = R / SCLFAC
???? ????G = G / SCLFAC
???? ????RA = RA / SCLFAC
???? ????GO TO 160

2. In ?laed8 routines an output parameter GIVPTR stays uninitialized in case of 
quick exit (n.eq.0) or if the rank-1 modifier is small enough (also returns 
before initializing GIVPTR). This could lead to an unspecified code behavior 
(usually sigfault) when IWORK array on entry to ?stedc is not zeroed (or at 
least some IWORK entries which used in ?laed7 for GIVPTR).
Fix here is simple, just move line GIVPTR = 0 in the beginning of ?LAED8, for 
example right after testing of input parameters.

3. In STFSM at lines 348-249 an extra argument after matrix A. The argument 
obviously causes a crash of SGEMM call due parameters inconsistency if compiler 
reads more than 72 columns of source.
                        CALL SGEMM( 'T', 'N', M1, N, M2, -ONE, A( M1 ), M,
     +                              M, B( M1, 0 ), LDB, ALPHA, B, LDB )
Should be:
                        CALL SGEMM( 'T', 'N', M1, N, M2, -ONE, A( M1 ),
     +                              M, B( M1, 0 ), LDB, ALPHA, B, LDB )

PS. Sorry if you see the message twice. Previous one from 12/29/2009 seems not 
to be delivered, or at least not appeared at


Closed Joint Stock Company Intel A/O
Registered legal address: Krylatsky Hills Business Park, 
17 Krylatskaya Str., Bldg 4, Moscow 121614, 
Russian Federation

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

<Prev in Thread] Current Thread [Next in Thread>

For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or