platform/upstream/lapack.git
10 years agoBug in comments on array size reported by a Sergey Kuznetsov from Intel.
langou [Fri, 27 Jun 2014 11:46:34 +0000 (11:46 +0000)]
Bug in comments on array size reported by a Sergey Kuznetsov from Intel.

The size of array RWORK in {c,z}dbsqr was given incorrectly.

Previous version for cbdsqr.f read
          RWORK is REAL array, dimension (2*N)
          if NCVT = NRU = NCC = 0, (max(1, 4*N-4)) otherwise

Now reads
          RWORK is REAL array, dimension (4*N)

10 years agobug found by Themos Tsikas fron NAG Ltd
langou [Mon, 16 Jun 2014 12:16:58 +0000 (12:16 +0000)]
bug found by Themos Tsikas fron NAG Ltd

LAPACK FORUM topic #4558

Hello

In zlanhf.f, first executable statements
Code: Select all
      IF( N.EQ.0 ) THEN
         ZLANHF = ZERO
         RETURN
      ELSE IF( N.EQ.1 ) THEN
         ZLANHF = ABS(A(0))
         RETURN
      END IF

When N=1, we should be ignoring any imaginary part (as we do for general diagonal elements later on) and so it should read
Code: Select all
      IF( N.EQ.0 ) THEN
         ZLANHF = ZERO
         RETURN
      ELSE IF( N.EQ.1 ) THEN
         ZLANHF = ABS(DBLE(A(0)))
         RETURN
      END IF

Themos Tsikas
NAG Ltd

10 years agoApplied patch provided from vitaut on LAPACK forum on June 13th.
julie [Sat, 14 Jun 2014 17:04:05 +0000 (17:04 +0000)]
Applied patch provided from vitaut on LAPACK forum on June 13th.
The patch fixes the warnings (Policy CMP0026) by replacing the deprecated LOCATION target
property with the generator expression $<TARGET_FILE>

See http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=4556&p=10939#p10939

10 years agoUpdate version number in CMAKE - Thanks Allan Wollaber for the bug report (April...
julie [Tue, 15 Apr 2014 20:19:45 +0000 (20:19 +0000)]
Update version number in CMAKE - Thanks Allan Wollaber for the bug report (April 15th 2014)

10 years agoUpdate version number in CMAKE - Thanks Allan Wollaber for the bug report (April...
julie [Tue, 15 Apr 2014 20:18:55 +0000 (20:18 +0000)]
Update version number in CMAKE - Thanks Allan Wollaber for the bug report (April 15th 2014)

10 years agoAdding missing routine in repository
julie [Mon, 7 Apr 2014 15:40:04 +0000 (15:40 +0000)]
Adding missing routine in repository

10 years agoCorrected minor bug submitted by Elena Ivanova, Oracle on March 18th 2014.
julie [Wed, 19 Mar 2014 01:15:50 +0000 (01:15 +0000)]
Corrected minor bug submitted by Elena Ivanova, Oracle on March 18th 2014.

From Elena:
there is a minor bug in /LIN/dchkql.f:
Array IWORK  (a parameter of this routine) is not used at all.
It would be better to remove IWORK from the list of parameters,
remove its declaration and description in the code of /LIN/dchkql.f:

Note: only dchkql had that IWORK parameter, [c,s,z]chkql don't have it.

10 years agoFix typos found by Jeremy Du Croz
julie [Thu, 20 Feb 2014 15:58:23 +0000 (15:58 +0000)]
Fix typos found by Jeremy Du Croz

10 years agoINTEGRATED CHANGES PROVIDED BY INTEL TEAM FOR LAPACKE -- SEE Eugene Chereshnev email...
julie [Tue, 18 Feb 2014 16:47:10 +0000 (16:47 +0000)]
INTEGRATED CHANGES PROVIDED BY INTEL TEAM FOR LAPACKE -- SEE Eugene Chereshnev email on Feb 18th
 --> THANK YO INTEL <--

We performed auto-replacement matrix_order -> matrix_layout in the LAPACKE C Interface.
Also we applied several bug fixes which were presented on our side and added two LAPACKE interfaces for
function LAPACK_stpqrt which weren't represented on your side (although interfaces for d/c/z/pqrt were).

All changes are reflected in the archive in attachment (only modified files in the archive). All changes were performed for revision 1471.

Summary of changes:
1.  Files:
    lapacke_stprfb.c
    lapacke_dtprfb.c
    lapacke_ctprfb.c
    lapacke_ztprfb.c

    lapacke_stprfb_work.c
    lapacke_dtprfb_work.c
    lapacke_ctprfb_work.c
    lapacke_ztprfb_work.c
    lapacke.h

    Expression MAX(1,ldwork)*MAX(n,k) was replaced by 'work_size'. It's not a bug but apparently 'work_size' is right expression in this place.
    Also in functions lapacke_(c/z)tprfb type of 'work' array was changed from float/double to
    lapack_complex_float/lapack_complex_double. Array 'work' is passed to lapacke_(c/z)tprfb_work and it calls
    LAPACK_(c/z)tprfb (and passes array 'work') but LAPACK_(c/z)tprfb has argument 'work' of complex type:
    SRC/ctprfb.f:
    *>          WORK is COMPLEX array, dimension
    *>          (LDWORK,N) if SIDE = 'L',
    *>          (LDWORK,K) if SIDE = 'R'.
    and SRC/ztprfb.f:
    *>          WORK is COMPLEX*16 array, dimension
    *>          (LDWORK,N) if SIDE = 'L',
    *>          (LDWORK,K) if SIDE = 'R'.
    Types of 'work' array in lapacke.h for LAPACK_(c/z)tprfb are float/double so they aren't correct.
    The archive includes changes in lapacke.h and source files:
        types of 'work' array in LAPACK_(c/z)tprfb: float/double -> lapack_complex_float/lapack_complex_double
        types of 'work' array in LAPACKE_(c/z)tprfb_work: float/double -> lapack_complex_float/lapack_complex_double
        In a similar way types of allocated 'work' arrays in LAPACKE_(c/z)tprfb were replaced.
    Also you can see here why MAX(1,ldwork)*MAX(n,k) isn't fully correct expression for work_size.

2.  Files:
    lapacke_cuncsd.c
    lapacke_dorcsd.c
    lapacke_sorcsd.c
    lapacke_zuncsd.c

    From documentation of LAPACK_cuncsd (for other three LAPACK functions IWORK must have same size):
    *>          IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q))

   So it's not correct here to allocate working array with MAX(1,m-q) size.
   Changes:
    lapack_int r;
    r=MIN(p,m-p);
    r=MIN(r,q);
    r=MIN(r,m-q);
    MAX(1,m-q) -> MAX(1,m-r)

