LAPACK Archives

[Lapack] Issues with lapack 3.6.0 trunk 1563

Thank you We just commit the fixes. 
Could you please update and try again. The issue should be solved
Regards,
Julie

On Aug 10, 2015, at 7:16 AM, Vittorio Zecca <zeccav@Domain.Removed> wrote:

Hi there,

I just downloaded lapack 3.6.0 trunk level 1563.
I have an x86-64 hardware.
During compilation I found that in zgges3.f line 404

WORK( 1 ) = DCMPLX( WKOPT )

the variable WKOPT is referenced but not declared nor initialized.
Should it be LWKOPT instead?


Running "./xeigtsts < svd.in" I get the gfortran runtime error message

Program received signal SIGFPE: Floating-point exception - erroneous
arithmetic operation.

This is in sgesvj.f line 627 "TEMP1 = AMIN1( BIG, TEMP1 / AAPP )"
where BIG=3.40282347E+38   TEMP1=1.06502325E+19   AAPP=8.75567555E-32
so that TEMP1/AAPP is too large for single precision arithmetic.
I "fixed" this one changing the abovementioned statement to

TEMP1 = DMIN1( dble(BIG), dble(TEMP1) / dble(AAPP) )

but I am not sure this is correct.
What is the right fix?

Same error message running "./xeigtsts < sgg.in"
Program received signal SIGFPE: Floating-point exception - erroneous
arithmetic operation.
in shgeqz.f line 762

     IF ( ABS( (WR/S1)*T( ILAST, ILAST ) - H( ILAST, ILAST ) )
    $   .GT. ABS( (WR2/S2)*T( ILAST, ILAST )
    $   - H( ILAST, ILAST ) ) ) THEN

because

WR=-1.11871902E+11   S1=1.17549435E-36  ILAST=3   T=2.48154184E-24
H=-2.41910350E+23  WR2=-1.11871902E+11   S2=1.17549435E-36

so I get overflows computing WR/S1 and WR2/S2
I "fixed" this one by changing the statement into

     IF (DABS((dble(WR)/dble(S1))*T( ILAST, ILAST ) - H( ILAST, ILAST))
    $         .GT.DABS( (dble(WR2)/dble(S2))*T( ILAST, ILAST )
    $         - H( ILAST, ILAST ) ) ) THEN

but I am not sure this is correct.
What is the right fix?

Same error message running "./xeigtsts < sbal.in" at schkbl.f line 141
     VMAX = MAX( VMAX, ABS( A( I, J )-AIN( I, J ) ) / TEMP )

because

I=5          J=6   VMAX=2.65845599E+38  A=-4.00000000
AIN=-8.00000000       TEMP=1.17549435E-38
so that the result of the MAX operation is 3.4028236692093846E+038,
too large to fit in a single precision variable.
I do not know how to fix this one.

Running ./xlintstz < ztest.in zgehrd.f line 350

     WORK( 1 ) = LWKOPT

LWKOPT is undefined.

In sdrgev3.f, line 900
9998 FORMAT( ' SDRGEV3: ', A, ' Eigenvectors from ', A, ' incorrectly ',
the last comma is on column 73. Same for cdrgev3.f at line 902. And
ddrgev3.f line 898. And zdrgev3.f, line 897.

The fourth formal argument of CTGSEN is a logical array SELECT.
However in the calling subroutine CGGES3
the corresponding actual argument WORK is a complex array. I believe
this is wrong and error prone.
Are you sure this is intended? Shouldn't it be BWORK, a logical array?

Please advise
Vittorio Zecca
_______________________________________________
Lapack mailing list
Lapack@Domain.Removed
http://lists.eecs.utk.edu/mailman/listinfo/lapack

<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