/*************************************************************************************************************************************/ /* */ /* 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. */