3.  Files:
    lapacke_cgbsvxx_work.c
    lapacke_cgesvxx_work.c
    lapacke_chesvxx_work.c
    lapacke_cposvxx_work.c
    lapacke_csysvxx_work.c
    lapacke_dgbsvxx_work.c
    lapacke_dgesvxx_work.c
    lapacke_dposvxx_work.c
    lapacke_dsysvxx_work.c
    lapacke_sgbsvxx_work.c
    lapacke_sgesvxx_work.c
    lapacke_sposvxx_work.c
    lapacke_ssysvxx_work.c
    lapacke_zgbsvxx_work.c
    lapacke_zgesvxx_work.c
    lapacke_zhesvxx_work.c
    lapacke_zposvxx_work.c
    lapacke_zsysvxx_work.c

    Functions doesn't perform right transposition for 'err_bnds_norm' and 'err_bnds_comp' matrices:
    From documentation of these functions:
    *>          ERR_BNDS_NORM is (SINGLE/DOUBLE) PRECISION array, dimension (NRHS, N_ERR_BNDS)
    *>          ERR_BNDS_COMP is (SINGLE/DOUBLE) PRECISION array, dimension (NRHS, N_ERR_BNDS)
    So for interface functions right 'lda' for 'err_bnds_norm' and 'err_bnds_comp' matrices is 'n_err_bnds' rather than 'nhrs' in the case of LAPACK_ROW_MAJOR.

4.  Files:
    lapacke_stpqrt.c
    lapacke_stpqrt_work.c
    lapacke/src/Makefile
    lapacke/src/CMakeLists.txt

    Interfaces for LAPACK_spqrt were added: lapacke_stpqrt.c and lapacke_stpqrt_work.c and appropriate changes were performed in Makefile and CMakeLists.txt.
    Declaration of LAPACK_spqrt was added to lapacke.h.

10 years agoCorrect a bug in the description of the WORK parameter in (c,z)la_syrpvgrw.f
julie [Fri, 14 Feb 2014 21:40:56 +0000 (21:40 +0000)]
Correct a bug in the description of the WORK parameter in (c,z)la_syrpvgrw.f
WORK is real
Bug report sent from Elena Ivanova (Oracle) on Feb 14th 2014

10 years agoFix potential initiation issue in (c,d,s,z)lansy.f
julie [Fri, 14 Feb 2014 21:13:20 +0000 (21:13 +0000)]
Fix potential initiation issue in (c,d,s,z)lansy.f
Bug report sent from Elena Ivanova on Feb 2014

Array WORK is initialized with ZERO when 'L' and is not initialized when 'U'.
There can be some garbage in WORK. Move up the initialization of WORK before the line
   IF( LSAME( UPLO, 'U' ) ) THEN.

Rearrange loop ordering numbers.

10 years ago( Let me know if I broke anything. I double checked. We should be fine but )
langou [Mon, 10 Feb 2014 19:55:39 +0000 (19:55 +0000)]
( Let me know if I broke anything. I double checked. We should be fine but )
( please let me know if concerns/problems.                                 )

1) The comments in ICMAX1 (resp. IZMAX1) were not correct. The comments read:
"ICMAX1 finds the index of the element whose real part has maximum absolute
value." It should have read: "ICMAX1 finds the index of the first vector
element of maximum absolute value." This is corrected. The problem was reported
Eloy Romero Alcalde from the SLEPc team, Universitat Politècnica de València
and confirmed by Nick Higham, Sven Hammarling and Julien Langou.

2) The routine ICAMAX (resp. IZAMAX) from the BLAS evolved without ICMAX1
(resp. IZMAX1). Reconcialated both version. So essentially took the ICAMAX
currently in the BLAS and changed it appropriately for an ICMAX1.

3) Remove the use of statement function in ICMAX1 (resp. IZMAX1). Now obsolete
in FORTRAN.

