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