/*************************************************************************************************************************************/
/* */
/* C A L C U L D E L ' H Y P E R - H Y P E R - V O L U M E P R O P R E M E N T D I T : */
/* */
/* */
/* Author of '$xrs/hyper_hyper_volumes.12$I' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20230225112950). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C A L C U L D E L ' H Y P E R - H Y P E R - V O L U M E */
/* V I A L E S C O O R D O N N E E S C U R V I L I G N E S : */
/* */
/*************************************************************************************************************************************/
#include xrk/attractor.1A.I"
#include xrv/champs_5.19.I"
/* Pour eviter le message : */
/* */
/* Static function is not referenced. */
/* */
#include xrk/attractor.19.I"
/* Validations et definition de l'espace physique. */
#define w1_NORMALISEE \
NORM(w1,minimum_de_w1,maximum_de_w1)
#define w2_NORMALISEE \
NORM(w2,minimum_de_w2,maximum_de_w2)
#define w3_NORMALISEE \
NORM(w3,minimum_de_w3,maximum_de_w3)
#define w4_NORMALISEE \
NORM(w4,minimum_de_w4,maximum_de_w4)
#define w5_NORMALISEE \
NORM(w5,minimum_de_w5,maximum_de_w5)
#define w6_NORMALISEE \
NORM(w6,minimum_de_w6,maximum_de_w6)
#define w7_NORMALISEE \
NORM(w7,minimum_de_w7,maximum_de_w7)
#define w8_NORMALISEE \
NORM(w8,minimum_de_w8,maximum_de_w8)
/* Coordonnees {w1,w2,w3,w4,w5,w6,w7,w8} dans [0,1]... */
#define PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES \
Bblock \
Test(IL_FAUT(permuter_les_coordonnees_et_les_differentielles)) \
Bblock \
fSWAP(cx,dcx); \
fSWAP(cy,dcy); \
fSWAP(cz,dcz); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Permutation eventuelle des coordonnees et des differentielles. */
#define GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(Fx,Fy,Fz,calcul_point_courant,sequence_de_generation) \
Bblock \
DEFV(Float,INIT(w1_effectif,w1)); \
DEFV(Float,INIT(d_w1_effectif,d_w1)); \
\
DEFV(Float,INIT(w2_effectif,w2)); \
DEFV(Float,INIT(d_w2_effectif,d_w2)); \
\
DEFV(Float,INIT(w3_effectif,w3)); \
DEFV(Float,INIT(d_w3_effectif,d_w3)); \
\
DEFV(Float,INIT(w4_effectif,w4)); \
DEFV(Float,INIT(d_w4_effectif,d_w4)); \
\
DEFV(Float,INIT(w5_effectif,w5)); \
DEFV(Float,INIT(d_w5_effectif,d_w5)); \
\
DEFV(Float,INIT(w6_effectif,w6)); \
DEFV(Float,INIT(d_w6_effectif,d_w6)); \
\
DEFV(Float,INIT(w7_effectif,w7)); \
DEFV(Float,INIT(d_w7_effectif,d_w7)); \
\
DEFV(Float,INIT(w8_effectif,w8)); \
DEFV(Float,INIT(d_w8_effectif,d_w8)); \
\
EGAL(w1_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w1) \
,NEUT(w1_effectif) \
,MODF(w1_effectif,minimum_de_w1_effectif,maximum_de_w1_effectif) \
) \
); \
\
EGAL(w2_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w2) \
,NEUT(w2_effectif) \
,MODF(w2_effectif,minimum_de_w2_effectif,maximum_de_w2_effectif) \
) \
); \
\
EGAL(w3_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w3) \
,NEUT(w3_effectif) \
,MODF(w3_effectif,minimum_de_w3_effectif,maximum_de_w3_effectif) \
) \
); \
\
EGAL(w4_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w4) \
,NEUT(w4_effectif) \
,MODF(w4_effectif,minimum_de_w4_effectif,maximum_de_w4_effectif) \
) \
); \
\
EGAL(w5_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w5) \
,NEUT(w5_effectif) \
,MODF(w5_effectif,minimum_de_w5_effectif,maximum_de_w5_effectif) \
) \
); \
\
EGAL(w6_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w6) \
,NEUT(w6_effectif) \
,MODF(w6_effectif,minimum_de_w6_effectif,maximum_de_w6_effectif) \
) \
); \
\
EGAL(w7_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w7) \
,NEUT(w7_effectif) \
,MODF(w7_effectif,minimum_de_w7_effectif,maximum_de_w7_effectif) \
) \
); \
\
EGAL(w8_effectif \
,COND(IL_NE_FAUT_PAS(gestion_torique_de_w8) \
,NEUT(w8_effectif) \
,MODF(w8_effectif,minimum_de_w8_effectif,maximum_de_w8_effectif) \
) \
); \
\
Test(I8ET(IFINff(w1_effectif,minimum_de_w1_effectif,maximum_de_w1_effectif) \
,IFINff(w2_effectif,minimum_de_w2_effectif,maximum_de_w2_effectif) \
,IFINff(w3_effectif,minimum_de_w3_effectif,maximum_de_w3_effectif) \
,IFINff(w4_effectif,minimum_de_w4_effectif,maximum_de_w4_effectif) \
,IFINff(w5_effectif,minimum_de_w5_effectif,maximum_de_w5_effectif) \
,IFINff(w6_effectif,minimum_de_w6_effectif,maximum_de_w6_effectif) \
,IFINff(w7_effectif,minimum_de_w7_effectif,maximum_de_w7_effectif) \
,IFINff(w8_effectif,minimum_de_w8_effectif,maximum_de_w8_effectif) \
) \
) \
Bblock \
Test(I9OU(I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(NON_DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,NON_DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,NON_DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,NON_DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,NON_DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,NON_DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,NON_DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
,I8ET(DIVISIBLE(echantillonnage_courant_de_w1,echantillonnage_de_w1) \
,DIVISIBLE(echantillonnage_courant_de_w2,echantillonnage_de_w2) \
,DIVISIBLE(echantillonnage_courant_de_w3,echantillonnage_de_w3) \
,DIVISIBLE(echantillonnage_courant_de_w4,echantillonnage_de_w4) \
,DIVISIBLE(echantillonnage_courant_de_w5,echantillonnage_de_w5) \
,DIVISIBLE(echantillonnage_courant_de_w6,echantillonnage_de_w6) \
,DIVISIBLE(echantillonnage_courant_de_w7,echantillonnage_de_w7) \
,NON_DIVISIBLE(echantillonnage_courant_de_w8,echantillonnage_de_w8) \
) \
) \
) \
Bblock \
EGAL(cx \
,Fx(w1_effectif,w2_effectif,w3_effectif,w4_effectif \
,w5_effectif,w6_effectif,w7_effectif,w8_effectif \
) \
); \
EGAL(cy \
,Fy(w1_effectif,w2_effectif,w3_effectif,w4_effectif \
,w5_effectif,w6_effectif,w7_effectif,w8_effectif \
) \
); \
EGAL(cz \
,Fz(w1_effectif,w2_effectif,w3_effectif,w4_effectif \
,w5_effectif,w6_effectif,w7_effectif,w8_effectif \
) \
); \
/* Generation du point courant de l'hyper-hyper-volume... */ \
\
BLOC(sequence_de_generation); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock
#define index_definition_arbitraire \
index_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8 \
/* Afin de raccourcir certaines des lignes qui suivent... */
#define gGENER_HYPER_HYPER_VOLUME(Fx,Fy,Fz,calcul_point_courant,sequence_de_generation) \
Bblock \
DEFV(Float,INIT(differentielle_ROUGE,FLOT__UNDEF)); \
DEFV(Float,INIT(differentielle_VERTE,FLOT__UNDEF)); \
DEFV(Float,INIT(differentielle_BLEUE,FLOT__UNDEF)); \
DEFV(Logical,INIT(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,FAUX)); \
\
DEFV(Float,INIT(minimum_de_w1_effectif,minimum_de_w1)); \
DEFV(Float,INIT(maximum_de_w1_effectif,maximum_de_w1)); \
\
DEFV(Float,INIT(minimum_de_w2_effectif,minimum_de_w2)); \
DEFV(Float,INIT(maximum_de_w2_effectif,maximum_de_w2)); \
\
DEFV(Float,INIT(minimum_de_w3_effectif,minimum_de_w3)); \
DEFV(Float,INIT(maximum_de_w3_effectif,maximum_de_w3)); \
\
DEFV(Float,INIT(minimum_de_w4_effectif,minimum_de_w4)); \
DEFV(Float,INIT(maximum_de_w4_effectif,maximum_de_w4)); \
\
DEFV(Float,INIT(minimum_de_w5_effectif,minimum_de_w5)); \
DEFV(Float,INIT(maximum_de_w5_effectif,maximum_de_w5)); \
\
DEFV(Float,INIT(minimum_de_w6_effectif,minimum_de_w6)); \
DEFV(Float,INIT(maximum_de_w6_effectif,maximum_de_w6)); \
\
DEFV(Float,INIT(minimum_de_w7_effectif,minimum_de_w7)); \
DEFV(Float,INIT(maximum_de_w7_effectif,maximum_de_w7)); \
\
DEFV(Float,INIT(minimum_de_w8_effectif,minimum_de_w8)); \
DEFV(Float,INIT(maximum_de_w8_effectif,maximum_de_w8)); \
\
DEFV(Float,INIT(pas_de_w1_effectif,DIVI(pas_de_w1,diviseur_du_pas_de_w1))); \
DEFV(Float,INIT(pas_de_w2_effectif,DIVI(pas_de_w2,diviseur_du_pas_de_w2))); \
DEFV(Float,INIT(pas_de_w3_effectif,DIVI(pas_de_w3,diviseur_du_pas_de_w3))); \
DEFV(Float,INIT(pas_de_w4_effectif,DIVI(pas_de_w4,diviseur_du_pas_de_w4))); \
DEFV(Float,INIT(pas_de_w5_effectif,DIVI(pas_de_w5,diviseur_du_pas_de_w5))); \
DEFV(Float,INIT(pas_de_w6_effectif,DIVI(pas_de_w6,diviseur_du_pas_de_w6))); \
DEFV(Float,INIT(pas_de_w7_effectif,DIVI(pas_de_w7,diviseur_du_pas_de_w7))); \
DEFV(Float,INIT(pas_de_w8_effectif,DIVI(pas_de_w8,diviseur_du_pas_de_w8))); \
\
DEFV(Int,INIT(echantillonnage_courant_de_w1,translation_de_l_echantillonnage_de_w1)); \
/* Afin de gerer l'echantillonnage de 'w1'. */ \
\
DEFV(Float,INIT(pas_w1_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w2_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w3_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w4_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w5_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w6_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w7_de_differentiation,FLOT__UNDEF)); \
DEFV(Float,INIT(pas_w8_de_differentiation,FLOT__UNDEF)); \
\
EGAL(pas_w1_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w1_de_differentiation_est_homothetique),pas_de_w1_effectif,pas_de_w1) \
,diviseur_de_differentiation_de_w1 \
) \
); \
EGAL(pas_w2_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w2_de_differentiation_est_homothetique),pas_de_w2_effectif,pas_de_w2) \
,diviseur_de_differentiation_de_w2 \
) \
); \
EGAL(pas_w3_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w3_de_differentiation_est_homothetique),pas_de_w3_effectif,pas_de_w3) \
,diviseur_de_differentiation_de_w3 \
) \
); \
EGAL(pas_w4_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w4_de_differentiation_est_homothetique),pas_de_w4_effectif,pas_de_w4) \
,diviseur_de_differentiation_de_w4 \
) \
); \
EGAL(pas_w5_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w5_de_differentiation_est_homothetique),pas_de_w5_effectif,pas_de_w5) \
,diviseur_de_differentiation_de_w5 \
) \
); \
EGAL(pas_w6_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w6_de_differentiation_est_homothetique),pas_de_w6_effectif,pas_de_w6) \
,diviseur_de_differentiation_de_w6 \
) \
); \
EGAL(pas_w7_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w7_de_differentiation_est_homothetique),pas_de_w7_effectif,pas_de_w7) \
,diviseur_de_differentiation_de_w7 \
) \
); \
EGAL(pas_w8_de_differentiation \
,DIVI(COND(EST_VRAI(le_pas_de_w8_de_differentiation_est_homothetique),pas_de_w8_effectif,pas_de_w8) \
,diviseur_de_differentiation_de_w8 \
) \
); \
\
Test(IL_FAUT(definir_arbitrairement_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w1,translation_de_l_echantillonnage_de_w1)); \
DEFV(Int,INIT(echantillonnage_courant_de_w2,translation_de_l_echantillonnage_de_w2)); \
DEFV(Int,INIT(echantillonnage_courant_de_w3,translation_de_l_echantillonnage_de_w3)); \
DEFV(Int,INIT(echantillonnage_courant_de_w4,translation_de_l_echantillonnage_de_w4)); \
DEFV(Int,INIT(echantillonnage_courant_de_w5,translation_de_l_echantillonnage_de_w5)); \
DEFV(Int,INIT(echantillonnage_courant_de_w6,translation_de_l_echantillonnage_de_w6)); \
DEFV(Int,INIT(echantillonnage_courant_de_w7,translation_de_l_echantillonnage_de_w7)); \
DEFV(Int,INIT(echantillonnage_courant_de_w8,translation_de_l_echantillonnage_de_w8)); \
/* Ne servent qu'a permettre 'GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(...)' ci-apres... */ \
\
DEFV(Logical,INIT(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8,VRAI)); \
\
Tant(IL_FAUT(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8)) \
Bblock \
DEFV(Float,INIT(w1,ELEMENT_DU_FICHIER_COORDONNEES_w1(index_definition_arbitraire))); \
DEFV(Float,INIT(w2,ELEMENT_DU_FICHIER_COORDONNEES_w2(index_definition_arbitraire))); \
DEFV(Float,INIT(w3,ELEMENT_DU_FICHIER_COORDONNEES_w3(index_definition_arbitraire))); \
DEFV(Float,INIT(w4,ELEMENT_DU_FICHIER_COORDONNEES_w4(index_definition_arbitraire))); \
DEFV(Float,INIT(w5,ELEMENT_DU_FICHIER_COORDONNEES_w5(index_definition_arbitraire))); \
DEFV(Float,INIT(w6,ELEMENT_DU_FICHIER_COORDONNEES_w6(index_definition_arbitraire))); \
DEFV(Float,INIT(w7,ELEMENT_DU_FICHIER_COORDONNEES_w7(index_definition_arbitraire))); \
DEFV(Float,INIT(w8,ELEMENT_DU_FICHIER_COORDONNEES_w8(index_definition_arbitraire))); \
\
Test(I8ET(IFNE(w1,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w2,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w3,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w4,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w5,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w6,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w7,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
,IFNE(w8,separateur_de_definition_arbitraire_des_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8) \
) \
) \
Bblock \
Test(I3ET(IFNE_chaine(fichier_des_coordonnees_ROUGE,NOM_PIPE_Local) \
,IFNE_chaine(fichier_des_coordonnees_VERTE,NOM_PIPE_Local) \
,IFNE_chaine(fichier_des_coordonnees_BLEUE,NOM_PIPE_Local) \
) \
) \
Bblock \
EGAL(differentielle_ROUGE,ELEMENT_DU_FICHIER_COORDONNEES_ROUGE(index_definition_arbitraire)); \
EGAL(differentielle_VERTE,ELEMENT_DU_FICHIER_COORDONNEES_VERTE(index_definition_arbitraire)); \
EGAL(differentielle_BLEUE,ELEMENT_DU_FICHIER_COORDONNEES_BLEUE(index_definition_arbitraire)); \
/* Les initialisations de 'GENER_HYPER_HYPER_VOLUME_AVEC_DIF...(...)' */ \
/* sont donc ici "oubliees"... */ \
\
EGAL(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,VRAI); \
/* Afin de pouvoir definir {differentielle_x,differentielle_y,differentielle_z} */ \
/* dans 'GENER_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(...)' */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(IFNE_chaine(fichier_des_coordonnees_RAYON,NOM_PIPE_Local)) \
Bblock \
EGAL(rayon_de_visualisation,ELEMENT_DU_FICHIER_COORDONNEES_RAYON(index_definition_arbitraire)); \
/* Introduit le 20240517140240... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(IFNE_chaine(fichier_des_coordonnees_MASSE,NOM_PIPE_Local)) \
Bblock \
EGAL(masse_de_la_sphere_courante \
,ELEMENT_DU_FICHIER_COORDONNEES_MASSE(index_definition_arbitraire) \
); \
/* Introduit le 20240519090604... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(Fx,Fy,Fz \
,calcul_point_courant \
,sequence_de_generation \
); \
Eblock \
ATes \
Bblock \
EGAL(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8,FAUX); \
Eblock \
ETes \
\
INCR(index_definition_arbitraire,pas_de_parcours_d_un_fichier); \
\
Test(IFGT(index_definition_arbitraire,DERNIER_ELEMENT_D_UN_FICHIER)) \
Bblock \
EGAL(index_definition_arbitraire,PREMIER_ELEMENT_D_UN_FICHIER); \
EGAL(recuperer_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8,FAUX); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ETan \
Eblock \
ATes \
Bblock \
FDoIn(w1,minimum_de_w1_effectif,maximum_de_w1_effectif,pas_de_w1_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w2 \
,translation_de_l_echantillonnage_de_w2 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w2'. */ \
\
FDoIn(w2,minimum_de_w2_effectif,maximum_de_w2_effectif,pas_de_w2_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w3 \
,translation_de_l_echantillonnage_de_w3 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w3'. */ \
\
FDoIn(w3,minimum_de_w3_effectif,maximum_de_w3_effectif,pas_de_w3_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w4 \
,translation_de_l_echantillonnage_de_w4 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w4'. */ \
\
FDoIn(w4,minimum_de_w4_effectif,maximum_de_w4_effectif,pas_de_w4_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w5 \
,translation_de_l_echantillonnage_de_w5 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w5'. */ \
\
FDoIn(w5,minimum_de_w5_effectif,maximum_de_w5_effectif,pas_de_w5_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w6 \
,translation_de_l_echantillonnage_de_w6 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w6'. */ \
\
FDoIn(w6,minimum_de_w6_effectif,maximum_de_w6_effectif,pas_de_w6_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w7 \
,translation_de_l_echantillonnage_de_w7 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w7'. */ \
\
FDoIn(w7,minimum_de_w7_effectif,maximum_de_w7_effectif,pas_de_w7_effectif) \
Bblock \
DEFV(Int,INIT(echantillonnage_courant_de_w8 \
,translation_de_l_echantillonnage_de_w8 \
) \
); \
/* Afin de gerer l'echantillonnage de 'w8'. */ \
\
FDoIn(w8,minimum_de_w8_effectif,maximum_de_w8_effectif,pas_de_w8_effectif) \
Bblock \
GENERATION_DU_POINT_w1w2w3w4w5w6w7w8_COURANT(Fx,Fy,Fz \
,calcul_point_courant \
,sequence_de_generation \
); \
\
INCR(echantillonnage_courant_de_w8,I); \
/* Gestion de l'echantillonnage de 'w8'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w7,I); \
/* Gestion de l'echantillonnage de 'w7'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w6,I); \
/* Gestion de l'echantillonnage de 'w6'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w5,I); \
/* Gestion de l'echantillonnage de 'w5'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w4,I); \
/* Gestion de l'echantillonnage de 'w4'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w3,I); \
/* Gestion de l'echantillonnage de 'w3'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w2,I); \
/* Gestion de l'echantillonnage de 'w2'. */ \
Eblock \
EFDoI \
\
INCR(echantillonnage_courant_de_w1,I); \
/* Gestion de l'echantillonnage de 'w1'. */ \
Eblock \
EFDoI \
Eblock \
ETes \
\
Eblock \
/* Calcul et visualisation generale de l'hyper-hyper-volume pour un instant donne. */
#define LISTER_EVENTUELLEMENT_LES_COORDONNEES_w1_w2_w3_w4_w5_w6_w7_w8_DES_POINTS \
Bblock \
Test(IFET(IL_FAUT(lister_la_liste_des_points) \
,IL_FAUT(lister_les_coordonnees_w1_w2_w3_w4_w5_w6_w7_w8_des_points) \
) \
) \
Bblock \
Test(IFET(IZGT(rayon_de_visualisation) \
,IFOU(EST_VRAI(les_trois_les_differentielles_peuvent_etre_nulles) \
,IFET(EST_FAUX(les_trois_les_differentielles_peuvent_etre_nulles) \
,IFOU(IL_NE_FAUT_PAS(renormaliser_arbitrairement_derivees) \
,IFET(IL_FAUT(renormaliser_arbitrairement_derivees) \
,I3OU(IZNE(dcx) \
,IZNE(dcy) \
,IZNE(dcz) \
) \
) \
) \
) \
) \
) \
) \
Bblock \
CAL2(Prin8(" W1=%+.^^^ W2=%+.^^^ W3=%+.^^^ W4=%+.^^^ W5=%+.^^^ W6=%+.^^^ W7=%+.^^^ W8=%+.^^^ " \
,w1_effectif \
,w2_effectif \
,w3_effectif \
,w4_effectif \
,w5_effectif \
,w6_effectif \
,w7_effectif \
,w8_effectif \
) \
); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Listage des coordonnees {w1,w2,w3,w4,w5,w6,w7,w8} des points... */
#define GENER_HYPER_HYPER_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz,calcul_point_courant) \
Bblock \
DEFV(Float,INIT(d_w1,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w2,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w3,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w4,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w5,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w6,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w7,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w8,FLOT__UNDEF)); \
\
gGENER_HYPER_HYPER_VOLUME \
(Fx,Fy,Fz \
,calcul_point_courant \
,BLOC(Bblock \
RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \
/* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les */ \
/* extrema pourraient etre utilises pour la visualisation... */ \
\
BLOC(calcul_point_courant); \
/* Calculs eventuels d'informations specifiques au point courant... */ \
\
PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES; \
\
LISTER_EVENTUELLEMENT_LES_COORDONNEES_w1_w2_w3_w4_w5_w6_w7_w8_DES_POINTS; \
\
CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE) \
,SOUS(cy,Ycentre_ESPACE) \
,SOUS(cz,Zcentre_ESPACE) \
,dcx \
,dcy \
,dcz \
) \
); \
/* Memorisation du point courant. */ \
\
Eblock \
) \
) \
Eblock \
/* Calcul et visualisation de l'hyper-hyper-volume pour un instant donne sans */
/* differentiation. */
#define GENER_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz,calcul_point_courant) \
Bblock \
DEFV(Float,INIT(d_w1,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w2,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w3,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w4,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w5,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w6,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w7,FLOT__UNDEF)); \
DEFV(Float,INIT(d_w8,FLOT__UNDEF)); \
\
gGENER_HYPER_HYPER_VOLUME \
(Fx,Fy,Fz \
,calcul_point_courant \
,BLOC(Bblock \
DEFV(Float,INIT(differentielle_x,FLOT__UNDEF)); \
DEFV(Float,INIT(differentielle_y,FLOT__UNDEF)); \
DEFV(Float,INIT(differentielle_z,FLOT__UNDEF)); \
/* Definition des trois differentielles. */ \
\
Test(IL_FAUT(utiliser_les_differentielles_ROUGE_VERTE_BLEUE)) \
Bblock \
EGAL(differentielle_x,differentielle_ROUGE); \
EGAL(differentielle_y,differentielle_VERTE); \
EGAL(differentielle_z,differentielle_BLEUE); \
\
EGAL(utiliser_les_differentielles_ROUGE_VERTE_BLEUE,FAUX); \
/* Ne sert a rien, mais c'est plus sur... */ \
Eblock \
ATes \
Bblock \
EGAL(differentielle_x \
,DERIVATION_PARTIELLE(Fx(SOUS(w1_effectif \
,MUL2(facteur_x_de_pas_de_w1,pas_w1_de_differentiation) \
) \
,SOUS(w2_effectif \
,MUL2(facteur_x_de_pas_de_w2,pas_w2_de_differentiation) \
) \
,SOUS(w3_effectif \
,MUL2(facteur_x_de_pas_de_w3,pas_w3_de_differentiation) \
) \
,SOUS(w4_effectif \
,MUL2(facteur_x_de_pas_de_w4,pas_w4_de_differentiation) \
) \
,SOUS(w5_effectif \
,MUL2(facteur_x_de_pas_de_w5,pas_w5_de_differentiation) \
) \
,SOUS(w6_effectif \
,MUL2(facteur_x_de_pas_de_w6,pas_w6_de_differentiation) \
) \
,SOUS(w7_effectif \
,MUL2(facteur_x_de_pas_de_w7,pas_w7_de_differentiation) \
) \
,SOUS(w8_effectif \
,MUL2(facteur_x_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
,Fx(ADD2(w1_effectif \
,MUL2(facteur_x_de_pas_de_w1,pas_w1_de_differentiation) \
) \
,ADD2(w2_effectif \
,MUL2(facteur_x_de_pas_de_w2,pas_w2_de_differentiation) \
) \
,ADD2(w3_effectif \
,MUL2(facteur_x_de_pas_de_w3,pas_w3_de_differentiation) \
) \
,ADD2(w4_effectif \
,MUL2(facteur_x_de_pas_de_w4,pas_w4_de_differentiation) \
) \
,ADD2(w5_effectif \
,MUL2(facteur_x_de_pas_de_w5,pas_w5_de_differentiation) \
) \
,ADD2(w6_effectif \
,MUL2(facteur_x_de_pas_de_w6,pas_w6_de_differentiation) \
) \
,ADD2(w7_effectif \
,MUL2(facteur_x_de_pas_de_w7,pas_w7_de_differentiation) \
) \
,ADD2(w8_effectif \
,MUL2(facteur_x_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
,DOUB(GpytF8D(MUL2(facteur_x_de_pas_de_w1,pas_w1_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w2,pas_w2_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w3,pas_w3_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w4,pas_w4_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w5,pas_w5_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w6,pas_w6_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w7,pas_w7_de_differentiation) \
,MUL2(facteur_x_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
) \
); \
EGAL(differentielle_y \
,DERIVATION_PARTIELLE(Fy(SOUS(w1_effectif \
,MUL2(facteur_y_de_pas_de_w1,pas_w1_de_differentiation) \
) \
,SOUS(w2_effectif \
,MUL2(facteur_y_de_pas_de_w2,pas_w2_de_differentiation) \
) \
,SOUS(w3_effectif \
,MUL2(facteur_y_de_pas_de_w3,pas_w3_de_differentiation) \
) \
,SOUS(w4_effectif \
,MUL2(facteur_y_de_pas_de_w4,pas_w4_de_differentiation) \
) \
,SOUS(w5_effectif \
,MUL2(facteur_y_de_pas_de_w5,pas_w5_de_differentiation) \
) \
,SOUS(w6_effectif \
,MUL2(facteur_y_de_pas_de_w6,pas_w6_de_differentiation) \
) \
,SOUS(w7_effectif \
,MUL2(facteur_y_de_pas_de_w7,pas_w7_de_differentiation) \
) \
,SOUS(w8_effectif \
,MUL2(facteur_y_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
,Fy(ADD2(w1_effectif \
,MUL2(facteur_y_de_pas_de_w1,pas_w1_de_differentiation) \
) \
,ADD2(w2_effectif \
,MUL2(facteur_y_de_pas_de_w2,pas_w2_de_differentiation) \
) \
,ADD2(w3_effectif \
,MUL2(facteur_y_de_pas_de_w3,pas_w3_de_differentiation) \
) \
,ADD2(w4_effectif \
,MUL2(facteur_y_de_pas_de_w4,pas_w4_de_differentiation) \
) \
,ADD2(w5_effectif \
,MUL2(facteur_y_de_pas_de_w5,pas_w5_de_differentiation) \
) \
,ADD2(w6_effectif \
,MUL2(facteur_y_de_pas_de_w6,pas_w6_de_differentiation) \
) \
,ADD2(w7_effectif \
,MUL2(facteur_y_de_pas_de_w7,pas_w7_de_differentiation) \
) \
,ADD2(w8_effectif \
,MUL2(facteur_y_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
,DOUB(GpytF8D(MUL2(facteur_y_de_pas_de_w1,pas_w1_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w2,pas_w2_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w3,pas_w3_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w4,pas_w4_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w5,pas_w5_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w6,pas_w6_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w7,pas_w7_de_differentiation) \
,MUL2(facteur_y_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
) \
); \
EGAL(differentielle_z \
,DERIVATION_PARTIELLE(Fz(SOUS(w1_effectif \
,MUL2(facteur_z_de_pas_de_w1,pas_w1_de_differentiation) \
) \
,SOUS(w2_effectif \
,MUL2(facteur_z_de_pas_de_w2,pas_w2_de_differentiation) \
) \
,SOUS(w3_effectif \
,MUL2(facteur_z_de_pas_de_w3,pas_w3_de_differentiation) \
) \
,SOUS(w4_effectif \
,MUL2(facteur_z_de_pas_de_w4,pas_w4_de_differentiation) \
) \
,SOUS(w5_effectif \
,MUL2(facteur_z_de_pas_de_w5,pas_w5_de_differentiation) \
) \
,SOUS(w6_effectif \
,MUL2(facteur_z_de_pas_de_w6,pas_w6_de_differentiation) \
) \
,SOUS(w7_effectif \
,MUL2(facteur_z_de_pas_de_w7,pas_w7_de_differentiation) \
) \
,SOUS(w8_effectif \
,MUL2(facteur_z_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
,Fz(ADD2(w1_effectif \
,MUL2(facteur_z_de_pas_de_w1,pas_w1_de_differentiation) \
) \
,ADD2(w2_effectif \
,MUL2(facteur_z_de_pas_de_w2,pas_w2_de_differentiation) \
) \
,ADD2(w3_effectif \
,MUL2(facteur_z_de_pas_de_w3,pas_w3_de_differentiation) \
) \
,ADD2(w4_effectif \
,MUL2(facteur_z_de_pas_de_w4,pas_w4_de_differentiation) \
) \
,ADD2(w5_effectif \
,MUL2(facteur_z_de_pas_de_w5,pas_w5_de_differentiation) \
) \
,ADD2(w6_effectif \
,MUL2(facteur_z_de_pas_de_w6,pas_w6_de_differentiation) \
) \
,ADD2(w7_effectif \
,MUL2(facteur_z_de_pas_de_w7,pas_w7_de_differentiation) \
) \
,ADD2(w8_effectif \
,MUL2(facteur_z_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
,DOUB(GpytF8D(MUL2(facteur_z_de_pas_de_w1,pas_w1_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w2,pas_w2_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w3,pas_w3_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w4,pas_w4_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w5,pas_w5_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w6,pas_w6_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w7,pas_w7_de_differentiation) \
,MUL2(facteur_z_de_pas_de_w8,pas_w8_de_differentiation) \
) \
) \
) \
); \
Eblock \
ETes \
\
EGAL(dcx \
,LIZ14(ponderation_de__x_____dans_dx,cx \
,ponderation_de__y_____dans_dx,cy \
,ponderation_de__z_____dans_dx,cz \
,ponderation_de__w1_____dans_dx,w1 \
,ponderation_de__w2_____dans_dx,w2 \
,ponderation_de__w3_____dans_dx,w3 \
,ponderation_de__w4_____dans_dx,w4 \
,ponderation_de__w5_____dans_dx,w5 \
,ponderation_de__w6_____dans_dx,w6 \
,ponderation_de__w7_____dans_dx,w7 \
,ponderation_de__w8_____dans_dx,w8 \
,ponderation_de_dx_____dans_dx,differentielle_x \
,ponderation_de_dy_____dans_dx,differentielle_y \
,ponderation_de_dz_____dans_dx,differentielle_z \
) \
); \
EGAL(dcy \
,LIZ14(ponderation_de__x_____dans_dy,cx \
,ponderation_de__y_____dans_dy,cy \
,ponderation_de__z_____dans_dy,cz \
,ponderation_de__w1_____dans_dy,w1 \
,ponderation_de__w2_____dans_dy,w2 \
,ponderation_de__w3_____dans_dy,w3 \
,ponderation_de__w4_____dans_dy,w4 \
,ponderation_de__w5_____dans_dy,w5 \
,ponderation_de__w6_____dans_dy,w6 \
,ponderation_de__w7_____dans_dy,w7 \
,ponderation_de__w8_____dans_dy,w8 \
,ponderation_de_dx_____dans_dy,differentielle_x \
,ponderation_de_dy_____dans_dy,differentielle_y \
,ponderation_de_dz_____dans_dy,differentielle_z \
) \
); \
EGAL(dcz \
,LIZ14(ponderation_de__x_____dans_dz,cx \
,ponderation_de__y_____dans_dz,cy \
,ponderation_de__z_____dans_dz,cz \
,ponderation_de__w1_____dans_dz,w1 \
,ponderation_de__w2_____dans_dz,w2 \
,ponderation_de__w3_____dans_dz,w3 \
,ponderation_de__w4_____dans_dz,w4 \
,ponderation_de__w5_____dans_dz,w5 \
,ponderation_de__w6_____dans_dz,w6 \
,ponderation_de__w7_____dans_dz,w7 \
,ponderation_de__w8_____dans_dz,w8 \
,ponderation_de_dx_____dans_dz,differentielle_x \
,ponderation_de_dy_____dans_dz,differentielle_y \
,ponderation_de_dz_____dans_dz,differentielle_z \
) \
); \
/* Calcul des couleurs utiles... */ \
\
RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \
/* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les */ \
/* extrema pourraient etre utilises pour la visualisation... */ \
\
BLOC(calcul_point_courant); \
/* Calculs eventuels d'informations specifiques au point courant... */ \
\
PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES; \
\
LISTER_EVENTUELLEMENT_LES_COORDONNEES_w1_w2_w3_w4_w5_w6_w7_w8_DES_POINTS; \
\
CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE) \
,SOUS(cy,Ycentre_ESPACE) \
,SOUS(cz,Zcentre_ESPACE) \
,dcx \
,dcy \
,dcz \
) \
); \
/* Memorisation du point courant. */ \
Eblock \
) \
) \
Eblock \
/* Calcul et visualisation de l'hyper-hyper-volume pour un instant donne avec */ \
/* differentiation numerique. */
#define VISUALISATION_GENERALE_DE_L_HYPER_HYPER_VOLUME(calcul_des_parametres,calcul_de_l_hyper_hyper_volume,Fx,Fy,Fz,Pxyz) \
Bblock \
RE_INITIALISATION_DE_L_HORLOGE; \
/* Depuis que le 19990512152305 a ete mis en place un : */ \
/* */ \
/* INCREMENTATION_DE_L_HORLOGE(dct); */ \
/* */ \
/* apres chaque image, l'initialisation de l'horloge ne doit plus etre faite pour chaque */ \
/* image, mais une seul fois, au tout debut... */ \
\
Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation) \
Bblock \
INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante); \
/* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image. */ \
\
BLOC(calcul_des_parametres); \
/* Calcul des parametres evoluant au cours de la simulation... */ \
\
BLOC(calcul_de_l_hyper_hyper_volume); \
/* Calcul de l'hyper-hyper-volume proprement dit... */ \
\
GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;)); \
/* Generation de l'image courante... */ \
\
INCREMENTATION_DE_L_HORLOGE(dct); \
Eblock \
EKom \
\
EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \
/* Edition facultative des extrema des coordonnees. */ \
Eblock \
/* Calcul et visualisation de l'hyper-hyper-volume avec evolution temporelle... */
#define VISUALISATION_DE_L_HYPER_HYPER_VOLUME_SANS_DIFFERENTIATION(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc) \
Bblock \
VISUALISATION_GENERALE_DE_L_HYPER_HYPER_VOLUME(BLOC(calcul_des_parametres) \
,BLOC(Bblock \
GENER_HYPER_HYPER_VOLUME_SANS_DIFFERENTIATION(Fx,Fy,Fz \
,BLOC(calcul_pc) \
); \
Eblock \
) \
,Fx,Fy,Fz \
,Pxyz \
); \
Eblock \
/* Calcul sans differentiation et visualisation de l'hyper-hyper-volume avec evolution */
/* temporelle. */
#define VISUALISATION_DE_L_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc) \
Bblock \
VISUALISATION_GENERALE_DE_L_HYPER_HYPER_VOLUME(BLOC(calcul_des_parametres) \
,BLOC(Bblock \
GENER_HYPER_HYPER_VOLUME_AVEC_DIFFERENCES____(Fx,Fy,Fz \
,BLOC(calcul_pc) \
); \
Eblock \
) \
,Fx,Fy,Fz \
,Pxyz \
); \
Eblock \
/* Calcul avec differentiation et visualisation de l'hyper-hyper-volume avec evolution */
/* temporelle. */