4) Change comments in BLAS routines: SCABS1, DCABS1, ICAMAX, IZAMAX, SCASUM,
and DZASUM. Remove the use of "absolute value of a complex number" for the
quantity "| Re(.) | + | Im(.) |". For example:
before
   DCABS1 computes absolute value of a double complex number
after
   DCABS1 computes |Re(.)| + |Im(.)| of a double complex number

10 years ago== Patch provided by Brad King from Kitware - brad.king@kitware.com ==
julie [Sun, 9 Feb 2014 00:37:45 +0000 (00:37 +0000)]
== Patch provided by Brad King from Kitware - brad.king@kitware.com ==

Provide CMake packages for both LAPACK and LAPACKE

Teach "lapack-config.cmake" to provide variables

 LAPACK_blas_LIBRARIES
 LAPACK_lapack_LIBRARIES

that contain either the target names when using the reference
implementation or the system libraries found for them.

Configure a "lapacke-config.cmake" file for the build and install
trees to package LAPACKE.  Teach it to load the LAPACK package
installed with it.  Provide variables

 LAPACKE_INCLUDE_DIRS
 LAPACKE_LIBRARIES

containing the header file search path for lapacke headers
and the list of lapacke library targets.

This requires CMake 2.8.10 to separate the installation export
for the lapacke library from the other targets.

10 years agoProblem reported by zhaowei@sccas.cn on Jan 9th 2014
julie [Thu, 9 Jan 2014 20:34:39 +0000 (20:34 +0000)]
Problem reported by zhaowei@sccas.cn on Jan 9th 2014

Corrected comments to list Z as input/output

> Email
i just found a mistake in the comments of 'dlasq3.c' while reading the code:

/*  Z      (input) DOUBLE PRECISION array, dimension ( 4*N ) */
/*         Z holds the qd array. */

but Z can be changed in that subroutine...i just think '(output)' should be added to avoid misleading user...

10 years agoDo not hide the CMAKE_GNUtoMS variable to users (Thanks Brad)
julie [Mon, 9 Dec 2013 17:55:10 +0000 (17:55 +0000)]
Do not hide the CMAKE_GNUtoMS variable to users (Thanks Brad)

10 years agoFix typo in comment reported by elena.x.ivanova@oracle.com - zhetri2x fix was committ...
julie [Sat, 7 Dec 2013 00:32:08 +0000 (00:32 +0000)]
Fix typo in comment reported by elena.x.ivanova@oracle.com - zhetri2x fix was committed in r1465 (oops)

10 years agoFixed typos reported by elena.x.ivanova@oracle.com on Dec 5th
julie [Sat, 7 Dec 2013 00:25:51 +0000 (00:25 +0000)]
Fixed typos reported by elena.x.ivanova@oracle.com on Dec 5th

10 years agoRemove unused leftover GNUtoMS support file
julie [Fri, 6 Dec 2013 23:13:50 +0000 (23:13 +0000)]
Remove unused leftover GNUtoMS support file

10 years agoRemove GNUtoMS code in favor of CMake builtin version - Thanks Brad (Kitware)
julie [Fri, 6 Dec 2013 03:59:31 +0000 (03:59 +0000)]
Remove GNUtoMS code in favor of CMake builtin version - Thanks Brad (Kitware)

10 years agoRequire CMake >= 2.8.7 so we can use CMAKE_GNUtoMS
julie [Fri, 6 Dec 2013 03:58:29 +0000 (03:58 +0000)]
Require CMake >= 2.8.7 so we can use CMAKE_GNUtoMS

10 years agofix to bug report 4331
lawrence.mulholland [Fri, 29 Nov 2013 16:08:47 +0000 (16:08 +0000)]
fix to bug report 4331

10 years agoSplit lines to make INtel Windows Compiler happy...
julie [Wed, 27 Nov 2013 16:07:34 +0000 (16:07 +0000)]
Split lines to make INtel Windows Compiler happy...

10 years agoCorrect bug reported by Alex Zotkevich from Intel
langou [Tue, 26 Nov 2013 19:36:29 +0000 (19:36 +0000)]
Correct bug reported by Alex Zotkevich from Intel
See: http://icl.utk.edu/lapack-forum/viewtopic.php?f=13&t=4392

Bug: During workspace computation, LAPACK code CGESVD was calling other
subroutines (e.g. CGEQRF) with REAL DUM variable as COMPLEX WORK variable.  DUM
(in CGESVD) is REAL while WORK (in called subroutines) is COMPLEX.  This
corrupts the stack when a value is set in WORK.

Fix: In CGESVD, use the COMPLEX CDUM variable (already present in the code)
instead of the REAL DUM variable.  Since I was at it, the COMPLEX "TAU"
variables (not referenced anyway) were passed the REAL DUM variable, I changed
the code so that the COMPLEX CDUM variable is passed. This is cleaner like
this.

Same problem with ZGESVD. Same fix.

