platform/upstream/lapack.git
13 years agoIntegrating Doxygen in comments
julie [Thu, 6 Oct 2011 06:53:11 +0000 (06:53 +0000)]
Integrating Doxygen in comments

13 years agoChanges to the SRC/Makefile to fix bugs that affected 'make single', 'make double...
igor175 [Tue, 4 Oct 2011 02:58:05 +0000 (02:58 +0000)]
Changes to the SRC/Makefile to fix bugs that affected 'make single', 'make double', 'make complex', 'make complex16' functionality. Specifically, DSLASRC was included as a dependency for single and double, and ZCLASRC  as a dependency for complex and complex16. Also, a few modifications for the case when USEXBLAS is defined to enable  'make single', 'make double' etc. For more info refer to LAPACK-DEV google group 'LAPACK SRC/Makefile question?' thread.

13 years agoFix to Ming Gu's bug in dqds. See post of LAPACK DEV message board for more details
lipshitz [Mon, 3 Oct 2011 19:24:45 +0000 (19:24 +0000)]
Fix to Ming Gu's bug in dqds.  See post of LAPACK DEV message board for more details

13 years agoPer consultation with Julie, added ./testieee to main Makefile lapack_install target
igor175 [Sat, 1 Oct 2011 02:41:38 +0000 (02:41 +0000)]
Per consultation with Julie, added ./testieee to main Makefile lapack_install target

13 years agoFormat changes to INSTALL/Makefile
igor175 [Sat, 1 Oct 2011 02:37:03 +0000 (02:37 +0000)]
Format changes to INSTALL/Makefile

13 years agodeleted svn:executable SVN property on SRC/dgeqrt.f
igor175 [Fri, 30 Sep 2011 22:26:57 +0000 (22:26 +0000)]
deleted svn:executable SVN property on SRC/dgeqrt.f

13 years agoComments fix to be able to generate the new layout and the corresponding Doxygen...
julie [Fri, 30 Sep 2011 18:34:50 +0000 (18:34 +0000)]
Comments fix to be able to generate the new layout and the corresponding Doxygen documentation

13 years agoRefactored $(ALLOBJ) files in TESTING/MATGEN/Makefile and a few cosmetic changes
igor175 [Fri, 30 Sep 2011 02:23:37 +0000 (02:23 +0000)]
Refactored $(ALLOBJ) files in TESTING/MATGEN/Makefile and a few cosmetic changes

13 years agoReverting previous bad commit and going back to revision 1008
igor175 [Fri, 30 Sep 2011 00:03:50 +0000 (00:03 +0000)]
Reverting previous bad commit and going back to revision 1008

13 years agoconvinience change to Makefile to clean BLAS directory from object files
igor175 [Thu, 29 Sep 2011 23:33:36 +0000 (23:33 +0000)]
convinience change to Makefile to clean BLAS directory from object files

13 years agoAdd the LAPACK library as dependencies for testing after Igor's comment.
julie [Mon, 26 Sep 2011 21:52:31 +0000 (21:52 +0000)]
Add the LAPACK library as dependencies for testing after Igor's comment.
This means that if you change one file, all testings will be rerun.

Should we be smarter than that?

13 years agoImprove CMAKE BUILD system and OUTPUT PARSING when not all precisions are needed.
julie [Fri, 23 Sep 2011 19:50:27 +0000 (19:50 +0000)]
Improve CMAKE BUILD system and OUTPUT PARSING when not all precisions are needed.
The following variables will control the precision to be built:
  BUILD_SINGLE
  BUILD_DOUBLE
  BUILD_COMPLEX
  BUILD_COMPLEX16

For mixed precision SINGLE/DOUBLE routines, both BUILD_SINGLE and BUILD_DOUBLE needs to be on.
(same for COMPLEX/COMPLEX16)

13 years agoCommit patch sent by Sven.
julie [Fri, 23 Sep 2011 15:26:46 +0000 (15:26 +0000)]
Commit patch sent by Sven.
Patch was based on 3.3.0, so required a little bit of merging.
Thank you Sven for the corrections.
Julie

JL
TESTING/EIG
zerrgg.f
Declare ILO, IHI

SRC
---
I have corrected all the following warnings and errors:

c/d/s/zsysv.f, Unused external reference ILAENV
>JL OK
c/d/s/zsysv.f, Unused local variable NB
>JL  ALREADY CORRECTED

sgsvj0.f, Unused intrinsic AMIN1
> JL OK

d/sorbdb.f, Unused intrinsic MIN
> JL OK

sorcsd.f, Unused intrinsic SIN
sorcsd.f, Unused intrinsic COS
> JL OK MERGE

cpoequb.f, Unused intrinsic AIMAG
cpoequb.f, Unused intrinsic REAL
cpoequb.f, Unused local variable ZDUM

zgeequb.f, REAL --> DBLE
> JL OK

sorcsd.f, line 330: Inconsistent data type REAL (previously INTEGER) for argument 14 in reference to SORBDB
sorcsd.f, line 340: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR
sorcsd.f, line 345: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR
sorcsd.f, line 356: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ
sorcsd.f, line 363: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ
sorcsd.f, line 369: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ
sorcsd.f, line 374: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ
sorcsd.f, line 385: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR
sorcsd.f, line 392: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR
sorcsd.f, line 399: Inconsistent data type REAL (previously INTEGER) for argument 9 in reference to SBBCSD
> JL OK MERGE

ila(s/d/c/z)lr.f
In the WHILE loop, at about line 59 I inserted
IF (I.EQ.0) THEN
   EXIT
END IF
since, otherwise when I = 0, A(0,J) is referenced.
> JL OK

