Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F88684298
dlassq.f
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Oct 20, 04:00
Size
4 KB
Mime Type
text/html
Expires
Tue, Oct 22, 04:00 (2 d)
Engine
blob
Format
Raw Data
Handle
21741775
Attached To
rLAMMPS lammps
dlassq.f
View Options
*>
\
brief
\
b
DLASSQ
updates
a
sum
of
squares
represented
in
scaled
form
.
*
*
===========
DOCUMENTATION
===========
*
*
Online
html
documentation
available
at
*
http
:
//
www
.
netlib
.
org
/
lapack
/
explore
-
html
/
*
*>
\
htmlonly
*>
Download
DLASSQ
+
dependencies
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlassq.f"
>
*>
[
TGZ
]
</
a
>
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlassq.f"
>
*>
[
ZIP
]
</
a
>
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlassq.f"
>
*>
[
TXT
]
</
a
>
*>
\
endhtmlonly
*
*
Definition
:
*
===========
*
*
SUBROUTINE
DLASSQ
(
N
,
X
,
INCX
,
SCALE
,
SUMSQ
)
*
*
..
Scalar
Arguments
..
*
INTEGER
INCX
,
N
*
DOUBLE PRECISION
SCALE
,
SUMSQ
*
..
*
..
Array
Arguments
..
*
DOUBLE PRECISION
X
(
*
)
*
..
*
*
*>
\
par
Purpose
:
*
=============
*>
*>
\
verbatim
*>
*>
DLASSQ
returns
the
values
scl
and
smsq
such
that
*>
*>
(
scl
**
2
)
*
smsq
=
x
(
1
)
**
2
+
...
+
x
(
n
)
**
2
+
(
scale
**
2
)
*
sumsq
,
*>
*>
where
x
(
i
)
=
X
(
1
+
(
i
-
1
)
*
INCX
)
.
The
value
of
sumsq
is
*>
assumed
to
be
non
-
negative
and
scl
returns
the
value
*>
*>
scl
=
max
(
scale
,
abs
(
x
(
i
)
)
)
.
*>
*>
scale and
sumsq
must
be
supplied
in
SCALE and
SUMSQ
and
*>
scl
and
smsq
are
overwritten
on
SCALE and
SUMSQ
respectively
.
*>
*>
The
routine
makes
only
one
pass
through
the
vector
x
.
*>
\
endverbatim
*
*
Arguments
:
*
==========
*
*>
\
param
[
in
]
N
*>
\
verbatim
*>
N
is
INTEGER
*>
The
number
of
elements
to
be
used
from
the
vector
X
.
*>
\
endverbatim
*>
*>
\
param
[
in
]
X
*>
\
verbatim
*>
X
is
DOUBLE PRECISION
array
,
dimension
(
N
)
*>
The
vector
for
which
a
scaled
sum
of
squares
is
computed
.
*>
x
(
i
)
=
X
(
1
+
(
i
-
1
)
*
INCX
),
1
<=
i
<=
n
.
*>
\
endverbatim
*>
*>
\
param
[
in
]
INCX
*>
\
verbatim
*>
INCX
is
INTEGER
*>
The
increment
between
successive
values
of
the
vector
X
.
*>
INCX
>
0.
*>
\
endverbatim
*>
*>
\
param
[
in
,
out
]
SCALE
*>
\
verbatim
*>
SCALE
is
DOUBLE PRECISION
*>
On
entry
,
the
value
scale
in
the
equation
above
.
*>
On
exit
,
SCALE
is
overwritten
with
scl
,
the
scaling
factor
*>
for
the
sum
of
squares
.
*>
\
endverbatim
*>
*>
\
param
[
in
,
out
]
SUMSQ
*>
\
verbatim
*>
SUMSQ
is
DOUBLE PRECISION
*>
On
entry
,
the
value
sumsq
in
the
equation
above
.
*>
On
exit
,
SUMSQ
is
overwritten
with
smsq
,
the
basic
sum
of
*>
squares
from
which
scl
has
been
factored
out
.
*>
\
endverbatim
*
*
Authors
:
*
========
*
*>
\
author
Univ
.
of
Tennessee
*>
\
author
Univ
.
of
California
Berkeley
*>
\
author
Univ
.
of
Colorado
Denver
*>
\
author
NAG
Ltd
.
*
*>
\
date
September
2012
*
*>
\
ingroup
auxOTHERauxiliary
*
*
=====================================================================
SUBROUTINE
DLASSQ
(
N
,
X
,
INCX
,
SCALE
,
SUMSQ
)
*
*
--
LAPACK
auxiliary
routine
(
version
3.4.2
)
--
*
--
LAPACK
is
a
software
package
provided
by
Univ
.
of
Tennessee
,
--
*
--
Univ
.
of
California
Berkeley
,
Univ
.
of
Colorado
Denver
and
NAG
Ltd
..
--
*
September
2012
*
*
..
Scalar
Arguments
..
INTEGER
INCX
,
N
DOUBLE PRECISION
SCALE
,
SUMSQ
*
..
*
..
Array
Arguments
..
DOUBLE PRECISION
X
(
*
)
*
..
*
*
=====================================================================
*
*
..
Parameters
..
DOUBLE PRECISION
ZERO
PARAMETER
(
ZERO
=
0.0
D
+
0
)
*
..
*
..
Local
Scalars
..
INTEGER
IX
DOUBLE PRECISION
ABSXI
*
..
*
..
External
Functions
..
LOGICAL
DISNAN
EXTERNAL
DISNAN
*
..
*
..
Intrinsic
Functions
..
INTRINSIC
ABS
*
..
*
..
Executable
Statements
..
*
IF
(
N
.GT.
0
)
THEN
DO
10
IX
=
1
,
1
+
(
N
-
1
)
*
INCX
,
INCX
ABSXI
=
ABS
(
X
(
IX
)
)
IF
(
ABSXI
.GT.
ZERO
.OR.
DISNAN
(
ABSXI
)
)
THEN
IF
(
SCALE
.LT.
ABSXI
)
THEN
SUMSQ
=
1
+
SUMSQ
*
(
SCALE
/
ABSXI
)
**
2
SCALE
=
ABSXI
ELSE
SUMSQ
=
SUMSQ
+
(
ABSXI
/
SCALE
)
**
2
END IF
END IF
10
CONTINUE
END IF
RETURN
*
*
End
of
DLASSQ
*
END
Event Timeline
Log In to Comment