Alex's post:
Hi, We recently found a stack corruption issue in (C,Z)GESVD that potentially
could even lead to incorrect xerbla error message.  In ZGESVD array DUM which
is used in LWORK query is a double precision array of size 1 allocated on
stack:
DOUBLE PRECISION DUM( 1 )
DUM comes to ( ZGEQRF, ZUNGQR, ... ) as a WORK array to return an optimal LWORK
value.  But in ( ZGEQRF, ZUNGQR, ... ) array WORK is declared as a COMPLEX*16
array. So WORK(1) = 1 corrupts the stack as it deals with complex value while
pointer on input of the function is a pointer to double: (oooooooo|xxxxxxxx),
oooooooo fills with LWORK value, xxxxxxxx corrupts. Let compiler use xxxxxxxx
to hold some value. After LWORK query the value will turn to be a zero.  "Hacky
fix" would be to allocate DUM array of size 2.
W.B.R.
Alex Zotkevich

10 years agoApply patch from Nadezhda Mozartova from Intel. (Sent to Julien on November
langou [Mon, 25 Nov 2013 23:47:55 +0000 (23:47 +0000)]
Apply patch from Nadezhda Mozartova from Intel. (Sent to Julien on November
20th.) Thanks Nadezhda! Thanks Intel!

10 years ago Fix info value problem for (c,d,s,z)tgsy2.f reported by Elena Ivanova (ORACLE) ...
julie [Wed, 20 Nov 2013 18:57:47 +0000 (18:57 +0000)]
 Fix info value problem for (c,d,s,z)tgsy2.f reported by Elena Ivanova (ORACLE) - Sent Nov 20th

10 years agoApplying 2nd part of Mathieu's patch - modification in the include file
julie [Tue, 19 Nov 2013 10:18:52 +0000 (10:18 +0000)]
Applying 2nd part of Mathieu's patch - modification in the include file

10 years agoUpadte version and date
julie [Tue, 19 Nov 2013 09:52:10 +0000 (09:52 +0000)]
Upadte version and date

10 years agoApply patch submitted by Matthew Faverge, INRIA on Nov 19th 2013
julie [Tue, 19 Nov 2013 09:43:31 +0000 (09:43 +0000)]
Apply patch submitted by Matthew Faverge, INRIA on Nov 19th 2013

There are problems  in LAPACKE complex lacn2 interfaces. Those functions don't have a "isgn" parmeter in LAPACK. This exists only for real interface. The problem is present in the four files of C and Z functions.

In Lapack:
  SUBROUTINE ZLACN2( N, V, X, EST, KASE, ISAVE )

In Lapacke:
   LAPACK_zlacn2( &n, v, x, isgn, est, kase, isave );

10 years agoLAPACK bug fix for XBLAS: bug revealed in testing of linear equation routines, when...
igor175 [Mon, 18 Nov 2013 23:51:04 +0000 (23:51 +0000)]
LAPACK  bug fix for XBLAS: bug revealed in testing of linear equation routines, when XBLAS is linked

10 years agoUpdate version and date on make.inc templates
julie [Sun, 17 Nov 2013 01:17:17 +0000 (01:17 +0000)]
Update version and date on make.inc templates

10 years agofix Illegal grep pb in lapack_testing
julie [Sun, 17 Nov 2013 01:15:04 +0000 (01:15 +0000)]
fix Illegal grep pb in lapack_testing

10 years agoSlight modification to Lawrence patch for xTPQRT - Update conditions for testing...
julie [Sun, 17 Nov 2013 01:08:52 +0000 (01:08 +0000)]
Slight modification to Lawrence patch for xTPQRT - Update conditions for testing parameter L - MIN(M,N) can be 0

10 years agoupdate ilaver
julie [Sun, 17 Nov 2013 01:06:41 +0000 (01:06 +0000)]
update ilaver

10 years agoUpdate release number and date
julie [Sun, 17 Nov 2013 00:25:52 +0000 (00:25 +0000)]
Update release number and date

10 years agoPatch provided by Lawrence Mulholland from Nag on Nov 1st 2013
julie [Sun, 17 Nov 2013 00:01:25 +0000 (00:01 +0000)]
Patch provided by Lawrence Mulholland from Nag on Nov 1st 2013

Email below:
============
I have been incorporating some routines into the NAG Library,
which means some automatic code translation and writing some
example and test programs.

The routines I have been adding are:
?geqrt, ?gemqrt, ?tpqrt, ?tpmqrt, ?orcsd, ?uncsd

At the end of this message I will give you my current svn status
and svn diff for consideration and approval before I commit.

In each case, when testing immediate exits, my tests failed because
constraints were mutually exclusive for the immediate return case.
I have already committed changes to the constraints for some of
the above to allow immediate exit.
I have completed this for the remainder of this set.

Less importantly, there are things in the code that trip up a checking
compiler:
  a) an
           IF ( clause1(i) .AND. clause2(array(i)) ) THEN

      where array(i) is either not initialized or is out of bounds if
      clause1(i) is .FALSE.

      This is wrong since a Fortran compiler is at liberty to test clause2 first.
      In my changes this has been split into two as best suits the case.

 b) an
          CALL SUB (i, array(N-i+2))
     with i = 1 and array(N+1) either not initialized or out of bounds, but
     internally array(N+1) is not referenced.

     In this case I don't think the Fortran standard is clear, but it trips up the
     nagfor compiler with checking on. So in the NAG incorporated versions
     of Lapack routines such calls are protected and/or
     a special i=1 call is made.
     The changes I want to commit also do this.

 c) workspace queries passing zero instead of array references
         e.g.
                lwork = -1
                call barf(n,m,0,0,0,0,0,-1,info)

     a checking compiler won't like this.
     I have changed cases like this to pass available arrays of sufficient size
     and the right shape in place of the zeros.

