Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F86330479
dlas2.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
Sat, Oct 5, 20:57
Size
5 KB
Mime Type
text/html
Expires
Mon, Oct 7, 20:57 (2 d)
Engine
blob
Format
Raw Data
Handle
21338302
Attached To
rLAMMPS lammps
dlas2.f
View Options
*>
\
brief
\
b
DLAS2
computes
singular
values
of
a
2
-
by
-
2
triangular
matrix
.
*
*
===========
DOCUMENTATION
===========
*
*
Online
html
documentation
available
at
*
http
:
//
www
.
netlib
.
org
/
lapack
/
explore
-
html
/
*
*>
\
htmlonly
*>
Download
DLAS2
+
dependencies
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlas2.f"
>
*>
[
TGZ
]
</
a
>
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlas2.f"
>
*>
[
ZIP
]
</
a
>
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlas2.f"
>
*>
[
TXT
]
</
a
>
*>
\
endhtmlonly
*
*
Definition
:
*
===========
*
*
SUBROUTINE
DLAS2
(
F
,
G
,
H
,
SSMIN
,
SSMAX
)
*
*
..
Scalar
Arguments
..
*
DOUBLE PRECISION
F
,
G
,
H
,
SSMAX
,
SSMIN
*
..
*
*
*>
\
par
Purpose
:
*
=============
*>
*>
\
verbatim
*>
*>
DLAS2
computes
the
singular
values
of
the
2
-
by
-
2
matrix
*>
[
F
G
]
*>
[
0
H
].
*>
On
return
,
SSMIN
is
the
smaller
singular
value
and
SSMAX
is
the
*>
larger
singular
value
.
*>
\
endverbatim
*
*
Arguments
:
*
==========
*
*>
\
param
[
in
]
F
*>
\
verbatim
*>
F
is
DOUBLE PRECISION
*>
The
(
1
,
1
)
element
of
the
2
-
by
-
2
matrix
.
*>
\
endverbatim
*>
*>
\
param
[
in
]
G
*>
\
verbatim
*>
G
is
DOUBLE PRECISION
*>
The
(
1
,
2
)
element
of
the
2
-
by
-
2
matrix
.
*>
\
endverbatim
*>
*>
\
param
[
in
]
H
*>
\
verbatim
*>
H
is
DOUBLE PRECISION
*>
The
(
2
,
2
)
element
of
the
2
-
by
-
2
matrix
.
*>
\
endverbatim
*>
*>
\
param
[
out
]
SSMIN
*>
\
verbatim
*>
SSMIN
is
DOUBLE PRECISION
*>
The
smaller
singular
value
.
*>
\
endverbatim
*>
*>
\
param
[
out
]
SSMAX
*>
\
verbatim
*>
SSMAX
is
DOUBLE PRECISION
*>
The
larger
singular
value
.
*>
\
endverbatim
*
*
Authors
:
*
========
*
*>
\
author
Univ
.
of
Tennessee
*>
\
author
Univ
.
of
California
Berkeley
*>
\
author
Univ
.
of
Colorado
Denver
*>
\
author
NAG
Ltd
.
*
*>
\
date
September
2012
*
*>
\
ingroup
auxOTHERauxiliary
*
*>
\
par
Further
Details
:
*
=====================
*>
*>
\
verbatim
*>
*>
Barring
over
/
underflow
,
all
output
quantities
are
correct
to
within
*>
a
few
units
in
the
last
place
(
ulps
),
even
in
the
absence
of
a
guard
*>
digit
in
addition
/
subtraction
.
*>
*>
In
IEEE
arithmetic
,
the
code
works
correctly
if
one
matrix
element
is
*>
infinite
.
*>
*>
Overflow
will
not
occur
unless
the
largest
singular
value
itself
*>
overflows
,
or
is
within
a
few
ulps
of
overflow
.
(
On
machines
with
*>
partial
overflow
,
like
the
Cray
,
overflow
may
occur
if
the
largest
*>
singular
value
is
within
a
factor
of
2
of
overflow
.
)
*>
*>
Underflow
is
harmless
if
underflow
is
gradual
.
Otherwise
,
results
*>
may
correspond
to
a
matrix
modified
by
perturbations
of
size
near
*>
the
underflow
threshold
.
*>
\
endverbatim
*>
*
=====================================================================
SUBROUTINE
DLAS2
(
F
,
G
,
H
,
SSMIN
,
SSMAX
)
*
*
--
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
..
DOUBLE PRECISION
F
,
G
,
H
,
SSMAX
,
SSMIN
*
..
*
*
====================================================================
*
*
..
Parameters
..
DOUBLE PRECISION
ZERO
PARAMETER
(
ZERO
=
0.0
D0
)
DOUBLE PRECISION
ONE
PARAMETER
(
ONE
=
1.0
D0
)
DOUBLE PRECISION
TWO
PARAMETER
(
TWO
=
2.0
D0
)
*
..
*
..
Local
Scalars
..
DOUBLE PRECISION
AS
,
AT
,
AU
,
C
,
FA
,
FHMN
,
FHMX
,
GA
,
HA
*
..
*
..
Intrinsic
Functions
..
INTRINSIC
ABS
,
MAX
,
MIN
,
SQRT
*
..
*
..
Executable
Statements
..
*
FA
=
ABS
(
F
)
GA
=
ABS
(
G
)
HA
=
ABS
(
H
)
FHMN
=
MIN
(
FA
,
HA
)
FHMX
=
MAX
(
FA
,
HA
)
IF
(
FHMN
.EQ.
ZERO
)
THEN
SSMIN
=
ZERO
IF
(
FHMX
.EQ.
ZERO
)
THEN
SSMAX
=
GA
ELSE
SSMAX
=
MAX
(
FHMX
,
GA
)
*
SQRT
(
ONE
+
$
(
MIN
(
FHMX
,
GA
)
/
MAX
(
FHMX
,
GA
)
)
**
2
)
END IF
ELSE
IF
(
GA
.LT.
FHMX
)
THEN
AS
=
ONE
+
FHMN
/
FHMX
AT
=
(
FHMX
-
FHMN
)
/
FHMX
AU
=
(
GA
/
FHMX
)
**
2
C
=
TWO
/
(
SQRT
(
AS
*
AS
+
AU
)
+
SQRT
(
AT
*
AT
+
AU
)
)
SSMIN
=
FHMN
*
C
SSMAX
=
FHMX
/
C
ELSE
AU
=
FHMX
/
GA
IF
(
AU
.EQ.
ZERO
)
THEN
*
*
Avoid
possible
harmful
underflow
if
exponent range
*
asymmetric
(
true
SSMIN
may
not
underflow
even
if
*
AU
underflows
)
*
SSMIN
=
(
FHMN
*
FHMX
)
/
GA
SSMAX
=
GA
ELSE
AS
=
ONE
+
FHMN
/
FHMX
AT
=
(
FHMX
-
FHMN
)
/
FHMX
C
=
ONE
/
(
SQRT
(
ONE
+
(
AS
*
AU
)
**
2
)
+
$
SQRT
(
ONE
+
(
AT
*
AU
)
**
2
)
)
SSMIN
=
(
FHMN
*
C
)
*
AU
SSMIN
=
SSMIN
+
SSMIN
SSMAX
=
GA
/
(
C
+
C
)
END IF
END IF
END IF
RETURN
*
*
End
of
DLAS2
*
END
Event Timeline
Log In to Comment