platform/upstream/lapack.git
15 years agoAdd xSYEQUB bibliographic reference citing Livne & Golub.
jason [Sat, 14 Mar 2009 20:17:33 +0000 (20:17 +0000)]
Add xSYEQUB bibliographic reference citing Livne & Golub.

Reference: Livne, O.E. and Golub, G.H., "Scaling by Binormalization",
Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.
DOI 10.1023/B:NUMA.0000016606.32820.69
Tech report version: http://ruready.utah.edu/archive/papers/bin.pdf

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
15 years agoFix ZLARFP and CLARFP optimizations when the vector is zero.
jason [Sat, 14 Mar 2009 20:06:19 +0000 (20:06 +0000)]
Fix ZLARFP and CLARFP optimizations when the vector is zero.

The x == zero branch ignored complex alphas.  The code still
functioned, but it scaled the entire zero vector.  Now that I think of
it, I should scan upwards for the scaling, too.  That will be a
separate enhancement patch; this is just the bug fix.

This patch also fixes an accidental precision shortening in ZLARFP,
which used CMPLX in the dead branch.

Reported by Igor Zhuravlov on the LAPACK web goo thingy, currently at
  http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=924
Also lead to finding a related (but different) error in the LAWN and
(accepted, still in editing) SISC paper.

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
15 years agoThe description of LDA in the header was number 8 in the header, while
langou [Wed, 11 Mar 2009 01:54:40 +0000 (01:54 +0000)]
The description of LDA in the header was number 8 in the header, while
LDA is the 4th argument in the interface.
=>
Rearrange the header accordingly.

15 years agoChange routines to xLARFP that were missed in the first round.
jason [Fri, 6 Mar 2009 18:22:09 +0000 (18:22 +0000)]
Change routines to xLARFP that were missed in the first round.

Thanks to Michael Chuvelev <michael.chuvelev@intel.com> for noting
that the following routines still called xLARFG rather than xLARFP:
  cgeqpf.f   slaqp2.f   claqp2.f  claqps.f   clatrz.f   ctzrqf.f

Bug reported in message
<A43BE3D8E247E440AF3477B3CDCB0A694A132639@irsmsx504.ger.corp.intel.com> .

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
15 years agoReturn SCALE = ONE in xTRSYL for zero-dimension matrices.
jason [Tue, 3 Mar 2009 17:16:37 +0000 (17:16 +0000)]
Return SCALE = ONE in xTRSYL for zero-dimension matrices.

I doubt if LAPACK is consistent about zero-dim matrices, but it's
worth a shot.  Plenty of discussion about their semantics on the
GNU Octave development lists.

Reported by Vasile Sima <vsima@ici.ro> in message
<1575.193.230.3.167.1235984292.squirrel@webmail.ici.ro>.

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
15 years agoOnly touch Q in {d,s}tgsen.f if WANTQ is true.
jason [Tue, 3 Mar 2009 17:12:04 +0000 (17:12 +0000)]
Only touch Q in {d,s}tgsen.f if WANTQ is true.

Reported by Daniel Waggoner <dwaggoner@frbatlanta.org> in message
<49AA2617.4060900@frbatlanta.org>.

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
15 years agoRestructured loops in {c,z}la_yyrcond_{x,c} and {s,c,d,z}la_yyamv to do less comparisons.
deaglanhalligan [Fri, 13 Feb 2009 23:58:46 +0000 (23:58 +0000)]
Restructured loops in {c,z}la_yyrcond_{x,c} and {s,c,d,z}la_yyamv to do less comparisons.

15 years agoShould call {c,z}la_heamv, not {c,z}la_syamv, from {c,z}la_porfsx_extended.
deaglanhalligan [Wed, 11 Feb 2009 09:20:58 +0000 (09:20 +0000)]
Should call {c,z}la_heamv, not {c,z}la_syamv, from {c,z}la_porfsx_extended.

15 years agoModified {c,z}syequb to use 2*N WORK rather than 3*N.
deaglanhalligan [Wed, 11 Feb 2009 07:13:27 +0000 (07:13 +0000)]
Modified {c,z}syequb to use 2*N WORK rather than 3*N.

