diff --git a/_release/dspl.c b/_release/dspl.c index 68c384a..6daddf3 100644 --- a/_release/dspl.c +++ b/_release/dspl.c @@ -1,5 +1,5 @@ /* -* Copyright (c) 2015-2020 Sergey Bakhurin +* Copyright (c) 2015-2022 Sergey Bakhurin * Digital Signal Processing Library [http://dsplib.org] * * This file is part of libdspl-2.0. @@ -18,6 +18,7 @@ * along with Foobar. If not, see . */ + #ifdef WIN_OS diff --git a/_release/dspl.h b/_release/dspl.h index 534247c..62e4d37 100644 --- a/_release/dspl.h +++ b/_release/dspl.h @@ -1,5 +1,5 @@ /* -* Copyright (c) 2015-2020 Sergey Bakhurin +* Copyright (c) 2015-2022 Sergey Bakhurin * Digital Signal Processing Library [http://dsplib.org] * * This file is part of libdspl-2.0. @@ -1482,7 +1482,8 @@ DECLARE_FUNC(int, re2cmplx, double* /*----------------------------------------------------------------------------*/ DECLARE_FUNC(int, readbin, char* fn COMMA void** x - COMMA int* k + COMMA int* pn + COMMA int* pm COMMA int* dtype); /*----------------------------------------------------------------------------*/ DECLARE_FUNC(int, signal_pimp, double* @@ -1587,6 +1588,7 @@ DECLARE_FUNC(int, window, double* w COMMA double param); /*----------------------------------------------------------------------------*/ DECLARE_FUNC(int, writebin, void* + COMMA int COMMA int COMMA int COMMA char*); diff --git a/dspl/Makefile b/dspl/Makefile index 2113580..68c8465 100644 --- a/dspl/Makefile +++ b/dspl/Makefile @@ -19,6 +19,8 @@ all: $(RELEASE_DIR)/$(LIB_NAME)\ $(RELEASE_DIR)/$(LIB_NAME): $(DSPL_OBJ_FILES) $(BLAS_LIB_NAME) $(LAPACK_DOUBLE_LIB_NAME) $(LAPACK_COMPLEX_LIB_NAME) $(CC) -shared -o $(RELEASE_DIR)/$(LIB_NAME) $(DSPL_OBJ_FILES) -lm -L$(LAPACK_RELEASE_DIR) -llapack_complex -llapack_double -L$(BLAS_RELEASE_DIR) -lblas -lgfortran -lquadmath + + #Compile libdspl obj files from c sources $(DSPL_OBJ_DIR)/%.o:$(DSPL_SRC_DIR)/%.c $(CC) $(CFLAGS) $< -o $@ -lm diff --git a/dspl/blas/Makefile b/dspl/blas/Makefile index f7c5e38..1f1f820 100644 --- a/dspl/blas/Makefile +++ b/dspl/blas/Makefile @@ -21,20 +21,24 @@ BLASLIB = bin/libblas.a BLAS_OBJ_DIR = obj # DSPL src and obj files list -BLAS_SRC_FILES = $(wildcard src/*.f) -BLAS_OBJ_FILES = $(addprefix $(BLAS_OBJ_DIR)/,$(notdir $(BLAS_SRC_FILES:.f=.o))) +BLAS_SRC_FILES = $(wildcard src/*.f) +BLAS90_SRC_FILES = $(wildcard src/*.f90) +BLAS_OBJ_FILES = $(addprefix $(BLAS_OBJ_DIR)/,$(notdir $(BLAS_SRC_FILES:.f=.o))) +BLAS90_OBJ_FILES = $(addprefix $(BLAS_OBJ_DIR)/,$(notdir $(BLAS90_SRC_FILES:.f90=.o))) all: $(BLASLIB) -$(BLASLIB): $(BLAS_OBJ_FILES) - $(ARCH) $(ARCHFLAGS) $@ $(BLAS_OBJ_FILES) +$(BLASLIB): $(BLAS_OBJ_FILES) $(BLAS90_OBJ_FILES) + $(ARCH) $(ARCHFLAGS) $@ $(BLAS_OBJ_FILES) $(BLAS90_OBJ_FILES) $(RANLIB) $@ $(BLAS_OBJ_DIR)/%.o:src/%.f $(FORTRAN) $(OPTS) -c $< -o $@ +$(BLAS_OBJ_DIR)/%.o:src/%.f90 + $(FORTRAN) $(OPTS) -c $< -o $@ clean: rm -f $(BLAS_OBJ_DIR)/*.o diff --git a/dspl/blas/src/caxpy.f b/dspl/blas/src/caxpy.f index b0c7f78..8dfdba9 100644 --- a/dspl/blas/src/caxpy.f +++ b/dspl/blas/src/caxpy.f @@ -72,8 +72,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -88,10 +86,9 @@ * ===================================================================== SUBROUTINE CAXPY(N,CA,CX,INCX,CY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. COMPLEX CA @@ -136,4 +133,7 @@ END IF * RETURN +* +* End of CAXPY +* END diff --git a/dspl/blas/src/ccopy.f b/dspl/blas/src/ccopy.f index dfcf7e4..1b4999b 100644 --- a/dspl/blas/src/ccopy.f +++ b/dspl/blas/src/ccopy.f @@ -65,8 +65,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -81,10 +79,9 @@ * ===================================================================== SUBROUTINE CCOPY(N,CX,INCX,CY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -122,4 +119,7 @@ END DO END IF RETURN +* +* End of CCOPY +* END diff --git a/dspl/blas/src/cdotc.f b/dspl/blas/src/cdotc.f index 79901b7..da29fdf 100644 --- a/dspl/blas/src/cdotc.f +++ b/dspl/blas/src/cdotc.f @@ -39,7 +39,7 @@ *> *> \param[in] CX *> \verbatim -*> CX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) +*> CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX @@ -50,7 +50,7 @@ *> *> \param[in] CY *> \verbatim -*> CY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) +*> CY is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY @@ -67,8 +67,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -83,10 +81,9 @@ * ===================================================================== COMPLEX FUNCTION CDOTC(N,CX,INCX,CY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -131,4 +128,7 @@ END IF CDOTC = CTEMP RETURN +* +* End of CDOTC +* END diff --git a/dspl/blas/src/cdotu.f b/dspl/blas/src/cdotu.f index c05252c..d8c21d1 100644 --- a/dspl/blas/src/cdotu.f +++ b/dspl/blas/src/cdotu.f @@ -39,7 +39,7 @@ *> *> \param[in] CX *> \verbatim -*> CX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) +*> CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX @@ -50,7 +50,7 @@ *> *> \param[in] CY *> \verbatim -*> CY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) +*> CY is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY @@ -67,8 +67,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -83,10 +81,9 @@ * ===================================================================== COMPLEX FUNCTION CDOTU(N,CX,INCX,CY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -128,4 +125,7 @@ END IF CDOTU = CTEMP RETURN +* +* End of CDOTU +* END diff --git a/dspl/blas/src/cgbmv.f b/dspl/blas/src/cgbmv.f index 3cf3519..42a1da0 100644 --- a/dspl/blas/src/cgbmv.f +++ b/dspl/blas/src/cgbmv.f @@ -165,8 +165,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE CGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -385,6 +382,6 @@ * RETURN * -* End of CGBMV . +* End of CGBMV * END diff --git a/dspl/blas/src/cgemm.f b/dspl/blas/src/cgemm.f index ba1d714..baefe21 100644 --- a/dspl/blas/src/cgemm.f +++ b/dspl/blas/src/cgemm.f @@ -166,8 +166,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE CGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -215,7 +212,7 @@ * .. * .. Local Scalars .. COMPLEX TEMP - INTEGER I,INFO,J,L,NCOLA,NROWA,NROWB + INTEGER I,INFO,J,L,NROWA,NROWB LOGICAL CONJA,CONJB,NOTA,NOTB * .. * .. Parameters .. @@ -228,8 +225,7 @@ * Set NOTA and NOTB as true if A and B respectively are not * conjugated or transposed, set CONJA and CONJB as true if A and * B respectively are to be transposed but not conjugated and set -* NROWA, NCOLA and NROWB as the number of rows and columns of A -* and the number of rows of B respectively. +* NROWA and NROWB as the number of rows of A and B respectively. * NOTA = LSAME(TRANSA,'N') NOTB = LSAME(TRANSB,'N') @@ -237,10 +233,8 @@ CONJB = LSAME(TRANSB,'C') IF (NOTA) THEN NROWA = M - NCOLA = K ELSE NROWA = K - NCOLA = M END IF IF (NOTB) THEN NROWB = K @@ -478,6 +472,6 @@ * RETURN * -* End of CGEMM . +* End of CGEMM * END diff --git a/dspl/blas/src/cgemv.f b/dspl/blas/src/cgemv.f index 99bcdcd..574be07 100644 --- a/dspl/blas/src/cgemv.f +++ b/dspl/blas/src/cgemv.f @@ -136,8 +136,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -158,10 +156,9 @@ * ===================================================================== SUBROUTINE CGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -345,6 +342,6 @@ * RETURN * -* End of CGEMV . +* End of CGEMV * END diff --git a/dspl/blas/src/cgerc.f b/dspl/blas/src/cgerc.f index f3f96a6..716628d 100644 --- a/dspl/blas/src/cgerc.f +++ b/dspl/blas/src/cgerc.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE CGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -222,6 +219,6 @@ * RETURN * -* End of CGERC . +* End of CGERC * END diff --git a/dspl/blas/src/cgeru.f b/dspl/blas/src/cgeru.f index f8342b5..5ff8f94 100644 --- a/dspl/blas/src/cgeru.f +++ b/dspl/blas/src/cgeru.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE CGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -222,6 +219,6 @@ * RETURN * -* End of CGERU . +* End of CGERU * END diff --git a/dspl/blas/src/chbmv.f b/dspl/blas/src/chbmv.f index e25e6e2..bddab93 100644 --- a/dspl/blas/src/chbmv.f +++ b/dspl/blas/src/chbmv.f @@ -165,8 +165,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE CHBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -375,6 +372,6 @@ * RETURN * -* End of CHBMV . +* End of CHBMV * END diff --git a/dspl/blas/src/chemm.f b/dspl/blas/src/chemm.f index 8cf94fa..5d66dda 100644 --- a/dspl/blas/src/chemm.f +++ b/dspl/blas/src/chemm.f @@ -170,8 +170,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -191,10 +189,9 @@ * ===================================================================== SUBROUTINE CHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -366,6 +363,6 @@ * RETURN * -* End of CHEMM . +* End of CHEMM * END diff --git a/dspl/blas/src/chemv.f b/dspl/blas/src/chemv.f index be0f405..288ab14 100644 --- a/dspl/blas/src/chemv.f +++ b/dspl/blas/src/chemv.f @@ -132,8 +132,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -154,10 +152,9 @@ * ===================================================================== SUBROUTINE CHEMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -332,6 +329,6 @@ * RETURN * -* End of CHEMV . +* End of CHEMV * END diff --git a/dspl/blas/src/cher.f b/dspl/blas/src/cher.f index fde0c85..2695a7e 100644 --- a/dspl/blas/src/cher.f +++ b/dspl/blas/src/cher.f @@ -114,8 +114,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -135,10 +133,9 @@ * ===================================================================== SUBROUTINE CHER(UPLO,N,ALPHA,X,INCX,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -273,6 +270,6 @@ * RETURN * -* End of CHER . +* End of CHER * END diff --git a/dspl/blas/src/cher2.f b/dspl/blas/src/cher2.f index ca12834..68976b4 100644 --- a/dspl/blas/src/cher2.f +++ b/dspl/blas/src/cher2.f @@ -129,8 +129,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -150,10 +148,9 @@ * ===================================================================== SUBROUTINE CHER2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -312,6 +309,6 @@ * RETURN * -* End of CHER2 . +* End of CHER2 * END diff --git a/dspl/blas/src/cher2k.f b/dspl/blas/src/cher2k.f index fb9925d..a779087 100644 --- a/dspl/blas/src/cher2k.f +++ b/dspl/blas/src/cher2k.f @@ -173,8 +173,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -197,10 +195,9 @@ * ===================================================================== SUBROUTINE CHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -437,6 +434,6 @@ * RETURN * -* End of CHER2K. +* End of CHER2K * END diff --git a/dspl/blas/src/cherk.f b/dspl/blas/src/cherk.f index 79f4078..7aa8b33 100644 --- a/dspl/blas/src/cherk.f +++ b/dspl/blas/src/cherk.f @@ -149,8 +149,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -173,10 +171,9 @@ * ===================================================================== SUBROUTINE CHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -391,6 +388,6 @@ * RETURN * -* End of CHERK . +* End of CHERK * END diff --git a/dspl/blas/src/chpmv.f b/dspl/blas/src/chpmv.f index bc0026a..459a9ba 100644 --- a/dspl/blas/src/chpmv.f +++ b/dspl/blas/src/chpmv.f @@ -127,8 +127,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -149,10 +147,9 @@ * ===================================================================== SUBROUTINE CHPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -333,6 +330,6 @@ * RETURN * -* End of CHPMV . +* End of CHPMV * END diff --git a/dspl/blas/src/chpr.f b/dspl/blas/src/chpr.f index 25df894..62a946f 100644 --- a/dspl/blas/src/chpr.f +++ b/dspl/blas/src/chpr.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE CHPR(UPLO,N,ALPHA,X,INCX,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -274,6 +271,6 @@ * RETURN * -* End of CHPR . +* End of CHPR * END diff --git a/dspl/blas/src/chpr2.f b/dspl/blas/src/chpr2.f index 66ef2f2..cb07168 100644 --- a/dspl/blas/src/chpr2.f +++ b/dspl/blas/src/chpr2.f @@ -124,8 +124,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -145,10 +143,9 @@ * ===================================================================== SUBROUTINE CHPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -313,6 +310,6 @@ * RETURN * -* End of CHPR2 . +* End of CHPR2 * END diff --git a/dspl/blas/src/crotg.f b/dspl/blas/src/crotg.f deleted file mode 100644 index 6d06a5b..0000000 --- a/dspl/blas/src/crotg.f +++ /dev/null @@ -1,97 +0,0 @@ -*> \brief \b CROTG -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CROTG(CA,CB,C,S) -* -* .. Scalar Arguments .. -* COMPLEX CA,CB,S -* REAL C -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> CROTG determines a complex Givens rotation. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] CA -*> \verbatim -*> CA is COMPLEX -*> \endverbatim -*> -*> \param[in] CB -*> \verbatim -*> CB is COMPLEX -*> \endverbatim -*> -*> \param[out] C -*> \verbatim -*> C is REAL -*> \endverbatim -*> -*> \param[out] S -*> \verbatim -*> S is COMPLEX -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup complex_blas_level1 -* -* ===================================================================== - SUBROUTINE CROTG(CA,CB,C,S) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - COMPLEX CA,CB,S - REAL C -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - COMPLEX ALPHA - REAL NORM,SCALE -* .. -* .. Intrinsic Functions .. - INTRINSIC CABS,CONJG,SQRT -* .. - IF (CABS(CA).EQ.0.) THEN - C = 0. - S = (1.,0.) - CA = CB - ELSE - SCALE = CABS(CA) + CABS(CB) - NORM = SCALE*SQRT((CABS(CA/SCALE))**2+ (CABS(CB/SCALE))**2) - ALPHA = CA/CABS(CA) - C = CABS(CA)/NORM - S = ALPHA*CONJG(CB)/NORM - CA = ALPHA*NORM - END IF - RETURN - END diff --git a/dspl/blas/src/crotg.f90 b/dspl/blas/src/crotg.f90 new file mode 100644 index 0000000..8cb1eb4 --- /dev/null +++ b/dspl/blas/src/crotg.f90 @@ -0,0 +1,229 @@ +!> \brief \b CROTG +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! CROTG constructs a plane rotation +! [ c s ] [ a ] = [ r ] +! [ -conjg(s) c ] [ b ] [ 0 ] +! where c is real, s ic complex, and c**2 + conjg(s)*s = 1. +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> The computation uses the formulas +!> |x| = sqrt( Re(x)**2 + Im(x)**2 ) +!> sgn(x) = x / |x| if x /= 0 +!> = 1 if x = 0 +!> c = |a| / sqrt(|a|**2 + |b|**2) +!> s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2) +!> When a and b are real and r /= 0, the formulas simplify to +!> r = sgn(a)*sqrt(|a|**2 + |b|**2) +!> c = a / r +!> s = b / r +!> the same as in CROTG when |a| > |b|. When |b| >= |a|, the +!> sign of c and s will be different from those computed by CROTG +!> if the signs of a and b are not the same. +!> +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in,out] A +!> \verbatim +!> A is COMPLEX +!> On entry, the scalar a. +!> On exit, the scalar r. +!> \endverbatim +!> +!> \param[in] B +!> \verbatim +!> B is COMPLEX +!> The scalar b. +!> \endverbatim +!> +!> \param[out] C +!> \verbatim +!> C is REAL +!> The scalar c. +!> \endverbatim +!> +!> \param[out] S +!> \verbatim +!> S is REAL +!> The scalar s. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \ingroup single_blas_level1 +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> \endverbatim +! +! ===================================================================== +subroutine CROTG( a, b, c, s ) + integer, parameter :: wp = kind(1.e0) +! +! -- Reference BLAS level1 routine -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp + complex(wp), parameter :: czero = 0.0_wp +! .. +! .. Scaling constants .. + real(wp), parameter :: safmin = real(radix(0._wp),wp)**max( & + minexponent(0._wp)-1, & + 1-maxexponent(0._wp) & + ) + real(wp), parameter :: safmax = real(radix(0._wp),wp)**max( & + 1-minexponent(0._wp), & + maxexponent(0._wp)-1 & + ) + real(wp), parameter :: rtmin = sqrt( real(radix(0._wp),wp)**max( & + minexponent(0._wp)-1, & + 1-maxexponent(0._wp) & + ) / epsilon(0._wp) ) + real(wp), parameter :: rtmax = sqrt( real(radix(0._wp),wp)**max( & + 1-minexponent(0._wp), & + maxexponent(0._wp)-1 & + ) * epsilon(0._wp) ) +! .. +! .. Scalar Arguments .. + real(wp) :: c + complex(wp) :: a, b, s +! .. +! .. Local Scalars .. + real(wp) :: d, f1, f2, g1, g2, h2, p, u, uu, v, vv, w + complex(wp) :: f, fs, g, gs, r, t +! .. +! .. Intrinsic Functions .. + intrinsic :: abs, aimag, conjg, max, min, real, sqrt +! .. +! .. Statement Functions .. + real(wp) :: ABSSQ +! .. +! .. Statement Function definitions .. + ABSSQ( t ) = real( t )**2 + aimag( t )**2 +! .. +! .. Executable Statements .. +! + f = a + g = b + if( g == czero ) then + c = one + s = czero + r = f + else if( f == czero ) then + c = zero + g1 = max( abs(real(g)), abs(aimag(g)) ) + if( g1 > rtmin .and. g1 < rtmax ) then +! +! Use unscaled algorithm +! + g2 = ABSSQ( g ) + d = sqrt( g2 ) + s = conjg( g ) / d + r = d + else +! +! Use scaled algorithm +! + u = min( safmax, max( safmin, g1 ) ) + uu = one / u + gs = g*uu + g2 = ABSSQ( gs ) + d = sqrt( g2 ) + s = conjg( gs ) / d + r = d*u + end if + else + f1 = max( abs(real(f)), abs(aimag(f)) ) + g1 = max( abs(real(g)), abs(aimag(g)) ) + if( f1 > rtmin .and. f1 < rtmax .and. & + g1 > rtmin .and. g1 < rtmax ) then +! +! Use unscaled algorithm +! + f2 = ABSSQ( f ) + g2 = ABSSQ( g ) + h2 = f2 + g2 + if( f2 > rtmin .and. h2 < rtmax ) then + d = sqrt( f2*h2 ) + else + d = sqrt( f2 )*sqrt( h2 ) + end if + p = 1 / d + c = f2*p + s = conjg( g )*( f*p ) + r = f*( h2*p ) + else +! +! Use scaled algorithm +! + u = min( safmax, max( safmin, f1, g1 ) ) + uu = one / u + gs = g*uu + g2 = ABSSQ( gs ) + if( f1*uu < rtmin ) then +! +! f is not well-scaled when scaled by g1. +! Use a different scaling for f. +! + v = min( safmax, max( safmin, f1 ) ) + vv = one / v + w = v * uu + fs = f*vv + f2 = ABSSQ( fs ) + h2 = f2*w**2 + g2 + else +! +! Otherwise use the same scaling for f and g. +! + w = one + fs = f*uu + f2 = ABSSQ( fs ) + h2 = f2 + g2 + end if + if( f2 > rtmin .and. h2 < rtmax ) then + d = sqrt( f2*h2 ) + else + d = sqrt( f2 )*sqrt( h2 ) + end if + p = 1 / d + c = ( f2*p )*w + s = conjg( gs )*( fs*p ) + r = ( fs*( h2*p ) )*u + end if + end if + a = r + return +end subroutine diff --git a/dspl/blas/src/cscal.f b/dspl/blas/src/cscal.f index b896af9..b72c08e 100644 --- a/dspl/blas/src/cscal.f +++ b/dspl/blas/src/cscal.f @@ -61,8 +61,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -78,10 +76,9 @@ * ===================================================================== SUBROUTINE CSCAL(N,CA,CX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. COMPLEX CA @@ -114,4 +111,7 @@ END DO END IF RETURN +* +* End of CSCAL +* END diff --git a/dspl/blas/src/csrot.f b/dspl/blas/src/csrot.f index aa8564e..2b4b92b 100644 --- a/dspl/blas/src/csrot.f +++ b/dspl/blas/src/csrot.f @@ -91,17 +91,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level1 * * ===================================================================== SUBROUTINE CSROT( N, CX, INCX, CY, INCY, C, S ) * -* -- Reference BLAS level1 routine (version 3.7.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX, INCY, N @@ -150,4 +147,7 @@ END DO END IF RETURN +* +* End of CSROT +* END diff --git a/dspl/blas/src/csscal.f b/dspl/blas/src/csscal.f index bc90c0d..5c4da6d 100644 --- a/dspl/blas/src/csscal.f +++ b/dspl/blas/src/csscal.f @@ -61,8 +61,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -78,10 +76,9 @@ * ===================================================================== SUBROUTINE CSSCAL(N,SA,CX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. REAL SA @@ -117,4 +114,7 @@ END DO END IF RETURN +* +* End of CSSCAL +* END diff --git a/dspl/blas/src/cswap.f b/dspl/blas/src/cswap.f index 272acdf..310bf18 100644 --- a/dspl/blas/src/cswap.f +++ b/dspl/blas/src/cswap.f @@ -65,8 +65,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex_blas_level1 * *> \par Further Details: @@ -81,10 +79,9 @@ * ===================================================================== SUBROUTINE CSWAP(N,CX,INCX,CY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -126,4 +123,7 @@ END DO END IF RETURN +* +* End of CSWAP +* END diff --git a/dspl/blas/src/csymm.f b/dspl/blas/src/csymm.f index 8f05264..ff6a6bf 100644 --- a/dspl/blas/src/csymm.f +++ b/dspl/blas/src/csymm.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE CSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -364,6 +361,6 @@ * RETURN * -* End of CSYMM . +* End of CSYMM * END diff --git a/dspl/blas/src/csyr2k.f b/dspl/blas/src/csyr2k.f index b321d09..0975189 100644 --- a/dspl/blas/src/csyr2k.f +++ b/dspl/blas/src/csyr2k.f @@ -167,8 +167,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -188,10 +186,9 @@ * ===================================================================== SUBROUTINE CSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -391,6 +388,6 @@ * RETURN * -* End of CSYR2K. +* End of CSYR2K * END diff --git a/dspl/blas/src/csyrk.f b/dspl/blas/src/csyrk.f index c25384a..97bde05 100644 --- a/dspl/blas/src/csyrk.f +++ b/dspl/blas/src/csyrk.f @@ -146,8 +146,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -167,10 +165,9 @@ * ===================================================================== SUBROUTINE CSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA,BETA @@ -358,6 +355,6 @@ * RETURN * -* End of CSYRK . +* End of CSYRK * END diff --git a/dspl/blas/src/ctbmv.f b/dspl/blas/src/ctbmv.f index 205ab9c..c0be8f4 100644 --- a/dspl/blas/src/ctbmv.f +++ b/dspl/blas/src/ctbmv.f @@ -164,8 +164,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -186,10 +184,9 @@ * ===================================================================== SUBROUTINE CTBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -424,6 +421,6 @@ * RETURN * -* End of CTBMV . +* End of CTBMV * END diff --git a/dspl/blas/src/ctbsv.f b/dspl/blas/src/ctbsv.f index 16050f1..b3600e4 100644 --- a/dspl/blas/src/ctbsv.f +++ b/dspl/blas/src/ctbsv.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE CTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -427,6 +424,6 @@ * RETURN * -* End of CTBSV . +* End of CTBSV * END diff --git a/dspl/blas/src/ctpmv.f b/dspl/blas/src/ctpmv.f index e699791..b4651a2 100644 --- a/dspl/blas/src/ctpmv.f +++ b/dspl/blas/src/ctpmv.f @@ -120,8 +120,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -142,10 +140,9 @@ * ===================================================================== SUBROUTINE CTPMV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -383,6 +380,6 @@ * RETURN * -* End of CTPMV . +* End of CTPMV * END diff --git a/dspl/blas/src/ctpsv.f b/dspl/blas/src/ctpsv.f index 2335ef5..d306cc2 100644 --- a/dspl/blas/src/ctpsv.f +++ b/dspl/blas/src/ctpsv.f @@ -123,8 +123,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -144,10 +142,9 @@ * ===================================================================== SUBROUTINE CTPSV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -385,6 +382,6 @@ * RETURN * -* End of CTPSV . +* End of CTPSV * END diff --git a/dspl/blas/src/ctrmm.f b/dspl/blas/src/ctrmm.f index 6f79d06..2597372 100644 --- a/dspl/blas/src/ctrmm.f +++ b/dspl/blas/src/ctrmm.f @@ -156,8 +156,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -177,10 +175,9 @@ * ===================================================================== SUBROUTINE CTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -447,6 +444,6 @@ * RETURN * -* End of CTRMM . +* End of CTRMM * END diff --git a/dspl/blas/src/ctrmv.f b/dspl/blas/src/ctrmv.f index 1eec65b..2404b3d 100644 --- a/dspl/blas/src/ctrmv.f +++ b/dspl/blas/src/ctrmv.f @@ -125,8 +125,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE CTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -368,6 +365,6 @@ * RETURN * -* End of CTRMV . +* End of CTRMV * END diff --git a/dspl/blas/src/ctrsm.f b/dspl/blas/src/ctrsm.f index 2c2aff0..7da6cfe 100644 --- a/dspl/blas/src/ctrsm.f +++ b/dspl/blas/src/ctrsm.f @@ -159,8 +159,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level3 * *> \par Further Details: @@ -180,10 +178,9 @@ * ===================================================================== SUBROUTINE CTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX ALPHA @@ -472,6 +469,6 @@ * RETURN * -* End of CTRSM . +* End of CTRSM * END diff --git a/dspl/blas/src/ctrsv.f b/dspl/blas/src/ctrsv.f index 81c0824..de0640e 100644 --- a/dspl/blas/src/ctrsv.f +++ b/dspl/blas/src/ctrsv.f @@ -128,8 +128,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex_blas_level2 * *> \par Further Details: @@ -149,10 +147,9 @@ * ===================================================================== SUBROUTINE CTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -370,6 +367,6 @@ * RETURN * -* End of CTRSV . +* End of CTRSV * END diff --git a/dspl/blas/src/dasum.f b/dspl/blas/src/dasum.f index fa0d55e..9a360b5 100644 --- a/dspl/blas/src/dasum.f +++ b/dspl/blas/src/dasum.f @@ -54,8 +54,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -71,10 +69,9 @@ * ===================================================================== DOUBLE PRECISION FUNCTION DASUM(N,DX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -128,4 +125,7 @@ END IF DASUM = DTEMP RETURN +* +* End of DASUM +* END diff --git a/dspl/blas/src/daxpy.f b/dspl/blas/src/daxpy.f index 4646737..421f7c6 100644 --- a/dspl/blas/src/daxpy.f +++ b/dspl/blas/src/daxpy.f @@ -73,8 +73,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -89,10 +87,9 @@ * ===================================================================== SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DA @@ -149,4 +146,7 @@ END DO END IF RETURN +* +* End of DAXPY +* END diff --git a/dspl/blas/src/dcabs1.f b/dspl/blas/src/dcabs1.f index 95016bd..f6212a8 100644 --- a/dspl/blas/src/dcabs1.f +++ b/dspl/blas/src/dcabs1.f @@ -40,17 +40,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * * ===================================================================== DOUBLE PRECISION FUNCTION DCABS1(Z) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. COMPLEX*16 Z @@ -63,4 +60,7 @@ * DCABS1 = ABS(DBLE(Z)) + ABS(DIMAG(Z)) RETURN +* +* End of DCABS1 +* END diff --git a/dspl/blas/src/dcopy.f b/dspl/blas/src/dcopy.f index d7c350b..ded46c5 100644 --- a/dspl/blas/src/dcopy.f +++ b/dspl/blas/src/dcopy.f @@ -66,8 +66,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -82,10 +80,9 @@ * ===================================================================== SUBROUTINE DCOPY(N,DX,INCX,DY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -143,4 +140,7 @@ END DO END IF RETURN +* +* End of DCOPY +* END diff --git a/dspl/blas/src/ddot.f b/dspl/blas/src/ddot.f index 0edf212..683a04b 100644 --- a/dspl/blas/src/ddot.f +++ b/dspl/blas/src/ddot.f @@ -66,8 +66,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -82,10 +80,9 @@ * ===================================================================== DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -145,4 +142,7 @@ END IF DDOT = DTEMP RETURN +* +* End of DDOT +* END diff --git a/dspl/blas/src/dgbmv.f b/dspl/blas/src/dgbmv.f index 29fb543..4c8f088 100644 --- a/dspl/blas/src/dgbmv.f +++ b/dspl/blas/src/dgbmv.f @@ -163,8 +163,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -185,10 +183,9 @@ * ===================================================================== SUBROUTINE DGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -365,6 +362,6 @@ * RETURN * -* End of DGBMV . +* End of DGBMV * END diff --git a/dspl/blas/src/dgemm.f b/dspl/blas/src/dgemm.f index 3a60ca4..8c1b4f2 100644 --- a/dspl/blas/src/dgemm.f +++ b/dspl/blas/src/dgemm.f @@ -166,8 +166,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level3 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -215,7 +212,7 @@ * .. * .. Local Scalars .. DOUBLE PRECISION TEMP - INTEGER I,INFO,J,L,NCOLA,NROWA,NROWB + INTEGER I,INFO,J,L,NROWA,NROWB LOGICAL NOTA,NOTB * .. * .. Parameters .. @@ -224,17 +221,15 @@ * .. * * Set NOTA and NOTB as true if A and B respectively are not -* transposed and set NROWA, NCOLA and NROWB as the number of rows -* and columns of A and the number of rows of B respectively. +* transposed and set NROWA and NROWB as the number of rows of A +* and B respectively. * NOTA = LSAME(TRANSA,'N') NOTB = LSAME(TRANSB,'N') IF (NOTA) THEN NROWA = M - NCOLA = K ELSE NROWA = K - NCOLA = M END IF IF (NOTB) THEN NROWB = K @@ -379,6 +374,6 @@ * RETURN * -* End of DGEMM . +* End of DGEMM * END diff --git a/dspl/blas/src/dgemv.f b/dspl/blas/src/dgemv.f index 08e395b..6625509 100644 --- a/dspl/blas/src/dgemv.f +++ b/dspl/blas/src/dgemv.f @@ -134,8 +134,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -156,10 +154,9 @@ * ===================================================================== SUBROUTINE DGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -325,6 +322,6 @@ * RETURN * -* End of DGEMV . +* End of DGEMV * END diff --git a/dspl/blas/src/dger.f b/dspl/blas/src/dger.f index bdc8ef4..8c19cb4 100644 --- a/dspl/blas/src/dger.f +++ b/dspl/blas/src/dger.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE DGER(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -222,6 +219,6 @@ * RETURN * -* End of DGER . +* End of DGER * END diff --git a/dspl/blas/src/dnrm2.f b/dspl/blas/src/dnrm2.f deleted file mode 100644 index 9e069fe..0000000 --- a/dspl/blas/src/dnrm2.f +++ /dev/null @@ -1,132 +0,0 @@ -*> \brief \b DNRM2 -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX) -* -* .. Scalar Arguments .. -* INTEGER INCX,N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION X(*) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DNRM2 returns the euclidean norm of a vector via the function -*> name, so that -*> -*> DNRM2 := sqrt( x'*x ) -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> number of elements in input vector(s) -*> \endverbatim -*> -*> \param[in] X -*> \verbatim -*> X is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) -*> \endverbatim -*> -*> \param[in] INCX -*> \verbatim -*> INCX is INTEGER -*> storage spacing between elements of DX -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup double_blas_level1 -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> -- This version written on 25-October-1982. -*> Modified on 14-October-1993 to inline the call to DLASSQ. -*> Sven Hammarling, Nag Ltd. -*> \endverbatim -*> -* ===================================================================== - DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - INTEGER INCX,N -* .. -* .. Array Arguments .. - DOUBLE PRECISION X(*) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE,ZERO - PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) -* .. -* .. Local Scalars .. - DOUBLE PRECISION ABSXI,NORM,SCALE,SSQ - INTEGER IX -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS,SQRT -* .. - IF (N.LT.1 .OR. INCX.LT.1) THEN - NORM = ZERO - ELSE IF (N.EQ.1) THEN - NORM = ABS(X(1)) - ELSE - SCALE = ZERO - SSQ = ONE -* The following loop is equivalent to this call to the LAPACK -* auxiliary routine: -* CALL DLASSQ( N, X, INCX, SCALE, SSQ ) -* - DO 10 IX = 1,1 + (N-1)*INCX,INCX - IF (X(IX).NE.ZERO) THEN - ABSXI = ABS(X(IX)) - IF (SCALE.LT.ABSXI) THEN - SSQ = ONE + SSQ* (SCALE/ABSXI)**2 - SCALE = ABSXI - ELSE - SSQ = SSQ + (ABSXI/SCALE)**2 - END IF - END IF - 10 CONTINUE - NORM = SCALE*SQRT(SSQ) - END IF -* - DNRM2 = NORM - RETURN -* -* End of DNRM2. -* - END diff --git a/dspl/blas/src/dnrm2.f90 b/dspl/blas/src/dnrm2.f90 new file mode 100644 index 0000000..5649d41 --- /dev/null +++ b/dspl/blas/src/dnrm2.f90 @@ -0,0 +1,199 @@ +!> \brief \b DNRM2 +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX) +! +! .. Scalar Arguments .. +! INTEGER INCX,N +! .. +! .. Array Arguments .. +! DOUBLE PRECISION X(*) +! .. +! +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> DNRM2 returns the euclidean norm of a vector via the function +!> name, so that +!> +!> DNRM2 := sqrt( x'*x ) +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in] N +!> \verbatim +!> N is INTEGER +!> number of elements in input vector(s) +!> \endverbatim +!> +!> \param[in] X +!> \verbatim +!> X is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) +!> \endverbatim +!> +!> \param[in] INCX +!> \verbatim +!> INCX is INTEGER, storage spacing between elements of X +!> If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n +!> If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n +!> If INCX = 0, x isn't a vector so there is no need to call +!> this subroutine. If you call it anyway, it will count x(1) +!> in the vector norm N times. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \date August 2016 +! +!> \ingroup single_blas_level1 +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> Blue, James L. (1978) +!> A Portable Fortran Program to Find the Euclidean Norm of a Vector +!> ACM Trans Math Softw 4:15--23 +!> https://doi.org/10.1145/355769.355771 +!> +!> \endverbatim +!> +! ===================================================================== +function DNRM2( n, x, incx ) + integer, parameter :: wp = kind(1.d0) + real(wp) :: DNRM2 +! +! -- Reference BLAS level1 routine (version 3.9.1) -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! March 2021 +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp + real(wp), parameter :: maxN = huge(0.0_wp) +! .. +! .. Blue's ccaling constants .. + real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( & + (minexponent(0._wp) - 1) * 0.5_wp) + real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp) + real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( & + (minexponent(0._wp) - 1) * 0.5_wp)) + real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)) +! .. +! .. Scalar Arguments .. + integer :: incx, n +! .. +! .. Array Arguments .. + real(wp) :: x(*) +! .. +! .. Local Scalars .. + integer :: i, ix + logical :: notbig + real(wp) :: abig, amed, asml, ax, scl, sumsq, ymax, ymin +! +! Quick return if possible +! + DNRM2 = zero + if( n <= 0 ) return +! + scl = one + sumsq = zero +! +! Compute the sum of squares in 3 accumulators: +! abig -- sums of squares scaled down to avoid overflow +! asml -- sums of squares scaled up to avoid underflow +! amed -- sums of squares that do not require scaling +! The thresholds and multipliers are +! tbig -- values bigger than this are scaled down by sbig +! tsml -- values smaller than this are scaled up by ssml +! + notbig = .true. + asml = zero + amed = zero + abig = zero + ix = 1 + if( incx < 0 ) ix = 1 - (n-1)*incx + do i = 1, n + ax = abs(x(ix)) + if (ax > tbig) then + abig = abig + (ax*sbig)**2 + notbig = .false. + else if (ax < tsml) then + if (notbig) asml = asml + (ax*ssml)**2 + else + amed = amed + ax**2 + end if + ix = ix + incx + end do +! +! Combine abig and amed or amed and asml if more than one +! accumulator was used. +! + if (abig > zero) then +! +! Combine abig and amed if abig > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + abig = abig + (amed*sbig)*sbig + end if + scl = one / sbig + sumsq = abig + else if (asml > zero) then +! +! Combine amed and asml if asml > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + amed = sqrt(amed) + asml = sqrt(asml) / ssml + if (asml > amed) then + ymin = amed + ymax = asml + else + ymin = asml + ymax = amed + end if + scl = one + sumsq = ymax**2*( one + (ymin/ymax)**2 ) + else + scl = one / ssml + sumsq = asml + end if + else +! +! Otherwise all values are mid-range +! + scl = one + sumsq = amed + end if + DNRM2 = scl*sqrt( sumsq ) + return +end function diff --git a/dspl/blas/src/drot.f b/dspl/blas/src/drot.f index abc90cd..0386626 100644 --- a/dspl/blas/src/drot.f +++ b/dspl/blas/src/drot.f @@ -76,8 +76,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -92,10 +90,9 @@ * ===================================================================== SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION C,S @@ -139,4 +136,7 @@ END DO END IF RETURN +* +* End of DROT +* END diff --git a/dspl/blas/src/drotg.f b/dspl/blas/src/drotg.f deleted file mode 100644 index c030d3c..0000000 --- a/dspl/blas/src/drotg.f +++ /dev/null @@ -1,109 +0,0 @@ -*> \brief \b DROTG -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DROTG(DA,DB,C,S) -* -* .. Scalar Arguments .. -* DOUBLE PRECISION C,DA,DB,S -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DROTG construct givens plane rotation. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] DA -*> \verbatim -*> DA is DOUBLE PRECISION -*> \endverbatim -*> -*> \param[in] DB -*> \verbatim -*> DB is DOUBLE PRECISION -*> \endverbatim -*> -*> \param[out] C -*> \verbatim -*> C is DOUBLE PRECISION -*> \endverbatim -*> -*> \param[out] S -*> \verbatim -*> S is DOUBLE PRECISION -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup double_blas_level1 -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> jack dongarra, linpack, 3/11/78. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE DROTG(DA,DB,C,S) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - DOUBLE PRECISION C,DA,DB,S -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - DOUBLE PRECISION R,ROE,SCALE,Z -* .. -* .. Intrinsic Functions .. - INTRINSIC DABS,DSIGN,DSQRT -* .. - ROE = DB - IF (DABS(DA).GT.DABS(DB)) ROE = DA - SCALE = DABS(DA) + DABS(DB) - IF (SCALE.EQ.0.0d0) THEN - C = 1.0d0 - S = 0.0d0 - R = 0.0d0 - Z = 0.0d0 - ELSE - R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2) - R = DSIGN(1.0d0,ROE)*R - C = DA/R - S = DB/R - Z = 1.0d0 - IF (DABS(DA).GT.DABS(DB)) Z = S - IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C - END IF - DA = R - DB = Z - RETURN - END diff --git a/dspl/blas/src/drotg.f90 b/dspl/blas/src/drotg.f90 new file mode 100644 index 0000000..a344cd4 --- /dev/null +++ b/dspl/blas/src/drotg.f90 @@ -0,0 +1,151 @@ +!> \brief \b DROTG +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! DROTG constructs a plane rotation +! [ c s ] [ a ] = [ r ] +! [ -s c ] [ b ] [ 0 ] +! satisfying c**2 + s**2 = 1. +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> The computation uses the formulas +!> sigma = sgn(a) if |a| > |b| +!> = sgn(b) if |b| >= |a| +!> r = sigma*sqrt( a**2 + b**2 ) +!> c = 1; s = 0 if r = 0 +!> c = a/r; s = b/r if r != 0 +!> The subroutine also computes +!> z = s if |a| > |b|, +!> = 1/c if |b| >= |a| and c != 0 +!> = 1 if c = 0 +!> This allows c and s to be reconstructed from z as follows: +!> If z = 1, set c = 0, s = 1. +!> If |z| < 1, set c = sqrt(1 - z**2) and s = z. +!> If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2). +!> +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in,out] A +!> \verbatim +!> A is DOUBLE PRECISION +!> On entry, the scalar a. +!> On exit, the scalar r. +!> \endverbatim +!> +!> \param[in,out] B +!> \verbatim +!> B is DOUBLE PRECISION +!> On entry, the scalar b. +!> On exit, the scalar z. +!> \endverbatim +!> +!> \param[out] C +!> \verbatim +!> C is DOUBLE PRECISION +!> The scalar c. +!> \endverbatim +!> +!> \param[out] S +!> \verbatim +!> S is DOUBLE PRECISION +!> The scalar s. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \ingroup single_blas_level1 +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> \endverbatim +! +! ===================================================================== +subroutine DROTG( a, b, c, s ) + integer, parameter :: wp = kind(1.d0) +! +! -- Reference BLAS level1 routine -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp +! .. +! .. Scaling constants .. + real(wp), parameter :: safmin = real(radix(0._wp),wp)**max( & + minexponent(0._wp)-1, & + 1-maxexponent(0._wp) & + ) + real(wp), parameter :: safmax = real(radix(0._wp),wp)**max( & + 1-minexponent(0._wp), & + maxexponent(0._wp)-1 & + ) +! .. +! .. Scalar Arguments .. + real(wp) :: a, b, c, s +! .. +! .. Local Scalars .. + real(wp) :: anorm, bnorm, scl, sigma, r, z +! .. + anorm = abs(a) + bnorm = abs(b) + if( bnorm == zero ) then + c = one + s = zero + b = zero + else if( anorm == zero ) then + c = zero + s = one + a = b + b = one + else + scl = min( safmax, max( safmin, anorm, bnorm ) ) + if( anorm > bnorm ) then + sigma = sign(one,a) + else + sigma = sign(one,b) + end if + r = sigma*( scl*sqrt((a/scl)**2 + (b/scl)**2) ) + c = a/r + s = b/r + if( anorm > bnorm ) then + z = s + else if( c /= zero ) then + z = one/c + else + z = one + end if + a = r + b = z + end if + return +end subroutine diff --git a/dspl/blas/src/drotm.f b/dspl/blas/src/drotm.f index fc5d8fc..0363ddd 100644 --- a/dspl/blas/src/drotm.f +++ b/dspl/blas/src/drotm.f @@ -89,17 +89,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * * ===================================================================== SUBROUTINE DROTM(N,DX,INCX,DY,INCY,DPARAM) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -197,4 +194,7 @@ END IF END IF RETURN +* +* End of DROTM +* END diff --git a/dspl/blas/src/drotmg.f b/dspl/blas/src/drotmg.f index 701e9de..be59f31 100644 --- a/dspl/blas/src/drotmg.f +++ b/dspl/blas/src/drotmg.f @@ -83,17 +83,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * * ===================================================================== SUBROUTINE DROTMG(DD1,DD2,DX1,DY1,DPARAM) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DD1,DD2,DX1,DY1 @@ -152,6 +149,19 @@ DD1 = DD1/DU DD2 = DD2/DU DX1 = DX1*DU + ELSE +* This code path if here for safety. We do not expect this +* condition to ever hold except in edge cases with rounding +* errors. See DOI: 10.1145/355841.355847 + DFLAG = -ONE + DH11 = ZERO + DH12 = ZERO + DH21 = ZERO + DH22 = ZERO +* + DD1 = ZERO + DD2 = ZERO + DX1 = ZERO END IF ELSE @@ -244,8 +254,7 @@ DPARAM(1) = DFLAG RETURN +* +* End of DROTMG +* END - - - - diff --git a/dspl/blas/src/dsbmv.f b/dspl/blas/src/dsbmv.f index 0f7c694..ad9e418 100644 --- a/dspl/blas/src/dsbmv.f +++ b/dspl/blas/src/dsbmv.f @@ -162,8 +162,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -184,10 +182,9 @@ * ===================================================================== SUBROUTINE DSBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -370,6 +367,6 @@ * RETURN * -* End of DSBMV . +* End of DSBMV * END diff --git a/dspl/blas/src/dscal.f b/dspl/blas/src/dscal.f index 5f8b092..3713427 100644 --- a/dspl/blas/src/dscal.f +++ b/dspl/blas/src/dscal.f @@ -62,8 +62,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -79,10 +77,9 @@ * ===================================================================== SUBROUTINE DSCAL(N,DA,DX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DA @@ -133,4 +130,7 @@ END DO END IF RETURN +* +* End of DSCAL +* END diff --git a/dspl/blas/src/dsdot.f b/dspl/blas/src/dsdot.f index f9cb498..ae254a6 100644 --- a/dspl/blas/src/dsdot.f +++ b/dspl/blas/src/dsdot.f @@ -84,8 +84,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -119,10 +117,9 @@ * ===================================================================== DOUBLE PRECISION FUNCTION DSDOT(N,SX,INCX,SY,INCY) * -* -- Reference BLAS level1 routine (version 3.7.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -169,4 +166,7 @@ END DO END IF RETURN +* +* End of DSDOT +* END diff --git a/dspl/blas/src/dspmv.f b/dspl/blas/src/dspmv.f index 6e26c0f..a79c74d 100644 --- a/dspl/blas/src/dspmv.f +++ b/dspl/blas/src/dspmv.f @@ -125,8 +125,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE DSPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -326,6 +323,6 @@ * RETURN * -* End of DSPMV . +* End of DSPMV * END diff --git a/dspl/blas/src/dspr.f b/dspl/blas/src/dspr.f index f9d709e..67227a2 100644 --- a/dspl/blas/src/dspr.f +++ b/dspl/blas/src/dspr.f @@ -106,8 +106,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -127,10 +125,9 @@ * ===================================================================== SUBROUTINE DSPR(UPLO,N,ALPHA,X,INCX,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -256,6 +253,6 @@ * RETURN * -* End of DSPR . +* End of DSPR * END diff --git a/dspl/blas/src/dspr2.f b/dspl/blas/src/dspr2.f index 175d8e8..0756c2b 100644 --- a/dspl/blas/src/dspr2.f +++ b/dspl/blas/src/dspr2.f @@ -121,8 +121,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -142,10 +140,9 @@ * ===================================================================== SUBROUTINE DSPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -291,6 +288,6 @@ * RETURN * -* End of DSPR2 . +* End of DSPR2 * END diff --git a/dspl/blas/src/dswap.f b/dspl/blas/src/dswap.f index e09cabc..b7600aa 100644 --- a/dspl/blas/src/dswap.f +++ b/dspl/blas/src/dswap.f @@ -66,8 +66,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -82,10 +80,9 @@ * ===================================================================== SUBROUTINE DSWAP(N,DX,INCX,DY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -150,4 +147,7 @@ END DO END IF RETURN +* +* End of DSWAP +* END diff --git a/dspl/blas/src/dsymm.f b/dspl/blas/src/dsymm.f index 622d246..683e79f 100644 --- a/dspl/blas/src/dsymm.f +++ b/dspl/blas/src/dsymm.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level3 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE DSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -362,6 +359,6 @@ * RETURN * -* End of DSYMM . +* End of DSYMM * END diff --git a/dspl/blas/src/dsymv.f b/dspl/blas/src/dsymv.f index 4bf973f..17310d7 100644 --- a/dspl/blas/src/dsymv.f +++ b/dspl/blas/src/dsymv.f @@ -130,8 +130,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -152,10 +150,9 @@ * ===================================================================== SUBROUTINE DSYMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -328,6 +325,6 @@ * RETURN * -* End of DSYMV . +* End of DSYMV * END diff --git a/dspl/blas/src/dsyr.f b/dspl/blas/src/dsyr.f index 7fe256f..ab452dd 100644 --- a/dspl/blas/src/dsyr.f +++ b/dspl/blas/src/dsyr.f @@ -111,8 +111,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -132,10 +130,9 @@ * ===================================================================== SUBROUTINE DSYR(UPLO,N,ALPHA,X,INCX,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -258,6 +255,6 @@ * RETURN * -* End of DSYR . +* End of DSYR * END diff --git a/dspl/blas/src/dsyr2.f b/dspl/blas/src/dsyr2.f index 8970c4d..4bad19b 100644 --- a/dspl/blas/src/dsyr2.f +++ b/dspl/blas/src/dsyr2.f @@ -126,8 +126,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE DSYR2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -293,6 +290,6 @@ * RETURN * -* End of DSYR2 . +* End of DSYR2 * END diff --git a/dspl/blas/src/dsyr2k.f b/dspl/blas/src/dsyr2k.f index f3a5940..f5d16e0 100644 --- a/dspl/blas/src/dsyr2k.f +++ b/dspl/blas/src/dsyr2k.f @@ -170,8 +170,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level3 * *> \par Further Details: @@ -192,10 +190,9 @@ * ===================================================================== SUBROUTINE DSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -394,6 +391,6 @@ * RETURN * -* End of DSYR2K. +* End of DSYR2K * END diff --git a/dspl/blas/src/dsyrk.f b/dspl/blas/src/dsyrk.f index 4be4d8d..0548c0c 100644 --- a/dspl/blas/src/dsyrk.f +++ b/dspl/blas/src/dsyrk.f @@ -148,8 +148,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level3 * *> \par Further Details: @@ -169,10 +167,9 @@ * ===================================================================== SUBROUTINE DSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -359,6 +356,6 @@ * RETURN * -* End of DSYRK . +* End of DSYRK * END diff --git a/dspl/blas/src/dtbmv.f b/dspl/blas/src/dtbmv.f index e27d50f..646fb9b 100644 --- a/dspl/blas/src/dtbmv.f +++ b/dspl/blas/src/dtbmv.f @@ -164,8 +164,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -186,10 +184,9 @@ * ===================================================================== SUBROUTINE DTBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -393,6 +390,6 @@ * RETURN * -* End of DTBMV . +* End of DTBMV * END diff --git a/dspl/blas/src/dtbsv.f b/dspl/blas/src/dtbsv.f index d8c6f14..d4ab7c6 100644 --- a/dspl/blas/src/dtbsv.f +++ b/dspl/blas/src/dtbsv.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE DTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -396,6 +393,6 @@ * RETURN * -* End of DTBSV . +* End of DTBSV * END diff --git a/dspl/blas/src/dtpmv.f b/dspl/blas/src/dtpmv.f index bad91f3..32ab147 100644 --- a/dspl/blas/src/dtpmv.f +++ b/dspl/blas/src/dtpmv.f @@ -120,8 +120,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -142,10 +140,9 @@ * ===================================================================== SUBROUTINE DTPMV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -347,6 +344,6 @@ * RETURN * -* End of DTPMV . +* End of DTPMV * END diff --git a/dspl/blas/src/dtpsv.f b/dspl/blas/src/dtpsv.f index abcd077..853d0da 100644 --- a/dspl/blas/src/dtpsv.f +++ b/dspl/blas/src/dtpsv.f @@ -123,8 +123,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -144,10 +142,9 @@ * ===================================================================== SUBROUTINE DTPSV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -349,6 +346,6 @@ * RETURN * -* End of DTPSV . +* End of DTPSV * END diff --git a/dspl/blas/src/dtrmm.f b/dspl/blas/src/dtrmm.f index 0241c4d..b2cc0a1 100644 --- a/dspl/blas/src/dtrmm.f +++ b/dspl/blas/src/dtrmm.f @@ -156,8 +156,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level3 * *> \par Further Details: @@ -177,10 +175,9 @@ * ===================================================================== SUBROUTINE DTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -410,6 +407,6 @@ * RETURN * -* End of DTRMM . +* End of DTRMM * END diff --git a/dspl/blas/src/dtrmv.f b/dspl/blas/src/dtrmv.f index 11c12ac..e8af8e6 100644 --- a/dspl/blas/src/dtrmv.f +++ b/dspl/blas/src/dtrmv.f @@ -125,8 +125,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE DTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -337,6 +334,6 @@ * RETURN * -* End of DTRMV . +* End of DTRMV * END diff --git a/dspl/blas/src/dtrsm.f b/dspl/blas/src/dtrsm.f index 5a92bca..fa8080b 100644 --- a/dspl/blas/src/dtrsm.f +++ b/dspl/blas/src/dtrsm.f @@ -159,8 +159,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level3 * *> \par Further Details: @@ -181,10 +179,9 @@ * ===================================================================== SUBROUTINE DTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -438,6 +435,6 @@ * RETURN * -* End of DTRSM . +* End of DTRSM * END diff --git a/dspl/blas/src/dtrsv.f b/dspl/blas/src/dtrsv.f index 331f1d4..d8ea9fa 100644 --- a/dspl/blas/src/dtrsv.f +++ b/dspl/blas/src/dtrsv.f @@ -136,17 +136,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup double_blas_level1 * * ===================================================================== SUBROUTINE DTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level1 routine (version 3.7.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -333,6 +330,6 @@ * RETURN * -* End of DTRSV . +* End of DTRSV * END diff --git a/dspl/blas/src/dzasum.f b/dspl/blas/src/dzasum.f index f421018..7cc6ec5 100644 --- a/dspl/blas/src/dzasum.f +++ b/dspl/blas/src/dzasum.f @@ -24,7 +24,7 @@ *> \verbatim *> *> DZASUM takes the sum of the (|Re(.)| + |Im(.)|)'s of a complex vector and -*> returns a single precision result. +*> returns a double precision result. *> \endverbatim * * Arguments: @@ -55,8 +55,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup double_blas_level1 * *> \par Further Details: @@ -72,10 +70,9 @@ * ===================================================================== DOUBLE PRECISION FUNCTION DZASUM(N,ZX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -115,4 +112,7 @@ END IF DZASUM = STEMP RETURN +* +* End of DZASUM +* END diff --git a/dspl/blas/src/dznrm2.f b/dspl/blas/src/dznrm2.f deleted file mode 100644 index f868c16..0000000 --- a/dspl/blas/src/dznrm2.f +++ /dev/null @@ -1,140 +0,0 @@ -*> \brief \b DZNRM2 -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DZNRM2(N,X,INCX) -* -* .. Scalar Arguments .. -* INTEGER INCX,N -* .. -* .. Array Arguments .. -* COMPLEX*16 X(*) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DZNRM2 returns the euclidean norm of a vector via the function -*> name, so that -*> -*> DZNRM2 := sqrt( x**H*x ) -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> number of elements in input vector(s) -*> \endverbatim -*> -*> \param[in] X -*> \verbatim -*> X is COMPLEX*16 array, dimension (N) -*> complex vector with N elements -*> \endverbatim -*> -*> \param[in] INCX -*> \verbatim -*> INCX is INTEGER -*> storage spacing between elements of X -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup double_blas_level1 -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> -- This version written on 25-October-1982. -*> Modified on 14-October-1993 to inline the call to ZLASSQ. -*> Sven Hammarling, Nag Ltd. -*> \endverbatim -*> -* ===================================================================== - DOUBLE PRECISION FUNCTION DZNRM2(N,X,INCX) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - INTEGER INCX,N -* .. -* .. Array Arguments .. - COMPLEX*16 X(*) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE,ZERO - PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) -* .. -* .. Local Scalars .. - DOUBLE PRECISION NORM,SCALE,SSQ,TEMP - INTEGER IX -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS,DBLE,DIMAG,SQRT -* .. - IF (N.LT.1 .OR. INCX.LT.1) THEN - NORM = ZERO - ELSE - SCALE = ZERO - SSQ = ONE -* The following loop is equivalent to this call to the LAPACK -* auxiliary routine: -* CALL ZLASSQ( N, X, INCX, SCALE, SSQ ) -* - DO 10 IX = 1,1 + (N-1)*INCX,INCX - IF (DBLE(X(IX)).NE.ZERO) THEN - TEMP = ABS(DBLE(X(IX))) - IF (SCALE.LT.TEMP) THEN - SSQ = ONE + SSQ* (SCALE/TEMP)**2 - SCALE = TEMP - ELSE - SSQ = SSQ + (TEMP/SCALE)**2 - END IF - END IF - IF (DIMAG(X(IX)).NE.ZERO) THEN - TEMP = ABS(DIMAG(X(IX))) - IF (SCALE.LT.TEMP) THEN - SSQ = ONE + SSQ* (SCALE/TEMP)**2 - SCALE = TEMP - ELSE - SSQ = SSQ + (TEMP/SCALE)**2 - END IF - END IF - 10 CONTINUE - NORM = SCALE*SQRT(SSQ) - END IF -* - DZNRM2 = NORM - RETURN -* -* End of DZNRM2. -* - END diff --git a/dspl/blas/src/dznrm2.f90 b/dspl/blas/src/dznrm2.f90 new file mode 100644 index 0000000..ff158e5 --- /dev/null +++ b/dspl/blas/src/dznrm2.f90 @@ -0,0 +1,209 @@ +!> \brief \b DZNRM2 +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! DOUBLE PRECISION FUNCTION DZNRM2(N,X,INCX) +! +! .. Scalar Arguments .. +! INTEGER INCX,N +! .. +! .. Array Arguments .. +! DOUBLE COMPLEX X(*) +! .. +! +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> DZNRM2 returns the euclidean norm of a vector via the function +!> name, so that +!> +!> DZNRM2 := sqrt( x**H*x ) +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in] N +!> \verbatim +!> N is INTEGER +!> number of elements in input vector(s) +!> \endverbatim +!> +!> \param[in] X +!> \verbatim +!> X is COMPLEX*16 array, dimension (N) +!> complex vector with N elements +!> \endverbatim +!> +!> \param[in] INCX +!> \verbatim +!> INCX is INTEGER, storage spacing between elements of X +!> If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n +!> If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n +!> If INCX = 0, x isn't a vector so there is no need to call +!> this subroutine. If you call it anyway, it will count x(1) +!> in the vector norm N times. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \date August 2016 +! +!> \ingroup single_blas_level1 +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> Blue, James L. (1978) +!> A Portable Fortran Program to Find the Euclidean Norm of a Vector +!> ACM Trans Math Softw 4:15--23 +!> https://doi.org/10.1145/355769.355771 +!> +!> \endverbatim +!> +! ===================================================================== +function DZNRM2( n, x, incx ) + integer, parameter :: wp = kind(1.d0) + real(wp) :: DZNRM2 +! +! -- Reference BLAS level1 routine (version 3.9.1) -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! March 2021 +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp + real(wp), parameter :: maxN = huge(0.0_wp) +! .. +! .. Blue's ccaling constants .. + real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( & + (minexponent(0._wp) - 1) * 0.5_wp) + real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp) + real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( & + (minexponent(0._wp) - 1) * 0.5_wp)) + real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)) +! .. +! .. Scalar Arguments .. + integer :: incx, n +! .. +! .. Array Arguments .. + complex(wp) :: x(*) +! .. +! .. Local Scalars .. + integer :: i, ix + logical :: notbig + real(wp) :: abig, amed, asml, ax, scl, sumsq, ymax, ymin +! +! Quick return if possible +! + DZNRM2 = zero + if( n <= 0 ) return +! + scl = one + sumsq = zero +! +! Compute the sum of squares in 3 accumulators: +! abig -- sums of squares scaled down to avoid overflow +! asml -- sums of squares scaled up to avoid underflow +! amed -- sums of squares that do not require scaling +! The thresholds and multipliers are +! tbig -- values bigger than this are scaled down by sbig +! tsml -- values smaller than this are scaled up by ssml +! + notbig = .true. + asml = zero + amed = zero + abig = zero + ix = 1 + if( incx < 0 ) ix = 1 - (n-1)*incx + do i = 1, n + ax = abs(real(x(ix))) + if (ax > tbig) then + abig = abig + (ax*sbig)**2 + notbig = .false. + else if (ax < tsml) then + if (notbig) asml = asml + (ax*ssml)**2 + else + amed = amed + ax**2 + end if + ax = abs(aimag(x(ix))) + if (ax > tbig) then + abig = abig + (ax*sbig)**2 + notbig = .false. + else if (ax < tsml) then + if (notbig) asml = asml + (ax*ssml)**2 + else + amed = amed + ax**2 + end if + ix = ix + incx + end do +! +! Combine abig and amed or amed and asml if more than one +! accumulator was used. +! + if (abig > zero) then +! +! Combine abig and amed if abig > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + abig = abig + (amed*sbig)*sbig + end if + scl = one / sbig + sumsq = abig + else if (asml > zero) then +! +! Combine amed and asml if asml > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + amed = sqrt(amed) + asml = sqrt(asml) / ssml + if (asml > amed) then + ymin = amed + ymax = asml + else + ymin = asml + ymax = amed + end if + scl = one + sumsq = ymax**2*( one + (ymin/ymax)**2 ) + else + scl = one / ssml + sumsq = asml + end if + else +! +! Otherwise all values are mid-range +! + scl = one + sumsq = amed + end if + DZNRM2 = scl*sqrt( sumsq ) + return +end function diff --git a/dspl/blas/src/icamax.f b/dspl/blas/src/icamax.f index 8057ab0..c103cc8 100644 --- a/dspl/blas/src/icamax.f +++ b/dspl/blas/src/icamax.f @@ -43,7 +43,7 @@ *> \param[in] INCX *> \verbatim *> INCX is INTEGER -*> storage spacing between elements of SX +*> storage spacing between elements of CX *> \endverbatim * * Authors: @@ -54,8 +54,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup aux_blas * *> \par Further Details: @@ -71,10 +69,9 @@ * ===================================================================== INTEGER FUNCTION ICAMAX(N,CX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -124,4 +121,7 @@ END DO END IF RETURN +* +* End of ICAMAX +* END diff --git a/dspl/blas/src/idamax.f b/dspl/blas/src/idamax.f index 7268534..1be301e 100644 --- a/dspl/blas/src/idamax.f +++ b/dspl/blas/src/idamax.f @@ -43,7 +43,7 @@ *> \param[in] INCX *> \verbatim *> INCX is INTEGER -*> storage spacing between elements of SX +*> storage spacing between elements of DX *> \endverbatim * * Authors: @@ -54,8 +54,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup aux_blas * *> \par Further Details: @@ -71,10 +69,9 @@ * ===================================================================== INTEGER FUNCTION IDAMAX(N,DX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -123,4 +120,7 @@ END DO END IF RETURN +* +* End of IDAMAX +* END diff --git a/dspl/blas/src/isamax.f b/dspl/blas/src/isamax.f index 5aaa50e..8ad44ad 100644 --- a/dspl/blas/src/isamax.f +++ b/dspl/blas/src/isamax.f @@ -54,8 +54,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup aux_blas * *> \par Further Details: @@ -71,10 +69,9 @@ * ===================================================================== INTEGER FUNCTION ISAMAX(N,SX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -123,4 +120,7 @@ END DO END IF RETURN +* +* End of ISAMAX +* END diff --git a/dspl/blas/src/izamax.f b/dspl/blas/src/izamax.f index 63d8e97..e4779a1 100644 --- a/dspl/blas/src/izamax.f +++ b/dspl/blas/src/izamax.f @@ -43,7 +43,7 @@ *> \param[in] INCX *> \verbatim *> INCX is INTEGER -*> storage spacing between elements of SX +*> storage spacing between elements of ZX *> \endverbatim * * Authors: @@ -54,8 +54,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup aux_blas * *> \par Further Details: @@ -71,10 +69,9 @@ * ===================================================================== INTEGER FUNCTION IZAMAX(N,ZX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -124,4 +121,7 @@ END DO END IF RETURN +* +* End of IZAMAX +* END diff --git a/dspl/blas/src/lsame.f b/dspl/blas/src/lsame.f index d819478..6aa4007 100644 --- a/dspl/blas/src/lsame.f +++ b/dspl/blas/src/lsame.f @@ -46,17 +46,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup aux_blas * * ===================================================================== LOGICAL FUNCTION LSAME(CA,CB) * -* -- Reference BLAS level1 routine (version 3.1) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. CHARACTER CA,CB diff --git a/dspl/blas/src/sasum.f b/dspl/blas/src/sasum.f index ba36382..6c2e0c9 100644 --- a/dspl/blas/src/sasum.f +++ b/dspl/blas/src/sasum.f @@ -55,8 +55,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -72,10 +70,9 @@ * ===================================================================== REAL FUNCTION SASUM(N,SX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -129,4 +126,7 @@ END IF SASUM = STEMP RETURN +* +* End of SASUM +* END diff --git a/dspl/blas/src/saxpy.f b/dspl/blas/src/saxpy.f index bf49818..ded238a 100644 --- a/dspl/blas/src/saxpy.f +++ b/dspl/blas/src/saxpy.f @@ -73,8 +73,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -89,10 +87,9 @@ * ===================================================================== SUBROUTINE SAXPY(N,SA,SX,INCX,SY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. REAL SA @@ -149,4 +146,7 @@ END DO END IF RETURN +* +* End of SAXPY +* END diff --git a/dspl/blas/src/scabs1.f b/dspl/blas/src/scabs1.f index 2303641..9bacf09 100644 --- a/dspl/blas/src/scabs1.f +++ b/dspl/blas/src/scabs1.f @@ -39,17 +39,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * * ===================================================================== REAL FUNCTION SCABS1(Z) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. COMPLEX Z @@ -62,4 +59,7 @@ * .. SCABS1 = ABS(REAL(Z)) + ABS(AIMAG(Z)) RETURN +* +* End of SCABS1 +* END diff --git a/dspl/blas/src/scasum.f b/dspl/blas/src/scasum.f index 738b2ef..8fd67e9 100644 --- a/dspl/blas/src/scasum.f +++ b/dspl/blas/src/scasum.f @@ -55,8 +55,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -72,10 +70,9 @@ * ===================================================================== REAL FUNCTION SCASUM(N,CX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,N @@ -114,4 +111,7 @@ END IF SCASUM = STEMP RETURN +* +* End of SCASUM +* END diff --git a/dspl/blas/src/scnrm2.f b/dspl/blas/src/scnrm2.f deleted file mode 100644 index 9fd7c66..0000000 --- a/dspl/blas/src/scnrm2.f +++ /dev/null @@ -1,140 +0,0 @@ -*> \brief \b SCNRM2 -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SCNRM2(N,X,INCX) -* -* .. Scalar Arguments .. -* INTEGER INCX,N -* .. -* .. Array Arguments .. -* COMPLEX X(*) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SCNRM2 returns the euclidean norm of a vector via the function -*> name, so that -*> -*> SCNRM2 := sqrt( x**H*x ) -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> number of elements in input vector(s) -*> \endverbatim -*> -*> \param[in] X -*> \verbatim -*> X is COMPLEX array, dimension (N) -*> complex vector with N elements -*> \endverbatim -*> -*> \param[in] INCX -*> \verbatim -*> INCX is INTEGER -*> storage spacing between elements of X -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup single_blas_level1 -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> -- This version written on 25-October-1982. -*> Modified on 14-October-1993 to inline the call to CLASSQ. -*> Sven Hammarling, Nag Ltd. -*> \endverbatim -*> -* ===================================================================== - REAL FUNCTION SCNRM2(N,X,INCX) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - INTEGER INCX,N -* .. -* .. Array Arguments .. - COMPLEX X(*) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE,ZERO - PARAMETER (ONE=1.0E+0,ZERO=0.0E+0) -* .. -* .. Local Scalars .. - REAL NORM,SCALE,SSQ,TEMP - INTEGER IX -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS,AIMAG,REAL,SQRT -* .. - IF (N.LT.1 .OR. INCX.LT.1) THEN - NORM = ZERO - ELSE - SCALE = ZERO - SSQ = ONE -* The following loop is equivalent to this call to the LAPACK -* auxiliary routine: -* CALL CLASSQ( N, X, INCX, SCALE, SSQ ) -* - DO 10 IX = 1,1 + (N-1)*INCX,INCX - IF (REAL(X(IX)).NE.ZERO) THEN - TEMP = ABS(REAL(X(IX))) - IF (SCALE.LT.TEMP) THEN - SSQ = ONE + SSQ* (SCALE/TEMP)**2 - SCALE = TEMP - ELSE - SSQ = SSQ + (TEMP/SCALE)**2 - END IF - END IF - IF (AIMAG(X(IX)).NE.ZERO) THEN - TEMP = ABS(AIMAG(X(IX))) - IF (SCALE.LT.TEMP) THEN - SSQ = ONE + SSQ* (SCALE/TEMP)**2 - SCALE = TEMP - ELSE - SSQ = SSQ + (TEMP/SCALE)**2 - END IF - END IF - 10 CONTINUE - NORM = SCALE*SQRT(SSQ) - END IF -* - SCNRM2 = NORM - RETURN -* -* End of SCNRM2. -* - END diff --git a/dspl/blas/src/scnrm2.f90 b/dspl/blas/src/scnrm2.f90 new file mode 100644 index 0000000..2b282d4 --- /dev/null +++ b/dspl/blas/src/scnrm2.f90 @@ -0,0 +1,209 @@ +!> \brief \b SCNRM2 +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! REAL FUNCTION SCNRM2(N,X,INCX) +! +! .. Scalar Arguments .. +! INTEGER INCX,N +! .. +! .. Array Arguments .. +! COMPLEX X(*) +! .. +! +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> SCNRM2 returns the euclidean norm of a vector via the function +!> name, so that +!> +!> SCNRM2 := sqrt( x**H*x ) +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in] N +!> \verbatim +!> N is INTEGER +!> number of elements in input vector(s) +!> \endverbatim +!> +!> \param[in] X +!> \verbatim +!> X is COMPLEX array, dimension (N) +!> complex vector with N elements +!> \endverbatim +!> +!> \param[in] INCX +!> \verbatim +!> INCX is INTEGER, storage spacing between elements of X +!> If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n +!> If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n +!> If INCX = 0, x isn't a vector so there is no need to call +!> this subroutine. If you call it anyway, it will count x(1) +!> in the vector norm N times. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \date August 2016 +! +!> \ingroup single_blas_level1 +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> Blue, James L. (1978) +!> A Portable Fortran Program to Find the Euclidean Norm of a Vector +!> ACM Trans Math Softw 4:15--23 +!> https://doi.org/10.1145/355769.355771 +!> +!> \endverbatim +!> +! ===================================================================== +function SCNRM2( n, x, incx ) + integer, parameter :: wp = kind(1.e0) + real(wp) :: SCNRM2 +! +! -- Reference BLAS level1 routine (version 3.9.1) -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! March 2021 +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp + real(wp), parameter :: maxN = huge(0.0_wp) +! .. +! .. Blue's ccaling constants .. + real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( & + (minexponent(0._wp) - 1) * 0.5_wp) + real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp) + real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( & + (minexponent(0._wp) - 1) * 0.5_wp)) + real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)) +! .. +! .. Scalar Arguments .. + integer :: incx, n +! .. +! .. Array Arguments .. + complex(wp) :: x(*) +! .. +! .. Local Scalars .. + integer :: i, ix + logical :: notbig + real(wp) :: abig, amed, asml, ax, scl, sumsq, ymax, ymin +! +! Quick return if possible +! + SCNRM2 = zero + if( n <= 0 ) return +! + scl = one + sumsq = zero +! +! Compute the sum of squares in 3 accumulators: +! abig -- sums of squares scaled down to avoid overflow +! asml -- sums of squares scaled up to avoid underflow +! amed -- sums of squares that do not require scaling +! The thresholds and multipliers are +! tbig -- values bigger than this are scaled down by sbig +! tsml -- values smaller than this are scaled up by ssml +! + notbig = .true. + asml = zero + amed = zero + abig = zero + ix = 1 + if( incx < 0 ) ix = 1 - (n-1)*incx + do i = 1, n + ax = abs(real(x(ix))) + if (ax > tbig) then + abig = abig + (ax*sbig)**2 + notbig = .false. + else if (ax < tsml) then + if (notbig) asml = asml + (ax*ssml)**2 + else + amed = amed + ax**2 + end if + ax = abs(aimag(x(ix))) + if (ax > tbig) then + abig = abig + (ax*sbig)**2 + notbig = .false. + else if (ax < tsml) then + if (notbig) asml = asml + (ax*ssml)**2 + else + amed = amed + ax**2 + end if + ix = ix + incx + end do +! +! Combine abig and amed or amed and asml if more than one +! accumulator was used. +! + if (abig > zero) then +! +! Combine abig and amed if abig > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + abig = abig + (amed*sbig)*sbig + end if + scl = one / sbig + sumsq = abig + else if (asml > zero) then +! +! Combine amed and asml if asml > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + amed = sqrt(amed) + asml = sqrt(asml) / ssml + if (asml > amed) then + ymin = amed + ymax = asml + else + ymin = asml + ymax = amed + end if + scl = one + sumsq = ymax**2*( one + (ymin/ymax)**2 ) + else + scl = one / ssml + sumsq = asml + end if + else +! +! Otherwise all values are mid-range +! + scl = one + sumsq = amed + end if + SCNRM2 = scl*sqrt( sumsq ) + return +end function diff --git a/dspl/blas/src/scopy.f b/dspl/blas/src/scopy.f index 8406ba5..961025c 100644 --- a/dspl/blas/src/scopy.f +++ b/dspl/blas/src/scopy.f @@ -66,8 +66,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -82,10 +80,9 @@ * ===================================================================== SUBROUTINE SCOPY(N,SX,INCX,SY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -143,4 +140,7 @@ END DO END IF RETURN +* +* End of SCOPY +* END diff --git a/dspl/blas/src/sdot.f b/dspl/blas/src/sdot.f index 3d26f83..ed7213e 100644 --- a/dspl/blas/src/sdot.f +++ b/dspl/blas/src/sdot.f @@ -66,8 +66,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -82,10 +80,9 @@ * ===================================================================== REAL FUNCTION SDOT(N,SX,INCX,SY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -145,4 +142,7 @@ END IF SDOT = STEMP RETURN +* +* End of SDOT +* END diff --git a/dspl/blas/src/sdsdot.f b/dspl/blas/src/sdsdot.f index a0ec32b..62e2bdd 100644 --- a/dspl/blas/src/sdsdot.f +++ b/dspl/blas/src/sdsdot.f @@ -23,13 +23,13 @@ *> *> \verbatim *> -* Compute the inner product of two vectors with extended -* precision accumulation. -* -* Returns S.P. result with dot product accumulated in D.P. -* SDSDOT = SB + sum for I = 0 to N-1 of SX(LX+I*INCX)*SY(LY+I*INCY), -* where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is -* defined in a similar way using INCY. +*> Compute the inner product of two vectors with extended +*> precision accumulation. +*> +*> Returns S.P. result with dot product accumulated in D.P. +*> SDSDOT = SB + sum for I = 0 to N-1 of SX(LX+I*INCX)*SY(LY+I*INCY), +*> where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is +*> defined in a similar way using INCY. *> \endverbatim * * Arguments: @@ -77,7 +77,12 @@ *> \author Lawson, C. L., (JPL), Hanson, R. J., (SNLA), *> \author Kincaid, D. R., (U. of Texas), Krogh, F. T., (JPL) * -*> \ingroup complex_blas_level1 +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup single_blas_level1 * *> \par Further Details: * ===================== @@ -102,72 +107,13 @@ *> 920501 Reformatted the REFERENCES section. (WRB) *> 070118 Reformat to LAPACK coding style *> \endverbatim -* -* ===================================================================== -* -* .. Local Scalars .. -* DOUBLE PRECISION DSDOT -* INTEGER I,KX,KY,NS -* .. -* .. Intrinsic Functions .. -* INTRINSIC DBLE -* .. -* DSDOT = SB -* IF (N.LE.0) THEN -* SDSDOT = DSDOT -* RETURN -* END IF -* IF (INCX.EQ.INCY .AND. INCX.GT.0) THEN -* -* Code for equal and positive increments. -* -* NS = N*INCX -* DO I = 1,NS,INCX -* DSDOT = DSDOT + DBLE(SX(I))*DBLE(SY(I)) -* END DO -* ELSE -* -* Code for unequal or nonpositive increments. -* -* KX = 1 -* KY = 1 -* IF (INCX.LT.0) KX = 1 + (1-N)*INCX -* IF (INCY.LT.0) KY = 1 + (1-N)*INCY -* DO I = 1,N -* DSDOT = DSDOT + DBLE(SX(KX))*DBLE(SY(KY)) -* KX = KX + INCX -* KY = KY + INCY -* END DO -* END IF -* SDSDOT = DSDOT -* RETURN -* END -* -*> \par Purpose: -* ============= *> -*> \verbatim -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup single_blas_level1 -* * ===================================================================== REAL FUNCTION SDSDOT(N,SB,SX,INCX,SY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. REAL SB @@ -175,71 +121,6 @@ * .. * .. Array Arguments .. REAL SX(*),SY(*) -* .. -* -* PURPOSE -* ======= -* -* Compute the inner product of two vectors with extended -* precision accumulation. -* -* Returns S.P. result with dot product accumulated in D.P. -* SDSDOT = SB + sum for I = 0 to N-1 of SX(LX+I*INCX)*SY(LY+I*INCY), -* where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is -* defined in a similar way using INCY. -* -* AUTHOR -* ====== -* Lawson, C. L., (JPL), Hanson, R. J., (SNLA), -* Kincaid, D. R., (U. of Texas), Krogh, F. T., (JPL) -* -* ARGUMENTS -* ========= -* -* N (input) INTEGER -* number of elements in input vector(s) -* -* SB (input) REAL -* single precision scalar to be added to inner product -* -* SX (input) REAL array, dimension (N) -* single precision vector with N elements -* -* INCX (input) INTEGER -* storage spacing between elements of SX -* -* SY (input) REAL array, dimension (N) -* single precision vector with N elements -* -* INCY (input) INTEGER -* storage spacing between elements of SY -* -* SDSDOT (output) REAL -* single precision dot product (SB if N .LE. 0) -* -* Further Details -* =============== -* -* REFERENCES -* -* C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T. -* Krogh, Basic linear algebra subprograms for Fortran -* usage, Algorithm No. 539, Transactions on Mathematical -* Software 5, 3 (September 1979), pp. 308-323. -* -* REVISION HISTORY (YYMMDD) -* -* 791001 DATE WRITTEN -* 890531 Changed all specific intrinsics to generic. (WRB) -* 890831 Modified array declarations. (WRB) -* 890831 REVISION DATE from Version 3.2 -* 891214 Prologue converted to Version 4.0 format. (BAB) -* 920310 Corrected definition of LX in DESCRIPTION. (WRB) -* 920501 Reformatted the REFERENCES section. (WRB) -* 070118 Reformat to LAPACK coding style -* -* ===================================================================== -* * .. Local Scalars .. DOUBLE PRECISION DSDOT INTEGER I,KX,KY,NS @@ -276,4 +157,7 @@ END IF SDSDOT = DSDOT RETURN +* +* End of SDSDOT +* END diff --git a/dspl/blas/src/sgbmv.f b/dspl/blas/src/sgbmv.f index df13b58..b5211ee 100644 --- a/dspl/blas/src/sgbmv.f +++ b/dspl/blas/src/sgbmv.f @@ -163,8 +163,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -185,10 +183,9 @@ * ===================================================================== SUBROUTINE SGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -365,6 +362,6 @@ * RETURN * -* End of SGBMV . +* End of SGBMV * END diff --git a/dspl/blas/src/sgemm.f b/dspl/blas/src/sgemm.f index ca2fb17..d25a152 100644 --- a/dspl/blas/src/sgemm.f +++ b/dspl/blas/src/sgemm.f @@ -166,8 +166,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level3 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE SGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -215,7 +212,7 @@ * .. * .. Local Scalars .. REAL TEMP - INTEGER I,INFO,J,L,NCOLA,NROWA,NROWB + INTEGER I,INFO,J,L,NROWA,NROWB LOGICAL NOTA,NOTB * .. * .. Parameters .. @@ -224,17 +221,15 @@ * .. * * Set NOTA and NOTB as true if A and B respectively are not -* transposed and set NROWA, NCOLA and NROWB as the number of rows -* and columns of A and the number of rows of B respectively. +* transposed and set NROWA and NROWB as the number of rows of A +* and B respectively. * NOTA = LSAME(TRANSA,'N') NOTB = LSAME(TRANSB,'N') IF (NOTA) THEN NROWA = M - NCOLA = K ELSE NROWA = K - NCOLA = M END IF IF (NOTB) THEN NROWB = K @@ -379,6 +374,6 @@ * RETURN * -* End of SGEMM . +* End of SGEMM * END diff --git a/dspl/blas/src/sgemv.f b/dspl/blas/src/sgemv.f index a769138..0517b12 100644 --- a/dspl/blas/src/sgemv.f +++ b/dspl/blas/src/sgemv.f @@ -134,8 +134,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -156,10 +154,9 @@ * ===================================================================== SUBROUTINE SGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -325,6 +322,6 @@ * RETURN * -* End of SGEMV . +* End of SGEMV * END diff --git a/dspl/blas/src/sger.f b/dspl/blas/src/sger.f index 7dbff21..9dfe4a2 100644 --- a/dspl/blas/src/sger.f +++ b/dspl/blas/src/sger.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE SGER(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -222,6 +219,6 @@ * RETURN * -* End of SGER . +* End of SGER * END diff --git a/dspl/blas/src/snrm2.f b/dspl/blas/src/snrm2.f deleted file mode 100644 index b8799f1..0000000 --- a/dspl/blas/src/snrm2.f +++ /dev/null @@ -1,132 +0,0 @@ -*> \brief \b SNRM2 -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SNRM2(N,X,INCX) -* -* .. Scalar Arguments .. -* INTEGER INCX,N -* .. -* .. Array Arguments .. -* REAL X(*) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SNRM2 returns the euclidean norm of a vector via the function -*> name, so that -*> -*> SNRM2 := sqrt( x'*x ). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> number of elements in input vector(s) -*> \endverbatim -*> -*> \param[in] X -*> \verbatim -*> X is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) -*> \endverbatim -*> -*> \param[in] INCX -*> \verbatim -*> INCX is INTEGER -*> storage spacing between elements of SX -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup single_blas_level1 -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> -- This version written on 25-October-1982. -*> Modified on 14-October-1993 to inline the call to SLASSQ. -*> Sven Hammarling, Nag Ltd. -*> \endverbatim -*> -* ===================================================================== - REAL FUNCTION SNRM2(N,X,INCX) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - INTEGER INCX,N -* .. -* .. Array Arguments .. - REAL X(*) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE,ZERO - PARAMETER (ONE=1.0E+0,ZERO=0.0E+0) -* .. -* .. Local Scalars .. - REAL ABSXI,NORM,SCALE,SSQ - INTEGER IX -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS,SQRT -* .. - IF (N.LT.1 .OR. INCX.LT.1) THEN - NORM = ZERO - ELSE IF (N.EQ.1) THEN - NORM = ABS(X(1)) - ELSE - SCALE = ZERO - SSQ = ONE -* The following loop is equivalent to this call to the LAPACK -* auxiliary routine: -* CALL SLASSQ( N, X, INCX, SCALE, SSQ ) -* - DO 10 IX = 1,1 + (N-1)*INCX,INCX - IF (X(IX).NE.ZERO) THEN - ABSXI = ABS(X(IX)) - IF (SCALE.LT.ABSXI) THEN - SSQ = ONE + SSQ* (SCALE/ABSXI)**2 - SCALE = ABSXI - ELSE - SSQ = SSQ + (ABSXI/SCALE)**2 - END IF - END IF - 10 CONTINUE - NORM = SCALE*SQRT(SSQ) - END IF -* - SNRM2 = NORM - RETURN -* -* End of SNRM2. -* - END diff --git a/dspl/blas/src/snrm2.f90 b/dspl/blas/src/snrm2.f90 new file mode 100644 index 0000000..2404ff0 --- /dev/null +++ b/dspl/blas/src/snrm2.f90 @@ -0,0 +1,199 @@ +!> \brief \b SNRM2 +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! REAL FUNCTION SNRM2(N,X,INCX) +! +! .. Scalar Arguments .. +! INTEGER INCX,N +! .. +! .. Array Arguments .. +! REAL X(*) +! .. +! +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> SNRM2 returns the euclidean norm of a vector via the function +!> name, so that +!> +!> SNRM2 := sqrt( x'*x ). +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in] N +!> \verbatim +!> N is INTEGER +!> number of elements in input vector(s) +!> \endverbatim +!> +!> \param[in] X +!> \verbatim +!> X is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) +!> \endverbatim +!> +!> \param[in] INCX +!> \verbatim +!> INCX is INTEGER, storage spacing between elements of X +!> If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n +!> If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n +!> If INCX = 0, x isn't a vector so there is no need to call +!> this subroutine. If you call it anyway, it will count x(1) +!> in the vector norm N times. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \date August 2016 +! +!> \ingroup single_blas_level1 +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> Blue, James L. (1978) +!> A Portable Fortran Program to Find the Euclidean Norm of a Vector +!> ACM Trans Math Softw 4:15--23 +!> https://doi.org/10.1145/355769.355771 +!> +!> \endverbatim +!> +! ===================================================================== +function SNRM2( n, x, incx ) + integer, parameter :: wp = kind(1.e0) + real(wp) :: SNRM2 +! +! -- Reference BLAS level1 routine (version 3.9.1) -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! March 2021 +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp + real(wp), parameter :: maxN = huge(0.0_wp) +! .. +! .. Blue's ccaling constants .. + real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( & + (minexponent(0._wp) - 1) * 0.5_wp) + real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp) + real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( & + (minexponent(0._wp) - 1) * 0.5_wp)) + real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( & + (maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)) +! .. +! .. Scalar Arguments .. + integer :: incx, n +! .. +! .. Array Arguments .. + real(wp) :: x(*) +! .. +! .. Local Scalars .. + integer :: i, ix + logical :: notbig + real(wp) :: abig, amed, asml, ax, scl, sumsq, ymax, ymin +! +! Quick return if possible +! + SNRM2 = zero + if( n <= 0 ) return +! + scl = one + sumsq = zero +! +! Compute the sum of squares in 3 accumulators: +! abig -- sums of squares scaled down to avoid overflow +! asml -- sums of squares scaled up to avoid underflow +! amed -- sums of squares that do not require scaling +! The thresholds and multipliers are +! tbig -- values bigger than this are scaled down by sbig +! tsml -- values smaller than this are scaled up by ssml +! + notbig = .true. + asml = zero + amed = zero + abig = zero + ix = 1 + if( incx < 0 ) ix = 1 - (n-1)*incx + do i = 1, n + ax = abs(x(ix)) + if (ax > tbig) then + abig = abig + (ax*sbig)**2 + notbig = .false. + else if (ax < tsml) then + if (notbig) asml = asml + (ax*ssml)**2 + else + amed = amed + ax**2 + end if + ix = ix + incx + end do +! +! Combine abig and amed or amed and asml if more than one +! accumulator was used. +! + if (abig > zero) then +! +! Combine abig and amed if abig > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + abig = abig + (amed*sbig)*sbig + end if + scl = one / sbig + sumsq = abig + else if (asml > zero) then +! +! Combine amed and asml if asml > 0. +! + if ( (amed > zero) .or. (amed > maxN) .or. (amed /= amed) ) then + amed = sqrt(amed) + asml = sqrt(asml) / ssml + if (asml > amed) then + ymin = amed + ymax = asml + else + ymin = asml + ymax = amed + end if + scl = one + sumsq = ymax**2*( one + (ymin/ymax)**2 ) + else + scl = one / ssml + sumsq = asml + end if + else +! +! Otherwise all values are mid-range +! + scl = one + sumsq = amed + end if + SNRM2 = scl*sqrt( sumsq ) + return +end function diff --git a/dspl/blas/src/srot.f b/dspl/blas/src/srot.f index 22c1b8b..1441e0d 100644 --- a/dspl/blas/src/srot.f +++ b/dspl/blas/src/srot.f @@ -76,8 +76,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -92,10 +90,9 @@ * ===================================================================== SUBROUTINE SROT(N,SX,INCX,SY,INCY,C,S) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. REAL C,S @@ -139,4 +136,7 @@ END DO END IF RETURN +* +* End of SROT +* END diff --git a/dspl/blas/src/srotg.f b/dspl/blas/src/srotg.f deleted file mode 100644 index 1e2dba2..0000000 --- a/dspl/blas/src/srotg.f +++ /dev/null @@ -1,109 +0,0 @@ -*> \brief \b SROTG -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SROTG(SA,SB,C,S) -* -* .. Scalar Arguments .. -* REAL C,S,SA,SB -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SROTG construct givens plane rotation. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] SA -*> \verbatim -*> SA is REAL -*> \endverbatim -*> -*> \param[in] SB -*> \verbatim -*> SB is REAL -*> \endverbatim -*> -*> \param[out] C -*> \verbatim -*> C is REAL -*> \endverbatim -*> -*> \param[out] S -*> \verbatim -*> S is REAL -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup single_blas_level1 -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> jack dongarra, linpack, 3/11/78. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE SROTG(SA,SB,C,S) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - REAL C,S,SA,SB -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - REAL R,ROE,SCALE,Z -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS,SIGN,SQRT -* .. - ROE = SB - IF (ABS(SA).GT.ABS(SB)) ROE = SA - SCALE = ABS(SA) + ABS(SB) - IF (SCALE.EQ.0.0) THEN - C = 1.0 - S = 0.0 - R = 0.0 - Z = 0.0 - ELSE - R = SCALE*SQRT((SA/SCALE)**2+ (SB/SCALE)**2) - R = SIGN(1.0,ROE)*R - C = SA/R - S = SB/R - Z = 1.0 - IF (ABS(SA).GT.ABS(SB)) Z = S - IF (ABS(SB).GE.ABS(SA) .AND. C.NE.0.0) Z = 1.0/C - END IF - SA = R - SB = Z - RETURN - END diff --git a/dspl/blas/src/srotg.f90 b/dspl/blas/src/srotg.f90 new file mode 100644 index 0000000..af1bece --- /dev/null +++ b/dspl/blas/src/srotg.f90 @@ -0,0 +1,151 @@ +!> \brief \b SROTG +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! SROTG constructs a plane rotation +! [ c s ] [ a ] = [ r ] +! [ -s c ] [ b ] [ 0 ] +! satisfying c**2 + s**2 = 1. +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> The computation uses the formulas +!> sigma = sgn(a) if |a| > |b| +!> = sgn(b) if |b| >= |a| +!> r = sigma*sqrt( a**2 + b**2 ) +!> c = 1; s = 0 if r = 0 +!> c = a/r; s = b/r if r != 0 +!> The subroutine also computes +!> z = s if |a| > |b|, +!> = 1/c if |b| >= |a| and c != 0 +!> = 1 if c = 0 +!> This allows c and s to be reconstructed from z as follows: +!> If z = 1, set c = 0, s = 1. +!> If |z| < 1, set c = sqrt(1 - z**2) and s = z. +!> If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2). +!> +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in,out] A +!> \verbatim +!> A is REAL +!> On entry, the scalar a. +!> On exit, the scalar r. +!> \endverbatim +!> +!> \param[in,out] B +!> \verbatim +!> B is REAL +!> On entry, the scalar b. +!> On exit, the scalar z. +!> \endverbatim +!> +!> \param[out] C +!> \verbatim +!> C is REAL +!> The scalar c. +!> \endverbatim +!> +!> \param[out] S +!> \verbatim +!> S is REAL +!> The scalar s. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \ingroup single_blas_level1 +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> \endverbatim +! +! ===================================================================== +subroutine SROTG( a, b, c, s ) + integer, parameter :: wp = kind(1.e0) +! +! -- Reference BLAS level1 routine -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp +! .. +! .. Scaling constants .. + real(wp), parameter :: safmin = real(radix(0._wp),wp)**max( & + minexponent(0._wp)-1, & + 1-maxexponent(0._wp) & + ) + real(wp), parameter :: safmax = real(radix(0._wp),wp)**max( & + 1-minexponent(0._wp), & + maxexponent(0._wp)-1 & + ) +! .. +! .. Scalar Arguments .. + real(wp) :: a, b, c, s +! .. +! .. Local Scalars .. + real(wp) :: anorm, bnorm, scl, sigma, r, z +! .. + anorm = abs(a) + bnorm = abs(b) + if( bnorm == zero ) then + c = one + s = zero + b = zero + else if( anorm == zero ) then + c = zero + s = one + a = b + b = one + else + scl = min( safmax, max( safmin, anorm, bnorm ) ) + if( anorm > bnorm ) then + sigma = sign(one,a) + else + sigma = sign(one,b) + end if + r = sigma*( scl*sqrt((a/scl)**2 + (b/scl)**2) ) + c = a/r + s = b/r + if( anorm > bnorm ) then + z = s + else if( c /= zero ) then + z = one/c + else + z = one + end if + a = r + b = z + end if + return +end subroutine diff --git a/dspl/blas/src/srotm.f b/dspl/blas/src/srotm.f index 99e0281..a20cfd9 100644 --- a/dspl/blas/src/srotm.f +++ b/dspl/blas/src/srotm.f @@ -90,17 +90,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * * ===================================================================== SUBROUTINE SROTM(N,SX,INCX,SY,INCY,SPARAM) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -198,4 +195,7 @@ END IF END IF RETURN +* +* End of SROTM +* END diff --git a/dspl/blas/src/srotmg.f b/dspl/blas/src/srotmg.f index 7e7a2c5..63d55dd 100644 --- a/dspl/blas/src/srotmg.f +++ b/dspl/blas/src/srotmg.f @@ -83,17 +83,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * * ===================================================================== SUBROUTINE SROTMG(SD1,SD2,SX1,SY1,SPARAM) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. REAL SD1,SD2,SX1,SY1 @@ -152,6 +149,19 @@ SD1 = SD1/SU SD2 = SD2/SU SX1 = SX1*SU + ELSE +* This code path if here for safety. We do not expect this +* condition to ever hold except in edge cases with rounding +* errors. See DOI: 10.1145/355841.355847 + SFLAG = -ONE + SH11 = ZERO + SH12 = ZERO + SH21 = ZERO + SH22 = ZERO +* + SD1 = ZERO + SD2 = ZERO + SX1 = ZERO END IF ELSE @@ -178,7 +188,7 @@ END IF END IF -* PROCESURE..SCALE-CHECK +* PROCEDURE..SCALE-CHECK IF (SD1.NE.ZERO) THEN DO WHILE ((SD1.LE.RGAMSQ) .OR. (SD1.GE.GAMSQ)) IF (SFLAG.EQ.ZERO) THEN @@ -244,8 +254,7 @@ SPARAM(1) = SFLAG RETURN +* +* End of SROTMG +* END - - - - diff --git a/dspl/blas/src/ssbmv.f b/dspl/blas/src/ssbmv.f index f0e2100..c458131 100644 --- a/dspl/blas/src/ssbmv.f +++ b/dspl/blas/src/ssbmv.f @@ -162,8 +162,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -184,10 +182,9 @@ * ===================================================================== SUBROUTINE SSBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -370,6 +367,6 @@ * RETURN * -* End of SSBMV . +* End of SSBMV * END diff --git a/dspl/blas/src/sscal.f b/dspl/blas/src/sscal.f index 14d7021..7d52c42 100644 --- a/dspl/blas/src/sscal.f +++ b/dspl/blas/src/sscal.f @@ -62,8 +62,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -79,10 +77,9 @@ * ===================================================================== SUBROUTINE SSCAL(N,SA,SX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. REAL SA @@ -133,4 +130,7 @@ END DO END IF RETURN +* +* End of SSCAL +* END diff --git a/dspl/blas/src/sspmv.f b/dspl/blas/src/sspmv.f index 39fe277..840fd5c 100644 --- a/dspl/blas/src/sspmv.f +++ b/dspl/blas/src/sspmv.f @@ -125,8 +125,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE SSPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -326,6 +323,6 @@ * RETURN * -* End of SSPMV . +* End of SSPMV * END diff --git a/dspl/blas/src/sspr.f b/dspl/blas/src/sspr.f index 79df3c2..ab24d3f 100644 --- a/dspl/blas/src/sspr.f +++ b/dspl/blas/src/sspr.f @@ -106,8 +106,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -127,10 +125,9 @@ * ===================================================================== SUBROUTINE SSPR(UPLO,N,ALPHA,X,INCX,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -256,6 +253,6 @@ * RETURN * -* End of SSPR . +* End of SSPR * END diff --git a/dspl/blas/src/sspr2.f b/dspl/blas/src/sspr2.f index da33c6c..1107a8c 100644 --- a/dspl/blas/src/sspr2.f +++ b/dspl/blas/src/sspr2.f @@ -121,8 +121,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -142,10 +140,9 @@ * ===================================================================== SUBROUTINE SSPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -291,6 +288,6 @@ * RETURN * -* End of SSPR2 . +* End of SSPR2 * END diff --git a/dspl/blas/src/sswap.f b/dspl/blas/src/sswap.f index fee7df2..1a0fd9a 100644 --- a/dspl/blas/src/sswap.f +++ b/dspl/blas/src/sswap.f @@ -66,8 +66,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup single_blas_level1 * *> \par Further Details: @@ -82,10 +80,9 @@ * ===================================================================== SUBROUTINE SSWAP(N,SX,INCX,SY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -150,4 +147,7 @@ END DO END IF RETURN +* +* End of SSWAP +* END diff --git a/dspl/blas/src/ssymm.f b/dspl/blas/src/ssymm.f index 6263c17..3147bd6 100644 --- a/dspl/blas/src/ssymm.f +++ b/dspl/blas/src/ssymm.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level3 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE SSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -362,6 +359,6 @@ * RETURN * -* End of SSYMM . +* End of SSYMM * END diff --git a/dspl/blas/src/ssymv.f b/dspl/blas/src/ssymv.f index d3c4c38..9111798 100644 --- a/dspl/blas/src/ssymv.f +++ b/dspl/blas/src/ssymv.f @@ -130,8 +130,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -152,10 +150,9 @@ * ===================================================================== SUBROUTINE SSYMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -328,6 +325,6 @@ * RETURN * -* End of SSYMV . +* End of SSYMV * END diff --git a/dspl/blas/src/ssyr.f b/dspl/blas/src/ssyr.f index bdc3944..51164c5 100644 --- a/dspl/blas/src/ssyr.f +++ b/dspl/blas/src/ssyr.f @@ -111,8 +111,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -132,10 +130,9 @@ * ===================================================================== SUBROUTINE SSYR(UPLO,N,ALPHA,X,INCX,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -258,6 +255,6 @@ * RETURN * -* End of SSYR . +* End of SSYR * END diff --git a/dspl/blas/src/ssyr2.f b/dspl/blas/src/ssyr2.f index d2dcf8d..1dc73ee 100644 --- a/dspl/blas/src/ssyr2.f +++ b/dspl/blas/src/ssyr2.f @@ -126,8 +126,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE SSYR2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -293,6 +290,6 @@ * RETURN * -* End of SSYR2 . +* End of SSYR2 * END diff --git a/dspl/blas/src/ssyr2k.f b/dspl/blas/src/ssyr2k.f index b271fdc..1bb5aa4 100644 --- a/dspl/blas/src/ssyr2k.f +++ b/dspl/blas/src/ssyr2k.f @@ -170,8 +170,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level3 * *> \par Further Details: @@ -192,10 +190,9 @@ * ===================================================================== SUBROUTINE SSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -394,6 +391,6 @@ * RETURN * -* End of SSYR2K. +* End of SSYR2K * END diff --git a/dspl/blas/src/ssyrk.f b/dspl/blas/src/ssyrk.f index abaddf9..faca01b 100644 --- a/dspl/blas/src/ssyrk.f +++ b/dspl/blas/src/ssyrk.f @@ -148,8 +148,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level3 * *> \par Further Details: @@ -169,10 +167,9 @@ * ===================================================================== SUBROUTINE SSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA,BETA @@ -359,6 +356,6 @@ * RETURN * -* End of SSYRK . +* End of SSYRK * END diff --git a/dspl/blas/src/stbmv.f b/dspl/blas/src/stbmv.f index a714f20..09273a1 100644 --- a/dspl/blas/src/stbmv.f +++ b/dspl/blas/src/stbmv.f @@ -164,8 +164,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -186,10 +184,9 @@ * ===================================================================== SUBROUTINE STBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -393,6 +390,6 @@ * RETURN * -* End of STBMV . +* End of STBMV * END diff --git a/dspl/blas/src/stbsv.f b/dspl/blas/src/stbsv.f index 721b804..5f37cf7 100644 --- a/dspl/blas/src/stbsv.f +++ b/dspl/blas/src/stbsv.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE STBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -396,6 +393,6 @@ * RETURN * -* End of STBSV . +* End of STBSV * END diff --git a/dspl/blas/src/stpmv.f b/dspl/blas/src/stpmv.f index 833f808..9e77c1e 100644 --- a/dspl/blas/src/stpmv.f +++ b/dspl/blas/src/stpmv.f @@ -120,8 +120,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -142,10 +140,9 @@ * ===================================================================== SUBROUTINE STPMV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -347,6 +344,6 @@ * RETURN * -* End of STPMV . +* End of STPMV * END diff --git a/dspl/blas/src/stpsv.f b/dspl/blas/src/stpsv.f index fe1f407..40b1ffb 100644 --- a/dspl/blas/src/stpsv.f +++ b/dspl/blas/src/stpsv.f @@ -123,8 +123,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -144,10 +142,9 @@ * ===================================================================== SUBROUTINE STPSV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -349,6 +346,6 @@ * RETURN * -* End of STPSV . +* End of STPSV * END diff --git a/dspl/blas/src/strmm.f b/dspl/blas/src/strmm.f index e11330a..9aa2ac2 100644 --- a/dspl/blas/src/strmm.f +++ b/dspl/blas/src/strmm.f @@ -156,8 +156,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level3 * *> \par Further Details: @@ -177,10 +175,9 @@ * ===================================================================== SUBROUTINE STRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -410,6 +407,6 @@ * RETURN * -* End of STRMM . +* End of STRMM * END diff --git a/dspl/blas/src/strmv.f b/dspl/blas/src/strmv.f index e9f681e..6f5a3e8 100644 --- a/dspl/blas/src/strmv.f +++ b/dspl/blas/src/strmv.f @@ -125,8 +125,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE STRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -337,6 +334,6 @@ * RETURN * -* End of STRMV . +* End of STRMV * END diff --git a/dspl/blas/src/strsm.f b/dspl/blas/src/strsm.f index aa805f6..6e97c52 100644 --- a/dspl/blas/src/strsm.f +++ b/dspl/blas/src/strsm.f @@ -159,8 +159,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level3 * *> \par Further Details: @@ -181,10 +179,9 @@ * ===================================================================== SUBROUTINE STRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. REAL ALPHA @@ -438,6 +435,6 @@ * RETURN * -* End of STRSM . +* End of STRSM * END diff --git a/dspl/blas/src/strsv.f b/dspl/blas/src/strsv.f index d9e41e7..e228ea9 100644 --- a/dspl/blas/src/strsv.f +++ b/dspl/blas/src/strsv.f @@ -128,8 +128,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup single_blas_level2 * *> \par Further Details: @@ -149,10 +147,9 @@ * ===================================================================== SUBROUTINE STRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -339,6 +336,6 @@ * RETURN * -* End of STRSV . +* End of STRSV * END diff --git a/dspl/blas/src/xerbla.f b/dspl/blas/src/xerbla.f index bbe6cce..0d73705 100644 --- a/dspl/blas/src/xerbla.f +++ b/dspl/blas/src/xerbla.f @@ -53,17 +53,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup aux_blas * * ===================================================================== SUBROUTINE XERBLA( SRNAME, INFO ) * -* -- Reference BLAS level1 routine (version 3.7.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. CHARACTER*(*) SRNAME diff --git a/dspl/blas/src/xerbla_array.f b/dspl/blas/src/xerbla_array.f index df4e627..8a3c878 100644 --- a/dspl/blas/src/xerbla_array.f +++ b/dspl/blas/src/xerbla_array.f @@ -73,17 +73,14 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup aux_blas * * ===================================================================== SUBROUTINE XERBLA_ARRAY(SRNAME_ARRAY, SRNAME_LEN, INFO) * -* -- Reference BLAS level1 routine (version 3.7.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER SRNAME_LEN, INFO @@ -116,4 +113,7 @@ CALL XERBLA( SRNAME, INFO ) RETURN +* +* End of XERBLA_ARRAY +* END diff --git a/dspl/blas/src/zaxpy.f b/dspl/blas/src/zaxpy.f index d670a2b..35c0e4b 100644 --- a/dspl/blas/src/zaxpy.f +++ b/dspl/blas/src/zaxpy.f @@ -72,8 +72,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -88,10 +86,9 @@ * ===================================================================== SUBROUTINE ZAXPY(N,ZA,ZX,INCX,ZY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. COMPLEX*16 ZA @@ -136,4 +133,7 @@ END IF * RETURN +* +* End of ZAXPY +* END diff --git a/dspl/blas/src/zcopy.f b/dspl/blas/src/zcopy.f index 5106916..1efcdb6 100644 --- a/dspl/blas/src/zcopy.f +++ b/dspl/blas/src/zcopy.f @@ -65,8 +65,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -81,10 +79,9 @@ * ===================================================================== SUBROUTINE ZCOPY(N,ZX,INCX,ZY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -122,4 +119,7 @@ END DO END IF RETURN +* +* End of ZCOPY +* END diff --git a/dspl/blas/src/zdotc.f b/dspl/blas/src/zdotc.f index 36e33ae..bcc29e2 100644 --- a/dspl/blas/src/zdotc.f +++ b/dspl/blas/src/zdotc.f @@ -39,7 +39,7 @@ *> *> \param[in] ZX *> \verbatim -*> ZX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) +*> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX @@ -50,7 +50,7 @@ *> *> \param[in] ZY *> \verbatim -*> ZY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) +*> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY @@ -67,8 +67,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -83,10 +81,9 @@ * ===================================================================== COMPLEX*16 FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -131,4 +128,7 @@ END IF ZDOTC = ZTEMP RETURN +* +* End of ZDOTC +* END diff --git a/dspl/blas/src/zdotu.f b/dspl/blas/src/zdotu.f index 3661075..11c18da 100644 --- a/dspl/blas/src/zdotu.f +++ b/dspl/blas/src/zdotu.f @@ -39,7 +39,7 @@ *> *> \param[in] ZX *> \verbatim -*> ZX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) +*> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX @@ -50,7 +50,7 @@ *> *> \param[in] ZY *> \verbatim -*> ZY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) +*> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY @@ -67,8 +67,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -83,10 +81,9 @@ * ===================================================================== COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -128,4 +125,7 @@ END IF ZDOTU = ZTEMP RETURN +* +* End of ZDOTU +* END diff --git a/dspl/blas/src/zdrot.f b/dspl/blas/src/zdrot.f index 8a4cf65..3145561 100644 --- a/dspl/blas/src/zdrot.f +++ b/dspl/blas/src/zdrot.f @@ -8,14 +8,14 @@ * Definition: * =========== * -* SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S ) +* SUBROUTINE ZDROT( N, ZX, INCX, ZY, INCY, C, S ) * * .. Scalar Arguments .. * INTEGER INCX, INCY, N * DOUBLE PRECISION C, S * .. * .. Array Arguments .. -* COMPLEX*16 CX( * ), CY( * ) +* COMPLEX*16 ZX( * ), ZY( * ) * .. * * @@ -39,12 +39,12 @@ *> N must be at least zero. *> \endverbatim *> -*> \param[in,out] CX +*> \param[in,out] ZX *> \verbatim -*> CX is COMPLEX*16 array, dimension at least +*> ZX is COMPLEX*16 array, dimension at least *> ( 1 + ( N - 1 )*abs( INCX ) ). -*> Before entry, the incremented array CX must contain the n -*> element vector cx. On exit, CX is overwritten by the updated +*> Before entry, the incremented array ZX must contain the n +*> element vector cx. On exit, ZX is overwritten by the updated *> vector cx. *> \endverbatim *> @@ -52,15 +52,15 @@ *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of -*> CX. INCX must not be zero. +*> ZX. INCX must not be zero. *> \endverbatim *> -*> \param[in,out] CY +*> \param[in,out] ZY *> \verbatim -*> CY is COMPLEX*16 array, dimension at least +*> ZY is COMPLEX*16 array, dimension at least *> ( 1 + ( N - 1 )*abs( INCY ) ). -*> Before entry, the incremented array CY must contain the n -*> element vector cy. On exit, CY is overwritten by the updated +*> Before entry, the incremented array ZY must contain the n +*> element vector cy. On exit, ZY is overwritten by the updated *> vector cy. *> \endverbatim *> @@ -68,7 +68,7 @@ *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of -*> CY. INCY must not be zero. +*> ZY. INCY must not be zero. *> \endverbatim *> *> \param[in] C @@ -91,24 +91,21 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level1 * * ===================================================================== - SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S ) + SUBROUTINE ZDROT( N, ZX, INCX, ZY, INCY, C, S ) * -* -- Reference BLAS level1 routine (version 3.7.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX, INCY, N DOUBLE PRECISION C, S * .. * .. Array Arguments .. - COMPLEX*16 CX( * ), CY( * ) + COMPLEX*16 ZX( * ), ZY( * ) * .. * * ===================================================================== @@ -126,9 +123,9 @@ * code for both increments equal to 1 * DO I = 1, N - CTEMP = C*CX( I ) + S*CY( I ) - CY( I ) = C*CY( I ) - S*CX( I ) - CX( I ) = CTEMP + CTEMP = C*ZX( I ) + S*ZY( I ) + ZY( I ) = C*ZY( I ) - S*ZX( I ) + ZX( I ) = CTEMP END DO ELSE * @@ -142,12 +139,15 @@ IF( INCY.LT.0 ) $ IY = ( -N+1 )*INCY + 1 DO I = 1, N - CTEMP = C*CX( IX ) + S*CY( IY ) - CY( IY ) = C*CY( IY ) - S*CX( IX ) - CX( IX ) = CTEMP + CTEMP = C*ZX( IX ) + S*ZY( IY ) + ZY( IY ) = C*ZY( IY ) - S*ZX( IX ) + ZX( IX ) = CTEMP IX = IX + INCX IY = IY + INCY END DO END IF RETURN +* +* End of ZDROT +* END diff --git a/dspl/blas/src/zdscal.f b/dspl/blas/src/zdscal.f index a87a28f..b3546ba 100644 --- a/dspl/blas/src/zdscal.f +++ b/dspl/blas/src/zdscal.f @@ -61,8 +61,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -78,10 +76,9 @@ * ===================================================================== SUBROUTINE ZDSCAL(N,DA,ZX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DA @@ -117,4 +114,7 @@ END DO END IF RETURN +* +* End of ZDSCAL +* END diff --git a/dspl/blas/src/zgbmv.f b/dspl/blas/src/zgbmv.f index 7303df8..0bca54e 100644 --- a/dspl/blas/src/zgbmv.f +++ b/dspl/blas/src/zgbmv.f @@ -165,8 +165,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE ZGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -385,6 +382,6 @@ * RETURN * -* End of ZGBMV . +* End of ZGBMV * END diff --git a/dspl/blas/src/zgemm.f b/dspl/blas/src/zgemm.f index c3ac755..0b712f1 100644 --- a/dspl/blas/src/zgemm.f +++ b/dspl/blas/src/zgemm.f @@ -166,8 +166,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -215,7 +212,7 @@ * .. * .. Local Scalars .. COMPLEX*16 TEMP - INTEGER I,INFO,J,L,NCOLA,NROWA,NROWB + INTEGER I,INFO,J,L,NROWA,NROWB LOGICAL CONJA,CONJB,NOTA,NOTB * .. * .. Parameters .. @@ -228,8 +225,7 @@ * Set NOTA and NOTB as true if A and B respectively are not * conjugated or transposed, set CONJA and CONJB as true if A and * B respectively are to be transposed but not conjugated and set -* NROWA, NCOLA and NROWB as the number of rows and columns of A -* and the number of rows of B respectively. +* NROWA and NROWB as the number of rows of A and B respectively. * NOTA = LSAME(TRANSA,'N') NOTB = LSAME(TRANSB,'N') @@ -237,10 +233,8 @@ CONJB = LSAME(TRANSB,'C') IF (NOTA) THEN NROWA = M - NCOLA = K ELSE NROWA = K - NCOLA = M END IF IF (NOTB) THEN NROWB = K @@ -478,6 +472,6 @@ * RETURN * -* End of ZGEMM . +* End of ZGEMM * END diff --git a/dspl/blas/src/zgemv.f b/dspl/blas/src/zgemv.f index 7088d38..2664454 100644 --- a/dspl/blas/src/zgemv.f +++ b/dspl/blas/src/zgemv.f @@ -136,8 +136,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -158,10 +156,9 @@ * ===================================================================== SUBROUTINE ZGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -345,6 +342,6 @@ * RETURN * -* End of ZGEMV . +* End of ZGEMV * END diff --git a/dspl/blas/src/zgerc.f b/dspl/blas/src/zgerc.f index 058dccf..2eb4349 100644 --- a/dspl/blas/src/zgerc.f +++ b/dspl/blas/src/zgerc.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE ZGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -222,6 +219,6 @@ * RETURN * -* End of ZGERC . +* End of ZGERC * END diff --git a/dspl/blas/src/zgeru.f b/dspl/blas/src/zgeru.f index 683a778..e1cd2dc 100644 --- a/dspl/blas/src/zgeru.f +++ b/dspl/blas/src/zgeru.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE ZGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -222,6 +219,6 @@ * RETURN * -* End of ZGERU . +* End of ZGERU * END diff --git a/dspl/blas/src/zhbmv.f b/dspl/blas/src/zhbmv.f index 19d8f7d..6f8026c 100644 --- a/dspl/blas/src/zhbmv.f +++ b/dspl/blas/src/zhbmv.f @@ -165,8 +165,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -187,10 +185,9 @@ * ===================================================================== SUBROUTINE ZHBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -375,6 +372,6 @@ * RETURN * -* End of ZHBMV . +* End of ZHBMV * END diff --git a/dspl/blas/src/zhemm.f b/dspl/blas/src/zhemm.f index d63778b..9ebbab2 100644 --- a/dspl/blas/src/zhemm.f +++ b/dspl/blas/src/zhemm.f @@ -170,8 +170,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -191,10 +189,9 @@ * ===================================================================== SUBROUTINE ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -366,6 +363,6 @@ * RETURN * -* End of ZHEMM . +* End of ZHEMM * END diff --git a/dspl/blas/src/zhemv.f b/dspl/blas/src/zhemv.f index 3ea0753..dad68bf 100644 --- a/dspl/blas/src/zhemv.f +++ b/dspl/blas/src/zhemv.f @@ -132,8 +132,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -154,10 +152,9 @@ * ===================================================================== SUBROUTINE ZHEMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -332,6 +329,6 @@ * RETURN * -* End of ZHEMV . +* End of ZHEMV * END diff --git a/dspl/blas/src/zher.f b/dspl/blas/src/zher.f index 5e0c896..5922730 100644 --- a/dspl/blas/src/zher.f +++ b/dspl/blas/src/zher.f @@ -114,8 +114,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -135,10 +133,9 @@ * ===================================================================== SUBROUTINE ZHER(UPLO,N,ALPHA,X,INCX,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -273,6 +270,6 @@ * RETURN * -* End of ZHER . +* End of ZHER * END diff --git a/dspl/blas/src/zher2.f b/dspl/blas/src/zher2.f index e3a3831..d1f2b57 100644 --- a/dspl/blas/src/zher2.f +++ b/dspl/blas/src/zher2.f @@ -129,8 +129,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -150,10 +148,9 @@ * ===================================================================== SUBROUTINE ZHER2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -312,6 +309,6 @@ * RETURN * -* End of ZHER2 . +* End of ZHER2 * END diff --git a/dspl/blas/src/zher2k.f b/dspl/blas/src/zher2k.f index 474c65e..5c75083 100644 --- a/dspl/blas/src/zher2k.f +++ b/dspl/blas/src/zher2k.f @@ -174,8 +174,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -198,10 +196,9 @@ * ===================================================================== SUBROUTINE ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -438,6 +435,6 @@ * RETURN * -* End of ZHER2K. +* End of ZHER2K * END diff --git a/dspl/blas/src/zherk.f b/dspl/blas/src/zherk.f index 0d11f22..e39a3fc 100644 --- a/dspl/blas/src/zherk.f +++ b/dspl/blas/src/zherk.f @@ -149,8 +149,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -173,10 +171,9 @@ * ===================================================================== SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA @@ -391,6 +388,6 @@ * RETURN * -* End of ZHERK . +* End of ZHERK * END diff --git a/dspl/blas/src/zhpmv.f b/dspl/blas/src/zhpmv.f index 9bd3ea4..c1a2fa0 100644 --- a/dspl/blas/src/zhpmv.f +++ b/dspl/blas/src/zhpmv.f @@ -127,8 +127,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -149,10 +147,9 @@ * ===================================================================== SUBROUTINE ZHPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -333,6 +330,6 @@ * RETURN * -* End of ZHPMV . +* End of ZHPMV * END diff --git a/dspl/blas/src/zhpr.f b/dspl/blas/src/zhpr.f index af82dfb..2ba5774 100644 --- a/dspl/blas/src/zhpr.f +++ b/dspl/blas/src/zhpr.f @@ -109,8 +109,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -130,10 +128,9 @@ * ===================================================================== SUBROUTINE ZHPR(UPLO,N,ALPHA,X,INCX,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA @@ -274,6 +271,6 @@ * RETURN * -* End of ZHPR . +* End of ZHPR * END diff --git a/dspl/blas/src/zhpr2.f b/dspl/blas/src/zhpr2.f index 1b0fd3a..55cfe77 100644 --- a/dspl/blas/src/zhpr2.f +++ b/dspl/blas/src/zhpr2.f @@ -124,8 +124,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -145,10 +143,9 @@ * ===================================================================== SUBROUTINE ZHPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -313,6 +310,6 @@ * RETURN * -* End of ZHPR2 . +* End of ZHPR2 * END diff --git a/dspl/blas/src/zrotg.f b/dspl/blas/src/zrotg.f deleted file mode 100644 index 581117d..0000000 --- a/dspl/blas/src/zrotg.f +++ /dev/null @@ -1,98 +0,0 @@ -*> \brief \b ZROTG -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZROTG(CA,CB,C,S) -* -* .. Scalar Arguments .. -* COMPLEX*16 CA,CB,S -* DOUBLE PRECISION C -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> ZROTG determines a double complex Givens rotation. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] CA -*> \verbatim -*> CA is COMPLEX*16 -*> \endverbatim -*> -*> \param[in] CB -*> \verbatim -*> CB is COMPLEX*16 -*> \endverbatim -*> -*> \param[out] C -*> \verbatim -*> C is DOUBLE PRECISION -*> \endverbatim -*> -*> \param[out] S -*> \verbatim -*> S is COMPLEX*16 -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup complex16_blas_level1 -* -* ===================================================================== - SUBROUTINE ZROTG(CA,CB,C,S) -* -* -- Reference BLAS level1 routine (version 3.8.0) -- -* -- Reference BLAS is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* .. Scalar Arguments .. - COMPLEX*16 CA,CB,S - DOUBLE PRECISION C -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - COMPLEX*16 ALPHA - DOUBLE PRECISION NORM,SCALE -* .. -* .. Intrinsic Functions .. - INTRINSIC CDABS,DCMPLX,DCONJG,DSQRT -* .. - IF (CDABS(CA).EQ.0.0d0) THEN - C = 0.0d0 - S = (1.0d0,0.0d0) - CA = CB - ELSE - SCALE = CDABS(CA) + CDABS(CB) - NORM = SCALE*DSQRT((CDABS(CA/DCMPLX(SCALE,0.0d0)))**2+ - $ (CDABS(CB/DCMPLX(SCALE,0.0d0)))**2) - ALPHA = CA/CDABS(CA) - C = CDABS(CA)/NORM - S = ALPHA*DCONJG(CB)/NORM - CA = ALPHA*NORM - END IF - RETURN - END diff --git a/dspl/blas/src/zrotg.f90 b/dspl/blas/src/zrotg.f90 new file mode 100644 index 0000000..b23f8d1 --- /dev/null +++ b/dspl/blas/src/zrotg.f90 @@ -0,0 +1,229 @@ +!> \brief \b ZROTG +! +! =========== DOCUMENTATION =========== +! +! Online html documentation available at +! http://www.netlib.org/lapack/explore-html/ +! +! Definition: +! =========== +! +! ZROTG constructs a plane rotation +! [ c s ] [ a ] = [ r ] +! [ -conjg(s) c ] [ b ] [ 0 ] +! where c is real, s ic complex, and c**2 + conjg(s)*s = 1. +! +!> \par Purpose: +! ============= +!> +!> \verbatim +!> +!> The computation uses the formulas +!> |x| = sqrt( Re(x)**2 + Im(x)**2 ) +!> sgn(x) = x / |x| if x /= 0 +!> = 1 if x = 0 +!> c = |a| / sqrt(|a|**2 + |b|**2) +!> s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2) +!> When a and b are real and r /= 0, the formulas simplify to +!> r = sgn(a)*sqrt(|a|**2 + |b|**2) +!> c = a / r +!> s = b / r +!> the same as in ZROTG when |a| > |b|. When |b| >= |a|, the +!> sign of c and s will be different from those computed by ZROTG +!> if the signs of a and b are not the same. +!> +!> \endverbatim +! +! Arguments: +! ========== +! +!> \param[in,out] A +!> \verbatim +!> A is DOUBLE COMPLEX +!> On entry, the scalar a. +!> On exit, the scalar r. +!> \endverbatim +!> +!> \param[in] B +!> \verbatim +!> B is DOUBLE COMPLEX +!> The scalar b. +!> \endverbatim +!> +!> \param[out] C +!> \verbatim +!> C is DOUBLE PRECISION +!> The scalar c. +!> \endverbatim +!> +!> \param[out] S +!> \verbatim +!> S is DOUBLE PRECISION +!> The scalar s. +!> \endverbatim +! +! Authors: +! ======== +! +!> \author Edward Anderson, Lockheed Martin +! +!> \par Contributors: +! ================== +!> +!> Weslley Pereira, University of Colorado Denver, USA +! +!> \ingroup single_blas_level1 +! +!> \par Further Details: +! ===================== +!> +!> \verbatim +!> +!> Anderson E. (2017) +!> Algorithm 978: Safe Scaling in the Level 1 BLAS +!> ACM Trans Math Softw 44:1--28 +!> https://doi.org/10.1145/3061665 +!> +!> \endverbatim +! +! ===================================================================== +subroutine ZROTG( a, b, c, s ) + integer, parameter :: wp = kind(1.d0) +! +! -- Reference BLAS level1 routine -- +! -- Reference BLAS is a software package provided by Univ. of Tennessee, -- +! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +! +! .. Constants .. + real(wp), parameter :: zero = 0.0_wp + real(wp), parameter :: one = 1.0_wp + complex(wp), parameter :: czero = 0.0_wp +! .. +! .. Scaling constants .. + real(wp), parameter :: safmin = real(radix(0._wp),wp)**max( & + minexponent(0._wp)-1, & + 1-maxexponent(0._wp) & + ) + real(wp), parameter :: safmax = real(radix(0._wp),wp)**max( & + 1-minexponent(0._wp), & + maxexponent(0._wp)-1 & + ) + real(wp), parameter :: rtmin = sqrt( real(radix(0._wp),wp)**max( & + minexponent(0._wp)-1, & + 1-maxexponent(0._wp) & + ) / epsilon(0._wp) ) + real(wp), parameter :: rtmax = sqrt( real(radix(0._wp),wp)**max( & + 1-minexponent(0._wp), & + maxexponent(0._wp)-1 & + ) * epsilon(0._wp) ) +! .. +! .. Scalar Arguments .. + real(wp) :: c + complex(wp) :: a, b, s +! .. +! .. Local Scalars .. + real(wp) :: d, f1, f2, g1, g2, h2, p, u, uu, v, vv, w + complex(wp) :: f, fs, g, gs, r, t +! .. +! .. Intrinsic Functions .. + intrinsic :: abs, aimag, conjg, max, min, real, sqrt +! .. +! .. Statement Functions .. + real(wp) :: ABSSQ +! .. +! .. Statement Function definitions .. + ABSSQ( t ) = real( t )**2 + aimag( t )**2 +! .. +! .. Executable Statements .. +! + f = a + g = b + if( g == czero ) then + c = one + s = czero + r = f + else if( f == czero ) then + c = zero + g1 = max( abs(real(g)), abs(aimag(g)) ) + if( g1 > rtmin .and. g1 < rtmax ) then +! +! Use unscaled algorithm +! + g2 = ABSSQ( g ) + d = sqrt( g2 ) + s = conjg( g ) / d + r = d + else +! +! Use scaled algorithm +! + u = min( safmax, max( safmin, g1 ) ) + uu = one / u + gs = g*uu + g2 = ABSSQ( gs ) + d = sqrt( g2 ) + s = conjg( gs ) / d + r = d*u + end if + else + f1 = max( abs(real(f)), abs(aimag(f)) ) + g1 = max( abs(real(g)), abs(aimag(g)) ) + if( f1 > rtmin .and. f1 < rtmax .and. & + g1 > rtmin .and. g1 < rtmax ) then +! +! Use unscaled algorithm +! + f2 = ABSSQ( f ) + g2 = ABSSQ( g ) + h2 = f2 + g2 + if( f2 > rtmin .and. h2 < rtmax ) then + d = sqrt( f2*h2 ) + else + d = sqrt( f2 )*sqrt( h2 ) + end if + p = 1 / d + c = f2*p + s = conjg( g )*( f*p ) + r = f*( h2*p ) + else +! +! Use scaled algorithm +! + u = min( safmax, max( safmin, f1, g1 ) ) + uu = one / u + gs = g*uu + g2 = ABSSQ( gs ) + if( f1*uu < rtmin ) then +! +! f is not well-scaled when scaled by g1. +! Use a different scaling for f. +! + v = min( safmax, max( safmin, f1 ) ) + vv = one / v + w = v * uu + fs = f*vv + f2 = ABSSQ( fs ) + h2 = f2*w**2 + g2 + else +! +! Otherwise use the same scaling for f and g. +! + w = one + fs = f*uu + f2 = ABSSQ( fs ) + h2 = f2 + g2 + end if + if( f2 > rtmin .and. h2 < rtmax ) then + d = sqrt( f2*h2 ) + else + d = sqrt( f2 )*sqrt( h2 ) + end if + p = 1 / d + c = ( f2*p )*w + s = conjg( gs )*( fs*p ) + r = ( fs*( h2*p ) )*u + end if + end if + a = r + return +end subroutine diff --git a/dspl/blas/src/zscal.f b/dspl/blas/src/zscal.f index c52f622..8085f5a3 100644 --- a/dspl/blas/src/zscal.f +++ b/dspl/blas/src/zscal.f @@ -61,8 +61,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -78,10 +76,9 @@ * ===================================================================== SUBROUTINE ZSCAL(N,ZA,ZX,INCX) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. COMPLEX*16 ZA @@ -114,4 +111,7 @@ END DO END IF RETURN +* +* End of ZSCAL +* END diff --git a/dspl/blas/src/zswap.f b/dspl/blas/src/zswap.f index 6fd2d7f..93f8fc5 100644 --- a/dspl/blas/src/zswap.f +++ b/dspl/blas/src/zswap.f @@ -65,8 +65,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2017 -* *> \ingroup complex16_blas_level1 * *> \par Further Details: @@ -81,10 +79,9 @@ * ===================================================================== SUBROUTINE ZSWAP(N,ZX,INCX,ZY,INCY) * -* -- Reference BLAS level1 routine (version 3.8.0) -- +* -- Reference BLAS level1 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N @@ -126,4 +123,7 @@ END DO END IF RETURN +* +* End of ZSWAP +* END diff --git a/dspl/blas/src/zsymm.f b/dspl/blas/src/zsymm.f index bd37934..3ec8a8d 100644 --- a/dspl/blas/src/zsymm.f +++ b/dspl/blas/src/zsymm.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE ZSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -364,6 +361,6 @@ * RETURN * -* End of ZSYMM . +* End of ZSYMM * END diff --git a/dspl/blas/src/zsyr2k.f b/dspl/blas/src/zsyr2k.f index 92bbfee..e0f89bb 100644 --- a/dspl/blas/src/zsyr2k.f +++ b/dspl/blas/src/zsyr2k.f @@ -167,8 +167,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -188,10 +186,9 @@ * ===================================================================== SUBROUTINE ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -391,6 +388,6 @@ * RETURN * -* End of ZSYR2K. +* End of ZSYR2K * END diff --git a/dspl/blas/src/zsyrk.f b/dspl/blas/src/zsyrk.f index 122539f..143a5e2 100644 --- a/dspl/blas/src/zsyrk.f +++ b/dspl/blas/src/zsyrk.f @@ -146,8 +146,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -167,10 +165,9 @@ * ===================================================================== SUBROUTINE ZSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA @@ -358,6 +355,6 @@ * RETURN * -* End of ZSYRK . +* End of ZSYRK * END diff --git a/dspl/blas/src/ztbmv.f b/dspl/blas/src/ztbmv.f index a4d9c2e..6be39d0 100644 --- a/dspl/blas/src/ztbmv.f +++ b/dspl/blas/src/ztbmv.f @@ -164,8 +164,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -186,10 +184,9 @@ * ===================================================================== SUBROUTINE ZTBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -424,6 +421,6 @@ * RETURN * -* End of ZTBMV . +* End of ZTBMV * END diff --git a/dspl/blas/src/ztbsv.f b/dspl/blas/src/ztbsv.f index eaf8500..41b5407 100644 --- a/dspl/blas/src/ztbsv.f +++ b/dspl/blas/src/ztbsv.f @@ -168,8 +168,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -189,10 +187,9 @@ * ===================================================================== SUBROUTINE ZTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N @@ -427,6 +424,6 @@ * RETURN * -* End of ZTBSV . +* End of ZTBSV * END diff --git a/dspl/blas/src/ztpmv.f b/dspl/blas/src/ztpmv.f index 65aa2a0..363fd5a 100644 --- a/dspl/blas/src/ztpmv.f +++ b/dspl/blas/src/ztpmv.f @@ -120,8 +120,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -142,10 +140,9 @@ * ===================================================================== SUBROUTINE ZTPMV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -383,6 +380,6 @@ * RETURN * -* End of ZTPMV . +* End of ZTPMV * END diff --git a/dspl/blas/src/ztpsv.f b/dspl/blas/src/ztpsv.f index 5388884..c6f24d0 100644 --- a/dspl/blas/src/ztpsv.f +++ b/dspl/blas/src/ztpsv.f @@ -123,8 +123,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -144,10 +142,9 @@ * ===================================================================== SUBROUTINE ZTPSV(UPLO,TRANS,DIAG,N,AP,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,N @@ -385,6 +382,6 @@ * RETURN * -* End of ZTPSV . +* End of ZTPSV * END diff --git a/dspl/blas/src/ztrmm.f b/dspl/blas/src/ztrmm.f index 0f445f5..c59c367 100644 --- a/dspl/blas/src/ztrmm.f +++ b/dspl/blas/src/ztrmm.f @@ -156,8 +156,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -177,10 +175,9 @@ * ===================================================================== SUBROUTINE ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -447,6 +444,6 @@ * RETURN * -* End of ZTRMM . +* End of ZTRMM * END diff --git a/dspl/blas/src/ztrmv.f b/dspl/blas/src/ztrmv.f index 52d1ae6..e8314fa 100644 --- a/dspl/blas/src/ztrmv.f +++ b/dspl/blas/src/ztrmv.f @@ -125,8 +125,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -147,10 +145,9 @@ * ===================================================================== SUBROUTINE ZTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -368,6 +365,6 @@ * RETURN * -* End of ZTRMV . +* End of ZTRMV * END diff --git a/dspl/blas/src/ztrsm.f b/dspl/blas/src/ztrsm.f index 46a6afc..7f7eb52 100644 --- a/dspl/blas/src/ztrsm.f +++ b/dspl/blas/src/ztrsm.f @@ -159,8 +159,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level3 * *> \par Further Details: @@ -180,10 +178,9 @@ * ===================================================================== SUBROUTINE ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * -* -- Reference BLAS level3 routine (version 3.7.0) -- +* -- Reference BLAS level3 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA @@ -472,6 +469,6 @@ * RETURN * -* End of ZTRSM . +* End of ZTRSM * END diff --git a/dspl/blas/src/ztrsv.f b/dspl/blas/src/ztrsv.f index ba7aa35..0bb9cbe 100644 --- a/dspl/blas/src/ztrsv.f +++ b/dspl/blas/src/ztrsv.f @@ -128,8 +128,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup complex16_blas_level2 * *> \par Further Details: @@ -149,10 +147,9 @@ * ===================================================================== SUBROUTINE ZTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * -* -- Reference BLAS level2 routine (version 3.7.0) -- +* -- Reference BLAS level2 routine -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N @@ -370,6 +367,6 @@ * RETURN * -* End of ZTRSV . +* End of ZTRSV * END diff --git a/dspl/dox/doxy_stylesheet.css b/dspl/dox/doxy_stylesheet.css index 6fc54dc..b5e2f52 100644 --- a/dspl/dox/doxy_stylesheet.css +++ b/dspl/dox/doxy_stylesheet.css @@ -354,6 +354,7 @@ address.footer { img.footer { border: 0px; vertical-align: middle; + width: 85px; } /* @group Code Colorization */ diff --git a/dspl/dox/doxyfile_en b/dspl/dox/doxyfile_en index ab367a9..b4e58a9 100644 --- a/dspl/dox/doxyfile_en +++ b/dspl/dox/doxyfile_en @@ -1,4 +1,4 @@ -# Doxyfile 1.8.20 +# Doxyfile 1.9.2 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -51,7 +51,7 @@ PROJECT_BRIEF = "Digital Signal Processing Algorithm Library" # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = F:/dsplib.org/libdspl-2.0/dspl/dox/ru/img/dspl_small.png +PROJECT_LOGO = ru/img/dspl_small.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is @@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = YES OUTPUT_LANGUAGE = English -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. @@ -258,16 +250,16 @@ TAB_SIZE = 2 # the documentation. An alias has the form: # name=value # For example adding -# "sideeffect=@par Side Effects:\n" +# "sideeffect=@par Side Effects:^^" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) ALIASES = @@ -312,8 +304,8 @@ OPTIMIZE_OUTPUT_SLICE = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files). For instance to make doxygen treat .inc files @@ -323,7 +315,10 @@ OPTIMIZE_OUTPUT_SLICE = NO # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = @@ -463,7 +458,7 @@ LOOKUP_CACHE_SIZE = 0 # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple # threads. Since this is still an experimental feature the default is set to 1, -# which efficively disables parallel processing. Please report any issues you +# which effectively disables parallel processing. Please report any issues you # encounter. Generating dot graphs in parallel is controlled by the # DOT_NUM_THREADS setting. # Minimum value: 0, maximum value: 32, default value: 1. @@ -533,6 +528,13 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation @@ -570,11 +572,18 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) and Mac users are advised to set this option to NO. +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. # The default value is: system dependent. CASE_SENSE_NAMES = NO @@ -593,6 +602,12 @@ HIDE_SCOPE_NAMES = NO HIDE_COMPOUND_REFERENCE= NO +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -750,7 +765,8 @@ FILE_VERSION_FILTER = # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE @@ -796,24 +812,35 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. # The default value is: NO. WARN_AS_ERROR = NO @@ -853,8 +880,8 @@ INPUT = en \ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 @@ -867,12 +894,14 @@ INPUT_ENCODING = UTF-8 # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, # *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ @@ -966,8 +995,7 @@ EXCLUDE_SYMBOLS = # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = ../../examples/src \ - ../../bin/img +EXAMPLE_PATH = ../../examples/src # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and @@ -988,8 +1016,8 @@ EXAMPLE_RECURSIVE = YES # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = ../../bin/img \ - en/img +IMAGE_PATH = en/img \ + ../../examples/bin/img # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -1134,16 +1162,24 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then doxygen will add the directory of each input to the +# include path. +# The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_ADD_INC_PATHS = YES + # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories @@ -1157,7 +1193,7 @@ CLANG_OPTIONS = # file is the compilation database (see: # http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the # options used when the source files were built. This is equivalent to -# specifying the "-p" option to a clang tool, such as clang-check. These options +# specifying the -p option to a clang tool, such as clang-check. These options # will then be passed to the parser. Any options specified with CLANG_OPTIONS # will be added as well. # Note: The availability of this option depends on whether or not doxygen was @@ -1176,13 +1212,6 @@ CLANG_DATABASE_PATH = ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1282,7 +1311,7 @@ HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see +# this color. Hue is specified as an angle on a color-wheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. @@ -1292,7 +1321,7 @@ HTML_EXTRA_FILES = HTML_COLORSTYLE_HUE = 199 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A +# in the HTML output. For a value of 0 the output will use gray-scales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1353,10 +1382,11 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. @@ -1398,8 +1428,12 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML @@ -1474,7 +1508,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1482,8 +1517,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1491,16 +1526,16 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = @@ -1512,9 +1547,9 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1557,16 +1592,28 @@ DISABLE_INDEX = NO # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATOR_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # @@ -1639,11 +1686,29 @@ FORMULA_MACROFILE = USE_MATHJAX = YES +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + # When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). # Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1656,22 +1721,29 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1718,7 +1790,8 @@ SERVER_BASED_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1731,8 +1804,9 @@ EXTERNAL_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @@ -1841,29 +1915,31 @@ PAPER_TYPE = a4 EXTRA_PACKAGES = -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the -# generated LaTeX document. The header should contain everything until the first -# chapter. If it is left blank doxygen will generate a standard header. See -# section "Doxygen usage" for information on how to let doxygen write the -# default header to a separate file. +# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for +# the generated LaTeX document. The header should contain everything until the +# first chapter. If it is left blank doxygen will generate a standard header. It +# is highly recommended to start with a default header using +# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty +# and then modify the file new_header.tex. See also section "Doxygen usage" for +# information on how to generate the default header that doxygen normally uses. # -# Note: Only use a user-defined header if you know what you are doing! The -# following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empty -# string, for the replacement values of the other commands the user is referred -# to HTML_HEADER. +# Note: Only use a user-defined header if you know what you are doing! +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. The following +# commands have a special meaning inside the header (and footer): For a +# description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the -# generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. See +# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for +# the generated LaTeX document. The footer should contain everything after the +# last chapter. If it is left blank doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what -# special commands can be used inside the footer. -# -# Note: Only use a user-defined footer if you know what you are doing! +# special commands can be used inside the footer. See also section "Doxygen +# usage" for information on how to generate the default footer that doxygen +# normally uses. Note: Only use a user-defined footer if you know what you are +# doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = @@ -1908,8 +1984,7 @@ USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode # command to the generated LaTeX files. This will instruct LaTeX to keep running -# if errors occur, instead of asking the user for help. This option is also used -# when generating formulas in HTML. +# if errors occur, instead of asking the user for help. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1922,16 +1997,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -2012,16 +2077,6 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -2118,15 +2173,6 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -2419,10 +2465,32 @@ UML_LOOK = NO # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 +# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will wrapped across multiple lines. Some heuristics are apply +# to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2612,9 +2680,11 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate # files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc temporary +# files. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES diff --git a/dspl/dox/doxyfile_ru b/dspl/dox/doxyfile_ru index d6a0c7e..7aebcc2 100644 --- a/dspl/dox/doxyfile_ru +++ b/dspl/dox/doxyfile_ru @@ -1,4 +1,4 @@ -# Doxyfile 1.8.18 +# Doxyfile 1.9.2 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -51,7 +51,7 @@ PROJECT_BRIEF = "Библиотека алгоритмов цифров # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = F:/dsplib.org/libdspl-2.0/dspl/dox/ru/img/dspl_small.png +PROJECT_LOGO = ru/img/dspl_small.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is @@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = YES OUTPUT_LANGUAGE = Russian -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. @@ -227,6 +219,14 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. @@ -250,16 +250,16 @@ TAB_SIZE = 2 # the documentation. An alias has the form: # name=value # For example adding -# "sideeffect=@par Side Effects:\n" +# "sideeffect=@par Side Effects:^^" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) ALIASES = @@ -304,8 +304,8 @@ OPTIMIZE_OUTPUT_SLICE = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files). For instance to make doxygen treat .inc files @@ -315,7 +315,10 @@ OPTIMIZE_OUTPUT_SLICE = NO # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = @@ -449,6 +452,19 @@ TYPEDEF_HIDES_STRUCT = NO LOOKUP_CACHE_SIZE = 0 +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -512,6 +528,13 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation @@ -549,11 +572,18 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) ands Mac users are advised to set this option to NO. +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. # The default value is: system dependent. CASE_SENSE_NAMES = NO @@ -572,6 +602,12 @@ HIDE_SCOPE_NAMES = NO HIDE_COMPOUND_REFERENCE= NO +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -729,7 +765,8 @@ FILE_VERSION_FILTER = # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE @@ -775,24 +812,35 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. # The default value is: NO. WARN_AS_ERROR = NO @@ -833,8 +881,8 @@ INPUT = ru \ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 @@ -847,12 +895,14 @@ INPUT_ENCODING = UTF-8 # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, # *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ @@ -1074,16 +1124,24 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then doxygen will add the directory of each input to the +# include path. +# The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_ADD_INC_PATHS = YES + # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories @@ -1093,10 +1151,13 @@ CLANG_ASSISTED_PARSING = NO CLANG_OPTIONS = # If clang assisted parsing is enabled you can provide the clang parser with the -# path to the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files -# were built. This is equivalent to specifying the "-p" option to a clang tool, -# such as clang-check. These options will then be passed to the parser. +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. @@ -1113,13 +1174,6 @@ CLANG_DATABASE_PATH = ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1219,7 +1273,7 @@ HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see +# this color. Hue is specified as an angle on a color-wheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. @@ -1229,7 +1283,7 @@ HTML_EXTRA_FILES = HTML_COLORSTYLE_HUE = 199 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A +# in the HTML output. For a value of 0 the output will use gray-scales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1290,10 +1344,11 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. @@ -1335,8 +1390,12 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML @@ -1366,7 +1425,7 @@ CHM_FILE = HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1411,7 +1470,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1419,8 +1479,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1428,16 +1488,16 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = @@ -1449,9 +1509,9 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1494,16 +1554,28 @@ DISABLE_INDEX = NO # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATOR_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # @@ -1532,8 +1604,8 @@ EXT_LINKS_IN_WINDOW = NO # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png The default and svg Looks nicer but requires the -# pdf2svg tool. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). # The default value is: png. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1576,11 +1648,29 @@ FORMULA_MACROFILE = USE_MATHJAX = YES +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + # When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). # Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1593,22 +1683,29 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest +MATHJAX_RELPATH = https://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1655,7 +1752,8 @@ SERVER_BASED_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1668,8 +1766,9 @@ EXTERNAL_SEARCH = NO # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @@ -1778,29 +1877,31 @@ PAPER_TYPE = a4 EXTRA_PACKAGES = -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the -# generated LaTeX document. The header should contain everything until the first -# chapter. If it is left blank doxygen will generate a standard header. See -# section "Doxygen usage" for information on how to let doxygen write the -# default header to a separate file. +# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for +# the generated LaTeX document. The header should contain everything until the +# first chapter. If it is left blank doxygen will generate a standard header. It +# is highly recommended to start with a default header using +# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty +# and then modify the file new_header.tex. See also section "Doxygen usage" for +# information on how to generate the default header that doxygen normally uses. # -# Note: Only use a user-defined header if you know what you are doing! The -# following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empty -# string, for the replacement values of the other commands the user is referred -# to HTML_HEADER. +# Note: Only use a user-defined header if you know what you are doing! +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. The following +# commands have a special meaning inside the header (and footer): For a +# description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the -# generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. See +# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for +# the generated LaTeX document. The footer should contain everything after the +# last chapter. If it is left blank doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what -# special commands can be used inside the footer. -# -# Note: Only use a user-defined footer if you know what you are doing! +# special commands can be used inside the footer. See also section "Doxygen +# usage" for information on how to generate the default footer that doxygen +# normally uses. Note: Only use a user-defined footer if you know what you are +# doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = @@ -1833,9 +1934,11 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES, to get a -# higher quality PDF documentation. +# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX +# files. Set this option to YES, to get a higher quality PDF documentation. +# +# See also section LATEX_CMD_NAME for selecting the engine. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1843,8 +1946,7 @@ USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode # command to the generated LaTeX files. This will instruct LaTeX to keep running -# if errors occur, instead of asking the user for help. This option is also used -# when generating formulas in HTML. +# if errors occur, instead of asking the user for help. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1857,16 +1959,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1947,16 +2039,6 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -2053,15 +2135,6 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -2074,6 +2147,10 @@ DOCBOOK_PROGRAMLISTING = NO GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# Configuration options related to Sqlite3 output +#--------------------------------------------------------------------------- + #--------------------------------------------------------------------------- # Configuration options related to the Perl module output #--------------------------------------------------------------------------- @@ -2350,10 +2427,32 @@ UML_LOOK = NO # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. +# This tag requires that the tag UML_LOOK is set to YES. UML_LIMIT_NUM_FIELDS = 10 +# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS +# tag is set to YES, doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# will not generate fields with class member information in the UML graphs. The +# class diagrams will look similar to the default class diagrams but using UML +# notation for the relationships. +# Possible values are: NO, YES and NONE. +# The default value is: NO. +# This tag requires that the tag UML_LOOK is set to YES. + +DOT_UML_DETAILS = NO + +# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters +# to display on a single line. If the actual line length exceeds this threshold +# significantly it will wrapped across multiple lines. Some heuristics are apply +# to avoid ugly line breaks. +# Minimum value: 0, maximum value: 1000, default value: 17. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_WRAP_THRESHOLD = 17 + # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2543,9 +2642,11 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate # files that are used to generate the various graphs. +# +# Note: This setting is not only used for dot files but also for msc temporary +# files. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES diff --git a/dspl/dox/doxygen_style.css b/dspl/dox/doxygen_style.css index aa01d72..fee2f33 100644 --- a/dspl/dox/doxygen_style.css +++ b/dspl/dox/doxygen_style.css @@ -348,6 +348,7 @@ address.footer { img.footer { border: 0px; vertical-align: middle; + width: 85px; } /* @group Code Colorization */ diff --git a/dspl/dox/en/mainpage.dox b/dspl/dox/en/mainpage.dox index ae34694..c855ae0 100644 --- a/dspl/dox/en/mainpage.dox +++ b/dspl/dox/en/mainpage.dox @@ -12,7 +12,13 @@ This allows to use this library in all applications with dynamic linking. Source codes are available on -GitHub. \n + +SourceForge.\n + +Precompiled releases:\n + +libdspl-2.0 on SourceForge + DSPL-2.0 includes follow algorithms sets: \n - Digital spectral analysis, discrete and fast Fourier transform algorithms. \n diff --git a/dspl/dox/footer_en.html b/dspl/dox/footer_en.html index f421ee1..b28191b 100644 --- a/dspl/dox/footer_en.html +++ b/dspl/dox/footer_en.html @@ -13,7 +13,7 @@ diff --git a/dspl/dox/footer_ru.html b/dspl/dox/footer_ru.html index 29f2a93..1312264 100644 --- a/dspl/dox/footer_ru.html +++ b/dspl/dox/footer_ru.html @@ -13,7 +13,7 @@ diff --git a/dspl/dox/header_ru.html b/dspl/dox/header_ru.html index bcdbeec..a29c4ac 100644 --- a/dspl/dox/header_ru.html +++ b/dspl/dox/header_ru.html @@ -17,7 +17,6 @@ - @@ -33,7 +32,7 @@ $mathjax $extrastylesheet - + @@ -88,7 +87,7 @@ screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+