dnrm2(3f) - [BLAS:SINGLE_BLAS_LEVEL1] returns the euclidean norm of
a vector via the function name
double precision function dnrm2(n,x,incx)
.. Scalar Arguments ..
integer,intent(in) :: incx, n
..
.. Array Arguments ..
real(wp),intent(in) :: x(*)
..
DNRM2 returns the euclidean norm of a vector via the function name, so that
DNRM2 := sqrt( x'*x )
N number of elements in input vector(s) X X is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) INCX 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.
date:August 2016
\par Contributors:
Weslley Pereira, University of Colorado Denver, USA
FURTHER DETAILS
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
Online html documentation available at
http://www.netlib.org/lapack/explore-html/
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n | |||
real(kind=wp), | intent(in) | :: | x(*) | |||
integer, | intent(in) | :: | incx |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | abig | ||||
real(kind=wp), | public | :: | amed | ||||
real(kind=wp), | public | :: | asml | ||||
real(kind=wp), | public | :: | ax | ||||
integer, | public | :: | i | ||||
integer, | public | :: | ix | ||||
real(kind=wp), | public, | parameter | :: | maxn | = | huge(0.0_wp) | |
logical, | public | :: | notbig | ||||
real(kind=wp), | public, | parameter | :: | one | = | 1.0_wp | |
real(kind=wp), | public, | parameter | :: | sbig | = | real(radix(0._wp), wp)**(-ceiling((maxexponent(0._wp)-digits(0._wp)+1)*0.5_wp)) | |
real(kind=wp), | public | :: | scl | ||||
real(kind=wp), | public, | parameter | :: | ssml | = | real(radix(0._wp), wp)**(-floor((minexponent(0._wp)-1)*0.5_wp)) | |
real(kind=wp), | public | :: | sumsq | ||||
real(kind=wp), | public, | parameter | :: | tbig | = | real(radix(0._wp), wp)**floor((maxexponent(0._wp)-digits(0._wp)+1)*0.5_wp) | |
real(kind=wp), | public, | parameter | :: | tsml | = | real(radix(0._wp), wp)**ceiling((minexponent(0._wp)-1)*0.5_wp) | |
integer, | public, | parameter | :: | wp | = | kind(1.d0) | |
real(kind=wp), | public | :: | ymax | ||||
real(kind=wp), | public | :: | ymin | ||||
real(kind=wp), | public, | parameter | :: | zero | = | 0.0_wp |