15 years agoAdded Jasons patches to bring work and rwork down to 2*N in the complex refinement...
deaglanhalligan [Wed, 11 Feb 2009 06:06:54 +0000 (06:06 +0000)]
Added Jasons patches to bring work and rwork down to 2*N in the complex refinement routines.

15 years agocgesvxx and zgesvxx need at least 3*N WORK space after changes from last bug fix
deaglanhalligan [Tue, 10 Feb 2009 12:17:14 +0000 (12:17 +0000)]
cgesvxx and zgesvxx need at least 3*N WORK space after changes from last bug fix

15 years agoFixed WORK/RWORK bug in complex iterative refinement routines.
deaglanhalligan [Tue, 10 Feb 2009 03:14:40 +0000 (03:14 +0000)]
Fixed WORK/RWORK bug in complex iterative refinement routines.

15 years ago(no commit message)
langou [Mon, 9 Feb 2009 22:08:05 +0000 (22:08 +0000)]

15 years ago(no commit message)
langou [Mon, 9 Feb 2009 21:37:20 +0000 (21:37 +0000)]

15 years ago(no commit message)
langou [Sun, 1 Feb 2009 19:51:40 +0000 (19:51 +0000)]

15 years agoFix scaling in the transpose case of extra-precise refinement.
jason [Wed, 28 Jan 2009 20:34:18 +0000 (20:34 +0000)]
Fix scaling in the transpose case of extra-precise refinement.

The row-scaling factors need passed in the transpose case.  Apparently,
none of our release tests include ill-scaled matrices.

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
15 years ago==============================================================================
langou [Wed, 28 Jan 2009 16:11:32 +0000 (16:11 +0000)]
==============================================================================
Patch from Christof Voemel, ETH Zurich.
==============================================================================
I would like to make a small change  in dlarrd/slarrd/_larrd.f.base so that the
code deals better with certain matrices from Godunov.

Could you please replace in those files the lines, after label 40,
            GL = GL - FUDGE*SPDIAM*EPS*IN - FUDGE*PIVMIN
            GU = GU + FUDGE*SPDIAM*EPS*IN + FUDGE*PIVMIN

by
            GL = GL - FUDGE*TNORM*EPS*IN - FUDGE*PIVMIN
            GU = GU + FUDGE*TNORM*EPS*IN + FUDGE*PIVMIN

(Exchange SPDIAM to TNORM).
==============================================================================

15 years agoSet ithresh to 10, not 100. Removed la_linrx_max_n_errs.
deaglanhalligan [Mon, 26 Jan 2009 03:51:22 +0000 (03:51 +0000)]
Set ithresh to 10, not 100. Removed la_linrx_max_n_errs.

15 years agoFixed typos and variable types in testing files.
deaglanhalligan [Thu, 22 Jan 2009 23:28:13 +0000 (23:28 +0000)]
Fixed typos and variable types in testing files.

15 years agoAdded the rest of the extra precise iterative refinement testing.
deaglanhalligan [Thu, 22 Jan 2009 10:40:59 +0000 (10:40 +0000)]
Added the rest of the extra precise iterative refinement testing.

15 years agoFix out of bound access in LIN TESTING with XBLAS found with -fcheck-bounds with...
julie [Fri, 16 Jan 2009 22:27:20 +0000 (22:27 +0000)]
Fix out of bound access in LIN TESTING with XBLAS found with -fcheck-bounds with gfortran.
"Error in DLA_GBAMV.f line 226: forrtl: severe (408): fort: (2): Subscript #1 of the array AB has value 2 which is greater than the upper bound of 1"

Reported in http://icl.cs.utk.edu/trac/lapack-dev/ticket/45

15 years agoFollowing a out-of-bound complaint by gfortran
julie [Mon, 12 Jan 2009 22:16:18 +0000 (22:16 +0000)]
Following a out-of-bound complaint by gfortran

Modify size in declaration of DX and DY.
It was set to 1, and 5 or N in the comments !!!!!
Put * in the declaration and N in the comments

This routine may need to be double-checked.