TESTING/MATGEN
--------------
s/dlatm7.f
line 187: I replaced
IF( N.GT.1 ) THEN
by
IF( N.GT.1 .AND. RANK.GT.1 ) THEN
Otherwise I get a division by zero.
> JL OK

s/dlaror.f
I moved:
INFO = 0
from line 125 to line 121 in front of
 IF( N.EQ.0 .OR. M.EQ.0 )
$   RETURN
otherwise INFO is not defined on return when N or M are zero.
Similar change for
c/zlaror.f
> JL OK

TESTING/LIN
-----------
s/derrsy.f
In calls to S/DSYTRI2: I replaced IW by IW(1) since the dummy argument
(LWORK) is a scalar.
> JL OK

c/zerrrfp.f
I made ALPHA and BETA REAL/DOUBLE and introduced COMPLEX/COMPLEX*16
CALPHA since calls to C/ZHFRK need real alpha and beta.  In calls to
CTFSM, I then replaced ALPHA with CALPHA.
In cerrrfp.f, I replaced 1.0D0 with 1.0E0 (not strictly necessary, but
cleaner).
> JL OK

dpot06.f
Removed the unused declaration of LSAME
> JL OK

d/zdrvac.f
Removed the unused declaration of LSAME
> JL OK MERGE

s/d/c/z/ckcsd.f
Removed the unused declarations of S/D/C/ZLANGE, SIN and COS
> JL OK

c/zgennd.f
Removed the unused variable OUT
> JL already DONE

Corrected the following warnings and errors:

dchksy.f, Unused local variable MYWORK
> JL already DONE

ddrvgbx.f, line 792: Different number of arguments from the first call of DGBT02
> JL OK

cdrvgbx.f, line 726: Inconsistent data type REAL (previously COMPLEX) for argument 4 in reference to CLASET
cdrvgbx.f, line 728: Inconsistent data type REAL (previously COMPLEX) for argument 4 in reference to CLASET
cdrvgbx.f, line 780: Inconsistent data type REAL (previously COMPLEX) for argument 10 in reference to CGBT01
cdrvgbx.f, line 794: Different number of arguments from the first call of CGBT02
> JL OK

zdrvgbx.f, line 726: Inconsistent data type DOUBLE PRECISION (previously COMPLEX(KIND(0d0))) for argument 4 in reference to ZLASET
zdrvgbx.f, line 728: Inconsistent data type DOUBLE PRECISION (previously COMPLEX(KIND(0d0))) for argument 4 in reference to ZLASET
zdrvgbx.f, line 780: Inconsistent data type DOUBLE PRECISION (previously COMPLEX(KIND(0d0))) for argument 10 in reference to ZGBT01
zdrvgbx.f, line 794: Different number of arguments from the first call of ZGBT02
> JL OK

TESTING/EIG
-----------
s/d/c/zchkee.f
I inserted
CALL XLAENV( 12, 1 )
at line 1208, since IPARMS(ISPEC) with ISPEC = 12 needs to be set.
(I think I had to do this with them all, certainly with zchkee.f)
> JL OK zchkee.f cchkee.f

c/zchkee.f
In line 2316, the 15th argument of C/ZCKCSD should be real, not complex,
so I replaced A(1,7) by RWORK.
> JL OK

c/zcsdts.f
In calls to C/ZHERK I have replaced ONE by REALONE as arguments 5 and 8
should be real.
> JL OK

s/d/c/zcsdts.f
Division by zero occurs at line 155 in computing EPS when M = 0, so I
have modified
 EPS2 = MAX( ULP, CLANGE( '1', M, M, WORK, LDX, RWORK ) / REAL( M ) )
to
 IF (M.GT.0) THEN
    EPS2 = MAX( ULP,
$               CLANGE( '1', M, M, WORK, LDX, RWORK ) / REAL( M ) )
 ELSE
    EPS2 = ULP
 END IF
> JL OK

SRC/VARIANTS/lu/CR
------------------
s/d/c/zgetrf
Removed the unused intrinsic MOD
> JL OK

13 years agoCommit pb in TESTING reported by Nadezhda (INTEL) on Aug 29th.
julie [Tue, 30 Aug 2011 15:24:06 +0000 (15:24 +0000)]
Commit pb in TESTING reported by Nadezhda (INTEL) on Aug 29th.

"We notice that errorcheckers tests aren’t correct in some cases.
errorcheckers of ?ggevx, ?pstrf, ?pstf2
Some output parameters are read only in the errorcheckers tests."

13 years agoCorrect Bug in the testing of CHERFSX function
julie [Mon, 15 Aug 2011 20:53:17 +0000 (20:53 +0000)]
Correct Bug in the testing of CHERFSX function
reported by omitrofa (olga.mitrofanova@intel.com)
See Forum 2644

Test of CHERFSX function doesn't work because there is an error
in ../TESTING/LIN/cerrhex.f ( lines 284-330 ).
This function uses the diagonal pivoting factorization of a Hermitian
indefinite matrix instead of the diagonal pivoting factorization of
a Hermitian indefinite packed matrix. When CHERFSX is included in
conditional "IF( LSAMEN( 2, C2, 'HE' ) ) THEN " the test works.

13 years agoReplace DOUBLE COMPLEX by COMPLEX*16
julie [Mon, 15 Aug 2011 18:25:57 +0000 (18:25 +0000)]
Replace DOUBLE COMPLEX by COMPLEX*16
Replace SNGL by REAL

13 years agoAdd missing files for GNU-built LAPACK DLLs with MS tools
julie [Mon, 15 Aug 2011 13:26:00 +0000 (13:26 +0000)]
Add missing files for GNU-built LAPACK DLLs with MS tools

