summaryrefslogtreecommitdiff
path: root/BLAS/SRC
AgeCommit message (Collapse)AuthorFilesLines
2016-07-09STYLE: Remove trailing whitespace in Fortran filesHans Johnson151-1266/+1266
This is mostly a long term maintenance improvement. Many coding styles require elimination of trailing whitespace, and many editors and source code management configurations automatically gobble up whitespace. When these tools gobble up whitespace, it complicates reviewing the meaningful code changes. By removing whitespace on one patch, it makes future code reviews much easier. =SCRIPT==================================================================== if which tempfile &>/dev/null; then TEMPMAKER=tempfile elif which mktemp &>/dev/null; then TEMPMAKER=mktemp else echo "Cannot find tempfile program." 2>&1 exit 1 fi MYTEMP=$($TEMPMAKER) trap 'rm -f $MYTEMP' SIGINT SIGTERM stripit() { echo "stripping $1" sed 's/[ \t]*$//' "$1" > $MYTEMP cp $MYTEMP "$1" } if [ $# -gt 0 ]; then while [ "$1" != "" ]; do stripit $1 shift done else while read -t 2; do stripit $REPLY done fi rm $MYTEMP =================================================
2016-07-09STYLE: Remove trailing whitespace in MISC filesHans Johnson1-3/+3
This is mostly a long term maintenance improvement. Many coding styles require elimination of trailing whitespace, and many editors and source code management configurations automatically gobble up whitespace. When these tools gobble up whitespace, it complicates reviewing the meaningful code changes. By removing whitespace on one patch, it makes future code reviews much easier. =SCRIPT==================================================================== if which tempfile &>/dev/null; then TEMPMAKER=tempfile elif which mktemp &>/dev/null; then TEMPMAKER=mktemp else echo "Cannot find tempfile program." 2>&1 exit 1 fi MYTEMP=$($TEMPMAKER) trap 'rm -f $MYTEMP' SIGINT SIGTERM stripit() { echo "stripping $1" sed 's/[ \t]*$//' "$1" > $MYTEMP cp $MYTEMP "$1" } if [ $# -gt 0 ]; then while [ "$1" != "" ]; do stripit $1 shift done else while read -t 2; do stripit $REPLY done fi rm $MYTEMP =================================================
2016-07-09STYLE: Remove trailing whitespace in CMake filesHans Johnson1-22/+22
This is mostly a long term maintenance improvement. Many coding styles require elimination of trailing whitespace, and many editors and source code management configurations automatically gobble up whitespace. When these tools gobble up whitespace, it complicates reviewing the meaningful code changes. By removing whitespace on one patch, it makes future code reviews much easier.
2016-06-27Description: Fix various typosSébastien Villemot12-12/+12
Author: Sébastien Villemot <sebastien@debian.org> Forwarded: yes, by email to lapack@cs.utk.edu on 2016-06-26
2015-11-15Updating version numberjulie24-72/+72
2015-09-03Minor edits in the BLAS header to better describe the functionality.langou4-5/+12
See: http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=4786
2015-09-02Committing Nico's change about build system improvements for LAPACKjulie1-3/+8
"One of the improvements with the patches is that SOVERSION and VERSION are now properly set and the proper symlinks are created: ``` liblapack.so -> liblapack.so.3 liblapack.so.3 -> liblapack.so.3.5.0 liblapack.so.3.5.0 ``` Since BLAS is shipped with LAPACK and no separate version number is given for BLAS, I applied the same there, too." Tested on Julie's Mac TO DO: To test under Windows ==== Updated OSX RPATH settings In response to CMake 3.0 generating warnings regarding policy CMP0042, the OSX RPATH settings have been updated per recommendations found in the CMake Wiki: http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH
2014-07-12Edited the code of xGBMV, xGEMV and xGEMM by removing the test for an entry oflangou12-182/+130
B (or X) being zero to skip a loop so as to enable better NaN (or Inf) propagation. Taking DGEMM as an example, if you use notation: C(I,J) = C(I,J) + alpha * A(I,L) * B(L,J), the reference BLAS DGEMM is using the JLI version of matrix matrix multiply and is checking, for each J (from 1 to N) and for each L (from 1 to K), whether B(L,J) is zero (or not) to save (or not) the 2M following operations. (See the "IF (B(L,J).NE.ZERO) THEN" in the code below.) The snippets of code is as follows DO 90 J = 1,N DO 80 L = 1,K IF (B(L,J).NE.ZERO) THEN TEMP = ALPHA*B(L,J) DO 70 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 70 CONTINUE END IF 80 CONTINUE 90 CONTINUE This induces some non NaN-propagation in a pretty ad-hoc way. For better NaN propagation, this patch removes the above IF statement. The snippet of code now becomes DO 90 J = 1,N DO 80 L = 1,K TEMP = ALPHA*B(L,J) DO 70 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 70 CONTINUE 80 CONTINUE 90 CONTINUE This enables correct NaN propagation for this piece of code. Rationale: BLAS does not correctly propagate all NaNs (and Infs). We still have no NaN propagation where for example ALPHA=0, etc. The goal of this commit is to have correct NaN propagation no matter what the entries of the input matrices/vectors (A, B, C, X, etc.) are. BLAS do not correctly propagate NaNs and Infs based on some values of the scalars (ALPHA, BETA, etc.). See below the email from Tom Callaway from RedHat, sent on July 9th to lapack@cs.utk.edu. Hello LAPACK people, Martyn & Lejeczek (on CC) reported an issue to Fedora relating to R using our system copy of BLAS (from LAPACK). As noted in the R administration and Installation Manual, "R relies on ISO/IEC 60559 compliance of an external BLAS. This can be broken if for example the code assumes that terms with a zero factor are always zero and do not need to be computed - whereas x*0 can be NaN. This is checked in the test suite." In the stock BLAS, DGBMV, DGEMM, and DGEMV fail this. R has been patching their bundled BLAS to resolve this issue since 2010, but Fedora now uses the system BLAS. Attached is a patch (from upstream R) to fix this issue in the LAPACK BLAS. Please consider applying it. Thanks, ~tom
2014-02-10( Let me know if I broke anything. I double checked. We should be fine but )langou8-8/+9
( 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
2011-11-11Update version number to 3.4.0julie1-1/+1
2011-11-03Cosmetic changes in Doxygen presentation.julie151-2509/+1988
Use \par instead of \details for section. add a Contributors Section and a Reference Section. Remove (some) verbatim section when not needed. Those changes have been done by hand so I am not sure I manage to catch them all.
2011-10-31Correct Warning detected during Doxygen Generation.julie92-954/+500
Now each routine should have the correct list of arguments. This allowed to detect and fix problems in parameter description of many routines.
2011-10-06Integrating Doxygen in commentsjulie151-10260/+20133
2011-08-15Replace DOUBLE COMPLEX by COMPLEX*16julie39-127/+126
Replace SNGL by REAL
2011-06-22Summer cleanupjulie1-1/+0
Cleanup some codes, like unused variables. Used -Walls to detect problems.
2011-04-02First pass for BLAS to homgenize notation for transpose (**T) and conjugate ↵julie80-322/+322
transpose (**H) Corresponds to bug0024
2011-03-16Remove GO TO STATEMENT in DROTMG/DROTM and SROTMG/SROTM.julie4-471/+403
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.
2011-03-10Remove the easy GO TO statments....still 13 to remove in drotm.f and 36 in ↵julie42-848/+906
drotmg.f
2011-01-04minor fix: add comment to warn that vector and matrix arguments are not ↵julie32-0/+34
referenced when N = 0, or M = 0
2010-08-10Patch provided by the kitware team on Aug 5th (Brad King and Bill Hoffman)julie1-0/+1
Add the install rules and exports the targets. Now one can write find_package(LAPACK 3.2.2) in another project to find either the LAPACK build tree or the install tree.
2010-03-10Take off comment to put xerbla back in BLAS libjulie1-1/+1
2009-09-10Fix bug0023: SROTMG and DROTMG uses deprecated Fortran ASSIGN statement and ↵julie4-26/+64
assigned GOTO statement, actually fixed ROTM also
2009-08-11Add CMAKE support to LAPACKjulie1-0/+143
2009-01-12Following a out-of-bound complaint by gfortranjulie2-4/+4
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.
2009-01-02Last round of modifications to the comments for the generation of the manpagesjulie144-94/+554
2008-12-16(no commit message)julie4-57/+14
2008-10-28Move LAPACK trunk into position.jason153-0/+31722