10 years agoTypo in the comment on complex xHSEQR.
langou [Tue, 15 Oct 2013 02:57:28 +0000 (02:57 +0000)]
Typo in the comment on complex xHSEQR.
The formula:
(QZ)*H*(QZ)**H.
should read:
(QZ)*T*(QZ)**H.

10 years agoAdded check for NaN in input parameter G to avoid infinite loop -- fixes bug110.
james [Sat, 5 Oct 2013 21:19:17 +0000 (21:19 +0000)]
Added check for NaN in input parameter G to avoid infinite loop -- fixes bug110.

10 years agoFIX BUG 112.
langou [Fri, 4 Oct 2013 19:55:20 +0000 (19:55 +0000)]
FIX BUG 112.

    (Bug reported on Aug 18 2013 by Daniel Strobusch on LAPACK mailing list)
    (Bug fixed by Rodney on Aug 19 2013)

This is a problem with gfortran.  One need to force gfortran to allocate all
local arrays on the stack.  One way to do this is to have the option
-frecursive

10 years ago Remove unused code
julie [Fri, 4 Oct 2013 03:20:34 +0000 (03:20 +0000)]
 Remove unused code

10 years agoCorrect comment
julie [Mon, 16 Sep 2013 16:44:21 +0000 (16:44 +0000)]
Correct comment
Problem reported by Elena Ivanova <Elena.x.Ivanova@Oracle.com> on Sept 16th
"Both RES, and AYB have to be described as REAL."

10 years agoApply fix sent by Elena Ivanova (Oracle)
julie [Fri, 13 Sep 2013 21:32:40 +0000 (21:32 +0000)]
Apply fix sent by Elena Ivanova (Oracle)

There is FPE in the 457th line of CDRVRFP:
cdrvrfp.f
(dbx) where
=>[1] cdrvrfp(nout = 6, nn = 9, nval = ARRAY, nns = 3, nsval = ARRAY, nnt = 9, ntval = ARRAY, thresh = 30.0, a = ARRAY, asav = ARRAY, afac = ARRAY, ainv = ARRAY, b = ARRAY, bsav = ARRAY, xact = ARRAY, x = ARRAY, arf = ARRAY, arfinv = ARRAY, c_work_clatms = ARRAY, c_work_cpot02 = ARRAY, c_work_cpot03 = ARRAY, s_work_clatms = ARRAY, s_work_clanhe = ARRAY, s_work_cpot01 = ARRAY, s_work_cpot02 = ARRAY, s_work_cpot03 = ARRAY), line 457 in "cdrvrfp.f"

MAIN(), line 244 in "cchkrfp.f"
When N=0, attempt to calculate a condition number â†’ FPE, because we try to delete by zero (ANORM = 0.0, AINVNM = 0.0) in the 457th line:
Line 457:
      RCONDC = ( ONE / ANORM ) / AINVNM

10 years agoAdd small fixes sent by Ake Sandgren <ake.sandgren@hpc2n.umu.se>
julie [Fri, 13 Sep 2013 21:24:08 +0000 (21:24 +0000)]
Add small fixes sent by Ake Sandgren <ake.sandgren@hpc2n.umu.se>

10 years agoFix "if test" semantic in xdrvpox
julie [Thu, 12 Sep 2013 15:42:59 +0000 (15:42 +0000)]
Fix "if test" semantic in xdrvpox
Bug report sent by Elena Ivanova <elena.x.ivanova@oracle.com> on Sept 10th

10 years agotypo in previous fix: MIN(M,N)>0 NOT MIN(M,N)<0 when checking NB>MIN(M,N)
lawrence.mulholland [Wed, 21 Aug 2013 10:39:32 +0000 (10:39 +0000)]
typo in previous fix: MIN(M,N)>0 NOT MIN(M,N)<0 when checking NB>MIN(M,N)

10 years agoFix from Lawrence Mulholland (NAG).
langou [Fri, 16 Aug 2013 15:03:03 +0000 (15:03 +0000)]
Fix from Lawrence Mulholland (NAG).

From Lawrence:
The *GEQRT routines are supposed to return immediately when N=0 or M=0.
However the code is such that an INFO = -3 is triggered since we are
trying to satisfy
ELSE IF( NB.LT.1 .OR. NB.GT.MIN(M,N) )THEN
INFO = -3
should be
ELSE IF( NB.LT.1 .OR. ( NB.GT.MIN(M,N) .AND. MIN(M,N).LT.0 ) )THEN
INFO = -3

Also on a side note, I think we could allow NB to be greater than MIN(M,N) in
the interface and then reset NB as needed if the user's NB is too large.
Another day. Good enough for now.

Julien.

11 years agoapply patch from Hong Xu
langou [Mon, 22 Jul 2013 23:01:15 +0000 (23:01 +0000)]
apply patch from Hong Xu

patch sent to lapack mailing list on Sunday July 21st

In the input parameter checking, LDZ was not checked correctly
LDZ was checked against M instead of N essentially

11 years agoAdd missing file in CMakeLists.txt
julie [Sat, 20 Jul 2013 19:29:54 +0000 (19:29 +0000)]
Add missing file in CMakeLists.txt

