HiCMA
Hierarchical Computations on Manycore Architectures
pzhagcm.c
Go to the documentation of this file.
1 
20 /*
21  *
22  * file pzplrnt.c
23  *
24  * MORSE auxiliary routines
25  * MORSE is a software package provided by Univ. of Tennessee,
26  * Univ. of California Berkeley and Univ. of Colorado Denver
27  *
28  * version 2.5.0
29  * comment This file has been automatically generated
30  * from Plasma 2.5.0 for MORSE 1.0.0
31  * author Mathieu Faverge
32  * author Emmanuel Agullo
33  * author Cedric Castagnede
34  * date 2010-11-15
35  *
36  **/
37 #include "morse.h"
38 #include "control/common.h"
39 #include "hicma_runtime_z.h"
40 extern int store_only_diagonal_tiles;
41 
47  MORSE_enum uplo,
48  MORSE_desc_t *AUV,
49  MORSE_desc_t *Ark,
50  int numrows_matrix,
51  int numcols_matrix,
52  int numrows_block,
53  int numcols_block,
54  int maxrank, double tol,
55  MORSE_sequence_t *sequence, MORSE_request_t *request )
56 {
57  MORSE_desc_t *A = AUV; // FIXME
58  MORSE_context_t *morse;
59  MORSE_option_t options;
60 
61  int m, n;
62  int tempmm, tempnn;
63 
64  morse = morse_context_self();
65  if (sequence->status != MORSE_SUCCESS)
66  return;
67  RUNTIME_options_init(&options, morse, sequence, request);
68 
69  for (m = 0; m < A->mt; m++) {
70  tempmm = m == A->mt-1 ? numrows_matrix-m*numrows_block : numrows_block;
71  int ldamUV = BLKLDD(AUV, m);
72 
73  //for (n = 0; n < A->mt; n++) {
74  // tempnn = n == A->mt-1 ? A->m-n*A->mb : A->mb;
75  for (n = 0; n < A->nt; n++) { //I hope this change does not break anything
76  tempnn = n == A->nt-1 ? numcols_matrix-n*numcols_block : numcols_block;
77 
78  // if(m<n)
79  // continue;
80  if(uplo == MorseLower && m <= n)
81  continue;
82  else
83  if(uplo == MorseUpper && m >= n)
84  continue;
85  //printf("Tile (%d,%d) ldamUV=%d A->m=%d A->n=%d A->mb=%d A->nb=%d tempmm=%d tempnn=%d (%dx%d) (%dx%d) (%dx%d)\n", m, n, ldamUV, A->m, A->n, A->mb, A->nb, tempmm, tempnn, numrows_matrix, numcols_matrix, numrows_block, numcols_block, A->mt, A->nt);
86 
88  &options,
89  tempmm, tempnn,
90  AUV,
91  Ark,
92  m, n,
93  ldamUV, ldamUV,
94  maxrank, tol
95  );
96  }
97  }
98  RUNTIME_options_finalize(&options, morse);
99  //MORSE_TASK_dataflush_all(); removed in newer chameleon
100 }
#define AUV(m, n)
Definition: pzgemm.c:60
#define A(m, n)
Definition: pzgemm.c:56
void hicma_pzhagcm(MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *Ark, int numrows_matrix, int numcols_matrix, int numrows_block, int numcols_block, int maxrank, double tol, MORSE_sequence_t *sequence, MORSE_request_t *request)
Definition: pzhagcm.c:46
int store_only_diagonal_tiles
void HICMA_TASK_zhagcm(const MORSE_option_t *options, int m, int n, const MORSE_desc_t *AUV, const MORSE_desc_t *Ark, int Am, int An, int ldu, int ldv, int maxrank, double tol)
int uplo[2]