Commit Graph
65 Commits
Author SHA1 Message Date
NAKATA Maho ac82605ea9 refactor: rename ABS1 statement function to CABS1 for consistency
Several LAPACK, BLAS, and CBLAS source files defined a local statement
function named ABS1 for the complex 1-norm approximation:

    ABS1( X ) = ABS( REAL( X ) ) + ABS( AIMAG( X ) )
    ABS1( X ) = ABS( DBLE( X ) ) + ABS( DIMAG( X ) )

The majority of the codebase already uses CABS1 for this identical
purpose. This commit renames ABS1 to CABS1 in all remaining files
(definition line, declaration line, and all call sites within the
same file) to make the naming consistent across the repository.

A small number of fixed-form lines required continuation-line splits
to stay within the 72-column limit after the rename.

No numerical change. Statement functions are file-local in Fortran,
so there is no ABI or interface impact.

This is a preparatory cleanup before inlining these statement
functions (see issue #1200).
2026-03-28 14:46:42 +09:00
Simon Maertens 794b0ba0ab Fix format specifiers with lines longer than 72 characters. 2026-01-07 12:09:56 +01:00
langou 06f5ba3143 Merge pull request #1155 from sh-zheng/skew-symmetric-presubmit
Add skew-symmetric blas subroutines and tests
2025-11-23 12:38:28 -07:00
sh-zheng 968b45006b Fix error of array's length 2025-10-28 23:07:24 +08:00
sh-zheng fb80127153 Optimize the parsing of SNAME in skew-symmetric blas testing cases 2025-10-28 01:41:58 +08:00
Simon Maertens d2d2625019 Disable constant propagation for the NAG Fortran compiler in BLAS tests. 2025-10-02 16:40:58 +02:00
langou 6b92a7affa Merge pull request #1048 from grisuthedragon/implement-axpby 2025-09-19 09:11:21 -06:00
sh-zheng a0e44d7434 Add skew-symmetric blas subroutines and tests 2025-09-15 20:42:26 +08:00
Mark Gates 97b0bedb32 implicit none in BLAS 2025-08-22 01:02:05 -04:00
Martin Köhler 506f2b3541 Merge branch 'Reference-LAPACK:master' into implement-axpby 2025-04-23 21:31:09 +02:00
Martin Köhler 4c637b8329 Fix the test of xGEMMTR
- make the SRNAME in XERBLA more robust against strings passed from C (e.g. OpenBLAS)
- adjust the maximum length of a function name from 6 to 7 characters
- add a missing parameter in the error output for z/cgemmtr.
2025-02-06 15:20:50 +01:00
Martin Köhler ad70e7218f Tests for C/S/D/ZAXBPY 2024-08-26 16:27:18 +02:00
Martin Köhler 6cdf7bc3a4 Implement AXBPY 2024-08-26 16:27:18 +02:00
Martin Köhler b681b1eaec Add cblas_dgemmtr test 2024-06-24 14:04:03 +02:00
Martin Köhler cb81e003b8 Adjust BLAS test for routine names with at most 7 characters 2024-06-24 14:04:03 +02:00
Martin Köhler 327869db1b Rename GEMMT to GEMMTR in BLAS/
After the discussion on

    https://github.com/Reference-LAPACK/lapack/pull/887

the name changed from xGEMMT to xGEMMTR.
2024-06-24 14:04:03 +02:00
Martin Köhler 6173b6e474 Fix another variable 2024-06-24 14:04:02 +02:00
Martin Köhler 785d734bf5 Fix wrong write 2024-06-24 14:04:02 +02:00
Martin Köhler 6f66c83ae0 Remove useless variable 2024-06-24 14:04:02 +02:00
Martin Köhler 05d01da9f2 Fix missing comma 2024-06-24 14:04:02 +02:00
Martin Köhler 2f80551ce3 Fix further implicit variables 2024-06-24 14:04:02 +02:00
Martin Köhler fb5325d58d Fix implicit variable 2024-06-24 14:04:02 +02:00
Martin Köhler 19b00163aa Add xGEMMT and their test cases
The xGEMMT subroutines are added in the Fortran
API. The tests are updated as well.
2024-06-24 14:04:02 +02:00
Mo Zhou d371e22ff0 Fix the wrong implementation of the new tests for xblat1.f. (Fixes: #963)
Since this is a regression after upgrading from v3.11.0 to v3.12.0, we can
narrow down the range of the bug into the newly added SB1NRM2 subroutine.
According to the buildlog and the documentation in the code, the VALUES(9),
calculated as SXVALS(XX,2) should be infty. But the current code is returning
a zero (or randomly) initialized variable YY, which does not make sense.

In fact, if you go back to the reference implementation, namely the
supplementary material of this paper
  https://dl.acm.org/doi/abs/10.1145/3061665
You can find a similar implementation of the SXVALS function in the
`la_xxvals.F90` file. This patch corrests the test following the reference
code.
2023-12-21 13:58:38 -05:00
Angelika Schwarz 26df4b3599 Improve testing of NRM2
Add tests covering arrays with extreme numbers provided in
Anderson E. (2017)
Algorithm 978: Safe Scaling in the Level 1 BLAS
ACM Trans Math Softw 44:1--28
https://doi.org/10.1145/3061665

[D,S]NRM2 coverage improves
lines     59.1% -> 100.0%
branches  30.0% ->  90.0%.

[DZ,SC]NRM2 coverage improves
lines     67.0% -> 100.0%
branches  41.7% ->  91.7%
2023-11-12 07:44:37 +01:00
Mat Cross 6c876d4a5c Regression test for illegal modification of Y in CGEMV, SGEMV and ZGEMV observed with Apple vecLib on SGEMV and DGEMV. 2021-09-19 13:58:52 +01:00
Mat Cross 6d10d14731 Regression test for illegal modification of Y in DGEMV observed with Apple vecLib. 2021-09-19 12:24:23 +01:00
Igor Zhuravlov f93833ea2a comments unified: EOLs at EOF 2021-04-06 18:07:24 -03:00
Igor Zhuravlov b7eb1941ff comments unified: 'End of' comment: added where omitted 2021-04-06 18:07:24 -03:00
Igor Zhuravlov 5f58f3cae6 comments unified: 'End of' comment: trash removed at the end of line 2021-04-06 18:07:14 -03:00
Julie e18d437924 Making LAPACK's code eternal... no more version and date in source files.
GitHub is now enabling us to track accurately version and date.
No need for this anymore.
2021-03-25 10:16:58 -07:00
Aisha Tammy 5dd47be672 create INDEX64 target 2020-11-03 17:14:48 +00:00
Mat Cross c940e4d202 Just run zero-increment copy tests once, and with INCX/INCY explicitly set to aid tracing. 2020-03-30 13:34:27 +01:00
Mat Cross d107356bff Stripped trailing whitespace. 2020-03-25 10:02:51 +00:00
Mat Cross 0ba87d645e Added test of I?AMAX when there are multiple maxima. 2020-03-25 09:56:47 +00:00
Mat Cross 8dace582fb Added test of I*AMAX when the input vector is constant.
Added test of *COPY when the source and target have increment 0.
2020-03-18 11:55:32 +00:00
Kyle Guinn dd2f632f2e Add PHONY targets 2019-07-27 23:07:37 -05:00
Kyle Guinn be23965929 Handle relative paths consistently
Place built libraries in $(TOPSRCDIR) and refer to their location by
using $(TOPSRCDIR).
2019-07-27 18:48:52 -05:00
Kyle Guinn 33258cb4b2 Switch to POSIX make variable names
Allows us to use the built-in suffix rules where appropriate.

  FORTRAN   -> FC            (POSIX)
  OPTS      -> FFLAGS        (POSIX)
  DRVOPTS   -> FFLAGS_DRV
  NOOPT     -> FFLAGS_NOOPT

  LOADER    -> FC            (use the compiler driver for linking)
  LOADOPTS  -> LDFLAGS       (POSIX)

  ARCH      -> AR            (POSIX)
  ARCHFLAGS -> ARFLAGS       (POSIX)
2019-07-27 18:48:52 -05:00
luzpaz 3fac41ca28 Fix misc. typos
Mostly trivial source code comments.
2017-12-01 06:55:48 -05:00
Julie d97a30482e Updating Version number on files for 3.8.0 2017-11-12 20:15:12 -08:00
Nick Papior dc0e59aff5 Fixed (alot) missing external subroutines and removed "dead" variables
This commit is purely of cleaning up missing externals. Currently there
is no check on EXTERNAL's not used.

Signed-off-by: Nick Papior <nickpapior@gmail.com>
2017-11-05 07:47:18 +01:00
Kyle Guinn 8fce0e24bd Simplify the clean targets
cleanobj:  Remove object files
cleanlib:  Remove libraries
cleanexe:  Remove test and example executables
cleantest: Remove test output and core dumps
clean:     All of the above
2017-02-06 01:07:10 -06:00
Kyle Guinn a203318e67 Add libraries as prerequisites
Use the automatic variable $^ to refer to all prerequisites when
linking or creating an archive.
2017-02-04 22:47:19 -06:00
Kyle Guinn bf47acfddc Consolidate the BLAS/TESTING Makefiles
Move the test inputs into the TESTING dir.
2017-01-22 18:38:38 -06:00
Julie bc6a755be4 Updating version number on source file modified since 3.6.1
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-12-23 15:01:32 -08:00
Julie 3f23bd5d53 merging: Various cleanups to makefiles #84
Contribution by @turboencabulator
Closing #84
2016-11-25 17:03:13 -08:00
Hans Johnson 5333ddd9dc Remove CMake-language block-end command arguments
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block.  This is no longer the preferred style.

NOTE: MUST USE GNU compliant version of sed
Run the following shell code:

for c in else endif endforeach endfunction endmacro endwhile; do
    echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' \
   | xargs -0 gsed -i -f convert.sed \
&& rm convert.sed
2016-07-10 14:38:48 -05:00
Hans Johnson 9dafba6d41 STYLE: Remove trailing whitespace in Fortran files
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-09 11:19:34 -05:00
Hans Johnson 9c7f84bd60 STYLE: Remove trailing whitespace in MISC files
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-09 11:19:33 -05:00