15 years ago============================================================================
langou [Mon, 12 Jan 2009 05:17:21 +0000 (05:17 +0000)]
============================================================================
Bug in RFP routines xTFSM for N=1 independently reported by Jason and Julie.
============================================================================

See Jason's email DEC/27/2009: "Similar problem in xTFSM".
Jason used gfortran with -fbounds-check and got:
> At line 328 of file stfsm.f
> Fortran runtime error: Array reference out of bounds for array 'b', upper bound of dimension 1 exceeded (1 > 0)

Julie also observed the bug with MS Visual Studio.
See ticket http://icl.cs.utk.edu/trac/lapack-dev/ticket/46

The problem is the following. Sometimes in the RFP routines, we
call routines like for example
   DGEMM ( M, N, K, ... A( I, J), ...)
where M or N is 0 and A( I, J ) is out-of-bound.  The rationale was since M or
N is 0, DGEMM simply exits without doing anything, therefore the out-of-bound
A(I,J) is not an issue. Well, this is not Fortran correct.

In this commit, I have fix the problem for xTFSM. This is a fix. This is not
rocket-science and one can certainly do something more elegant ... This bug is
blocking Julie from porting on Windows so the matter was urgent.

Now RFP + ( gfortan -fbounds-check ) works fine.

TODO: find a cleaner way to fix this,

TODO: Unfortunately I believe there are other bugs like this one in other RFP
routines, always when N=1. See for example xPFTRF. I do not understand why the
TESTING with gfortran -fbounds-check do not trigger an error though ...

15 years agoFix some minors errors found while porting under Windows
julie [Thu, 8 Jan 2009 19:58:17 +0000 (19:58 +0000)]
Fix some minors errors found while porting under Windows

15 years agoLast round of modifications to the comments for the generation of the manpages
julie [Fri, 2 Jan 2009 21:57:02 +0000 (21:57 +0000)]
Last round of modifications to the comments for the generation of the manpages

15 years agoMerged revisions 609-614 via svnmerge from
jason [Tue, 30 Dec 2008 21:27:12 +0000 (21:27 +0000)]
Merged revisions 609-614 via svnmerge from
https://jason@icl.cs.utk.edu/svn/lapack-dev/lapack/branches/SC08-release

........
  r609 | julie | 2008-12-16 17:17:52 -0500 (Tue, 16 Dec 2008) | 1 line

  Polish routines to fit the LAPACK framework and allow manpages generation