11 years agoAdded LAPACK tests for 'rook' routines and drivers to LIN/Makefile LIN/CMakeLists.txt
igor175 [Tue, 9 Jul 2013 04:45:46 +0000 (04:45 +0000)]
Added LAPACK tests for 'rook' routines and drivers to LIN/Makefile LIN/CMakeLists.txt

11 years agoModified test files for 'rook' pivoting LAPACK routines: LIN/cchkaa.f LIN/cchkhe_rook...
igor175 [Tue, 9 Jul 2013 04:42:19 +0000 (04:42 +0000)]
Modified test files for 'rook' pivoting LAPACK routines: LIN/cchkaa.f LIN/cchkhe_rook.f LIN/cdrvhe_rook.f LIN/cerrhe.f LIN/cerrvx.f LIN/zchkaa.f LIN/zchkhe_rook.f LIN/zdrvhe_rook.f LIN/zerrhe.f LIN/zerrvx.f ctest.in ztest.in

11 years agoAdded 'rook' LAPACK routines and drivers to SRC/Makefile SRC/CMakeLists.txt
igor175 [Tue, 9 Jul 2013 04:06:39 +0000 (04:06 +0000)]
Added 'rook' LAPACK  routines and drivers to SRC/Makefile SRC/CMakeLists.txt

11 years agoModified new 'rook' pivoting routines and drivers for Hermitian indefinite matrices...
igor175 [Tue, 9 Jul 2013 04:02:51 +0000 (04:02 +0000)]
Modified new 'rook' pivoting routines and drivers for Hermitian indefinite matrices, Complex precision: zhetf2_rook.f zlahef_rook.f zhetri_rook.f

11 years agoModified new 'rook' pivoting routines and drivers for Hermitian indefinite matrices...
igor175 [Tue, 9 Jul 2013 01:55:07 +0000 (01:55 +0000)]
Modified new 'rook' pivoting routines and drivers for Hermitian indefinite matrices, Complex precision: chetf2_rook.f clahef_rook.f chetri_rook.f

11 years agomodified error hadling routines for LIN testing of new Hermitian 'rook' pivoting...
igor175 [Thu, 4 Jul 2013 00:52:02 +0000 (00:52 +0000)]
modified error hadling routines for LIN testing of new Hermitian 'rook' pivoting code: aladhd.f

11 years agomodified error hadling routines for LIN testing of new Hermitian 'rook' pivoting...
igor175 [Thu, 4 Jul 2013 00:22:09 +0000 (00:22 +0000)]
modified error hadling routines for LIN testing of new Hermitian 'rook' pivoting code: aladhd.f, alahd.f

11 years agobug fix provided by Elena Ivanova via email.
james [Thu, 27 Jun 2013 18:54:28 +0000 (18:54 +0000)]
bug fix provided by Elena Ivanova via email.

11 years agoupdated xlarfb routines
james [Thu, 27 Jun 2013 18:34:04 +0000 (18:34 +0000)]
updated xlarfb routines

11 years agofixed array index problems in new CSD routines by adding MAX() to ensure index is...
james [Wed, 5 Jun 2013 02:55:11 +0000 (02:55 +0000)]
fixed array index problems in new CSD routines by adding MAX() to ensure index is at least 1 -- this fixes array bounds violations in the test suite when array bounds checking is enabled

11 years agoNow using 2-norm to compute vector norms of row and column for balancing algorithm.
james [Thu, 16 May 2013 18:55:48 +0000 (18:55 +0000)]
Now using 2-norm to compute vector norms of row and column for balancing algorithm.
This seems to fix problems with balancing causing very large backward error for certain
Hessenberg matrices, including the often cited example of Watkins.

11 years agofixed comments in (c,z)errsy.f
igor175 [Mon, 22 Apr 2013 10:03:22 +0000 (10:03 +0000)]
fixed comments in (c,z)errsy.f

11 years agochanged comments in (c,z)hetf2.f
igor175 [Mon, 22 Apr 2013 08:57:05 +0000 (08:57 +0000)]
changed comments in (c,z)hetf2.f

11 years agoadded LAPACK routine (c,z)hesv_rook.f
igor175 [Mon, 22 Apr 2013 08:43:55 +0000 (08:43 +0000)]
added LAPACK routine (c,z)hesv_rook.f

11 years agoadded LAPACK routine (c,z)hecon_rook.f
igor175 [Mon, 22 Apr 2013 08:35:15 +0000 (08:35 +0000)]
added LAPACK routine (c,z)hecon_rook.f

11 years agoadded LAPACK routine (c,z)hetri_rook.f
igor175 [Mon, 22 Apr 2013 07:49:39 +0000 (07:49 +0000)]
added LAPACK routine (c,z)hetri_rook.f

11 years agoadded LAPACK routine (c,z)hetrs_rook.f
igor175 [Mon, 22 Apr 2013 07:41:56 +0000 (07:41 +0000)]
added LAPACK routine (c,z)hetrs_rook.f

11 years agoadded LAPACK routine (c,z)hetrf_rook.f
igor175 [Mon, 22 Apr 2013 07:32:00 +0000 (07:32 +0000)]
added LAPACK routine (c,z)hetrf_rook.f

11 years agoadded LAPACK routines (c,z)hetf2_rook.f
igor175 [Mon, 22 Apr 2013 06:54:22 +0000 (06:54 +0000)]
added LAPACK routines (c,z)hetf2_rook.f

