path: root/BLAS/SRC/sgbmv.f
AgeCommit message (Collapse)AuthorFilesLines
2017-06-09BLAS doxygen array parameter comments: use the same format as LAPACKHenning Thielemann1-3/+3
i.e. "A is TYPE array, dimension ( LDx, N )"
2016-12-23Updating version number on source file modified since 3.6.1Julie1-3/+3
This is really old school, but a lot of times we have users sending us copy pasting of codes, and that is the only way to know the version of the code.
2016-07-09STYLE: Remove trailing whitespace in Fortran filesHans Johnson1-8/+8
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 =================================================
2015-11-15Updating version numberjulie1-3/+3
2014-07-12Edited the code of xGBMV, xGEMV and xGEMM by removing the test for an entry oflangou1-16/+12
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 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
2011-11-03Cosmetic changes in Doxygen presentation.julie1-18/+14
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.julie1-8/+4
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 commentsjulie1-115/+195
2011-04-02First pass for BLAS to homgenize notation for transpose (**T) and conjugate ↵julie1-4/+4
transpose (**H) Corresponds to bug0024
2011-01-04minor fix: add comment to warn that vector and matrix arguments are not ↵julie1-0/+1
referenced when N = 0, or M = 0
2009-01-02Last round of modifications to the comments for the generation of the manpagesjulie1-0/+4
2008-10-28Move LAPACK trunk into position.jason1-0/+297