dnrm2 Function

public pure function dnrm2(n, x, incx)

NAME

dnrm2(3f) - [BLAS:SINGLE_BLAS_LEVEL1] returns the euclidean norm of
a vector via the function name

SYNOPSIS

 double precision function dnrm2(n,x,incx)

   .. Scalar Arguments ..
   integer,intent(in) :: incx, n
   ..
   .. Array Arguments ..
   real(wp),intent(in) :: x(*)
    ..

DEFINITION

DNRM2 returns the euclidean norm of a vector via the function name, so that

 DNRM2 := sqrt( x'*x )

OPTIONS

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.

AUTHORS

  • Edward Anderson, Lockheed Martin

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

SEE ALSO

Online html documentation available at
http://www.netlib.org/lapack/explore-html/

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n
real(kind=wp), intent(in) :: x(*)
integer, intent(in) :: incx

Return Value real(kind=wp)


Contents


Variables

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