........
  r610 | langou | 2008-12-19 12:12:38 -0500 (Fri, 19 Dec 2008) | 30 lines

  bug reported on the forum
  https://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=854

  the complete thread is available at
  http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/635192e11beadb93#

  Tobias Burnus also sent us an email:

  > Hello,
  >
  > this was reported at
  > http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/635192e11beadb93#
  >
  > The problem is the line 47:
  >
  > 47:       IF( M.EQ.0 .OR. A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN
  >
  > If M == 0 the one accesses A(0,1) which is invalid as the lower bound is 1
  > and not 0.
  >
  > Note: Contrary to C there is no left-to-right evaluation of expressions in
  > Fortran; the order is left to the compiler. One might assume that a smart
  > compiler does not evaluate "A(M,1)" if "M==0", however, there is nothing in
  > the standard guarantees this.
  >
  > If bounds checks are turned on (see post at the URL above), gfortran aborts
  > with an out-of-bounds error.
........
  r611 | julie | 2008-12-19 15:00:58 -0500 (Fri, 19 Dec 2008) | 5 lines

  Modify the formatting of the comments.
  Replace Note and Notes section by Further Details
  This allow the manpages to be generated corectly.
........
  r612 | julie | 2008-12-19 16:29:21 -0500 (Fri, 19 Dec 2008) | 3 lines

  Reformat the xblas routines comments to be able to generate the manpages

........
  r613 | julie | 2008-12-19 16:30:31 -0500 (Fri, 19 Dec 2008) | 1 line

  Update version number
........
  r614 | jason | 2008-12-27 09:44:45 -0500 (Sat, 27 Dec 2008) | 13 lines

  Fix non-short-circuited tests in ILAxL{C,R}.

  Fortran doesn't short-circuit logical operators, so the check that the leading
  dimension /= 0 may not prevent indexing into a 0-length array.

  Reported by "hes selex" in
    http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/635192e11beadb93
  and forwarded to the LAPACK maintainers by Tobias Burnus <burnus@net-b.de>.

  Chalk up more bugs found by gfortran's diagnostics!

Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
Cc: Tobias Burnus <burnus@net-b.de>
........

15 years ago(no commit message)
julie [Tue, 16 Dec 2008 17:06:58 +0000 (17:06 +0000)]

15 years agoXBLAS: Added gbmv2 (including test codes).
yozo [Tue, 11 Nov 2008 19:57:27 +0000 (19:57 +0000)]
XBLAS: Added gbmv2 (including test codes).

This routines computes the matrix product:

    y  <-  alpha * op(A) * (x_head + x_tail) + beta * y

where A is a general banded matrix.

15 years agoXBLAS: Added hemv2 (including test codes).
yozo [Tue, 11 Nov 2008 19:56:54 +0000 (19:56 +0000)]
XBLAS: Added hemv2 (including test codes).

This routines computes the matrix product:

  y  <-  alpha * A * (x_head + x_tail) + beta * y

where A is a complex Hermitian matrix.

15 years agoXBLAS: Added symv2 (including tests).
yozo [Tue, 11 Nov 2008 19:56:25 +0000 (19:56 +0000)]
XBLAS: Added symv2 (including tests).

symv2 performs

  y  <-  alpha * A * (x_head + x_tail) + beta * y

where A is a symmetric matrix.

15 years agoXBLAS: Fix increment adjustment in do_test_axpby.
yozo [Tue, 11 Nov 2008 19:56:07 +0000 (19:56 +0000)]
XBLAS: Fix increment adjustment in do_test_axpby.

We need to double the increment for complex cases.

15 years agoXBLAS: Fix bug in testgen_BLAS_[cz]dot2.
yozo [Tue, 11 Nov 2008 19:55:57 +0000 (19:55 +0000)]
XBLAS: Fix bug in testgen_BLAS_[cz]dot2.

Wrong parameter was being passed to gen_y_to_cancel.
Should pass n_fix2+1 instead of k+1, since k and n_fix2
differ by factor of two for complex case.

15 years agoXBLAS: Fix bug in testing/test-dot2/testgen_BLAS_[sd]dot2.
yozo [Tue, 11 Nov 2008 19:55:50 +0000 (19:55 +0000)]
XBLAS: Fix bug in testing/test-dot2/testgen_BLAS_[sd]dot2.

Scaling factor to compute x_tail was being rounded to integer,
and thus was producing all zeros for x_tail (and hence didn't
test whether *mv2 routines were looking at x_tail at all).

15 years agoXBLAS: Removed unused variable x_vec in testing/test-symv/do_test_symv.c.
yozo [Tue, 11 Nov 2008 19:55:41 +0000 (19:55 +0000)]
XBLAS: Removed unused variable x_vec in testing/test-symv/do_test_symv.c.

15 years agoXBLAS: Make argument error return codes more specific in gbmv.
yozo [Tue, 11 Nov 2008 19:55:32 +0000 (19:55 +0000)]
XBLAS: Make argument error return codes more specific in gbmv.

Should return -k if the k-th argument is in error, instead of just 0.

15 years agoXBLAS: Fix lda check in gbmv.
yozo [Tue, 11 Nov 2008 19:55:11 +0000 (19:55 +0000)]
XBLAS: Fix lda check in gbmv.

For banded storage lda can be smaller than n or m.

15 years agoXBLAS: Fix lda check in gemv.
yozo [Tue, 11 Nov 2008 19:54:53 +0000 (19:54 +0000)]
XBLAS: Fix lda check in gemv.

We need to raise error if lda < m for column major format,
and lda < n for row major format.  Previously it was checking
for lda < leny.

Also test lda in do_test_gemv more carefully.

15 years agoMove LAPACK trunk into position.
jason [Tue, 28 Oct 2008 01:38:50 +0000 (01:38 +0000)]
Move LAPACK trunk into position.