LAPACK Archives

[Lapack] Defects in LAPACK.

Thank you for the bug reports and sorry for the delay.
The bugs were labelled bug0048, bug0049, and bug0050 and the corresponding 
fixes have been committed in rev 730,731 and 732.
The LAPACK  Errata file has been updated as well
On Feb 3, 2010, at 12:04 AM, Kobotov, Alexander V wrote:


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 )
         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.
Lapack mailing list

Julie Langou; Research Associate in Computer Science
Innovative Computing Laboratory;
University of Tennessee from Denver, Colorado ;-)

-------------- next part --------------
An HTML attachment was scrubbed...

<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