11 years agofixed comments in LAPACK routines (c,z)lahef.f and (c,z)lahef_rook.f
igor175 [Sun, 21 Apr 2013 03:32:20 +0000 (03:32 +0000)]
fixed comments in LAPACK routines (c,z)lahef.f and (c,z)lahef_rook.f

11 years agofixed comments in LAPACK routines (c,z)lahef.f and (c,z)lahef_rook.f
igor175 [Sun, 21 Apr 2013 02:51:17 +0000 (02:51 +0000)]
fixed comments in LAPACK routines (c,z)lahef.f and (c,z)lahef_rook.f

11 years agoFixed comments in (c,z)lahef.f and (c,z)lahef_rook.f
igor175 [Sat, 20 Apr 2013 01:50:26 +0000 (01:50 +0000)]
Fixed comments in (c,z)lahef.f and (c,z)lahef_rook.f

11 years agoadded HR (Hermitian 'rook') path to LAPACK test routines alaerh.f alahd.f aladhd.f
igor175 [Fri, 19 Apr 2013 23:27:57 +0000 (23:27 +0000)]
added HR (Hermitian 'rook') path to LAPACK test routines alaerh.f alahd.f aladhd.f

11 years agochanged comments in LAPACK testing routine (c,z)latb4.f
igor175 [Fri, 19 Apr 2013 22:10:35 +0000 (22:10 +0000)]
changed comments in LAPACK testing routine (c,z)latb4.f

11 years agofixed comments in LAPACK testing routines (s,d,c,z)lavsy.f, (s,d,c,z)lavsy_rook.f...
igor175 [Thu, 18 Apr 2013 00:39:57 +0000 (00:39 +0000)]
fixed comments in LAPACK testing routines (s,d,c,z)lavsy.f, (s,d,c,z)lavsy_rook.f (c,z)lavhe.f, (c,z)lavhe_rook.f

11 years agofixed comments in LAPACK test routines (s,d,c,z)syt01.f, (s,d,c,z)syt01_rook.f and...
igor175 [Wed, 17 Apr 2013 05:11:46 +0000 (05:11 +0000)]
fixed comments in LAPACK test routines (s,d,c,z)syt01.f, (s,d,c,z)syt01_rook.f  and (c,z)het01.f, (c,z)het01_rook.f

11 years agominor changes in LAPACK testing routines (s,d,c,z)drvsy.f, (s,d,c,z)drvsy_rook.f...
igor175 [Wed, 17 Apr 2013 03:53:30 +0000 (03:53 +0000)]
minor changes in LAPACK testing routines (s,d,c,z)drvsy.f, (s,d,c,z)drvsy_rook.f, (c,z)drvhe.f, and (c,z)drvhe_rook.f

11 years agoremoved whitespace in LAPACK testing routines (s,d,c,z)chksy.f and (s,d,c,z)chksy_roo...
igor175 [Wed, 17 Apr 2013 02:53:48 +0000 (02:53 +0000)]
removed whitespace in LAPACK testing routines (s,d,c,z)chksy.f and (s,d,c,z)chksy_rook.f and (c,z)chkhe.f (c,z)chkhe_rook.fand minor modifications

11 years agochanged comments in LAPACK testing routines (s,d,c,z)chksy.f and (s,d,c,z)chksy_rook...
igor175 [Wed, 17 Apr 2013 02:44:09 +0000 (02:44 +0000)]
changed comments in LAPACK testing routines (s,d,c,z)chksy.f and (s,d,c,z)chksy_rook.f (c,z)chkhe.f (c,z)chkhe_rook.fand minor modifications