13 years agotest routines for new QRT subroutines:
james [Thu, 11 Aug 2011 22:29:16 +0000 (22:29 +0000)]
test routines for new QRT subroutines:

xQRT04 tests xGEQRT and xGEMQRT
xQRT05 tests xTPQRT and xTPMQRT

13 years agoCommiting BRAD patch
julie [Tue, 9 Aug 2011 18:59:44 +0000 (18:59 +0000)]
Commiting BRAD patch

Here is a patch for lapack to provide MS-format dll import libraries
from the MinGW GNU toolchain.  It is ready for others to try before it
goes upstream.  You just need to have MinGW GNU Fortran 4.x and one of
the VS IDEs installed.  Configure a MinGW build with BUILD_SHARED_LIBS
set to ON.  The resulting build (and install) tree will provide both
GNU-format and MS-format import libraries for the DLLs.

A C application built with MSVC and linked to the MinGW-built lapack
DLLs will run but requires the GNU runtime DLLs from MinGW to be available.
I tested this with both 32-bit and 64-bit builds.  For the latter I used
the mingw64 gfortran.  In both cases I just put the GNU runtime directory
in my PATH.  I think both libgfortran-3.dll and libgcc_s_dw2-1.dll are
needed.

This may be used to create a binary LAPACK distribution for Windows that
will work without any GNU tools installed.  One needs only to provide the
MinGW GNU runtime libraries along with blas.dll and lapack.dll.

-Brad

13 years agoadded new QRT routines to object lists
james [Tue, 9 Aug 2011 01:17:34 +0000 (01:17 +0000)]
added new QRT routines to object lists

13 years agoQR factorization for triangular-pentagonal matrices
james [Mon, 8 Aug 2011 22:07:49 +0000 (22:07 +0000)]
QR factorization for triangular-pentagonal matrices
(generalization of triangle-over-square and triangle-over-triangle)

13 years agoQRT (QR factorization with compact WY representation for Q) routines for general...
james [Mon, 8 Aug 2011 21:59:06 +0000 (21:59 +0000)]
QRT (QR factorization with compact WY representation for Q) routines for general matrices

13 years agoCHANGE IN THE SCRIPT:
julie [Tue, 28 Jun 2011 08:07:35 +0000 (08:07 +0000)]
CHANGE IN THE SCRIPT:
lapack_testing.py has been moved to the top directory
One argument was added :
     - d [dir] is to indicate where is the LAPACK testing directory (.out files). By default, the script will use .-d or --dir to
The -f argument was replaced by -r argument. Now by default the script will use the LAPACK output.
     - r is to use to run the LAPACK tests then analyse the output (.out files). By default, the script will not run all the LAPACK tests

INTEGRATION:
Integration of the LAPACK Testing parsing in the Makefile and CMake build process.

In the Makefile build: now the lapack_testing target will call the script after running the tests
In the CMAKE build: after the tests are run, the script will be executed with the option -s (short)
the end of the output will look like this:
100% tests passed, 0 tests failed out of 98

Total Test time (real) = 211.83 sec
SUMMARY                 numerical error         other error
================        =================       ================
REAL                    40      (0.004%)        0       (0.000%)
DOUBLE PRECISION        202     (0.020%)        0       (0.000%)
COMPLEX                 2       (0.000%)        0       (0.000%)
COMPLEX16               28      (0.005%)        0       (0.000%)

--> ALL PRECISIONS      272     (0.009%)        0       (0.000%)

13 years agomerge errors for number only mode
julie [Mon, 27 Jun 2011 13:22:47 +0000 (13:22 +0000)]
merge errors for number only mode

13 years agoAdd Julien's suggestions
julie [Mon, 27 Jun 2011 13:05:59 +0000 (13:05 +0000)]
Add Julien's suggestions

13 years ago[ minor edits ]
langou [Fri, 24 Jun 2011 13:31:01 +0000 (13:31 +0000)]
[ minor edits ]

suggestions:

1) combine Illegal Error and Info Error as one number in the SUMMARY

2) give % values in addition in the SUMMARY, something like: 203 (.01%)

13 years agoFirst try to get a nice script to analyze the LAPACK testing.
julie [Fri, 24 Jun 2011 08:46:19 +0000 (08:46 +0000)]
First try to get a nice script to analyze the LAPACK testing.

Below is the help that goes with it.
Please send feedback. I tired to include several levels of output and several kind of errors
So far, I just tested it on my machine, that has no major problems.
I just tested "numerical errors", not "illegal error" neither "info error".

The goal is to have our nightly testing use it and also users.

TO DO:
  - Test other kinds of errors on machines
  - See to include it in ctest and buildbot (need to contact Don and Brad/Chuck)
  - See if a type of error option is required.

./lapack_testing.py [-h|--help] [-s |--short] [-f |--file] [-e |--error] [-p p |--prec p] [-t test |--test test] [-n | --number]
     - h is to print this message
     - f is to use directly the output of the LAPACK testing (.out files). By default, the script will run all the LAPACK tests
 LEVEL OF OUTPUT
     - x is to print a detailed summary
     - e is to print only the error summary
     - s is to print a short summary
     - n is to print the numbers of failing tests (turn on summary mode)
 SECLECTION OF TESTS:
     - p [s/c/d/z] is to indicate the PRECISION to run:
            s=single
            d=double
            c=complex
            z=double complex
            x=all [DEFAULT]
     - t [lin/eig/mixed/rfp/all] is to indicate which TEST FAMILY to run:
            lin=Linear Equation
            eig=Eigen Problems
            mixed=mixed-precision
            rfp=rfp format
            all=all tests [DEFAULT]
 EXAMPLES:
     ./lapack_testing.py -n -f
            Will return the numbers of failed tests by analyzing the LAPACK output
     ./lapack_testing.py -n -f -p s
            Will return the numbers of failed tests in REAL precision by analyzing the LAPACK output
     ./lapack_testing.py -n -f -p s -t eig
            Will return the numbers of failed tests in REAL precision by analyzing only the LAPACK output of EIGEN testings
