Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F80415142
zpptrf.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, Aug 31, 14:53
Size
6 KB
Mime Type
text/html
Expires
Mon, Sep 2, 14:53 (1 d, 22 h)
Engine
blob
Format
Raw Data
Handle
20220840
Attached To
rLAMMPS lammps
zpptrf.f
View Options
*>
\
brief
\
b
ZPPTRF
*
*
===========
DOCUMENTATION
===========
*
*
Online
html
documentation
available
at
*
http
:
//
www
.
netlib
.
org
/
lapack
/
explore
-
html
/
*
*>
\
htmlonly
*>
Download
ZPPTRF
+
dependencies
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zpptrf.f"
>
*>
[
TGZ
]
</
a
>
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zpptrf.f"
>
*>
[
ZIP
]
</
a
>
*>
<
a
href
=
"http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpptrf.f"
>
*>
[
TXT
]
</
a
>
*>
\
endhtmlonly
*
*
Definition
:
*
===========
*
*
SUBROUTINE
ZPPTRF
(
UPLO
,
N
,
AP
,
INFO
)
*
*
..
Scalar
Arguments
..
*
CHARACTER
UPLO
*
INTEGER
INFO
,
N
*
..
*
..
Array
Arguments
..
*
COMPLEX
*
16
AP
(
*
)
*
..
*
*
*>
\
par
Purpose
:
*
=============
*>
*>
\
verbatim
*>
*>
ZPPTRF
computes
the
Cholesky
factorization
of
a
complex
Hermitian
*>
positive
definite
matrix
A
stored
in
packed
format
.
*>
*>
The
factorization
has
the
form
*>
A
=
U
**
H
*
U
,
if
UPLO
=
'U'
,
or
*>
A
=
L
*
L
**
H
,
if
UPLO
=
'L'
,
*>
where
U
is
an
upper
triangular
matrix
and
L
is
lower
triangular
.
*>
\
endverbatim
*
*
Arguments
:
*
==========
*
*>
\
param
[
in
]
UPLO
*>
\
verbatim
*>
UPLO
is
CHARACTER
*
1
*>
=
'U'
:
Upper
triangle
of
A
is
stored
;
*>
=
'L'
:
Lower
triangle
of
A
is
stored
.
*>
\
endverbatim
*>
*>
\
param
[
in
]
N
*>
\
verbatim
*>
N
is
INTEGER
*>
The
order
of
the
matrix
A
.
N
>=
0.
*>
\
endverbatim
*>
*>
\
param
[
in
,
out
]
AP
*>
\
verbatim
*>
AP
is
COMPLEX
*
16
array
,
dimension
(
N
*
(
N
+
1
)
/
2
)
*>
On
entry
,
the
upper
or
lower
triangle
of
the
Hermitian
matrix
*>
A
,
packed
columnwise
in
a
linear
array
.
The
j
-
th
column
of
A
*>
is
stored
in
the
array
AP
as
follows
:
*>
if
UPLO
=
'U'
,
AP
(
i
+
(
j
-
1
)
*
j
/
2
)
=
A
(
i
,
j
)
for
1
<=
i
<=
j
;
*>
if
UPLO
=
'L'
,
AP
(
i
+
(
j
-
1
)
*
(
2
n
-
j
)
/
2
)
=
A
(
i
,
j
)
for
j
<=
i
<=
n
.
*>
See
below
for
further
details
.
*>
*>
On
exit
,
if
INFO
=
0
,
the
triangular
factor
U
or
L
from
the
*>
Cholesky
factorization
A
=
U
**
H
*
U
or
A
=
L
*
L
**
H
,
in
the
same
*>
storage
format
as
A
.
*>
\
endverbatim
*>
*>
\
param
[
out
]
INFO
*>
\
verbatim
*>
INFO
is
INTEGER
*>
=
0
:
successful
exit
*>
<
0
:
if
INFO
=
-
i
,
the
i
-
th
argument
had
an
illegal
value
*>
>
0
:
if
INFO
=
i
,
the
leading
minor
of
order
i
is
not
*>
positive
definite
,
and
the
factorization
could
not
be
*>
completed
.
*>
\
endverbatim
*
*
Authors
:
*
========
*
*>
\
author
Univ
.
of
Tennessee
*>
\
author
Univ
.
of
California
Berkeley
*>
\
author
Univ
.
of
Colorado
Denver
*>
\
author
NAG
Ltd
.
*
*>
\
date
November
2011
*
*>
\
ingroup
complex16OTHERcomputational
*
*>
\
par
Further
Details
:
*
=====================
*>
*>
\
verbatim
*>
*>
The
packed
storage
scheme
is
illustrated
by
the
following
example
*>
when
N
=
4
,
UPLO
=
'U'
:
*>
*>
Two
-
dimensional
storage
of
the
Hermitian
matrix
A
:
*>
*>
a11
a12
a13
a14
*>
a22
a23
a24
*>
a33
a34
(
aij
=
conjg
(
aji
))
*>
a44
*>
*>
Packed
storage
of
the
upper
triangle
of
A
:
*>
*>
AP
=
[
a11
,
a12
,
a22
,
a13
,
a23
,
a33
,
a14
,
a24
,
a34
,
a44
]
*>
\
endverbatim
*>
*
=====================================================================
SUBROUTINE
ZPPTRF
(
UPLO
,
N
,
AP
,
INFO
)
*
*
--
LAPACK
computational
routine
(
version
3.4.0
)
--
*
--
LAPACK
is
a
software
package
provided
by
Univ
.
of
Tennessee
,
--
*
--
Univ
.
of
California
Berkeley
,
Univ
.
of
Colorado
Denver
and
NAG
Ltd
..
--
*
November
2011
*
*
..
Scalar
Arguments
..
CHARACTER
UPLO
INTEGER
INFO
,
N
*
..
*
..
Array
Arguments
..
COMPLEX
*
16
AP
(
*
)
*
..
*
*
=====================================================================
*
*
..
Parameters
..
DOUBLE PRECISION
ZERO
,
ONE
PARAMETER
(
ZERO
=
0.0
D
+
0
,
ONE
=
1.0
D
+
0
)
*
..
*
..
Local
Scalars
..
LOGICAL
UPPER
INTEGER
J
,
JC
,
JJ
DOUBLE PRECISION
AJJ
*
..
*
..
External
Functions
..
LOGICAL
LSAME
COMPLEX
*
16
ZDOTC
EXTERNAL
LSAME
,
ZDOTC
*
..
*
..
External
Subroutines
..
EXTERNAL
XERBLA
,
ZDSCAL
,
ZHPR
,
ZTPSV
*
..
*
..
Intrinsic
Functions
..
INTRINSIC
DBLE
,
SQRT
*
..
*
..
Executable
Statements
..
*
*
Test
the
input
parameters
.
*
INFO
=
0
UPPER
=
LSAME
(
UPLO
,
'U'
)
IF
(
.NOT.
UPPER
.AND.
.NOT.
LSAME
(
UPLO
,
'L'
)
)
THEN
INFO
=
-
1
ELSE IF
(
N
.LT.
0
)
THEN
INFO
=
-
2
END IF
IF
(
INFO
.NE.
0
)
THEN
CALL
XERBLA
(
'ZPPTRF'
,
-
INFO
)
RETURN
END IF
*
*
Quick
return if
possible
*
IF
(
N
.EQ.
0
)
$
RETURN
*
IF
(
UPPER
)
THEN
*
*
Compute
the
Cholesky
factorization
A
=
U
**
H
*
U
.
*
JJ
=
0
DO
10
J
=
1
,
N
JC
=
JJ
+
1
JJ
=
JJ
+
J
*
*
Compute
elements
1
:
J
-
1
of
column
J
.
*
IF
(
J
.GT.
1
)
$
CALL
ZTPSV
(
'Upper'
,
'Conjugate transpose'
,
'Non-unit'
,
$
J
-
1
,
AP
,
AP
(
JC
),
1
)
*
*
Compute
U
(
J
,
J
)
and
test
for
non
-
positive
-
definiteness
.
*
AJJ
=
DBLE
(
AP
(
JJ
)
)
-
ZDOTC
(
J
-
1
,
AP
(
JC
),
1
,
AP
(
JC
),
$
1
)
IF
(
AJJ
.LE.
ZERO
)
THEN
AP
(
JJ
)
=
AJJ
GO
TO
30
END IF
AP
(
JJ
)
=
SQRT
(
AJJ
)
10
CONTINUE
ELSE
*
*
Compute
the
Cholesky
factorization
A
=
L
*
L
**
H
.
*
JJ
=
1
DO
20
J
=
1
,
N
*
*
Compute
L
(
J
,
J
)
and
test
for
non
-
positive
-
definiteness
.
*
AJJ
=
DBLE
(
AP
(
JJ
)
)
IF
(
AJJ
.LE.
ZERO
)
THEN
AP
(
JJ
)
=
AJJ
GO
TO
30
END IF
AJJ
=
SQRT
(
AJJ
)
AP
(
JJ
)
=
AJJ
*
*
Compute
elements
J
+
1
:
N
of
column
J
and
update
the
trailing
*
submatrix
.
*
IF
(
J
.LT.
N
)
THEN
CALL
ZDSCAL
(
N
-
J
,
ONE
/
AJJ
,
AP
(
JJ
+
1
),
1
)
CALL
ZHPR
(
'Lower'
,
N
-
J
,
-
ONE
,
AP
(
JJ
+
1
),
1
,
$
AP
(
JJ
+
N
-
J
+
1
)
)
JJ
=
JJ
+
N
-
J
+
1
END IF
20
CONTINUE
END IF
GO
TO
40
*
30
CONTINUE
INFO
=
J
*
40
CONTINUE
RETURN
*
*
End
of
ZPPTRF
*
END
Event Timeline
Log In to Comment