The goal is to minimize the output of `doxygen -x DOCS/Doxyfile` so that
it contains only the settings specified in CMakeLists.txt. In all
cases, the changed values are intended to match what CMake is generating
when using -DBUILD_HTML_DOCUMENTATION=ON, and ideally the changes should
have no effect.
Comments for ABBREVIATE_BRIEF and EXAMPLE_PATTERNS describe the default
behavior when they are blank, but our blank values show up in the output
of `doxygen -x DOCS/Doxyfile` indicating that blank is not the default
value. Setting values to match the current default behavior should have
no effect, unless Doxygen changes in the future. On the other hand,
MATHJAX_RELPATH has changed and will change again in newer Doxygen
versions.
CMake automatically inserts its own set of EXCLUDE_PATTERNS that
contains none of the patterns previously listed here. Neither the
previous values nor the CMake-generated ones should have any effect due
to our choice of INPUT and FILE_PATTERNS.
MATHJAX_RELPATH, LATEX_CMD_NAME, RTF_HYPERLINKS, and MAN_LINKS all
require some other option (USE_MATHJAX, GENERATE_LATEX, GENERATE_RTF,
and GENERATE_MAN, respectively) to be set to YES to take effect, and all
are set to NO, so these changes should have no effect. Note that the
CMake-generated Doxyfile.man sets MAN_LINKS=YES in addition to
GENERATE_MAN=YES.
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)
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
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
=================================================
From Christoph:
after the changes of the Doxygen config file in SVN revisions 1625
and 1626, routines are grouped together in the documentation, e.g., all
eigenvalue solvers for symmetric matrices in double precision.
Currently, the documentation for all routines in one group is put on
the same HTML page. I find this confusing and it slows my browser.
If every function has its own HTML page, then you can jump to the top
of the page by pressing POS1 to see the function arguments and their
description. Also you can jump to the bottom of the page with END to
see the callgraph of the respective function.
The patch in the attachment enables the SEPARATE_MEMBER_PAGES option
that puts each function documentation on its own HTML page. Please
consider applying this patch.
From Christopher:
I noticed the following errors in the documentation and attached
patches for all of them:
- Sometimes the function name in the docstring \brief does not match the
actual function name (ex: xSYGV*).
- According to the documentation, xLAHRD is obsolete but not deprecated.
- The parameter N in xLA(R)SCL2 is not the number of columns of D.
Also, I updated the Doxyfile (doxygen -u DOCS/Doxyfile) and removed
the missing DOT_FONTNAME to get rid of the Doxygen warnings.
(1st commit)
-> File modified: DOCS/Doxyfile --
- Doxygen documentation
The Doxygen "project version" is still 3.4.2. The attached patch bumps
this to 3.6.0.
-> let's be ready!
- Doxygen documentation
The Doxygen configuration file uses multiple obsolete tags and warnings
are shown right after starting Doxygen. The warnings are easy to see if
you set "QUIET = YES" in DOCS/Doxyfile.
-> set "QUIET = YES"
-> File modified: SRC/*larfgp.f
It says "non-negatibe" in the documentation of xLARFGP.
-> Fixed typo
-> File modified: SRC/*orcsd2by1.f SRC/*uncsd2by1.f
The parameter M in the xORCSD2BY1 is not the number of columns of X and
there is no X12 (parameter P).
-> Fixed
-> File modified: LAPACKE/src/CMakeLists.txt
The C interfaces for the deprecated GSVD routines are still built with
cmake -DBUILD_DEPRECATED=OFF. This causes a linker error with cmake
-DBUILD_TESTING=ON as soon as the Fortran functions are not found in
liblapack.so.
-> Add a if(BUILD_DEPRECATED)
-> File modified: trunk/LAPACKE/include/lapacke.h
The C declaration (lapacke.h:11840-11843) for xGGSVD3 is in a block
of #defines for LAPACK 3.2.X (see lapacke.h:12089,12122).
-> moved them down
While looking at the new lapack version (v3.4.1) and going through the routines on http://www.netlib.org/lapack/lapack_routine/, we found some errors and thought that we should report them. Below is the list of the errors.
====================================================================
(1) Should be "\ingroup complex16OTHERsolve" and not "\ingroup complex16OTHERcomputational" because they are driver routines; in addition, in the line just below SUBROUTINE <routinename>, it should be driver routine:
sgtsv.f
sgtsvx.f
sptsv.f
sptsvx.f
dgtsv.f
dgtsvx.f
dptsv.f
dptsvx.f
cgtsv.f
cgtsvx.f
cptsv.f
cptsvx.f
zgtsv.f
zgtsvx.f
zptsv.f
zptsvx.f
(2) Should be "\ingroup complex16SYsolve" and not "\ingroup complex16OTHERcomputational" because they are driver routines; in addition, in the line just below SUBROUTINE <routinename>, it should be driver routine:
ssysvxx.f
dsysvxx.f
(3) Should be "\ingroup realOTHERcomputational" and not ""\ingroup auxOTHERcomputational":
spttrf.f
(4) Should be "\ingroup doubleOTHERcomputational" and not ""\ingroup auxOTHERcomputational":
dpttrf.f
(5) Should be "symmetric matrix" and not "Hermitian indefinite matrix" in "\par Purpose:"
ssytri2.f
dsytri2.f
csytri2.f
zsytri2.f
(6) Should be "\ingroup realGEsing" and not "\ingroup realGEcomputational":
sgejsv.f
dgejsv.f