Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
AGULLO Emmanuel
Chameleon
Commits
07d767f2
Commit
07d767f2
authored
Mar 02, 2017
by
THIBAULT Samuel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add iteration numbers for traces
parent
665853f4
Changes
27
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
142 additions
and
0 deletions
+142
-0
CMakeLists.txt
CMakeLists.txt
+5
-0
compute/pzgelqf.c
compute/pzgelqf.c
+2
-0
compute/pzgelqfrh.c
compute/pzgelqfrh.c
+2
-0
compute/pzgeqrf.c
compute/pzgeqrf.c
+2
-0
compute/pzgeqrfrh.c
compute/pzgeqrfrh.c
+2
-0
compute/pzgetrf_incpiv.c
compute/pzgetrf_incpiv.c
+2
-0
compute/pzgetrf_nopiv.c
compute/pzgetrf_nopiv.c
+2
-0
compute/pzhetrd_he2hb.c
compute/pzhetrd_he2hb.c
+4
-0
compute/pzpotrf.c
compute/pzpotrf.c
+4
-0
compute/pzpotrimm.c
compute/pzpotrimm.c
+16
-0
compute/pzsytrf.c
compute/pzsytrf.c
+4
-0
compute/pztpgqrt.c
compute/pztpgqrt.c
+2
-0
compute/pztpqrt.c
compute/pztpqrt.c
+2
-0
compute/pztrtri.c
compute/pztrtri.c
+4
-0
compute/pzunglq.c
compute/pzunglq.c
+2
-0
compute/pzunglqrh.c
compute/pzunglqrh.c
+2
-0
compute/pzungqr.c
compute/pzungqr.c
+2
-0
compute/pzungqrrh.c
compute/pzungqrrh.c
+2
-0
compute/pzunmlq.c
compute/pzunmlq.c
+8
-0
compute/pzunmlqrh.c
compute/pzunmlqrh.c
+8
-0
compute/pzunmqr.c
compute/pzunmqr.c
+8
-0
compute/pzunmqrrh.c
compute/pzunmqrrh.c
+8
-0
control/config.h.in
control/config.h.in
+1
-0
include/runtime.h
include/runtime.h
+2
-0
runtime/parsec/control/runtime_control.c
runtime/parsec/control/runtime_control.c
+14
-0
runtime/quark/control/runtime_control.c
runtime/quark/control/runtime_control.c
+14
-0
runtime/starpu/control/runtime_control.c
runtime/starpu/control/runtime_control.c
+18
-0
No files found.
CMakeLists.txt
View file @
07d767f2
...
@@ -706,6 +706,11 @@ if( CHAMELEON_SCHED_STARPU )
...
@@ -706,6 +706,11 @@ if( CHAMELEON_SCHED_STARPU )
set
(
HAVE_STARPU_IDLE_PREFETCH 1
)
set
(
HAVE_STARPU_IDLE_PREFETCH 1
)
message
(
"--
${
Blue
}
Add definition HAVE_STARPU_IDLE_PREFETCH
${
ColourReset
}
"
)
message
(
"--
${
Blue
}
Add definition HAVE_STARPU_IDLE_PREFETCH
${
ColourReset
}
"
)
endif
()
endif
()
check_function_exists
(
starpu_set_iteration STARPU_SET_ITERATION_FOUND
)
if
(
STARPU_SET_ITERATION_FOUND
)
set
(
HAVE_STARPU_SET_ITERATION 1
)
message
(
"--
${
Blue
}
Add definition HAVE_STARPU_SET_ITERATION
${
ColourReset
}
"
)
endif
()
check_function_exists
(
starpu_data_wont_use STARPU_DATA_WONT_USE_FOUND
)
check_function_exists
(
starpu_data_wont_use STARPU_DATA_WONT_USE_FOUND
)
if
(
STARPU_DATA_WONT_USE_FOUND
)
if
(
STARPU_DATA_WONT_USE_FOUND
)
set
(
HAVE_STARPU_DATA_WONT_USE 1
)
set
(
HAVE_STARPU_DATA_WONT_USE 1
)
...
...
compute/pzgelqf.c
View file @
07d767f2
...
@@ -115,6 +115,8 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T,
...
@@ -115,6 +115,8 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T,
#endif
#endif
for
(
k
=
0
;
k
<
minMNT
;
k
++
)
{
for
(
k
=
0
;
k
<
minMNT
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzgelqfrh.c
View file @
07d767f2
...
@@ -119,6 +119,8 @@ void morse_pzgelqfrh(MORSE_desc_t *A, MORSE_desc_t *T, int BS,
...
@@ -119,6 +119,8 @@ void morse_pzgelqfrh(MORSE_desc_t *A, MORSE_desc_t *T, int BS,
#endif
#endif
for
(
k
=
0
;
k
<
chameleon_min
(
A
->
mt
,
A
->
nt
);
k
++
)
{
for
(
k
=
0
;
k
<
chameleon_min
(
A
->
mt
,
A
->
nt
);
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
N
=
k
;
N
<
A
->
nt
;
N
+=
BS
)
{
for
(
N
=
k
;
N
<
A
->
nt
;
N
+=
BS
)
{
...
...
compute/pzgeqrf.c
View file @
07d767f2
...
@@ -110,6 +110,8 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T,
...
@@ -110,6 +110,8 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T,
#endif
#endif
for
(
k
=
0
;
k
<
minMNT
;
k
++
)
{
for
(
k
=
0
;
k
<
minMNT
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzgeqrfrh.c
View file @
07d767f2
...
@@ -118,6 +118,8 @@ void morse_pzgeqrfrh(MORSE_desc_t *A, MORSE_desc_t *T, int BS,
...
@@ -118,6 +118,8 @@ void morse_pzgeqrfrh(MORSE_desc_t *A, MORSE_desc_t *T, int BS,
K
=
chameleon_min
(
A
->
mt
,
A
->
nt
);
K
=
chameleon_min
(
A
->
mt
,
A
->
nt
);
for
(
k
=
0
;
k
<
K
;
k
++
)
{
for
(
k
=
0
;
k
<
K
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
for
(
M
=
k
;
M
<
A
->
mt
;
M
+=
BS
)
{
for
(
M
=
k
;
M
<
A
->
mt
;
M
+=
BS
)
{
tempMm
=
M
==
A
->
mt
-
1
?
A
->
m
-
M
*
A
->
mb
:
A
->
mb
;
tempMm
=
M
==
A
->
mt
-
1
?
A
->
m
-
M
*
A
->
mb
:
A
->
mb
;
...
...
compute/pzgetrf_incpiv.c
View file @
07d767f2
...
@@ -78,6 +78,8 @@ void morse_pzgetrf_incpiv(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV,
...
@@ -78,6 +78,8 @@ void morse_pzgetrf_incpiv(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV,
morse_zdesc_alloc_diag
(
*
DIAG
,
A
->
mb
,
A
->
nb
,
chameleon_min
(
A
->
m
,
A
->
n
),
A
->
nb
,
0
,
0
,
chameleon_min
(
A
->
m
,
A
->
n
),
A
->
nb
,
A
->
p
,
A
->
q
);
morse_zdesc_alloc_diag
(
*
DIAG
,
A
->
mb
,
A
->
nb
,
chameleon_min
(
A
->
m
,
A
->
n
),
A
->
nb
,
0
,
0
,
chameleon_min
(
A
->
m
,
A
->
n
),
A
->
nb
,
A
->
p
,
A
->
q
);
for
(
k
=
0
;
k
<
minMNT
;
k
++
)
{
for
(
k
=
0
;
k
<
minMNT
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzgetrf_nopiv.c
View file @
07d767f2
...
@@ -54,6 +54,8 @@ void morse_pzgetrf_nopiv(MORSE_desc_t *A,
...
@@ -54,6 +54,8 @@ void morse_pzgetrf_nopiv(MORSE_desc_t *A,
ib
=
MORSE_IB
;
ib
=
MORSE_IB
;
for
(
k
=
0
;
k
<
chameleon_min
(
A
->
mt
,
A
->
nt
);
k
++
)
{
for
(
k
=
0
;
k
<
chameleon_min
(
A
->
mt
,
A
->
nt
);
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzhetrd_he2hb.c
View file @
07d767f2
...
@@ -137,6 +137,8 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo,
...
@@ -137,6 +137,8 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo,
if
(
uplo
==
MorseLower
)
{
if
(
uplo
==
MorseLower
)
{
for
(
k
=
0
;
k
<
A
->
nt
-
1
;
k
++
){
for
(
k
=
0
;
k
<
A
->
nt
-
1
;
k
++
){
RUNTIME_set_iteration
(
k
);
tempkm
=
k
+
1
==
A
->
mt
-
1
?
A
->
m
-
(
k
+
1
)
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
+
1
==
A
->
mt
-
1
?
A
->
m
-
(
k
+
1
)
*
A
->
mb
:
A
->
mb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak1
=
BLKLDD
(
A
,
k
+
1
);
ldak1
=
BLKLDD
(
A
,
k
+
1
);
...
@@ -290,6 +292,8 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo,
...
@@ -290,6 +292,8 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo,
}
}
else
{
else
{
for
(
k
=
0
;
k
<
A
->
nt
-
1
;
k
++
){
for
(
k
=
0
;
k
<
A
->
nt
-
1
;
k
++
){
RUNTIME_set_iteration
(
k
);
tempkn
=
k
+
1
==
A
->
nt
-
1
?
A
->
n
-
(
k
+
1
)
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
+
1
==
A
->
nt
-
1
?
A
->
n
-
(
k
+
1
)
*
A
->
nb
:
A
->
nb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzpotrf.c
View file @
07d767f2
...
@@ -71,6 +71,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
...
@@ -71,6 +71,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
*/
*/
if
(
uplo
==
MorseLower
)
{
if
(
uplo
==
MorseLower
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -128,6 +130,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
...
@@ -128,6 +130,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
*/
*/
else
{
else
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkm
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzpotrimm.c
View file @
07d767f2
...
@@ -76,6 +76,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -76,6 +76,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZPOTRF
* ZPOTRF
*/
*/
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -124,6 +126,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -124,6 +126,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZTRTRI
* ZTRTRI
*/
*/
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
A
->
nt
+
k
);
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
m
=
k
+
1
;
m
<
A
->
mt
;
m
++
)
{
for
(
m
=
k
+
1
;
m
<
A
->
mt
;
m
++
)
{
...
@@ -170,6 +174,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -170,6 +174,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZLAUUM
* ZLAUUM
*/
*/
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
2
*
A
->
nt
+
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
n
=
0
;
n
<
k
;
n
++
)
{
for
(
n
=
0
;
n
<
k
;
n
++
)
{
...
@@ -211,6 +217,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -211,6 +217,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZSYMM Right / Lower
* ZSYMM Right / Lower
*/
*/
for
(
k
=
0
;
k
<
C
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
C
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
3
*
A
->
nt
+
k
);
tempkn
=
k
==
C
->
nt
-
1
?
C
->
n
-
k
*
C
->
nb
:
C
->
nb
;
tempkn
=
k
==
C
->
nt
-
1
?
C
->
n
-
k
*
C
->
nb
:
C
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
zbeta
=
k
==
0
?
beta
:
zone
;
zbeta
=
k
==
0
?
beta
:
zone
;
...
@@ -269,6 +277,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -269,6 +277,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZPOTRF
* ZPOTRF
*/
*/
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkm
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
MORSE_TASK_zpotrf
(
MORSE_TASK_zpotrf
(
...
@@ -317,6 +327,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -317,6 +327,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZTRTRI
* ZTRTRI
*/
*/
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
A
->
nt
+
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
n
=
k
+
1
;
n
<
A
->
nt
;
n
++
)
{
for
(
n
=
k
+
1
;
n
<
A
->
nt
;
n
++
)
{
...
@@ -363,6 +375,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -363,6 +375,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZLAUUM
* ZLAUUM
*/
*/
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
2
*
A
->
nt
+
k
);
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -406,6 +420,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
...
@@ -406,6 +420,8 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de
* ZSYMM Right / Upper
* ZSYMM Right / Upper
*/
*/
for
(
k
=
0
;
k
<
C
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
C
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
3
*
A
->
nt
+
k
);
tempkn
=
k
==
C
->
nt
-
1
?
C
->
n
-
k
*
C
->
nb
:
C
->
nb
;
tempkn
=
k
==
C
->
nt
-
1
?
C
->
n
-
k
*
C
->
nb
:
C
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
zbeta
=
k
==
0
?
beta
:
zone
;
zbeta
=
k
==
0
?
beta
:
zone
;
...
...
compute/pzsytrf.c
View file @
07d767f2
...
@@ -60,6 +60,8 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A,
...
@@ -60,6 +60,8 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A,
*/
*/
if
(
uplo
==
MorseLower
)
{
if
(
uplo
==
MorseLower
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -110,6 +112,8 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A,
...
@@ -110,6 +112,8 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A,
*/
*/
else
{
else
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkm
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
MORSE_TASK_zsytrf_nopiv
(
MORSE_TASK_zsytrf_nopiv
(
...
...
compute/pztpgqrt.c
View file @
07d767f2
...
@@ -101,6 +101,8 @@ void morse_pztpgqrt( int L,
...
@@ -101,6 +101,8 @@ void morse_pztpgqrt( int L,
#endif
#endif
for
(
k
=
V1
->
nt
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
V1
->
nt
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
V1
->
mt
-
1
?
V1
->
m
-
k
*
V1
->
mb
:
V1
->
mb
;
tempkm
=
k
==
V1
->
mt
-
1
?
V1
->
m
-
k
*
V1
->
mb
:
V1
->
mb
;
tempkk
=
k
==
V1
->
nt
-
1
?
V1
->
n
-
k
*
V1
->
nb
:
V1
->
nb
;
tempkk
=
k
==
V1
->
nt
-
1
?
V1
->
n
-
k
*
V1
->
nb
:
V1
->
nb
;
tempkn
=
k
==
Q1
->
nt
-
1
?
Q1
->
n
-
k
*
Q1
->
nb
:
Q1
->
nb
;
tempkn
=
k
==
Q1
->
nt
-
1
?
Q1
->
n
-
k
*
Q1
->
nb
:
Q1
->
nb
;
...
...
compute/pztpqrt.c
View file @
07d767f2
...
@@ -91,6 +91,8 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T,
...
@@ -91,6 +91,8 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T,
RUNTIME_options_ws_alloc
(
&
options
,
ws_worker
,
ws_host
);
RUNTIME_options_ws_alloc
(
&
options
,
ws_worker
,
ws_host
);
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pztrtri.c
View file @
07d767f2
...
@@ -56,6 +56,8 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A,
...
@@ -56,6 +56,8 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A,
*/
*/
if
(
uplo
==
MorseLower
)
{
if
(
uplo
==
MorseLower
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
nt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
m
=
k
+
1
;
m
<
A
->
mt
;
m
++
)
{
for
(
m
=
k
+
1
;
m
<
A
->
mt
;
m
++
)
{
...
@@ -104,6 +106,8 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A,
...
@@ -104,6 +106,8 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A,
*/
*/
else
{
else
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
for
(
k
=
0
;
k
<
A
->
mt
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
n
=
k
+
1
;
n
<
A
->
nt
;
n
++
)
{
for
(
n
=
k
+
1
;
n
<
A
->
nt
;
n
++
)
{
...
...
compute/pzunglq.c
View file @
07d767f2
...
@@ -98,6 +98,8 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T,
...
@@ -98,6 +98,8 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T,
#endif
#endif
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempAkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempAkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempAkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempAkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
chameleon_min
(
tempAkn
,
tempAkm
);
tempkmin
=
chameleon_min
(
tempAkn
,
tempAkm
);
...
...
compute/pzunglqrh.c
View file @
07d767f2
...
@@ -99,6 +99,8 @@ void morse_pzunglqrh(MORSE_desc_t *A, MORSE_desc_t *Q,
...
@@ -99,6 +99,8 @@ void morse_pzunglqrh(MORSE_desc_t *A, MORSE_desc_t *Q,
K
=
chameleon_min
(
A
->
mt
,
A
->
nt
);
K
=
chameleon_min
(
A
->
mt
,
A
->
nt
);
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
lastRD
=
0
;
lastRD
=
0
;
...
...
compute/pzungqr.c
View file @
07d767f2
...
@@ -98,6 +98,8 @@ void morse_pzungqr(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T,
...
@@ -98,6 +98,8 @@ void morse_pzungqr(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T,
#endif
#endif
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempAkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempAkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempAkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempAkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
chameleon_min
(
tempAkn
,
tempAkm
);
tempkmin
=
chameleon_min
(
tempAkn
,
tempAkm
);
...
...
compute/pzungqrrh.c
View file @
07d767f2
...
@@ -101,6 +101,8 @@ void morse_pzungqrrh(MORSE_desc_t *A, MORSE_desc_t *Q,
...
@@ -101,6 +101,8 @@ void morse_pzungqrrh(MORSE_desc_t *A, MORSE_desc_t *Q,
K
=
chameleon_min
(
A
->
mt
,
A
->
nt
);
K
=
chameleon_min
(
A
->
mt
,
A
->
nt
);
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
tempkn
=
k
==
A
->
nt
-
1
?
A
->
n
-
k
*
A
->
nb
:
A
->
nb
;
lastRD
=
0
;
lastRD
=
0
;
for
(
RD
=
BS
;
RD
<
A
->
mt
-
k
;
RD
*=
2
)
for
(
RD
=
BS
;
RD
<
A
->
mt
-
k
;
RD
*=
2
)
...
...
compute/pzunmlq.c
View file @
07d767f2
...
@@ -105,6 +105,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
...
@@ -105,6 +105,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
* MorseLeft / MorseNoTrans
* MorseLeft / MorseNoTrans
*/
*/
for
(
k
=
0
;
k
<
minMT
;
k
++
)
{
for
(
k
=
0
;
k
<
minMT
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -155,6 +157,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
...
@@ -155,6 +157,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
* MorseLeft / MorseConjTrans
* MorseLeft / MorseConjTrans
*/
*/
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -207,6 +211,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
...
@@ -207,6 +211,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
* MorseRight / MorseNoTrans
* MorseRight / MorseNoTrans
*/
*/
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkn
=
k
==
B
->
nt
-
1
?
B
->
n
-
k
*
B
->
nb
:
B
->
nb
;
tempkn
=
k
==
B
->
nt
-
1
?
B
->
n
-
k
*
B
->
nb
:
B
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -257,6 +263,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
...
@@ -257,6 +263,8 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans,
* MorseRight / MorseConjTrans
* MorseRight / MorseConjTrans
*/
*/
for
(
k
=
0
;
k
<
minMT
;
k
++
)
{
for
(
k
=
0
;
k
<
minMT
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkn
=
k
==
B
->
nt
-
1
?
B
->
n
-
k
*
B
->
nb
:
B
->
nb
;
tempkn
=
k
==
B
->
nt
-
1
?
B
->
n
-
k
*
B
->
nb
:
B
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
mb
:
A
->
mb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
...
compute/pzunmlqrh.c
View file @
07d767f2
...
@@ -105,6 +105,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
...
@@ -105,6 +105,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
* MorseLeft / MorseNoTrans
* MorseLeft / MorseNoTrans
*/
*/
for
(
k
=
0
;
k
<
K
;
k
++
)
{
for
(
k
=
0
;
k
<
K
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
N
=
k
;
N
<
A
->
nt
;
N
+=
BS
)
{
for
(
N
=
k
;
N
<
A
->
nt
;
N
+=
BS
)
{
...
@@ -178,6 +180,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
...
@@ -178,6 +180,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
* MorseLeft / MorseConjTrans
* MorseLeft / MorseConjTrans
*/
*/
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
lastRD
=
0
;
lastRD
=
0
;
...
@@ -257,6 +261,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
...
@@ -257,6 +261,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
* MorseRight / MorseNoTrans
* MorseRight / MorseNoTrans
*/
*/
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
K
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
lastRD
=
0
;
lastRD
=
0
;
...
@@ -332,6 +338,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
...
@@ -332,6 +338,8 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans,
* MorseRight / MorseConjTrans
* MorseRight / MorseConjTrans
*/
*/
for
(
k
=
0
;
k
<
K
;
k
++
)
{
for
(
k
=
0
;
k
<
K
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
tempkm
=
k
==
A
->
mt
-
1
?
A
->
m
-
k
*
A
->
mb
:
A
->
mb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
for
(
N
=
k
;
N
<
A
->
nt
;
N
+=
BS
)
{
for
(
N
=
k
;
N
<
A
->
nt
;
N
+=
BS
)
{
...
...
compute/pzunmqr.c
View file @
07d767f2
...
@@ -105,6 +105,8 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
...
@@ -105,6 +105,8 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
* MorseLeft / MorseConjTrans
* MorseLeft / MorseConjTrans
*/
*/
for
(
k
=
0
;
k
<
minMT
;
k
++
)
{
for
(
k
=
0
;
k
<
minMT
;
k
++
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -156,6 +158,8 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
...
@@ -156,6 +158,8 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
*/
*/
else
{
else
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkm
=
k
==
B
->
mt
-
1
?
B
->
m
-
k
*
B
->
mb
:
B
->
mb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
ldak
=
BLKLDD
(
A
,
k
);
ldak
=
BLKLDD
(
A
,
k
);
...
@@ -209,6 +213,8 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
...
@@ -209,6 +213,8 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans,
else
{
else
{
if
(
trans
==
MorseConjTrans
)
{
if
(
trans
==
MorseConjTrans
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
for
(
k
=
minMT
-
1
;
k
>=
0
;
k
--
)
{
RUNTIME_set_iteration
(
k
);
tempkn
=
k
==
B
->
nt
-
1
?
B
->
n
-
k
*
B
->
nb
:
B
->
nb
;
tempkn
=
k
==
B
->
nt
-
1
?
B
->
n
-
k
*
B
->
nb
:
B
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->
nb
;
tempkmin
=
k
==
minMT
-
1
?
minM
-
k
*
A
->
nb
:
A
->