11 years agochanged comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy_rook.f (c...
igor175 [Wed, 17 Apr 2013 01:46:16 +0000 (01:46 +0000)]
changed comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy_rook.f (c,z)chkhe.f (c,z)chkhe_rook.f and minor modifications

11 years agochanged comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy_rook.f (c...
igor175 [Wed, 17 Apr 2013 01:45:24 +0000 (01:45 +0000)]
changed comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy_rook.f (c,z)chkhe.f (c,z)chkhe_rook.f and minor modifications

11 years agochanged comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy.f
igor175 [Tue, 16 Apr 2013 22:06:41 +0000 (22:06 +0000)]
changed comments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy.f

11 years agochanged coments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy.f
igor175 [Fri, 12 Apr 2013 23:45:56 +0000 (23:45 +0000)]
changed coments in LAPACK testing routines (c,z)chksy.f and (c,z)chksy.f

11 years agoadded test routines (c,z)chkhe_rook.f and (c,z)drvhe_rook.f for Hermitian factoriza...
igor175 [Fri, 12 Apr 2013 20:06:51 +0000 (20:06 +0000)]
added test routines (c,z)chkhe_rook.f  and (c,z)drvhe_rook.f  for Hermitian factorization routines with rook pivoting algorithm

11 years agoadded test routines (c,z)chkhe_rook.f and (c,z)drvhe_rook.f for Hermitian factoriza...
igor175 [Fri, 12 Apr 2013 20:06:18 +0000 (20:06 +0000)]
added test routines (c,z)chkhe_rook.f  and (c,z)drvhe_rook.f  for Hermitian factorization routines with rook pivoting algorithm

11 years ago lapacke.h: template with C linkage error - forum topic 4221
julie [Thu, 4 Apr 2013 05:20:31 +0000 (05:20 +0000)]
 lapacke.h: template with C linkage error - forum topic 4221

11 years agoremoved references to example_ZGESV_rowmajor.c
james [Tue, 26 Mar 2013 14:55:38 +0000 (14:55 +0000)]
removed references to example_ZGESV_rowmajor.c

11 years agoremoved example_ZGESV_rowmajor.c
james [Tue, 26 Mar 2013 14:53:56 +0000 (14:53 +0000)]
removed example_ZGESV_rowmajor.c

11 years agocorrected bug found by Tyrone Rees posted on email list:
james [Fri, 22 Mar 2013 20:54:57 +0000 (20:54 +0000)]
corrected bug found by Tyrone Rees posted on email list:

"I think there's a bug in the routine dlaqp2.f in version 3.4.2 of LAPACK
(and possibly earlier). Line 220 of the source is
   IF( I.LE.N ) THEN
whereas for the other versions the same line reads
   IF( I.LT.N ) THEN

This difference appears to make the routine dgeqp3 fall over when asked
to do a factorization of the last two columns of a 10x5 matrix.  The NAG
fortran compiler gives the error:
 Subscript out of range for assumed-size array A - Access to element 22
but actual argument has only 20 elements
 Program terminated by fatal error

The single precision version runs without a hiccup.

Best wishes,

Tyrone"

11 years agoApplied patch provided by Sergey Kuznetsov @ Intel, fixes bug where TAU2 can be unini...
james [Fri, 22 Mar 2013 12:38:47 +0000 (12:38 +0000)]
Applied patch provided by Sergey Kuznetsov @ Intel, fixes bug where TAU2 can be uninitialized.

11 years agoadded code to set the last pivots to n: ipiv(n)=jpiv(n)=n
james [Tue, 5 Mar 2013 17:52:07 +0000 (17:52 +0000)]
added code to set the last pivots to n: ipiv(n)=jpiv(n)=n

11 years agoUpdate and add examples
julie [Fri, 15 Feb 2013 21:54:15 +0000 (21:54 +0000)]
Update and add examples

11 years agoRemove unused file
julie [Fri, 15 Feb 2013 16:45:00 +0000 (16:45 +0000)]
Remove unused file

11 years agoFix typos in README
julie [Thu, 7 Feb 2013 16:28:08 +0000 (16:28 +0000)]
Fix typos in README

11 years agoAdd c/zlacp2 for PLASMA team
julie [Thu, 10 Jan 2013 04:26:11 +0000 (04:26 +0000)]
Add c/zlacp2 for PLASMA team

11 years agoUpdated comments in (s,d,c,z)lasy_rook.f and (c,z)lahe_rook.f
igor175 [Wed, 12 Dec 2012 03:03:41 +0000 (03:03 +0000)]
Updated comments in (s,d,c,z)lasy_rook.f and (c,z)lahe_rook.f

11 years agoupdated comments in (s,d,c,z)lasyf.f and (c,z)lahef.f
igor175 [Wed, 12 Dec 2012 02:49:09 +0000 (02:49 +0000)]
updated comments in (s,d,c,z)lasyf.f and  (c,z)lahef.f

11 years agoUpdated comments in (s,d,c,z)sytf2_rook.f
igor175 [Wed, 12 Dec 2012 02:15:21 +0000 (02:15 +0000)]
Updated comments in (s,d,c,z)sytf2_rook.f

11 years agoUpdated comments in (s,d,c,z)sytf2.f and (c,z)hetf2.f
igor175 [Wed, 12 Dec 2012 02:08:16 +0000 (02:08 +0000)]
Updated comments in  (s,d,c,z)sytf2.f and (c,z)hetf2.f

11 years agoupdated comments in
igor175 [Wed, 12 Dec 2012 01:16:46 +0000 (01:16 +0000)]
updated comments in

11 years agofixed comments in clahef_rook.f and zlahef_rook.f
igor175 [Tue, 11 Dec 2012 20:33:11 +0000 (20:33 +0000)]
fixed comments in clahef_rook.f and zlahef_rook.f

11 years agoCommit Victor Liu's suggestion about making the complex division routine more robust
julie [Tue, 11 Dec 2012 19:01:44 +0000 (19:01 +0000)]
Commit Victor Liu's suggestion about making the complex division routine more robust
tests and builds seems fine.

Message sent on Oct 18th
I just saw a paper on ArXiv about making the complex division routine more robust:
http://arxiv.org/abs/1210.4539
Second author is actually the original inventor of the current algorithm in Lapack.
I have attached my modified DLADIV routine, which passes all the tests in the build process.

11 years agoReplaced IF(J.LE.N) by IF(J.LT.N) for 'U', where U12 is put in standard form by parti...
igor175 [Wed, 5 Dec 2012 07:16:18 +0000 (07:16 +0000)]
Replaced IF(J.LE.N) by IF(J.LT.N) for 'U', where U12 is put in standard form by partially undoing the interchanges, also added comments to the part where U21 is put in standard form; Similarly, replaced IF(J.GE.1) by IF(J.GT.1) for 'L', where L21 is put in standard form by partially undoing the interchanges, also added comments to the part where L21 is put in standard form; Affected files: zlahef.f clahef.f zlasyf.f clasyf.f dlasyf.f slasyf.f