to prevent accuracy loss when REAL or DOUBLE PRECISION types
correspond to an extended precision real kind. These constants
should be sufficient to work with 128-bit extended-IEEE data
type.
Rebuilding the modified source using the default gfortran make.inc
(with gfortran 7.5.0) does not add any new test failures. The
only test failure, which is also present in the master baranch, is:
ZDRGEV3: ZGGEV31 returned INFO= 7.
N= 12, JTYPE= 16, ISEED=( 2855, 3551, 2406, 2393)
Additionally, included a sample build file for quadruple-precision
compilation using gfortran (version 4.7 or later). With this
config file, both REAL and DOUBLE PRECISION are mapped onto
a 128-bit REAL(16) type, with the corresponding change to the
COMPLEX and COMPLEX*16.
There are numerical failure 6 failures for each type, all in
*GBSVX type 6 matrix, with S/D routines losing 4 significant
digits, and C/Z routines 5 digits relative to the expected
result. I am not really qualified to debug this failure ...
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)
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>
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
Allows any combination of types/precisions to be built at once.
Name the lists "SOURCES" instead of "ALLOBJ" since they contain lists of
source files, not object files.
Fix problems in BLAS: Was missing the ${CBLAS3} file set when building
with BLAS_COMPLEX. Was adding ${BLASLIB} as if it were a source file.
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.
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
=================================================
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
=================================================
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.
From Sébastien Villemot:
I attach to this message 5 patches that are currently applied to the
Debian package for LAPACK, and that I think could be usefully merged in
the LAPACK SVN tree.
The patches include fixes for old outstanding bugs in the CBLAS test
programs, fixes for the build system, and fixes for various typos.
Each patch file contains a more detailed description of its purpose.
(1) The routine was writing ZEROs out of bound in some specific cases. This is
corrected. Thanks to Yi Meng (CU Denver) for finding the bug.
(2) Quick exit when KL=KU=0 in this case, the user wants a diagonal matrix,
there is probably no reason to call this routine if one simply wants a diagonal
matrix, but that said we still ought to return a correct answer. A quick exit
makes the trick. The routine was not working otherwise.
The patch has been modified a little by Julie as there were some minors problems.
This also fix the BUILD_TESTING=OFF option problem reported by Marcin on lapack mailing list.
From Sébastien:
Here is a patch to compile lapacke with CMake using an already
existing optimized lapack library instead of forcing the build of the
included one in the tar ball. It applies to the latest lapack svn
trunk.