Written by Julie Langou (June 2011)

13 years agoAdded N*N to LWEDC (and LRWEDC for complex cases) to reflect updated LWORK requiremen...
james [Wed, 22 Jun 2011 13:37:15 +0000 (13:37 +0000)]
Added N*N to LWEDC (and LRWEDC for complex cases) to reflect updated LWORK requirements (see commit r984 in SRC).

13 years agoUpdate the name change (rev 985) for the CMAKE build
julie [Wed, 22 Jun 2011 11:50:43 +0000 (11:50 +0000)]
Update the name change (rev 985) for the CMAKE build

13 years agoFollowing Yana Gurieva (INTEL) 's comment
julie [Wed, 22 Jun 2011 11:49:32 +0000 (11:49 +0000)]
Following Yana Gurieva (INTEL) 's comment
"Why does Lapack have the routines named ?la_rpvgrw if they are intended for general matrices? Should not their names be ?la_gerpvgrw instead?"

THIS IS THUS A CHANGE IN INTERFACE

13 years agoadded an additional "N*N" to xSTEDC workspace "WORK" to correct problem with LWORK...
james [Wed, 22 Jun 2011 11:27:16 +0000 (11:27 +0000)]
added an additional "N*N" to xSTEDC workspace "WORK" to correct problem with LWORK being too small in some cases in the 'V' option when eigenvectors are computed for the dense matrix.

13 years agoSummer cleanup
julie [Wed, 22 Jun 2011 09:45:40 +0000 (09:45 +0000)]
Summer cleanup
Cleanup some codes, like unused variables.
Used -Walls to detect problems.

13 years agoAdded IF statement to prevent potential out of range errors with "K+1" indices.
james [Tue, 21 Jun 2011 18:59:51 +0000 (18:59 +0000)]
Added IF statement to prevent potential out of range errors with "K+1" indices.

13 years agoFor Yana Gurieva (Intel), see forum post 2508 on Tue Jun 7th, 2011.
langou [Tue, 7 Jun 2011 09:11:05 +0000 (09:11 +0000)]
For Yana Gurieva (Intel), see forum post 2508 on Tue Jun 7th, 2011.

Typo in the description of cla_porcond_c and cla_porcond_x.
( zla_porcond_c and zla_porcond_x are good, just the c versions have the typos.)

13 years agoSee post on the forum 2501 of Yana Gurieva from Intel. This fixes some typos
langou [Thu, 2 Jun 2011 18:30:26 +0000 (18:30 +0000)]
See post on the forum 2501 of Yana Gurieva from Intel.  This fixes some typos
in the comments about the **T and **H.  Proof that it was a good idea to make
clear what this $#@! "A'" meant. (In this case it was used to mean either A**T
in the case of cgtsv or A**H in the case of claqsb.)

13 years agoCorrect a workspace requirement comment in cbdsqr and zbdsqr
julie [Thu, 19 May 2011 14:46:50 +0000 (14:46 +0000)]
Correct a workspace requirement comment in cbdsqr and zbdsqr
For case 1, the routine will call DLASCL that requires a 4*N workspace.

Following a bug report from Hatem:

I am calling this function to only compute the singular
values from the bidiagonal matrix I just got after the 2nd stage.
The function comments say that the workspace should be
case 1: 2*N if NCVT = NRU = NCC = 0 (basically no singular vectors computed)
case 2: 4*N-4 otherwise.
I allocated the corresponding size for work in my program (i.e. 2*N) and
call the lapackE interface of this function (LAPACKE_zbdsqr_work).
And I get a "double free or corruption (!prev)" when I deallocate
work.
When I call instead LAPACKE_zbdsqr (I let the wrapper
now doing the allocation of work), it passes.
I looked inside LAPACKE_zbdsqr to check the size of work and
it seems to be 4*N across the board (for both cases 1 and 2).
Now, if I call back LAPACKE_zbdsqr_work and I allocate work
using 4*N, it passes.
Is it a bug?
Thanks for your time,
Hatem

13 years agoCorrection for Tobias.
julie [Wed, 18 May 2011 08:27:36 +0000 (08:27 +0000)]
Correction for Tobias.
To get the manpages correcty generated.

From Tobias:
|RPMLINT prints the following warning - and I think it is correct that
Fortran's .NOT. is misread as NOT. macro.

Tobias

