74 const int sig_size = 5;
76 ArrOfDouble facteurs(sig_size);
79 facteurs[0] = 1.35914091422952;
80 for (
int i = 1; i < sig_size; i++)
81 facteurs[i] = facteurs[i-1] * facteurs[0];
83 for (
int i = 0; i < sig_size; i++)
86 VECT(DoubleTab) sig_factors(3);
87 for (
int dir = 0; dir < 3; dir++)
90 sig_factors[dir].resize(n, sig_size);
92 for (
int i = 0; i < n; i++)
93 for (
int j = 0; j < sig_size; j++)
94 sig_factors[dir](i,j) = cos(facteurs[j] * (i+offset));
97 const int ni = field.
ni();
98 const int nj = field.
nj();
99 const int nk = field.
nk();
100 for (
int k = 0; k < nk; k++)
102 for (
int j = 0; j < nj; j++)
104 for (
int i = 0; i < ni; i++)
106 double data = field(i,j,k);
107 for (
int l = 0; l < sig_size; l++)
109 signature[l] += data * sig_factors[0](i,l) * sig_factors[1](j,l) * sig_factors[2](k,l);
129 snprintf(ss, 1000,
"%20.13g ", sig[i]);
133 Journal() <<
"DEBOG1:" << s << finl;
143 snprintf(ss, 1000,
"%20.13g ", sig2[i]);
147 std::getline(
infile_.get_ifstream(), ligne);
148 Journal() <<
"DEBOG2:" << s2 << ligne.c_str() << finl;
153 double m = std::max(fabs(sig[i]),fabs(sig2[i]));
161 Cerr <<
"DEBOG: erreur" << finl <<
"THIS:" << s << finl <<
"REF: " << s2 << finl;
172 const int sig_size = 5;
174 ArrOfDouble facteurs(sig_size);
177 facteurs[0] = 1.35914091422952;
178 for (
int i = 1; i < sig_size; i++)
179 facteurs[i] = facteurs[i-1] * facteurs[0];
181 for (
int i = 0; i < sig_size; i++)
184 VECT(DoubleTab) sig_factors(3);
185 for (
int dir = 0; dir < 3; dir++)
188 sig_factors[dir].resize(n, sig_size);
190 for (
int i = 0; i < n; i++)
191 for (
int j = 0; j < sig_size; j++)
192 sig_factors[dir](i,j) = cos(facteurs[j] * (i+offset));
195 const int ni = field.
ni();
196 const int nj = field.
nj();
197 const int nk = field.
nk();
198 for (
int k = 0; k < nk; k++)
200 for (
int j = 0; j < nj; j++)
202 for (
int i = 0; i < ni; i++)
204 double data = field(i,j,k);
205 for (
int l = 0; l < sig_size; l++)
207 signature[l] += data * sig_factors[0](i,l) * sig_factors[1](j,l) * sig_factors[2](k,l);
227 snprintf(ss, 1000,
"%20.13g ", sig[i]);
231 Journal() <<
"DEBOG1:" << s << finl;
241 snprintf(ss, 1000,
"%20.13g ", sig2[i]);
245 std::getline(
infile_.get_ifstream(), ligne);
246 Journal() <<
"DEBOG2:" << s2 << ligne.c_str() << finl;
251 double m = std::max(fabs(sig[i]),fabs(sig2[i]));
259 Cerr <<
"DEBOG: erreur" << 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.
Fichier en lecture Cette classe est a la classe C++ ifstream ce que la classe Entree est a la.
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
Classe de base des objets "interprete".
class Nom Une chaine de caractere pour nommer les objets de TRUST
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
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)
Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static int je_suis_maitre()
renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0),...
Cette classe est a la classe C++ ofstream ce que la classe Sortie est a la classe C++ ostream Elle re...
Classe de base des flux de sortie.
_SIZE_ size_array() const
void resize_array(_SIZE_ new_size, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)