73 const int sig_size = 5;
75 ArrOfDouble facteurs(sig_size);
78 facteurs[0] = 1.35914091422952;
79 for (
int i = 1; i < sig_size; i++)
80 facteurs[i] = facteurs[i-1] * facteurs[0];
82 for (
int i = 0; i < sig_size; i++)
85 VECT(DoubleTab) sig_factors(3);
86 for (
int dir = 0; dir < 3; dir++)
89 sig_factors[dir].resize(n, sig_size);
91 for (
int i = 0; i < n; i++)
92 for (
int j = 0; j < sig_size; j++)
93 sig_factors[dir](i,j) = cos(facteurs[j] * (i+offset));
96 const int ni = field.
ni();
97 const int nj = field.
nj();
98 const int nk = field.
nk();
99 for (
int k = 0; k < nk; k++)
101 for (
int j = 0; j < nj; j++)
103 for (
int i = 0; i < ni; i++)
105 double data = field(i,j,k);
106 for (
int l = 0; l < sig_size; l++)
108 signature[l] += data * sig_factors[0](i,l) * sig_factors[1](j,l) * sig_factors[2](k,l);
128 snprintf(ss, 1000,
"%20.13g ", sig[i]);
132 Journal() <<
"DEBOG1:" << s << finl;
142 snprintf(ss, 1000,
"%20.13g ", sig2[i]);
146 std::getline(
infile_.get_ifstream(), ligne);
147 Journal() <<
"DEBOG2:" << s2 << ligne.c_str() << finl;
152 double m = std::max(fabs(sig[i]),fabs(sig2[i]));
160 Cerr <<
"DEBOG: error" << finl <<
"THIS:" << s << finl <<
"REF: " << s2 << finl;
170 const int sig_size = 5;
172 ArrOfDouble facteurs(sig_size);
175 facteurs[0] = 1.35914091422952;
176 for (
int i = 1; i < sig_size; i++)
177 facteurs[i] = facteurs[i-1] * facteurs[0];
179 for (
int i = 0; i < sig_size; i++)
182 VECT(DoubleTab) sig_factors(3);
183 for (
int dir = 0; dir < 3; dir++)
186 sig_factors[dir].resize(n, sig_size);
188 for (
int i = 0; i < n; i++)
189 for (
int j = 0; j < sig_size; j++)
190 sig_factors[dir](i,j) = cos(facteurs[j] * (i+offset));
193 const int ni = field.
ni();
194 const int nj = field.
nj();
195 const int nk = field.
nk();
196 for (
int k = 0; k < nk; k++)
198 for (
int j = 0; j < nj; j++)
200 for (
int i = 0; i < ni; i++)
202 double data = field(i,j,k);
203 for (
int l = 0; l < sig_size; l++)
205 signature[l] += data * sig_factors[0](i,l) * sig_factors[1](j,l) * sig_factors[2](k,l);
225 snprintf(ss, 1000,
"%20.13g ", sig[i]);
229 Journal() <<
"DEBOG1:" << s << finl;
239 snprintf(ss, 1000,
"%20.13g ", sig2[i]);
243 std::getline(
infile_.get_ifstream(), ligne);
244 Journal() <<
"DEBOG2:" << s2 << ligne.c_str() << finl;
249 double m = std::max(fabs(sig[i]),fabs(sig2[i]));
257 Cerr <<
"DEBOG: error" << finl <<
"THIS:" << s << finl <<
"REF: " << s2 << finl;
static void compute_signature(const IJK_Field_float &, ArrOfDouble &signature)
static void verifier(const char *msg, const IJK_Field_float &)
static double seuil_minimum_relatif_
static double seuil_relatif_
Entree & interpreter(Entree &) override
static double seuil_absolu_
int get_offset_local(int direction) const
Returns the local offset in requested direction.
File for reading. This class is to the C++ ifstream class what the Entree class is to the.
Class defining operators and methods for all reading operation in an input flow (file,...
int nb_elem_local(int dir) const
const Domaine_IJK & get_domaine() const
Base class for "interpreter" objects.
class Nom: a character string for naming TRUST objects.
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Helper class to factorize the readOn method of Objet_U classes.
void dictionnaire(const char *option_name, int value)
Add an (option name, integer value) entry to the dictionary attached to a previously registered integ...
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.
int lire_avec_accolades(Entree &is)
Alias of lire_avec_accolades_depuis.
static void mp_sum_for_each_item(TRUSTArray< _TYPE_ > &x, int n=-1)
static Sortie & Journal(int message_level=0)
Returns a static Sortie object used as an event journal.
static int je_suis_maitre()
Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
SFichier is to the C++ ofstream class what Sortie is to the C++ ostream class.
Base class for output streams.
_SIZE_ size_array() const
void resize_array(_SIZE_ new_size, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)