RPMLINT report:
===============
lapack-man.noarch: W: manual-page-warning
/usr/share/man/man3/slaqr3.3.gz 351: warning: macro `NOT.BULGE' not defined
lapack-man.noarch: W: manual-page-warning
/usr/share/man/man3/dlaqr3.3.gz 351: warning: macro `NOT.BULGE' not defined
lapack-man.noarch: W: manual-page-warning
/usr/share/man/man3/lsametst.3.gz 53: warning: macro `NOT.LSAME(' not
defined
lapack-man.noarch: W: manual-page-warning
/usr/share/man/man3/slaqr2.3.gz 317: warning: macro `NOT.BULGE' not defined
lapack-man.noarch: W: manual-page-warning
/usr/share/man/man3/dlaqr2.3.gz 317: warning: macro `NOT.BULGE' not defined
This man page may contain problems that can cause it not to be formatted as
intended.|

13 years agofixed problems with zero matrix and scan
james [Thu, 21 Apr 2011 22:00:11 +0000 (22:00 +0000)]
fixed problems with zero matrix and scan

13 years agoApply Sebastien Fabbro patch for the cmake build.
julie [Wed, 20 Apr 2011 23:13:17 +0000 (23:13 +0000)]
Apply Sebastien Fabbro patch for the cmake build.

"Two more fixes for the cmake files of lapack-3.3.1:
1) syntax consistency for BLAS_LIBRARIES
2) link lapack with xblas when xblas is enabled"

13 years agoUpdate the comment of ABSTOL according to Sven's recommendation
julie [Tue, 19 Apr 2011 20:17:47 +0000 (20:17 +0000)]
Update the comment of ABSTOL according to Sven's recommendation

13 years agoUpdate ilaver and make.inc to 3.3.1
julie [Mon, 18 Apr 2011 20:00:50 +0000 (20:00 +0000)]
Update ilaver and make.inc to 3.3.1

13 years agoUpdate Version Number in CMAKE
julie [Fri, 15 Apr 2011 16:09:49 +0000 (16:09 +0000)]
Update Version Number in CMAKE

13 years agoUpdate README for 3.3.1
julie [Thu, 14 Apr 2011 15:21:30 +0000 (15:21 +0000)]
Update README for 3.3.1

13 years agoUpadte header for the modified routine for the 3.3.1 release
julie [Wed, 13 Apr 2011 16:30:39 +0000 (16:30 +0000)]
Upadte header for the modified routine for the 3.3.1 release

13 years agoSecond and hopefully last pass to homgenize notation for transpose (**T) and conjugat...
julie [Thu, 7 Apr 2011 13:53:54 +0000 (13:53 +0000)]
Second and hopefully last pass to homgenize notation for transpose (**T) and conjugate transpose (**H)
Corresponds to bug0024

Please take a look and let me know if you find some old notation of transpose.
I am going to close bug0024.
Julie

13 years agodecreased EPS by a factor of 0.9 to correct problem with orthogonality of U in certai...
james [Thu, 7 Apr 2011 12:30:43 +0000 (12:30 +0000)]
decreased EPS by a factor of 0.9 to correct problem with orthogonality of U in certain cases

13 years agoCorrect bug0077 : [DS]GESVD Minimum Worksize comments need clarification
julie [Tue, 5 Apr 2011 15:16:30 +0000 (15:16 +0000)]
Correct bug0077 : [DS]GESVD Minimum Worksize comments need clarification
Depending on the PATH, the minimum workspace is not the same.

13 years agoFirst pass for BLAS to homgenize notation for transpose (**T) and conjugate transpose...
julie [Sat, 2 Apr 2011 11:46:46 +0000 (11:46 +0000)]
First pass for BLAS to homgenize notation for transpose (**T) and conjugate transpose (**H)
Corresponds to bug0024

13 years agoFirst pass to homgenize notation for transpose (**T) and conjugate transpose (**H)
julie [Sat, 2 Apr 2011 11:08:56 +0000 (11:08 +0000)]
First pass to homgenize notation for transpose (**T) and conjugate transpose (**H)
Corresponds to bug0024

13 years agoWhile looking if bug0022 was corrected, found that some comments were not updated
julie [Thu, 17 Mar 2011 16:41:08 +0000 (16:41 +0000)]
While looking if bug0022 was corrected, found that some comments were not updated
bug0022 was indeed corrected by Zlatko

13 years agoRemove GO TO STATEMENT in DROTMG/DROTM and SROTMG/SROTM.
julie [Wed, 16 Mar 2011 22:52:01 +0000 (22:52 +0000)]
Remove GO TO STATEMENT in DROTMG/DROTM and SROTMG/SROTM.

Incorporate OLD Testings from ACM Collected algorithms : algorithm 539
for:
   - DROTMG/SROTMG
   - DROTM/SROTM
   - DSDOT / SDSDOT

All BLAS routines are now tested.
Now up to us to change the BLAS but at least this is consistent.

13 years agoRemove the easy GO TO statments....still 13 to remove in drotm.f and 36 in drotmg.f
julie [Thu, 10 Mar 2011 23:33:40 +0000 (23:33 +0000)]
Remove the easy GO TO statments....still 13 to remove in drotm.f and 36 in drotmg.f

13 years agoFormating code, use of * for comment, and follow other LAPACK style
julie [Thu, 10 Mar 2011 19:09:21 +0000 (19:09 +0000)]
Formating code, use of * for comment, and follow other LAPACK style

13 years agoAdded missing Further Details description of V (copied from xLARFT)
james [Tue, 8 Mar 2011 21:01:45 +0000 (21:01 +0000)]
Added missing Further Details description of V (copied from xLARFT)

13 years agoRemove multiple definition of cpotrs
julie [Mon, 7 Mar 2011 15:11:26 +0000 (15:11 +0000)]
Remove multiple definition of cpotrs

13 years agoAdded compiler options needed for HP Fortran
julie [Sun, 6 Mar 2011 20:02:06 +0000 (20:02 +0000)]
Added compiler options needed for HP Fortran

- Chuck Atkins (Kitware)

13 years agoCorrect bug 0076 reported by Intel Team on lapack forum
julie [Fri, 4 Mar 2011 20:44:21 +0000 (20:44 +0000)]
Correct bug 0076 reported by Intel Team on lapack forum
Problem in ?(sy/he)tri2 was found.

For matrices with small N subroutine pass parameter NBMAX to ?(sy/he)tri2x which could be large than N.
In test for this functionality this is hide. Local test subroutine ilaenv.f pass proper values of NB. But if use ordinary ilaenv we will get mistake.

If we implemented

IF ( NBMAX .GE. N ) THEN
MINSIZE = N
ELSE
MINSIZE = (N+NBMAX+1)*(NBMAX+3)
END IF

and will call

IF( NBMAX .GE. N ) THEN
CALL SSYTRI( UPLO, N, A, LDA, IPIV, WORK, INFO )
ELSE
CALL SSYTRI2X( UPLO, N, A, LDA, IPIV, WORK, NBMAX, INFO )
END IF

the problem will be solved.

Some other minor changes on workspace query.

13 years agoCorrect Workspace Query to make sure we return the max of LWORKOPT and LWORKMIN
julie [Thu, 3 Mar 2011 23:14:53 +0000 (23:14 +0000)]
Correct Workspace Query to make sure we return the max of LWORKOPT and LWORKMIN

13 years agoCorrect and Add Error exit tests for *errtz
julie [Thu, 3 Mar 2011 23:13:58 +0000 (23:13 +0000)]
Correct and Add Error exit tests for *errtz
Test the case where N=M (Workspace should be 1), so put LWORK at 0 to make it failed
Test the case where N!=M (Workspace should be more than MAX(1,M)), so put M=2, N=3 ans LWORK at 1 to make it failed

Correct some typos in [dz]drgsx testings.

13 years agoOne more workspace problem fixed...
julie [Thu, 3 Mar 2011 22:33:51 +0000 (22:33 +0000)]
One more workspace problem fixed...

13 years agoThe c generated code should be better now
julie [Thu, 3 Mar 2011 21:09:29 +0000 (21:09 +0000)]
The c generated code should be better now

13 years agoFix some workspace query problems found with the new interface
julie [Thu, 3 Mar 2011 21:02:22 +0000 (21:02 +0000)]
Fix some workspace query problems found with the new interface

13 years agoreplaced "do/exit" scan logic with do while loop
james [Thu, 3 Mar 2011 20:04:03 +0000 (20:04 +0000)]
replaced "do/exit" scan logic with do while loop
fixes bug0075 and bug0035

13 years agoAdded warning suppressions for the Intel compiler on Windows
julie [Mon, 28 Feb 2011 04:11:45 +0000 (04:11 +0000)]
Added warning suppressions for the Intel compiler on Windows

- Chuck Atkins (Kitware)

13 years agoWrapped lines that extended past 72 columns
julie [Mon, 28 Feb 2011 03:42:25 +0000 (03:42 +0000)]
Wrapped lines that extended past 72 columns

- Chuck Atkins (Kitware)

13 years agoCorrected a typo in the output message when setting optimization level
julie [Sat, 26 Feb 2011 21:49:14 +0000 (21:49 +0000)]
Corrected a typo in the output message when setting optimization level

- Chuck Atkins (Kitware)

13 years agoRe-worked type-size checks to search for differnt sizes for different types
julie [Sat, 26 Feb 2011 20:51:01 +0000 (20:51 +0000)]
Re-worked type-size checks to search for differnt sizes for different types

- Chuck Atkins (Kitware)

13 years agoAdded a status message when using the supplied NETLIB BLAS
julie [Sat, 26 Feb 2011 20:50:37 +0000 (20:50 +0000)]
Added a status message when using the supplied NETLIB BLAS

- Chuck Atkins (Kitware)

13 years agoRecude RELEASE optimization level from O>3 to O2
julie [Sat, 26 Feb 2011 20:49:40 +0000 (20:49 +0000)]
Recude RELEASE optimization level from O>3 to O2

- Chuck Atkins (Kitware)

13 years agochanged matrix norm to 'M' (max) from 'I' (inf) for scaling of input matrix
james [Thu, 24 Feb 2011 21:12:23 +0000 (21:12 +0000)]
changed matrix norm to 'M' (max) from 'I' (inf) for scaling of input matrix
and added check for zero norm in xSTERF (the xSTEQR already had this check)
this fixes the issue reported in bug0036

13 years agoremoved confusing comments about JMAX, resolves bug0034
james [Thu, 17 Feb 2011 20:14:14 +0000 (20:14 +0000)]
removed confusing comments about JMAX, resolves bug0034

13 years agoremoved confusing comments about JMAX, resolves bug0034
james [Thu, 17 Feb 2011 20:10:22 +0000 (20:10 +0000)]
removed confusing comments about JMAX, resolves bug0034

13 years agofixes bug0027: removed incorrect description of output of H (they are not in standard...
james [Thu, 17 Feb 2011 16:50:30 +0000 (16:50 +0000)]
fixes bug0027: removed incorrect description of output of H (they are not in standard form)

13 years agoCorrect precision generation problem
julie [Wed, 9 Feb 2011 19:55:15 +0000 (19:55 +0000)]
Correct precision generation problem

13 years agoFix bug 0074
julie [Wed, 9 Feb 2011 19:45:09 +0000 (19:45 +0000)]
Fix bug 0074

Post from Alexander Kobotov (INTEL)
In LAPACK 3.3 ?(SY/HE)SV are updated to use TRS2.
The TRS2 requires WORK(N) to operate, whereas in SV requirements for LWORK just to be >=1.
There is no any check in SV if LWORK>=N, the array WORK just passed as it is to TRS2.
So if LWORK<N a crash could occur while executing TRS2 due to overuse of allocated workspace.

I guess for the case of LWORK<N just previsous Level2 based ?(SY/HE)TRS should be used.

13 years agoFix Bug 0073: [Re] Add dummy routine in timer to avoid compiler problem
julie [Mon, 7 Feb 2011 18:00:27 +0000 (18:00 +0000)]
Fix Bug 0073: [Re] Add dummy routine in timer to avoid compiler problem

Bug reported by John Tellefson to LAPACK Mailing List on February 7th.
Dummy routine was removed in LAPACK 3.3.0 because it seems it was working on all machines.
[Re] Incorporation of the dummy routine and incorporate John's suggested cosmectic changes to allow
an easier change in number of operation to perform.

"modified secondtst.f from lapack-3.2.2 with the old
code that makes it reliably report timing loop results. I also added a
variable TOTAL to simplify changes in setting array size and iterations
which affect total flops and made few other changes.

13 years agoMove CMake files to a subdirectory
julie [Mon, 7 Feb 2011 14:54:28 +0000 (14:54 +0000)]
Move CMake files to a subdirectory

- Brad King (Kitware)

13 years agoLink tmglib test library to lapack
julie [Mon, 7 Feb 2011 14:54:24 +0000 (14:54 +0000)]
Link tmglib test library to lapack

The library uses symbols from lapack and so should link to it.
Previously this was not noticed because static libraries do not
really link and the test executables link to lapack anyway.

- Brad King (Kitware)

13 years agoOrganize binaries into bin and lib directories
julie [Mon, 7 Feb 2011 14:54:21 +0000 (14:54 +0000)]
Organize binaries into bin and lib directories

Put executables under 'bin' and libraries under 'lib'.  This is needed
on Windows with shared library builds to put the .dll and .exe files
together for running tests without setting PATH.

- Brad King (Kitware)

13 years agoRestore CMake packaging removed in r858
julie [Mon, 7 Feb 2011 14:54:19 +0000 (14:54 +0000)]
Restore CMake packaging removed in r858

- Brad King (Kitware)

13 years agoRevert "Restore CMake packaging removed in r858"
julie [Mon, 7 Feb 2011 14:54:16 +0000 (14:54 +0000)]
Revert "Restore CMake packaging removed in r858"

This reverts commit e725dc754dd87ed45f21ba6981fca6dbc0530aa3.

13 years agoRevert "Organize binaries into bin and lib directories"
julie [Mon, 7 Feb 2011 14:54:14 +0000 (14:54 +0000)]
Revert "Organize binaries into bin and lib directories"

This reverts commit e3b5f531553c176a009f41b6a312b0c11b955fd6.

13 years agoRevert "Link tmglib test library to lapack"
julie [Mon, 7 Feb 2011 14:54:11 +0000 (14:54 +0000)]
Revert "Link tmglib test library to lapack"

This reverts commit 5070d8d0b7690496561a26f5849d6f80a8727d93.

13 years agoRevert "Move CMake files to a subdirectory"
julie [Mon, 7 Feb 2011 14:54:09 +0000 (14:54 +0000)]
Revert "Move CMake files to a subdirectory"

This reverts commit bc425c443232cf9737afcce38753f79963d31e0a.

13 years agoMove CMake files to a subdirectory
julie [Mon, 7 Feb 2011 14:37:01 +0000 (14:37 +0000)]
Move CMake files to a subdirectory

13 years agoLink tmglib test library to lapack
julie [Mon, 7 Feb 2011 14:36:57 +0000 (14:36 +0000)]
Link tmglib test library to lapack

The library uses symbols from lapack and so should link to it.
Previously this was not noticed because static libraries do not
really link and the test executables link to lapack anyway.

13 years agoOrganize binaries into bin and lib directories
julie [Mon, 7 Feb 2011 14:36:54 +0000 (14:36 +0000)]
Organize binaries into bin and lib directories

Put executables under 'bin' and libraries under 'lib'.  This is needed
on Windows with shared library builds to put the .dll and .exe files
together for running tests without setting PATH.

13 years agoRestore CMake packaging removed in r858
julie [Mon, 7 Feb 2011 14:36:50 +0000 (14:36 +0000)]
Restore CMake packaging removed in r858

13 years agoFix bug 0072 reported by Inge Gutheil on February 3rd 2011
julie [Thu, 3 Feb 2011 18:28:38 +0000 (18:28 +0000)]
Fix bug 0072 reported by Inge Gutheil on February 3rd 2011

From Inge:
In the tests,
TESTING/EIG/cchkhs.f (similar in zchkhs.f) in line 492 N = NN ( JSIZE )
is set. If NN( JSIZE ) is zero, CCOPY (N-1,....) gives an error message
and the test breaks. In the real versions dchkhs after N = NN ( JSIZE )
there is
IF ( N .EQ. 0 ) GO TO 270, so there DCOPY does not exit with an error
message.
I think the same statement should be added in the complex version to
avoid copying -1 element.

13 years agoChange from Christof (Voemel) sent on Mon, 31 Jan 2011.
langou [Mon, 31 Jan 2011 18:27:33 +0000 (18:27 +0000)]
Change from Christof (Voemel) sent on Mon, 31 Jan 2011.

*********************************************************************
change
         IF( USEDQD ) THEN
*           The initial SIGMA was to the outer end of the spectrum
*           the matrix is definite and we need not retreat.
            TAU = SPDIAM*EPS*N + TWO*PIVMIN
         ELSE
into
         IF( USEDQD ) THEN
*           The initial SIGMA was to the outer end of the spectrum
*           the matrix is definite and we need not retreat.
            TAU = SPDIAM*EPS*N + TWO*PIVMIN
            TAU = MAX( TAU,TWO*EPS*ABS(SIGMA) )
         ELSE

that is, with an added line to prevent TAU from becoming zero
            TAU = MAX( TAU,TWO*EPS*ABS(SIGMA) )
*********************************************************************

Thanks Christof!

13 years agoFix bug0070 : IWORK dimension is incorrect
julie [Mon, 31 Jan 2011 16:14:51 +0000 (16:14 +0000)]
Fix bug0070 :  IWORK dimension is incorrect
  bug report sent by nmozarto on Jan 27th
  see forum topic 2156

From Brian:
 The correct dimension is (M-R), in which R is the smallest of P, M-P, Q, and M-Q.
 An M-by-M matrix is partitioned into a 2-by-2 block structure. The
 dimensions of the blocks are P-by-Q, P-by-(M-Q), (M-P)-by-Q, and
 (M-P)-by-(M-Q). IWORK is involved in the permutation of rows or
 columns of these blocks, and it is the largest block, in terms of
 number of rows or columns, that determines the size of IWORK.

13 years agoCorrect bug0069
julie [Fri, 28 Jan 2011 23:04:40 +0000 (23:04 +0000)]
Correct bug0069
Bug was sent by nmozarto on Jan 27th (see forum topic 2156)

Problem in new function ?SYTRI2 was found: the part of A below the diagonal is changed in the case UPLO='U' .
But in the description of arguments
If UPLO = 'U', the upper triangular part of the
inverse is formed and the part of A below the diagonal is not
referenced; if UPLO = 'L' the lower triangular part of the
inverse is formed and the part of A above the diagonal is
not referenced.

These elements zeroized after calling ?GEMM function in ?SYTRI2X.
CALL SGEMM('T','N',NNB,NNB,CUT,ONE,A(1,CUT+1),LDA,
$ WORK,N+NB+1, ZERO, A(CUT+1,CUT+1), LDA)

13 years agoSame for hetrs2 routines
julie [Thu, 27 Jan 2011 14:25:04 +0000 (14:25 +0000)]
Same for hetrs2 routines

13 years agoFollow-up: fix for new routines to handle LDA
julie [Thu, 27 Jan 2011 14:21:35 +0000 (14:21 +0000)]
Follow-up: fix for new routines to handle LDA
See bug0067

13 years ago1) Je viens de modifier le fichier timer_dsytri2.c de telle sorte a ce qu'il
langou [Wed, 26 Jan 2011 14:02:05 +0000 (14:02 +0000)]
1) Je viens de modifier le fichier timer_dsytri2.c de telle sorte a ce qu'il
traite les matrices avec des lda.
Exemple:

> gfortran timer_dsytri2.c /Users/langou/Documents/lapack-dev-trunk.svn/lapack_LINUX.a -framework vecLib
> ./a.out -U -lda 1079 -n 100
DSYTRI2 info=0, check=1.891597e-14
Dispo dans ldlt.git. Marche bien. Upper ou Lower. LDA different de N ou pas. Le
check est
|| A . inv(A) - I || / || A ||
(Je pense que il faut diviser par || A || * || inv(A) ||, pas tres important.)

2) Du coup, dans ce commit, je rectifie tous les codes. Cela compile. Je n'ai
pas verifie les testings. Je n'ai pas ecrit de driver pour verifier. (Le driver
n'est que pour la version DOUBLE.)

JL

13 years agobon maintenant, ca compile ... (desole)
langou [Wed, 26 Jan 2011 05:49:27 +0000 (05:49 +0000)]
bon maintenant, ca compile ... (desole)

13 years agoJ'ai lu le code vite fait. Comme ca, ca devrait marcher. Je n'ai pas verifie.
langou [Wed, 26 Jan 2011 05:47:42 +0000 (05:47 +0000)]
J'ai lu le code vite fait. Comme ca, ca devrait marcher. Je n'ai pas verifie.
Je n'ai meme pas essaye de compiler en fait. En gros mettre LDA en parametre,
definir A comme etant A( LDA, N ) et pour l'increment du swap mettre LDA a la
place de N quand tu travailles sur les lignes. Donc c'est tout con.

Donc il faut ecrire un driver qui teste ca avec une LDA differente de N ... Et
appliquer les modifications aux autres routines CHE, CSY, ZHE, ZSY et SSY.

Sinon pourquoi dans DSYSWAPR, est ce que tu utilises DSWAP de temps en temps,
et de temps en temps tu le fais a la main?  Je n'ai pas regarde les details.

JL.

13 years agoInclude Zlatko changes following Paul Roberts from NAG report
julie [Tue, 25 Jan 2011 22:02:14 +0000 (22:02 +0000)]
Include Zlatko changes following Paul Roberts from NAG report

Message from Zlatko:

The following changes are made in the
current version of the code:

1. in dgejsv, sgejsv:

- a typo in checking the parameters LSVEC.OR.LSVEC
  has been changed to LSVEC.OR.RSVEC
- the length of WORK, LWORK, its description
  and the minimal length for different JOBs
  have been revised and corrected
- in a call to xGESVJ with WORK(N+1), the length
  of the workspace is set to the correct value of
  LWORK-N, instead of the incorrect LWORK
- a missing RETURN after a call to XERBLA
  has been inserted
- In the case of zero matrix on input, IWORK(3)
  is set to ZERO, to correspond to the description
  of IWORK in other nontrivial cases
2. in all routines
- simple editing so that the single and
  the corresponding double routines have matching
  lines in the source codes.

13 years agoCorrect multiple definition in the lapack lib (See forum topic 2099 - Bruno)
julie [Mon, 24 Jan 2011 20:05:41 +0000 (20:05 +0000)]
Correct multiple definition in the lapack lib (See forum topic 2099 - Bruno)

13 years agoAdding new hetri routines
julie [Thu, 20 Jan 2011 17:33:46 +0000 (17:33 +0000)]
Adding new hetri routines