MIDAPACK - MIcrowave Data Analysis PACKage  1.1b
Parallel software tools for high performance CMB DA analysis
toeplitz_utils.c
Go to the documentation of this file.
1 
61 #include "toeplitz.h"
62 #include <time.h>
63 
64 extern int PRINT_RANK;
65 
66 // set of utilitaries routines - fd@apc
67 
68 
69 int defineTpltz(Tpltz *Nm1, int64_t nrow, int m_cw, int m_rw,
70  Block *tpltzblocks, int nb_blocks_loc, int nb_blocks_tot,
71  int64_t idp, int local_V_size, Flag flag_stgy, MPI_Comm comm) {
72 
73  Nm1->nrow = nrow; // glob //recup du fichier params apres (en variables
74  // globales)
75  Nm1->m_cw = m_cw; // glob
76  Nm1->m_rw = m_rw; // glob
77  Nm1->tpltzblocks = tpltzblocks; // toep
78  Nm1->nb_blocks_loc = nb_blocks_loc; // toep
79  Nm1->nb_blocks_tot = nb_blocks_tot; // toep
80  Nm1->idp = idp; // comput
81  Nm1->local_V_size = local_V_size; // comput
82  Nm1->flag_stgy = flag_stgy; // param
83  Nm1->comm = comm; // param
84 
85 
86  return 0;
87 }
88 
89 
90 int defineBlocks_avg(Block *tpltzblocks, double *T, int nb_blocks_loc,
91  int n_block_avg, int lambda_block_avg, int64_t id0) {
92 
93  int i;
94 
95 
96  for (i = 0; i < nb_blocks_loc; i++) tpltzblocks[i].n = n_block_avg;
97 
98  for (i = 0; i < nb_blocks_loc; i++)
99  tpltzblocks[i].lambda = lambda_block_avg;
100 
101  tpltzblocks[0].idv = (int64_t) (id0 / n_block_avg) * n_block_avg;
102  for (i = 1; i < nb_blocks_loc; i++)
103  tpltzblocks[i].idv =
104  (int64_t) tpltzblocks[i - 1].idv + tpltzblocks[i - 1].n;
105 
106  for (i = 0; i < nb_blocks_loc; i++) { tpltzblocks[i].T_block = (T); }
107 
108 
109  return 0;
110 }
111 
112 
113 //=============================================
114 
115 
116 int createRandomT(double *T, int Tsize) {
117 
118  int i;
119  srand(time(NULL)); // init seed
120 
121  // input matrix definition of T
122  for (i = 0; i < Tsize; i++) T[i] = rand() / ((double) RAND_MAX);
123 
124  return 0;
125 }
126 
127 
128 int createTbasic1(double *T, int Tsize) {
129 
130  int i;
131  srand(Tsize);
132 
133  // input matrix definition of T
134  for (i = 0; i < Tsize; i++) T[i] = 1.0 + rand() / ((double) RAND_MAX);
135 
136  return 0;
137 }
138 
139 
140 int createTbasic2(double *T, int Tsize) {
141 
142  int i;
143  srand(Tsize);
144 
145  // input matrix definition of T
146  for (i = 0; i < Tsize; i++) {
147  if (i == 0) {
148  T[i] = 10.;
149  } else if (i == 1) {
150  T[i] = 2.;
151  } else if (i == 2) {
152  T[i] = 3.;
153  } else {
154  T[i] = rand() / ((double) RAND_MAX);
155  }
156  }
157 
158  return 0;
159 }
160 
161 
162 int createTbasic3(double *T, int Tsize) {
163 
164  int i;
165  srand(Tsize);
166 
167  // input matrix definition of T
168  for (i = 0; i < Tsize; i++) {
169  if (i == 0) {
170  T[i] = 2.;
171  } else if (i == 1) {
172  T[i] = -1.;
173  } else if (i == 2) {
174  T[i] = 0.;
175  } else {
176  T[i] = 0.; // rand()/((double) RAND_MAX);
177  }
178  }
179 
180 
181  return 0;
182 }
183 
184 
185 int createTfrominvtt(double *T, int Tsize) {
186 
187  int i;
188 
189  // #include "invtt_params.h"
190 
191  double *invtt;
192 
193  T = invtt;
194  // createinvtt(invtt);
195 
196 
197  return 0;
198 }
int defineTpltz(Tpltz *Nm1, int64_t nrow, int m_cw, int m_rw, Block *tpltzblocks, int nb_blocks_loc, int nb_blocks_tot, int64_t idp, int local_V_size, Flag flag_stgy, MPI_Comm comm)
int PRINT_RANK
Definition: toeplitz.c:117
int createTbasic2(double *T, int Tsize)
int createTfrominvtt(double *T, int Tsize)
int createTbasic3(double *T, int Tsize)
int createTbasic1(double *T, int Tsize)
int defineBlocks_avg(Block *tpltzblocks, double *T, int nb_blocks_loc, int n_block_avg, int lambda_block_avg, int64_t id0)
int createRandomT(double *T, int Tsize)