File:
[local] /
rpl /
lapack /
blas /
dnrm2.f
Revision
1.14:
download - view:
text,
annotated -
select for diffs -
revision graph
Tue May 29 07:19:41 2018 UTC (6 years, 11 months ago) by
bertrand
Branches:
MAIN
CVS tags:
rpl-4_1_35,
rpl-4_1_34,
rpl-4_1_33,
rpl-4_1_32,
rpl-4_1_31,
rpl-4_1_30,
rpl-4_1_29,
rpl-4_1_28,
HEAD
Mise à jour de Blas.
1: *> \brief \b DNRM2
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: * Definition:
9: * ===========
10: *
11: * DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX)
12: *
13: * .. Scalar Arguments ..
14: * INTEGER INCX,N
15: * ..
16: * .. Array Arguments ..
17: * DOUBLE PRECISION X(*)
18: * ..
19: *
20: *
21: *> \par Purpose:
22: * =============
23: *>
24: *> \verbatim
25: *>
26: *> DNRM2 returns the euclidean norm of a vector via the function
27: *> name, so that
28: *>
29: *> DNRM2 := sqrt( x'*x )
30: *> \endverbatim
31: *
32: * Arguments:
33: * ==========
34: *
35: *> \param[in] N
36: *> \verbatim
37: *> N is INTEGER
38: *> number of elements in input vector(s)
39: *> \endverbatim
40: *>
41: *> \param[in] X
42: *> \verbatim
43: *> X is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
44: *> \endverbatim
45: *>
46: *> \param[in] INCX
47: *> \verbatim
48: *> INCX is INTEGER
49: *> storage spacing between elements of DX
50: *> \endverbatim
51: *
52: * Authors:
53: * ========
54: *
55: *> \author Univ. of Tennessee
56: *> \author Univ. of California Berkeley
57: *> \author Univ. of Colorado Denver
58: *> \author NAG Ltd.
59: *
60: *> \date November 2017
61: *
62: *> \ingroup double_blas_level1
63: *
64: *> \par Further Details:
65: * =====================
66: *>
67: *> \verbatim
68: *>
69: *> -- This version written on 25-October-1982.
70: *> Modified on 14-October-1993 to inline the call to DLASSQ.
71: *> Sven Hammarling, Nag Ltd.
72: *> \endverbatim
73: *>
74: * =====================================================================
75: DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX)
76: *
77: * -- Reference BLAS level1 routine (version 3.8.0) --
78: * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
79: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
80: * November 2017
81: *
82: * .. Scalar Arguments ..
83: INTEGER INCX,N
84: * ..
85: * .. Array Arguments ..
86: DOUBLE PRECISION X(*)
87: * ..
88: *
89: * =====================================================================
90: *
91: * .. Parameters ..
92: DOUBLE PRECISION ONE,ZERO
93: PARAMETER (ONE=1.0D+0,ZERO=0.0D+0)
94: * ..
95: * .. Local Scalars ..
96: DOUBLE PRECISION ABSXI,NORM,SCALE,SSQ
97: INTEGER IX
98: * ..
99: * .. Intrinsic Functions ..
100: INTRINSIC ABS,SQRT
101: * ..
102: IF (N.LT.1 .OR. INCX.LT.1) THEN
103: NORM = ZERO
104: ELSE IF (N.EQ.1) THEN
105: NORM = ABS(X(1))
106: ELSE
107: SCALE = ZERO
108: SSQ = ONE
109: * The following loop is equivalent to this call to the LAPACK
110: * auxiliary routine:
111: * CALL DLASSQ( N, X, INCX, SCALE, SSQ )
112: *
113: DO 10 IX = 1,1 + (N-1)*INCX,INCX
114: IF (X(IX).NE.ZERO) THEN
115: ABSXI = ABS(X(IX))
116: IF (SCALE.LT.ABSXI) THEN
117: SSQ = ONE + SSQ* (SCALE/ABSXI)**2
118: SCALE = ABSXI
119: ELSE
120: SSQ = SSQ + (ABSXI/SCALE)**2
121: END IF
122: END IF
123: 10 CONTINUE
124: NORM = SCALE*SQRT(SSQ)
125: END IF
126: *
127: DNRM2 = NORM
128: RETURN
129: *
130: * End of DNRM2.
131: *
132: END
CVSweb interface <joel.bertrand@systella.fr>