GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
liboctave
cruft
dassl
ddanrm.f
Go to the documentation of this file.
1
DOUBLE PRECISION
FUNCTION
ddanrm
(NEQ, V, WT, RPAR, IPAR)
2
C***BEGIN PROLOGUE DDANRM
3
C***SUBSIDIARY
4
C***PURPOSE Compute vector norm for DDASSL.
5
C***LIBRARY SLATEC (DASSL)
6
C***TYPE DOUBLE PRECISION (SDANRM-S, DDANRM-D)
7
C***AUTHOR PETZOLD, LINDA R., (LLNL)
8
C***DESCRIPTION
9
C-----------------------------------------------------------------------
10
C THIS FUNCTION ROUTINE COMPUTES THE WEIGHTED
11
C ROOT-MEAN-SQUARE NORM OF THE VECTOR OF LENGTH
12
C NEQ CONTAINED IN THE ARRAY V,WITH WEIGHTS
13
C CONTAINED IN THE ARRAY WT OF LENGTH NEQ.
14
C DDANRM=SQRT((1/NEQ)*SUM(V(I)/WT(I))**2)
15
C-----------------------------------------------------------------------
16
C***ROUTINES CALLED (NONE)
17
C***REVISION HISTORY (YYMMDD)
18
C 830315 DATE WRITTEN
19
C 901009 Finished conversion to SLATEC 4.0 format (F.N.Fritsch)
20
C 901019 Merged changes made by C. Ulrich with SLATEC 4.0 format.
21
C 901026 Added explicit declarations for all variables and minor
22
C cosmetic changes to prologue. (FNF)
23
C***END PROLOGUE DDANRM
24
C
25
INTEGER
neq, ipar(*)
26
DOUBLE PRECISION
v(neq), wt(neq), rpar(*)
27
C
28
INTEGER
i
29
DOUBLE PRECISION
sum
, vmax
30
C
31
C***FIRST EXECUTABLE STATEMENT DDANRM
32
ddanrm
= 0.0d0
33
vmax = 0.0d0
34
DO
10 i = 1,neq
35
IF
(
abs
(v(i)/wt(i)) .GT. vmax) vmax =
abs
(v(i)/wt(i))
36
10
CONTINUE
37
IF
(vmax .LE. 0.0d0) go to 30
38
sum
= 0.0d0
39
DO
20 i = 1,neq
40
20
sum
=
sum
+ ((v(i)/wt(i))/vmax)**2
41
ddanrm
= vmax*
sqrt
(
sum
/neq)
42
30
CONTINUE
43
RETURN
44
C------END OF FUNCTION DDANRM------
45
END
Generated on Mon Dec 30 2013 03:04:46 for GNU Octave by
1.8.1.2