6 * \date 20 decembre 2009
15 * \fn void tic(struct timeval* temps, char* texte)
16 * \brief Initialise le compteur de temps
19 * \param[in] texte texte a afficher
22 void tic(struct timeval* temps, char* texte)
24 gettimeofday(temps, NULL);
27 printf("%s\n", texte) ;
31 * \fn double toc(struct timeval start, char* texte)
32 * \brief Calcule le temps ecoule
34 * \param[in] start temps de debut du chrono
35 * \param[in] texte texte a afficher
37 * \return le temps ecoule entre tic et toc
39 double toc(struct timeval start, char* texte)
44 gettimeofday(&end, NULL);
46 elapsed = (double)(end.tv_sec-start.tv_sec)
47 + 0.000001*(double)(end.tv_usec-start.tv_usec);
49 printf("%s : %f\n", texte, elapsed) ;
56 * \fn void min_max_int1d(int *val_min, int *val_max, int *vect, int dim)
57 * \brief determine le min et max d'un vecteur de int
62 * \param[in] dim dimension du vecteur
66 void min_max_int1d(int *val_min, int *val_max, int *vect, int dim)
75 if (vect[n] > max) max = vect[n];
76 if (vect[n] < min) min = vect[n];
83 void min_max_ushort1d(int *val_min, int *val_max, unsigned short *vect, int dim)
86 unsigned short min, max ;
93 if (vect[n] > max) max = vect[n];
94 if (vect[n] < min) min = vect[n];
105 * \fn inline int test_inf(double arg1, double arg2)
107 * \brief test (arg1 < arg2) inferieur a avec pourcentage minimum
114 inline int test_inf(double arg1, double arg2)
117 return arg1 < (arg2*COEF_DECROI) ;
119 return arg1 < (arg2*INV_COEF_DECROI) ;
127 * \fn inline int sign_diff_ou_egal_zero(int val1, int val2)
129 * \brief fonction qui test si les arguments sont de signes differents ou nuls
135 * \return le test 0/1
138 inline int sign_diff_ou_egal_zero(int val1, int val2)
142 if (val2 > 0) return 0 ;
148 if (val2 < 0) return 0 ;
152 return 1 ;/* val1 == 0 */
156 * \fn inline int sign_diff_strict(int val1, int val2)
158 * \brief fonction qui test si les arguments sont de signes differents strictement
164 * \return le test 0/1
167 inline int sign_diff_strict(int val1, int val2)
171 if (val2 >= 0) return 0 ;
177 if (val2 <= 0) return 0 ;
181 return 0 ;/* val1 == 0 */
187 * \fn inline int sinus_triangle(int Ai, int Aj, int Bi, int Bj, int Ci, int Cj)
189 * \brief calcul le "sinus" de l'angle du triangle ABC
192 * \param[in] Ai les coordonnees
199 * \return le sinus non normalise
201 * Cette fonction est utile pour determiner si un triangle ABC
202 * est donne dans l'ordre trigo.
203 * Signe > 0: sens trigo,
204 * signe < 0: sens antitrigo
207 inline int sinus_triangle(int Ai, int Aj, int Bi, int Bj, int Ci, int Cj)
209 return (((Bi-Ai)*(Cj-Aj)) - ((Ci-Ai)*(Bj-Aj))) ;
214 * \fn void recopie_vecteur(int *in, int *out, int dim)
216 * \brief recopie le vecteur out vers in
219 * \param[in] in vecteur d'entree
220 * \param[out] out vecteur recopier
221 * \param[in] dim longueur du vecteur
223 void recopie_vecteur(int *in, int *out, int dim)
226 for (n=0; n<dim; n++) out[n] = in[n] ;