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
+
+
+
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 @@