From eb81388df76ddb91e370a4524d4226697ea3a3ef Mon Sep 17 00:00:00 2001 From: Erik Lindahl Date: Wed, 8 Jul 2015 22:20:42 +0200 Subject: [PATCH] Moved linear algebra sources to C++ Introduced std:: prefix for math, ctype and string functions. BLAS/LAPACK source have also been updated and fortran-style checks for NaN replaced with std::isnan(), and unused variables removed. The only reason for moving BLAS/LAPACK to C++ is that it will eventually help us avoid the C compiler entirely in Gromacs. Change-Id: I5432c22228d4df385edad9076f88c8f14a0c94c6 --- docs/doxygen/Doxyfile-common.cmakein | 2 + docs/doxygen/suppressions.txt | 4 +- src/gromacs/linearalgebra/CMakeLists.txt | 8 +- .../{eigensolver.c => eigensolver.cpp} | 6 +- .../linearalgebra/{gmx_arpack.c => gmx_arpack.cpp} | 382 ++++++++++----------- .../linearalgebra/gmx_blas/{dasum.c => dasum.cpp} | 12 +- .../linearalgebra/gmx_blas/{daxpy.c => daxpy.cpp} | 0 .../linearalgebra/gmx_blas/{dcopy.c => dcopy.cpp} | 0 .../linearalgebra/gmx_blas/{ddot.c => ddot.cpp} | 0 .../linearalgebra/gmx_blas/{dgemm.c => dgemm.cpp} | 44 +-- .../linearalgebra/gmx_blas/{dgemv.c => dgemv.cpp} | 20 +- .../linearalgebra/gmx_blas/{dger.c => dger.cpp} | 8 +- .../linearalgebra/gmx_blas/{dnrm2.c => dnrm2.cpp} | 6 +- .../linearalgebra/gmx_blas/{drot.c => drot.cpp} | 0 .../linearalgebra/gmx_blas/{dscal.c => dscal.cpp} | 0 .../linearalgebra/gmx_blas/{dswap.c => dswap.cpp} | 0 .../linearalgebra/gmx_blas/{dsymv.c => dsymv.cpp} | 14 +- .../linearalgebra/gmx_blas/{dsyr2.c => dsyr2.cpp} | 16 +- .../gmx_blas/{dsyr2k.c => dsyr2k.cpp} | 43 +-- .../linearalgebra/gmx_blas/{dtrmm.c => dtrmm.cpp} | 31 +- .../linearalgebra/gmx_blas/{dtrmv.c => dtrmv.cpp} | 14 +- .../linearalgebra/gmx_blas/{dtrsm.c => dtrsm.cpp} | 38 +- .../gmx_blas/{idamax.c => idamax.cpp} | 8 +- .../gmx_blas/{isamax.c => isamax.cpp} | 8 +- .../linearalgebra/gmx_blas/{sasum.c => sasum.cpp} | 12 +- .../linearalgebra/gmx_blas/{saxpy.c => saxpy.cpp} | 0 .../linearalgebra/gmx_blas/{scopy.c => scopy.cpp} | 0 .../linearalgebra/gmx_blas/{sdot.c => sdot.cpp} | 0 .../linearalgebra/gmx_blas/{sgemm.c => sgemm.cpp} | 44 +-- .../linearalgebra/gmx_blas/{sgemv.c => sgemv.cpp} | 20 +- .../linearalgebra/gmx_blas/{sger.c => sger.cpp} | 8 +- .../linearalgebra/gmx_blas/{snrm2.c => snrm2.cpp} | 6 +- .../linearalgebra/gmx_blas/{srot.c => srot.cpp} | 0 .../linearalgebra/gmx_blas/{sscal.c => sscal.cpp} | 0 .../linearalgebra/gmx_blas/{sswap.c => sswap.cpp} | 0 .../linearalgebra/gmx_blas/{ssymv.c => ssymv.cpp} | 14 +- .../linearalgebra/gmx_blas/{ssyr2.c => ssyr2.cpp} | 16 +- .../gmx_blas/{ssyr2k.c => ssyr2k.cpp} | 42 +-- .../linearalgebra/gmx_blas/{strmm.c => strmm.cpp} | 31 +- .../linearalgebra/gmx_blas/{strmv.c => strmv.cpp} | 14 +- .../linearalgebra/gmx_blas/{strsm.c => strsm.cpp} | 38 +- .../gmx_lapack/{dbdsdc.c => dbdsdc.cpp} | 20 +- .../gmx_lapack/{dbdsqr.c => dbdsqr.cpp} | 77 ++--- .../gmx_lapack/{dgebd2.c => dgebd2.cpp} | 1 - .../gmx_lapack/{dgebrd.c => dgebrd.cpp} | 0 .../gmx_lapack/{dgelq2.c => dgelq2.cpp} | 0 .../gmx_lapack/{dgelqf.c => dgelqf.cpp} | 2 +- .../gmx_lapack/{dgeqr2.c => dgeqr2.cpp} | 0 .../gmx_lapack/{dgeqrf.c => dgeqrf.cpp} | 0 .../gmx_lapack/{dgesdd.c => dgesdd.cpp} | 24 +- .../gmx_lapack/{dgetf2.c => dgetf2.cpp} | 7 +- .../gmx_lapack/{dgetrf.c => dgetrf.cpp} | 0 .../gmx_lapack/{dgetri.c => dgetri.cpp} | 0 .../gmx_lapack/{dgetrs.c => dgetrs.cpp} | 0 .../gmx_lapack/{dlabrd.c => dlabrd.cpp} | 2 +- .../gmx_lapack/{dlacpy.c => dlacpy.cpp} | 4 +- .../gmx_lapack/{dlae2.c => dlae2.cpp} | 14 +- .../gmx_lapack/{dlaebz.c => dlaebz.cpp} | 12 +- .../gmx_lapack/{dlaed6.c => dlaed6.cpp} | 36 +- .../gmx_lapack/{dlaev2.c => dlaev2.cpp} | 22 +- .../gmx_lapack/{dlagtf.c => dlagtf.cpp} | 21 +- .../gmx_lapack/{dlagts.c => dlagts.cpp} | 41 ++- .../gmx_lapack/{dlamrg.c => dlamrg.cpp} | 0 .../gmx_lapack/{dlange.c => dlange.cpp} | 14 +- .../gmx_lapack/{dlanst.c => dlanst.cpp} | 22 +- .../gmx_lapack/{dlansy.c => dlansy.cpp} | 16 +- .../gmx_lapack/{dlapy2.c => dlapy2.cpp} | 10 +- .../gmx_lapack/{dlar1vx.c => dlar1vx.cpp} | 41 ++- .../gmx_lapack/{dlarf.c => dlarf.cpp} | 10 +- .../gmx_lapack/{dlarfb.c => dlarfb.cpp} | 0 .../gmx_lapack/{dlarfg.c => dlarfg.cpp} | 8 +- .../gmx_lapack/{dlarft.c => dlarft.cpp} | 6 +- .../gmx_lapack/{dlarnv.c => dlarnv.cpp} | 7 +- .../gmx_lapack/{dlarrbx.c => dlarrbx.cpp} | 42 ++- .../gmx_lapack/{dlarrex.c => dlarrex.cpp} | 37 +- .../gmx_lapack/{dlarrfx.c => dlarrfx.cpp} | 27 +- .../gmx_lapack/{dlarrvx.c => dlarrvx.cpp} | 27 +- .../gmx_lapack/{dlartg.c => dlartg.cpp} | 30 +- .../gmx_lapack/{dlaruv.c => dlaruv.cpp} | 2 +- .../gmx_lapack/{dlas2.c => dlas2.cpp} | 20 +- .../gmx_lapack/{dlascl.c => dlascl.cpp} | 10 +- .../gmx_lapack/{dlasd0.c => dlasd0.cpp} | 1 - .../gmx_lapack/{dlasd1.c => dlasd1.cpp} | 11 +- .../gmx_lapack/{dlasd2.c => dlasd2.cpp} | 16 +- .../gmx_lapack/{dlasd3.c => dlasd3.cpp} | 20 +- .../gmx_lapack/{dlasd4.c => dlasd4.cpp} | 112 +++--- .../gmx_lapack/{dlasd5.c => dlasd5.cpp} | 18 +- .../gmx_lapack/{dlasd6.c => dlasd6.cpp} | 8 +- .../gmx_lapack/{dlasd7.c => dlasd7.cpp} | 18 +- .../gmx_lapack/{dlasd8.c => dlasd8.cpp} | 30 +- .../gmx_lapack/{dlasda.c => dlasda.cpp} | 2 - .../gmx_lapack/{dlasdq.c => dlasdq.cpp} | 4 +- .../gmx_lapack/{dlasdt.c => dlasdt.cpp} | 4 +- .../gmx_lapack/{dlaset.c => dlaset.cpp} | 4 +- .../gmx_lapack/{dlasq1.c => dlasq1.cpp} | 14 +- .../gmx_lapack/{dlasq2.c => dlasq2.cpp} | 19 +- .../gmx_lapack/{dlasq3.c => dlasq3.cpp} | 8 +- .../gmx_lapack/{dlasq4.c => dlasq4.cpp} | 45 ++- .../gmx_lapack/{dlasq5.c => dlasq5.cpp} | 2 +- .../gmx_lapack/{dlasq6.c => dlasq6.cpp} | 10 +- .../gmx_lapack/{dlasr.c => dlasr.cpp} | 29 +- .../gmx_lapack/{dlasrt.c => dlasrt.cpp} | 1 - .../gmx_lapack/{dlasrt2.c => dlasrt2.cpp} | 3 +- .../gmx_lapack/{dlassq.c => dlassq.cpp} | 6 +- .../gmx_lapack/{dlasv2.c => dlasv2.cpp} | 26 +- .../gmx_lapack/{dlaswp.c => dlaswp.cpp} | 0 .../gmx_lapack/{dlatrd.c => dlatrd.cpp} | 4 +- .../gmx_lapack/{dorg2r.c => dorg2r.cpp} | 2 +- .../gmx_lapack/{dorgbr.c => dorgbr.cpp} | 0 .../gmx_lapack/{dorgl2.c => dorgl2.cpp} | 0 .../gmx_lapack/{dorglq.c => dorglq.cpp} | 0 .../gmx_lapack/{dorgqr.c => dorgqr.cpp} | 0 .../gmx_lapack/{dorm2l.c => dorm2l.cpp} | 1 - .../gmx_lapack/{dorm2r.c => dorm2r.cpp} | 8 +- .../gmx_lapack/{dormbr.c => dormbr.cpp} | 0 .../gmx_lapack/{dorml2.c => dorml2.cpp} | 6 +- .../gmx_lapack/{dormlq.c => dormlq.cpp} | 3 - .../gmx_lapack/{dormql.c => dormql.cpp} | 3 - .../gmx_lapack/{dormqr.c => dormqr.cpp} | 3 - .../gmx_lapack/{dormtr.c => dormtr.cpp} | 0 .../gmx_lapack/{dstebz.c => dstebz.cpp} | 31 +- .../gmx_lapack/{dstegr.c => dstegr.cpp} | 10 +- .../gmx_lapack/{dstein.c => dstein.cpp} | 19 +- .../gmx_lapack/{dsteqr.c => dsteqr.cpp} | 26 +- .../gmx_lapack/{dsterf.c => dsterf.cpp} | 30 +- .../gmx_lapack/{dstevr.c => dstevr.cpp} | 0 .../gmx_lapack/{dsyevr.c => dsyevr.cpp} | 53 +-- .../gmx_lapack/{dsytd2.c => dsytd2.cpp} | 10 +- .../gmx_lapack/{dsytrd.c => dsytrd.cpp} | 1 - .../gmx_lapack/{dtrti2.c => dtrti2.cpp} | 0 .../gmx_lapack/{dtrtri.c => dtrtri.cpp} | 4 +- .../gmx_lapack/{ilasrt2.c => ilasrt2.cpp} | 0 .../gmx_lapack/{sbdsdc.c => sbdsdc.cpp} | 19 +- .../gmx_lapack/{sbdsqr.c => sbdsqr.cpp} | 77 ++--- .../gmx_lapack/{sgebd2.c => sgebd2.cpp} | 1 - .../gmx_lapack/{sgebrd.c => sgebrd.cpp} | 0 .../gmx_lapack/{sgelq2.c => sgelq2.cpp} | 0 .../gmx_lapack/{sgelqf.c => sgelqf.cpp} | 2 +- .../gmx_lapack/{sgeqr2.c => sgeqr2.cpp} | 0 .../gmx_lapack/{sgeqrf.c => sgeqrf.cpp} | 0 .../gmx_lapack/{sgesdd.c => sgesdd.cpp} | 24 +- .../gmx_lapack/{sgetf2.c => sgetf2.cpp} | 7 +- .../gmx_lapack/{sgetrf.c => sgetrf.cpp} | 0 .../gmx_lapack/{sgetri.c => sgetri.cpp} | 0 .../gmx_lapack/{sgetrs.c => sgetrs.cpp} | 0 .../gmx_lapack/{slabrd.c => slabrd.cpp} | 2 +- .../gmx_lapack/{slacpy.c => slacpy.cpp} | 4 +- .../gmx_lapack/{slae2.c => slae2.cpp} | 14 +- .../gmx_lapack/{slaebz.c => slaebz.cpp} | 12 +- .../gmx_lapack/{slaed6.c => slaed6.cpp} | 36 +- .../gmx_lapack/{slaev2.c => slaev2.cpp} | 22 +- .../gmx_lapack/{slagtf.c => slagtf.cpp} | 21 +- .../gmx_lapack/{slagts.c => slagts.cpp} | 41 ++- .../gmx_lapack/{slamrg.c => slamrg.cpp} | 0 .../gmx_lapack/{slange.c => slange.cpp} | 15 +- .../gmx_lapack/{slanst.c => slanst.cpp} | 23 +- .../gmx_lapack/{slansy.c => slansy.cpp} | 16 +- .../gmx_lapack/{slapy2.c => slapy2.cpp} | 10 +- .../gmx_lapack/{slar1vx.c => slar1vx.cpp} | 41 ++- .../gmx_lapack/{slarf.c => slarf.cpp} | 10 +- .../gmx_lapack/{slarfb.c => slarfb.cpp} | 0 .../gmx_lapack/{slarfg.c => slarfg.cpp} | 8 +- .../gmx_lapack/{slarft.c => slarft.cpp} | 6 +- .../gmx_lapack/{slarnv.c => slarnv.cpp} | 7 +- .../gmx_lapack/{slarrbx.c => slarrbx.cpp} | 42 ++- .../gmx_lapack/{slarrex.c => slarrex.cpp} | 37 +- .../gmx_lapack/{slarrfx.c => slarrfx.cpp} | 27 +- .../gmx_lapack/{slarrvx.c => slarrvx.cpp} | 26 +- .../gmx_lapack/{slartg.c => slartg.cpp} | 30 +- .../gmx_lapack/{slaruv.c => slaruv.cpp} | 2 +- .../gmx_lapack/{slas2.c => slas2.cpp} | 20 +- .../gmx_lapack/{slascl.c => slascl.cpp} | 10 +- .../gmx_lapack/{slasd0.c => slasd0.cpp} | 1 - .../gmx_lapack/{slasd1.c => slasd1.cpp} | 11 +- .../gmx_lapack/{slasd2.c => slasd2.cpp} | 16 +- .../gmx_lapack/{slasd3.c => slasd3.cpp} | 20 +- .../gmx_lapack/{slasd4.c => slasd4.cpp} | 112 +++--- .../gmx_lapack/{slasd5.c => slasd5.cpp} | 18 +- .../gmx_lapack/{slasd6.c => slasd6.cpp} | 8 +- .../gmx_lapack/{slasd7.c => slasd7.cpp} | 18 +- .../gmx_lapack/{slasd8.c => slasd8.cpp} | 30 +- .../gmx_lapack/{slasda.c => slasda.cpp} | 2 - .../gmx_lapack/{slasdq.c => slasdq.cpp} | 4 +- .../gmx_lapack/{slasdt.c => slasdt.cpp} | 4 +- .../gmx_lapack/{slaset.c => slaset.cpp} | 4 +- .../gmx_lapack/{slasq1.c => slasq1.cpp} | 14 +- .../gmx_lapack/{slasq2.c => slasq2.cpp} | 19 +- .../gmx_lapack/{slasq3.c => slasq3.cpp} | 8 +- .../gmx_lapack/{slasq4.c => slasq4.cpp} | 45 ++- .../gmx_lapack/{slasq5.c => slasq5.cpp} | 2 +- .../gmx_lapack/{slasq6.c => slasq6.cpp} | 10 +- .../gmx_lapack/{slasr.c => slasr.cpp} | 29 +- .../gmx_lapack/{slasrt.c => slasrt.cpp} | 1 - .../gmx_lapack/{slasrt2.c => slasrt2.cpp} | 1 - .../gmx_lapack/{slassq.c => slassq.cpp} | 6 +- .../gmx_lapack/{slasv2.c => slasv2.cpp} | 26 +- .../gmx_lapack/{slaswp.c => slaswp.cpp} | 0 .../gmx_lapack/{slatrd.c => slatrd.cpp} | 4 +- .../gmx_lapack/{sorg2r.c => sorg2r.cpp} | 2 +- .../gmx_lapack/{sorgbr.c => sorgbr.cpp} | 0 .../gmx_lapack/{sorgl2.c => sorgl2.cpp} | 0 .../gmx_lapack/{sorglq.c => sorglq.cpp} | 0 .../gmx_lapack/{sorgqr.c => sorgqr.cpp} | 0 .../gmx_lapack/{sorm2l.c => sorm2l.cpp} | 1 - .../gmx_lapack/{sorm2r.c => sorm2r.cpp} | 8 +- .../gmx_lapack/{sormbr.c => sormbr.cpp} | 0 .../gmx_lapack/{sorml2.c => sorml2.cpp} | 6 +- .../gmx_lapack/{sormlq.c => sormlq.cpp} | 3 - .../gmx_lapack/{sormql.c => sormql.cpp} | 5 +- .../gmx_lapack/{sormqr.c => sormqr.cpp} | 3 - .../gmx_lapack/{sormtr.c => sormtr.cpp} | 0 .../gmx_lapack/{sstebz.c => sstebz.cpp} | 29 +- .../gmx_lapack/{sstegr.c => sstegr.cpp} | 10 +- .../gmx_lapack/{sstein.c => sstein.cpp} | 19 +- .../gmx_lapack/{ssteqr.c => ssteqr.cpp} | 26 +- .../gmx_lapack/{ssterf.c => ssterf.cpp} | 30 +- .../gmx_lapack/{sstevr.c => sstevr.cpp} | 0 .../gmx_lapack/{ssyevr.c => ssyevr.cpp} | 53 +-- .../gmx_lapack/{ssytd2.c => ssytd2.cpp} | 10 +- .../gmx_lapack/{ssytrd.c => ssytrd.cpp} | 1 - .../gmx_lapack/{strti2.c => strti2.cpp} | 0 .../gmx_lapack/{strtri.c => strtri.cpp} | 4 +- src/gromacs/linearalgebra/{matrix.c => matrix.cpp} | 6 +- src/gromacs/linearalgebra/{nrjac.c => nrjac.cpp} | 24 +- .../{sparsematrix.c => sparsematrix.cpp} | 7 +- 225 files changed, 1577 insertions(+), 1841 deletions(-) rename src/gromacs/linearalgebra/{eigensolver.c => eigensolver.cpp} (98%) rename src/gromacs/linearalgebra/{gmx_arpack.c => gmx_arpack.cpp} (92%) rename src/gromacs/linearalgebra/gmx_blas/{dasum.c => dasum.cpp} (75%) rename src/gromacs/linearalgebra/gmx_blas/{daxpy.c => daxpy.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{dcopy.c => dcopy.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{ddot.c => ddot.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{dgemm.c => dgemm.cpp} (73%) rename src/gromacs/linearalgebra/gmx_blas/{dgemv.c => dgemv.cpp} (81%) rename src/gromacs/linearalgebra/gmx_blas/{dger.c => dger.cpp} (87%) rename src/gromacs/linearalgebra/gmx_blas/{dnrm2.c => dnrm2.cpp} (90%) rename src/gromacs/linearalgebra/gmx_blas/{drot.c => drot.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{dscal.c => dscal.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{dswap.c => dswap.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{dsymv.c => dsymv.cpp} (93%) rename src/gromacs/linearalgebra/gmx_blas/{dsyr2.c => dsyr2.cpp} (85%) rename src/gromacs/linearalgebra/gmx_blas/{dsyr2k.c => dsyr2k.cpp} (76%) rename src/gromacs/linearalgebra/gmx_blas/{dtrmm.c => dtrmm.cpp} (89%) rename src/gromacs/linearalgebra/gmx_blas/{dtrmv.c => dtrmv.cpp} (93%) rename src/gromacs/linearalgebra/gmx_blas/{dtrsm.c => dtrsm.cpp} (80%) rename src/gromacs/linearalgebra/gmx_blas/{idamax.c => idamax.cpp} (85%) rename src/gromacs/linearalgebra/gmx_blas/{isamax.c => isamax.cpp} (85%) rename src/gromacs/linearalgebra/gmx_blas/{sasum.c => sasum.cpp} (74%) rename src/gromacs/linearalgebra/gmx_blas/{saxpy.c => saxpy.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{scopy.c => scopy.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{sdot.c => sdot.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{sgemm.c => sgemm.cpp} (72%) rename src/gromacs/linearalgebra/gmx_blas/{sgemv.c => sgemv.cpp} (83%) rename src/gromacs/linearalgebra/gmx_blas/{sger.c => sger.cpp} (87%) rename src/gromacs/linearalgebra/gmx_blas/{snrm2.c => snrm2.cpp} (90%) rename src/gromacs/linearalgebra/gmx_blas/{srot.c => srot.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{sscal.c => sscal.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{sswap.c => sswap.cpp} (100%) rename src/gromacs/linearalgebra/gmx_blas/{ssymv.c => ssymv.cpp} (93%) rename src/gromacs/linearalgebra/gmx_blas/{ssyr2.c => ssyr2.cpp} (85%) rename src/gromacs/linearalgebra/gmx_blas/{ssyr2k.c => ssyr2k.cpp} (78%) rename src/gromacs/linearalgebra/gmx_blas/{strmm.c => strmm.cpp} (89%) rename src/gromacs/linearalgebra/gmx_blas/{strmv.c => strmv.cpp} (93%) rename src/gromacs/linearalgebra/gmx_blas/{strsm.c => strsm.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{dbdsdc.c => dbdsdc.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{dbdsqr.c => dbdsqr.cpp} (86%) rename src/gromacs/linearalgebra/gmx_lapack/{dgebd2.c => dgebd2.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dgebrd.c => dgebrd.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dgelq2.c => dgelq2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dgelqf.c => dgelqf.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dgeqr2.c => dgeqr2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dgeqrf.c => dgeqrf.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dgesdd.c => dgesdd.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{dgetf2.c => dgetf2.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{dgetrf.c => dgetrf.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dgetri.c => dgetri.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dgetrs.c => dgetrs.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dlabrd.c => dlabrd.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlacpy.c => dlacpy.cpp} (90%) rename src/gromacs/linearalgebra/gmx_lapack/{dlae2.c => dlae2.cpp} (76%) rename src/gromacs/linearalgebra/gmx_lapack/{dlaebz.c => dlaebz.cpp} (96%) rename src/gromacs/linearalgebra/gmx_lapack/{dlaed6.c => dlaed6.cpp} (78%) rename src/gromacs/linearalgebra/gmx_lapack/{dlaev2.c => dlaev2.cpp} (76%) rename src/gromacs/linearalgebra/gmx_lapack/{dlagtf.c => dlagtf.cpp} (77%) rename src/gromacs/linearalgebra/gmx_lapack/{dlagts.c => dlagts.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{dlamrg.c => dlamrg.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dlange.c => dlange.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{dlanst.c => dlanst.cpp} (69%) rename src/gromacs/linearalgebra/gmx_lapack/{dlansy.c => dlansy.cpp} (87%) rename src/gromacs/linearalgebra/gmx_lapack/{dlapy2.c => dlapy2.cpp} (68%) rename src/gromacs/linearalgebra/gmx_lapack/{dlar1vx.c => dlar1vx.cpp} (82%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarf.c => dlarf.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarfb.c => dlarfb.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarfg.c => dlarfg.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarft.c => dlarft.cpp} (96%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarnv.c => dlarnv.cpp} (82%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarrbx.c => dlarrbx.cpp} (90%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarrex.c => dlarrex.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarrfx.c => dlarrfx.cpp} (74%) rename src/gromacs/linearalgebra/gmx_lapack/{dlarrvx.c => dlarrvx.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{dlartg.c => dlartg.cpp} (70%) rename src/gromacs/linearalgebra/gmx_lapack/{dlaruv.c => dlaruv.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlas2.c => dlas2.cpp} (70%) rename src/gromacs/linearalgebra/gmx_lapack/{dlascl.c => dlascl.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd0.c => dlasd0.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd1.c => dlasd1.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd2.c => dlasd2.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd3.c => dlasd3.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd4.c => dlasd4.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd5.c => dlasd5.cpp} (73%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd6.c => dlasd6.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd7.c => dlasd7.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasd8.c => dlasd8.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasda.c => dlasda.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasdq.c => dlasdq.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasdt.c => dlasdt.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{dlaset.c => dlaset.cpp} (91%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasq1.c => dlasq1.cpp} (86%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasq2.c => dlasq2.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasq3.c => dlasq3.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasq4.c => dlasq4.cpp} (78%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasq5.c => dlasq5.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasq6.c => dlasq6.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasr.c => dlasr.cpp} (85%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasrt.c => dlasrt.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasrt2.c => dlasrt2.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dlassq.c => dlassq.cpp} (85%) rename src/gromacs/linearalgebra/gmx_lapack/{dlasv2.c => dlasv2.cpp} (84%) rename src/gromacs/linearalgebra/gmx_lapack/{dlaswp.c => dlaswp.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dlatrd.c => dlatrd.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dorg2r.c => dorg2r.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dorgbr.c => dorgbr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dorgl2.c => dorgl2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dorglq.c => dorglq.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dorgqr.c => dorgqr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dorm2l.c => dorm2l.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dorm2r.c => dorm2r.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{dormbr.c => dormbr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dorml2.c => dorml2.cpp} (90%) rename src/gromacs/linearalgebra/gmx_lapack/{dormlq.c => dormlq.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dormql.c => dormql.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dormqr.c => dormqr.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{dormtr.c => dormtr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dstebz.c => dstebz.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{dstegr.c => dstegr.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{dstein.c => dstein.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{dsteqr.c => dsteqr.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{dsterf.c => dsterf.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{dstevr.c => dstevr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dsyevr.c => dsyevr.cpp} (83%) rename src/gromacs/linearalgebra/gmx_lapack/{dsytd2.c => dsytd2.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{dsytrd.c => dsytrd.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{dtrti2.c => dtrti2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{dtrtri.c => dtrtri.cpp} (96%) rename src/gromacs/linearalgebra/gmx_lapack/{ilasrt2.c => ilasrt2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sbdsdc.c => sbdsdc.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{sbdsqr.c => sbdsqr.cpp} (85%) rename src/gromacs/linearalgebra/gmx_lapack/{sgebd2.c => sgebd2.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{sgebrd.c => sgebrd.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sgelq2.c => sgelq2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sgelqf.c => sgelqf.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{sgeqr2.c => sgeqr2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sgeqrf.c => sgeqrf.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sgesdd.c => sgesdd.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{sgetf2.c => sgetf2.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{sgetrf.c => sgetrf.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sgetri.c => sgetri.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sgetrs.c => sgetrs.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{slabrd.c => slabrd.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slacpy.c => slacpy.cpp} (90%) rename src/gromacs/linearalgebra/gmx_lapack/{slae2.c => slae2.cpp} (76%) rename src/gromacs/linearalgebra/gmx_lapack/{slaebz.c => slaebz.cpp} (96%) rename src/gromacs/linearalgebra/gmx_lapack/{slaed6.c => slaed6.cpp} (78%) rename src/gromacs/linearalgebra/gmx_lapack/{slaev2.c => slaev2.cpp} (76%) rename src/gromacs/linearalgebra/gmx_lapack/{slagtf.c => slagtf.cpp} (77%) rename src/gromacs/linearalgebra/gmx_lapack/{slagts.c => slagts.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{slamrg.c => slamrg.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{slange.c => slange.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{slanst.c => slanst.cpp} (69%) rename src/gromacs/linearalgebra/gmx_lapack/{slansy.c => slansy.cpp} (87%) rename src/gromacs/linearalgebra/gmx_lapack/{slapy2.c => slapy2.cpp} (68%) rename src/gromacs/linearalgebra/gmx_lapack/{slar1vx.c => slar1vx.cpp} (82%) rename src/gromacs/linearalgebra/gmx_lapack/{slarf.c => slarf.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{slarfb.c => slarfb.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{slarfg.c => slarfg.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{slarft.c => slarft.cpp} (96%) rename src/gromacs/linearalgebra/gmx_lapack/{slarnv.c => slarnv.cpp} (82%) rename src/gromacs/linearalgebra/gmx_lapack/{slarrbx.c => slarrbx.cpp} (90%) rename src/gromacs/linearalgebra/gmx_lapack/{slarrex.c => slarrex.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{slarrfx.c => slarrfx.cpp} (74%) rename src/gromacs/linearalgebra/gmx_lapack/{slarrvx.c => slarrvx.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{slartg.c => slartg.cpp} (69%) rename src/gromacs/linearalgebra/gmx_lapack/{slaruv.c => slaruv.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slas2.c => slas2.cpp} (70%) rename src/gromacs/linearalgebra/gmx_lapack/{slascl.c => slascl.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd0.c => slasd0.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd1.c => slasd1.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd2.c => slasd2.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd3.c => slasd3.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd4.c => slasd4.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd5.c => slasd5.cpp} (73%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd6.c => slasd6.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd7.c => slasd7.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{slasd8.c => slasd8.cpp} (81%) rename src/gromacs/linearalgebra/gmx_lapack/{slasda.c => slasda.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slasdq.c => slasdq.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{slasdt.c => slasdt.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{slaset.c => slaset.cpp} (91%) rename src/gromacs/linearalgebra/gmx_lapack/{slasq1.c => slasq1.cpp} (86%) rename src/gromacs/linearalgebra/gmx_lapack/{slasq2.c => slasq2.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{slasq3.c => slasq3.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{slasq4.c => slasq4.cpp} (78%) rename src/gromacs/linearalgebra/gmx_lapack/{slasq5.c => slasq5.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slasq6.c => slasq6.cpp} (93%) rename src/gromacs/linearalgebra/gmx_lapack/{slasr.c => slasr.cpp} (85%) rename src/gromacs/linearalgebra/gmx_lapack/{slasrt.c => slasrt.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slasrt2.c => slasrt2.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{slassq.c => slassq.cpp} (85%) rename src/gromacs/linearalgebra/gmx_lapack/{slasv2.c => slasv2.cpp} (84%) rename src/gromacs/linearalgebra/gmx_lapack/{slaswp.c => slaswp.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{slatrd.c => slatrd.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{sorg2r.c => sorg2r.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{sorgbr.c => sorgbr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sorgl2.c => sorgl2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sorglq.c => sorglq.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sorgqr.c => sorgqr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sorm2l.c => sorm2l.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{sorm2r.c => sorm2r.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{sormbr.c => sormbr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sorml2.c => sorml2.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{sormlq.c => sormlq.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{sormql.c => sormql.cpp} (97%) rename src/gromacs/linearalgebra/gmx_lapack/{sormqr.c => sormqr.cpp} (98%) rename src/gromacs/linearalgebra/gmx_lapack/{sormtr.c => sormtr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{sstebz.c => sstebz.cpp} (94%) rename src/gromacs/linearalgebra/gmx_lapack/{sstegr.c => sstegr.cpp} (95%) rename src/gromacs/linearalgebra/gmx_lapack/{sstein.c => sstein.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{ssteqr.c => ssteqr.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{ssterf.c => ssterf.cpp} (89%) rename src/gromacs/linearalgebra/gmx_lapack/{sstevr.c => sstevr.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{ssyevr.c => ssyevr.cpp} (83%) rename src/gromacs/linearalgebra/gmx_lapack/{ssytd2.c => ssytd2.cpp} (92%) rename src/gromacs/linearalgebra/gmx_lapack/{ssytrd.c => ssytrd.cpp} (99%) rename src/gromacs/linearalgebra/gmx_lapack/{strti2.c => strti2.cpp} (100%) rename src/gromacs/linearalgebra/gmx_lapack/{strtri.c => strtri.cpp} (96%) rename src/gromacs/linearalgebra/{matrix.c => matrix.cpp} (98%) rename src/gromacs/linearalgebra/{nrjac.c => nrjac.cpp} (90%) rename src/gromacs/linearalgebra/{sparsematrix.c => sparsematrix.cpp} (98%) diff --git a/docs/doxygen/Doxyfile-common.cmakein b/docs/doxygen/Doxyfile-common.cmakein index 8a87e9b152..7e1770a929 100644 --- a/docs/doxygen/Doxyfile-common.cmakein +++ b/docs/doxygen/Doxyfile-common.cmakein @@ -12,6 +12,8 @@ EXAMPLE_PATH = @CMAKE_SOURCE_DIR@ RECURSIVE = YES EXCLUDE = @CMAKE_SOURCE_DIR@/src/contrib \ @CMAKE_SOURCE_DIR@/src/external \ + @CMAKE_SOURCE_DIR@/src/gromacs/linearalgebra/gmx_blas \ + @CMAKE_SOURCE_DIR@/src/gromacs/linearalgebra/gmx_lapack \ @CMAKE_SOURCE_DIR@/src/gromacs/selection/parser.cpp \ @CMAKE_SOURCE_DIR@/src/gromacs/selection/parser.h \ @CMAKE_SOURCE_DIR@/src/gromacs/selection/scanner.cpp @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@ diff --git a/docs/doxygen/suppressions.txt b/docs/doxygen/suppressions.txt index 9f3ce900de..da77511bcc 100644 --- a/docs/doxygen/suppressions.txt +++ b/docs/doxygen/suppressions.txt @@ -5,8 +5,8 @@ src/gromacs/version.h: warning: includes local file as # These are OK src/gromacs/math/vec.h: warning: installed header includes non-installed "config.h" -src/gromacs/linearalgebra/eigensolver.c: warning: should include "config.h" -src/gromacs/linearalgebra/gmx_arpack.c: warning: should include "config.h" +src/gromacs/linearalgebra/eigensolver.cpp: warning: should include "config.h" +src/gromacs/linearalgebra/gmx_arpack.cpp: warning: should include "config.h" src/gromacs/linearalgebra/gmx_blas/*: warning: does not include "gmxpre.h" first src/gromacs/linearalgebra/gmx_blas/*: warning: should include "config.h" src/gromacs/linearalgebra/gmx_lapack/*: warning: does not include "gmxpre.h" first diff --git a/src/gromacs/linearalgebra/CMakeLists.txt b/src/gromacs/linearalgebra/CMakeLists.txt index c0c1ed82f4..2afb058033 100644 --- a/src/gromacs/linearalgebra/CMakeLists.txt +++ b/src/gromacs/linearalgebra/CMakeLists.txt @@ -1,7 +1,7 @@ # # This file is part of the GROMACS molecular simulation package. # -# Copyright (c) 2012,2013,2014, by the GROMACS development team, led by +# Copyright (c) 2012,2013,2014,2015, by the GROMACS development team, led by # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, # and including many others, as listed in the AUTHORS file in the # top-level source directory and at http://www.gromacs.org. @@ -32,14 +32,14 @@ # To help us fund GROMACS development, we humbly ask that you cite # the research papers on the package. Check out http://www.gromacs.org. -file(GLOB LINEARALGEBRA_SOURCES *.c) +file(GLOB LINEARALGEBRA_SOURCES *.cpp) if (NOT GMX_EXTERNAL_BLAS) - file(GLOB BLAS_SOURCES gmx_blas/*.c) + file(GLOB BLAS_SOURCES gmx_blas/*.cpp) endif() if (NOT GMX_EXTERNAL_LAPACK) - file(GLOB LAPACK_SOURCES gmx_lapack/*.c) + file(GLOB LAPACK_SOURCES gmx_lapack/*.cpp) endif() set(LINEARALGEBRA_SOURCES diff --git a/src/gromacs/linearalgebra/eigensolver.c b/src/gromacs/linearalgebra/eigensolver.cpp similarity index 98% rename from src/gromacs/linearalgebra/eigensolver.c rename to src/gromacs/linearalgebra/eigensolver.cpp index 7d3f0d8754..472a884ef8 100644 --- a/src/gromacs/linearalgebra/eigensolver.c +++ b/src/gromacs/linearalgebra/eigensolver.cpp @@ -3,7 +3,7 @@ * * Copyright (c) 1991-2000, University of Groningen, The Netherlands. * Copyright (c) 2001-2004, The GROMACS development team. - * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by + * Copyright (c) 2012,2013,2014,2015, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -56,7 +56,7 @@ eigensolver(real * a, { int * isuppz; int lwork, liwork; - int il, iu, m, iw0, info; + int m, iw0, info; real w0, abstol; int * iwork; real * work; @@ -110,7 +110,7 @@ eigensolver(real * a, gmx_fatal(FARGS, "Internal errror in LAPACK diagonalization."); } - lwork = w0; + lwork = static_cast(w0); liwork = iw0; snew(work, lwork); diff --git a/src/gromacs/linearalgebra/gmx_arpack.c b/src/gromacs/linearalgebra/gmx_arpack.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_arpack.c rename to src/gromacs/linearalgebra/gmx_arpack.cpp index 287f0da282..f486fd3ee6 100644 --- a/src/gromacs/linearalgebra/gmx_arpack.c +++ b/src/gromacs/linearalgebra/gmx_arpack.cpp @@ -2,7 +2,7 @@ * This file is part of the GROMACS molecular simulation package. * * Copyright (c) 1991-2004 David van der Spoel, Erik Lindahl, University of Groningen. - * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by + * Copyright (c) 2012,2013,2014,2015, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -37,8 +37,8 @@ #include "gmx_arpack.h" -#include -#include +#include +#include #include "gromacs/utility/basedefinitions.h" #include "gromacs/utility/real.h" @@ -103,8 +103,8 @@ F77_FUNC(dstqrb, DSTQRB) (int * n, minval = GMX_DOUBLE_MIN; safmin = minval / GMX_DOUBLE_EPS; safmax = 1. / safmin; - ssfmax = sqrt(safmax) / 3.; - ssfmin = sqrt(safmin) / eps2; + ssfmax = std::sqrt(safmax) / 3.; + ssfmin = std::sqrt(safmin) / eps2; if (icompz == 2) { @@ -137,12 +137,12 @@ L10: i__1 = nm1; for (m = l1; m <= i__1; ++m) { - tst = fabs(e[m]); + tst = std::abs(e[m]); if (tst == 0.) { goto L30; } - if (tst <= sqrt(fabs(d__[m])) * sqrt(fabs(d__[m+1])) * eps) + if (tst <= std::sqrt(std::abs(d__[m])) * std::sqrt(std::abs(d__[m+1])) * eps) { e[m] = 0.; goto L30; @@ -190,7 +190,7 @@ L30: info); } - if (fabs(d__[lend]) < fabs(d__[l])) + if (std::abs(d__[lend]) < std::abs(d__[l])) { lend = lsv; l = lendsv; @@ -206,9 +206,9 @@ L40: i__1 = lendm1; for (m = l; m <= i__1; ++m) { - d__2 = fabs(e[m]); + d__2 = std::abs(e[m]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m + 1]) + safmin) + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m + 1]) + safmin) { goto L60; } @@ -327,9 +327,9 @@ L90: i__1 = lendp1; for (m = l; m >= i__1; --m) { - d__2 = fabs(e[m - 1]); + d__2 = std::abs(e[m - 1]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m- 1]) + safmin) + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m- 1]) + safmin) { goto L110; } @@ -603,7 +603,7 @@ L20: if (*bmat == 'G') { workd[*n * 3 + 4] = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[1], &c__1); - workd[*n * 3 + 4] = sqrt(fabs(workd[*n * 3 + 4])); + workd[*n * 3 + 4] = std::sqrt(std::abs(workd[*n * 3 + 4])); } else if (*bmat == 'I') { @@ -643,7 +643,7 @@ L40: if (*bmat == 'G') { *rnorm = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[1], &c__1); - *rnorm = sqrt(fabs(*rnorm)); + *rnorm = std::sqrt(std::abs(*rnorm)); } else if (*bmat == 'I') { @@ -752,7 +752,7 @@ L20: i__2 = kplusp - 1; for (i__ = istart; i__ <= i__2; ++i__) { - big = fabs(h__[i__ + (h_dim1*2)]) + fabs(h__[i__ + 1 + (h_dim1*2)]); + big = std::abs(h__[i__ + (h_dim1*2)]) + std::abs(h__[i__ + 1 + (h_dim1*2)]); if (h__[i__ + 1 + h_dim1] <= epsmch * big) { h__[i__ + 1 + h_dim1] = 0.; @@ -871,7 +871,7 @@ L90: i__1 = kplusp - 1; for (i__ = itop; i__ <= i__1; ++i__) { - big = fabs(h__[i__ + (h_dim1*2)]) + fabs(h__[i__+ 1 + (h_dim1*2)]); + big = std::abs(h__[i__ + (h_dim1*2)]) + std::abs(h__[i__+ 1 + (h_dim1*2)]); if (h__[i__ + 1 + h_dim1] <= epsmch * big) { h__[i__ + 1 + h_dim1] = 0.; @@ -935,7 +935,7 @@ F77_FUNC(dsortr, DSORTR) (const char * which, igap = *n / 2; - if (!strncmp(which, "SA", 2)) + if (!std::strncmp(which, "SA", 2)) { L10: @@ -979,7 +979,7 @@ L30: goto L10; } - else if (!strncmp(which, "SM", 2)) + else if (!std::strncmp(which, "SM", 2)) { L40: @@ -998,7 +998,7 @@ L50: goto L60; } - if (fabs(x1[j]) < fabs(x1[j + igap])) + if (std::abs(x1[j]) < std::abs(x1[j + igap])) { temp = x1[j]; x1[j] = x1[j + igap]; @@ -1023,7 +1023,7 @@ L60: goto L40; } - else if (!strncmp(which, "LA", 2)) + else if (!std::strncmp(which, "LA", 2)) { L70: @@ -1067,7 +1067,7 @@ L90: goto L70; } - else if (!strncmp(which, "LM", 2)) + else if (!std::strncmp(which, "LM", 2)) { @@ -1087,7 +1087,7 @@ L110: goto L120; } - if (fabs(x1[j]) > fabs(x1[j + igap])) + if (std::abs(x1[j]) > std::abs(x1[j + igap])) { temp = x1[j]; x1[j] = x1[j + igap]; @@ -1141,7 +1141,7 @@ F77_FUNC(dsesrt, DSESRT) (const char * which, igap = *n / 2; - if (!strncmp(which, "SA", 2)) + if (!std::strncmp(which, "SA", 2)) { L10: @@ -1184,7 +1184,7 @@ L30: goto L10; } - else if (!strncmp(which, "SM", 2)) + else if (!std::strncmp(which, "SM", 2)) { L40: @@ -1203,7 +1203,7 @@ L50: goto L60; } - if (fabs(x[j]) < fabs(x[j + igap])) + if (std::abs(x[j]) < std::abs(x[j + igap])) { temp = x[j]; x[j] = x[j + igap]; @@ -1227,7 +1227,7 @@ L60: goto L40; } - else if (!strncmp(which, "LA", 2)) + else if (!std::strncmp(which, "LA", 2)) { L70: @@ -1270,7 +1270,7 @@ L90: goto L70; } - else if (!strncmp(which, "LM", 2)) + else if (!std::strncmp(which, "LM", 2)) { L100: @@ -1289,7 +1289,7 @@ L110: goto L120; } - if (fabs(x[j]) > fabs(x[j + igap])) + if (std::abs(x[j]) > std::abs(x[j + igap])) { temp = x[j]; x[j] = x[j + igap]; @@ -1338,7 +1338,7 @@ F77_FUNC(dsgets, DSGETS) (int * ishift, --bounds; --ritz; - if (!strncmp(which, "BE", 2)) + if (!std::strncmp(which, "BE", 2)) { i__1 = *kev + *np; F77_FUNC(dsortr, DSORTR) ("LA", &c__1, &i__1, &ritz[1], &bounds[1]); @@ -1393,7 +1393,7 @@ F77_FUNC(dsconv, DSCONV) (int * n, --ritz; eps23 = GMX_DOUBLE_EPS; - eps23 = pow(eps23, c_b3); + eps23 = std::pow(eps23, c_b3); *nconv = 0; i__1 = *n; @@ -1401,7 +1401,7 @@ F77_FUNC(dsconv, DSCONV) (int * n, { d__2 = eps23; - d__3 = fabs(ritz[i__]); + d__3 = std::abs(ritz[i__]); temp = (d__2 > d__3) ? d__2 : d__3; if (bounds[i__] <= *tol * temp) { @@ -1448,7 +1448,7 @@ F77_FUNC(dseigt, DSEIGT) (double * rnorm, i__1 = *n; for (k = 1; k <= i__1; ++k) { - bounds[k] = *rnorm * fabs(bounds[k]); + bounds[k] = *rnorm * std::abs(bounds[k]); } @@ -1635,13 +1635,13 @@ L65: workd[*n * 3 + 3] = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[iwork[10]], & c__1); - workd[*n * 3 + 3] = sqrt(fabs(workd[*n * 3 + 3])); + workd[*n * 3 + 3] = std::sqrt(std::abs(workd[*n * 3 + 3])); } else if (*bmat == 'G') { workd[*n * 3 + 3] = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[iwork[8]], & c__1); - workd[*n * 3 + 3] = sqrt(fabs(workd[*n * 3 + 3])); + workd[*n * 3 + 3] = std::sqrt(std::abs(workd[*n * 3 + 3])); } else if (*bmat == 'I') { @@ -1695,7 +1695,7 @@ L70: if (*bmat == 'G') { *rnorm = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[iwork[8]], &c__1); - *rnorm = sqrt(fabs(*rnorm)); + *rnorm = std::sqrt(std::abs(*rnorm)); } else if (*bmat == 'I') { @@ -1742,7 +1742,7 @@ L90: { workd[*n * 3 + 2] = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[iwork[8]], & c__1); - workd[*n * 3 + 2] = sqrt(fabs(workd[*n * 3 + 2])); + workd[*n * 3 + 2] = std::sqrt(std::abs(workd[*n * 3 + 2])); } else if (*bmat == 'I') { @@ -1873,7 +1873,7 @@ F77_FUNC(dsaup2, DSAUP2) (int * ido, --ipntr; --iwork; eps23 = GMX_DOUBLE_EPS; - eps23 = pow(eps23, c_b3); + eps23 = std::pow(eps23, c_b3); if (*ido == 0) { @@ -2022,10 +2022,10 @@ L20: if (iwork[8] >= iwork[9] || iwork[6] > *mxiter || *np == 0) { - if (!strncmp(which, "BE", 2)) + if (!std::strncmp(which, "BE", 2)) { - strncpy(wprime, "SA", 2); + std::strncpy(wprime, "SA", 2); F77_FUNC(dsortr, DSORTR) (wprime, &c__1, &iwork[7], &ritz[1], &bounds[1]); nevd2 = *nev / 2; nevm2 = *nev - nevd2; @@ -2047,21 +2047,21 @@ L20: else { - if (!strncmp(which, "LM", 2)) + if (!std::strncmp(which, "LM", 2)) { - strncpy(wprime, "SM", 2); + std::strncpy(wprime, "SM", 2); } - if (!strncmp(which, "SM", 2)) + if (!std::strncmp(which, "SM", 2)) { - strncpy(wprime, "LM", 2); + std::strncpy(wprime, "LM", 2); } - if (!strncmp(which, "LA", 2)) + if (!std::strncmp(which, "LA", 2)) { - strncpy(wprime, "SA", 2); + std::strncpy(wprime, "SA", 2); } - if (!strncmp(which, "SA", 2)) + if (!std::strncmp(which, "SA", 2)) { - strncpy(wprime, "LA", 2); + std::strncpy(wprime, "LA", 2); } F77_FUNC(dsortr, DSORTR) (wprime, &c__1, &iwork[7], &ritz[1], &bounds[1]); @@ -2072,27 +2072,27 @@ L20: for (j = 1; j <= i__1; ++j) { d__2 = eps23; - d__3 = fabs(ritz[j]); + d__3 = std::abs(ritz[j]); temp = (d__2 > d__3) ? d__2 : d__3; bounds[j] /= temp; } - strncpy(wprime, "LA", 2); + std::strncpy(wprime, "LA", 2); F77_FUNC(dsortr, DSORTR) (wprime, &c__1, &iwork[9], &bounds[1], &ritz[1]); i__1 = iwork[9]; for (j = 1; j <= i__1; ++j) { d__2 = eps23; - d__3 = fabs(ritz[j]); + d__3 = std::abs(ritz[j]); temp = (d__2 > d__3) ? d__2 : d__3; bounds[j] *= temp; } - if (!strncmp(which, "BE", 2)) + if (!std::strncmp(which, "BE", 2)) { - strncpy(wprime, "LA", 2); + std::strncpy(wprime, "LA", 2); F77_FUNC(dsortr, DSORTR) (wprime, &c__1, &iwork[8], &ritz[1], &bounds[1]); } @@ -2182,7 +2182,7 @@ L100: if (*bmat == 'G') { workd[*n * 3 + 1] = F77_FUNC(ddot, DDOT) (n, &resid[1], &c__1, &workd[1], &c__1); - workd[*n * 3 + 1] = sqrt(fabs(workd[*n * 3 + 1])); + workd[*n * 3 + 1] = std::sqrt(std::abs(workd[*n * 3 + 1])); } else if (*bmat == 'I') { @@ -2272,9 +2272,9 @@ F77_FUNC(dsaupd, DSAUPD) (int * ido, { iwork[2] = -4; } - if (strncmp(which, "LM", 2) && strncmp(which, "SM", 2) && - strncmp(which, "LA", 2) && strncmp(which, "SA", 2) && - strncmp(which, "BE", 2)) + if (std::strncmp(which, "LM", 2) && std::strncmp(which, "SM", 2) && + std::strncmp(which, "LA", 2) && std::strncmp(which, "SA", 2) && + std::strncmp(which, "BE", 2)) { iwork[2] = -5; } @@ -2300,7 +2300,7 @@ F77_FUNC(dsaupd, DSAUPD) (int * ido, { iwork[2] = -12; } - else if (*nev == 1 && !strncmp(which, "BE", 2)) + else if (*nev == 1 && !std::strncmp(which, "BE", 2)) { iwork[2] = -13; } @@ -2471,9 +2471,9 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, { ierr = -3; } - if (strncmp(which, "LM", 2) && strncmp(which, "SM", 2) && - strncmp(which, "LA", 2) && strncmp(which, "SA", 2) && - strncmp(which, "BE", 2)) + if (std::strncmp(which, "LM", 2) && std::strncmp(which, "SM", 2) && + std::strncmp(which, "LA", 2) && std::strncmp(which, "SA", 2) && + std::strncmp(which, "BE", 2)) { ierr = -5; } @@ -2498,19 +2498,19 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, if (mode == 1 || mode == 2) { - strncpy(type__, "REGULR", 6); + std::strncpy(type__, "REGULR", 6); } else if (mode == 3) { - strncpy(type__, "SHIFTI", 6); + std::strncpy(type__, "SHIFTI", 6); } else if (mode == 4) { - strncpy(type__, "BUCKLE", 6); + std::strncpy(type__, "BUCKLE", 6); } else if (mode == 5) { - strncpy(type__, "CAYLEY", 6); + std::strncpy(type__, "CAYLEY", 6); } else { @@ -2520,7 +2520,7 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, { ierr = -11; } - if (*nev == 1 && !strncmp(which, "BE", 2)) + if (*nev == 1 && !std::strncmp(which, "BE", 2)) { ierr = -12; } @@ -2551,7 +2551,7 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, eps23 = GMX_DOUBLE_EPS; - eps23 = pow(eps23, c_b21); + eps23 = std::pow(eps23, c_b21); rnorm = workl[ih]; if (*bmat == 'I') @@ -2566,12 +2566,12 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, if (*rvec) { - if (!strncmp(which, "LM", 2) || !strncmp(which, "SM", 2) || - !strncmp(which, "LA", 2) || !strncmp(which, "SA", 2)) + if (!std::strncmp(which, "LM", 2) || !std::strncmp(which, "SM", 2) || + !std::strncmp(which, "LA", 2) || !std::strncmp(which, "SA", 2)) { } - else if (!strncmp(which, "BE", 2)) + else if (!std::strncmp(which, "BE", 2)) { @@ -2590,12 +2590,12 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, for (j = 0; j <= i__1; ++j) { select[j + 1] = 0; - if (!strncmp(which, "LM", 2)) + if (!std::strncmp(which, "LM", 2)) { - if (fabs(workl[irz + j]) >= fabs(thres1)) + if (std::abs(workl[irz + j]) >= std::abs(thres1)) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -2603,12 +2603,12 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, } } } - else if (!strncmp(which, "SM", 2)) + else if (!std::strncmp(which, "SM", 2)) { - if (fabs(workl[irz + j]) <= fabs(thres1)) + if (std::abs(workl[irz + j]) <= std::abs(thres1)) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -2616,12 +2616,12 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, } } } - else if (!strncmp(which, "LA", 2)) + else if (!std::strncmp(which, "LA", 2)) { if (workl[irz + j] >= thres1) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -2629,12 +2629,12 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, } } } - else if (!strncmp(which, "SA", 2)) + else if (!std::strncmp(which, "SA", 2)) { if (workl[irz + j] <= thres1) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -2642,12 +2642,12 @@ F77_FUNC(dseupd, DSEUPD) (int * rvec, } } } - else if (!strncmp(which, "BE", 2)) + else if (!std::strncmp(which, "BE", 2)) { if (workl[irz + j] <= thres1 || workl[irz + j] >= thres2) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -2739,7 +2739,7 @@ L30: F77_FUNC(dcopy, DCOPY) (ncv, &workl[ritz], &c__1, &workl[ihd], &c__1); } - if (!strncmp(type__, "REGULR", 6)) + if (!std::strncmp(type__, "REGULR", 6)) { if (*rvec) @@ -2756,7 +2756,7 @@ L30: { F77_FUNC(dcopy, DCOPY) (ncv, &workl[ihd], &c__1, &workl[iw], &c__1); - if (!strncmp(type__, "SHIFTI", 6)) + if (!std::strncmp(type__, "SHIFTI", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) @@ -2764,7 +2764,7 @@ L30: workl[ihd + k - 1] = 1. / workl[ihd + k - 1] + *sigma; } } - else if (!strncmp(type__, "BUCKLE", 6)) + else if (!std::strncmp(type__, "BUCKLE", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) @@ -2773,7 +2773,7 @@ L30: + k - 1] - 1.); } } - else if (!strncmp(type__, "CAYLEY", 6)) + else if (!std::strncmp(type__, "CAYLEY", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) @@ -2824,49 +2824,49 @@ L30: } - if (!strncmp(type__, "REGULR", 6) && *rvec) + if (!std::strncmp(type__, "REGULR", 6) && *rvec) { i__1 = *ncv; for (j = 1; j <= i__1; ++j) { - workl[ihb + j - 1] = rnorm * fabs(workl[ihb + j - 1]); + workl[ihb + j - 1] = rnorm * std::abs(workl[ihb + j - 1]); } } - else if (strncmp(type__, "REGULR", 6) && *rvec) + else if (std::strncmp(type__, "REGULR", 6) && *rvec) { F77_FUNC(dscal, DSCAL) (ncv, &bnorm2, &workl[ihb], &c__1); - if (!strncmp(type__, "SHIFTI", 6)) + if (!std::strncmp(type__, "SHIFTI", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) { d__2 = workl[iw + k - 1]; - workl[ihb + k - 1] = fabs(workl[ihb + k - 1])/(d__2 * d__2); + workl[ihb + k - 1] = std::abs(workl[ihb + k - 1])/(d__2 * d__2); } } - else if (!strncmp(type__, "BUCKLE", 6)) + else if (!std::strncmp(type__, "BUCKLE", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) { d__2 = workl[iw + k - 1] - 1.; - workl[ihb + k - 1] = *sigma * fabs(workl[ihb + k - 1])/(d__2 * d__2); + workl[ihb + k - 1] = *sigma * std::abs(workl[ihb + k - 1])/(d__2 * d__2); } } - else if (!strncmp(type__, "CAYLEY", 6)) + else if (!std::strncmp(type__, "CAYLEY", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) { - workl[ihb + k - 1] = fabs(workl[ihb + k - 1] / workl[iw + k - 1] * (workl[iw + k - 1] - 1.)); + workl[ihb + k - 1] = std::abs(workl[ihb + k - 1] / workl[iw + k - 1] * (workl[iw + k - 1] - 1.)); } @@ -2874,7 +2874,7 @@ L30: } - if (*rvec && (!strncmp(type__, "SHIFTI", 6) || !strncmp(type__, "CAYLEY", 6))) + if (*rvec && (!std::strncmp(type__, "SHIFTI", 6) || !std::strncmp(type__, "CAYLEY", 6))) { i__1 = nconv - 1; @@ -2884,7 +2884,7 @@ L30: } } - else if (*rvec && !strncmp(type__, "BUCKLE", 6)) + else if (*rvec && !std::strncmp(type__, "BUCKLE", 6)) { i__1 = nconv - 1; @@ -2896,7 +2896,7 @@ L30: } - if (strncmp(type__, "REGULR", 6)) + if (std::strncmp(type__, "REGULR", 6)) { F77_FUNC(dger, DGER) (n, &nconv, &c_b102, &resid[1], &c__1, &workl[iw], &c__1, &z__[ z_offset], ldz); @@ -2972,8 +2972,8 @@ F77_FUNC(sstqrb, SSTQRB) (int * n, minval = GMX_FLOAT_MIN; safmin = minval / GMX_FLOAT_EPS; safmax = 1. / safmin; - ssfmax = sqrt(safmax) / 3.; - ssfmin = sqrt(safmin) / eps2; + ssfmax = std::sqrt(safmax) / 3.; + ssfmin = std::sqrt(safmin) / eps2; if (icompz == 2) { @@ -3006,12 +3006,12 @@ L10: i__1 = nm1; for (m = l1; m <= i__1; ++m) { - tst = fabs(e[m]); + tst = std::abs(e[m]); if (tst == 0.) { goto L30; } - if (tst <= sqrt(fabs(d__[m])) * sqrt(fabs(d__[m+1])) * eps) + if (tst <= std::sqrt(std::abs(d__[m])) * std::sqrt(std::abs(d__[m+1])) * eps) { e[m] = 0.; goto L30; @@ -3059,7 +3059,7 @@ L30: info); } - if (fabs(d__[lend]) < fabs(d__[l])) + if (std::abs(d__[lend]) < std::abs(d__[l])) { lend = lsv; l = lendsv; @@ -3075,9 +3075,9 @@ L40: i__1 = lendm1; for (m = l; m <= i__1; ++m) { - d__2 = fabs(e[m]); + d__2 = std::abs(e[m]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m + 1]) + safmin) + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m + 1]) + safmin) { goto L60; } @@ -3196,9 +3196,9 @@ L90: i__1 = lendp1; for (m = l; m >= i__1; --m) { - d__2 = fabs(e[m - 1]); + d__2 = std::abs(e[m - 1]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m- 1]) + safmin) + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m- 1]) + safmin) { goto L110; } @@ -3472,7 +3472,7 @@ L20: if (*bmat == 'G') { workd[*n * 3 + 4] = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[1], &c__1); - workd[*n * 3 + 4] = sqrt(fabs(workd[*n * 3 + 4])); + workd[*n * 3 + 4] = std::sqrt(std::abs(workd[*n * 3 + 4])); } else if (*bmat == 'I') { @@ -3512,7 +3512,7 @@ L40: if (*bmat == 'G') { *rnorm = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[1], &c__1); - *rnorm = sqrt(fabs(*rnorm)); + *rnorm = std::sqrt(std::abs(*rnorm)); } else if (*bmat == 'I') { @@ -3621,7 +3621,7 @@ L20: i__2 = kplusp - 1; for (i__ = istart; i__ <= i__2; ++i__) { - big = fabs(h__[i__ + (h_dim1*2)]) + fabs(h__[i__ + 1 + (h_dim1*2)]); + big = std::abs(h__[i__ + (h_dim1*2)]) + std::abs(h__[i__ + 1 + (h_dim1*2)]); if (h__[i__ + 1 + h_dim1] <= epsmch * big) { h__[i__ + 1 + h_dim1] = 0.; @@ -3740,7 +3740,7 @@ L90: i__1 = kplusp - 1; for (i__ = itop; i__ <= i__1; ++i__) { - big = fabs(h__[i__ + (h_dim1*2)]) + fabs(h__[i__+ 1 + (h_dim1*2)]); + big = std::abs(h__[i__ + (h_dim1*2)]) + std::abs(h__[i__+ 1 + (h_dim1*2)]); if (h__[i__ + 1 + h_dim1] <= epsmch * big) { h__[i__ + 1 + h_dim1] = 0.; @@ -3804,7 +3804,7 @@ F77_FUNC(ssortr, SSORTR) (const char * which, igap = *n / 2; - if (!strncmp(which, "SA", 2)) + if (!std::strncmp(which, "SA", 2)) { L10: @@ -3848,7 +3848,7 @@ L30: goto L10; } - else if (!strncmp(which, "SM", 2)) + else if (!std::strncmp(which, "SM", 2)) { L40: @@ -3867,7 +3867,7 @@ L50: goto L60; } - if (fabs(x1[j]) < fabs(x1[j + igap])) + if (std::abs(x1[j]) < std::abs(x1[j + igap])) { temp = x1[j]; x1[j] = x1[j + igap]; @@ -3892,7 +3892,7 @@ L60: goto L40; } - else if (!strncmp(which, "LA", 2)) + else if (!std::strncmp(which, "LA", 2)) { L70: @@ -3936,7 +3936,7 @@ L90: goto L70; } - else if (!strncmp(which, "LM", 2)) + else if (!std::strncmp(which, "LM", 2)) { @@ -3956,7 +3956,7 @@ L110: goto L120; } - if (fabs(x1[j]) > fabs(x1[j + igap])) + if (std::abs(x1[j]) > std::abs(x1[j + igap])) { temp = x1[j]; x1[j] = x1[j + igap]; @@ -4010,7 +4010,7 @@ F77_FUNC(ssesrt, SSESRT) (const char * which, igap = *n / 2; - if (!strncmp(which, "SA", 2)) + if (!std::strncmp(which, "SA", 2)) { L10: @@ -4053,7 +4053,7 @@ L30: goto L10; } - else if (!strncmp(which, "SM", 2)) + else if (!std::strncmp(which, "SM", 2)) { L40: @@ -4072,7 +4072,7 @@ L50: goto L60; } - if (fabs(x[j]) < fabs(x[j + igap])) + if (std::abs(x[j]) < std::abs(x[j + igap])) { temp = x[j]; x[j] = x[j + igap]; @@ -4096,7 +4096,7 @@ L60: goto L40; } - else if (!strncmp(which, "LA", 2)) + else if (!std::strncmp(which, "LA", 2)) { L70: @@ -4139,7 +4139,7 @@ L90: goto L70; } - else if (!strncmp(which, "LM", 2)) + else if (!std::strncmp(which, "LM", 2)) { L100: @@ -4158,7 +4158,7 @@ L110: goto L120; } - if (fabs(x[j]) > fabs(x[j + igap])) + if (std::abs(x[j]) > std::abs(x[j + igap])) { temp = x[j]; x[j] = x[j + igap]; @@ -4207,7 +4207,7 @@ F77_FUNC(ssgets, SSGETS) (int * ishift, --bounds; --ritz; - if (!strncmp(which, "BE", 2)) + if (!std::strncmp(which, "BE", 2)) { i__1 = *kev + *np; F77_FUNC(ssortr, SSORTR) ("LA", &c__1, &i__1, &ritz[1], &bounds[1]); @@ -4262,7 +4262,7 @@ F77_FUNC(ssconv, SSCONV) (int * n, --ritz; eps23 = GMX_FLOAT_EPS; - eps23 = pow(eps23, c_b3); + eps23 = std::pow(eps23, c_b3); *nconv = 0; i__1 = *n; @@ -4270,7 +4270,7 @@ F77_FUNC(ssconv, SSCONV) (int * n, { d__2 = eps23; - d__3 = fabs(ritz[i__]); + d__3 = std::abs(ritz[i__]); temp = (d__2 > d__3) ? d__2 : d__3; if (bounds[i__] <= *tol * temp) { @@ -4317,7 +4317,7 @@ F77_FUNC(sseigt, SSEIGT) (float * rnorm, i__1 = *n; for (k = 1; k <= i__1; ++k) { - bounds[k] = *rnorm * fabs(bounds[k]); + bounds[k] = *rnorm * std::abs(bounds[k]); } @@ -4504,13 +4504,13 @@ L65: workd[*n * 3 + 3] = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[iwork[10]], & c__1); - workd[*n * 3 + 3] = sqrt(fabs(workd[*n * 3 + 3])); + workd[*n * 3 + 3] = std::sqrt(std::abs(workd[*n * 3 + 3])); } else if (*bmat == 'G') { workd[*n * 3 + 3] = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[iwork[8]], & c__1); - workd[*n * 3 + 3] = sqrt(fabs(workd[*n * 3 + 3])); + workd[*n * 3 + 3] = std::sqrt(std::abs(workd[*n * 3 + 3])); } else if (*bmat == 'I') { @@ -4564,7 +4564,7 @@ L70: if (*bmat == 'G') { *rnorm = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[iwork[8]], &c__1); - *rnorm = sqrt(fabs(*rnorm)); + *rnorm = std::sqrt(std::abs(*rnorm)); } else if (*bmat == 'I') { @@ -4611,7 +4611,7 @@ L90: { workd[*n * 3 + 2] = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[iwork[8]], & c__1); - workd[*n * 3 + 2] = sqrt(fabs(workd[*n * 3 + 2])); + workd[*n * 3 + 2] = std::sqrt(std::abs(workd[*n * 3 + 2])); } else if (*bmat == 'I') { @@ -4742,7 +4742,7 @@ F77_FUNC(ssaup2, SSAUP2) (int * ido, --ipntr; --iwork; eps23 = GMX_FLOAT_EPS; - eps23 = pow(eps23, c_b3); + eps23 = std::pow(eps23, c_b3); if (*ido == 0) { @@ -4892,10 +4892,10 @@ L20: if (iwork[8] >= iwork[9] || iwork[6] > *mxiter || *np == 0) { - if (!strncmp(which, "BE", 2)) + if (!std::strncmp(which, "BE", 2)) { - strncpy(wprime, "SA", 2); + std::strncpy(wprime, "SA", 2); F77_FUNC(ssortr, SSORTR) (wprime, &c__1, &iwork[7], &ritz[1], &bounds[1]); nevd2 = *nev / 2; nevm2 = *nev - nevd2; @@ -4917,21 +4917,21 @@ L20: else { - if (!strncmp(which, "LM", 2)) + if (!std::strncmp(which, "LM", 2)) { - strncpy(wprime, "SM", 2); + std::strncpy(wprime, "SM", 2); } - if (!strncmp(which, "SM", 2)) + if (!std::strncmp(which, "SM", 2)) { - strncpy(wprime, "LM", 2); + std::strncpy(wprime, "LM", 2); } - if (!strncmp(which, "LA", 2)) + if (!std::strncmp(which, "LA", 2)) { - strncpy(wprime, "SA", 2); + std::strncpy(wprime, "SA", 2); } - if (!strncmp(which, "SA", 2)) + if (!std::strncmp(which, "SA", 2)) { - strncpy(wprime, "LA", 2); + std::strncpy(wprime, "LA", 2); } F77_FUNC(ssortr, SSORTR) (wprime, &c__1, &iwork[7], &ritz[1], &bounds[1]); @@ -4942,27 +4942,27 @@ L20: for (j = 1; j <= i__1; ++j) { d__2 = eps23; - d__3 = fabs(ritz[j]); + d__3 = std::abs(ritz[j]); temp = (d__2 > d__3) ? d__2 : d__3; bounds[j] /= temp; } - strncpy(wprime, "LA", 2); + std::strncpy(wprime, "LA", 2); F77_FUNC(ssortr, SSORTR) (wprime, &c__1, &iwork[9], &bounds[1], &ritz[1]); i__1 = iwork[9]; for (j = 1; j <= i__1; ++j) { d__2 = eps23; - d__3 = fabs(ritz[j]); + d__3 = std::abs(ritz[j]); temp = (d__2 > d__3) ? d__2 : d__3; bounds[j] *= temp; } - if (!strncmp(which, "BE", 2)) + if (!std::strncmp(which, "BE", 2)) { - strncpy(wprime, "LA", 2); + std::strncpy(wprime, "LA", 2); F77_FUNC(ssortr, SSORTR) (wprime, &c__1, &iwork[8], &ritz[1], &bounds[1]); } @@ -5052,7 +5052,7 @@ L100: if (*bmat == 'G') { workd[*n * 3 + 1] = F77_FUNC(sdot, SDOT) (n, &resid[1], &c__1, &workd[1], &c__1); - workd[*n * 3 + 1] = sqrt(fabs(workd[*n * 3 + 1])); + workd[*n * 3 + 1] = std::sqrt(std::abs(workd[*n * 3 + 1])); } else if (*bmat == 'I') { @@ -5142,9 +5142,9 @@ F77_FUNC(ssaupd, SSAUPD) (int * ido, { iwork[2] = -4; } - if (strncmp(which, "LM", 2) && strncmp(which, "SM", 2) && - strncmp(which, "LA", 2) && strncmp(which, "SA", 2) && - strncmp(which, "BE", 2)) + if (std::strncmp(which, "LM", 2) && std::strncmp(which, "SM", 2) && + std::strncmp(which, "LA", 2) && std::strncmp(which, "SA", 2) && + std::strncmp(which, "BE", 2)) { iwork[2] = -5; } @@ -5170,7 +5170,7 @@ F77_FUNC(ssaupd, SSAUPD) (int * ido, { iwork[2] = -12; } - else if (*nev == 1 && !strncmp(which, "BE", 2)) + else if (*nev == 1 && !std::strncmp(which, "BE", 2)) { iwork[2] = -13; } @@ -5341,9 +5341,9 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, { ierr = -3; } - if (strncmp(which, "LM", 2) && strncmp(which, "SM", 2) && - strncmp(which, "LA", 2) && strncmp(which, "SA", 2) && - strncmp(which, "BE", 2)) + if (std::strncmp(which, "LM", 2) && std::strncmp(which, "SM", 2) && + std::strncmp(which, "LA", 2) && std::strncmp(which, "SA", 2) && + std::strncmp(which, "BE", 2)) { ierr = -5; } @@ -5368,19 +5368,19 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, if (mode == 1 || mode == 2) { - strncpy(type__, "REGULR", 6); + std::strncpy(type__, "REGULR", 6); } else if (mode == 3) { - strncpy(type__, "SHIFTI", 6); + std::strncpy(type__, "SHIFTI", 6); } else if (mode == 4) { - strncpy(type__, "BUCKLE", 6); + std::strncpy(type__, "BUCKLE", 6); } else if (mode == 5) { - strncpy(type__, "CAYLEY", 6); + std::strncpy(type__, "CAYLEY", 6); } else { @@ -5390,7 +5390,7 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, { ierr = -11; } - if (*nev == 1 && !strncmp(which, "BE", 2)) + if (*nev == 1 && !std::strncmp(which, "BE", 2)) { ierr = -12; } @@ -5421,7 +5421,7 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, eps23 = GMX_FLOAT_EPS; - eps23 = pow(eps23, c_b21); + eps23 = std::pow(eps23, c_b21); rnorm = workl[ih]; if (*bmat == 'I') @@ -5436,12 +5436,12 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, if (*rvec) { - if (!strncmp(which, "LM", 2) || !strncmp(which, "SM", 2) || - !strncmp(which, "LA", 2) || !strncmp(which, "SA", 2)) + if (!std::strncmp(which, "LM", 2) || !std::strncmp(which, "SM", 2) || + !std::strncmp(which, "LA", 2) || !std::strncmp(which, "SA", 2)) { } - else if (!strncmp(which, "BE", 2)) + else if (!std::strncmp(which, "BE", 2)) { @@ -5460,12 +5460,12 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, for (j = 0; j <= i__1; ++j) { select[j + 1] = 0; - if (!strncmp(which, "LM", 2)) + if (!std::strncmp(which, "LM", 2)) { - if (fabs(workl[irz + j]) >= fabs(thres1)) + if (std::abs(workl[irz + j]) >= std::abs(thres1)) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -5473,12 +5473,12 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, } } } - else if (!strncmp(which, "SM", 2)) + else if (!std::strncmp(which, "SM", 2)) { - if (fabs(workl[irz + j]) <= fabs(thres1)) + if (std::abs(workl[irz + j]) <= std::abs(thres1)) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -5486,12 +5486,12 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, } } } - else if (!strncmp(which, "LA", 2)) + else if (!std::strncmp(which, "LA", 2)) { if (workl[irz + j] >= thres1) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -5499,12 +5499,12 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, } } } - else if (!strncmp(which, "SA", 2)) + else if (!std::strncmp(which, "SA", 2)) { if (workl[irz + j] <= thres1) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -5512,12 +5512,12 @@ F77_FUNC(sseupd, SSEUPD) (int * rvec, } } } - else if (!strncmp(which, "BE", 2)) + else if (!std::strncmp(which, "BE", 2)) { if (workl[irz + j] <= thres1 || workl[irz + j] >= thres2) { d__2 = eps23; - d__3 = fabs(workl[irz + j]); + d__3 = std::abs(workl[irz + j]); tempbnd = (d__2 > d__3) ? d__2 : d__3; if (workl[ibd + j] <= *tol * tempbnd) { @@ -5609,7 +5609,7 @@ L30: F77_FUNC(scopy, SCOPY) (ncv, &workl[ritz], &c__1, &workl[ihd], &c__1); } - if (!strncmp(type__, "REGULR", 6)) + if (!std::strncmp(type__, "REGULR", 6)) { if (*rvec) @@ -5626,7 +5626,7 @@ L30: { F77_FUNC(scopy, SCOPY) (ncv, &workl[ihd], &c__1, &workl[iw], &c__1); - if (!strncmp(type__, "SHIFTI", 6)) + if (!std::strncmp(type__, "SHIFTI", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) @@ -5634,7 +5634,7 @@ L30: workl[ihd + k - 1] = 1. / workl[ihd + k - 1] + *sigma; } } - else if (!strncmp(type__, "BUCKLE", 6)) + else if (!std::strncmp(type__, "BUCKLE", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) @@ -5643,7 +5643,7 @@ L30: + k - 1] - 1.); } } - else if (!strncmp(type__, "CAYLEY", 6)) + else if (!std::strncmp(type__, "CAYLEY", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) @@ -5694,49 +5694,49 @@ L30: } - if (!strncmp(type__, "REGULR", 6) && *rvec) + if (!std::strncmp(type__, "REGULR", 6) && *rvec) { i__1 = *ncv; for (j = 1; j <= i__1; ++j) { - workl[ihb + j - 1] = rnorm * fabs(workl[ihb + j - 1]); + workl[ihb + j - 1] = rnorm * std::abs(workl[ihb + j - 1]); } } - else if (strncmp(type__, "REGULR", 6) && *rvec) + else if (std::strncmp(type__, "REGULR", 6) && *rvec) { F77_FUNC(sscal, SSCAL) (ncv, &bnorm2, &workl[ihb], &c__1); - if (!strncmp(type__, "SHIFTI", 6)) + if (!std::strncmp(type__, "SHIFTI", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) { d__2 = workl[iw + k - 1]; - workl[ihb + k - 1] = fabs(workl[ihb + k - 1])/(d__2 * d__2); + workl[ihb + k - 1] = std::abs(workl[ihb + k - 1])/(d__2 * d__2); } } - else if (!strncmp(type__, "BUCKLE", 6)) + else if (!std::strncmp(type__, "BUCKLE", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) { d__2 = workl[iw + k - 1] - 1.; - workl[ihb + k - 1] = *sigma * fabs(workl[ihb + k - 1])/(d__2 * d__2); + workl[ihb + k - 1] = *sigma * std::abs(workl[ihb + k - 1])/(d__2 * d__2); } } - else if (!strncmp(type__, "CAYLEY", 6)) + else if (!std::strncmp(type__, "CAYLEY", 6)) { i__1 = *ncv; for (k = 1; k <= i__1; ++k) { - workl[ihb + k - 1] = fabs(workl[ihb + k - 1] / workl[iw + k - 1] * (workl[iw + k - 1] - 1.)); + workl[ihb + k - 1] = std::abs(workl[ihb + k - 1] / workl[iw + k - 1] * (workl[iw + k - 1] - 1.)); } @@ -5744,7 +5744,7 @@ L30: } - if (*rvec && (!strncmp(type__, "SHIFTI", 6) || !strncmp(type__, "CAYLEY", 6))) + if (*rvec && (!std::strncmp(type__, "SHIFTI", 6) || !std::strncmp(type__, "CAYLEY", 6))) { i__1 = nconv - 1; @@ -5754,7 +5754,7 @@ L30: } } - else if (*rvec && !strncmp(type__, "BUCKLE", 6)) + else if (*rvec && !std::strncmp(type__, "BUCKLE", 6)) { i__1 = nconv - 1; @@ -5766,7 +5766,7 @@ L30: } - if (strncmp(type__, "REGULR", 6)) + if (std::strncmp(type__, "REGULR", 6)) { F77_FUNC(sger, SGER) (n, &nconv, &c_b102, &resid[1], &c__1, &workl[iw], &c__1, &z__[ z_offset], ldz); diff --git a/src/gromacs/linearalgebra/gmx_blas/dasum.c b/src/gromacs/linearalgebra/gmx_blas/dasum.cpp similarity index 75% rename from src/gromacs/linearalgebra/gmx_blas/dasum.c rename to src/gromacs/linearalgebra/gmx_blas/dasum.cpp index dd1f713e91..b02fd8ad0b 100644 --- a/src/gromacs/linearalgebra/gmx_blas/dasum.c +++ b/src/gromacs/linearalgebra/gmx_blas/dasum.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" double @@ -26,7 +26,7 @@ F77_FUNC(dasum,DASUM)(int *n__, i__1 = nincx; i__2 = incx; for (i__ = 1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) { - dtemp += fabs(dx[i__]); + dtemp += std::abs(dx[i__]); } return dtemp; } @@ -35,7 +35,7 @@ F77_FUNC(dasum,DASUM)(int *n__, if (m != 0) { i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { - dtemp += fabs(dx[i__]); + dtemp += std::abs(dx[i__]); } if (n < 6) { return dtemp; @@ -44,9 +44,9 @@ F77_FUNC(dasum,DASUM)(int *n__, mp1 = m + 1; i__2 = n; for (i__ = mp1; i__ <= i__2; i__ += 6) { - dtemp = dtemp + fabs(dx[i__]) + fabs(dx[i__ + 1]) + - fabs(dx[i__ + 2]) + fabs(dx[i__+ 3]) + fabs(dx[i__ + 4]) + - fabs(dx[i__ + 5]); + dtemp = dtemp + std::abs(dx[i__]) + std::abs(dx[i__ + 1]) + + std::abs(dx[i__ + 2]) + std::abs(dx[i__+ 3]) + std::abs(dx[i__ + 4]) + + std::abs(dx[i__ + 5]); } return dtemp; } diff --git a/src/gromacs/linearalgebra/gmx_blas/daxpy.c b/src/gromacs/linearalgebra/gmx_blas/daxpy.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_blas/daxpy.c rename to src/gromacs/linearalgebra/gmx_blas/daxpy.cpp diff --git a/src/gromacs/linearalgebra/gmx_blas/dcopy.c b/src/gromacs/linearalgebra/gmx_blas/dcopy.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_blas/dcopy.c rename to src/gromacs/linearalgebra/gmx_blas/dcopy.cpp diff --git a/src/gromacs/linearalgebra/gmx_blas/ddot.c b/src/gromacs/linearalgebra/gmx_blas/ddot.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_blas/ddot.c rename to src/gromacs/linearalgebra/gmx_blas/ddot.cpp diff --git a/src/gromacs/linearalgebra/gmx_blas/dgemm.c b/src/gromacs/linearalgebra/gmx_blas/dgemm.cpp similarity index 73% rename from src/gromacs/linearalgebra/gmx_blas/dgemm.c rename to src/gromacs/linearalgebra/gmx_blas/dgemm.cpp index 31e7139c5d..ba5120d516 100644 --- a/src/gromacs/linearalgebra/gmx_blas/dgemm.c +++ b/src/gromacs/linearalgebra/gmx_blas/dgemm.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" @@ -20,11 +20,10 @@ F77_FUNC(dgemm,DGEMM)(const char *transa, double *c, int *ldc__) { - const char tra=toupper(*transa); - const char trb=toupper(*transb); + const char tra=std::toupper(*transa); + const char trb=std::toupper(*transb); double temp; int i,j,l; - int nrowa,ncola,nrowb; int m = *m__; int n = *n__; @@ -36,24 +35,11 @@ F77_FUNC(dgemm,DGEMM)(const char *transa, double alpha = *alpha__; double beta = *beta__; - if(tra=='N') { - nrowa = m; - ncola = k; - } else { - nrowa = k; - ncola = m; - } - - if(trb=='N') - nrowb = k; - else - nrowb = n; - - if(m==0 || n==0 || (( fabs(alpha)GMX_DOUBLE_EPS) { + } else if(std::abs(beta-1.0)>GMX_DOUBLE_EPS) { for(i=0;iGMX_DOUBLE_MIN) { + if( std::abs(b[ j*(ldb) + l ])>GMX_DOUBLE_MIN) { temp = alpha * b[ j*(ldb) + l ]; for(i=0;iGMX_DOUBLE_EPS) { + } else if(std::abs(beta-1.0)>GMX_DOUBLE_EPS) { for(i=0;iGMX_DOUBLE_MIN) { + if( std::abs(b[ l*(ldb) + j ])>GMX_DOUBLE_MIN) { temp = alpha * b[ l*(ldb) + j ]; for(i=0;i -#include +#include +#include #include "gromacs/utility/real.h" @@ -18,7 +18,7 @@ F77_FUNC(dgemv,DGEMV)(const char *trans, double *y, int *incy__) { - const char ch=toupper(*trans); + const char ch=std::toupper(*trans); int lenx,leny,kx,ky; int i,j,jx,jy,ix,iy; double temp; @@ -31,7 +31,7 @@ F77_FUNC(dgemv,DGEMV)(const char *trans, int incy = *incy__; int lda = *lda__; - if(n<=0 || m<=0 || (fabs(alpha)GMX_DOUBLE_EPS) { + if(std::abs(beta-1.0)>GMX_DOUBLE_EPS) { if(incy==1) { - if(fabs(beta)GMX_DOUBLE_MIN) { + if(std::abs(x[jx-1])>GMX_DOUBLE_MIN) { temp = alpha * x[jx-1]; for(i=1;i<=m;i++) y[i-1] += temp * a[(j-1)*(lda)+(i-1)]; @@ -87,7 +87,7 @@ F77_FUNC(dgemv,DGEMV)(const char *trans, } else { /* non-unit y incr. */ for(j=1;j<=n;j++,jx+=incx) - if(fabs(x[jx-1])>GMX_DOUBLE_MIN) { + if(std::abs(x[jx-1])>GMX_DOUBLE_MIN) { temp = alpha * x[jx-1]; iy = ky; for(i=1;i<=m;i++,iy+=incy) diff --git a/src/gromacs/linearalgebra/gmx_blas/dger.c b/src/gromacs/linearalgebra/gmx_blas/dger.cpp similarity index 87% rename from src/gromacs/linearalgebra/gmx_blas/dger.c rename to src/gromacs/linearalgebra/gmx_blas/dger.cpp index 926b53e480..fce64afa0d 100644 --- a/src/gromacs/linearalgebra/gmx_blas/dger.c +++ b/src/gromacs/linearalgebra/gmx_blas/dger.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" @@ -27,7 +27,7 @@ F77_FUNC(dger,DGER)(int *m__, int lda = *lda__; double alpha = *alpha__; - if(m<=0 || n<=0 || fabs(alpha)0) @@ -37,7 +37,7 @@ F77_FUNC(dger,DGER)(int *m__, if(incx==1) { for(j=0;jGMX_DOUBLE_MIN) { + if(std::abs(y[jy])>GMX_DOUBLE_MIN) { temp = alpha * y[jy]; for(i=0;iGMX_DOUBLE_MIN) { + if(std::abs(y[jy])>GMX_DOUBLE_MIN) { temp = alpha * y[jy]; ix = kx; for(i=0;i +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -30,7 +30,7 @@ F77_FUNC(dnrm2,DNRM2)(int * n__, max_ix = 1+(n-1)*(incx); for(ix=1;ix<=max_ix;ix+=incx) { t = x[ix-1]; - if(fabs(t)>GMX_DOUBLE_MIN) { + if(std::abs(t)>GMX_DOUBLE_MIN) { absxi = (t>=0) ? t : (-t); if(scale -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -16,7 +16,7 @@ F77_FUNC(dsymv,DSYMV)(const char *uplo, double *y, int *incy__) { - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); int kx,ky,i,j,ix,iy,jx,jy; double temp1,temp2; @@ -40,9 +40,9 @@ F77_FUNC(dsymv,DSYMV)(const char *uplo, else ky = 1 - (n -1)*(incy); - if(fabs(beta-1.0)>GMX_DOUBLE_EPS) { + if(std::abs(beta-1.0)>GMX_DOUBLE_EPS) { if(incy==1) { - if(fabs(beta) -#include +#include +#include #include "gromacs/utility/real.h" @@ -18,7 +18,7 @@ F77_FUNC(dsyr2,DSYR2)(const char * uplo, { int kx,ky,ix,iy,jx,jy,j,i; double temp1,temp2; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); int n = *n__; int lda = *lda__; @@ -27,7 +27,7 @@ F77_FUNC(dsyr2,DSYR2)(const char * uplo, float alpha = *alpha__; - if(n<=0 || fabs(alpha)GMX_DOUBLE_MIN || fabs(y[j-1])>GMX_DOUBLE_MIN ) { + if( std::abs(x[j-1])>GMX_DOUBLE_MIN || std::abs(y[j-1])>GMX_DOUBLE_MIN ) { temp1 = alpha * y[j-1]; temp2 = alpha * x[j-1]; for(i=1;i<=j;i++) @@ -65,7 +65,7 @@ F77_FUNC(dsyr2,DSYR2)(const char * uplo, /* non-unit increments */ for(j=1;j<=n;j++) { - if( fabs(x[jx-1])>GMX_DOUBLE_MIN || fabs(y[jy-1])>GMX_DOUBLE_MIN ) { + if( std::abs(x[jx-1])>GMX_DOUBLE_MIN || std::abs(y[jy-1])>GMX_DOUBLE_MIN ) { temp1 = alpha * y[jy-1]; temp2 = alpha * x[jx-1]; ix = kx; @@ -85,7 +85,7 @@ F77_FUNC(dsyr2,DSYR2)(const char * uplo, if(incx==1 && incy==1) { /* Unit increments for both x and y */ for(j=1;j<=n;j++) { - if( fabs(x[j-1])>GMX_DOUBLE_MIN || fabs(y[j-1])>GMX_DOUBLE_MIN ) { + if( std::abs(x[j-1])>GMX_DOUBLE_MIN || std::abs(y[j-1])>GMX_DOUBLE_MIN ) { temp1 = alpha * y[j-1]; temp2 = alpha * x[j-1]; for(i=j;i<=n;i++) @@ -97,7 +97,7 @@ F77_FUNC(dsyr2,DSYR2)(const char * uplo, /* non-unit increments */ for(j=1;j<=n;j++) { - if( fabs(x[jx-1])>GMX_DOUBLE_MIN || fabs(y[jy-1])>GMX_DOUBLE_MIN ) { + if( std::abs(x[jx-1])>GMX_DOUBLE_MIN || std::abs(y[jy-1])>GMX_DOUBLE_MIN ) { temp1 = alpha * y[jy-1]; temp2 = alpha * x[jx-1]; ix = jx; diff --git a/src/gromacs/linearalgebra/gmx_blas/dsyr2k.c b/src/gromacs/linearalgebra/gmx_blas/dsyr2k.cpp similarity index 76% rename from src/gromacs/linearalgebra/gmx_blas/dsyr2k.c rename to src/gromacs/linearalgebra/gmx_blas/dsyr2k.cpp index e863f5b56c..da800b1766 100644 --- a/src/gromacs/linearalgebra/gmx_blas/dsyr2k.c +++ b/src/gromacs/linearalgebra/gmx_blas/dsyr2k.cpp @@ -1,6 +1,5 @@ -#include -#include - +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -20,7 +19,6 @@ F77_FUNC(dsyr2k,DSYR2K)(const char *uplo, int *ldc__) { char ch1,ch2; - int nrowa; int i,j,l; double temp1,temp2; @@ -34,20 +32,15 @@ F77_FUNC(dsyr2k,DSYR2K)(const char *uplo, double alpha = *alpha__; double beta = *beta__; - ch1 = toupper(*uplo); - ch2 = toupper(*trans); - - if(ch2 == 'N') - nrowa = n; - else - nrowa = k; + ch1 = std::toupper(*uplo); + ch2 = std::toupper(*trans); - if(n==0 || ( ( fabs(alpha)GMX_DOUBLE_EPS) + else if(std::abs(beta-1.0)>GMX_DOUBLE_EPS) for(i=1;i<=j;i++) c[(j-1)*(ldc)+(i-1)] *= beta; for(l=1;l<=k;l++) { - if( fabs(a[(l-1)*(lda)+(j-1)])>GMX_DOUBLE_MIN || - fabs(b[(l-1)*(ldb)+(j-1)])>GMX_DOUBLE_MIN) { + if( std::abs(a[(l-1)*(lda)+(j-1)])>GMX_DOUBLE_MIN || + std::abs(b[(l-1)*(ldb)+(j-1)])>GMX_DOUBLE_MIN) { temp1 = alpha * b[(l-1)*(ldb)+(j-1)]; temp2 = alpha * a[(l-1)*(lda)+(j-1)]; for(i=1;i<=j;i++) @@ -93,15 +86,15 @@ F77_FUNC(dsyr2k,DSYR2K)(const char *uplo, } else { /* lower */ for(j=1;j<=n;j++) { - if(fabs(beta)GMX_DOUBLE_EPS) + else if(std::abs(beta-1.0)>GMX_DOUBLE_EPS) for(i=j;i<=n;i++) c[(j-1)*(ldc)+(i-1)] *= beta; for(l=1;l<=k;l++) { - if( fabs(a[(l-1)*(lda)+(j-1)])>GMX_DOUBLE_MIN || - fabs(b[(l-1)*(ldb)+(j-1)])>GMX_DOUBLE_MIN) { + if( std::abs(a[(l-1)*(lda)+(j-1)])>GMX_DOUBLE_MIN || + std::abs(b[(l-1)*(ldb)+(j-1)])>GMX_DOUBLE_MIN) { temp1 = alpha * b[(l-1)*(ldb)+(j-1)]; temp2 = alpha * a[(l-1)*(lda)+(j-1)]; for(i=j;i<=n;i++) @@ -123,7 +116,7 @@ F77_FUNC(dsyr2k,DSYR2K)(const char *uplo, temp1 += a[(i-1)*(lda)+(l-1)] * b[(j-1)*(ldb)+(l-1)]; temp2 += b[(i-1)*(ldb)+(l-1)] * a[(j-1)*(lda)+(l-1)]; } - if(fabs(beta) +#include #include "gromacs/utility/real.h" @@ -26,10 +26,9 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, double alpha = *alpha__; /* Local variables */ - int i__, j, k, info; + int i__, j, k; double temp; int lside; - int nrowa; int upper; int nounit; a_dim1 = lda; @@ -41,20 +40,14 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, /* Function Body */ lside = (*side=='L' || *side=='l'); - if (lside) { - nrowa = m; - } else { - nrowa = n; - } + nounit = (*diag=='N' || *diag=='n'); upper = (*uplo=='U' || *uplo=='u'); - info = 0; - if (n == 0) { return; } - if (fabs(alpha)GMX_DOUBLE_MIN) { + if (std::abs(b[k + j * b_dim1])>GMX_DOUBLE_MIN) { temp = alpha * b[k + j * b_dim1]; i__3 = k - 1; for (i__ = 1; i__ <= i__3; ++i__) { @@ -88,7 +81,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, i__1 = n; for (j = 1; j <= i__1; ++j) { for (k = m; k >= 1; --k) { - if (fabs(b[k + j * b_dim1])>GMX_DOUBLE_MIN) { + if (std::abs(b[k + j * b_dim1])>GMX_DOUBLE_MIN) { temp = alpha * b[k + j * b_dim1]; b[k + j * b_dim1] = temp; if (nounit) { @@ -153,7 +146,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, } i__1 = j - 1; for (k = 1; k <= i__1; ++k) { - if (fabs(a[k + j * a_dim1])>GMX_DOUBLE_MIN) { + if (std::abs(a[k + j * a_dim1])>GMX_DOUBLE_MIN) { temp = alpha * a[k + j * a_dim1]; i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { @@ -176,7 +169,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, } i__2 = n; for (k = j + 1; k <= i__2; ++k) { - if (fabs(a[k + j * a_dim1])>GMX_DOUBLE_MIN) { + if (std::abs(a[k + j * a_dim1])>GMX_DOUBLE_MIN) { temp = alpha * a[k + j * a_dim1]; i__3 = m; for (i__ = 1; i__ <= i__3; ++i__) { @@ -194,7 +187,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, for (k = 1; k <= i__1; ++k) { i__2 = k - 1; for (j = 1; j <= i__2; ++j) { - if (fabs(a[j + k * a_dim1])>GMX_DOUBLE_MIN) { + if (std::abs(a[j + k * a_dim1])>GMX_DOUBLE_MIN) { temp = alpha * a[j + k * a_dim1]; i__3 = m; for (i__ = 1; i__ <= i__3; ++i__) { @@ -207,7 +200,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, if (nounit) { temp *= a[k + k * a_dim1]; } - if (fabs(temp-1.0)>GMX_DOUBLE_EPS) { + if (std::abs(temp-1.0)>GMX_DOUBLE_EPS) { i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { b[i__ + k * b_dim1] = temp * b[i__ + k * b_dim1]; @@ -218,7 +211,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, for (k = n; k >= 1; --k) { i__1 = n; for (j = k + 1; j <= i__1; ++j) { - if (fabs(a[j + k * a_dim1])>GMX_DOUBLE_MIN) { + if (std::abs(a[j + k * a_dim1])>GMX_DOUBLE_MIN) { temp = alpha * a[j + k * a_dim1]; i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { @@ -231,7 +224,7 @@ F77_FUNC(dtrmm,DTRMM)(const char *side, if (nounit) { temp *= a[k + k * a_dim1]; } - if (fabs(temp-1.0)>GMX_DOUBLE_EPS) { + if (std::abs(temp-1.0)>GMX_DOUBLE_EPS) { i__1 = m; for (i__ = 1; i__ <= i__1; ++i__) { b[i__ + k * b_dim1] = temp * b[i__ + k * b_dim1]; diff --git a/src/gromacs/linearalgebra/gmx_blas/dtrmv.c b/src/gromacs/linearalgebra/gmx_blas/dtrmv.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_blas/dtrmv.c rename to src/gromacs/linearalgebra/gmx_blas/dtrmv.cpp index bb3909a8a3..d8bee74e3a 100644 --- a/src/gromacs/linearalgebra/gmx_blas/dtrmv.c +++ b/src/gromacs/linearalgebra/gmx_blas/dtrmv.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -15,7 +15,7 @@ F77_FUNC(dtrmv,DTRMV)(const char *uplo, { int a_dim1, a_offset, i__1, i__2; - int i__, j, ix, jx, kx, info; + int i__, j, ix, jx, kx; double temp; int nounit; @@ -28,8 +28,6 @@ F77_FUNC(dtrmv,DTRMV)(const char *uplo, a -= a_offset; --x; - info = 0; - if (n == 0) { return; } @@ -48,7 +46,7 @@ F77_FUNC(dtrmv,DTRMV)(const char *uplo, if (incx == 1) { i__1 = n; for (j = 1; j <= i__1; ++j) { - if (fabs(x[j])>GMX_DOUBLE_MIN) { + if (std::abs(x[j])>GMX_DOUBLE_MIN) { temp = x[j]; i__2 = j - 1; for (i__ = 1; i__ <= i__2; ++i__) { @@ -63,7 +61,7 @@ F77_FUNC(dtrmv,DTRMV)(const char *uplo, jx = kx; i__1 = n; for (j = 1; j <= i__1; ++j) { - if (fabs(x[jx])>GMX_DOUBLE_MIN) { + if (std::abs(x[jx])>GMX_DOUBLE_MIN) { temp = x[jx]; ix = kx; i__2 = j - 1; @@ -81,7 +79,7 @@ F77_FUNC(dtrmv,DTRMV)(const char *uplo, } else { if (incx == 1) { for (j = n; j >= 1; --j) { - if (fabs(x[j])>GMX_DOUBLE_MIN) { + if (std::abs(x[j])>GMX_DOUBLE_MIN) { temp = x[j]; i__1 = j + 1; for (i__ = n; i__ >= i__1; --i__) { @@ -96,7 +94,7 @@ F77_FUNC(dtrmv,DTRMV)(const char *uplo, kx += (n - 1) * incx; jx = kx; for (j = n; j >= 1; --j) { - if (fabs(x[jx])>GMX_DOUBLE_MIN) { + if (std::abs(x[jx])>GMX_DOUBLE_MIN) { temp = x[jx]; ix = kx; i__1 = j + 1; diff --git a/src/gromacs/linearalgebra/gmx_blas/dtrsm.c b/src/gromacs/linearalgebra/gmx_blas/dtrsm.cpp similarity index 80% rename from src/gromacs/linearalgebra/gmx_blas/dtrsm.c rename to src/gromacs/linearalgebra/gmx_blas/dtrsm.cpp index 52b89b7bf0..d92a2e638d 100644 --- a/src/gromacs/linearalgebra/gmx_blas/dtrsm.c +++ b/src/gromacs/linearalgebra/gmx_blas/dtrsm.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -17,10 +17,10 @@ F77_FUNC(dtrsm,DTRSM)(const char * side, double *b, int * ldb__) { - const char xside = toupper(*side); - const char xuplo = toupper(*uplo); - const char xtrans = toupper(*transa); - const char xdiag = toupper(*diag); + const char xside = std::toupper(*side); + const char xuplo = std::toupper(*uplo); + const char xtrans = std::toupper(*transa); + const char xdiag = std::toupper(*diag); int i,j,k; double temp; @@ -34,7 +34,7 @@ F77_FUNC(dtrsm,DTRSM)(const char * side, if(n<=0) return; - if(fabs(alpha)GMX_DOUBLE_EPS) { + if(std::abs(alpha-1.0)>GMX_DOUBLE_EPS) { for(i=0;i=0;k--) { - if(fabs(b[j*(ldb)+k])>GMX_DOUBLE_MIN) { + if(std::abs(b[j*(ldb)+k])>GMX_DOUBLE_MIN) { if(xdiag=='N') b[j*(ldb)+k] /= a[k*(lda)+k]; for(i=0;iGMX_DOUBLE_EPS) + if(std::abs(alpha-1.0)>GMX_DOUBLE_EPS) for(i=0;iGMX_DOUBLE_MIN) { + if(std::abs(b[j*(ldb)+k])>GMX_DOUBLE_MIN) { if(xdiag=='N') b[j*(ldb)+k] /= a[k*(lda)+k]; for(i=k+1;iGMX_DOUBLE_EPS) + if(std::abs(alpha-1.0)>GMX_DOUBLE_EPS) for(i=0;iGMX_DOUBLE_MIN) { + if(std::abs(a[j*(lda)+k])>GMX_DOUBLE_MIN) { for(i=0;i=0;j--) { - if(fabs(alpha)>GMX_DOUBLE_MIN) + if(std::abs(alpha)>GMX_DOUBLE_MIN) for(i=0;iGMX_DOUBLE_MIN) { + if(std::abs(a[j*(lda)+k])>GMX_DOUBLE_MIN) { for(i=0;iGMX_DOUBLE_MIN) { + if(std::abs(a[k*(lda)+j])>GMX_DOUBLE_MIN) { temp = a[k*(lda)+j]; for(i=0;iGMX_DOUBLE_EPS) + if(std::abs(alpha-1.0)>GMX_DOUBLE_EPS) for(i=0;iGMX_DOUBLE_MIN) { + if(std::abs(a[k*(lda)+j])>GMX_DOUBLE_MIN) { temp = a[k*(lda)+j]; for(i=0;iGMX_DOUBLE_EPS) + if(std::abs(alpha-1.0)>GMX_DOUBLE_EPS) for(i=0;i +#include #include "../gmx_blas.h" int @@ -18,12 +18,12 @@ F77_FUNC(idamax,IDAMAX)(int *n__, if(n==1) return 1; - dmax = fabs(dx[0]); + dmax = std::abs(dx[0]); idxmax = 1; if(incx==1) { for(i=1;idmax) { dmax = tmp; idxmax = i+1; @@ -33,7 +33,7 @@ F77_FUNC(idamax,IDAMAX)(int *n__, /* Non-unit increments */ ix = incx; /* this is really 0 + an increment */ for(i=1;idmax) { dmax = tmp; idxmax = ix+1; diff --git a/src/gromacs/linearalgebra/gmx_blas/isamax.c b/src/gromacs/linearalgebra/gmx_blas/isamax.cpp similarity index 85% rename from src/gromacs/linearalgebra/gmx_blas/isamax.c rename to src/gromacs/linearalgebra/gmx_blas/isamax.cpp index 2f12ead63f..2ea16c06d4 100644 --- a/src/gromacs/linearalgebra/gmx_blas/isamax.c +++ b/src/gromacs/linearalgebra/gmx_blas/isamax.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" int @@ -18,12 +18,12 @@ F77_FUNC(isamax,ISAMAX)(int *n__, if(n==1) return 1; - dmax = fabs(dx[0]); + dmax = std::abs(dx[0]); idxmax = 1; if(incx==1) { for(i=1;idmax) { dmax = tmp; idxmax = i+1; @@ -33,7 +33,7 @@ F77_FUNC(isamax,ISAMAX)(int *n__, /* Non-unit increments */ ix = incx; /* this is really 0 + an increment */ for(i=1;idmax) { dmax = tmp; idxmax = ix+1; diff --git a/src/gromacs/linearalgebra/gmx_blas/sasum.c b/src/gromacs/linearalgebra/gmx_blas/sasum.cpp similarity index 74% rename from src/gromacs/linearalgebra/gmx_blas/sasum.c rename to src/gromacs/linearalgebra/gmx_blas/sasum.cpp index c622c42af2..91e9ad9081 100644 --- a/src/gromacs/linearalgebra/gmx_blas/sasum.c +++ b/src/gromacs/linearalgebra/gmx_blas/sasum.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" float @@ -27,7 +27,7 @@ F77_FUNC(sasum,SASUM)(int *n__, i__1 = nincx; i__2 = incx; for (i__ = 1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) { - dtemp += fabs(dx[i__]); + dtemp += std::abs(dx[i__]); } return dtemp; } @@ -36,7 +36,7 @@ F77_FUNC(sasum,SASUM)(int *n__, if (m != 0) { i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { - dtemp += fabs(dx[i__]); + dtemp += std::abs(dx[i__]); } if (n < 6) { return dtemp; @@ -45,9 +45,9 @@ F77_FUNC(sasum,SASUM)(int *n__, mp1 = m + 1; i__2 = n; for (i__ = mp1; i__ <= i__2; i__ += 6) { - dtemp = dtemp + fabs(dx[i__]) + fabs(dx[i__ + 1]) + - fabs(dx[i__ + 2]) + fabs(dx[i__+ 3]) + fabs(dx[i__ + 4]) + - fabs(dx[i__ + 5]); + dtemp = dtemp + std::abs(dx[i__]) + std::abs(dx[i__ + 1]) + + std::abs(dx[i__ + 2]) + std::abs(dx[i__+ 3]) + std::abs(dx[i__ + 4]) + + std::abs(dx[i__ + 5]); } return dtemp; } diff --git a/src/gromacs/linearalgebra/gmx_blas/saxpy.c b/src/gromacs/linearalgebra/gmx_blas/saxpy.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_blas/saxpy.c rename to src/gromacs/linearalgebra/gmx_blas/saxpy.cpp diff --git a/src/gromacs/linearalgebra/gmx_blas/scopy.c b/src/gromacs/linearalgebra/gmx_blas/scopy.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_blas/scopy.c rename to src/gromacs/linearalgebra/gmx_blas/scopy.cpp diff --git a/src/gromacs/linearalgebra/gmx_blas/sdot.c b/src/gromacs/linearalgebra/gmx_blas/sdot.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_blas/sdot.c rename to src/gromacs/linearalgebra/gmx_blas/sdot.cpp diff --git a/src/gromacs/linearalgebra/gmx_blas/sgemm.c b/src/gromacs/linearalgebra/gmx_blas/sgemm.cpp similarity index 72% rename from src/gromacs/linearalgebra/gmx_blas/sgemm.c rename to src/gromacs/linearalgebra/gmx_blas/sgemm.cpp index 1904f20207..1c3b7f87d1 100644 --- a/src/gromacs/linearalgebra/gmx_blas/sgemm.c +++ b/src/gromacs/linearalgebra/gmx_blas/sgemm.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -19,11 +19,10 @@ F77_FUNC(sgemm,SGEMM)(const char *transa, float *c, int *ldc__) { - const char tra=toupper(*transa); - const char trb=toupper(*transb); + const char tra=std::toupper(*transa); + const char trb=std::toupper(*transb); float temp; int i,j,l; - int nrowa,ncola,nrowb; int m = *m__; int n = *n__; @@ -35,24 +34,11 @@ F77_FUNC(sgemm,SGEMM)(const char *transa, float alpha = *alpha__; float beta = *beta__; - if(tra=='N') { - nrowa = m; - ncola = k; - } else { - nrowa = k; - ncola = m; - } - - if(trb=='N') - nrowb = k; - else - nrowb = n; - - if(m==0 || n==0 || (( fabs(alpha)GMX_FLOAT_EPS) { + } else if(std::abs(beta-1.0)>GMX_FLOAT_EPS) { for(i=0;iGMX_FLOAT_MIN) { + if( std::abs(b[ j*(ldb) + l ])>GMX_FLOAT_MIN) { temp = alpha * b[ j*(ldb) + l ]; for(i=0;iGMX_FLOAT_EPS) { + } else if(std::abs(beta-1.0)>GMX_FLOAT_EPS) { for(i=0;iGMX_FLOAT_MIN) { + if( std::abs(b[ l*(ldb) + j ])>GMX_FLOAT_MIN) { temp = alpha * b[ l*(ldb) + j ]; for(i=0;i -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -17,7 +17,7 @@ F77_FUNC(sgemv,SGEMV)(const char *trans, float *y, int *incy__) { - const char ch=toupper(*trans); + const char ch=std::toupper(*trans); int lenx,leny,kx,ky; int i,j,jx,jy,ix,iy; float temp; @@ -30,7 +30,7 @@ F77_FUNC(sgemv,SGEMV)(const char *trans, int incy = *incy__; int lda = *lda__; - if(n<=0 || m<=0 || (fabs(alpha)GMX_FLOAT_EPS) { + if(std::abs(beta-1.0)>GMX_FLOAT_EPS) { if(incy==1) { - if(fabs(beta)GMX_FLOAT_MIN) { + if( std::abs(x[jx-1])>GMX_FLOAT_MIN) { temp = alpha * x[jx-1]; for(i=1;i<=m;i++) y[i-1] += temp * a[(j-1)*(lda)+(i-1)]; @@ -86,7 +86,7 @@ F77_FUNC(sgemv,SGEMV)(const char *trans, } else { /* non-unit y incr. */ for(j=1;j<=n;j++,jx+=incx) - if( fabs(x[jx-1])>GMX_FLOAT_MIN) { + if( std::abs(x[jx-1])>GMX_FLOAT_MIN) { temp = alpha * x[jx-1]; iy = ky; for(i=1;i<=m;i++,iy+=incy) diff --git a/src/gromacs/linearalgebra/gmx_blas/sger.c b/src/gromacs/linearalgebra/gmx_blas/sger.cpp similarity index 87% rename from src/gromacs/linearalgebra/gmx_blas/sger.c rename to src/gromacs/linearalgebra/gmx_blas/sger.cpp index 71947e7222..ac4ca72bb0 100644 --- a/src/gromacs/linearalgebra/gmx_blas/sger.c +++ b/src/gromacs/linearalgebra/gmx_blas/sger.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -25,7 +25,7 @@ F77_FUNC(sger,SGER)(int *m__, int lda = *lda__; float alpha = *alpha__; - if(m<=0 || n<=0 || fabs(alpha)0) @@ -35,7 +35,7 @@ F77_FUNC(sger,SGER)(int *m__, if(incx==1) { for(j=0;jGMX_FLOAT_MIN) { + if(std::abs(y[jy])>GMX_FLOAT_MIN) { temp = alpha * y[jy]; for(i=0;iGMX_FLOAT_MIN) { + if(std::abs(y[jy])>GMX_FLOAT_MIN) { temp = alpha * y[jy]; ix = kx; for(i=0;i +#include #include "gromacs/utility/real.h" @@ -31,7 +31,7 @@ F77_FUNC(snrm2,SNRM2)(int * n__, max_ix = 1+(n-1)*(incx); for(ix=1;ix<=max_ix;ix+=incx) { t = x[ix-1]; - if(fabs(t)>GMX_FLOAT_MIN) { + if(std::abs(t)>GMX_FLOAT_MIN) { absxi = (t>=0) ? t : (-t); if(scale -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -16,7 +16,7 @@ F77_FUNC(ssymv,SSYMV)(const char *uplo, float *y, int *incy__) { - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); int kx,ky,i,j,ix,iy,jx,jy; float temp1,temp2; @@ -40,9 +40,9 @@ F77_FUNC(ssymv,SSYMV)(const char *uplo, else ky = 1 - (n -1)*(incy); - if(fabs(beta-1.0)>GMX_FLOAT_EPS) { + if(std::abs(beta-1.0)>GMX_FLOAT_EPS) { if(incy==1) { - if(fabs(beta) -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -17,7 +17,7 @@ F77_FUNC(ssyr2,SSYR2)(const char * uplo, { int kx,ky,ix,iy,jx,jy,j,i; float temp1,temp2; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); int n = *n__; int lda = *lda__; @@ -25,7 +25,7 @@ F77_FUNC(ssyr2,SSYR2)(const char * uplo, int incy = *incy__; float alpha = *alpha__; - if(n<=0 || fabs(alpha)GMX_FLOAT_MIN || fabs(y[j-1])>GMX_FLOAT_MIN ) { + if( std::abs(x[j-1])>GMX_FLOAT_MIN || std::abs(y[j-1])>GMX_FLOAT_MIN ) { temp1 = alpha * y[j-1]; temp2 = alpha * x[j-1]; for(i=1;i<=j;i++) @@ -63,7 +63,7 @@ F77_FUNC(ssyr2,SSYR2)(const char * uplo, /* non-unit increments */ for(j=1;j<=n;j++) { - if( fabs(x[jx-1])>GMX_FLOAT_MIN || fabs(y[jy-1])>GMX_FLOAT_MIN ) { + if( std::abs(x[jx-1])>GMX_FLOAT_MIN || std::abs(y[jy-1])>GMX_FLOAT_MIN ) { temp1 = alpha * y[jy-1]; temp2 = alpha * x[jx-1]; ix = kx; @@ -83,7 +83,7 @@ F77_FUNC(ssyr2,SSYR2)(const char * uplo, if(incx==1 && incy==1) { /* Unit increments for both x and y */ for(j=1;j<=n;j++) { - if( fabs(x[j-1])>GMX_FLOAT_MIN || fabs(y[j-1])>GMX_FLOAT_MIN ) { + if( std::abs(x[j-1])>GMX_FLOAT_MIN || std::abs(y[j-1])>GMX_FLOAT_MIN ) { temp1 = alpha * y[j-1]; temp2 = alpha * x[j-1]; for(i=j;i<=n;i++) @@ -95,7 +95,7 @@ F77_FUNC(ssyr2,SSYR2)(const char * uplo, /* non-unit increments */ for(j=1;j<=n;j++) { - if( fabs(x[jx-1])>GMX_FLOAT_MIN || fabs(y[jy-1])>GMX_FLOAT_MIN ) { + if( std::abs(x[jx-1])>GMX_FLOAT_MIN || std::abs(y[jy-1])>GMX_FLOAT_MIN ) { temp1 = alpha * y[jy-1]; temp2 = alpha * x[jx-1]; ix = jx; diff --git a/src/gromacs/linearalgebra/gmx_blas/ssyr2k.c b/src/gromacs/linearalgebra/gmx_blas/ssyr2k.cpp similarity index 78% rename from src/gromacs/linearalgebra/gmx_blas/ssyr2k.c rename to src/gromacs/linearalgebra/gmx_blas/ssyr2k.cpp index 335206c72b..9f57adf417 100644 --- a/src/gromacs/linearalgebra/gmx_blas/ssyr2k.c +++ b/src/gromacs/linearalgebra/gmx_blas/ssyr2k.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -19,7 +19,6 @@ F77_FUNC(ssyr2k,SSYR2K)(const char *uplo, int *ldc__) { char ch1,ch2; - int nrowa; int i,j,l; float temp1,temp2; @@ -32,20 +31,15 @@ F77_FUNC(ssyr2k,SSYR2K)(const char *uplo, float alpha = *alpha__; float beta = *beta__; - ch1 = toupper(*uplo); - ch2 = toupper(*trans); + ch1 = std::toupper(*uplo); + ch2 = std::toupper(*trans); - if(ch2 == 'N') - nrowa = n; - else - nrowa = k; - - if(n==0 || ( ( fabs(alpha)GMX_FLOAT_EPS) + else if(std::abs(beta-1.0)>GMX_FLOAT_EPS) for(i=1;i<=j;i++) c[(j-1)*(ldc)+(i-1)] *= beta; for(l=1;l<=k;l++) { - if( fabs(a[(l-1)*(lda)+(j-1)])>GMX_FLOAT_MIN || - fabs(b[(l-1)*(ldb)+(j-1)])>GMX_FLOAT_MIN) { + if( std::abs(a[(l-1)*(lda)+(j-1)])>GMX_FLOAT_MIN || + std::abs(b[(l-1)*(ldb)+(j-1)])>GMX_FLOAT_MIN) { temp1 = alpha * b[(l-1)*(ldb)+(j-1)]; temp2 = alpha * a[(l-1)*(lda)+(j-1)]; for(i=1;i<=j;i++) @@ -91,15 +85,15 @@ F77_FUNC(ssyr2k,SSYR2K)(const char *uplo, } else { /* lower */ for(j=1;j<=n;j++) { - if(fabs(beta)GMX_FLOAT_EPS) + else if(std::abs(beta-1.0)>GMX_FLOAT_EPS) for(i=j;i<=n;i++) c[(j-1)*(ldc)+(i-1)] *= beta; for(l=1;l<=k;l++) { - if( fabs(a[(l-1)*(lda)+(j-1)])>GMX_FLOAT_MIN || - fabs(b[(l-1)*(ldb)+(j-1)])>GMX_FLOAT_MIN) { + if( std::abs(a[(l-1)*(lda)+(j-1)])>GMX_FLOAT_MIN || + std::abs(b[(l-1)*(ldb)+(j-1)])>GMX_FLOAT_MIN) { temp1 = alpha * b[(l-1)*(ldb)+(j-1)]; temp2 = alpha * a[(l-1)*(lda)+(j-1)]; for(i=j;i<=n;i++) @@ -121,7 +115,7 @@ F77_FUNC(ssyr2k,SSYR2K)(const char *uplo, temp1 += a[(i-1)*(lda)+(l-1)] * b[(j-1)*(ldb)+(l-1)]; temp2 += b[(i-1)*(ldb)+(l-1)] * a[(j-1)*(lda)+(l-1)]; } - if(fabs(beta) +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -25,10 +25,9 @@ F77_FUNC(strmm,STRMM)(const char *side, float alpha = *alpha__; /* Local variables */ - int i__, j, k, info; + int i__, j, k; float temp; int lside; - int nrowa; int upper; int nounit; a_dim1 = lda; @@ -40,20 +39,14 @@ F77_FUNC(strmm,STRMM)(const char *side, /* Function Body */ lside = (*side=='L' || *side=='l'); - if (lside) { - nrowa = m; - } else { - nrowa = n; - } + nounit = (*diag=='N' || *diag=='n'); upper = (*uplo=='U' || *uplo=='u'); - info = 0; - if (n == 0) { return; } - if (fabs(alpha)GMX_FLOAT_MIN) { + if ( std::abs(b[k + j * b_dim1])>GMX_FLOAT_MIN) { temp = alpha * b[k + j * b_dim1]; i__3 = k - 1; for (i__ = 1; i__ <= i__3; ++i__) { @@ -88,7 +81,7 @@ F77_FUNC(strmm,STRMM)(const char *side, i__1 = n; for (j = 1; j <= i__1; ++j) { for (k = m; k >= 1; --k) { - if (fabs(b[k + j * b_dim1])>GMX_FLOAT_MIN) { + if (std::abs(b[k + j * b_dim1])>GMX_FLOAT_MIN) { temp = alpha * b[k + j * b_dim1]; b[k + j * b_dim1] = temp; if (nounit) { @@ -153,7 +146,7 @@ F77_FUNC(strmm,STRMM)(const char *side, } i__1 = j - 1; for (k = 1; k <= i__1; ++k) { - if ( fabs(a[k + j * a_dim1])>GMX_FLOAT_MIN) { + if ( std::abs(a[k + j * a_dim1])>GMX_FLOAT_MIN) { temp = alpha * a[k + j * a_dim1]; i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { @@ -176,7 +169,7 @@ F77_FUNC(strmm,STRMM)(const char *side, } i__2 = n; for (k = j + 1; k <= i__2; ++k) { - if ( fabs(a[k + j * a_dim1])>GMX_FLOAT_MIN) { + if ( std::abs(a[k + j * a_dim1])>GMX_FLOAT_MIN) { temp = alpha * a[k + j * a_dim1]; i__3 = m; for (i__ = 1; i__ <= i__3; ++i__) { @@ -194,7 +187,7 @@ F77_FUNC(strmm,STRMM)(const char *side, for (k = 1; k <= i__1; ++k) { i__2 = k - 1; for (j = 1; j <= i__2; ++j) { - if ( fabs(a[j + k * a_dim1])>GMX_FLOAT_MIN ) { + if ( std::abs(a[j + k * a_dim1])>GMX_FLOAT_MIN ) { temp = alpha * a[j + k * a_dim1]; i__3 = m; for (i__ = 1; i__ <= i__3; ++i__) { @@ -207,7 +200,7 @@ F77_FUNC(strmm,STRMM)(const char *side, if (nounit) { temp *= a[k + k * a_dim1]; } - if ( fabs(temp-1.0)>GMX_FLOAT_EPS) { + if ( std::abs(temp-1.0)>GMX_FLOAT_EPS) { i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { b[i__ + k * b_dim1] = temp * b[i__ + k * b_dim1]; @@ -218,7 +211,7 @@ F77_FUNC(strmm,STRMM)(const char *side, for (k = n; k >= 1; --k) { i__1 = n; for (j = k + 1; j <= i__1; ++j) { - if ( fabs(a[j + k * a_dim1])>GMX_FLOAT_MIN) { + if ( std::abs(a[j + k * a_dim1])>GMX_FLOAT_MIN) { temp = alpha * a[j + k * a_dim1]; i__2 = m; for (i__ = 1; i__ <= i__2; ++i__) { @@ -231,7 +224,7 @@ F77_FUNC(strmm,STRMM)(const char *side, if (nounit) { temp *= a[k + k * a_dim1]; } - if ( fabs(temp-1.0)>GMX_FLOAT_EPS) { + if ( std::abs(temp-1.0)>GMX_FLOAT_EPS) { i__1 = m; for (i__ = 1; i__ <= i__1; ++i__) { b[i__ + k * b_dim1] = temp * b[i__ + k * b_dim1]; diff --git a/src/gromacs/linearalgebra/gmx_blas/strmv.c b/src/gromacs/linearalgebra/gmx_blas/strmv.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_blas/strmv.c rename to src/gromacs/linearalgebra/gmx_blas/strmv.cpp index 41b661c67b..57a0121f3f 100644 --- a/src/gromacs/linearalgebra/gmx_blas/strmv.c +++ b/src/gromacs/linearalgebra/gmx_blas/strmv.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -15,7 +15,7 @@ F77_FUNC(strmv,STRMV)(const char *uplo, { int a_dim1, a_offset, i__1, i__2; - int i__, j, ix, jx, kx, info; + int i__, j, ix, jx, kx; float temp; int nounit; @@ -28,8 +28,6 @@ F77_FUNC(strmv,STRMV)(const char *uplo, a -= a_offset; --x; - info = 0; - if (n == 0) { return; } @@ -48,7 +46,7 @@ F77_FUNC(strmv,STRMV)(const char *uplo, if (incx == 1) { i__1 = n; for (j = 1; j <= i__1; ++j) { - if (fabs(x[j])>GMX_FLOAT_MIN) { + if (std::abs(x[j])>GMX_FLOAT_MIN) { temp = x[j]; i__2 = j - 1; for (i__ = 1; i__ <= i__2; ++i__) { @@ -63,7 +61,7 @@ F77_FUNC(strmv,STRMV)(const char *uplo, jx = kx; i__1 = n; for (j = 1; j <= i__1; ++j) { - if (fabs(x[jx])>GMX_FLOAT_MIN) { + if (std::abs(x[jx])>GMX_FLOAT_MIN) { temp = x[jx]; ix = kx; i__2 = j - 1; @@ -81,7 +79,7 @@ F77_FUNC(strmv,STRMV)(const char *uplo, } else { if (incx == 1) { for (j = n; j >= 1; --j) { - if (fabs(x[j])>GMX_FLOAT_MIN) { + if (std::abs(x[j])>GMX_FLOAT_MIN) { temp = x[j]; i__1 = j + 1; for (i__ = n; i__ >= i__1; --i__) { @@ -96,7 +94,7 @@ F77_FUNC(strmv,STRMV)(const char *uplo, kx += (n - 1) * incx; jx = kx; for (j = n; j >= 1; --j) { - if (fabs(x[jx])>GMX_FLOAT_MIN) { + if (std::abs(x[jx])>GMX_FLOAT_MIN) { temp = x[jx]; ix = kx; i__1 = j + 1; diff --git a/src/gromacs/linearalgebra/gmx_blas/strsm.c b/src/gromacs/linearalgebra/gmx_blas/strsm.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_blas/strsm.c rename to src/gromacs/linearalgebra/gmx_blas/strsm.cpp index 61aaaaba06..a66649e3f2 100644 --- a/src/gromacs/linearalgebra/gmx_blas/strsm.c +++ b/src/gromacs/linearalgebra/gmx_blas/strsm.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -17,10 +17,10 @@ F77_FUNC(strsm,STRSM)(const char * side, float *b, int * ldb__) { - const char xside = toupper(*side); - const char xuplo = toupper(*uplo); - const char xtrans = toupper(*transa); - const char xdiag = toupper(*diag); + const char xside = std::toupper(*side); + const char xuplo = std::toupper(*uplo); + const char xtrans = std::toupper(*transa); + const char xdiag = std::toupper(*diag); int i,j,k; float temp; @@ -34,7 +34,7 @@ F77_FUNC(strsm,STRSM)(const char * side, return; - if(fabs(alpha)GMX_FLOAT_EPS) { + if(std::abs(alpha-1.0)>GMX_FLOAT_EPS) { for(i=0;i=0;k--) { - if( fabs(b[j*(ldb)+k])>GMX_FLOAT_MIN) { + if( std::abs(b[j*(ldb)+k])>GMX_FLOAT_MIN) { if(xdiag=='N') b[j*(ldb)+k] /= a[k*(lda)+k]; for(i=0;iGMX_FLOAT_EPS) + if(std::abs(alpha-1.0)>GMX_FLOAT_EPS) for(i=0;iGMX_FLOAT_MIN) { + if( std::abs(b[j*(ldb)+k])>GMX_FLOAT_MIN) { if(xdiag=='N') b[j*(ldb)+k] /= a[k*(lda)+k]; for(i=k+1;iGMX_FLOAT_EPS) + if(std::abs(alpha-1.0)>GMX_FLOAT_EPS) for(i=0;iGMX_FLOAT_MIN) { + if( std::abs(a[j*(lda)+k])>GMX_FLOAT_MIN) { for(i=0;i=0;j--) { - if(fabs(alpha-1.0)>GMX_FLOAT_EPS) + if(std::abs(alpha-1.0)>GMX_FLOAT_EPS) for(i=0;iGMX_FLOAT_MIN ) { + if( std::abs(a[j*(lda)+k])>GMX_FLOAT_MIN ) { for(i=0;iGMX_FLOAT_MIN) { + if( std::abs(a[k*(lda)+j])>GMX_FLOAT_MIN) { temp = a[k*(lda)+j]; for(i=0;iGMX_FLOAT_EPS) + if(std::abs(alpha-1.0)>GMX_FLOAT_EPS) for(i=0;iGMX_FLOAT_MIN) { + if( std::abs(a[k*(lda)+j])>GMX_FLOAT_MIN) { temp = a[k*(lda)+j]; for(i=0;iGMX_FLOAT_EPS) + if(std::abs(alpha-1.0)>GMX_FLOAT_EPS) for(i=0;i -#include +#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -91,7 +91,7 @@ F77_FUNC(dbdsdc,DBDSDC)(const char *uplo, u[u_dim1 + 1] = (d__[1]>0) ? 1.0 : -1.0; vt[vt_dim1 + 1] = 1.; } - d__[1] = fabs(d__[1]); + d__[1] = std::abs(d__[1]); return; } nm1 = *n - 1; @@ -149,7 +149,7 @@ F77_FUNC(dbdsdc,DBDSDC)(const char *uplo, } orgnrm = F77_FUNC(dlanst,DLANST)("M", n, &d__[1], &e[1]); - if ( fabs(orgnrm)0) ? eps : -eps; } @@ -189,10 +189,10 @@ F77_FUNC(dbdsdc,DBDSDC)(const char *uplo, i__1 = nm1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__]) < eps || i__ == nm1) { + if (std::abs(e[i__]) < eps || i__ == nm1) { if (i__ < nm1) { nsize = i__ - start + 1; - } else if (fabs(e[i__]) >= eps) { + } else if (std::abs(e[i__]) >= eps) { nsize = *n - start + 1; } else { nsize = i__ - start + 1; @@ -203,7 +203,7 @@ F77_FUNC(dbdsdc,DBDSDC)(const char *uplo, q[*n + (qstart - 1) * *n] = (d__[*n]>0) ? 1.0 : -1.0; q[*n + (smlsiz + qstart - 1) * *n] = 1.; } - d__[*n] = fabs(d__[*n]); + d__[*n] = std::abs(d__[*n]); } if (icompq == 2) { F77_FUNC(dlasd0,DLASD0)(&nsize, &sqre, &d__[start], &e[start], diff --git a/src/gromacs/linearalgebra/gmx_lapack/dbdsqr.c b/src/gromacs/linearalgebra/gmx_lapack/dbdsqr.cpp similarity index 86% rename from src/gromacs/linearalgebra/gmx_lapack/dbdsqr.c rename to src/gromacs/linearalgebra/gmx_lapack/dbdsqr.cpp index be772eba61..950d9392aa 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dbdsqr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dbdsqr.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -23,7 +23,7 @@ F77_FUNC(dbdsqr,DBDSQR)(const char *uplo, double *work, int *info) { - const char xuplo = toupper(*uplo); + const char xuplo = std::toupper(*uplo); int c_dim1, c_offset, u_dim1, u_offset, vt_dim1, vt_offset, i__1, i__2; double r__1, r__2, r__3, r__4; @@ -56,9 +56,8 @@ F77_FUNC(dbdsqr,DBDSQR)(const char *uplo, double sminoa; double thresh; int rotate; - double sminlo, tolmul; + double tolmul; int itmp1,itmp2; - double ftmp; --d__; --e; @@ -142,43 +141,43 @@ F77_FUNC(dbdsqr,DBDSQR)(const char *uplo, } } - r__3 = 100.f, r__4 = pow(GMX_DOUBLE_EPS,c_b15); + r__3 = 100.f, r__4 = std::pow(GMX_DOUBLE_EPS,c_b15); r__1 = 10.f, r__2 = (r__3r__2) ? r__1 : r__2; tol = tolmul * eps; smax = 0.f; i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { - r__2 = smax, r__3 = (r__1 = d__[i__], fabs(r__1)); + r__2 = smax, r__3 = (r__1 = d__[i__], std::abs(r__1)); smax = (r__2>r__3) ? r__2 : r__3; } i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - r__2 = smax, r__3 = (r__1 = e[i__], fabs(r__1)); + r__2 = smax, r__3 = (r__1 = e[i__], std::abs(r__1)); smax = (r__2>r__3) ? r__2 : r__3; } sminl = 0.f; if (tol >= 0.f) { - sminoa = fabs(d__[1]); + sminoa = std::abs(d__[1]); if (sminoa == 0.f) { goto L50; } mu = sminoa; i__1 = *n; for (i__ = 2; i__ <= i__1; ++i__) { - mu = (r__2 = d__[i__], fabs(r__2)) * (mu / (mu + (r__1 = e[i__ - - 1], fabs(r__1)))); + mu = (r__2 = d__[i__], std::abs(r__2)) * (mu / (mu + (r__1 = e[i__ - + 1], std::abs(r__1)))); sminoa = (sminoar__2) ? r__1 : r__2; } else { - r__1 = fabs(tol) * smax, r__2 = *n * 6 * *n * unfl; + r__1 = std::abs(tol) * smax, r__2 = *n * 6 * *n * unfl; thresh = (r__1>r__2) ? r__1 : r__2; } maxit = *n * 6 * *n; @@ -196,16 +195,16 @@ L60: goto L200; } - if (tol < 0.f && (r__1 = d__[m], fabs(r__1)) <= thresh) { + if (tol < 0.f && (r__1 = d__[m], std::abs(r__1)) <= thresh) { d__[m] = 0.f; } - smax = (r__1 = d__[m], fabs(r__1)); + smax = (r__1 = d__[m], std::abs(r__1)); smin = smax; i__1 = m - 1; for (lll = 1; lll <= i__1; ++lll) { ll = m - lll; - abss = (r__1 = d__[ll], fabs(r__1)); - abse = (r__1 = e[ll], fabs(r__1)); + abss = (r__1 = d__[ll], std::abs(r__1)); + abse = (r__1 = e[ll], std::abs(r__1)); if (tol < 0.f && abss <= thresh) { d__[ll] = 0.f; } @@ -248,7 +247,7 @@ L90: goto L60; } if (ll > oldm || m < oldll) { - if ((r__1 = d__[ll], fabs(r__1)) >= (r__2 = d__[m], fabs(r__2))) { + if ((r__1 = d__[ll], std::abs(r__1)) >= (r__2 = d__[m], std::abs(r__2))) { idir = 1; } else { idir = 2; @@ -256,44 +255,42 @@ L90: } if (idir == 1) { - if( (fabs(e[m-1]) <= fabs(tol) * fabs(d__[m])) || - (tol<0.0 && fabs(e[m-1])<=thresh)) { + if( (std::abs(e[m-1]) <= std::abs(tol) * std::abs(d__[m])) || + (tol<0.0 && std::abs(e[m-1])<=thresh)) { e[m - 1] = 0.f; goto L60; } if (tol >= 0.f) { - mu = (r__1 = d__[ll], fabs(r__1)); + mu = (r__1 = d__[ll], std::abs(r__1)); sminl = mu; i__1 = m - 1; for (lll = ll; lll <= i__1; ++lll) { - if ((r__1 = e[lll], fabs(r__1)) <= tol * mu) { + if ((r__1 = e[lll], std::abs(r__1)) <= tol * mu) { e[lll] = 0.f; goto L60; } - sminlo = sminl; - mu = (r__2 = d__[lll + 1], fabs(r__2)) * (mu / (mu + (r__1 = - e[lll], fabs(r__1)))); + mu = (r__2 = d__[lll + 1], std::abs(r__2)) * (mu / (mu + (r__1 = + e[lll], std::abs(r__1)))); sminl = (sminl= 0.f) { - mu = (r__1 = d__[m], fabs(r__1)); + mu = (r__1 = d__[m], std::abs(r__1)); sminl = mu; i__1 = ll; for (lll = m - 1; lll >= i__1; --lll) { - if ((r__1 = e[lll], fabs(r__1)) <= tol * mu) { + if ((r__1 = e[lll], std::abs(r__1)) <= tol * mu) { e[lll] = 0.f; goto L60; } - sminlo = sminl; - mu = (r__2 = d__[lll], fabs(r__2)) * (mu / (mu + (r__1 = e[ - lll], fabs(r__1)))); + mu = (r__2 = d__[lll], std::abs(r__2)) * (mu / (mu + (r__1 = e[ + lll], std::abs(r__1)))); sminl = (sminl 0.f) { @@ -357,7 +354,7 @@ L90: F77_FUNC(dlasr,DLASR)("L", "V", "F", &i__1, ncc, &work[nm12 + 1], &work[nm13 + 1], &c__[ll + c_dim1], ldc); } - if ((r__1 = e[m - 1], fabs(r__1)) <= thresh) { + if ((r__1 = e[m - 1], std::abs(r__1)) <= thresh) { e[m - 1] = 0.f; } } else { @@ -396,14 +393,14 @@ L90: F77_FUNC(dlasr,DLASR)("L", "V", "B", &i__1, ncc, &work[1], &work[*n], &c__[ ll + c_dim1], ldc); } - if ((r__1 = e[ll], fabs(r__1)) <= thresh) { + if ((r__1 = e[ll], std::abs(r__1)) <= thresh) { e[ll] = 0.f; } } } else { if (idir == 1) { - f = ((r__1 = d__[ll], fabs(r__1)) - shift) * ( ((d__[ll] > 0) ? c_b49 : -c_b49) + shift / d__[ll]); + f = ((r__1 = d__[ll], std::abs(r__1)) - shift) * ( ((d__[ll] > 0) ? c_b49 : -c_b49) + shift / d__[ll]); g = e[ll]; i__1 = m - 1; for (i__ = ll; i__ <= i__1; ++i__) { @@ -445,12 +442,12 @@ L90: F77_FUNC(dlasr,DLASR)("L", "V", "F", &i__1, ncc, &work[nm12 + 1], &work[nm13 + 1], &c__[ll + c_dim1], ldc); } - if ((r__1 = e[m - 1], fabs(r__1)) <= thresh) { + if ((r__1 = e[m - 1], std::abs(r__1)) <= thresh) { e[m - 1] = 0.f; } } else { - f = ((r__1 = d__[m], fabs(r__1)) - shift) * ( ((d__[m] > 0) ? c_b49 : -c_b49) + shift / d__[m]); + f = ((r__1 = d__[m], std::abs(r__1)) - shift) * ( ((d__[m] > 0) ? c_b49 : -c_b49) + shift / d__[m]); g = e[m - 1]; i__1 = ll + 1; for (i__ = m; i__ >= i__1; --i__) { @@ -477,7 +474,7 @@ L90: } e[ll] = f; - if ((r__1 = e[ll], fabs(r__1)) <= thresh) { + if ((r__1 = e[ll], std::abs(r__1)) <= thresh) { e[ll] = 0.f; } if (*ncvt > 0) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgebd2.c b/src/gromacs/linearalgebra/gmx_lapack/dgebd2.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dgebd2.c rename to src/gromacs/linearalgebra/gmx_lapack/dgebd2.cpp index 24e84afb1c..3225a907b8 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dgebd2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dgebd2.cpp @@ -50,7 +50,6 @@ F77_FUNC(dgebd2,DGEBD2)(int *m, for(i=0;i<*m;i++) { i1 = *n - i; i2 = ( (i+1) < (*n-1)) ? (i+1) : (*n-1); - i3 = 1; F77_FUNC(dlarfg,DLARFG)(&i1,&(a[i*(*lda)+i]),&(a[i2*(*lda)+i]),lda,&(taup[i])); d[i] = a[i*(*lda)+i]; a[i*(*lda)+i] = 1.0; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgebrd.c b/src/gromacs/linearalgebra/gmx_lapack/dgebrd.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgebrd.c rename to src/gromacs/linearalgebra/gmx_lapack/dgebrd.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgelq2.c b/src/gromacs/linearalgebra/gmx_lapack/dgelq2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgelq2.c rename to src/gromacs/linearalgebra/gmx_lapack/dgelq2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgelqf.c b/src/gromacs/linearalgebra/gmx_lapack/dgelqf.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dgelqf.c rename to src/gromacs/linearalgebra/gmx_lapack/dgelqf.cpp index f6742f6c9a..6531e5b796 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dgelqf.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dgelqf.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgeqr2.c b/src/gromacs/linearalgebra/gmx_lapack/dgeqr2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgeqr2.c rename to src/gromacs/linearalgebra/gmx_lapack/dgeqr2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgeqrf.c b/src/gromacs/linearalgebra/gmx_lapack/dgeqrf.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgeqrf.c rename to src/gromacs/linearalgebra/gmx_lapack/dgeqrf.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgesdd.c b/src/gromacs/linearalgebra/gmx_lapack/dgesdd.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/dgesdd.c rename to src/gromacs/linearalgebra/gmx_lapack/dgesdd.cpp index b7ab54b67e..8f150bb741 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dgesdd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dgesdd.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -30,14 +30,13 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, double anrm; int idum[1], ierr, itau; int minmn, wrkbl, itaup, itauq, mnthr; - int wntqa; int nwork; - int wntqn, wntqo, wntqs; + int wntqn; int bdspac; double bignum; - int minwrk, ldwrku, maxwrk, ldwkvt; + int ldwrku, maxwrk, ldwkvt; double smlnum,minval, safemin; - int wntqas, lquery; + int lquery; int c__0 = 0; int c__1 = 1; double zero = 0.0; @@ -60,13 +59,8 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, *info = 0; minmn = (*m < *n) ? *m : *n; mnthr = (int) (minmn * 11. / 6.); - wntqa = (*jobz=='a' || *jobz=='A'); - wntqs = (*jobz=='s' || *jobz=='S'); - wntqas = wntqa || wntqs; wntqn = (*jobz=='o' || *jobz=='O'); - wntqo = (*jobz=='n' || *jobz=='N'); - minwrk = 1; maxwrk = 1; lquery = *lwork == -1; @@ -84,7 +78,6 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, wrkbl = *n * 67; i__1 = wrkbl, i__2 = bdspac + *n; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = bdspac + *n; } else { wrkbl = *n * 67; @@ -93,7 +86,6 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, i__1 = wrkbl, i__2 = bdspac + *n * 3; wrkbl = (i__1 > i__2) ? i__1 : i__2; maxwrk = wrkbl + *n * *n; - minwrk = bdspac + *n * *n + *n * 3; } } else { @@ -101,11 +93,9 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, if (wntqn) { i__1 = wrkbl, i__2 = bdspac + *n * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *n * 3 + ((*m > bdspac) ? *m : bdspac); } else { i__1 = maxwrk, i__2 = bdspac + *n * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *n * 3 + ((*m > bdspac) ? *m : bdspac); } } } else { @@ -121,7 +111,6 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, wrkbl = *m * 67; i__1 = wrkbl, i__2 = bdspac + *m; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = bdspac + *m; } else { wrkbl = *m * 67; @@ -131,18 +120,15 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, i__1 = wrkbl, i__2 = bdspac + *m * 3; wrkbl = (i__1 > i__2) ? i__1 : i__2; maxwrk = wrkbl + *m * *m; - minwrk = bdspac + *m * *m + *m * 3; } } else { wrkbl = *m * 3 + (*m + *n*32); if (wntqn) { i__1 = wrkbl, i__2 = bdspac + *m * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *m * 3 + ((*m > bdspac) ? *m : bdspac); } else { i__1 = wrkbl, i__2 = bdspac + *m * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *m * 3 + ((*m > bdspac) ? *m : bdspac); } } } @@ -165,7 +151,7 @@ F77_FUNC(dgesdd,DGESDD)(const char *jobz, eps = GMX_DOUBLE_EPS; minval = GMX_DOUBLE_MIN; safemin = minval / eps; - smlnum = sqrt(safemin) / eps; + smlnum = std::sqrt(safemin) / eps; bignum = 1. / smlnum; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgetf2.c b/src/gromacs/linearalgebra/gmx_lapack/dgetf2.cpp similarity index 89% rename from src/gromacs/linearalgebra/gmx_lapack/dgetf2.c rename to src/gromacs/linearalgebra/gmx_lapack/dgetf2.cpp index c4b9ee401a..b0549a6511 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dgetf2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dgetf2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -14,10 +14,9 @@ F77_FUNC(dgetf2,DGETF2)(int *m, int *info) { int j,jp,k,t1,t2,t3; - double one,minusone; + double minusone; double tmp; - one = 1.0; minusone = -1.0; if(*m<=0 || *n<=0) @@ -29,7 +28,7 @@ F77_FUNC(dgetf2,DGETF2)(int *m, t2 = 1; jp = j - 1 + F77_FUNC(idamax,IDAMAX)(&t1,&(a[(j-1)*(*lda)+(j-1)]),&t2); ipiv[j-1] = jp; - if( fabs(a[(j-1)*(*lda)+(jp-1)])>GMX_DOUBLE_MIN ) { + if( std::abs(a[(j-1)*(*lda)+(jp-1)])>GMX_DOUBLE_MIN ) { if(jp != j) F77_FUNC(dswap,DSWAP)(n,&(a[ j-1 ]),lda,&(a[ jp-1 ]),lda); diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgetrf.c b/src/gromacs/linearalgebra/gmx_lapack/dgetrf.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgetrf.c rename to src/gromacs/linearalgebra/gmx_lapack/dgetrf.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgetri.c b/src/gromacs/linearalgebra/gmx_lapack/dgetri.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgetri.c rename to src/gromacs/linearalgebra/gmx_lapack/dgetri.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dgetrs.c b/src/gromacs/linearalgebra/gmx_lapack/dgetrs.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dgetrs.c rename to src/gromacs/linearalgebra/gmx_lapack/dgetrs.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlabrd.c b/src/gromacs/linearalgebra/gmx_lapack/dlabrd.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlabrd.c rename to src/gromacs/linearalgebra/gmx_lapack/dlabrd.cpp index 606b9d7a64..dc4d7683b5 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlabrd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlabrd.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlacpy.c b/src/gromacs/linearalgebra/gmx_lapack/dlacpy.cpp similarity index 90% rename from src/gromacs/linearalgebra/gmx_lapack/dlacpy.c rename to src/gromacs/linearalgebra/gmx_lapack/dlacpy.cpp index 29caf32c29..8da6f6bd62 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlacpy.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlacpy.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" /* LAPACK */ @@ -12,7 +12,7 @@ F77_FUNC(dlacpy,DLACPY)(const char *uplo, int *ldb) { int i,j,minjm; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); if(ch=='U') { for(j=0;j<*n;j++) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlae2.c b/src/gromacs/linearalgebra/gmx_lapack/dlae2.cpp similarity index 76% rename from src/gromacs/linearalgebra/gmx_lapack/dlae2.c rename to src/gromacs/linearalgebra/gmx_lapack/dlae2.cpp index 00e57f5597..df6fb3e3da 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlae2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlae2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -15,10 +15,10 @@ F77_FUNC(dlae2,DLAE2)(double *a, sm = *a + *c__; df = *a - *c__; - adf = fabs(df); + adf = std::abs(df); tb = *b + *b; - ab = fabs(tb); - if (fabs(*a) > fabs(*c__)) { + ab = std::abs(tb); + if (std::abs(*a) > std::abs(*c__)) { acmx = *a; acmn = *c__; } else { @@ -27,13 +27,13 @@ F77_FUNC(dlae2,DLAE2)(double *a, } if (adf > ab) { d__1 = ab / adf; - rt = adf * sqrt(d__1 * d__1 + 1.); + rt = adf * std::sqrt(d__1 * d__1 + 1.); } else if (adf < ab) { d__1 = adf / ab; - rt = ab * sqrt(d__1 * d__1 + 1.); + rt = ab * std::sqrt(d__1 * d__1 + 1.); } else { - rt = ab * sqrt(2.); + rt = ab * std::sqrt(2.); } if (sm < 0.) { *rt1 = (sm - rt) * .5; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlaebz.c b/src/gromacs/linearalgebra/gmx_lapack/dlaebz.cpp similarity index 96% rename from src/gromacs/linearalgebra/gmx_lapack/dlaebz.c rename to src/gromacs/linearalgebra/gmx_lapack/dlaebz.cpp index b141d09c17..c9485eb3e6 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlaebz.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlaebz.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -59,7 +59,7 @@ F77_FUNC(dlaebz,DLAEBZ)(int *ijob, for (ji = 1; ji <= i__1; ++ji) { for (jp = 1; jp <= 2; ++jp) { tmp1 = d__[1] - ab[ji + jp * ab_dim1]; - if (fabs(tmp1) < *pivmin) { + if (std::abs(tmp1) < *pivmin) { tmp1 = -(*pivmin); } nab[ji + jp * nab_dim1] = 0; @@ -70,7 +70,7 @@ F77_FUNC(dlaebz,DLAEBZ)(int *ijob, i__2 = *n; for (j = 2; j <= i__2; ++j) { tmp1 = d__[j] - e2[j - 1] / tmp1 - ab[ji + jp * ab_dim1]; - if (fabs(tmp1) < *pivmin) { + if (std::abs(tmp1) < *pivmin) { tmp1 = -(*pivmin); } if (tmp1 <= 0.) { @@ -247,9 +247,9 @@ F77_FUNC(dlaebz,DLAEBZ)(int *ijob, kfnew = kf; i__2 = kl; for (ji = kf; ji <= i__2; ++ji) { - tmp1 = fabs(ab[ji + (ab_dim1 << 1)] - ab[ji + ab_dim1]); - d__3 = fabs(ab[ji + (ab_dim1 << 1)]); - d__4 = fabs(ab[ji + ab_dim1]); + tmp1 = std::abs(ab[ji + (ab_dim1 << 1)] - ab[ji + ab_dim1]); + d__3 = std::abs(ab[ji + (ab_dim1 << 1)]); + d__4 = std::abs(ab[ji + ab_dim1]); tmp2 = (d__3>d__4) ? d__3 : d__4; d__1 = (*abstol>*pivmin) ? *abstol : *pivmin; d__2 = *reltol * tmp2; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlaed6.c b/src/gromacs/linearalgebra/gmx_lapack/dlaed6.cpp similarity index 78% rename from src/gromacs/linearalgebra/gmx_lapack/dlaed6.c rename to src/gromacs/linearalgebra/gmx_lapack/dlaed6.cpp index 8753f4d062..80baf78639 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlaed6.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlaed6.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -48,7 +48,7 @@ F77_FUNC(dlaed6,DLAED6)(int *kniter, a = c__ * (d__[1] + d__[2]) + z__[1] + z__[2]; b = c__ * d__[1] * d__[2] + z__[1] * d__[2] + z__[2] * d__[1]; } - r__1 = fabs(a), r__2 = fabs(b), r__1 = ((r__1>r__2)? r__1:r__2), r__2 = fabs(c__); + r__1 = std::abs(a), r__2 = std::abs(b), r__1 = ((r__1>r__2)? r__1:r__2), r__2 = std::abs(c__); temp = (r__1>r__2) ? r__1 : r__2; a /= temp; b /= temp; @@ -56,15 +56,15 @@ F77_FUNC(dlaed6,DLAED6)(int *kniter, if (c__ == 0.f) { *tau = b / a; } else if (a <= 0.f) { - *tau = (a - sqrt((r__1 = a * a - b * 4.f * c__, fabs(r__1)))) / ( + *tau = (a - std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs(r__1)))) / ( c__ * 2.f); } else { - *tau = b * 2.f / (a + sqrt((r__1 = a * a - b * 4.f * c__, fabs(r__1)))); + *tau = b * 2.f / (a + std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs(r__1)))); } temp = *rho + z__[1] / (d__[1] - *tau) + z__[2] / (d__[2] - *tau) + z__[3] / (d__[3] - *tau); - if (fabs(*finit) <= fabs(temp)) { + if (std::abs(*finit) <= std::abs(temp)) { *tau = 0.f; } } @@ -72,19 +72,19 @@ F77_FUNC(dlaed6,DLAED6)(int *kniter, eps = GMX_DOUBLE_EPS; base = 2; safemin = GMX_DOUBLE_MIN*(1.0+GMX_DOUBLE_EPS); - i__1 = (int) (log(safemin) / log(base) / 3.f); - small1 = pow(base, i__1); + i__1 = static_cast(std::log(safemin) / std::log(base) / 3.f); + small1 = std::pow(base, static_cast(i__1)); sminv1 = 1.f / small1; small2 = small1 * small1; sminv2 = sminv1 * sminv1; if (*orgati) { - r__3 = (r__1 = d__[2] - *tau, fabs(r__1)), r__4 = (r__2 = d__[3] - * - tau, fabs(r__2)); + r__3 = (r__1 = d__[2] - *tau, std::abs(r__1)), r__4 = (r__2 = d__[3] - * + tau, std::abs(r__2)); temp = (r__3r__2)? r__1:r__2), r__2 = fabs(c__); + r__1 = std::abs(a), r__2 = std::abs(b), r__1 = ((r__1>r__2)? r__1:r__2), r__2 = std::abs(c__); temp = (r__1>r__2) ? r__1 : r__2; a /= temp; b /= temp; @@ -150,9 +150,9 @@ F77_FUNC(dlaed6,DLAED6)(int *kniter, if (c__ == 0.f) { eta = b / a; } else if (a <= 0.f) { - eta = (a - sqrt((r__1 = a * a - b * 4.f * c__, fabs(r__1)))) / ( c__ * 2.f); + eta = (a - std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs(r__1)))) / ( c__ * 2.f); } else { - eta = b * 2.f / (a + sqrt((r__1 = a * a - b * 4.f * c__, fabs( r__1)))); + eta = b * 2.f / (a + std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs( r__1)))); } if (f * eta >= 0.f) { eta = -f / df; @@ -186,13 +186,13 @@ F77_FUNC(dlaed6,DLAED6)(int *kniter, temp3 = temp2 * temp; temp4 = temp1 / dscale[i__ - 1]; fc += temp4; - erretm += fabs(temp4); + erretm += std::abs(temp4); df += temp2; ddf += temp3; } f = *finit + *tau * fc; - erretm = (fabs(*finit) + fabs(*tau) * erretm) * 8.f + fabs(*tau) * df; - if (fabs(f) <= eps * erretm) { + erretm = (std::abs(*finit) + std::abs(*tau) * erretm) * 8.f + std::abs(*tau) * df; + if (std::abs(f) <= eps * erretm) { goto L60; } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlaev2.c b/src/gromacs/linearalgebra/gmx_lapack/dlaev2.cpp similarity index 76% rename from src/gromacs/linearalgebra/gmx_lapack/dlaev2.c rename to src/gromacs/linearalgebra/gmx_lapack/dlaev2.cpp index 56e0c9b98b..c1f5a8f62e 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlaev2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlaev2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -21,10 +21,10 @@ F77_FUNC(dlaev2,DLAEV2)(double * a, sm = *a + *c__; df = *a - *c__; - adf = fabs(df); + adf = std::abs(df); tb = *b + *b; - ab = fabs(tb); - if (fabs(*a) > fabs(*c__)) { + ab = std::abs(tb); + if (std::abs(*a) > std::abs(*c__)) { acmx = *a; acmn = *c__; } else { @@ -33,13 +33,13 @@ F77_FUNC(dlaev2,DLAEV2)(double * a, } if (adf > ab) { d__1 = ab / adf; - rt = adf * sqrt(d__1 * d__1 + 1.); + rt = adf * std::sqrt(d__1 * d__1 + 1.); } else if (adf < ab) { d__1 = adf / ab; - rt = ab * sqrt(d__1 * d__1 + 1.); + rt = ab * std::sqrt(d__1 * d__1 + 1.); } else { - rt = ab * sqrt(2.); + rt = ab * std::sqrt(2.); } if (sm < 0.) { *rt1 = (sm - rt) * .5; @@ -62,18 +62,18 @@ F77_FUNC(dlaev2,DLAEV2)(double * a, cs = df - rt; sgn2 = -1; } - acs = fabs(cs); + acs = std::abs(cs); if (acs > ab) { ct = -tb / cs; - *sn1 = 1. / sqrt(ct * ct + 1.); + *sn1 = 1. / std::sqrt(ct * ct + 1.); *cs1 = ct * *sn1; } else { - if (fabs(ab) +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -31,7 +31,6 @@ F77_FUNC(dlagtf,DLAGTF)(int *n, *info = 0; if (*n < 0) { *info = -1; - i__1 = -(*info); return; } @@ -41,7 +40,7 @@ F77_FUNC(dlagtf,DLAGTF)(int *n, a[1] -= *lambda; in[*n] = 0; if (*n == 1) { - if (fabs(a[1])eps) ? *tol : eps; - scale1 = fabs(a[1]) + fabs(b[1]); + scale1 = std::abs(a[1]) + std::abs(b[1]); i__1 = *n - 1; for (k = 1; k <= i__1; ++k) { a[k + 1] -= *lambda; - scale2 = fabs(c__[k]) + fabs(a[k + 1]); + scale2 = std::abs(c__[k]) + std::abs(a[k + 1]); if (k < *n - 1) { - scale2 += fabs(b[k + 1]); + scale2 += std::abs(b[k + 1]); } - if (fabs(a[k]) -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -38,7 +38,6 @@ F77_FUNC(dlagts,DLAGTS)(int *job, *info = -2; } if (*info != 0) { - i__1 = -(*info); return; } @@ -53,26 +52,26 @@ F77_FUNC(dlagts,DLAGTS)(int *job, if (*job < 0) { if (*tol <= 0.) { - *tol = fabs(a[1]); + *tol = std::abs(a[1]); if (*n > 1) { d__1 = *tol; - d__2 = fabs(a[2]); + d__2 = std::abs(a[2]); d__1 = (d__1>d__2) ? d__1 : d__2; - d__2 = fabs(b[1]); + d__2 = std::abs(b[1]); *tol = (d__1>d__2) ? d__1 : d__2; } i__1 = *n; for (k = 3; k <= i__1; ++k) { d__4 = *tol; - d__5 = fabs(a[k]); + d__5 = std::abs(a[k]); d__4 = (d__4>d__5) ? d__4 : d__5; - d__5 = fabs(b[k - 1]); + d__5 = std::abs(b[k - 1]); d__4 = (d__4>d__5) ? d__4 : d__5; - d__5 = fabs(d__[k - 2]); + d__5 = std::abs(d__[k - 2]); *tol = (d__4>d__5) ? d__4 : d__5; } *tol *= eps; - if (fabs(*tol) absak) { + if (std::abs(absak) absak) { *info = k; return; } else { temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { *info = k; return; } @@ -131,10 +130,10 @@ F77_FUNC(dlagts,DLAGTS)(int *job, if(ak<0) pert *= -1.0; L40: - absak = fabs(ak); + absak = std::abs(ak); if (absak < 1.) { if (absak < sfmin) { - if (fabs(absak) absak) { + if (std::abs(absak) absak) { ak += pert; pert *= 2; goto L40; @@ -142,7 +141,7 @@ L40: temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { ak += pert; pert *= 2; goto L40; @@ -164,17 +163,17 @@ L40: temp = y[k]; } ak = a[k]; - absak = fabs(ak); + absak = std::abs(ak); if (absak < 1.) { if (absak < sfmin) { - if (fabs(absak) absak) { + if (std::abs(absak) absak) { *info = k; return; } else { temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { *info = k; return; } @@ -198,10 +197,10 @@ L40: pert *= -1.0; L70: - absak = fabs(ak); + absak = std::abs(ak); if (absak < 1.) { if (absak < sfmin) { - if (fabs(absak) absak) { + if (std::abs(absak) absak) { ak += pert; pert *= 2; goto L70; @@ -209,7 +208,7 @@ L70: temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { ak += pert; pert *= 2; goto L70; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlamrg.c b/src/gromacs/linearalgebra/gmx_lapack/dlamrg.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dlamrg.c rename to src/gromacs/linearalgebra/gmx_lapack/dlamrg.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlange.c b/src/gromacs/linearalgebra/gmx_lapack/dlange.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_lapack/dlange.c rename to src/gromacs/linearalgebra/gmx_lapack/dlange.cpp index 2de7c403d2..958747c244 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlange.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlange.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "../gmx_lapack.h" @@ -11,7 +11,7 @@ F77_FUNC(dlange,DLANGE)(const char *norm, int *lda, double *work) { - const char ch=toupper(*norm); + const char ch=std::toupper(*norm); double dtemp,sum,max,val,scale; int i,j; @@ -20,7 +20,7 @@ F77_FUNC(dlange,DLANGE)(const char *norm, max = 0.0; for(j=0;j<*n;j++) for(i=0;i<*m;i++) { - dtemp = fabs(a[j*(*lda)+i]); + dtemp = std::abs(a[j*(*lda)+i]); if(dtemp>max) max = dtemp; } @@ -33,7 +33,7 @@ F77_FUNC(dlange,DLANGE)(const char *norm, for(j=0;j<*n;j++) { sum = 0.0; for(i=0;i<*m;i++) - sum += fabs(a[j*(*lda)+i]); + sum += std::abs(a[j*(*lda)+i]); if(sum>max) max = sum; } @@ -45,7 +45,7 @@ F77_FUNC(dlange,DLANGE)(const char *norm, work[i] = 0.0; for(j=0;j<*n;j++) for(i=0;i<*m;i++) - work[i] += fabs(a[j*(*lda)+i]); + work[i] += std::abs(a[j*(*lda)+i]); max = 0; for(i=0;i<*m;i++) if(work[i]>max) @@ -60,7 +60,7 @@ F77_FUNC(dlange,DLANGE)(const char *norm, i = 1; for(j=0;j<*n;j++) F77_FUNC(dlassq,DLASSQ)(m,&(a[j*(*lda)+0]),&i,&scale,&sum); - val = scale*sqrt(sum); + val = scale* std::sqrt(sum); break; default: diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlanst.c b/src/gromacs/linearalgebra/gmx_lapack/dlanst.cpp similarity index 69% rename from src/gromacs/linearalgebra/gmx_lapack/dlanst.c rename to src/gromacs/linearalgebra/gmx_lapack/dlanst.cpp index 924e518c52..b3feb40a64 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlanst.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlanst.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "../gmx_lapack.h" @@ -9,7 +9,7 @@ F77_FUNC(dlanst,DLANST)(const char *norm, double *d, double *e) { - const char ch=toupper(*norm); + const char ch=std::toupper(*norm); double dtemp,max,val,scale,sum; int i,j; @@ -19,12 +19,12 @@ F77_FUNC(dlanst,DLANST)(const char *norm, switch(ch) { case 'M': - max = fabs(d[*n-1]); + max = std::abs(d[*n-1]); for(i=0;i<(*n-1);i++) { - dtemp = fabs(d[i]); + dtemp = std::abs(d[i]); if(dtemp>max) max = dtemp; - dtemp = fabs(e[i]); + dtemp = std::abs(e[i]); if(dtemp>max) max = dtemp; } @@ -36,14 +36,14 @@ F77_FUNC(dlanst,DLANST)(const char *norm, case 'I': if(*n==1) - val = fabs(d[0]); + val = std::abs(d[0]); else { - max = fabs(d[0]) + fabs(e[0]); - dtemp = fabs(e[*n-2]) + fabs(d[*n-1]); + max = std::abs(d[0]) + std::abs(e[0]); + dtemp = std::abs(e[*n-2]) + std::abs(d[*n-1]); if(dtemp>max) max = dtemp; for(i=1;i<(*n-1);i++) { - dtemp = fabs(d[i]) + fabs(e[i]) + fabs(e[i-1]); + dtemp = std::abs(d[i]) + std::abs(e[i]) + std::abs(e[i-1]); if(dtemp>max) max = dtemp; } @@ -62,7 +62,7 @@ F77_FUNC(dlanst,DLANST)(const char *norm, sum *= 2; } F77_FUNC(dlassq,DLASSQ)(n,d,&j,&scale,&sum); - val = scale * sqrt(sum); + val = scale * std::sqrt(sum); break; default: diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlansy.c b/src/gromacs/linearalgebra/gmx_lapack/dlansy.cpp similarity index 87% rename from src/gromacs/linearalgebra/gmx_lapack/dlansy.c rename to src/gromacs/linearalgebra/gmx_lapack/dlansy.cpp index 6b9d874b4f..97ea1e2ab6 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlansy.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlansy.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -33,7 +33,7 @@ F77_FUNC(dlansy,DLANSY)(const char *norm, const char *uplo, int *n, double *a, i i__2 = j; for (i__ = 1; i__ <= i__2; ++i__) { d__2 = value; - d__3 = fabs(a[i__ + j * a_dim1]); + d__3 = std::abs(a[i__ + j * a_dim1]); value = (d__2>d__3) ? d__2 : d__3; } } @@ -43,7 +43,7 @@ F77_FUNC(dlansy,DLANSY)(const char *norm, const char *uplo, int *n, double *a, i i__2 = *n; for (i__ = j; i__ <= i__2; ++i__) { d__2 = value; - d__3 = fabs(a[i__ + j * a_dim1]); + d__3 = std::abs(a[i__ + j * a_dim1]); value = (d__2>d__3) ? d__2 : d__3; } } @@ -57,11 +57,11 @@ F77_FUNC(dlansy,DLANSY)(const char *norm, const char *uplo, int *n, double *a, i sum = 0.; i__2 = j - 1; for (i__ = 1; i__ <= i__2; ++i__) { - absa = fabs(a[i__ + j * a_dim1]); + absa = std::abs(a[i__ + j * a_dim1]); sum += absa; work[i__] += absa; } - work[j] = sum + fabs(a[j + j * a_dim1]); + work[j] = sum + std::abs(a[j + j * a_dim1]); } i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { @@ -75,10 +75,10 @@ F77_FUNC(dlansy,DLANSY)(const char *norm, const char *uplo, int *n, double *a, i } i__1 = *n; for (j = 1; j <= i__1; ++j) { - sum = work[j] + fabs(a[j + j * a_dim1]); + sum = work[j] + std::abs(a[j + j * a_dim1]); i__2 = *n; for (i__ = j + 1; i__ <= i__2; ++i__) { - absa = fabs(a[i__ + j * a_dim1]); + absa = std::abs(a[i__ + j * a_dim1]); sum += absa; work[i__] += absa; } @@ -106,7 +106,7 @@ F77_FUNC(dlansy,DLANSY)(const char *norm, const char *uplo, int *n, double *a, i sum *= 2; i__1 = *lda + 1; F77_FUNC(dlassq,DLASSQ)(n, &a[a_offset], &i__1, &scale, &sum); - value = scale * sqrt(sum); + value = scale * std::sqrt(sum); } ret_val = value; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlapy2.c b/src/gromacs/linearalgebra/gmx_lapack/dlapy2.cpp similarity index 68% rename from src/gromacs/linearalgebra/gmx_lapack/dlapy2.c rename to src/gromacs/linearalgebra/gmx_lapack/dlapy2.cpp index d8b59d2fa3..c3b2124805 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlapy2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlapy2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "gromacs/utility/real.h" @@ -9,8 +9,8 @@ F77_FUNC(dlapy2,DLAPY2)(double * x, double * y) double xabs,yabs; double w,z; - xabs = fabs(*x); - yabs = fabs(*y); + xabs = std::abs(*x); + yabs = std::abs(*y); if(xabs>yabs) { w = xabs; @@ -20,11 +20,11 @@ F77_FUNC(dlapy2,DLAPY2)(double * x, double * y) z = xabs; } - if( fabs(z) +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include #include "gromacs/utility/real.h" @@ -91,12 +100,12 @@ L40: s = work[inds + i__] - *sigma; } - if (! (s > 0. || s < 1.)) { + if (isnan(s)) { sawnan = 1; j = *b1 + 1; L60: - if (work[inds + j] > 0. || work[inds + j] < 1.) { + if (!isnan(work[inds + j])) { ++j; goto L60; } @@ -106,7 +115,7 @@ L60: for (i__ = j + 1; i__ <= i__1; ++i__) { dplus = d__[i__] + s; work[i__] = ld[i__] / dplus; - if (fabs(work[i__]) 0. || tmp < 1.)) { + if (isnan(tmp)) { sawnan = 1; j = *bn - 3; L90: - if (work[indp + j] > 0. || work[indp + j] < 1.) { + if (!isnan(work[indp + j])) { --j; goto L90; } @@ -139,7 +148,7 @@ L90: dminus = lld[i__] + work[indp + i__]; tmp = d__[i__] / dminus; work[indumn + i__] = l[i__] * tmp; - if (fabs(tmp)= i__1; --i__) { - if (fabs(z__[i__ + 1]) -#include +#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -17,7 +17,7 @@ F77_FUNC(dlarf,DLARF)(const char *side, int *ldc, double *work) { - const char ch=toupper(*side); + const char ch=std::toupper(*side); double one = 1.0; double zero = 0.0; double minustau = -(*tau); @@ -25,12 +25,12 @@ F77_FUNC(dlarf,DLARF)(const char *side, if(ch=='L') { - if(fabs(*tau)>GMX_DOUBLE_MIN) { + if(std::abs(*tau)>GMX_DOUBLE_MIN) { F77_FUNC(dgemv,DGEMV)("T",m,n,&one,c,ldc,v,incv,&zero,work,&i1); F77_FUNC(dger,DGER)(m,n,&minustau,v,incv,work,&i1,c,ldc); } } else { - if(fabs(*tau)>GMX_DOUBLE_MIN) { + if(std::abs(*tau)>GMX_DOUBLE_MIN) { F77_FUNC(dgemv,DGEMV)("N",m,n,&one,c,ldc,v,incv,&zero,work,&i1); F77_FUNC(dger,DGER)(m,n,&minustau,work,&i1,v,incv,c,ldc); } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlarfb.c b/src/gromacs/linearalgebra/gmx_lapack/dlarfb.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dlarfb.c rename to src/gromacs/linearalgebra/gmx_lapack/dlarfb.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlarfg.c b/src/gromacs/linearalgebra/gmx_lapack/dlarfg.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/dlarfg.c rename to src/gromacs/linearalgebra/gmx_lapack/dlarfg.cpp index ff9bfbe297..b1f33b3325 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlarfg.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlarfg.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -26,7 +26,7 @@ F77_FUNC(dlarfg,DLARFG)(int *n, xnorm = F77_FUNC(dnrm2,DNRM2)(&ti1,x,incx); - if(fabs(xnorm) +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -40,7 +40,7 @@ F77_FUNC(dlarft,DLARFT)(const char *direct, if (*direct=='F' || *direct=='f') { i__1 = *k; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(tau[i__])= 1; --i__) { - if (fabs(tau[i__]) +#include #include "../gmx_lapack.h" void @@ -44,9 +44,8 @@ F77_FUNC(dlarnv,DLARNV)(int *idist, i__2 = il; for (i__ = 1; i__ <= i__2; ++i__) { - x[iv + i__ - 1] = sqrt(log(u[(i__ << 1) - 2]) * -2.) * - cos(u[(i__ << 1) - 1] * - (double)6.2831853071795864769252867663); + x[iv + i__ - 1] = std::sqrt(std::log(u[(i__ << 1) - 2]) * -2.) * + std::cos(u[(i__ << 1) - 1] * (double)6.2831853071795864769252867663); } } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlarrbx.c b/src/gromacs/linearalgebra/gmx_lapack/dlarrbx.cpp similarity index 90% rename from src/gromacs/linearalgebra/gmx_lapack/dlarrbx.c rename to src/gromacs/linearalgebra/gmx_lapack/dlarrbx.cpp index bfe4304cd2..7bd312cb6d 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlarrbx.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlarrbx.cpp @@ -1,4 +1,13 @@ -#include +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include #include "gromacs/utility/real.h" @@ -31,9 +40,9 @@ F77_FUNC(dlarrbx,DLARRBX)(int *n, int i1, i2, ii, kk; double fac, gap, mid; int cnt; - double eps, tmp, left; + double tmp, left; int nint, prev, next, nleft; - double right, width, dplus, error; + double right, width, dplus; int nright, olnint; k = 0; right = 0.0; @@ -49,7 +58,6 @@ F77_FUNC(dlarrbx,DLARRBX)(int *n, --d__; *info = 0; - eps = GMX_DOUBLE_EPS; i__1 = *n << 1; for (i__ = 1; i__ <= i__1; ++i__) { iwork[i__] = 0; @@ -59,16 +67,6 @@ F77_FUNC(dlarrbx,DLARRBX)(int *n, prev = 0; i__1 = *ilast; for (i__ = *ifirst; i__ <= i__1; ++i__) { - ii = i__ - *offset; - if (i__ == *ifirst) { - gap = wgap[ii]; - } else if (i__ == *ilast) { - gap = wgap[ii - 1]; - } else { - d__1 = wgap[ii - 1], d__2 = wgap[ii]; - gap = (d__1 0. || s < 1.)) { + if (isnan(s)) { cnt = 0; s = -left; @@ -114,7 +112,7 @@ L40: ++cnt; } tmp = lld[j] / dplus; - if (fabs(tmp) 0. || s < 1.)) { + if (isnan(s)) { cnt = 0; s = -right; @@ -161,7 +159,7 @@ L60: ++cnt; } tmp = lld[j] / dplus; - if (fabs(tmp)d__2) ? d__1 : d__2; gap = 0.; @@ -267,7 +265,7 @@ L80: if (dplus < 0.) { ++cnt; } - if (! (s > 0. || s < 1.)) { + if (isnan(s)) { cnt = 0; s = -mid; i__2 = *n - 1; @@ -277,7 +275,7 @@ L80: ++cnt; } tmp = lld[j] / dplus; - if (fabs(tmp) -#include +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include +#include #include "gromacs/utility/real.h" @@ -80,7 +89,7 @@ F77_FUNC(dlarrex,DLARREX)(const char *range, *nsplit = 1; i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__]) <= *tol) { + if (std::abs(e[i__]) <= *tol) { isplit[*nsplit] = i__; ++(*nsplit); } @@ -102,19 +111,19 @@ F77_FUNC(dlarrex,DLARREX)(const char *range, } in = iend - ibegin + 1; - gl = d__[ibegin] - fabs(e[ibegin]); - gu = d__[ibegin] + fabs(e[ibegin]); + gl = d__[ibegin] - std::abs(e[ibegin]); + gu = d__[ibegin] + std::abs(e[ibegin]); gersch[(ibegin << 1) - 1] = gl; gersch[ibegin * 2] = gu; - gersch[(iend << 1) - 1] = d__[iend] - fabs(e[iend - 1]); - gersch[iend * 2] = d__[iend] + fabs(e[iend - 1]); + gersch[(iend << 1) - 1] = d__[iend] - std::abs(e[iend - 1]); + gersch[iend * 2] = d__[iend] + std::abs(e[iend - 1]); d__1 = gersch[(iend << 1) - 1]; gl = (d__1gu) ? d__1 : gu; i__2 = iend - 1; for (i__ = ibegin + 1; i__ <= i__2; ++i__) { - offd = fabs(e[i__ - 1]) + fabs(e[i__]); + offd = std::abs(e[i__ - 1]) + std::abs(e[i__]); gersch[(i__ << 1) - 1] = d__[i__] - offd; d__1 = gersch[(i__ << 1) - 1]; gl = (d__1gu) ? d__1 : gu; } - d__1 = fabs(gl), d__2 = fabs(gu); + d__1 = std::abs(gl), d__2 = std::abs(gu); nrm = (d__1>d__2) ? d__1 : d__2; width = gu - gl; @@ -183,7 +192,7 @@ L60: } for (i__ = in; i__ >= 1; --i__) { tmp = sgndef * work[i__]; - if (tmp < 0. || fabs(work[(in << 1) + i__]) 0. || tmp < 1.)) { + if (tmp < 0. || std::abs(work[(in << 1) + i__])= 1; --i__) { tmp = sgndef * work[i__]; - if (tmp < 0. || fabs(work[(in << 1) + i__]) 0. || tmp < 1.)) { + if (tmp < 0. || std::abs(work[(in << 1) + i__]) +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include #include "gromacs/utility/real.h" @@ -44,17 +53,17 @@ F77_FUNC(dlarrfx,DLARRFX)(int *n, L10: s = -(*sigma); dplus[1] = d__[1] + s; - dmax1 = fabs(dplus[1]); + dmax1 = std::abs(dplus[1]); i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { lplus[i__] = ld[i__] / dplus[i__]; s = s * lplus[i__] * l[i__] - *sigma; dplus[i__ + 1] = d__[i__ + 1] + s; - d__2 = dmax1, d__3 = fabs(dplus[i__ + 1]); + d__2 = dmax1, d__3 = std::abs(dplus[i__ + 1]); dmax1 = (d__2>d__3) ? d__2 : d__3; } - if (! (dmax1 > 0. || dmax1 < 1.)) { - *sigma -= fabs(*sigma) * delta; + if (isnan(dmax1)) { + *sigma -= std::abs(*sigma) * delta; delta *= 2.; goto L10; } @@ -64,17 +73,17 @@ L10: L30: s = -tmp; work[1] = d__[1] + s; - dmax2 = fabs(work[1]); + dmax2 = std::abs(work[1]); i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { work[*n + i__] = ld[i__] / work[i__]; s = s * work[*n + i__] * l[i__] - tmp; work[i__ + 1] = d__[i__ + 1] + s; - d__2 = dmax2, d__3 = fabs(work[i__ + 1]); + d__2 = dmax2, d__3 = std::abs(work[i__ + 1]); dmax2 = (d__2>d__3) ? d__2 : d__3; } - if (! (dmax2 > 0. || dmax2 < 1.)) { - tmp += fabs(tmp) * delta; + if (isnan(dmax2)) { + tmp += std::abs(tmp) * delta; delta *= 2.; goto L30; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlarrvx.c b/src/gromacs/linearalgebra/gmx_lapack/dlarrvx.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/dlarrvx.c rename to src/gromacs/linearalgebra/gmx_lapack/dlarrvx.cpp index 378f21db16..953d975fdd 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlarrvx.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlarrvx.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" @@ -132,11 +132,11 @@ L171: F77_FUNC(dcopy,DCOPY)(&im, &w[wbegin], &c__1, &work[1], &c__1); i__2 = im - 1; for (i__ = 1; i__ <= i__2; ++i__) { - work[inderr + i__] = eps * fabs(work[i__]); + work[inderr + i__] = eps * std::abs(work[i__]); work[indgap + i__] = work[i__ + 1] - work[i__]; } - work[inderr + im] = eps * fabs(work[im]); - d__2 = fabs(work[im]); + work[inderr + im] = eps * std::abs(work[im]); + d__2 = std::abs(work[im]); work[indgap + im] = (d__2>eps) ? d__2 : eps; ndone = 0; @@ -197,11 +197,11 @@ L40: i__3 = oldlst; for (j = oldfst; j <= i__3; ++j) { if (j == oldlst || work[indgap + j] >= - reltol * fabs(work[j])) { + reltol * std::abs(work[j])) { newlst = j; } else { - relgap = work[indgap + j] / fabs(work[j]); + relgap = work[indgap + j] / std::abs(work[j]); if (j == newfrs) { minrgp = relgap; } else { @@ -220,7 +220,7 @@ L40: z_dim1], &z__[ibegin + (newftt + 1) * z_dim1], &work[indwrk], info); if (*info == 0) { - tmp = eps * fabs(sigma); + tmp = eps * std::abs(sigma); i__4 = newlst; for (k = newfrs; k <= i__4; ++k) { work[k] -= sigma; @@ -234,10 +234,7 @@ L40: iwork[k] = newlst; } else { *info = 0; - if (minrgp >= mgstol) { - nomgs = 0; - } else { - + if (minrgp < mgstol) { work[indwrk] = d__[ibegin]; i__4 = in - 1; for (k = 1; k <= i__4; ++k) { @@ -281,8 +278,8 @@ L90: &ztz, &mingma, &iwork[iindr + ktot], & isuppz[(ktot << 1) - 1], &work[indwrk]); tmp = 1. / ztz; - nrminv = sqrt(tmp); - resid = fabs(mingma) * nrminv; + nrminv = std::sqrt(tmp); + resid = std::abs(mingma) * nrminv; rqcorr = mingma * tmp; if (k == in) { gap = work[indgap + k - 1]; @@ -294,8 +291,8 @@ L90: gap = (d__1 *tol * gap && fabs(rqcorr) > eps * 4. * - fabs(lambda)) { + if (resid > *tol * gap && std::abs(rqcorr) > eps * 4. * + std::abs(lambda)) { work[k] = lambda + rqcorr; if (iter < 8) { goto L90; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlartg.c b/src/gromacs/linearalgebra/gmx_lapack/dlartg.cpp similarity index 70% rename from src/gromacs/linearalgebra/gmx_lapack/dlartg.c rename to src/gromacs/linearalgebra/gmx_lapack/dlartg.cpp index 92ae0b19ed..53d9b9f74c 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlartg.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlartg.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -18,24 +18,24 @@ F77_FUNC(dlartg,DLARTG)(double *f, eps = GMX_DOUBLE_EPS; minval = GMX_DOUBLE_MIN; safemin = minval*(1.0+eps); - n = 0.5*log( safemin/eps ) / log(2); - safemin2 = pow(2,n); + n = static_cast(0.5*std::log( safemin/eps ) / std::log(2.0)); + safemin2 = std::pow(2.0,static_cast(n)); safemx2 = 1.0 / safemin2; - if(fabs(*g) g1a) ? f1a : g1a; if(scale >= safemx2) { count = 0; @@ -43,11 +43,11 @@ F77_FUNC(dlartg,DLARTG)(double *f, count++; f1 *= safemin2; g1 *= safemin2; - f1a = fabs(f1); - g1a = fabs(g1); + f1a = std::abs(f1); + g1a = std::abs(g1); scale = (f1a > g1a) ? f1a : g1a; } - *r = sqrt(f1*f1 + g1*g1); + *r = std::sqrt(f1*f1 + g1*g1); *cs = f1 / *r; *sn = g1 / *r; for(i=0;i g1a) ? f1a : g1a; } - *r = sqrt(f1*f1 + g1*g1); + *r = std::sqrt(f1*f1 + g1*g1); *cs = f1 / *r; *sn = g1 / *r; for(i=0;ifabs(*g) && *cs<0.0) { + if(std::abs(*f)>std::abs(*g) && *cs<0.0) { *cs *= -1.0; *sn *= -1.0; *r *= -1.0; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlaruv.c b/src/gromacs/linearalgebra/gmx_lapack/dlaruv.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlaruv.c rename to src/gromacs/linearalgebra/gmx_lapack/dlaruv.cpp index 805a34ffc6..4e042e4485 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlaruv.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlaruv.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlas2.c b/src/gromacs/linearalgebra/gmx_lapack/dlas2.cpp similarity index 70% rename from src/gromacs/linearalgebra/gmx_lapack/dlas2.c rename to src/gromacs/linearalgebra/gmx_lapack/dlas2.cpp index c86f060626..38a6f96023 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlas2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlas2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -10,25 +10,25 @@ F77_FUNC(dlas2,DLAS2)(double *f, double *ssmin, double *ssmax) { - double fa = fabs(*f); - double ga = fabs(*g); - double ha = fabs(*h); + double fa = std::abs(*f); + double ga = std::abs(*g); + double ha = std::abs(*h); double fhmin,fhmax,tmax,tmin,tmp1,tmp2; double as,at,au,c; fhmin = (faha) ? fa : ha; - if(fabs(fhmin)ga) ? fhmax : ga; tmin = (fhmax -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -18,7 +18,7 @@ F77_FUNC(dlascl,DLASCL)(const char *type, int *lda, int *info) { - const char ch=toupper(*type); + const char ch=std::toupper(*type); int i,j,k,l,k1,k2,k3,k4; int done=0; double minval,smlnum,bignum; @@ -39,11 +39,11 @@ F77_FUNC(dlascl,DLASCL)(const char *type, cfrom1 = cfromc * smlnum; cto1 = ctoc / bignum; - if(fabs(cfrom1)>fabs(ctoc) && fabs(ctoc)>GMX_DOUBLE_MIN) { + if(std::abs(cfrom1)>std::abs(ctoc) && std::abs(ctoc)>GMX_DOUBLE_MIN) { mul = smlnum; done = 0; cfromc = cfrom1; - } else if(fabs(cto1)>fabs(cfromc)) { + } else if(std::abs(cto1)>std::abs(cfromc)) { mul = bignum; done = 0; ctoc = cto1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd0.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd0.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd0.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd0.cpp index 2d7dc56d37..4059c7e23a 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd0.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd0.cpp @@ -54,7 +54,6 @@ F77_FUNC(dlasd0,DLASD0)(int *n, *info = -9; } if (*info != 0) { - i__1 = -(*info); return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd1.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd1.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd1.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd1.cpp index 8e4bf43d96..1fc082c329 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd1.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd1.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -51,7 +51,6 @@ F77_FUNC(dlasd1,DLASD1)(int *nl, *info = -3; } if (*info != 0) { - i__1 = -(*info); return; } @@ -73,14 +72,14 @@ F77_FUNC(dlasd1,DLASD1)(int *nl, coltyp = idxc + n; idxp = coltyp + n; - d__1 = fabs(*alpha); - d__2 = fabs(*beta); + d__1 = std::abs(*alpha); + d__2 = std::abs(*beta); orgnrm = (d__1>d__2) ? d__1 : d__2; d__[*nl + 1] = 0.; i__1 = n; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(d__[i__]) > orgnrm) { - orgnrm = fabs(d__[i__]); + if (std::abs(d__[i__]) > orgnrm) { + orgnrm = std::abs(d__[i__]); } } F77_FUNC(dlascl,DLASCL)("G", &c__0, &c__0, &orgnrm, &one, &n, &c__1, &d__[1], &n, info); diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd2.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd2.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd2.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd2.cpp index 613919a7e8..200c901900 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -123,16 +123,16 @@ F77_FUNC(dlasd2,DLASD2)(int *nl, } eps = GMX_DOUBLE_EPS; - d__1 = fabs(*alpha), d__2 = fabs(*beta); + d__1 = std::abs(*alpha), d__2 = std::abs(*beta); tol = (d__1 > d__2) ? d__1 : d__2; - d__2 = fabs(d__[n]); + d__2 = std::abs(d__[n]); tol = eps * 8. * ((d__2 > tol) ? d__2 : tol); *k = 1; k2 = n + 1; i__1 = n; for (j = 2; j <= i__1; ++j) { - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; @@ -152,14 +152,14 @@ L100: if (j > n) { goto L110; } - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; coltyp[j] = 4; } else { - if (fabs(d__[j] - d__[jprev]) <= tol) { + if (std::abs(d__[j] - d__[jprev]) <= tol) { s = z__[jprev]; c__ = z__[j]; @@ -243,7 +243,7 @@ L120: dsigma[1] = 0.; hlftol = tol / 2.; - if (fabs(dsigma[2]) <= hlftol) { + if (std::abs(dsigma[2]) <= hlftol) { dsigma[2] = hlftol; } if (m > n) { @@ -257,7 +257,7 @@ L120: s = z__[m] / z__[1]; } } else { - if (fabs(z1) <= tol) { + if (std::abs(z1) <= tol) { z__[1] = tol; } else { z__[1] = z1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd3.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd3.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd3.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd3.cpp index 33ca0e6a4b..6f280d962a 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd3.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd3.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -38,10 +38,6 @@ F77_FUNC(dlasd3,DLASD3)(int *nl, int c__0 = 0; double zero = 0.0; double one = 1.0; - double *p1,*p2,t1,t2; - - p1 = &t1; - p2 = &t2; --d__; q_dim1 = *ldq; @@ -81,7 +77,7 @@ F77_FUNC(dlasd3,DLASD3)(int *nl, nlp2 = *nl + 2; if (*k == 1) { - d__[1] = fabs(z__[1]); + d__[1] = std::abs(z__[1]); F77_FUNC(dcopy,DCOPY)(&m, &vt2[vt2_dim1 + 1], ldvt2, &vt[vt_dim1 + 1], ldvt); if (z__[1] > 0.) { F77_FUNC(dcopy,DCOPY)(&n, &u2[u2_dim1 + 1], &c__1, &u[u_dim1 + 1], &c__1); @@ -94,16 +90,6 @@ F77_FUNC(dlasd3,DLASD3)(int *nl, return; } - i__1 = *k; - for (i__ = 1; i__ <= i__1; ++i__) { - t1 = dsigma[i__]; - t2 = dsigma[i__]; - /* force store and reload from memory */ - t1 = (*p1) + (*p2) - dsigma[i__]; - - dsigma[i__] = t1; - } - F77_FUNC(dcopy,DCOPY)(k, &z__[1], &c__1, &q[q_offset], &c__1); rho = F77_FUNC(dnrm2,DNRM2)(k, &z__[1], &c__1); @@ -134,7 +120,7 @@ F77_FUNC(dlasd3,DLASD3)(int *nl, z__[i__] *= u[i__ + j * u_dim1] * vt[i__ + j * vt_dim1] / (dsigma[ i__] - dsigma[j + 1]) / (dsigma[i__] + dsigma[j + 1]); } - d__2 = sqrt(fabs(z__[i__])); + d__2 = std::sqrt(std::abs(z__[i__])); z__[i__] = (q[i__ + q_dim1] > 0) ? d__2 : -d__2; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd4.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd4.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd4.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd4.cpp index d5130dfe9b..c48cbb3b17 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd4.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd4.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -47,7 +47,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, *info = 0; if (*n == 1) { - *sigma = sqrt(d__[1] * d__[1] + *rho * z__[1] * z__[1]); + *sigma = std::sqrt(d__[1] * d__[1] + *rho * z__[1] * z__[1]); delta[1] = 1.; work[1] = 1.; return; @@ -67,7 +67,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, temp = *rho / 2.; - temp1 = temp / (d__[*n] + sqrt(d__[*n] * d__[*n] + temp)); + temp1 = temp / (d__[*n] + std::sqrt(d__[*n] * d__[*n] + temp)); i__1 = *n; for (j = 1; j <= i__1; ++j) { work[j] = d__[j] + d__[*n] + temp1; @@ -85,7 +85,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, n] / (delta[*n] * work[*n]); if (w <= 0.) { - temp1 = sqrt(d__[*n] * d__[*n] + *rho); + temp1 = std::sqrt(d__[*n] * d__[*n] + *rho); temp = z__[*n - 1] * z__[*n - 1] / ((d__[*n - 1] + temp1) * (d__[* n] - d__[*n - 1] + *rho / (d__[*n] + temp1))) + z__[*n] * z__[*n] / *rho; @@ -98,9 +98,9 @@ F77_FUNC(dlasd4,DLASD4)(int *n, n]; b = z__[*n] * z__[*n] * delsq; if (a < 0.) { - tau = b * 2. / (sqrt(a * a + b * 4. * c__) - a); + tau = b * 2. / ( std::sqrt(a * a + b * 4. * c__) - a); } else { - tau = (a + sqrt(a * a + b * 4. * c__)) / (c__ * 2.); + tau = (a + std::sqrt(a * a + b * 4. * c__)) / (c__ * 2.); } } @@ -110,14 +110,14 @@ F77_FUNC(dlasd4,DLASD4)(int *n, b = z__[*n] * z__[*n] * delsq; if (a < 0.) { - tau = b * 2. / (sqrt(a * a + b * 4. * c__) - a); + tau = b * 2. / ( std::sqrt(a * a + b * 4. * c__) - a); } else { - tau = (a + sqrt(a * a + b * 4. * c__)) / (c__ * 2.); + tau = (a + std::sqrt(a * a + b * 4. * c__)) / (c__ * 2.); } } - eta = tau / (d__[*n] + sqrt(d__[*n] * d__[*n] + tau)); + eta = tau / (d__[*n] + std::sqrt(d__[*n] * d__[*n] + tau)); *sigma = d__[*n] + eta; i__1 = *n; @@ -136,17 +136,17 @@ F77_FUNC(dlasd4,DLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); temp = z__[*n] / (delta[*n] * work[*n]); phi = z__[*n] * temp; dphi = temp * temp; - erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + fabs(tau) * (dpsi + erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + std::abs(tau) * (dpsi + dphi); w = rhoinv + phi + psi; - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } @@ -157,14 +157,14 @@ F77_FUNC(dlasd4,DLASD4)(int *n, a = (dtnsq + dtnsq1) * w - dtnsq * dtnsq1 * (dpsi + dphi); b = dtnsq * dtnsq1 * w; if (c__ < 0.) { - c__ = fabs(c__); + c__ = std::abs(c__); } - if ( fabs(c__)= 0.) { - eta = (a + sqrt(fabs(a * a - b * 4. * c__))) / (c__ * 2.); + eta = (a + std::sqrt(std::abs(a * a - b * 4. * c__))) / (c__ * 2.); } else { - eta = b * 2. / (a - sqrt(fabs(a * a - b * 4. * c__))); + eta = b * 2. / (a - std::sqrt(std::abs(a * a - b * 4. * c__))); } if (w * eta > 0.) { @@ -176,7 +176,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, } tau += eta; - eta /= *sigma + sqrt(eta + *sigma * *sigma); + eta /= *sigma + std::sqrt(eta + *sigma * *sigma); i__1 = *n; for (j = 1; j <= i__1; ++j) { delta[j] -= eta; @@ -195,12 +195,12 @@ F77_FUNC(dlasd4,DLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); temp = z__[*n] / (work[*n] * delta[*n]); phi = z__[*n] * temp; dphi = temp * temp; - erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + fabs(tau) * (dpsi + erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + std::abs(tau) * (dpsi + dphi); w = rhoinv + phi + psi; @@ -209,7 +209,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, for (niter = iter; niter <= 20; ++niter) { - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } dtnsq1 = work[*n - 1] * delta[*n - 1]; @@ -218,9 +218,9 @@ F77_FUNC(dlasd4,DLASD4)(int *n, a = (dtnsq + dtnsq1) * w - dtnsq1 * dtnsq * (dpsi + dphi); b = dtnsq1 * dtnsq * w; if (a >= 0.) { - eta = (a + sqrt(fabs(a * a - b * 4. * c__))) / (c__ * 2.); + eta = (a + std::sqrt(std::abs(a * a - b * 4. * c__))) / (c__ * 2.); } else { - eta = b * 2. / (a - sqrt(fabs(a * a - b * 4. * c__))); + eta = b * 2. / (a - std::sqrt(std::abs(a * a - b * 4. * c__))); } if (w * eta > 0.) { @@ -232,7 +232,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, } tau += eta; - eta /= *sigma + sqrt(eta + *sigma * *sigma); + eta /= *sigma + std::sqrt(eta + *sigma * *sigma); i__1 = *n; for (j = 1; j <= i__1; ++j) { delta[j] -= eta; @@ -251,12 +251,12 @@ F77_FUNC(dlasd4,DLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); temp = z__[*n] / (work[*n] * delta[*n]); phi = z__[*n] * temp; dphi = temp * temp; - erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + fabs(tau) * ( + erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + std::abs(tau) * ( dpsi + dphi); w = rhoinv + phi + psi; @@ -272,7 +272,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, delsq = (d__[ip1] - d__[*i__]) * (d__[ip1] + d__[*i__]); delsq2 = delsq / 2.; - temp = delsq2 / (d__[*i__] + sqrt(d__[*i__] * d__[*i__] + delsq2)); + temp = delsq2 / (d__[*i__] + std::sqrt(d__[*i__] * d__[*i__] + delsq2)); i__1 = *n; for (j = 1; j <= i__1; ++j) { work[j] = d__[j] + d__[*i__] + temp; @@ -302,11 +302,11 @@ F77_FUNC(dlasd4,DLASD4)(int *n, a = c__ * delsq + z__[*i__] * z__[*i__] + z__[ip1] * z__[ip1]; b = z__[*i__] * z__[*i__] * delsq; if (a > 0.) { - tau = b * 2. / (a + sqrt(fabs(a * a - b * 4. * c__))); + tau = b * 2. / (a + std::sqrt(std::abs(a * a - b * 4. * c__))); } else { - tau = (a - sqrt(fabs(a * a - b * 4. * c__))) / (c__ * 2.); + tau = (a - std::sqrt(std::abs(a * a - b * 4. * c__))) / (c__ * 2.); } - eta = tau / (d__[*i__] + sqrt(d__[*i__] * d__[*i__] + tau)); + eta = tau / (d__[*i__] + std::sqrt(d__[*i__] * d__[*i__] + tau)); } else { orgati = 0; @@ -315,11 +315,11 @@ F77_FUNC(dlasd4,DLASD4)(int *n, a = c__ * delsq - z__[*i__] * z__[*i__] - z__[ip1] * z__[ip1]; b = z__[ip1] * z__[ip1] * delsq; if (a < 0.) { - tau = b * 2. / (a - sqrt(fabs(a * a + b * 4. * c__))); + tau = b * 2. / (a - std::sqrt(std::abs(a * a + b * 4. * c__))); } else { - tau = -(a + sqrt(fabs(a * a + b * 4. * c__))) / (c__ * 2.); + tau = -(a + std::sqrt(std::abs(a * a + b * 4. * c__))) / (c__ * 2.); } - eta = tau / (d__[ip1] + sqrt(fabs(d__[ip1] * d__[ip1] + tau))); + eta = tau / (d__[ip1] + std::sqrt(std::abs(d__[ip1] * d__[ip1] + tau))); } if (orgati) { @@ -352,7 +352,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); dphi = 0.; phi = 0.; @@ -384,10 +384,10 @@ F77_FUNC(dlasd4,DLASD4)(int *n, dw = dpsi + dphi + temp * temp; temp = z__[ii] * temp; w += temp; - erretm = (phi - psi) * 8. + erretm + rhoinv * 2. + fabs(temp) * 3. + - fabs(tau) * dw; + erretm = (phi - psi) * 8. + erretm + rhoinv * 2. + std::abs(temp) * 3. + + std::abs(tau) * dw; - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } @@ -410,8 +410,8 @@ F77_FUNC(dlasd4,DLASD4)(int *n, } a = (dtipsq + dtisq) * w - dtipsq * dtisq * dw; b = dtipsq * dtisq * w; - if ( fabs(c__) tau) ? sg2lb : tau; @@ -531,11 +531,11 @@ F77_FUNC(dlasd4,DLASD4)(int *n, swtch = 0; if (orgati) { - if (-w > fabs(prew) / 10.) { + if (-w > std::abs(prew) / 10.) { swtch = 1; } } else { - if (w > fabs(prew) / 10.) { + if (w > std::abs(prew) / 10.) { swtch = 1; } } @@ -544,7 +544,7 @@ F77_FUNC(dlasd4,DLASD4)(int *n, for (niter = iter; niter <= 20; ++niter) { - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } @@ -570,8 +570,8 @@ F77_FUNC(dlasd4,DLASD4)(int *n, } a = (dtipsq + dtisq) * w - dtipsq * dtisq * dw; b = dtipsq * dtisq * w; - if (fabs(c__) 0. && fabs(w) > fabs(prew) / 10.) { + erretm = (phi - psi) * 8. + erretm + rhoinv * 2. + std::abs(temp) * 3. + + std::abs(tau) * dw; + if (w * prew > 0. && std::abs(w) > std::abs(prew) / 10.) { swtch = ! swtch; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd5.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd5.cpp similarity index 73% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd5.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd5.cpp index e861f33474..8c3ab8ba90 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd5.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd5.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -26,9 +26,9 @@ F77_FUNC(dlasd5,DLASD5)(int *i__, b = delsq + *rho * (z__[1] * z__[1] + z__[2] * z__[2]); c__ = *rho * z__[1] * z__[1] * delsq; - tau = c__ * 2. / (b + sqrt(fabs(b * b - c__ * 4.))); + tau = c__ * 2. / (b + std::sqrt(std::abs(b * b - c__ * 4.))); - tau /= d__[1] + sqrt(d__[1] * d__[1] + tau); + tau /= d__[1] + std::sqrt(d__[1] * d__[1] + tau); *dsigma = d__[1] + tau; delta[1] = -tau; delta[2] = del - tau; @@ -39,12 +39,12 @@ F77_FUNC(dlasd5,DLASD5)(int *i__, c__ = *rho * z__[2] * z__[2] * delsq; if (b > 0.) { - tau = c__ * -2. / (b + sqrt(b * b + c__ * 4.)); + tau = c__ * -2. / (b + std::sqrt(b * b + c__ * 4.)); } else { - tau = (b - sqrt(b * b + c__ * 4.)) / 2.; + tau = (b - std::sqrt(b * b + c__ * 4.)) / 2.; } - tau /= d__[2] + sqrt(fabs(d__[2] * d__[2] + tau)); + tau /= d__[2] + std::sqrt(std::abs(d__[2] * d__[2] + tau)); *dsigma = d__[2] + tau; delta[1] = -(del + tau); delta[2] = -tau; @@ -57,11 +57,11 @@ F77_FUNC(dlasd5,DLASD5)(int *i__, c__ = *rho * z__[2] * z__[2] * delsq; if (b > 0.) { - tau = (b + sqrt(b * b + c__ * 4.)) / 2.; + tau = (b + std::sqrt(b * b + c__ * 4.)) / 2.; } else { - tau = c__ * 2. / (-b + sqrt(b * b + c__ * 4.)); + tau = c__ * 2. / (-b + std::sqrt(b * b + c__ * 4.)); } - tau /= d__[2] + sqrt(d__[2] * d__[2] + tau); + tau /= d__[2] + std::sqrt(d__[2] * d__[2] + tau); *dsigma = d__[2] + tau; delta[1] = -(del + tau); delta[2] = -tau; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd6.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd6.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd6.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd6.cpp index 53d6a6110f..162b38f3ed 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd6.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd6.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -75,13 +75,13 @@ F77_FUNC(dlasd6,DLASD6)(int *icompq, idxc = idx + n; idxp = idxc + n; - d__1 = fabs(*alpha); - d__2 = fabs(*beta); + d__1 = std::abs(*alpha); + d__2 = std::abs(*beta); orgnrm = (d__1 > d__2) ? d__1 : d__2; d__[*nl + 1] = 0.; i__1 = n; for (i__ = 1; i__ <= i__1; ++i__) { - d__1 = fabs(d__[i__]); + d__1 = std::abs(d__[i__]); if (d__1 > orgnrm) orgnrm = d__1; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd7.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd7.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd7.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd7.cpp index 04c40a65a6..7434aedfbd 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd7.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd7.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -119,17 +119,17 @@ F77_FUNC(dlasd7,DLASD7)(int *icompq, eps = GMX_DOUBLE_EPS; - d__1 = fabs(*alpha); - d__2 = fabs(*beta); + d__1 = std::abs(*alpha); + d__2 = std::abs(*beta); tol = (d__1>d__2) ? d__1 : d__2; - d__2 = fabs(d__[n]); + d__2 = std::abs(d__[n]); tol = eps * 64. * ((d__2>tol) ? d__2 : tol); *k = 1; k2 = n + 1; i__1 = n; for (j = 2; j <= i__1; ++j) { - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; @@ -148,13 +148,13 @@ L80: if (j > n) { goto L90; } - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; } else { - if (fabs(d__[j] - d__[jprev]) <= tol) { + if (std::abs(d__[j] - d__[jprev]) <= tol) { *s = z__[jprev]; *c__ = z__[j]; @@ -226,7 +226,7 @@ L100: dsigma[1] = 0.; hlftol = tol / 2.; - if (fabs(dsigma[2]) <= hlftol) { + if (std::abs(dsigma[2]) <= hlftol) { dsigma[2] = hlftol; } if (m > n) { @@ -242,7 +242,7 @@ L100: F77_FUNC(drot,DROT)(&c__1, &vf[m], &c__1, &vf[1], &c__1, c__, s); F77_FUNC(drot,DROT)(&c__1, &vl[m], &c__1, &vl[1], &c__1, c__, s); } else { - if (fabs(z1) <= tol) { + if (std::abs(z1) <= tol) { z__[1] = tol; } else { z__[1] = z1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasd8.c b/src/gromacs/linearalgebra/gmx_lapack/dlasd8.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_lapack/dlasd8.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasd8.cpp index a0bae60596..5fa064d0d1 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasd8.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasd8.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -18,7 +18,6 @@ F77_FUNC(dlasd8,DLASD8)(int *icompq, { int difr_dim1, difr_offset, i__1, i__2; double d__2; - double *p1,*p2,t1,t2; int i__, j; double dj, rho; @@ -47,11 +46,8 @@ F77_FUNC(dlasd8,DLASD8)(int *icompq, *info = 0; - p1 = &t1; - p2 = &t2; - if (*k == 1) { - d__[1] = fabs(z__[1]); + d__[1] = std::abs(z__[1]); difl[1] = d__[1]; if (*icompq == 1) { difl[2] = 1.; @@ -60,14 +56,6 @@ F77_FUNC(dlasd8,DLASD8)(int *icompq, return; } - i__1 = *k; - for (i__ = 1; i__ <= i__1; ++i__) { - t1 = dsigma[i__]; - t2 = dsigma[i__]; - /* force store and reload from memory */ - d__2 = (*p1) + (*p2) - dsigma[i__]; - } - iwk1 = 1; iwk2 = iwk1 + *k; iwk3 = iwk2 + *k; @@ -107,7 +95,7 @@ F77_FUNC(dlasd8,DLASD8)(int *icompq, i__1 = *k; for (i__ = 1; i__ <= i__1; ++i__) { - d__2 = sqrt(fabs(work[iwk3i + i__])); + d__2 = std::sqrt(std::abs(work[iwk3i + i__])); z__[i__] = (z__[i__] > 0) ? d__2 : -d__2; } @@ -123,19 +111,11 @@ F77_FUNC(dlasd8,DLASD8)(int *icompq, work[j] = -z__[j] / diflj / (dsigma[j] + dj); i__2 = j - 1; for (i__ = 1; i__ <= i__2; ++i__) { - t1 = dsigma[i__]; - t2 = dsigj; - /* force store and reload from memory */ - t1 = (*p1) + (*p2) - diflj; - work[i__] = z__[i__] / t1 / ( dsigma[i__] + dj); + work[i__] = z__[i__] / (dsigma[i__] + dsigj - diflj) / ( dsigma[i__] + dj); } i__2 = *k; for (i__ = j + 1; i__ <= i__2; ++i__) { - t1 = dsigma[i__]; - t2 = dsigjp; - /* force store and reload from memory */ - t1 = (*p1) + (*p2) - difrj; - work[i__] = z__[i__] / t1 / (dsigma[i__] + dj); + work[i__] = z__[i__] / (dsigma[i__] + dsigjp - difrj) / (dsigma[i__] + dj); } temp = F77_FUNC(dnrm2,DNRM2)(k, &work[1], &c__1); work[iwk2i + j] = F77_FUNC(ddot,DDOT)(k, &work[1], &c__1, &vf[1], &c__1) / temp; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasda.c b/src/gromacs/linearalgebra/gmx_lapack/dlasda.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlasda.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasda.cpp index 7a42478059..bc6b903cb7 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasda.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasda.cpp @@ -201,7 +201,6 @@ F77_FUNC(dlasda,DLASDA)(int *icompq, lf = 1; ll = 1; } else { - i__1 = lvl - 1; lf = (1 << (lvl-1)); ll = (lf << 1) - 1; } @@ -212,7 +211,6 @@ F77_FUNC(dlasda,DLASDA)(int *icompq, nl = iwork[ndiml + im1]; nr = iwork[ndimr + im1]; nlf = ic - nl; - nrf = ic + 1; if (i__ == ll) { sqrei = *sqre; } else { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasdq.c b/src/gromacs/linearalgebra/gmx_lapack/dlasdq.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dlasdq.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasdq.cpp index 379c25a5f7..c5063db87f 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasdq.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasdq.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -22,7 +22,7 @@ F77_FUNC(dlasdq,DLASDQ)(const char *uplo, double *work, int *info) { - const char xuplo=toupper(*uplo); + const char xuplo=std::toupper(*uplo); int c_dim1, c_offset, u_dim1, u_offset, vt_dim1, vt_offset, i__1, i__2; int c__1 = 1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasdt.c b/src/gromacs/linearalgebra/gmx_lapack/dlasdt.cpp similarity index 89% rename from src/gromacs/linearalgebra/gmx_lapack/dlasdt.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasdt.cpp index 5c343f572b..92f5727c8f 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasdt.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasdt.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -14,7 +14,7 @@ F77_FUNC(dlasdt,DLASDT)(int *n, double temp; int i,il,ir,llst,nlvl,ncrnt; - temp = log( ((double) maxn) / ((double)(*msub+1))) / log(2.0); + temp = std::log( ((double) maxn) / ((double)(*msub+1))) / std::log(2.0); *lvl = 1 + (int) temp; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlaset.c b/src/gromacs/linearalgebra/gmx_lapack/dlaset.cpp similarity index 91% rename from src/gromacs/linearalgebra/gmx_lapack/dlaset.c rename to src/gromacs/linearalgebra/gmx_lapack/dlaset.cpp index 24508f5c0a..989c3c9ef9 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlaset.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlaset.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -12,7 +12,7 @@ F77_FUNC(dlaset,DLASET)(const char *uplo, int *lda) { int i,j,k; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); if(ch=='U') { for(j=1;j<*n;j++) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasq1.c b/src/gromacs/linearalgebra/gmx_lapack/dlasq1.cpp similarity index 86% rename from src/gromacs/linearalgebra/gmx_lapack/dlasq1.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasq1.cpp index 569245e7a7..d5cc667c92 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasq1.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasq1.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -29,14 +29,14 @@ F77_FUNC(dlasq1,DLASQ1)(int *n, } for(i=0;i<*n-1;i++) { - d[i] = fabs(d[i]); - dtemp = fabs(e[i]); + d[i] = std::abs(d[i]); + dtemp = std::abs(e[i]); if(dtemp>sigmx) sigmx=dtemp; } - d[*n-1] = fabs(d[*n-1]); + d[*n-1] = std::abs(d[*n-1]); - if(fabs(sigmx) +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -76,9 +76,9 @@ F77_FUNC(dlasq2,DLASQ2)(int *n, t = (z__[1] - z__[3] + z__[2]) * .5; s = z__[3] * (z__[2] / t); if (s <= t) { - s = z__[3] * (z__[2] / (t * (sqrt(s / t + 1.) + 1.))); + s = z__[3] * (z__[2] / (t * ( std::sqrt(s / t + 1.) + 1.))); } else { - s = z__[3] * (z__[2] / (t + sqrt(t) * sqrt(t + s))); + s = z__[3] * (z__[2] / (t + std::sqrt(t) * std::sqrt(t + s))); } t = z__[1] + (s + z__[2]); z__[3] *= z__[1] / t; @@ -121,9 +121,8 @@ F77_FUNC(dlasq2,DLASQ2)(int *n, d__ += z__[(*n << 1) - 1]; d__1 = qmax, d__2 = z__[(*n << 1) - 1]; qmax = (d__1>d__2) ? d__1 : d__2; - zmax = (qmax>zmax) ? qmax : zmax; - if (fabs(e)=0.0) ieee = 0; negzro = one/(neginf+one); - if(fabs(negzro)>GMX_DOUBLE_MIN) + if(std::abs(negzro)>GMX_DOUBLE_MIN) ieee = 0; neginf = one/negzro; if(neginf>=0) ieee = 0; newzro = negzro + zero; - if(fabs(newzro-zero)>GMX_DOUBLE_MIN) + if(std::abs(newzro-zero)>GMX_DOUBLE_MIN) ieee = 0; posinf = one /newzro; if(posinf<=one) @@ -263,7 +262,7 @@ F77_FUNC(dlasq2,DLASQ2)(int *n, emax = 0.; if (n0 > i0) { - emin = fabs(z__[(n0 << 2) - 5]); + emin = std::abs(z__[(n0 << 2) - 5]); } else { emin = 0.; } @@ -325,7 +324,7 @@ L100: } - d__1 = 0., d__2 = qmin - sqrt(qmin) * 2. * sqrt(emax); + d__1 = 0., d__2 = qmin - std::sqrt(qmin) * 2. * std::sqrt(emax); dmin__ = -((d__1>d__2) ? d__1 : d__2); nbig = (n0 - i0 + 1) * 30; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasq3.c b/src/gromacs/linearalgebra/gmx_lapack/dlasq3.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/dlasq3.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasq3.cpp index ccd05b1d74..33105b6411 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasq3.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasq3.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -85,9 +85,9 @@ L40: t = (z__[nn - 7] - z__[nn - 3] + z__[nn - 5]) * .5; s = z__[nn - 3] * (z__[nn - 5] / t); if (s <= t) { - s = z__[nn - 3] * (z__[nn - 5] / (t * (sqrt(s / t + 1.) + 1.))); + s = z__[nn - 3] * (z__[nn - 5] / (t * ( std::sqrt(s / t + 1.) + 1.))); } else { - s = z__[nn - 3] * (z__[nn - 5] / (t + sqrt(t) * sqrt(t + s))); + s = z__[nn - 3] * (z__[nn - 5] / (t + std::sqrt(t) * std::sqrt(t + s))); } t = z__[nn - 7] + (s + z__[nn - 5]); z__[nn - 3] *= z__[nn - 7] / t; @@ -159,7 +159,7 @@ L70: goto L90; } else if (*dmin__ < 0. && dmin1 > 0. && z__[4*(*n0 - 1) - *pp] < tol * - (*sigma + dn1) && fabs(dn) < tol * *sigma) { + (*sigma + dn1) && std::abs(dn) < tol * *sigma) { z__[4*(*n0 - 1) - *pp + 2] = 0.; *dmin__ = 0.; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasq4.c b/src/gromacs/linearalgebra/gmx_lapack/dlasq4.cpp similarity index 78% rename from src/gromacs/linearalgebra/gmx_lapack/dlasq4.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasq4.cpp index a9830da008..067df72198 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasq4.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasq4.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -38,15 +38,15 @@ F77_FUNC(dlasq4,DLASQ4)(int *i0, nn = (*n0 << 2) + *pp; if (*n0in == *n0) { - if ( fabs(*dmin__ - *dn) 0. && gap2 > b2) { @@ -76,7 +76,7 @@ F77_FUNC(dlasq4,DLASQ4)(int *i0, *ttype = -4; s = *dmin__ * .25; - if (fabs(*dmin__ - *dn) z__[nn - 7]) { @@ -86,7 +86,6 @@ F77_FUNC(dlasq4,DLASQ4)(int *i0, np = nn - 9; } else { np = nn - (*pp << 1); - b2 = z__[np - 2]; gam = *dn1; if (z__[np - 4] > z__[np - 2]) { return; @@ -103,7 +102,7 @@ F77_FUNC(dlasq4,DLASQ4)(int *i0, a2 += b2; i__1 = (*i0 << 2) - 1 + *pp; for (i4 = np; i4 >= i__1; i4 += -4) { - if (fabs(b2)= i__1; i4 += -4) { - if (fabs(b2) 0. && gap2 > b2 * a2) { d__1 = s, d__2 = a2 * (1. - a2 * 1.01 * (b2 / gap2) * b2); diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasq5.c b/src/gromacs/linearalgebra/gmx_lapack/dlasq5.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlasq5.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasq5.cpp index 853a86a602..5ecf879311 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasq5.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasq5.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasq6.c b/src/gromacs/linearalgebra/gmx_lapack/dlasq6.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/dlasq6.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasq6.cpp index f06101991f..30f52aafa7 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasq6.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasq6.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -40,7 +40,7 @@ F77_FUNC(dlasq6,DLASQ6)(int *i0, i__1 = 4*(*n0 - 3); for (j4 = *i0*4; j4 <= i__1; j4 += 4) { z__[j4 - 2] = d__ + z__[j4 - 1]; - if (fabs(z__[j4 - 2]) +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -18,7 +18,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, int a_dim1, a_offset, i__1, i__2; /* Local variables */ - int i__, j, info; + int i__, j; double temp; double ctemp, stemp; @@ -29,7 +29,6 @@ F77_FUNC(dlasr,DLASR)(const char *side, a -= a_offset; /* Function Body */ - info = 0; if (*m == 0 || *n == 0) { return; @@ -42,7 +41,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__2 = *n; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[j + 1 + i__ * a_dim1]; @@ -57,7 +56,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = *m - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[j + 1 + i__ * a_dim1]; @@ -75,7 +74,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = 2; j <= i__1; ++j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__2 = *n; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[j + i__ * a_dim1]; @@ -90,7 +89,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = *m; j >= 2; --j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[j + i__ * a_dim1]; @@ -108,7 +107,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__2 = *n; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[j + i__ * a_dim1]; @@ -123,7 +122,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = *m - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[j + i__ * a_dim1]; @@ -144,7 +143,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__2 = *m; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[i__ + (j + 1) * a_dim1]; @@ -159,7 +158,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = *n - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__1 = *m; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[i__ + (j + 1) * a_dim1]; @@ -177,7 +176,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = 2; j <= i__1; ++j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__2 = *m; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[i__ + j * a_dim1]; @@ -192,7 +191,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = *n; j >= 2; --j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__1 = *m; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[i__ + j * a_dim1]; @@ -210,7 +209,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__2 = *m; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[i__ + j * a_dim1]; @@ -225,7 +224,7 @@ F77_FUNC(dlasr,DLASR)(const char *side, for (j = *n - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_DOUBLE_EPS || fabs(stemp)>GMX_DOUBLE_MIN) { + if (std::abs(ctemp-1.0)>GMX_DOUBLE_EPS || std::abs(stemp)>GMX_DOUBLE_MIN) { i__1 = *m; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[i__ + j * a_dim1]; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasrt.c b/src/gromacs/linearalgebra/gmx_lapack/dlasrt.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlasrt.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasrt.cpp index 1fb85a2935..31ea7cd189 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasrt.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasrt.cpp @@ -33,7 +33,6 @@ F77_FUNC(dlasrt,DLASRT)(const char *id, *info = -2; } if (*info != 0) { - i__1 = -(*info); return; } if (*n <= 1) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlasrt2.c b/src/gromacs/linearalgebra/gmx_lapack/dlasrt2.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dlasrt2.c rename to src/gromacs/linearalgebra/gmx_lapack/dlasrt2.cpp index 2b30d5c22e..d1f2a1c073 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlasrt2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlasrt2.cpp @@ -34,8 +34,7 @@ void F77_FUNC(dlasrt2,DLASRT2)(const char *id, *info = -2; } if (*info != 0) { - i__1 = -(*info); - return; + return; } if (*n <= 1) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlassq.c b/src/gromacs/linearalgebra/gmx_lapack/dlassq.cpp similarity index 85% rename from src/gromacs/linearalgebra/gmx_lapack/dlassq.c rename to src/gromacs/linearalgebra/gmx_lapack/dlassq.cpp index 74b22ae67b..8ffc508b3a 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlassq.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlassq.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -14,8 +14,8 @@ F77_FUNC(dlassq,DLASSQ)(int *n, if(*n>0) { for(ix=0;ix<=(*n-1)*(*incx);ix+=*incx) { - if(fabs(x[ix])>GMX_DOUBLE_MIN) { - absxi = fabs(x[ix]); + if(std::abs(x[ix])>GMX_DOUBLE_MIN) { + absxi = std::abs(x[ix]); if(*scale +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -26,9 +26,9 @@ F77_FUNC(dlasv2,DLASV2)(double *f, int gasmal; ft = *f; - fa = fabs(ft); + fa = std::abs(ft); ht = *h__; - ha = fabs(*h__); + ha = std::abs(*h__); pmax = 1; swap = ha > fa; @@ -43,8 +43,8 @@ F77_FUNC(dlasv2,DLASV2)(double *f, } gt = *g; - ga = fabs(gt); - if (fabs(ga)0) ? 2.0 : -2.0) * ( (gt>0) ? 1.0 : -1.0); } else { t = gt / ( (ft>0) ? d__ : d__) + m / t; @@ -106,7 +106,7 @@ F77_FUNC(dlasv2,DLASV2)(double *f, } else { t = (m / (s + t) + m / (r__ + l)) * (a + 1.); } - l = sqrt(t * t + 4.); + l = std::sqrt(t * t + 4.); crt = 2. / l; srt = t / l; clt = (crt + srt * m) / a; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlaswp.c b/src/gromacs/linearalgebra/gmx_lapack/dlaswp.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dlaswp.c rename to src/gromacs/linearalgebra/gmx_lapack/dlaswp.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dlatrd.c b/src/gromacs/linearalgebra/gmx_lapack/dlatrd.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dlatrd.c rename to src/gromacs/linearalgebra/gmx_lapack/dlatrd.cpp index ed7e43eaf7..7f848c54cf 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dlatrd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dlatrd.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -18,7 +18,7 @@ F77_FUNC(dlatrd,DLATRD)(const char * uplo, int i,iw; int ti1,ti2,ti3; double one,zero,minusone,alpha; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); one=1.0; minusone=-1.0; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorg2r.c b/src/gromacs/linearalgebra/gmx_lapack/dorg2r.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dorg2r.c rename to src/gromacs/linearalgebra/gmx_lapack/dorg2r.cpp index 3681f46dc9..1cdf7d032f 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dorg2r.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dorg2r.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorgbr.c b/src/gromacs/linearalgebra/gmx_lapack/dorgbr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dorgbr.c rename to src/gromacs/linearalgebra/gmx_lapack/dorgbr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorgl2.c b/src/gromacs/linearalgebra/gmx_lapack/dorgl2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dorgl2.c rename to src/gromacs/linearalgebra/gmx_lapack/dorgl2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorglq.c b/src/gromacs/linearalgebra/gmx_lapack/dorglq.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dorglq.c rename to src/gromacs/linearalgebra/gmx_lapack/dorglq.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorgqr.c b/src/gromacs/linearalgebra/gmx_lapack/dorgqr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dorgqr.c rename to src/gromacs/linearalgebra/gmx_lapack/dorgqr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorm2l.c b/src/gromacs/linearalgebra/gmx_lapack/dorm2l.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dorm2l.c rename to src/gromacs/linearalgebra/gmx_lapack/dorm2l.cpp index da1ac9797d..10f93725aa 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dorm2l.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dorm2l.cpp @@ -42,7 +42,6 @@ F77_FUNC(dorm2l,DORM2L)(const char *side, nq = *n; } if (*info != 0) { - i__1 = -(*info); return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorm2r.c b/src/gromacs/linearalgebra/gmx_lapack/dorm2r.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/dorm2r.c rename to src/gromacs/linearalgebra/gmx_lapack/dorm2r.cpp index 32f3540fb2..16145d3681 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dorm2r.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dorm2r.cpp @@ -16,7 +16,7 @@ F77_FUNC(dorm2r,DORM2R)(const char *side, { int a_dim1, a_offset, c_dim1, c_offset, i__1, i__2; - int i__, i1, i2, i3, ic, jc, mi, ni, nq; + int i__, i1, i2, i3, ic, jc, mi, ni; double aii; int left; int notran; @@ -36,12 +36,6 @@ F77_FUNC(dorm2r,DORM2R)(const char *side, ic = jc = 0; - if (left) { - nq = *m; - } else { - nq = *n; - } - if (*m <= 0 || *n <= 0 || *k <= 0) { return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dormbr.c b/src/gromacs/linearalgebra/gmx_lapack/dormbr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dormbr.c rename to src/gromacs/linearalgebra/gmx_lapack/dormbr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dorml2.c b/src/gromacs/linearalgebra/gmx_lapack/dorml2.cpp similarity index 90% rename from src/gromacs/linearalgebra/gmx_lapack/dorml2.c rename to src/gromacs/linearalgebra/gmx_lapack/dorml2.cpp index b50a1f489e..c3f1d5f52c 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dorml2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dorml2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "gromacs/utility/real.h" @@ -16,8 +16,8 @@ F77_FUNC(dorml2,DORML2)(const char *side, double *work, int gmx_unused *info) { - const char xside=toupper(*side); - const char xtrans=toupper(*trans); + const char xside=std::toupper(*side); + const char xtrans=std::toupper(*trans); int i,i1,i2,i3,ni,mi,ic,jc; double aii; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dormlq.c b/src/gromacs/linearalgebra/gmx_lapack/dormlq.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dormlq.c rename to src/gromacs/linearalgebra/gmx_lapack/dormlq.cpp index 8da339e687..633ab90040 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dormlq.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dormlq.cpp @@ -62,7 +62,6 @@ F77_FUNC(dormlq,DORMLQ)(const char *side, work[1] = (double) lwkopt; if (*info != 0) { - i__1 = -(*info); return; } else if (lquery) { return; @@ -81,8 +80,6 @@ F77_FUNC(dormlq,DORMLQ)(const char *side, nb = *lwork / ldwork; nbmin = DORMLQ_MINBLOCKSIZE; } - } else { - iws = nw; } if (nb < nbmin || nb >= *k) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dormql.c b/src/gromacs/linearalgebra/gmx_lapack/dormql.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dormql.c rename to src/gromacs/linearalgebra/gmx_lapack/dormql.cpp index 7449e502e0..217f04d9bf 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dormql.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dormql.cpp @@ -46,7 +46,6 @@ F77_FUNC(dormql,DORMQL)(const char *side, const char *trans, int *m, int *n, work[1] = (double) lwkopt; if (*info != 0) { - i__1 = -(*info); return; } else if (lquery) { return; @@ -65,8 +64,6 @@ F77_FUNC(dormql,DORMQL)(const char *side, const char *trans, int *m, int *n, nb = *lwork / ldwork; nbmin = DORMQL_MINBLOCKSIZE; } - } else { - iws = nw; } if (nb < nbmin || nb >= *k) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dormqr.c b/src/gromacs/linearalgebra/gmx_lapack/dormqr.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/dormqr.c rename to src/gromacs/linearalgebra/gmx_lapack/dormqr.cpp index 75f2cdc91e..f90750cdb8 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dormqr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dormqr.cpp @@ -56,7 +56,6 @@ F77_FUNC(dormqr,DORMQR)(const char *side, work[1] = (double) lwkopt; if (*info != 0) { - i__1 = -(*info); return; } else if (lquery) { return; @@ -75,8 +74,6 @@ F77_FUNC(dormqr,DORMQR)(const char *side, nb = *lwork / ldwork; nbmin = DORMQR_MINBLOCKSIZE; } - } else { - iws = nw; } if (nb < nbmin || nb >= *k) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/dormtr.c b/src/gromacs/linearalgebra/gmx_lapack/dormtr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dormtr.c rename to src/gromacs/linearalgebra/gmx_lapack/dormtr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dstebz.c b/src/gromacs/linearalgebra/gmx_lapack/dstebz.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/dstebz.c rename to src/gromacs/linearalgebra/gmx_lapack/dstebz.cpp index 7cb421e826..0b3004b069 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dstebz.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dstebz.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -102,7 +102,6 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, } if (*info != 0) { - i__1 = -(*info); return; } @@ -147,7 +146,7 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, d__1 = e[j - 1]; tmp1 = d__1 * d__1; d__2 = ulp; - if (fabs(d__[j] * d__[j - 1]) * (d__2 * d__2) + safemn + if (std::abs(d__[j] * d__[j - 1]) * (d__2 * d__2) + safemn > tmp1) { isplit[*nsplit] = j - 1; ++(*nsplit); @@ -168,7 +167,7 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, i__1 = *n - 1; for (j = 1; j <= i__1; ++j) { - tmp2 = sqrt(work[j]); + tmp2 = std::sqrt(work[j]); d__1 = gu, d__2 = d__[j] + tmp1 + tmp2; gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[j] - tmp1 - tmp2; @@ -180,13 +179,13 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[*n] - tmp1; gl = (d__1d__2) ? d__1 : d__2; gl = gl - tnorm * 2. * ulp * *n - pivmin * 4.; gu = gu + tnorm * 2. * ulp * *n + pivmin * 2.; - itmax = (int) ((log(tnorm + pivmin) - log(pivmin)) / log(2.)) + 2; + itmax = (int) ((std::log(tnorm + pivmin) - std::log(pivmin)) / std::log(2.)) + 2; if (*abstol <= 0.) { atoli = ulp * tnorm; } else { @@ -236,14 +235,14 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, /* avoid warnings for high gcc optimization */ wlu = wul = 1.0; - d__3 = fabs(d__[1]) + fabs(e[1]); - d__4 = fabs(d__[*n]) + fabs(e[*n - 1]); + d__3 = std::abs(d__[1]) + std::abs(e[1]); + d__4 = std::abs(d__[*n]) + std::abs(e[*n - 1]); tnorm = (d__3>d__4) ? d__3 : d__4; i__1 = *n - 1; for (j = 2; j <= i__1; ++j) { d__4 = tnorm; - d__5 = fabs(d__[j]) + fabs(e[j - 1]) + fabs(e[j]); + d__5 = std::abs(d__[j]) + std::abs(e[j - 1]) + std::abs(e[j]); tnorm = (d__4>d__5) ? d__4 : d__5; } @@ -296,7 +295,7 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, i__2 = iend - 1; for (j = ibegin; j <= i__2; ++j) { - tmp2 = fabs(e[j]); + tmp2 = std::abs(e[j]); d__1 = gu, d__2 = d__[j] + tmp1 + tmp2; gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[j] - tmp1 - tmp2; @@ -308,15 +307,15 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[iend] - tmp1; gl = (d__1d__2) ? d__1 : d__2; gl = gl - bnorm * 2. * ulp * in - pivmin * 2.; gu = gu + bnorm * 2. * ulp * in + pivmin * 2.; if (*abstol <= 0.) { - d__1 = fabs(gl); - d__2 = fabs(gu); + d__1 = std::abs(gl); + d__2 = std::abs(gu); atoli = ulp * ((d__1>d__2) ? d__1 : d__2); } else { atoli = *abstol; @@ -345,7 +344,7 @@ F77_FUNC(dstebz,DSTEBZ)(const char *range, nwu += iwork[in + 1]; iwoff = *m - iwork[1]; - itmax = (int) ((log(gu - gl + pivmin) - log(pivmin)) / log(2.) + itmax = (int) ((std::log(gu - gl + pivmin) - std::log(pivmin)) / std::log(2.) ) + 2; F77_FUNC(dlaebz,DLAEBZ)(&c__2, &itmax, &in, &in, &c__1, &nb, &atoli, &rtoli, & pivmin, &d__[ibegin], &e[ibegin], &work[ibegin], idumma, & diff --git a/src/gromacs/linearalgebra/gmx_lapack/dstegr.c b/src/gromacs/linearalgebra/gmx_lapack/dstegr.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/dstegr.c rename to src/gromacs/linearalgebra/gmx_lapack/dstegr.cpp index dbfa8eb7e3..b0657c7633 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dstegr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dstegr.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -128,8 +128,8 @@ F77_FUNC(dstegr,DSTEGR)(const char *jobz, eps = GMX_DOUBLE_EPS; smlnum = safmin / eps; bignum = 1. / smlnum; - rmin = sqrt(smlnum); - d__1 = sqrt(bignum), d__2 = 1. / sqrt(sqrt(safmin)); + rmin = std::sqrt(smlnum); + d__1 = std::sqrt(bignum), d__2 = 1. / std::sqrt(sqrt(safmin)); rmax = (d__1 rmax) { scale = rmax / tnrm; } - if ( fabs(scale-1.0)>GMX_DOUBLE_EPS) { + if ( std::abs(scale-1.0)>GMX_DOUBLE_EPS) { F77_FUNC(dscal,DSCAL)(n, &scale, &d__[1], &c__1); i__1 = *n - 1; F77_FUNC(dscal,DSCAL)(&i__1, &scale, &e[1], &c__1); @@ -180,7 +180,7 @@ F77_FUNC(dstegr,DSTEGR)(const char *jobz, w[j] += e[iwork[iinspl + itmp - 1]]; } - if (fabs(scale-1.0)>GMX_DOUBLE_EPS) { + if (std::abs(scale-1.0)>GMX_DOUBLE_EPS) { d__1 = 1. / scale; F77_FUNC(dscal,DSCAL)(m, &d__1, &w[1], &c__1); } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dstein.c b/src/gromacs/linearalgebra/gmx_lapack/dstein.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/dstein.c rename to src/gromacs/linearalgebra/gmx_lapack/dstein.cpp index 52a3e2437b..95bc8f185f 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dstein.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dstein.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -81,7 +81,6 @@ F77_FUNC(dstein,DSTEIN)(int *n, } if (*info != 0) { - i__1 = -(*info); return; } @@ -120,19 +119,19 @@ F77_FUNC(dstein,DSTEIN)(int *n, } gpind = b1; - onenrm = fabs(d__[b1]) + fabs(e[b1]); + onenrm = std::abs(d__[b1]) + std::abs(e[b1]); d__3 = onenrm; - d__4 = fabs(d__[bn]) + fabs(e[bn - 1]); + d__4 = std::abs(d__[bn]) + std::abs(e[bn - 1]); onenrm = (d__3>d__4) ? d__3 : d__4; i__2 = bn - 1; for (i__ = b1 + 1; i__ <= i__2; ++i__) { d__4 = onenrm; - d__5 = fabs(d__[i__]) + fabs(e[i__ - 1]) + fabs(e[i__]); + d__5 = std::abs(d__[i__]) + std::abs(e[i__ - 1]) + std::abs(e[i__]); onenrm = (d__4>d__5) ? d__4 : d__5; } ortol = onenrm * .001; - dtpcrt = sqrt(.1 / blksiz); + dtpcrt = std::sqrt(.1 / blksiz); jblk = 0; i__2 = *m; @@ -150,7 +149,7 @@ F77_FUNC(dstein,DSTEIN)(int *n, } if (jblk > 1) { - eps1 = fabs(eps * xj); + eps1 = std::abs(eps * xj); pertol = eps1 * 10.; sep = xj - xjm; if (sep < pertol) { @@ -180,7 +179,7 @@ L70: } d__2 = eps; - d__3 = fabs(work[indrv4 + blksiz]); + d__3 = std::abs(work[indrv4 + blksiz]); scl = blksiz * onenrm * ((d__2>d__3) ? d__2 : d__3) / F77_FUNC(dasum,DASUM)(&blksiz, &work[ indrv1 + 1], &c__1); F77_FUNC(dscal,DSCAL)(&blksiz, &scl, &work[indrv1 + 1], &c__1); @@ -192,7 +191,7 @@ L70: if (jblk == 1) { goto L90; } - if (fabs(xj - xjm) > ortol) { + if (std::abs(xj - xjm) > ortol) { gpind = j; } if (gpind != j) { @@ -207,7 +206,7 @@ L70: L90: jmax = F77_FUNC(idamax,IDAMAX)(&blksiz, &work[indrv1 + 1], &c__1); - nrm = fabs(work[indrv1 + jmax]); + nrm = std::abs(work[indrv1 + jmax]); if (nrm < dtpcrt) { goto L70; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dsteqr.c b/src/gromacs/linearalgebra/gmx_lapack/dsteqr.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/dsteqr.c rename to src/gromacs/linearalgebra/gmx_lapack/dsteqr.cpp index ead523ba54..57edb93936 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dsteqr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dsteqr.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -90,8 +90,8 @@ F77_FUNC(dsteqr,DSTEQR)(const char * compz, safmin = minval*(1.0+GMX_DOUBLE_EPS); safmax = 1. / safmin; - ssfmax = sqrt(safmax) / 3.; - ssfmin = sqrt(safmin) / eps2; + ssfmax = std::sqrt(safmax) / 3.; + ssfmin = std::sqrt(safmin) / eps2; if (icompz == 2) { F77_FUNC(dlaset,DLASET)("Full", n, n, &c_b9, &c_b10, &z__[z_offset], ldz); @@ -113,11 +113,11 @@ L10: if (l1 <= nm1) { i__1 = nm1; for (m = l1; m <= i__1; ++m) { - tst = fabs(e[m]); - if (fabs(tst) ssfmax) { @@ -159,7 +159,7 @@ L30: info); } - if (fabs(d__[lend]) < fabs(d__[l])) { + if (std::abs(d__[lend]) < std::abs(d__[l])) { lend = lsv; l = lendsv; } @@ -171,9 +171,9 @@ L40: lendm1 = lend - 1; i__1 = lendm1; for (m = l; m <= i__1; ++m) { - d__2 = fabs(e[m]); + d__2 = std::abs(e[m]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m+ 1]) + safmin) { + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m+ 1]) + safmin) { goto L60; } } @@ -270,9 +270,9 @@ L90: lendp1 = lend + 1; i__1 = lendp1; for (m = l; m >= i__1; --m) { - d__2 = fabs(e[m - 1]); + d__2 = std::abs(e[m - 1]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m- 1]) + safmin) { + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m- 1]) + safmin) { goto L110; } } @@ -386,7 +386,7 @@ L140: } i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__])>GMX_DOUBLE_MIN) { + if (std::abs(e[i__])>GMX_DOUBLE_MIN) { ++(*info); } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dsterf.c b/src/gromacs/linearalgebra/gmx_lapack/dsterf.cpp similarity index 89% rename from src/gromacs/linearalgebra/gmx_lapack/dsterf.c rename to src/gromacs/linearalgebra/gmx_lapack/dsterf.cpp index ba43f6dfc8..8454394467 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dsterf.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dsterf.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -52,8 +52,8 @@ F77_FUNC(dsterf,DSTERF)(int *n, d__1 = eps; eps2 = d__1 * d__1; safmax = 1. / safmin; - ssfmax = sqrt(safmax) / 3.; - ssfmin = sqrt(safmin) / eps2; + ssfmax = std::sqrt(safmax) / 3.; + ssfmin = std::sqrt(safmin) / eps2; nmaxit = *n * 30; sigma = 0.; @@ -71,8 +71,8 @@ L10: } i__1 = *n - 1; for (m = l1; m <= i__1; ++m) { - if (fabs(e[m]) <= sqrt(fabs(d__[m])) * - sqrt(fabs(d__[m + 1])) * eps) { + if (std::abs(e[m]) <= std::sqrt(std::abs(d__[m])) * + std::sqrt(std::abs(d__[m + 1])) * eps) { e[m] = 0.; goto L30; } @@ -116,7 +116,7 @@ L30: e[i__] = d__1 * d__1; } - if (fabs(d__[lend]) < fabs(d__[l])) { + if (std::abs(d__[lend]) < std::abs(d__[l])) { lend = lsv; l = lendsv; } @@ -127,7 +127,7 @@ L50: if (l != lend) { i__1 = lend - 1; for (m = l; m <= i__1; ++m) { - if (fabs(e[m]) <= eps2 * fabs(d__[m] * d__[m + 1])) { + if (std::abs(e[m]) <= eps2 * std::abs(d__[m] * d__[m + 1])) { goto L70; } } @@ -143,7 +143,7 @@ L70: goto L90; } if (m == l + 1) { - rte = sqrt(e[l]); + rte = std::sqrt(e[l]); F77_FUNC(dlae2,DLAE2)(&d__[l], &rte, &d__[l + 1], &rt1, &rt2); d__[l] = rt1; d__[l + 1] = rt2; @@ -160,7 +160,7 @@ L70: } ++jtot; - rte = sqrt(e[l]); + rte = std::sqrt(e[l]); sigma = (d__[l + 1] - p) / (rte * 2.); r__ = F77_FUNC(dlapy2,DLAPY2)(&sigma, &c_b32); sigma = p - rte / (sigma + ( (sigma>0) ? r__ : -r__)); @@ -184,7 +184,7 @@ L70: alpha = d__[i__]; gamma = c__ * (alpha - sigma) - s * oldgam; d__[i__ + 1] = oldgam + (alpha - gamma); - if (fabs(c__)>GMX_DOUBLE_MIN) { + if (std::abs(c__)>GMX_DOUBLE_MIN) { p = gamma * gamma / c__; } else { p = oldc * bb; @@ -209,7 +209,7 @@ L90: L100: i__1 = lend + 1; for (m = l; m >= i__1; --m) { - if (fabs(e[m - 1]) <= eps2 * fabs(d__[m] * d__[m - 1])) { + if (std::abs(e[m - 1]) <= eps2 * std::abs(d__[m] * d__[m - 1])) { goto L120; } } @@ -225,7 +225,7 @@ L120: } if (m == l - 1) { - rte = sqrt(e[l - 1]); + rte = std::sqrt(e[l - 1]); F77_FUNC(dlae2,DLAE2)(&d__[l], &rte, &d__[l - 1], &rt1, &rt2); d__[l] = rt1; d__[l - 1] = rt2; @@ -242,7 +242,7 @@ L120: } ++jtot; - rte = sqrt(e[l - 1]); + rte = std::sqrt(e[l - 1]); sigma = (d__[l - 1] - p) / (rte * 2.); r__ = F77_FUNC(dlapy2,DLAPY2)(&sigma, &c_b32); sigma = p - rte / (sigma + ( (sigma>0) ? r__ : -r__)); @@ -266,7 +266,7 @@ L120: alpha = d__[i__ + 1]; gamma = c__ * (alpha - sigma) - s * oldgam; d__[i__] = oldgam + (alpha - gamma); - if (fabs(c__)>GMX_DOUBLE_MIN) { + if (std::abs(c__)>GMX_DOUBLE_MIN) { p = gamma * gamma / c__; } else { p = oldc * bb; @@ -305,7 +305,7 @@ L150: } i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__])>GMX_DOUBLE_MIN) { + if (std::abs(e[i__])>GMX_DOUBLE_MIN) { ++(*info); } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/dstevr.c b/src/gromacs/linearalgebra/gmx_lapack/dstevr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dstevr.c rename to src/gromacs/linearalgebra/gmx_lapack/dstevr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dsyevr.c b/src/gromacs/linearalgebra/gmx_lapack/dsyevr.cpp similarity index 83% rename from src/gromacs/linearalgebra/gmx_lapack/dsyevr.c rename to src/gromacs/linearalgebra/gmx_lapack/dsyevr.cpp index 379c9c94cd..93b319c663 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dsyevr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dsyevr.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" @@ -20,7 +20,7 @@ F77_FUNC(dsyevr,DSYEVR)(const char *jobz, const char *range, const char *uplo, i /* Local variables */ int c__1 = 1; int i__, j, nb, jj; - double eps, vll, vuu, tmp1; + double eps, tmp1; int indd, inde; double anrm; int imax; @@ -32,10 +32,10 @@ F77_FUNC(dsyevr,DSYEVR)(const char *jobz, const char *range, const char *uplo, i int lwmin; int lower, wantz; int alleig, indeig; - int iscale, ieeeok, indibl, indifl; + int iscale, indibl, indifl; int valeig; double safmin,minval; - double abstll, bignum; + double bignum; int indtau; int indwkn; int liwmin; @@ -43,10 +43,6 @@ F77_FUNC(dsyevr,DSYEVR)(const char *jobz, const char *range, const char *uplo, i double smlnum; int lwkopt; int lquery; - double posinf,neginf,negzro,newzro; - double fzero = 0.0; - double fone = 1.0; - /* Parameter adjustments */ a_dim1 = *lda; @@ -60,33 +56,6 @@ F77_FUNC(dsyevr,DSYEVR)(const char *jobz, const char *range, const char *uplo, i --work; --iwork; - /* Check for IEEE-compliant FP */ - ieeeok = 1; - posinf = fone/fzero; - if(posinf<=1.0) - ieeeok = 0; - neginf = -fone/fzero; - if(neginf>=0.0) - ieeeok = 0; - negzro = fone/(neginf+fone); - if(negzro!=0) - ieeeok = 0; - neginf = fone/negzro; - if(neginf>=0) - ieeeok = 0; - newzro = negzro + fzero; - if(newzro!=fzero) - ieeeok = 0; - posinf = fone /newzro; - if(posinf<=fone) - ieeeok = 0; - neginf = neginf*posinf; - if(neginf>=fzero) - ieeeok = 0; - posinf = posinf*posinf; - if(posinf<=1.0) - ieeeok = 0; - lower = (*uplo=='L' || *uplo=='l'); wantz = (*jobz=='V' || *jobz=='v'); alleig = (*range=='A' || *range=='a'); @@ -184,15 +153,12 @@ F77_FUNC(dsyevr,DSYEVR)(const char *jobz, const char *range, const char *uplo, i smlnum = safmin / eps; bignum = 1. / smlnum; - rmin = sqrt(smlnum); + rmin = std::sqrt(smlnum); - d__1 = sqrt(bignum), d__2 = 1. / sqrt(sqrt(safmin)); + d__1 = std::sqrt(bignum), d__2 = 1. / std::sqrt(sqrt(safmin)); rmax = (d__1 0. && anrm < rmin) { iscale = 1; @@ -215,13 +181,6 @@ F77_FUNC(dsyevr,DSYEVR)(const char *jobz, const char *range, const char *uplo, i } } - if (*abstol > 0.) { - abstll = *abstol * sigma; - } - if (valeig) { - vll = *vl * sigma; - vuu = *vu * sigma; - } } indtau = 1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dsytd2.c b/src/gromacs/linearalgebra/gmx_lapack/dsytd2.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/dsytd2.c rename to src/gromacs/linearalgebra/gmx_lapack/dsytd2.cpp index 32eb8880f4..68fd1a37fe 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dsytd2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dsytd2.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" @@ -19,7 +19,7 @@ F77_FUNC(dsytd2,DSYTD2)(const char * uplo, double minusone,zero; double taui,alpha,tmp; int ti1,ti2,ti3,i; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); zero = 0.0; minusone = -1.0; @@ -33,7 +33,7 @@ F77_FUNC(dsytd2,DSYTD2)(const char * uplo, ti1 = 1; F77_FUNC(dlarfg,DLARFG)(&i,&(a[i*(*lda)+(i-1)]),&(a[i*(*lda)+0]),&ti1,&taui); e[i-1] = a[i*(*lda) + (i-1)]; - if(fabs(taui)>GMX_DOUBLE_MIN) { + if(std::abs(taui)>GMX_DOUBLE_MIN) { a[i*(*lda)+(i-1)] = 1.0; ti1 = 1; @@ -67,7 +67,7 @@ F77_FUNC(dsytd2,DSYTD2)(const char * uplo, e[i-1] = a[(i-1)*(*lda) + (i)]; - if(fabs(taui)>GMX_DOUBLE_MIN) { + if(std::abs(taui)>GMX_DOUBLE_MIN) { a[(i-1)*(*lda)+(i)] = 1.0; ti1 = *n - i; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dsytrd.c b/src/gromacs/linearalgebra/gmx_lapack/dsytrd.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/dsytrd.c rename to src/gromacs/linearalgebra/gmx_lapack/dsytrd.cpp index cd8dc7eded..2d77f26e09 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dsytrd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dsytrd.cpp @@ -61,7 +61,6 @@ F77_FUNC(dsytrd,DSYTRD)(const char *uplo, int *n, double *a, int * } nx = *n; - iws = 1; if (nb > 1 && nb < *n) { nx = DSYTRD_CROSSOVER; diff --git a/src/gromacs/linearalgebra/gmx_lapack/dtrti2.c b/src/gromacs/linearalgebra/gmx_lapack/dtrti2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/dtrti2.c rename to src/gromacs/linearalgebra/gmx_lapack/dtrti2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/dtrtri.c b/src/gromacs/linearalgebra/gmx_lapack/dtrtri.cpp similarity index 96% rename from src/gromacs/linearalgebra/gmx_lapack/dtrtri.c rename to src/gromacs/linearalgebra/gmx_lapack/dtrtri.cpp index d561269688..d389ab6841 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/dtrtri.c +++ b/src/gromacs/linearalgebra/gmx_lapack/dtrtri.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -41,7 +41,7 @@ F77_FUNC(dtrtri,DTRTRI)(const char *uplo, if (nounit) { i__1 = *n; for (*info = 1; *info <= i__1; ++(*info)) { - if (fabs(a[*info + *info * a_dim1]) -#include +#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -91,7 +91,7 @@ F77_FUNC(sbdsdc,SBDSDC)(const char *uplo, u[u_dim1 + 1] = (d__[1]>0) ? 1.0 : -1.0; vt[vt_dim1 + 1] = 1.; } - d__[1] = fabs(d__[1]); + d__[1] = std::abs(d__[1]); return; } nm1 = *n - 1; @@ -149,7 +149,7 @@ F77_FUNC(sbdsdc,SBDSDC)(const char *uplo, } orgnrm = F77_FUNC(slanst,SLANST)("M", n, &d__[1], &e[1]); - if ( fabs(orgnrm)0) ? eps : -eps; } @@ -189,10 +188,10 @@ F77_FUNC(sbdsdc,SBDSDC)(const char *uplo, i__1 = nm1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__]) < eps || i__ == nm1) { + if (std::abs(e[i__]) < eps || i__ == nm1) { if (i__ < nm1) { nsize = i__ - start + 1; - } else if (fabs(e[i__]) >= eps) { + } else if (std::abs(e[i__]) >= eps) { nsize = *n - start + 1; } else { nsize = i__ - start + 1; @@ -203,7 +202,7 @@ F77_FUNC(sbdsdc,SBDSDC)(const char *uplo, q[*n + (qstart - 1) * *n] = (d__[*n]>0) ? 1.0 : -1.0; q[*n + (smlsiz + qstart - 1) * *n] = 1.; } - d__[*n] = fabs(d__[*n]); + d__[*n] = std::abs(d__[*n]); } if (icompq == 2) { F77_FUNC(slasd0,SLASD0)(&nsize, &sqre, &d__[start], &e[start], diff --git a/src/gromacs/linearalgebra/gmx_lapack/sbdsqr.c b/src/gromacs/linearalgebra/gmx_lapack/sbdsqr.cpp similarity index 85% rename from src/gromacs/linearalgebra/gmx_lapack/sbdsqr.c rename to src/gromacs/linearalgebra/gmx_lapack/sbdsqr.cpp index 6ba0b466dc..2cd91a2fe4 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sbdsqr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sbdsqr.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -23,7 +23,7 @@ F77_FUNC(sbdsqr,SBDSQR)(const char *uplo, float *work, int *info) { - const char xuplo = toupper(*uplo); + const char xuplo = std::toupper(*uplo); int c_dim1, c_offset, u_dim1, u_offset, vt_dim1, vt_offset, i__1, i__2; float r__1, r__2, r__3, r__4; @@ -56,9 +56,8 @@ F77_FUNC(sbdsqr,SBDSQR)(const char *uplo, float sminoa; float thresh; int rotate; - float sminlo, tolmul; + float tolmul; int itmp1,itmp2; - float ftmp; --d__; --e; @@ -142,43 +141,43 @@ F77_FUNC(sbdsqr,SBDSQR)(const char *uplo, } } - r__3 = 100.f, r__4 = pow(GMX_FLOAT_EPS,c_b15); + r__3 = 100.f, r__4 = std::pow(static_cast(GMX_FLOAT_EPS),c_b15); r__1 = 10.f, r__2 = (r__3r__2) ? r__1 : r__2; tol = tolmul * eps; smax = 0.f; i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { - r__2 = smax, r__3 = (r__1 = d__[i__], fabs(r__1)); + r__2 = smax, r__3 = (r__1 = d__[i__], std::abs(r__1)); smax = (r__2>r__3) ? r__2 : r__3; } i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - r__2 = smax, r__3 = (r__1 = e[i__], fabs(r__1)); + r__2 = smax, r__3 = (r__1 = e[i__], std::abs(r__1)); smax = (r__2>r__3) ? r__2 : r__3; } sminl = 0.f; if (tol >= 0.f) { - sminoa = fabs(d__[1]); + sminoa = std::abs(d__[1]); if (sminoa == 0.f) { goto L50; } mu = sminoa; i__1 = *n; for (i__ = 2; i__ <= i__1; ++i__) { - mu = (r__2 = d__[i__], fabs(r__2)) * (mu / (mu + (r__1 = e[i__ - - 1], fabs(r__1)))); + mu = (r__2 = d__[i__], std::abs(r__2)) * (mu / (mu + (r__1 = e[i__ - + 1], std::abs(r__1)))); sminoa = (sminoar__2) ? r__1 : r__2; } else { - r__1 = fabs(tol) * smax, r__2 = *n * 6 * *n * unfl; + r__1 = std::abs(tol) * smax, r__2 = *n * 6 * *n * unfl; thresh = (r__1>r__2) ? r__1 : r__2; } maxit = *n * 6 * *n; @@ -196,16 +195,16 @@ L60: goto L200; } - if (tol < 0.f && (r__1 = d__[m], fabs(r__1)) <= thresh) { + if (tol < 0.f && (r__1 = d__[m], std::abs(r__1)) <= thresh) { d__[m] = 0.f; } - smax = (r__1 = d__[m], fabs(r__1)); + smax = (r__1 = d__[m], std::abs(r__1)); smin = smax; i__1 = m - 1; for (lll = 1; lll <= i__1; ++lll) { ll = m - lll; - abss = (r__1 = d__[ll], fabs(r__1)); - abse = (r__1 = e[ll], fabs(r__1)); + abss = (r__1 = d__[ll], std::abs(r__1)); + abse = (r__1 = e[ll], std::abs(r__1)); if (tol < 0.f && abss <= thresh) { d__[ll] = 0.f; } @@ -248,7 +247,7 @@ L90: goto L60; } if (ll > oldm || m < oldll) { - if ((r__1 = d__[ll], fabs(r__1)) >= (r__2 = d__[m], fabs(r__2))) { + if ((r__1 = d__[ll], std::abs(r__1)) >= (r__2 = d__[m], std::abs(r__2))) { idir = 1; } else { idir = 2; @@ -256,44 +255,42 @@ L90: } if (idir == 1) { - if( (fabs(e[m-1]) <= fabs(tol) * fabs(d__[m])) || - (tol<0.0 && fabs(e[m-1])<=thresh)) { + if( (std::abs(e[m-1]) <= std::abs(tol) * std::abs(d__[m])) || + (tol<0.0 && std::abs(e[m-1])<=thresh)) { e[m - 1] = 0.f; goto L60; } if (tol >= 0.f) { - mu = (r__1 = d__[ll], fabs(r__1)); + mu = (r__1 = d__[ll], std::abs(r__1)); sminl = mu; i__1 = m - 1; for (lll = ll; lll <= i__1; ++lll) { - if ((r__1 = e[lll], fabs(r__1)) <= tol * mu) { + if ((r__1 = e[lll], std::abs(r__1)) <= tol * mu) { e[lll] = 0.f; goto L60; } - sminlo = sminl; - mu = (r__2 = d__[lll + 1], fabs(r__2)) * (mu / (mu + (r__1 = - e[lll], fabs(r__1)))); + mu = (r__2 = d__[lll + 1], std::abs(r__2)) * (mu / (mu + (r__1 = + e[lll], std::abs(r__1)))); sminl = (sminl= 0.f) { - mu = (r__1 = d__[m], fabs(r__1)); + mu = (r__1 = d__[m], std::abs(r__1)); sminl = mu; i__1 = ll; for (lll = m - 1; lll >= i__1; --lll) { - if ((r__1 = e[lll], fabs(r__1)) <= tol * mu) { + if ((r__1 = e[lll], std::abs(r__1)) <= tol * mu) { e[lll] = 0.f; goto L60; } - sminlo = sminl; - mu = (r__2 = d__[lll], fabs(r__2)) * (mu / (mu + (r__1 = e[ - lll], fabs(r__1)))); + mu = (r__2 = d__[lll], std::abs(r__2)) * (mu / (mu + (r__1 = e[ + lll], std::abs(r__1)))); sminl = (sminl 0.f) { @@ -357,7 +354,7 @@ L90: F77_FUNC(slasr,SLASR)("L", "V", "F", &i__1, ncc, &work[nm12 + 1], &work[nm13 + 1], &c__[ll + c_dim1], ldc); } - if ((r__1 = e[m - 1], fabs(r__1)) <= thresh) { + if ((r__1 = e[m - 1], std::abs(r__1)) <= thresh) { e[m - 1] = 0.f; } } else { @@ -396,14 +393,14 @@ L90: F77_FUNC(slasr,SLASR)("L", "V", "B", &i__1, ncc, &work[1], &work[*n], &c__[ ll + c_dim1], ldc); } - if ((r__1 = e[ll], fabs(r__1)) <= thresh) { + if ((r__1 = e[ll], std::abs(r__1)) <= thresh) { e[ll] = 0.f; } } } else { if (idir == 1) { - f = ((r__1 = d__[ll], fabs(r__1)) - shift) * ( ((d__[ll] > 0) ? c_b49 : -c_b49) + shift / d__[ll]); + f = ((r__1 = d__[ll], std::abs(r__1)) - shift) * ( ((d__[ll] > 0) ? c_b49 : -c_b49) + shift / d__[ll]); g = e[ll]; i__1 = m - 1; for (i__ = ll; i__ <= i__1; ++i__) { @@ -445,12 +442,12 @@ L90: F77_FUNC(slasr,SLASR)("L", "V", "F", &i__1, ncc, &work[nm12 + 1], &work[nm13 + 1], &c__[ll + c_dim1], ldc); } - if ((r__1 = e[m - 1], fabs(r__1)) <= thresh) { + if ((r__1 = e[m - 1], std::abs(r__1)) <= thresh) { e[m - 1] = 0.f; } } else { - f = ((r__1 = d__[m], fabs(r__1)) - shift) * ( ((d__[m] > 0) ? c_b49 : -c_b49) + shift / d__[m]); + f = ((r__1 = d__[m], std::abs(r__1)) - shift) * ( ((d__[m] > 0) ? c_b49 : -c_b49) + shift / d__[m]); g = e[m - 1]; i__1 = ll + 1; for (i__ = m; i__ >= i__1; --i__) { @@ -477,7 +474,7 @@ L90: } e[ll] = f; - if ((r__1 = e[ll], fabs(r__1)) <= thresh) { + if ((r__1 = e[ll], std::abs(r__1)) <= thresh) { e[ll] = 0.f; } if (*ncvt > 0) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgebd2.c b/src/gromacs/linearalgebra/gmx_lapack/sgebd2.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/sgebd2.c rename to src/gromacs/linearalgebra/gmx_lapack/sgebd2.cpp index 004fe148ef..e474470ff2 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sgebd2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sgebd2.cpp @@ -51,7 +51,6 @@ F77_FUNC(sgebd2,SGEBD2)(int *m, for(i=0;i<*m;i++) { i1 = *n - i; i2 = ( (i+1) < (*n-1)) ? (i+1) : (*n-1); - i3 = 1; F77_FUNC(slarfg,SLARFG)(&i1,&(a[i*(*lda)+i]),&(a[i2*(*lda)+i]),lda,&(taup[i])); d[i] = a[i*(*lda)+i]; a[i*(*lda)+i] = 1.0; diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgebrd.c b/src/gromacs/linearalgebra/gmx_lapack/sgebrd.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgebrd.c rename to src/gromacs/linearalgebra/gmx_lapack/sgebrd.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgelq2.c b/src/gromacs/linearalgebra/gmx_lapack/sgelq2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgelq2.c rename to src/gromacs/linearalgebra/gmx_lapack/sgelq2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgelqf.c b/src/gromacs/linearalgebra/gmx_lapack/sgelqf.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/sgelqf.c rename to src/gromacs/linearalgebra/gmx_lapack/sgelqf.cpp index cdefb4ebd9..ae5d9243de 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sgelqf.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sgelqf.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgeqr2.c b/src/gromacs/linearalgebra/gmx_lapack/sgeqr2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgeqr2.c rename to src/gromacs/linearalgebra/gmx_lapack/sgeqr2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgeqrf.c b/src/gromacs/linearalgebra/gmx_lapack/sgeqrf.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgeqrf.c rename to src/gromacs/linearalgebra/gmx_lapack/sgeqrf.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgesdd.c b/src/gromacs/linearalgebra/gmx_lapack/sgesdd.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/sgesdd.c rename to src/gromacs/linearalgebra/gmx_lapack/sgesdd.cpp index 48693e9917..f02d5c1aef 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sgesdd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sgesdd.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" @@ -30,14 +30,13 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, float anrm; int idum[1], ierr, itau; int minmn, wrkbl, itaup, itauq, mnthr; - int wntqa; int nwork; - int wntqn, wntqo, wntqs; + int wntqn; int bdspac; float bignum; - int minwrk, ldwrku, maxwrk, ldwkvt; + int ldwrku, maxwrk, ldwkvt; float smlnum,minval, safemin; - int wntqas, lquery; + int lquery; int c__0 = 0; int c__1 = 1; float zero = 0.0; @@ -60,13 +59,8 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, *info = 0; minmn = (*m < *n) ? *m : *n; mnthr = (int) (minmn * 11. / 6.); - wntqa = (*jobz=='a' || *jobz=='A'); - wntqs = (*jobz=='s' || *jobz=='S'); - wntqas = wntqa || wntqs; wntqn = (*jobz=='o' || *jobz=='O'); - wntqo = (*jobz=='n' || *jobz=='N'); - minwrk = 1; maxwrk = 1; lquery = *lwork == -1; @@ -84,7 +78,6 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, wrkbl = *n * 67; i__1 = wrkbl, i__2 = bdspac + *n; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = bdspac + *n; } else { wrkbl = *n * 67; @@ -93,7 +86,6 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, i__1 = wrkbl, i__2 = bdspac + *n * 3; wrkbl = (i__1 > i__2) ? i__1 : i__2; maxwrk = wrkbl + *n * *n; - minwrk = bdspac + *n * *n + *n * 3; } } else { @@ -101,11 +93,9 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, if (wntqn) { i__1 = wrkbl, i__2 = bdspac + *n * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *n * 3 + ((*m > bdspac) ? *m : bdspac); } else { i__1 = maxwrk, i__2 = bdspac + *n * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *n * 3 + ((*m > bdspac) ? *m : bdspac); } } } else { @@ -121,7 +111,6 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, wrkbl = *m * 67; i__1 = wrkbl, i__2 = bdspac + *m; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = bdspac + *m; } else { wrkbl = *m * 67; @@ -131,18 +120,15 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, i__1 = wrkbl, i__2 = bdspac + *m * 3; wrkbl = (i__1 > i__2) ? i__1 : i__2; maxwrk = wrkbl + *m * *m; - minwrk = bdspac + *m * *m + *m * 3; } } else { wrkbl = *m * 3 + (*m + *n*32); if (wntqn) { i__1 = wrkbl, i__2 = bdspac + *m * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *m * 3 + ((*m > bdspac) ? *m : bdspac); } else { i__1 = wrkbl, i__2 = bdspac + *m * 3; maxwrk = (i__1 > i__2) ? i__1 : i__2; - minwrk = *m * 3 + ((*m > bdspac) ? *m : bdspac); } } } @@ -163,7 +149,7 @@ F77_FUNC(sgesdd,SGESDD)(const char *jobz, eps = GMX_FLOAT_EPS; minval = GMX_FLOAT_MIN; safemin = minval / eps; - smlnum = sqrt(safemin) / eps; + smlnum = std::sqrt(safemin) / eps; bignum = 1. / smlnum; diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgetf2.c b/src/gromacs/linearalgebra/gmx_lapack/sgetf2.cpp similarity index 89% rename from src/gromacs/linearalgebra/gmx_lapack/sgetf2.c rename to src/gromacs/linearalgebra/gmx_lapack/sgetf2.cpp index 4fdce16c88..bd768fb17f 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sgetf2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sgetf2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -14,10 +14,9 @@ F77_FUNC(sgetf2,SGETF2)(int *m, int *info) { int j,jp,k,t1,t2,t3; - float one,minusone; + float minusone; float tmp; - one = 1.0; minusone = -1.0; if(*m<=0 || *n<=0) @@ -29,7 +28,7 @@ F77_FUNC(sgetf2,SGETF2)(int *m, t2 = 1; jp = j - 1 + F77_FUNC(isamax,ISAMAX)(&t1,&(a[(j-1)*(*lda)+(j-1)]),&t2); ipiv[j-1] = jp; - if( fabs(a[(j-1)*(*lda)+(jp-1)])>GMX_FLOAT_MIN ) { + if( std::abs(a[(j-1)*(*lda)+(jp-1)])>GMX_FLOAT_MIN ) { if(jp != j) F77_FUNC(sswap,SSWAP)(n,&(a[ j-1 ]),lda,&(a[ jp-1 ]),lda); diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgetrf.c b/src/gromacs/linearalgebra/gmx_lapack/sgetrf.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgetrf.c rename to src/gromacs/linearalgebra/gmx_lapack/sgetrf.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgetri.c b/src/gromacs/linearalgebra/gmx_lapack/sgetri.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgetri.c rename to src/gromacs/linearalgebra/gmx_lapack/sgetri.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sgetrs.c b/src/gromacs/linearalgebra/gmx_lapack/sgetrs.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sgetrs.c rename to src/gromacs/linearalgebra/gmx_lapack/sgetrs.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/slabrd.c b/src/gromacs/linearalgebra/gmx_lapack/slabrd.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slabrd.c rename to src/gromacs/linearalgebra/gmx_lapack/slabrd.cpp index dc09f52409..cb053f8078 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slabrd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slabrd.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" diff --git a/src/gromacs/linearalgebra/gmx_lapack/slacpy.c b/src/gromacs/linearalgebra/gmx_lapack/slacpy.cpp similarity index 90% rename from src/gromacs/linearalgebra/gmx_lapack/slacpy.c rename to src/gromacs/linearalgebra/gmx_lapack/slacpy.cpp index 70071311bd..5d6b19a5f0 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slacpy.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slacpy.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" /* LAPACK */ @@ -12,7 +12,7 @@ F77_FUNC(slacpy,SLACPY)(const char *uplo, int *ldb) { int i,j,minjm; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); if(ch=='U') { for(j=0;j<*n;j++) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/slae2.c b/src/gromacs/linearalgebra/gmx_lapack/slae2.cpp similarity index 76% rename from src/gromacs/linearalgebra/gmx_lapack/slae2.c rename to src/gromacs/linearalgebra/gmx_lapack/slae2.cpp index b497f74cf8..cad1510dc0 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slae2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slae2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -15,10 +15,10 @@ F77_FUNC(slae2,SLAE2)(float *a, sm = *a + *c__; df = *a - *c__; - adf = fabs(df); + adf = std::abs(df); tb = *b + *b; - ab = fabs(tb); - if (fabs(*a) > fabs(*c__)) { + ab = std::abs(tb); + if (std::abs(*a) > std::abs(*c__)) { acmx = *a; acmn = *c__; } else { @@ -27,13 +27,13 @@ F77_FUNC(slae2,SLAE2)(float *a, } if (adf > ab) { d__1 = ab / adf; - rt = adf * sqrt(d__1 * d__1 + 1.); + rt = adf * std::sqrt(d__1 * d__1 + 1.); } else if (adf < ab) { d__1 = adf / ab; - rt = ab * sqrt(d__1 * d__1 + 1.); + rt = ab * std::sqrt(d__1 * d__1 + 1.); } else { - rt = ab * sqrt(2.); + rt = ab * std::sqrt(2.); } if (sm < 0.) { *rt1 = (sm - rt) * .5; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slaebz.c b/src/gromacs/linearalgebra/gmx_lapack/slaebz.cpp similarity index 96% rename from src/gromacs/linearalgebra/gmx_lapack/slaebz.c rename to src/gromacs/linearalgebra/gmx_lapack/slaebz.cpp index b4810c6bc6..56d3312e86 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slaebz.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slaebz.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -59,7 +59,7 @@ F77_FUNC(slaebz,SLAEBZ)(int *ijob, for (ji = 1; ji <= i__1; ++ji) { for (jp = 1; jp <= 2; ++jp) { tmp1 = d__[1] - ab[ji + jp * ab_dim1]; - if (fabs(tmp1) < *pivmin) { + if (std::abs(tmp1) < *pivmin) { tmp1 = -(*pivmin); } nab[ji + jp * nab_dim1] = 0; @@ -70,7 +70,7 @@ F77_FUNC(slaebz,SLAEBZ)(int *ijob, i__2 = *n; for (j = 2; j <= i__2; ++j) { tmp1 = d__[j] - e2[j - 1] / tmp1 - ab[ji + jp * ab_dim1]; - if (fabs(tmp1) < *pivmin) { + if (std::abs(tmp1) < *pivmin) { tmp1 = -(*pivmin); } if (tmp1 <= 0.) { @@ -247,9 +247,9 @@ F77_FUNC(slaebz,SLAEBZ)(int *ijob, kfnew = kf; i__2 = kl; for (ji = kf; ji <= i__2; ++ji) { - tmp1 = fabs(ab[ji + (ab_dim1 << 1)] - ab[ji + ab_dim1]); - d__3 = fabs(ab[ji + (ab_dim1 << 1)]); - d__4 = fabs(ab[ji + ab_dim1]); + tmp1 = std::abs(ab[ji + (ab_dim1 << 1)] - ab[ji + ab_dim1]); + d__3 = std::abs(ab[ji + (ab_dim1 << 1)]); + d__4 = std::abs(ab[ji + ab_dim1]); tmp2 = (d__3>d__4) ? d__3 : d__4; d__1 = (*abstol>*pivmin) ? *abstol : *pivmin; d__2 = *reltol * tmp2; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slaed6.c b/src/gromacs/linearalgebra/gmx_lapack/slaed6.cpp similarity index 78% rename from src/gromacs/linearalgebra/gmx_lapack/slaed6.c rename to src/gromacs/linearalgebra/gmx_lapack/slaed6.cpp index 5bb1c4935f..bdae39a291 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slaed6.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slaed6.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -48,7 +48,7 @@ F77_FUNC(slaed6,SLAED6)(int *kniter, a = c__ * (d__[1] + d__[2]) + z__[1] + z__[2]; b = c__ * d__[1] * d__[2] + z__[1] * d__[2] + z__[2] * d__[1]; } - r__1 = fabs(a), r__2 = fabs(b), r__1 = ((r__1>r__2)? r__1:r__2), r__2 = fabs(c__); + r__1 = std::abs(a), r__2 = std::abs(b), r__1 = ((r__1>r__2)? r__1:r__2), r__2 = std::abs(c__); temp = (r__1>r__2) ? r__1 : r__2; a /= temp; b /= temp; @@ -56,15 +56,15 @@ F77_FUNC(slaed6,SLAED6)(int *kniter, if (c__ == 0.f) { *tau = b / a; } else if (a <= 0.f) { - *tau = (a - sqrt((r__1 = a * a - b * 4.f * c__, fabs(r__1)))) / ( + *tau = (a - std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs(r__1)))) / ( c__ * 2.f); } else { - *tau = b * 2.f / (a + sqrt((r__1 = a * a - b * 4.f * c__, fabs(r__1)))); + *tau = b * 2.f / (a + std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs(r__1)))); } temp = *rho + z__[1] / (d__[1] - *tau) + z__[2] / (d__[2] - *tau) + z__[3] / (d__[3] - *tau); - if (fabs(*finit) <= fabs(temp)) { + if (std::abs(*finit) <= std::abs(temp)) { *tau = 0.f; } } @@ -72,19 +72,19 @@ F77_FUNC(slaed6,SLAED6)(int *kniter, eps = GMX_FLOAT_EPS; base = 2; safemin = GMX_FLOAT_MIN*(1.0+GMX_FLOAT_EPS); - i__1 = (int) (log(safemin) / log(base) / 3.f); - small1 = pow(base, i__1); + i__1 = static_cast(std::log(safemin) / std::log(base) / 3.f); + small1 = std::pow(base, static_cast(i__1)); sminv1 = 1.f / small1; small2 = small1 * small1; sminv2 = sminv1 * sminv1; if (*orgati) { - r__3 = (r__1 = d__[2] - *tau, fabs(r__1)), r__4 = (r__2 = d__[3] - * - tau, fabs(r__2)); + r__3 = (r__1 = d__[2] - *tau, std::abs(r__1)), r__4 = (r__2 = d__[3] - * + tau, std::abs(r__2)); temp = (r__3r__2)? r__1:r__2), r__2 = fabs(c__); + r__1 = std::abs(a), r__2 = std::abs(b), r__1 = ((r__1>r__2)? r__1:r__2), r__2 = std::abs(c__); temp = (r__1>r__2) ? r__1 : r__2; a /= temp; b /= temp; @@ -150,9 +150,9 @@ F77_FUNC(slaed6,SLAED6)(int *kniter, if (c__ == 0.f) { eta = b / a; } else if (a <= 0.f) { - eta = (a - sqrt((r__1 = a * a - b * 4.f * c__, fabs(r__1)))) / ( c__ * 2.f); + eta = (a - std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs(r__1)))) / ( c__ * 2.f); } else { - eta = b * 2.f / (a + sqrt((r__1 = a * a - b * 4.f * c__, fabs( r__1)))); + eta = b * 2.f / (a + std::sqrt((r__1 = a * a - b * 4.f * c__, std::abs( r__1)))); } if (f * eta >= 0.f) { eta = -f / df; @@ -186,13 +186,13 @@ F77_FUNC(slaed6,SLAED6)(int *kniter, temp3 = temp2 * temp; temp4 = temp1 / dscale[i__ - 1]; fc += temp4; - erretm += fabs(temp4); + erretm += std::abs(temp4); df += temp2; ddf += temp3; } f = *finit + *tau * fc; - erretm = (fabs(*finit) + fabs(*tau) * erretm) * 8.f + fabs(*tau) * df; - if (fabs(f) <= eps * erretm) { + erretm = (std::abs(*finit) + std::abs(*tau) * erretm) * 8.f + std::abs(*tau) * df; + if (std::abs(f) <= eps * erretm) { goto L60; } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slaev2.c b/src/gromacs/linearalgebra/gmx_lapack/slaev2.cpp similarity index 76% rename from src/gromacs/linearalgebra/gmx_lapack/slaev2.c rename to src/gromacs/linearalgebra/gmx_lapack/slaev2.cpp index 9a84c3d611..a0a01498b8 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slaev2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slaev2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -21,10 +21,10 @@ F77_FUNC(slaev2,SLAEV2)(float * a, sm = *a + *c__; df = *a - *c__; - adf = fabs(df); + adf = std::abs(df); tb = *b + *b; - ab = fabs(tb); - if (fabs(*a) > fabs(*c__)) { + ab = std::abs(tb); + if (std::abs(*a) > std::abs(*c__)) { acmx = *a; acmn = *c__; } else { @@ -33,13 +33,13 @@ F77_FUNC(slaev2,SLAEV2)(float * a, } if (adf > ab) { d__1 = ab / adf; - rt = adf * sqrt(d__1 * d__1 + 1.); + rt = adf * std::sqrt(d__1 * d__1 + 1.); } else if (adf < ab) { d__1 = adf / ab; - rt = ab * sqrt(d__1 * d__1 + 1.); + rt = ab * std::sqrt(d__1 * d__1 + 1.); } else { - rt = ab * sqrt(2.); + rt = ab * std::sqrt(2.); } if (sm < 0.) { *rt1 = (sm - rt) * .5; @@ -62,18 +62,18 @@ F77_FUNC(slaev2,SLAEV2)(float * a, cs = df - rt; sgn2 = -1; } - acs = fabs(cs); + acs = std::abs(cs); if (acs > ab) { ct = -tb / cs; - *sn1 = 1. / sqrt(ct * ct + 1.); + *sn1 = 1. / std::sqrt(ct * ct + 1.); *cs1 = ct * *sn1; } else { - if (fabs(ab) +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -31,7 +31,6 @@ F77_FUNC(slagtf,SLAGTF)(int *n, *info = 0; if (*n < 0) { *info = -1; - i__1 = -(*info); return; } @@ -41,7 +40,7 @@ F77_FUNC(slagtf,SLAGTF)(int *n, a[1] -= *lambda; in[*n] = 0; if (*n == 1) { - if (fabs(a[1])eps) ? *tol : eps; - scale1 = fabs(a[1]) + fabs(b[1]); + scale1 = std::abs(a[1]) + std::abs(b[1]); i__1 = *n - 1; for (k = 1; k <= i__1; ++k) { a[k + 1] -= *lambda; - scale2 = fabs(c__[k]) + fabs(a[k + 1]); + scale2 = std::abs(c__[k]) + std::abs(a[k + 1]); if (k < *n - 1) { - scale2 += fabs(b[k + 1]); + scale2 += std::abs(b[k + 1]); } - if (fabs(a[k]) -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -38,7 +38,6 @@ F77_FUNC(slagts,SLAGTS)(int *job, *info = -2; } if (*info != 0) { - i__1 = -(*info); return; } @@ -53,26 +52,26 @@ F77_FUNC(slagts,SLAGTS)(int *job, if (*job < 0) { if (*tol <= 0.) { - *tol = fabs(a[1]); + *tol = std::abs(a[1]); if (*n > 1) { d__1 = *tol; - d__2 = fabs(a[2]); + d__2 = std::abs(a[2]); d__1 = (d__1>d__2) ? d__1 : d__2; - d__2 = fabs(b[1]); + d__2 = std::abs(b[1]); *tol = (d__1>d__2) ? d__1 : d__2; } i__1 = *n; for (k = 3; k <= i__1; ++k) { d__4 = *tol; - d__5 = fabs(a[k]); + d__5 = std::abs(a[k]); d__4 = (d__4>d__5) ? d__4 : d__5; - d__5 = fabs(b[k - 1]); + d__5 = std::abs(b[k - 1]); d__4 = (d__4>d__5) ? d__4 : d__5; - d__5 = fabs(d__[k - 2]); + d__5 = std::abs(d__[k - 2]); *tol = (d__4>d__5) ? d__4 : d__5; } *tol *= eps; - if (fabs(*tol) absak) { + if (std::abs(absak) absak) { *info = k; return; } else { temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { *info = k; return; } @@ -131,10 +130,10 @@ F77_FUNC(slagts,SLAGTS)(int *job, if(ak<0) pert *= -1.0; L40: - absak = fabs(ak); + absak = std::abs(ak); if (absak < 1.) { if (absak < sfmin) { - if (fabs(absak) absak) { + if (std::abs(absak) absak) { ak += pert; pert *= 2; goto L40; @@ -142,7 +141,7 @@ L40: temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { ak += pert; pert *= 2; goto L40; @@ -164,17 +163,17 @@ L40: temp = y[k]; } ak = a[k]; - absak = fabs(ak); + absak = std::abs(ak); if (absak < 1.) { if (absak < sfmin) { - if (fabs(absak) absak) { + if (std::abs(absak) absak) { *info = k; return; } else { temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { *info = k; return; } @@ -198,10 +197,10 @@ L40: pert *= -1.0; L70: - absak = fabs(ak); + absak = std::abs(ak); if (absak < 1.) { if (absak < sfmin) { - if (fabs(absak) absak) { + if (std::abs(absak) absak) { ak += pert; pert *= 2; goto L70; @@ -209,7 +208,7 @@ L70: temp *= bignum; ak *= bignum; } - } else if (fabs(temp) > absak * bignum) { + } else if (std::abs(temp) > absak * bignum) { ak += pert; pert *= 2; goto L70; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slamrg.c b/src/gromacs/linearalgebra/gmx_lapack/slamrg.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/slamrg.c rename to src/gromacs/linearalgebra/gmx_lapack/slamrg.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/slange.c b/src/gromacs/linearalgebra/gmx_lapack/slange.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_lapack/slange.c rename to src/gromacs/linearalgebra/gmx_lapack/slange.cpp index a4a3c02a14..792c89e019 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slange.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slange.cpp @@ -1,5 +1,6 @@ -#include -#include +#include +#include + #include "../gmx_lapack.h" @@ -11,7 +12,7 @@ F77_FUNC(slange,SLANGE)(const char *norm, int *lda, float *work) { - const char ch=toupper(*norm); + const char ch=std::toupper(*norm); float dtemp,sum,max,val,scale; int i,j; @@ -20,7 +21,7 @@ F77_FUNC(slange,SLANGE)(const char *norm, max = 0.0; for(j=0;j<*n;j++) for(i=0;i<*m;i++) { - dtemp = fabs(a[j*(*lda)+i]); + dtemp = std::abs(a[j*(*lda)+i]); if(dtemp>max) max = dtemp; } @@ -33,7 +34,7 @@ F77_FUNC(slange,SLANGE)(const char *norm, for(j=0;j<*n;j++) { sum = 0.0; for(i=0;i<*m;i++) - sum += fabs(a[j*(*lda)+i]); + sum += std::abs(a[j*(*lda)+i]); if(sum>max) max = sum; } @@ -45,7 +46,7 @@ F77_FUNC(slange,SLANGE)(const char *norm, work[i] = 0.0; for(j=0;j<*n;j++) for(i=0;i<*m;i++) - work[i] += fabs(a[j*(*lda)+i]); + work[i] += std::abs(a[j*(*lda)+i]); max = 0; for(i=0;i<*m;i++) if(work[i]>max) @@ -60,7 +61,7 @@ F77_FUNC(slange,SLANGE)(const char *norm, i = 1; for(j=0;j<*n;j++) F77_FUNC(slassq,SLASSQ)(m,&(a[j*(*lda)+0]),&i,&scale,&sum); - val = scale*sqrt(sum); + val = scale* std::sqrt(sum); break; default: diff --git a/src/gromacs/linearalgebra/gmx_lapack/slanst.c b/src/gromacs/linearalgebra/gmx_lapack/slanst.cpp similarity index 69% rename from src/gromacs/linearalgebra/gmx_lapack/slanst.c rename to src/gromacs/linearalgebra/gmx_lapack/slanst.cpp index cc6d1f5ee8..b395312739 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slanst.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slanst.cpp @@ -1,5 +1,6 @@ -#include -#include +#include +#include + #include "../gmx_lapack.h" @@ -9,7 +10,7 @@ F77_FUNC(slanst,SLANST)(const char *norm, float *d, float *e) { - const char ch=toupper(*norm); + const char ch=std::toupper(*norm); float dtemp,max,val,scale,sum; int i,j; @@ -19,12 +20,12 @@ F77_FUNC(slanst,SLANST)(const char *norm, switch(ch) { case 'M': - max = fabs(d[*n-1]); + max = std::abs(d[*n-1]); for(i=0;i<(*n-1);i++) { - dtemp = fabs(d[i]); + dtemp = std::abs(d[i]); if(dtemp>max) max = dtemp; - dtemp = fabs(e[i]); + dtemp = std::abs(e[i]); if(dtemp>max) max = dtemp; } @@ -36,14 +37,14 @@ F77_FUNC(slanst,SLANST)(const char *norm, case 'I': if(*n==1) - val = fabs(d[0]); + val = std::abs(d[0]); else { - max = fabs(d[0]) + fabs(e[0]); - dtemp = fabs(e[*n-2]) + fabs(d[*n-1]); + max = std::abs(d[0]) + std::abs(e[0]); + dtemp = std::abs(e[*n-2]) + std::abs(d[*n-1]); if(dtemp>max) max = dtemp; for(i=1;i<(*n-1);i++) { - dtemp = fabs(d[i]) + fabs(e[i]) + fabs(e[i-1]); + dtemp = std::abs(d[i]) + std::abs(e[i]) + std::abs(e[i-1]); if(dtemp>max) max = dtemp; } @@ -62,7 +63,7 @@ F77_FUNC(slanst,SLANST)(const char *norm, sum *= 2; } F77_FUNC(slassq,SLASSQ)(n,d,&j,&scale,&sum); - val = scale * sqrt(sum); + val = scale * std::sqrt(sum); break; default: diff --git a/src/gromacs/linearalgebra/gmx_lapack/slansy.c b/src/gromacs/linearalgebra/gmx_lapack/slansy.cpp similarity index 87% rename from src/gromacs/linearalgebra/gmx_lapack/slansy.c rename to src/gromacs/linearalgebra/gmx_lapack/slansy.cpp index e2f96c216a..d732eb1c57 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slansy.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slansy.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -33,7 +33,7 @@ F77_FUNC(slansy,SLANSY)(const char *norm, const char *uplo, int *n, float *a, in i__2 = j; for (i__ = 1; i__ <= i__2; ++i__) { d__2 = value; - d__3 = fabs(a[i__ + j * a_dim1]); + d__3 = std::abs(a[i__ + j * a_dim1]); value = (d__2>d__3) ? d__2 : d__3; } } @@ -43,7 +43,7 @@ F77_FUNC(slansy,SLANSY)(const char *norm, const char *uplo, int *n, float *a, in i__2 = *n; for (i__ = j; i__ <= i__2; ++i__) { d__2 = value; - d__3 = fabs(a[i__ + j * a_dim1]); + d__3 = std::abs(a[i__ + j * a_dim1]); value = (d__2>d__3) ? d__2 : d__3; } } @@ -57,11 +57,11 @@ F77_FUNC(slansy,SLANSY)(const char *norm, const char *uplo, int *n, float *a, in sum = 0.; i__2 = j - 1; for (i__ = 1; i__ <= i__2; ++i__) { - absa = fabs(a[i__ + j * a_dim1]); + absa = std::abs(a[i__ + j * a_dim1]); sum += absa; work[i__] += absa; } - work[j] = sum + fabs(a[j + j * a_dim1]); + work[j] = sum + std::abs(a[j + j * a_dim1]); } i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { @@ -75,10 +75,10 @@ F77_FUNC(slansy,SLANSY)(const char *norm, const char *uplo, int *n, float *a, in } i__1 = *n; for (j = 1; j <= i__1; ++j) { - sum = work[j] + fabs(a[j + j * a_dim1]); + sum = work[j] + std::abs(a[j + j * a_dim1]); i__2 = *n; for (i__ = j + 1; i__ <= i__2; ++i__) { - absa = fabs(a[i__ + j * a_dim1]); + absa = std::abs(a[i__ + j * a_dim1]); sum += absa; work[i__] += absa; } @@ -106,7 +106,7 @@ F77_FUNC(slansy,SLANSY)(const char *norm, const char *uplo, int *n, float *a, in sum *= 2; i__1 = *lda + 1; F77_FUNC(slassq,SLASSQ)(n, &a[a_offset], &i__1, &scale, &sum); - value = scale * sqrt(sum); + value = scale * std::sqrt(sum); } ret_val = value; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slapy2.c b/src/gromacs/linearalgebra/gmx_lapack/slapy2.cpp similarity index 68% rename from src/gromacs/linearalgebra/gmx_lapack/slapy2.c rename to src/gromacs/linearalgebra/gmx_lapack/slapy2.cpp index e7391db05f..895ee9315a 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slapy2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slapy2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "gromacs/utility/real.h" @@ -9,8 +9,8 @@ F77_FUNC(slapy2,SLAPY2)(float * x, float * y) float xabs,yabs; float w,z; - xabs = fabs(*x); - yabs = fabs(*y); + xabs = std::abs(*x); + yabs = std::abs(*y); if(xabs>yabs) { w = xabs; @@ -20,11 +20,11 @@ F77_FUNC(slapy2,SLAPY2)(float * x, float * y) z = xabs; } - if( fabs(z) +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include #include "gromacs/utility/real.h" @@ -91,12 +100,12 @@ L40: s = work[inds + i__] - *sigma; } - if (! (s > 0. || s < 1.)) { + if (isnan(s)) { sawnan = 1; j = *b1 + 1; L60: - if (work[inds + j] > 0. || work[inds + j] < 1.) { + if (!isnan(work[inds + j])) { ++j; goto L60; } @@ -106,7 +115,7 @@ L60: for (i__ = j + 1; i__ <= i__1; ++i__) { dplus = d__[i__] + s; work[i__] = ld[i__] / dplus; - if (fabs(work[i__]) 0. || tmp < 1.)) { + if (isnan(tmp)) { sawnan = 1; j = *bn - 3; L90: - if (work[indp + j] > 0. || work[indp + j] < 1.) { + if (!isnan(work[indp + j])) { --j; goto L90; } @@ -139,7 +148,7 @@ L90: dminus = lld[i__] + work[indp + i__]; tmp = d__[i__] / dminus; work[indumn + i__] = l[i__] * tmp; - if (fabs(tmp)= i__1; --i__) { - if (fabs(z__[i__ + 1]) -#include +#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -17,7 +17,7 @@ F77_FUNC(slarf,SLARF)(const char *side, int *ldc, float *work) { - const char ch=toupper(*side); + const char ch=std::toupper(*side); float one = 1.0; float zero = 0.0; float minustau = -(*tau); @@ -25,12 +25,12 @@ F77_FUNC(slarf,SLARF)(const char *side, if(ch=='L') { - if(fabs(*tau)>GMX_FLOAT_MIN) { + if(std::abs(*tau)>GMX_FLOAT_MIN) { F77_FUNC(sgemv,SGEMV)("T",m,n,&one,c,ldc,v,incv,&zero,work,&i1); F77_FUNC(sger,SGER)(m,n,&minustau,v,incv,work,&i1,c,ldc); } } else { - if(fabs(*tau)>GMX_FLOAT_MIN) { + if(std::abs(*tau)>GMX_FLOAT_MIN) { F77_FUNC(sgemv,SGEMV)("N",m,n,&one,c,ldc,v,incv,&zero,work,&i1); F77_FUNC(sger,SGER)(m,n,&minustau,work,&i1,v,incv,c,ldc); } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slarfb.c b/src/gromacs/linearalgebra/gmx_lapack/slarfb.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/slarfb.c rename to src/gromacs/linearalgebra/gmx_lapack/slarfb.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/slarfg.c b/src/gromacs/linearalgebra/gmx_lapack/slarfg.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/slarfg.c rename to src/gromacs/linearalgebra/gmx_lapack/slarfg.cpp index 4ea03cae30..27e52bd1c3 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slarfg.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slarfg.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -26,7 +26,7 @@ F77_FUNC(slarfg,SLARFG)(int *n, xnorm = F77_FUNC(snrm2,SNRM2)(&ti1,x,incx); - if(fabs(xnorm) +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -40,7 +40,7 @@ F77_FUNC(slarft,SLARFT)(const char *direct, if (*direct=='F' || *direct=='f') { i__1 = *k; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(tau[i__])= 1; --i__) { - if (fabs(tau[i__]) +#include #include "../gmx_lapack.h" void @@ -44,9 +44,8 @@ F77_FUNC(slarnv,SLARNV)(int *idist, i__2 = il; for (i__ = 1; i__ <= i__2; ++i__) { - x[iv + i__ - 1] = sqrt(log(u[(i__ << 1) - 2]) * -2.) * - cos(u[(i__ << 1) - 1] * - (float)6.2831853071795864769252867663); + x[iv + i__ - 1] = std::sqrt(std::log(u[(i__ << 1) - 2]) * -2.) * + std::cos(u[(i__ << 1) - 1] * (float)6.2831853071795864769252867663); } } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slarrbx.c b/src/gromacs/linearalgebra/gmx_lapack/slarrbx.cpp similarity index 90% rename from src/gromacs/linearalgebra/gmx_lapack/slarrbx.c rename to src/gromacs/linearalgebra/gmx_lapack/slarrbx.cpp index 33f2e431fd..1dfe33300e 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slarrbx.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slarrbx.cpp @@ -1,4 +1,13 @@ -#include +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include #include "gromacs/utility/real.h" @@ -31,9 +40,9 @@ F77_FUNC(slarrbx,SLARRBX)(int *n, int i1, i2, ii, kk; float fac, gap, mid; int cnt; - float eps, tmp, left; + float tmp, left; int nint, prev, next, nleft; - float right, width, dplus, error; + float right, width, dplus; int nright, olnint; k = 0; right = 0.0; @@ -49,7 +58,6 @@ F77_FUNC(slarrbx,SLARRBX)(int *n, --d__; *info = 0; - eps = GMX_FLOAT_EPS; i__1 = *n << 1; for (i__ = 1; i__ <= i__1; ++i__) { iwork[i__] = 0; @@ -59,16 +67,6 @@ F77_FUNC(slarrbx,SLARRBX)(int *n, prev = 0; i__1 = *ilast; for (i__ = *ifirst; i__ <= i__1; ++i__) { - ii = i__ - *offset; - if (i__ == *ifirst) { - gap = wgap[ii]; - } else if (i__ == *ilast) { - gap = wgap[ii - 1]; - } else { - d__1 = wgap[ii - 1], d__2 = wgap[ii]; - gap = (d__1 0. || s < 1.)) { + if (isnan(s)) { cnt = 0; s = -left; @@ -114,7 +112,7 @@ L40: ++cnt; } tmp = lld[j] / dplus; - if (fabs(tmp) 0. || s < 1.)) { + if (isnan(s)) { cnt = 0; s = -right; @@ -161,7 +159,7 @@ L60: ++cnt; } tmp = lld[j] / dplus; - if (fabs(tmp)d__2) ? d__1 : d__2; gap = 0.; @@ -267,7 +265,7 @@ L80: if (dplus < 0.) { ++cnt; } - if (! (s > 0. || s < 1.)) { + if (isnan(s)) { cnt = 0; s = -mid; i__2 = *n - 1; @@ -277,7 +275,7 @@ L80: ++cnt; } tmp = lld[j] / dplus; - if (fabs(tmp) -#include +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include +#include #include "gromacs/utility/real.h" @@ -80,7 +89,7 @@ F77_FUNC(slarrex,SLARREX)(const char *range, *nsplit = 1; i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__]) <= *tol) { + if (std::abs(e[i__]) <= *tol) { isplit[*nsplit] = i__; ++(*nsplit); } @@ -102,19 +111,19 @@ F77_FUNC(slarrex,SLARREX)(const char *range, } in = iend - ibegin + 1; - gl = d__[ibegin] - fabs(e[ibegin]); - gu = d__[ibegin] + fabs(e[ibegin]); + gl = d__[ibegin] - std::abs(e[ibegin]); + gu = d__[ibegin] + std::abs(e[ibegin]); gersch[(ibegin << 1) - 1] = gl; gersch[ibegin * 2] = gu; - gersch[(iend << 1) - 1] = d__[iend] - fabs(e[iend - 1]); - gersch[iend * 2] = d__[iend] + fabs(e[iend - 1]); + gersch[(iend << 1) - 1] = d__[iend] - std::abs(e[iend - 1]); + gersch[iend * 2] = d__[iend] + std::abs(e[iend - 1]); d__1 = gersch[(iend << 1) - 1]; gl = (d__1gu) ? d__1 : gu; i__2 = iend - 1; for (i__ = ibegin + 1; i__ <= i__2; ++i__) { - offd = fabs(e[i__ - 1]) + fabs(e[i__]); + offd = std::abs(e[i__ - 1]) + std::abs(e[i__]); gersch[(i__ << 1) - 1] = d__[i__] - offd; d__1 = gersch[(i__ << 1) - 1]; gl = (d__1gu) ? d__1 : gu; } - d__1 = fabs(gl), d__2 = fabs(gu); + d__1 = std::abs(gl), d__2 = std::abs(gu); nrm = (d__1>d__2) ? d__1 : d__2; width = gu - gl; @@ -183,7 +192,7 @@ L60: } for (i__ = in; i__ >= 1; --i__) { tmp = sgndef * work[i__]; - if (tmp < 0. || fabs(work[(in << 1) + i__]) 0. || tmp < 1.)) { + if (tmp < 0. || std::abs(work[(in << 1) + i__])= 1; --i__) { tmp = sgndef * work[i__]; - if (tmp < 0. || fabs(work[(in << 1) + i__]) 0. || tmp < 1.)) { + if (tmp < 0. || std::abs(work[(in << 1) + i__]) +#ifdef _MSC_VER +// MSVC does not provide isnan(), but it has _isnan() +# include +# define isnan _isnan +#else +// we borrow isnan from C since it is not in std:: until c++11 +# include +#endif + +#include #include "gromacs/utility/real.h" @@ -44,17 +53,17 @@ F77_FUNC(slarrfx,SLARRFX)(int *n, L10: s = -(*sigma); dplus[1] = d__[1] + s; - dmax1 = fabs(dplus[1]); + dmax1 = std::abs(dplus[1]); i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { lplus[i__] = ld[i__] / dplus[i__]; s = s * lplus[i__] * l[i__] - *sigma; dplus[i__ + 1] = d__[i__ + 1] + s; - d__2 = dmax1, d__3 = fabs(dplus[i__ + 1]); + d__2 = dmax1, d__3 = std::abs(dplus[i__ + 1]); dmax1 = (d__2>d__3) ? d__2 : d__3; } - if (! (dmax1 > 0. || dmax1 < 1.)) { - *sigma -= fabs(*sigma) * delta; + if (isnan(dmax1)) { + *sigma -= std::abs(*sigma) * delta; delta *= 2.; goto L10; } @@ -64,17 +73,17 @@ L10: L30: s = -tmp; work[1] = d__[1] + s; - dmax2 = fabs(work[1]); + dmax2 = std::abs(work[1]); i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { work[*n + i__] = ld[i__] / work[i__]; s = s * work[*n + i__] * l[i__] - tmp; work[i__ + 1] = d__[i__ + 1] + s; - d__2 = dmax2, d__3 = fabs(work[i__ + 1]); + d__2 = dmax2, d__3 = std::abs(work[i__ + 1]); dmax2 = (d__2>d__3) ? d__2 : d__3; } - if (! (dmax2 > 0. || dmax2 < 1.)) { - tmp += fabs(tmp) * delta; + if (isnan(dmax2)) { + tmp += std::abs(tmp) * delta; delta *= 2.; goto L30; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slarrvx.c b/src/gromacs/linearalgebra/gmx_lapack/slarrvx.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/slarrvx.c rename to src/gromacs/linearalgebra/gmx_lapack/slarrvx.cpp index 296d99bf7f..ad2ab69864 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slarrvx.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slarrvx.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" @@ -132,11 +132,11 @@ L171: F77_FUNC(scopy,SCOPY)(&im, &w[wbegin], &c__1, &work[1], &c__1); i__2 = im - 1; for (i__ = 1; i__ <= i__2; ++i__) { - work[inderr + i__] = eps * fabs(work[i__]); + work[inderr + i__] = eps * std::abs(work[i__]); work[indgap + i__] = work[i__ + 1] - work[i__]; } - work[inderr + im] = eps * fabs(work[im]); - d__2 = fabs(work[im]); + work[inderr + im] = eps * std::abs(work[im]); + d__2 = std::abs(work[im]); work[indgap + im] = (d__2>eps) ? d__2 : eps; ndone = 0; @@ -197,11 +197,11 @@ L40: i__3 = oldlst; for (j = oldfst; j <= i__3; ++j) { if (j == oldlst || work[indgap + j] >= - reltol * fabs(work[j])) { + reltol * std::abs(work[j])) { newlst = j; } else { - relgap = work[indgap + j] / fabs(work[j]); + relgap = work[indgap + j] / std::abs(work[j]); if (j == newfrs) { minrgp = relgap; } else { @@ -220,7 +220,7 @@ L40: z_dim1], &z__[ibegin + (newftt + 1) * z_dim1], &work[indwrk], info); if (*info == 0) { - tmp = eps * fabs(sigma); + tmp = eps * std::abs(sigma); i__4 = newlst; for (k = newfrs; k <= i__4; ++k) { work[k] -= sigma; @@ -234,9 +234,7 @@ L40: iwork[k] = newlst; } else { *info = 0; - if (minrgp >= mgstol) { - nomgs = 0; - } else { + if (minrgp < mgstol) { work[indwrk] = d__[ibegin]; i__4 = in - 1; @@ -281,8 +279,8 @@ L90: &ztz, &mingma, &iwork[iindr + ktot], & isuppz[(ktot << 1) - 1], &work[indwrk]); tmp = 1. / ztz; - nrminv = sqrt(tmp); - resid = fabs(mingma) * nrminv; + nrminv = std::sqrt(tmp); + resid = std::abs(mingma) * nrminv; rqcorr = mingma * tmp; if (k == in) { gap = work[indgap + k - 1]; @@ -294,8 +292,8 @@ L90: gap = (d__1 *tol * gap && fabs(rqcorr) > eps * 4. * - fabs(lambda)) { + if (resid > *tol * gap && std::abs(rqcorr) > eps * 4. * + std::abs(lambda)) { work[k] = lambda + rqcorr; if (iter < 8) { goto L90; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slartg.c b/src/gromacs/linearalgebra/gmx_lapack/slartg.cpp similarity index 69% rename from src/gromacs/linearalgebra/gmx_lapack/slartg.c rename to src/gromacs/linearalgebra/gmx_lapack/slartg.cpp index 79f7c20fe9..567642b07b 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slartg.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slartg.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -18,24 +18,24 @@ F77_FUNC(slartg,SLARTG)(float *f, eps = GMX_FLOAT_EPS; minval = GMX_FLOAT_MIN; safemin = minval*(1.0+eps); - n = 0.5*log( safemin/eps ) / log(2); - safemin2 = pow(2,n); + n = static_cast(0.5*std::log( safemin/eps ) / std::log(2.0)); + safemin2 = std::pow(static_cast(2.0),static_cast(n)); safemx2 = 1.0 / safemin2; - if(fabs(*g) g1a) ? f1a : g1a; if(scale >= safemx2) { count = 0; @@ -43,11 +43,11 @@ F77_FUNC(slartg,SLARTG)(float *f, count++; f1 *= safemin2; g1 *= safemin2; - f1a = fabs(f1); - g1a = fabs(g1); + f1a = std::abs(f1); + g1a = std::abs(g1); scale = (f1a > g1a) ? f1a : g1a; } - *r = sqrt(f1*f1 + g1*g1); + *r = std::sqrt(f1*f1 + g1*g1); *cs = f1 / *r; *sn = g1 / *r; for(i=0;i g1a) ? f1a : g1a; } - *r = sqrt(f1*f1 + g1*g1); + *r = std::sqrt(f1*f1 + g1*g1); *cs = f1 / *r; *sn = g1 / *r; for(i=0;ifabs(*g) && *cs<0.0) { + if(std::abs(*f)>std::abs(*g) && *cs<0.0) { *cs *= -1.0; *sn *= -1.0; *r *= -1.0; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slaruv.c b/src/gromacs/linearalgebra/gmx_lapack/slaruv.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slaruv.c rename to src/gromacs/linearalgebra/gmx_lapack/slaruv.cpp index 491043e25d..e832f8e7e9 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slaruv.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slaruv.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void diff --git a/src/gromacs/linearalgebra/gmx_lapack/slas2.c b/src/gromacs/linearalgebra/gmx_lapack/slas2.cpp similarity index 70% rename from src/gromacs/linearalgebra/gmx_lapack/slas2.c rename to src/gromacs/linearalgebra/gmx_lapack/slas2.cpp index c660aa8a0d..cb85b6a481 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slas2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slas2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -10,25 +10,25 @@ F77_FUNC(slas2,SLAS2)(float *f, float *ssmin, float *ssmax) { - float fa = fabs(*f); - float ga = fabs(*g); - float ha = fabs(*h); + float fa = std::abs(*f); + float ga = std::abs(*g); + float ha = std::abs(*h); float fhmin,fhmax,tmax,tmin,tmp1,tmp2; float as,at,au,c; fhmin = (faha) ? fa : ha; - if(fabs(fhmin)ga) ? fhmax : ga; tmin = (fhmax -#include +#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -18,7 +18,7 @@ F77_FUNC(slascl,SLASCL)(const char *type, int *lda, int *info) { - const char ch=toupper(*type); + const char ch=std::toupper(*type); int i,j,k,l,k1,k2,k3,k4; int done=0; float minval,smlnum,bignum; @@ -39,11 +39,11 @@ F77_FUNC(slascl,SLASCL)(const char *type, cfrom1 = cfromc * smlnum; cto1 = ctoc / bignum; - if(fabs(cfrom1)>fabs(ctoc) && fabs(ctoc)>GMX_FLOAT_MIN) { + if(std::abs(cfrom1)>std::abs(ctoc) && std::abs(ctoc)>GMX_FLOAT_MIN) { mul = smlnum; done = 0; cfromc = cfrom1; - } else if(fabs(cto1)>fabs(cfromc)) { + } else if(std::abs(cto1)>std::abs(cfromc)) { mul = bignum; done = 0; ctoc = cto1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd0.c b/src/gromacs/linearalgebra/gmx_lapack/slasd0.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slasd0.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd0.cpp index fbe60fc9c8..24034ed7ad 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd0.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd0.cpp @@ -54,7 +54,6 @@ F77_FUNC(slasd0,SLASD0)(int *n, *info = -9; } if (*info != 0) { - i__1 = -(*info); return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd1.c b/src/gromacs/linearalgebra/gmx_lapack/slasd1.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/slasd1.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd1.cpp index af10fe7e64..44da3e4adb 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd1.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd1.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -51,7 +51,6 @@ F77_FUNC(slasd1,SLASD1)(int *nl, *info = -3; } if (*info != 0) { - i__1 = -(*info); return; } @@ -73,14 +72,14 @@ F77_FUNC(slasd1,SLASD1)(int *nl, coltyp = idxc + n; idxp = coltyp + n; - d__1 = fabs(*alpha); - d__2 = fabs(*beta); + d__1 = std::abs(*alpha); + d__2 = std::abs(*beta); orgnrm = (d__1>d__2) ? d__1 : d__2; d__[*nl + 1] = 0.; i__1 = n; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(d__[i__]) > orgnrm) { - orgnrm = fabs(d__[i__]); + if (std::abs(d__[i__]) > orgnrm) { + orgnrm = std::abs(d__[i__]); } } F77_FUNC(slascl,SLASCL)("G", &c__0, &c__0, &orgnrm, &one, &n, &c__1, &d__[1], &n, info); diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd2.c b/src/gromacs/linearalgebra/gmx_lapack/slasd2.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/slasd2.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd2.cpp index 2f016ff4de..d46c5fb1e0 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -123,16 +123,16 @@ F77_FUNC(slasd2,SLASD2)(int *nl, } eps = GMX_FLOAT_EPS; - d__1 = fabs(*alpha), d__2 = fabs(*beta); + d__1 = std::abs(*alpha), d__2 = std::abs(*beta); tol = (d__1 > d__2) ? d__1 : d__2; - d__2 = fabs(d__[n]); + d__2 = std::abs(d__[n]); tol = eps * 8. * ((d__2 > tol) ? d__2 : tol); *k = 1; k2 = n + 1; i__1 = n; for (j = 2; j <= i__1; ++j) { - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; @@ -152,14 +152,14 @@ L100: if (j > n) { goto L110; } - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; coltyp[j] = 4; } else { - if (fabs(d__[j] - d__[jprev]) <= tol) { + if (std::abs(d__[j] - d__[jprev]) <= tol) { s = z__[jprev]; c__ = z__[j]; @@ -243,7 +243,7 @@ L120: dsigma[1] = 0.; hlftol = tol / 2.; - if (fabs(dsigma[2]) <= hlftol) { + if (std::abs(dsigma[2]) <= hlftol) { dsigma[2] = hlftol; } if (m > n) { @@ -257,7 +257,7 @@ L120: s = z__[m] / z__[1]; } } else { - if (fabs(z1) <= tol) { + if (std::abs(z1) <= tol) { z__[1] = tol; } else { z__[1] = z1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd3.c b/src/gromacs/linearalgebra/gmx_lapack/slasd3.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/slasd3.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd3.cpp index f58876fde5..394a2978aa 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd3.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd3.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -38,10 +38,6 @@ F77_FUNC(slasd3,SLASD3)(int *nl, int c__0 = 0; float zero = 0.0; float one = 1.0; - float *p1,*p2,t1,t2; - - p1 = &t1; - p2 = &t2; --d__; q_dim1 = *ldq; @@ -81,7 +77,7 @@ F77_FUNC(slasd3,SLASD3)(int *nl, nlp2 = *nl + 2; if (*k == 1) { - d__[1] = fabs(z__[1]); + d__[1] = std::abs(z__[1]); F77_FUNC(scopy,SCOPY)(&m, &vt2[vt2_dim1 + 1], ldvt2, &vt[vt_dim1 + 1], ldvt); if (z__[1] > 0.) { F77_FUNC(scopy,SCOPY)(&n, &u2[u2_dim1 + 1], &c__1, &u[u_dim1 + 1], &c__1); @@ -94,16 +90,6 @@ F77_FUNC(slasd3,SLASD3)(int *nl, return; } - i__1 = *k; - for (i__ = 1; i__ <= i__1; ++i__) { - t1 = dsigma[i__]; - t2 = dsigma[i__]; - /* force store and reload from memory */ - t1 = (*p1) + (*p2) - dsigma[i__]; - - dsigma[i__] = t1; - } - F77_FUNC(scopy,SCOPY)(k, &z__[1], &c__1, &q[q_offset], &c__1); rho = F77_FUNC(snrm2,SNRM2)(k, &z__[1], &c__1); @@ -134,7 +120,7 @@ F77_FUNC(slasd3,SLASD3)(int *nl, z__[i__] *= u[i__ + j * u_dim1] * vt[i__ + j * vt_dim1] / (dsigma[ i__] - dsigma[j + 1]) / (dsigma[i__] + dsigma[j + 1]); } - d__2 = sqrt(fabs(z__[i__])); + d__2 = std::sqrt(std::abs(z__[i__])); z__[i__] = (q[i__ + q_dim1] > 0) ? d__2 : -d__2; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd4.c b/src/gromacs/linearalgebra/gmx_lapack/slasd4.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_lapack/slasd4.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd4.cpp index 194a949cf0..003a88ff0e 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd4.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd4.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -47,7 +47,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, *info = 0; if (*n == 1) { - *sigma = sqrt(d__[1] * d__[1] + *rho * z__[1] * z__[1]); + *sigma = std::sqrt(d__[1] * d__[1] + *rho * z__[1] * z__[1]); delta[1] = 1.; work[1] = 1.; return; @@ -67,7 +67,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, temp = *rho / 2.; - temp1 = temp / (d__[*n] + sqrt(d__[*n] * d__[*n] + temp)); + temp1 = temp / (d__[*n] + std::sqrt(d__[*n] * d__[*n] + temp)); i__1 = *n; for (j = 1; j <= i__1; ++j) { work[j] = d__[j] + d__[*n] + temp1; @@ -85,7 +85,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, n] / (delta[*n] * work[*n]); if (w <= 0.) { - temp1 = sqrt(d__[*n] * d__[*n] + *rho); + temp1 = std::sqrt(d__[*n] * d__[*n] + *rho); temp = z__[*n - 1] * z__[*n - 1] / ((d__[*n - 1] + temp1) * (d__[* n] - d__[*n - 1] + *rho / (d__[*n] + temp1))) + z__[*n] * z__[*n] / *rho; @@ -98,9 +98,9 @@ F77_FUNC(slasd4,SLASD4)(int *n, n]; b = z__[*n] * z__[*n] * delsq; if (a < 0.) { - tau = b * 2. / (sqrt(a * a + b * 4. * c__) - a); + tau = b * 2. / ( std::sqrt(a * a + b * 4. * c__) - a); } else { - tau = (a + sqrt(a * a + b * 4. * c__)) / (c__ * 2.); + tau = (a + std::sqrt(a * a + b * 4. * c__)) / (c__ * 2.); } } @@ -110,14 +110,14 @@ F77_FUNC(slasd4,SLASD4)(int *n, b = z__[*n] * z__[*n] * delsq; if (a < 0.) { - tau = b * 2. / (sqrt(a * a + b * 4. * c__) - a); + tau = b * 2. / ( std::sqrt(a * a + b * 4. * c__) - a); } else { - tau = (a + sqrt(a * a + b * 4. * c__)) / (c__ * 2.); + tau = (a + std::sqrt(a * a + b * 4. * c__)) / (c__ * 2.); } } - eta = tau / (d__[*n] + sqrt(d__[*n] * d__[*n] + tau)); + eta = tau / (d__[*n] + std::sqrt(d__[*n] * d__[*n] + tau)); *sigma = d__[*n] + eta; i__1 = *n; @@ -136,17 +136,17 @@ F77_FUNC(slasd4,SLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); temp = z__[*n] / (delta[*n] * work[*n]); phi = z__[*n] * temp; dphi = temp * temp; - erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + fabs(tau) * (dpsi + erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + std::abs(tau) * (dpsi + dphi); w = rhoinv + phi + psi; - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } @@ -157,14 +157,14 @@ F77_FUNC(slasd4,SLASD4)(int *n, a = (dtnsq + dtnsq1) * w - dtnsq * dtnsq1 * (dpsi + dphi); b = dtnsq * dtnsq1 * w; if (c__ < 0.) { - c__ = fabs(c__); + c__ = std::abs(c__); } - if ( fabs(c__)= 0.) { - eta = (a + sqrt(fabs(a * a - b * 4. * c__))) / (c__ * 2.); + eta = (a + std::sqrt(std::abs(a * a - b * 4. * c__))) / (c__ * 2.); } else { - eta = b * 2. / (a - sqrt(fabs(a * a - b * 4. * c__))); + eta = b * 2. / (a - std::sqrt(std::abs(a * a - b * 4. * c__))); } if (w * eta > 0.) { @@ -176,7 +176,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, } tau += eta; - eta /= *sigma + sqrt(eta + *sigma * *sigma); + eta /= *sigma + std::sqrt(eta + *sigma * *sigma); i__1 = *n; for (j = 1; j <= i__1; ++j) { delta[j] -= eta; @@ -195,12 +195,12 @@ F77_FUNC(slasd4,SLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); temp = z__[*n] / (work[*n] * delta[*n]); phi = z__[*n] * temp; dphi = temp * temp; - erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + fabs(tau) * (dpsi + erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + std::abs(tau) * (dpsi + dphi); w = rhoinv + phi + psi; @@ -209,7 +209,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, for (niter = iter; niter <= 20; ++niter) { - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } dtnsq1 = work[*n - 1] * delta[*n - 1]; @@ -218,9 +218,9 @@ F77_FUNC(slasd4,SLASD4)(int *n, a = (dtnsq + dtnsq1) * w - dtnsq1 * dtnsq * (dpsi + dphi); b = dtnsq1 * dtnsq * w; if (a >= 0.) { - eta = (a + sqrt(fabs(a * a - b * 4. * c__))) / (c__ * 2.); + eta = (a + std::sqrt(std::abs(a * a - b * 4. * c__))) / (c__ * 2.); } else { - eta = b * 2. / (a - sqrt(fabs(a * a - b * 4. * c__))); + eta = b * 2. / (a - std::sqrt(std::abs(a * a - b * 4. * c__))); } if (w * eta > 0.) { @@ -232,7 +232,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, } tau += eta; - eta /= *sigma + sqrt(eta + *sigma * *sigma); + eta /= *sigma + std::sqrt(eta + *sigma * *sigma); i__1 = *n; for (j = 1; j <= i__1; ++j) { delta[j] -= eta; @@ -251,12 +251,12 @@ F77_FUNC(slasd4,SLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); temp = z__[*n] / (work[*n] * delta[*n]); phi = z__[*n] * temp; dphi = temp * temp; - erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + fabs(tau) * ( + erretm = (-phi - psi) * 8. + erretm - phi + rhoinv + std::abs(tau) * ( dpsi + dphi); w = rhoinv + phi + psi; @@ -272,7 +272,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, delsq = (d__[ip1] - d__[*i__]) * (d__[ip1] + d__[*i__]); delsq2 = delsq / 2.; - temp = delsq2 / (d__[*i__] + sqrt(d__[*i__] * d__[*i__] + delsq2)); + temp = delsq2 / (d__[*i__] + std::sqrt(d__[*i__] * d__[*i__] + delsq2)); i__1 = *n; for (j = 1; j <= i__1; ++j) { work[j] = d__[j] + d__[*i__] + temp; @@ -302,11 +302,11 @@ F77_FUNC(slasd4,SLASD4)(int *n, a = c__ * delsq + z__[*i__] * z__[*i__] + z__[ip1] * z__[ip1]; b = z__[*i__] * z__[*i__] * delsq; if (a > 0.) { - tau = b * 2. / (a + sqrt(fabs(a * a - b * 4. * c__))); + tau = b * 2. / (a + std::sqrt(std::abs(a * a - b * 4. * c__))); } else { - tau = (a - sqrt(fabs(a * a - b * 4. * c__))) / (c__ * 2.); + tau = (a - std::sqrt(std::abs(a * a - b * 4. * c__))) / (c__ * 2.); } - eta = tau / (d__[*i__] + sqrt(d__[*i__] * d__[*i__] + tau)); + eta = tau / (d__[*i__] + std::sqrt(d__[*i__] * d__[*i__] + tau)); } else { orgati = 0; @@ -315,11 +315,11 @@ F77_FUNC(slasd4,SLASD4)(int *n, a = c__ * delsq - z__[*i__] * z__[*i__] - z__[ip1] * z__[ip1]; b = z__[ip1] * z__[ip1] * delsq; if (a < 0.) { - tau = b * 2. / (a - sqrt(fabs(a * a + b * 4. * c__))); + tau = b * 2. / (a - std::sqrt(std::abs(a * a + b * 4. * c__))); } else { - tau = -(a + sqrt(fabs(a * a + b * 4. * c__))) / (c__ * 2.); + tau = -(a + std::sqrt(std::abs(a * a + b * 4. * c__))) / (c__ * 2.); } - eta = tau / (d__[ip1] + sqrt(fabs(d__[ip1] * d__[ip1] + tau))); + eta = tau / (d__[ip1] + std::sqrt(std::abs(d__[ip1] * d__[ip1] + tau))); } if (orgati) { @@ -352,7 +352,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, dpsi += temp * temp; erretm += psi; } - erretm = fabs(erretm); + erretm = std::abs(erretm); dphi = 0.; phi = 0.; @@ -384,10 +384,10 @@ F77_FUNC(slasd4,SLASD4)(int *n, dw = dpsi + dphi + temp * temp; temp = z__[ii] * temp; w += temp; - erretm = (phi - psi) * 8. + erretm + rhoinv * 2. + fabs(temp) * 3. + - fabs(tau) * dw; + erretm = (phi - psi) * 8. + erretm + rhoinv * 2. + std::abs(temp) * 3. + + std::abs(tau) * dw; - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } @@ -410,8 +410,8 @@ F77_FUNC(slasd4,SLASD4)(int *n, } a = (dtipsq + dtisq) * w - dtipsq * dtisq * dw; b = dtipsq * dtisq * w; - if ( fabs(c__) tau) ? sg2lb : tau; @@ -531,11 +531,11 @@ F77_FUNC(slasd4,SLASD4)(int *n, swtch = 0; if (orgati) { - if (-w > fabs(prew) / 10.) { + if (-w > std::abs(prew) / 10.) { swtch = 1; } } else { - if (w > fabs(prew) / 10.) { + if (w > std::abs(prew) / 10.) { swtch = 1; } } @@ -544,7 +544,7 @@ F77_FUNC(slasd4,SLASD4)(int *n, for (niter = iter; niter <= 20; ++niter) { - if (fabs(w) <= eps * erretm) { + if (std::abs(w) <= eps * erretm) { goto L240; } @@ -570,8 +570,8 @@ F77_FUNC(slasd4,SLASD4)(int *n, } a = (dtipsq + dtisq) * w - dtipsq * dtisq * dw; b = dtipsq * dtisq * w; - if (fabs(c__) 0. && fabs(w) > fabs(prew) / 10.) { + erretm = (phi - psi) * 8. + erretm + rhoinv * 2. + std::abs(temp) * 3. + + std::abs(tau) * dw; + if (w * prew > 0. && std::abs(w) > std::abs(prew) / 10.) { swtch = ! swtch; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd5.c b/src/gromacs/linearalgebra/gmx_lapack/slasd5.cpp similarity index 73% rename from src/gromacs/linearalgebra/gmx_lapack/slasd5.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd5.cpp index 4773373116..63a88141e8 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd5.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd5.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -26,9 +26,9 @@ F77_FUNC(slasd5,SLASD5)(int *i__, b = delsq + *rho * (z__[1] * z__[1] + z__[2] * z__[2]); c__ = *rho * z__[1] * z__[1] * delsq; - tau = c__ * 2. / (b + sqrt(fabs(b * b - c__ * 4.))); + tau = c__ * 2. / (b + std::sqrt(std::abs(b * b - c__ * 4.))); - tau /= d__[1] + sqrt(d__[1] * d__[1] + tau); + tau /= d__[1] + std::sqrt(d__[1] * d__[1] + tau); *dsigma = d__[1] + tau; delta[1] = -tau; delta[2] = del - tau; @@ -39,12 +39,12 @@ F77_FUNC(slasd5,SLASD5)(int *i__, c__ = *rho * z__[2] * z__[2] * delsq; if (b > 0.) { - tau = c__ * -2. / (b + sqrt(b * b + c__ * 4.)); + tau = c__ * -2. / (b + std::sqrt(b * b + c__ * 4.)); } else { - tau = (b - sqrt(b * b + c__ * 4.)) / 2.; + tau = (b - std::sqrt(b * b + c__ * 4.)) / 2.; } - tau /= d__[2] + sqrt(fabs(d__[2] * d__[2] + tau)); + tau /= d__[2] + std::sqrt(std::abs(d__[2] * d__[2] + tau)); *dsigma = d__[2] + tau; delta[1] = -(del + tau); delta[2] = -tau; @@ -57,11 +57,11 @@ F77_FUNC(slasd5,SLASD5)(int *i__, c__ = *rho * z__[2] * z__[2] * delsq; if (b > 0.) { - tau = (b + sqrt(b * b + c__ * 4.)) / 2.; + tau = (b + std::sqrt(b * b + c__ * 4.)) / 2.; } else { - tau = c__ * 2. / (-b + sqrt(b * b + c__ * 4.)); + tau = c__ * 2. / (-b + std::sqrt(b * b + c__ * 4.)); } - tau /= d__[2] + sqrt(d__[2] * d__[2] + tau); + tau /= d__[2] + std::sqrt(d__[2] * d__[2] + tau); *dsigma = d__[2] + tau; delta[1] = -(del + tau); delta[2] = -tau; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd6.c b/src/gromacs/linearalgebra/gmx_lapack/slasd6.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/slasd6.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd6.cpp index f74d6b741c..896d8f5714 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd6.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd6.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -75,13 +75,13 @@ F77_FUNC(slasd6,SLASD6)(int *icompq, idxc = idx + n; idxp = idxc + n; - d__1 = fabs(*alpha); - d__2 = fabs(*beta); + d__1 = std::abs(*alpha); + d__2 = std::abs(*beta); orgnrm = (d__1 > d__2) ? d__1 : d__2; d__[*nl + 1] = 0.; i__1 = n; for (i__ = 1; i__ <= i__1; ++i__) { - d__1 = fabs(d__[i__]); + d__1 = std::abs(d__[i__]); if (d__1 > orgnrm) orgnrm = d__1; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd7.c b/src/gromacs/linearalgebra/gmx_lapack/slasd7.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/slasd7.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd7.cpp index 40e8fed595..29a7e06134 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd7.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd7.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -119,17 +119,17 @@ F77_FUNC(slasd7,SLASD7)(int *icompq, eps = GMX_FLOAT_EPS; - d__1 = fabs(*alpha); - d__2 = fabs(*beta); + d__1 = std::abs(*alpha); + d__2 = std::abs(*beta); tol = (d__1>d__2) ? d__1 : d__2; - d__2 = fabs(d__[n]); + d__2 = std::abs(d__[n]); tol = eps * 64. * ((d__2>tol) ? d__2 : tol); *k = 1; k2 = n + 1; i__1 = n; for (j = 2; j <= i__1; ++j) { - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; @@ -148,13 +148,13 @@ L80: if (j > n) { goto L90; } - if (fabs(z__[j]) <= tol) { + if (std::abs(z__[j]) <= tol) { --k2; idxp[k2] = j; } else { - if (fabs(d__[j] - d__[jprev]) <= tol) { + if (std::abs(d__[j] - d__[jprev]) <= tol) { *s = z__[jprev]; *c__ = z__[j]; @@ -226,7 +226,7 @@ L100: dsigma[1] = 0.; hlftol = tol / 2.; - if (fabs(dsigma[2]) <= hlftol) { + if (std::abs(dsigma[2]) <= hlftol) { dsigma[2] = hlftol; } if (m > n) { @@ -242,7 +242,7 @@ L100: F77_FUNC(srot,SROT)(&c__1, &vf[m], &c__1, &vf[1], &c__1, c__, s); F77_FUNC(srot,SROT)(&c__1, &vl[m], &c__1, &vl[1], &c__1, c__, s); } else { - if (fabs(z1) <= tol) { + if (std::abs(z1) <= tol) { z__[1] = tol; } else { z__[1] = z1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasd8.c b/src/gromacs/linearalgebra/gmx_lapack/slasd8.cpp similarity index 81% rename from src/gromacs/linearalgebra/gmx_lapack/slasd8.c rename to src/gromacs/linearalgebra/gmx_lapack/slasd8.cpp index 7b86bea09c..f0e7699539 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasd8.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasd8.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -18,7 +18,6 @@ F77_FUNC(slasd8,SLASD8)(int *icompq, { int difr_dim1, difr_offset, i__1, i__2; float d__2; - float *p1,*p2,t1,t2; int i__, j; float dj, rho; @@ -47,11 +46,8 @@ F77_FUNC(slasd8,SLASD8)(int *icompq, *info = 0; - p1 = &t1; - p2 = &t2; - if (*k == 1) { - d__[1] = fabs(z__[1]); + d__[1] = std::abs(z__[1]); difl[1] = d__[1]; if (*icompq == 1) { difl[2] = 1.; @@ -60,14 +56,6 @@ F77_FUNC(slasd8,SLASD8)(int *icompq, return; } - i__1 = *k; - for (i__ = 1; i__ <= i__1; ++i__) { - t1 = dsigma[i__]; - t2 = dsigma[i__]; - /* force store and reload from memory */ - d__2 = (*p1) + (*p2) - dsigma[i__]; - } - iwk1 = 1; iwk2 = iwk1 + *k; iwk3 = iwk2 + *k; @@ -107,7 +95,7 @@ F77_FUNC(slasd8,SLASD8)(int *icompq, i__1 = *k; for (i__ = 1; i__ <= i__1; ++i__) { - d__2 = sqrt(fabs(work[iwk3i + i__])); + d__2 = std::sqrt(std::abs(work[iwk3i + i__])); z__[i__] = (z__[i__] > 0) ? d__2 : -d__2; } @@ -123,19 +111,11 @@ F77_FUNC(slasd8,SLASD8)(int *icompq, work[j] = -z__[j] / diflj / (dsigma[j] + dj); i__2 = j - 1; for (i__ = 1; i__ <= i__2; ++i__) { - t1 = dsigma[i__]; - t2 = dsigj; - /* force store and reload from memory */ - t1 = (*p1) + (*p2) - diflj; - work[i__] = z__[i__] / t1 / ( dsigma[i__] + dj); + work[i__] = z__[i__] / (dsigma[i__] + dsigj - diflj) / ( dsigma[i__] + dj); } i__2 = *k; for (i__ = j + 1; i__ <= i__2; ++i__) { - t1 = dsigma[i__]; - t2 = dsigjp; - /* force store and reload from memory */ - t1 = (*p1) + (*p2) - difrj; - work[i__] = z__[i__] / t1 / (dsigma[i__] + dj); + work[i__] = z__[i__] / (dsigma[i__] + dsigjp - difrj) / (dsigma[i__] + dj); } temp = F77_FUNC(snrm2,SNRM2)(k, &work[1], &c__1); work[iwk2i + j] = F77_FUNC(sdot,SDOT)(k, &work[1], &c__1, &vf[1], &c__1) / temp; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasda.c b/src/gromacs/linearalgebra/gmx_lapack/slasda.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slasda.c rename to src/gromacs/linearalgebra/gmx_lapack/slasda.cpp index c0c883f505..541c393250 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasda.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasda.cpp @@ -201,7 +201,6 @@ F77_FUNC(slasda,SLASDA)(int *icompq, lf = 1; ll = 1; } else { - i__1 = lvl - 1; lf = (1 << (lvl-1)); ll = (lf << 1) - 1; } @@ -212,7 +211,6 @@ F77_FUNC(slasda,SLASDA)(int *icompq, nl = iwork[ndiml + im1]; nr = iwork[ndimr + im1]; nlf = ic - nl; - nrf = ic + 1; if (i__ == ll) { sqrei = *sqre; } else { diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasdq.c b/src/gromacs/linearalgebra/gmx_lapack/slasdq.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/slasdq.c rename to src/gromacs/linearalgebra/gmx_lapack/slasdq.cpp index 71ccb06111..0b7545393a 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasdq.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasdq.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" @@ -22,7 +22,7 @@ F77_FUNC(slasdq,SLASDQ)(const char *uplo, float *work, int *info) { - const char xuplo=toupper(*uplo); + const char xuplo=std::toupper(*uplo); int c_dim1, c_offset, u_dim1, u_offset, vt_dim1, vt_offset, i__1, i__2; int c__1 = 1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasdt.c b/src/gromacs/linearalgebra/gmx_lapack/slasdt.cpp similarity index 89% rename from src/gromacs/linearalgebra/gmx_lapack/slasdt.c rename to src/gromacs/linearalgebra/gmx_lapack/slasdt.cpp index dde20330a6..3987cd1456 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasdt.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasdt.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void @@ -14,7 +14,7 @@ F77_FUNC(slasdt,SLASDT)(int *n, float temp; int i,il,ir,llst,nlvl,ncrnt; - temp = log( ((float) maxn) / ((float)(*msub+1))) / log(2.0); + temp = std::log( ((float) maxn) / ((float)(*msub+1))) / std::log(2.0); *lvl = 1 + (int) temp; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slaset.c b/src/gromacs/linearalgebra/gmx_lapack/slaset.cpp similarity index 91% rename from src/gromacs/linearalgebra/gmx_lapack/slaset.c rename to src/gromacs/linearalgebra/gmx_lapack/slaset.cpp index 2fd0a8554b..d45de7b6a2 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slaset.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slaset.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" @@ -12,7 +12,7 @@ F77_FUNC(slaset,SLASET)(const char *uplo, int *lda) { int i,j,k; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); if(ch=='U') { for(j=1;j<*n;j++) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasq1.c b/src/gromacs/linearalgebra/gmx_lapack/slasq1.cpp similarity index 86% rename from src/gromacs/linearalgebra/gmx_lapack/slasq1.c rename to src/gromacs/linearalgebra/gmx_lapack/slasq1.cpp index 8aeb32ed0f..c6de16958d 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasq1.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasq1.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -29,14 +29,14 @@ F77_FUNC(slasq1,SLASQ1)(int *n, } for(i=0;i<*n-1;i++) { - d[i] = fabs(d[i]); - dtemp = fabs(e[i]); + d[i] = std::abs(d[i]); + dtemp = std::abs(e[i]); if(dtemp>sigmx) sigmx=dtemp; } - d[*n-1] = fabs(d[*n-1]); + d[*n-1] = std::abs(d[*n-1]); - if(fabs(sigmx) +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -76,9 +76,9 @@ F77_FUNC(slasq2,SLASQ2)(int *n, t = (z__[1] - z__[3] + z__[2]) * .5; s = z__[3] * (z__[2] / t); if (s <= t) { - s = z__[3] * (z__[2] / (t * (sqrt(s / t + 1.) + 1.))); + s = z__[3] * (z__[2] / (t * ( std::sqrt(s / t + 1.) + 1.))); } else { - s = z__[3] * (z__[2] / (t + sqrt(t) * sqrt(t + s))); + s = z__[3] * (z__[2] / (t + std::sqrt(t) * std::sqrt(t + s))); } t = z__[1] + (s + z__[2]); z__[3] *= z__[1] / t; @@ -121,9 +121,8 @@ F77_FUNC(slasq2,SLASQ2)(int *n, d__ += z__[(*n << 1) - 1]; d__1 = qmax, d__2 = z__[(*n << 1) - 1]; qmax = (d__1>d__2) ? d__1 : d__2; - zmax = (qmax>zmax) ? qmax : zmax; - if (fabs(e)=0.0) ieee = 0; negzro = one/(neginf+one); - if(fabs(negzro)>GMX_FLOAT_MIN) + if(std::abs(negzro)>GMX_FLOAT_MIN) ieee = 0; neginf = one/negzro; if(neginf>=0) ieee = 0; newzro = negzro + zero; - if(fabs(newzro-zero)>GMX_FLOAT_MIN) + if(std::abs(newzro-zero)>GMX_FLOAT_MIN) ieee = 0; posinf = one /newzro; if(posinf<=one) @@ -263,7 +262,7 @@ F77_FUNC(slasq2,SLASQ2)(int *n, emax = 0.; if (n0 > i0) { - emin = fabs(z__[(n0 << 2) - 5]); + emin = std::abs(z__[(n0 << 2) - 5]); } else { emin = 0.; } @@ -325,7 +324,7 @@ L100: } - d__1 = 0., d__2 = qmin - sqrt(qmin) * 2. * sqrt(emax); + d__1 = 0., d__2 = qmin - std::sqrt(qmin) * 2. * std::sqrt(emax); dmin__ = -((d__1>d__2) ? d__1 : d__2); nbig = (n0 - i0 + 1) * 30; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasq3.c b/src/gromacs/linearalgebra/gmx_lapack/slasq3.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/slasq3.c rename to src/gromacs/linearalgebra/gmx_lapack/slasq3.cpp index 0bc291d58e..18c3d22da7 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasq3.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasq3.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -85,9 +85,9 @@ L40: t = (z__[nn - 7] - z__[nn - 3] + z__[nn - 5]) * .5; s = z__[nn - 3] * (z__[nn - 5] / t); if (s <= t) { - s = z__[nn - 3] * (z__[nn - 5] / (t * (sqrt(s / t + 1.) + 1.))); + s = z__[nn - 3] * (z__[nn - 5] / (t * ( std::sqrt(s / t + 1.) + 1.))); } else { - s = z__[nn - 3] * (z__[nn - 5] / (t + sqrt(t) * sqrt(t + s))); + s = z__[nn - 3] * (z__[nn - 5] / (t + std::sqrt(t) * std::sqrt(t + s))); } t = z__[nn - 7] + (s + z__[nn - 5]); z__[nn - 3] *= z__[nn - 7] / t; @@ -159,7 +159,7 @@ L70: goto L90; } else if (*dmin__ < 0. && dmin1 > 0. && z__[4*(*n0 - 1) - *pp] < tol * - (*sigma + dn1) && fabs(dn) < tol * *sigma) { + (*sigma + dn1) && std::abs(dn) < tol * *sigma) { z__[4*(*n0 - 1) - *pp + 2] = 0.; *dmin__ = 0.; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasq4.c b/src/gromacs/linearalgebra/gmx_lapack/slasq4.cpp similarity index 78% rename from src/gromacs/linearalgebra/gmx_lapack/slasq4.c rename to src/gromacs/linearalgebra/gmx_lapack/slasq4.cpp index 91a13be2b7..badd5e52a3 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasq4.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasq4.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -38,15 +38,15 @@ F77_FUNC(slasq4,SLASQ4)(int *i0, nn = (*n0 << 2) + *pp; if (*n0in == *n0) { - if ( fabs(*dmin__ - *dn) 0. && gap2 > b2) { @@ -76,7 +76,7 @@ F77_FUNC(slasq4,SLASQ4)(int *i0, *ttype = -4; s = *dmin__ * .25; - if (fabs(*dmin__ - *dn) z__[nn - 7]) { @@ -86,7 +86,6 @@ F77_FUNC(slasq4,SLASQ4)(int *i0, np = nn - 9; } else { np = nn - (*pp << 1); - b2 = z__[np - 2]; gam = *dn1; if (z__[np - 4] > z__[np - 2]) { return; @@ -103,7 +102,7 @@ F77_FUNC(slasq4,SLASQ4)(int *i0, a2 += b2; i__1 = (*i0 << 2) - 1 + *pp; for (i4 = np; i4 >= i__1; i4 += -4) { - if (fabs(b2)= i__1; i4 += -4) { - if (fabs(b2) 0. && gap2 > b2 * a2) { d__1 = s, d__2 = a2 * (1. - a2 * 1.01 * (b2 / gap2) * b2); diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasq5.c b/src/gromacs/linearalgebra/gmx_lapack/slasq5.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slasq5.c rename to src/gromacs/linearalgebra/gmx_lapack/slasq5.cpp index ab93678181..564fa81766 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasq5.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasq5.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" void diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasq6.c b/src/gromacs/linearalgebra/gmx_lapack/slasq6.cpp similarity index 93% rename from src/gromacs/linearalgebra/gmx_lapack/slasq6.c rename to src/gromacs/linearalgebra/gmx_lapack/slasq6.cpp index 15e24f36a8..a86de0e64e 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasq6.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasq6.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -40,7 +40,7 @@ F77_FUNC(slasq6,SLASQ6)(int *i0, i__1 = 4*(*n0 - 3); for (j4 = *i0*4; j4 <= i__1; j4 += 4) { z__[j4 - 2] = d__ + z__[j4 - 1]; - if (fabs(z__[j4 - 2]) +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -18,7 +18,7 @@ F77_FUNC(slasr,SLASR)(const char *side, int a_dim1, a_offset, i__1, i__2; /* Local variables */ - int i__, j, info; + int i__, j; float temp; float ctemp, stemp; @@ -29,7 +29,6 @@ F77_FUNC(slasr,SLASR)(const char *side, a -= a_offset; /* Function Body */ - info = 0; if (*m == 0 || *n == 0) { return; @@ -42,7 +41,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__2 = *n; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[j + 1 + i__ * a_dim1]; @@ -57,7 +56,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = *m - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[j + 1 + i__ * a_dim1]; @@ -75,7 +74,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = 2; j <= i__1; ++j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__2 = *n; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[j + i__ * a_dim1]; @@ -90,7 +89,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = *m; j >= 2; --j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[j + i__ * a_dim1]; @@ -108,7 +107,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__2 = *n; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[j + i__ * a_dim1]; @@ -123,7 +122,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = *m - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__1 = *n; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[j + i__ * a_dim1]; @@ -144,7 +143,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__2 = *m; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[i__ + (j + 1) * a_dim1]; @@ -159,7 +158,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = *n - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__1 = *m; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[i__ + (j + 1) * a_dim1]; @@ -177,7 +176,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = 2; j <= i__1; ++j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__2 = *m; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[i__ + j * a_dim1]; @@ -192,7 +191,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = *n; j >= 2; --j) { ctemp = c__[j - 1]; stemp = s[j - 1]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__1 = *m; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[i__ + j * a_dim1]; @@ -210,7 +209,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = 1; j <= i__1; ++j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__2 = *m; for (i__ = 1; i__ <= i__2; ++i__) { temp = a[i__ + j * a_dim1]; @@ -225,7 +224,7 @@ F77_FUNC(slasr,SLASR)(const char *side, for (j = *n - 1; j >= 1; --j) { ctemp = c__[j]; stemp = s[j]; - if (fabs(ctemp-1.0)>GMX_FLOAT_EPS || fabs(stemp)>GMX_FLOAT_MIN) { + if (std::abs(ctemp-1.0)>GMX_FLOAT_EPS || std::abs(stemp)>GMX_FLOAT_MIN) { i__1 = *m; for (i__ = 1; i__ <= i__1; ++i__) { temp = a[i__ + j * a_dim1]; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasrt.c b/src/gromacs/linearalgebra/gmx_lapack/slasrt.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slasrt.c rename to src/gromacs/linearalgebra/gmx_lapack/slasrt.cpp index 2d8a9ee9c1..d3770c8538 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasrt.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasrt.cpp @@ -33,7 +33,6 @@ F77_FUNC(slasrt,SLASRT)(const char *id, *info = -2; } if (*info != 0) { - i__1 = -(*info); return; } if (*n <= 1) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/slasrt2.c b/src/gromacs/linearalgebra/gmx_lapack/slasrt2.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/slasrt2.c rename to src/gromacs/linearalgebra/gmx_lapack/slasrt2.cpp index 33452427b9..ad9f184499 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slasrt2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slasrt2.cpp @@ -34,7 +34,6 @@ void F77_FUNC(slasrt2,SLASRT2)(const char *id, *info = -2; } if (*info != 0) { - i__1 = -(*info); return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/slassq.c b/src/gromacs/linearalgebra/gmx_lapack/slassq.cpp similarity index 85% rename from src/gromacs/linearalgebra/gmx_lapack/slassq.c rename to src/gromacs/linearalgebra/gmx_lapack/slassq.cpp index bd6462bb1c..11873b1e6d 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slassq.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slassq.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -14,8 +14,8 @@ F77_FUNC(slassq,SLASSQ)(int *n, if(*n>0) { for(ix=0;ix<=(*n-1)*(*incx);ix+=*incx) { - if(fabs(x[ix])>GMX_FLOAT_MIN) { - absxi = fabs(x[ix]); + if(std::abs(x[ix])>GMX_FLOAT_MIN) { + absxi = std::abs(x[ix]); if(*scale +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -26,9 +26,9 @@ F77_FUNC(slasv2,SLASV2)(float *f, int gasmal; ft = *f; - fa = fabs(ft); + fa = std::abs(ft); ht = *h__; - ha = fabs(*h__); + ha = std::abs(*h__); pmax = 1; swap = ha > fa; @@ -43,8 +43,8 @@ F77_FUNC(slasv2,SLASV2)(float *f, } gt = *g; - ga = fabs(gt); - if (fabs(ga)0) ? 2.0 : -2.0) * ( (gt>0) ? 1.0 : -1.0); } else { t = gt / ( (ft>0) ? d__ : d__) + m / t; @@ -106,7 +106,7 @@ F77_FUNC(slasv2,SLASV2)(float *f, } else { t = (m / (s + t) + m / (r__ + l)) * (a + 1.); } - l = sqrt(t * t + 4.); + l = std::sqrt(t * t + 4.); crt = 2. / l; srt = t / l; clt = (crt + srt * m) / a; diff --git a/src/gromacs/linearalgebra/gmx_lapack/slaswp.c b/src/gromacs/linearalgebra/gmx_lapack/slaswp.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/slaswp.c rename to src/gromacs/linearalgebra/gmx_lapack/slaswp.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/slatrd.c b/src/gromacs/linearalgebra/gmx_lapack/slatrd.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/slatrd.c rename to src/gromacs/linearalgebra/gmx_lapack/slatrd.cpp index da42a03f0f..c5d40d2382 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/slatrd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/slatrd.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -18,7 +18,7 @@ F77_FUNC(slatrd,SLATRD)(const char * uplo, int i,iw; int ti1,ti2,ti3; float one,zero,minusone,alpha; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); one=1.0; minusone=-1.0; diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorg2r.c b/src/gromacs/linearalgebra/gmx_lapack/sorg2r.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/sorg2r.c rename to src/gromacs/linearalgebra/gmx_lapack/sorg2r.cpp index 3f7508e7cb..6f469de2a6 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sorg2r.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sorg2r.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorgbr.c b/src/gromacs/linearalgebra/gmx_lapack/sorgbr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sorgbr.c rename to src/gromacs/linearalgebra/gmx_lapack/sorgbr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorgl2.c b/src/gromacs/linearalgebra/gmx_lapack/sorgl2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sorgl2.c rename to src/gromacs/linearalgebra/gmx_lapack/sorgl2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorglq.c b/src/gromacs/linearalgebra/gmx_lapack/sorglq.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sorglq.c rename to src/gromacs/linearalgebra/gmx_lapack/sorglq.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorgqr.c b/src/gromacs/linearalgebra/gmx_lapack/sorgqr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sorgqr.c rename to src/gromacs/linearalgebra/gmx_lapack/sorgqr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorm2l.c b/src/gromacs/linearalgebra/gmx_lapack/sorm2l.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/sorm2l.c rename to src/gromacs/linearalgebra/gmx_lapack/sorm2l.cpp index 6415ec8159..5dad44cd91 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sorm2l.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sorm2l.cpp @@ -42,7 +42,6 @@ F77_FUNC(sorm2l,SORM2L)(const char *side, nq = *n; } if (*info != 0) { - i__1 = -(*info); return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorm2r.c b/src/gromacs/linearalgebra/gmx_lapack/sorm2r.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/sorm2r.c rename to src/gromacs/linearalgebra/gmx_lapack/sorm2r.cpp index df0c3d90e4..48103becfc 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sorm2r.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sorm2r.cpp @@ -16,7 +16,7 @@ F77_FUNC(sorm2r,SORM2R)(const char *side, { int a_dim1, a_offset, c_dim1, c_offset, i__1, i__2; - int i__, i1, i2, i3, ic, jc, mi, ni, nq; + int i__, i1, i2, i3, ic, jc, mi, ni; float aii; int left; int notran; @@ -36,12 +36,6 @@ F77_FUNC(sorm2r,SORM2R)(const char *side, ic = jc = 0; - if (left) { - nq = *m; - } else { - nq = *n; - } - if (*m <= 0 || *n <= 0 || *k <= 0) { return; } diff --git a/src/gromacs/linearalgebra/gmx_lapack/sormbr.c b/src/gromacs/linearalgebra/gmx_lapack/sormbr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sormbr.c rename to src/gromacs/linearalgebra/gmx_lapack/sormbr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sorml2.c b/src/gromacs/linearalgebra/gmx_lapack/sorml2.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/sorml2.c rename to src/gromacs/linearalgebra/gmx_lapack/sorml2.cpp index 3d0cd6cf87..c29b569690 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sorml2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sorml2.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_lapack.h" @@ -16,8 +16,8 @@ F77_FUNC(sorml2,SORML2)(const char *side, float *work, int gmx_unused *info) { - const char xside=toupper(*side); - const char xtrans=toupper(*trans); + const char xside=std::toupper(*side); + const char xtrans=std::toupper(*trans); int i,i1,i2,i3,ni,mi,ic,jc; float aii; diff --git a/src/gromacs/linearalgebra/gmx_lapack/sormlq.c b/src/gromacs/linearalgebra/gmx_lapack/sormlq.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/sormlq.c rename to src/gromacs/linearalgebra/gmx_lapack/sormlq.cpp index 02d8fbaf8f..d399bced45 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sormlq.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sormlq.cpp @@ -62,7 +62,6 @@ F77_FUNC(sormlq,SORMLQ)(const char *side, work[1] = (float) lwkopt; if (*info != 0) { - i__1 = -(*info); return; } else if (lquery) { return; @@ -81,8 +80,6 @@ F77_FUNC(sormlq,SORMLQ)(const char *side, nb = *lwork / ldwork; nbmin = DORMLQ_MINBLOCKSIZE; } - } else { - iws = nw; } if (nb < nbmin || nb >= *k) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/sormql.c b/src/gromacs/linearalgebra/gmx_lapack/sormql.cpp similarity index 97% rename from src/gromacs/linearalgebra/gmx_lapack/sormql.c rename to src/gromacs/linearalgebra/gmx_lapack/sormql.cpp index fbed2088b2..4895f75994 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sormql.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sormql.cpp @@ -46,8 +46,7 @@ F77_FUNC(sormql,SORMQL)(const char *side, const char *trans, int *m, int *n, work[1] = (float) lwkopt; if (*info != 0) { - i__1 = -(*info); - return; + return; } else if (lquery) { return; } @@ -65,8 +64,6 @@ F77_FUNC(sormql,SORMQL)(const char *side, const char *trans, int *m, int *n, nb = *lwork / ldwork; nbmin = DORMQL_MINBLOCKSIZE; } - } else { - iws = nw; } if (nb < nbmin || nb >= *k) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/sormqr.c b/src/gromacs/linearalgebra/gmx_lapack/sormqr.cpp similarity index 98% rename from src/gromacs/linearalgebra/gmx_lapack/sormqr.c rename to src/gromacs/linearalgebra/gmx_lapack/sormqr.cpp index 01cac7fd22..502cb7dfb9 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sormqr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sormqr.cpp @@ -56,7 +56,6 @@ F77_FUNC(sormqr,SORMQR)(const char *side, work[1] = (float) lwkopt; if (*info != 0) { - i__1 = -(*info); return; } else if (lquery) { return; @@ -75,8 +74,6 @@ F77_FUNC(sormqr,SORMQR)(const char *side, nb = *lwork / ldwork; nbmin = DORMQR_MINBLOCKSIZE; } - } else { - iws = nw; } if (nb < nbmin || nb >= *k) { diff --git a/src/gromacs/linearalgebra/gmx_lapack/sormtr.c b/src/gromacs/linearalgebra/gmx_lapack/sormtr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sormtr.c rename to src/gromacs/linearalgebra/gmx_lapack/sormtr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/sstebz.c b/src/gromacs/linearalgebra/gmx_lapack/sstebz.cpp similarity index 94% rename from src/gromacs/linearalgebra/gmx_lapack/sstebz.c rename to src/gromacs/linearalgebra/gmx_lapack/sstebz.cpp index 863315bd79..652f2cc539 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sstebz.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sstebz.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -102,7 +102,6 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, } if (*info != 0) { - i__1 = -(*info); return; } @@ -147,7 +146,7 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, d__1 = e[j - 1]; tmp1 = d__1 * d__1; d__2 = ulp; - if (fabs(d__[j] * d__[j - 1]) * (d__2 * d__2) + safemn + if (std::abs(d__[j] * d__[j - 1]) * (d__2 * d__2) + safemn > tmp1) { isplit[*nsplit] = j - 1; ++(*nsplit); @@ -168,7 +167,7 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, i__1 = *n - 1; for (j = 1; j <= i__1; ++j) { - tmp2 = sqrt(work[j]); + tmp2 = std::sqrt(work[j]); d__1 = gu, d__2 = d__[j] + tmp1 + tmp2; gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[j] - tmp1 - tmp2; @@ -180,13 +179,13 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[*n] - tmp1; gl = (d__1d__2) ? d__1 : d__2; gl = gl - tnorm * 2. * ulp * *n - pivmin * 4.; gu = gu + tnorm * 2. * ulp * *n + pivmin * 2.; - itmax = (int) ((log(tnorm + pivmin) - log(pivmin)) / log(2.)) + 2; + itmax = (int) ((std::log(tnorm + pivmin) - std::log(pivmin)) / std::log(2.)) + 2; if (*abstol <= 0.) { atoli = ulp * tnorm; } else { @@ -236,14 +235,14 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, /* avoid warnings for high gcc optimization */ wlu = wul = 1.0; - d__3 = fabs(d__[1]) + fabs(e[1]); - d__4 = fabs(d__[*n]) + fabs(e[*n - 1]); + d__3 = std::abs(d__[1]) + std::abs(e[1]); + d__4 = std::abs(d__[*n]) + std::abs(e[*n - 1]); tnorm = (d__3>d__4) ? d__3 : d__4; i__1 = *n - 1; for (j = 2; j <= i__1; ++j) { d__4 = tnorm; - d__5 = fabs(d__[j]) + fabs(e[j - 1]) + fabs(e[j]); + d__5 = std::abs(d__[j]) + std::abs(e[j - 1]) + std::abs(e[j]); tnorm = (d__4>d__5) ? d__4 : d__5; } @@ -296,7 +295,7 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, i__2 = iend - 1; for (j = ibegin; j <= i__2; ++j) { - tmp2 = fabs(e[j]); + tmp2 = std::abs(e[j]); d__1 = gu, d__2 = d__[j] + tmp1 + tmp2; gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[j] - tmp1 - tmp2; @@ -308,15 +307,15 @@ F77_FUNC(sstebz,SSTEBZ)(const char *range, gu = (d__1>d__2) ? d__1 : d__2; d__1 = gl, d__2 = d__[iend] - tmp1; gl = (d__1d__2) ? d__1 : d__2; gl = gl - bnorm * 2. * ulp * in - pivmin * 2.; gu = gu + bnorm * 2. * ulp * in + pivmin * 2.; if (*abstol <= 0.) { - d__1 = fabs(gl); - d__2 = fabs(gu); + d__1 = std::abs(gl); + d__2 = std::abs(gu); atoli = ulp * ((d__1>d__2) ? d__1 : d__2); } else { atoli = *abstol; diff --git a/src/gromacs/linearalgebra/gmx_lapack/sstegr.c b/src/gromacs/linearalgebra/gmx_lapack/sstegr.cpp similarity index 95% rename from src/gromacs/linearalgebra/gmx_lapack/sstegr.c rename to src/gromacs/linearalgebra/gmx_lapack/sstegr.cpp index f2d0cfcb91..cb4d229f4d 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sstegr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sstegr.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -128,8 +128,8 @@ F77_FUNC(sstegr,SSTEGR)(const char *jobz, eps = GMX_FLOAT_EPS; smlnum = safmin / eps; bignum = 1. / smlnum; - rmin = sqrt(smlnum); - d__1 = sqrt(bignum), d__2 = 1. / sqrt(sqrt(safmin)); + rmin = std::sqrt(smlnum); + d__1 = std::sqrt(bignum), d__2 = 1. / std::sqrt(sqrt(safmin)); rmax = (d__1 rmax) { scale = rmax / tnrm; } - if ( fabs(scale-1.0)>GMX_FLOAT_EPS) { + if ( std::abs(scale-1.0)>GMX_FLOAT_EPS) { F77_FUNC(sscal,SSCAL)(n, &scale, &d__[1], &c__1); i__1 = *n - 1; F77_FUNC(sscal,SSCAL)(&i__1, &scale, &e[1], &c__1); @@ -180,7 +180,7 @@ F77_FUNC(sstegr,SSTEGR)(const char *jobz, w[j] += e[iwork[iinspl + itmp - 1]]; } - if (fabs(scale-1.0)>GMX_FLOAT_EPS) { + if (std::abs(scale-1.0)>GMX_FLOAT_EPS) { d__1 = 1. / scale; F77_FUNC(sscal,SSCAL)(m, &d__1, &w[1], &c__1); } diff --git a/src/gromacs/linearalgebra/gmx_lapack/sstein.c b/src/gromacs/linearalgebra/gmx_lapack/sstein.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/sstein.c rename to src/gromacs/linearalgebra/gmx_lapack/sstein.cpp index 998cbd5069..8ae6f8e866 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/sstein.c +++ b/src/gromacs/linearalgebra/gmx_lapack/sstein.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -81,7 +81,6 @@ F77_FUNC(sstein,SSTEIN)(int *n, } if (*info != 0) { - i__1 = -(*info); return; } @@ -120,19 +119,19 @@ F77_FUNC(sstein,SSTEIN)(int *n, } gpind = b1; - onenrm = fabs(d__[b1]) + fabs(e[b1]); + onenrm = std::abs(d__[b1]) + std::abs(e[b1]); d__3 = onenrm; - d__4 = fabs(d__[bn]) + fabs(e[bn - 1]); + d__4 = std::abs(d__[bn]) + std::abs(e[bn - 1]); onenrm = (d__3>d__4) ? d__3 : d__4; i__2 = bn - 1; for (i__ = b1 + 1; i__ <= i__2; ++i__) { d__4 = onenrm; - d__5 = fabs(d__[i__]) + fabs(e[i__ - 1]) + fabs(e[i__]); + d__5 = std::abs(d__[i__]) + std::abs(e[i__ - 1]) + std::abs(e[i__]); onenrm = (d__4>d__5) ? d__4 : d__5; } ortol = onenrm * .001; - dtpcrt = sqrt(.1 / blksiz); + dtpcrt = std::sqrt(.1 / blksiz); jblk = 0; i__2 = *m; @@ -150,7 +149,7 @@ F77_FUNC(sstein,SSTEIN)(int *n, } if (jblk > 1) { - eps1 = fabs(eps * xj); + eps1 = std::abs(eps * xj); pertol = eps1 * 10.; sep = xj - xjm; if (sep < pertol) { @@ -180,7 +179,7 @@ L70: } d__2 = eps; - d__3 = fabs(work[indrv4 + blksiz]); + d__3 = std::abs(work[indrv4 + blksiz]); scl = blksiz * onenrm * ((d__2>d__3) ? d__2 : d__3) / F77_FUNC(sasum,SASUM)(&blksiz, &work[ indrv1 + 1], &c__1); F77_FUNC(sscal,SSCAL)(&blksiz, &scl, &work[indrv1 + 1], &c__1); @@ -192,7 +191,7 @@ L70: if (jblk == 1) { goto L90; } - if (fabs(xj - xjm) > ortol) { + if (std::abs(xj - xjm) > ortol) { gpind = j; } if (gpind != j) { @@ -207,7 +206,7 @@ L70: L90: jmax = F77_FUNC(isamax,ISAMAX)(&blksiz, &work[indrv1 + 1], &c__1); - nrm = fabs(work[indrv1 + jmax]); + nrm = std::abs(work[indrv1 + jmax]); if (nrm < dtpcrt) { goto L70; diff --git a/src/gromacs/linearalgebra/gmx_lapack/ssteqr.c b/src/gromacs/linearalgebra/gmx_lapack/ssteqr.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/ssteqr.c rename to src/gromacs/linearalgebra/gmx_lapack/ssteqr.cpp index 8d83e3b52b..fbf6adfba1 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/ssteqr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/ssteqr.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" #include "../gmx_blas.h" @@ -90,8 +90,8 @@ F77_FUNC(ssteqr,SSTEQR)(const char * compz, safmin = minval*(1.0+GMX_FLOAT_EPS); safmax = 1. / safmin; - ssfmax = sqrt(safmax) / 3.; - ssfmin = sqrt(safmin) / eps2; + ssfmax = std::sqrt(safmax) / 3.; + ssfmin = std::sqrt(safmin) / eps2; if (icompz == 2) { F77_FUNC(slaset,SLASET)("Full", n, n, &c_b9, &c_b10, &z__[z_offset], ldz); @@ -113,11 +113,11 @@ L10: if (l1 <= nm1) { i__1 = nm1; for (m = l1; m <= i__1; ++m) { - tst = fabs(e[m]); - if (fabs(tst) ssfmax) { @@ -159,7 +159,7 @@ L30: info); } - if (fabs(d__[lend]) < fabs(d__[l])) { + if (std::abs(d__[lend]) < std::abs(d__[l])) { lend = lsv; l = lendsv; } @@ -171,9 +171,9 @@ L40: lendm1 = lend - 1; i__1 = lendm1; for (m = l; m <= i__1; ++m) { - d__2 = fabs(e[m]); + d__2 = std::abs(e[m]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m+ 1]) + safmin) { + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m+ 1]) + safmin) { goto L60; } } @@ -270,9 +270,9 @@ L90: lendp1 = lend + 1; i__1 = lendp1; for (m = l; m >= i__1; --m) { - d__2 = fabs(e[m - 1]); + d__2 = std::abs(e[m - 1]); tst = d__2 * d__2; - if (tst <= eps2 * fabs(d__[m]) * fabs(d__[m- 1]) + safmin) { + if (tst <= eps2 * std::abs(d__[m]) * std::abs(d__[m- 1]) + safmin) { goto L110; } } @@ -386,7 +386,7 @@ L140: } i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__])>GMX_FLOAT_MIN) { + if (std::abs(e[i__])>GMX_FLOAT_MIN) { ++(*info); } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/ssterf.c b/src/gromacs/linearalgebra/gmx_lapack/ssterf.cpp similarity index 89% rename from src/gromacs/linearalgebra/gmx_lapack/ssterf.c rename to src/gromacs/linearalgebra/gmx_lapack/ssterf.cpp index 277aae9fa1..ee98d5fb6c 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/ssterf.c +++ b/src/gromacs/linearalgebra/gmx_lapack/ssterf.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -52,8 +52,8 @@ F77_FUNC(ssterf,SSTERF)(int *n, d__1 = eps; eps2 = d__1 * d__1; safmax = 1. / safmin; - ssfmax = sqrt(safmax) / 3.; - ssfmin = sqrt(safmin) / eps2; + ssfmax = std::sqrt(safmax) / 3.; + ssfmin = std::sqrt(safmin) / eps2; nmaxit = *n * 30; sigma = 0.; @@ -71,8 +71,8 @@ L10: } i__1 = *n - 1; for (m = l1; m <= i__1; ++m) { - if (fabs(e[m]) <= sqrt(fabs(d__[m])) * - sqrt(fabs(d__[m + 1])) * eps) { + if (std::abs(e[m]) <= std::sqrt(std::abs(d__[m])) * + std::sqrt(std::abs(d__[m + 1])) * eps) { e[m] = 0.; goto L30; } @@ -116,7 +116,7 @@ L30: e[i__] = d__1 * d__1; } - if (fabs(d__[lend]) < fabs(d__[l])) { + if (std::abs(d__[lend]) < std::abs(d__[l])) { lend = lsv; l = lendsv; } @@ -127,7 +127,7 @@ L50: if (l != lend) { i__1 = lend - 1; for (m = l; m <= i__1; ++m) { - if (fabs(e[m]) <= eps2 * fabs(d__[m] * d__[m + 1])) { + if (std::abs(e[m]) <= eps2 * std::abs(d__[m] * d__[m + 1])) { goto L70; } } @@ -143,7 +143,7 @@ L70: goto L90; } if (m == l + 1) { - rte = sqrt(e[l]); + rte = std::sqrt(e[l]); F77_FUNC(slae2,SLAE2)(&d__[l], &rte, &d__[l + 1], &rt1, &rt2); d__[l] = rt1; d__[l + 1] = rt2; @@ -160,7 +160,7 @@ L70: } ++jtot; - rte = sqrt(e[l]); + rte = std::sqrt(e[l]); sigma = (d__[l + 1] - p) / (rte * 2.); r__ = F77_FUNC(slapy2,SLAPY2)(&sigma, &c_b32); sigma = p - rte / (sigma + ( (sigma>0) ? r__ : -r__)); @@ -184,7 +184,7 @@ L70: alpha = d__[i__]; gamma = c__ * (alpha - sigma) - s * oldgam; d__[i__ + 1] = oldgam + (alpha - gamma); - if (fabs(c__)>GMX_FLOAT_MIN) { + if (std::abs(c__)>GMX_FLOAT_MIN) { p = gamma * gamma / c__; } else { p = oldc * bb; @@ -209,7 +209,7 @@ L90: L100: i__1 = lend + 1; for (m = l; m >= i__1; --m) { - if (fabs(e[m - 1]) <= eps2 * fabs(d__[m] * d__[m - 1])) { + if (std::abs(e[m - 1]) <= eps2 * std::abs(d__[m] * d__[m - 1])) { goto L120; } } @@ -225,7 +225,7 @@ L120: } if (m == l - 1) { - rte = sqrt(e[l - 1]); + rte = std::sqrt(e[l - 1]); F77_FUNC(slae2,SLAE2)(&d__[l], &rte, &d__[l - 1], &rt1, &rt2); d__[l] = rt1; d__[l - 1] = rt2; @@ -242,7 +242,7 @@ L120: } ++jtot; - rte = sqrt(e[l - 1]); + rte = std::sqrt(e[l - 1]); sigma = (d__[l - 1] - p) / (rte * 2.); r__ = F77_FUNC(slapy2,SLAPY2)(&sigma, &c_b32); sigma = p - rte / (sigma + ( (sigma>0) ? r__ : -r__)); @@ -266,7 +266,7 @@ L120: alpha = d__[i__ + 1]; gamma = c__ * (alpha - sigma) - s * oldgam; d__[i__] = oldgam + (alpha - gamma); - if (fabs(c__)>GMX_FLOAT_MIN) { + if (std::abs(c__)>GMX_FLOAT_MIN) { p = gamma * gamma / c__; } else { p = oldc * bb; @@ -305,7 +305,7 @@ L150: } i__1 = *n - 1; for (i__ = 1; i__ <= i__1; ++i__) { - if (fabs(e[i__])>GMX_FLOAT_MIN) { + if (std::abs(e[i__])>GMX_FLOAT_MIN) { ++(*info); } } diff --git a/src/gromacs/linearalgebra/gmx_lapack/sstevr.c b/src/gromacs/linearalgebra/gmx_lapack/sstevr.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/sstevr.c rename to src/gromacs/linearalgebra/gmx_lapack/sstevr.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/ssyevr.c b/src/gromacs/linearalgebra/gmx_lapack/ssyevr.cpp similarity index 83% rename from src/gromacs/linearalgebra/gmx_lapack/ssyevr.c rename to src/gromacs/linearalgebra/gmx_lapack/ssyevr.cpp index 83a079611e..d66b1652e4 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/ssyevr.c +++ b/src/gromacs/linearalgebra/gmx_lapack/ssyevr.cpp @@ -1,4 +1,4 @@ -#include +#include #include "gromacs/utility/real.h" @@ -20,7 +20,7 @@ F77_FUNC(ssyevr,SSYEVR)(const char *jobz, const char *range, const char *uplo, i /* Local variables */ int c__1 = 1; int i__, j, nb, jj; - float eps, vll, vuu, tmp1; + float eps, tmp1; int indd, inde; float anrm; int imax; @@ -32,10 +32,10 @@ F77_FUNC(ssyevr,SSYEVR)(const char *jobz, const char *range, const char *uplo, i int lwmin; int lower, wantz; int alleig, indeig; - int iscale, ieeeok, indibl, indifl; + int iscale, indibl, indifl; int valeig; float safmin,minval; - float abstll, bignum; + float bignum; int indtau; int indwkn; int liwmin; @@ -43,10 +43,6 @@ F77_FUNC(ssyevr,SSYEVR)(const char *jobz, const char *range, const char *uplo, i float smlnum; int lwkopt; int lquery; - float posinf,neginf,negzro,newzro; - float fzero = 0.0; - float fone = 1.0; - /* Parameter adjustments */ a_dim1 = *lda; @@ -60,33 +56,6 @@ F77_FUNC(ssyevr,SSYEVR)(const char *jobz, const char *range, const char *uplo, i --work; --iwork; - /* Check for IEEE-compliant FP */ - ieeeok = 1; - posinf = fone/fzero; - if(posinf<=1.0) - ieeeok = 0; - neginf = -fone/fzero; - if(neginf>=0.0) - ieeeok = 0; - negzro = fone/(neginf+fone); - if(negzro!=0) - ieeeok = 0; - neginf = fone/negzro; - if(neginf>=0) - ieeeok = 0; - newzro = negzro + fzero; - if(newzro!=fzero) - ieeeok = 0; - posinf = fone /newzro; - if(posinf<=fone) - ieeeok = 0; - neginf = neginf*posinf; - if(neginf>=fzero) - ieeeok = 0; - posinf = posinf*posinf; - if(posinf<=1.0) - ieeeok = 0; - lower = (*uplo=='L' || *uplo=='l'); wantz = (*jobz=='V' || *jobz=='v'); alleig = (*range=='A' || *range=='a'); @@ -184,15 +153,12 @@ F77_FUNC(ssyevr,SSYEVR)(const char *jobz, const char *range, const char *uplo, i smlnum = safmin / eps; bignum = 1. / smlnum; - rmin = sqrt(smlnum); + rmin = std::sqrt(smlnum); - d__1 = sqrt(bignum), d__2 = 1. / sqrt(sqrt(safmin)); + d__1 = std::sqrt(bignum), d__2 = 1. / std::sqrt(sqrt(safmin)); rmax = (d__1 0. && anrm < rmin) { iscale = 1; @@ -215,13 +181,6 @@ F77_FUNC(ssyevr,SSYEVR)(const char *jobz, const char *range, const char *uplo, i } } - if (*abstol > 0.) { - abstll = *abstol * sigma; - } - if (valeig) { - vll = *vl * sigma; - vuu = *vu * sigma; - } } indtau = 1; diff --git a/src/gromacs/linearalgebra/gmx_lapack/ssytd2.c b/src/gromacs/linearalgebra/gmx_lapack/ssytd2.cpp similarity index 92% rename from src/gromacs/linearalgebra/gmx_lapack/ssytd2.c rename to src/gromacs/linearalgebra/gmx_lapack/ssytd2.cpp index 5b719704df..2bf0d3e546 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/ssytd2.c +++ b/src/gromacs/linearalgebra/gmx_lapack/ssytd2.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include "gromacs/utility/real.h" @@ -19,7 +19,7 @@ F77_FUNC(ssytd2,SSYTD2)(const char * uplo, float minusone,zero; float taui,alpha,tmp; int ti1,ti2,ti3,i; - const char ch=toupper(*uplo); + const char ch=std::toupper(*uplo); zero = 0.0; minusone = -1.0; @@ -33,7 +33,7 @@ F77_FUNC(ssytd2,SSYTD2)(const char * uplo, ti1 = 1; F77_FUNC(slarfg,SLARFG)(&i,&(a[i*(*lda)+(i-1)]),&(a[i*(*lda)+0]),&ti1,&taui); e[i-1] = a[i*(*lda) + (i-1)]; - if(fabs(taui)>GMX_FLOAT_MIN) { + if(std::abs(taui)>GMX_FLOAT_MIN) { a[i*(*lda)+(i-1)] = 1.0; ti1 = 1; @@ -67,7 +67,7 @@ F77_FUNC(ssytd2,SSYTD2)(const char * uplo, e[i-1] = a[(i-1)*(*lda) + (i)]; - if(fabs(taui)>GMX_FLOAT_MIN) { + if(std::abs(taui)>GMX_FLOAT_MIN) { a[(i-1)*(*lda)+(i)] = 1.0; ti1 = *n - i; diff --git a/src/gromacs/linearalgebra/gmx_lapack/ssytrd.c b/src/gromacs/linearalgebra/gmx_lapack/ssytrd.cpp similarity index 99% rename from src/gromacs/linearalgebra/gmx_lapack/ssytrd.c rename to src/gromacs/linearalgebra/gmx_lapack/ssytrd.cpp index 2a5b639046..46357f58a8 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/ssytrd.c +++ b/src/gromacs/linearalgebra/gmx_lapack/ssytrd.cpp @@ -61,7 +61,6 @@ F77_FUNC(ssytrd,SSYTRD)(const char *uplo, int *n, float *a, int * } nx = *n; - iws = 1; if (nb > 1 && nb < *n) { nx = DSYTRD_CROSSOVER; diff --git a/src/gromacs/linearalgebra/gmx_lapack/strti2.c b/src/gromacs/linearalgebra/gmx_lapack/strti2.cpp similarity index 100% rename from src/gromacs/linearalgebra/gmx_lapack/strti2.c rename to src/gromacs/linearalgebra/gmx_lapack/strti2.cpp diff --git a/src/gromacs/linearalgebra/gmx_lapack/strtri.c b/src/gromacs/linearalgebra/gmx_lapack/strtri.cpp similarity index 96% rename from src/gromacs/linearalgebra/gmx_lapack/strtri.c rename to src/gromacs/linearalgebra/gmx_lapack/strtri.cpp index 15b1aaa68b..57620ec43e 100644 --- a/src/gromacs/linearalgebra/gmx_lapack/strtri.c +++ b/src/gromacs/linearalgebra/gmx_lapack/strtri.cpp @@ -1,4 +1,4 @@ -#include +#include #include "../gmx_blas.h" #include "../gmx_lapack.h" #include "lapack_limits.h" @@ -41,7 +41,7 @@ F77_FUNC(strtri,STRTRI)(const char *uplo, if (nounit) { i__1 = *n; for (*info = 1; *info <= i__1; ++(*info)) { - if (fabs(a[*info + *info * a_dim1]) +#include #include "gromacs/utility/fatalerror.h" #include "gromacs/utility/smalloc.h" @@ -83,7 +83,7 @@ void jacobi(double **a, int n, double d[], double **v, int *nrot) { for (iq = ip+1; iq < n; iq++) { - sm += fabs(a[ip][iq]); + sm += std::abs(a[ip][iq]); } } if (sm == 0.0) @@ -104,29 +104,29 @@ void jacobi(double **a, int n, double d[], double **v, int *nrot) { for (iq = ip+1; iq < n; iq++) { - g = 100.0*fabs(a[ip][iq]); - if (i > 4 && fabs(d[ip])+g == fabs(d[ip]) - && fabs(d[iq])+g == fabs(d[iq])) + g = 100.0*std::abs(a[ip][iq]); + if (i > 4 && std::abs(d[ip])+g == std::abs(d[ip]) + && std::abs(d[iq])+g == std::abs(d[iq])) { a[ip][iq] = 0.0; } - else if (fabs(a[ip][iq]) > tresh) + else if (std::abs(a[ip][iq]) > tresh) { h = d[iq]-d[ip]; - if (fabs(h)+g == fabs(h)) + if (std::abs(h)+g == std::abs(h)) { t = (a[ip][iq])/h; } else { theta = 0.5*h/(a[ip][iq]); - t = 1.0/(fabs(theta)+sqrt(1.0+theta*theta)); + t = 1.0/(std::abs(theta)+std::sqrt(1.0+theta*theta)); if (theta < 0.0) { t = -t; } } - c = 1.0/sqrt(1+t*t); + c = 1.0/std::sqrt(1+t*t); s = t*c; tau = s/(1.0+c); h = t*a[ip][iq]; @@ -192,7 +192,7 @@ int m_inv_gen(real **m, int n, real **minv) tol = 0; for (i = 0; i < n; i++) { - tol += fabs(md[i][i]); + tol += std::abs(md[i][i]); } tol = 1e-6*tol/n; @@ -201,7 +201,7 @@ int m_inv_gen(real **m, int n, real **minv) nzero = 0; for (i = 0; i < n; i++) { - if (fabs(eig[i]) < tol) + if (std::abs(eig[i]) < tol) { eig[i] = 0; nzero++; diff --git a/src/gromacs/linearalgebra/sparsematrix.c b/src/gromacs/linearalgebra/sparsematrix.cpp similarity index 98% rename from src/gromacs/linearalgebra/sparsematrix.c rename to src/gromacs/linearalgebra/sparsematrix.cpp index 5b2405c3de..5dea002f70 100644 --- a/src/gromacs/linearalgebra/sparsematrix.c +++ b/src/gromacs/linearalgebra/sparsematrix.cpp @@ -3,7 +3,7 @@ * * Copyright (c) 1991-2000, University of Groningen, The Netherlands. * Copyright (c) 2001-2004, The GROMACS development team. - * Copyright (c) 2012,2014, by the GROMACS development team, led by + * Copyright (c) 2012,2014,2015, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -38,10 +38,11 @@ #include "sparsematrix.h" -#include #include #include +#include + #include "gromacs/utility/smalloc.h" gmx_sparsematrix_t * @@ -109,7 +110,6 @@ gmx_sparsematrix_print(FILE * stream, else { k = 0; - j = 0; for (j = 0; j < A->ndata[i]; j++) { while (k++ < A->data[i][j].col) @@ -304,7 +304,6 @@ gmx_sparsematrix_vector_multiply(gmx_sparsematrix_t * A, /* not compressed symmetric storage */ for (i = 0; i < A->nrow; i++) { - xi = x[i]; s = 0.0; data = A->data[i]; -- 2.11.4.GIT