/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D E   L ' E N S E M B L E   D E   J U L I A                                                                  */
/*        S U I V A N T   U N E   E Q U I P O T E N T I E L L E   D E                                                                */
/*        L ' E N S E M B L E   D E   M A N D E L B R O T                                                                            */
/*        D A N S   L ' E S P A C E   H Y P E R - H Y P E R - C O M P L E X E   :                                                    */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrc/julia.82$K' :                                                                                              */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20190321100430).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CL_____MODULE_NON_OPTIMISABLE

#define   GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE
#include  image_image_CONTOURS_EXT
#include  maths_compl_fonct_ITERATIONS_EXT
#include  image_image_QUAD_IMAGE_EXT

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   B A S E   E T   U N I V E R S E L L E S  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   NOMBRE_DE_PERIODES_DE_LA_SIMULATION                                                                                           \
                    UN                                                                                                                  \
                                        /* Definition du nombre de periodes pour '$xrq/nucleon.L3$I'.                                */

#include  xrk/attractor.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   COMPATIBILITE_20190321                                                                                                        \
                    FAUX                                                                                                                \
                                        /* Permet de proceder a des generations compatibles a celles qui furent effectues            */ \
                                        /* anterieurement au 20190321131030.                                                         */

#define   M_FENETRE_GAUCHE                                                                                                              \
                    PARE(-2.0)
#define   M_FENETRE_DROITE                                                                                                              \
                    PARE(0.5)

#define   vM_FENETRE_GAUCHE                                                                                                             \
                    CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE_GAUCHE(M_FENETRE_GAUCHE,M_FENETRE_DROITE)
#define   vM_FENETRE_DROITE                                                                                                             \
                    CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE_DROITE(M_FENETRE_GAUCHE,M_FENETRE_DROITE)

#define   M_FENETRE_GD                                                                                                                  \
                    SOUS(vM_FENETRE_DROITE,vM_FENETRE_GAUCHE)

#define   M_FENETRE_BAS                                                                                                                 \
                    PARE(-1.25)
#define   M_FENETRE_HAUT                                                                                                                \
                    PARE(1.25)

#define   vM_FENETRE_BAS                                                                                                                \
                    CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE_BAS(M_FENETRE_BAS,M_FENETRE_HAUT)
#define   vM_FENETRE_HAUT                                                                                                               \
                    CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE_HAUT(M_FENETRE_BAS,M_FENETRE_HAUT)

#define   M_FENETRE_BH                                                                                                                  \
                    SOUS(vM_FENETRE_HAUT,vM_FENETRE_BAS)
                                        /* Definition de la fenetre de calcul de l'ensemble de Mandelbrot.                           */

#define   M_COMPOSANTE_J                                                                                                                \
                    FZERO
#define   M_COMPOSANTE_K                                                                                                                \
                    FZERO
#define   M_COMPOSANTE_S                                                                                                                \
                    FZERO
#define   M_COMPOSANTE_T                                                                                                                \
                    FZERO
#define   M_COMPOSANTE_U                                                                                                                \
                    FZERO
#define   M_COMPOSANTE_V                                                                                                                \
                    FZERO
                                        /* Definition des composantes 'J', 'K', 'S', 'T', 'U' et 'V' des octonions pour              */
                                        /* l'ensemble de Mandelbrot.                                                                 */

#define   M_NOMBRE_D_ITERATIONS                                                                                                         \
                    QUAR(COULEURS)                                                                                                      \
                                        /* Nombre d'iterations demandees pour le calcul de l'ensemble de Mandelbrot.                 */

#define   SEUIL_D_EXTRACTION_DU_CONTOUR                                                                                                 \
                    GENP(MUL2(FLOT(PRED(PRED(PRED(PRED(PRED(MOIT(GRIS_1)))))))                                                          \
                             ,DIVI(FLOT__BLANC,FLOT(M_NOMBRE_D_ITERATIONS))                                                             \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Seuil d'extraction du contour, c'est-a-dire numero de l'equipotentielle.                  */

#define   E_DEPART_X                                                                                                                    \
                    _____cNORMALISE_OX(COND(IL_FAUT(compatibilite_20190321),I_cHOMOTHETIE_Std_OX(Xmin),Xmin))
#define   E_DEPART_Y                                                                                                                    \
                    _____cNORMALISE_OY(COND(IL_FAUT(compatibilite_20190321),I_cHOMOTHETIE_Std_OY(Ymin),Ymin))
                                        /* Point de depart de l'extraction de l'equipotentielle.                                     */
#define   NOMBRE_DE_CONTOURS                                                                                                            \
                    HUIT                                                                                                                \
                                        /* Nombre de contours interieurs a l'equipotentielle a extraire pour definir                 */ \
                                        /* le vrai contour que l'on va suivre ; s'il est nul, on prend directement                   */ \
                                        /* equipotentielle...                                                                        */
#define   C_DEPART_X                                                                                                                    \
                    _____cNORMALISE_OX(COND(IL_FAUT(compatibilite_20190321),I_cHOMOTHETIE_Std_OX(Xcentre),Xcentre))
#define   C_DEPART_Y                                                                                                                    \
                    _____cNORMALISE_OY(COND(IL_FAUT(compatibilite_20190321),I_cHOMOTHETIE_Std_OY(Ycentre),Ycentre))
                                        /* Point de depart de l'extraction de contour.                                               */
#define   CONTOUR                                                                                                                       \
                    BLANC                                                                                                               \
                                        /* Niveau de marquage du contour...                                                          */
#define   CALCUL                                                                                                                        \
                    ZERO                                                                                                                \
                                        /* Lorsque 'sauts_des_calculs' vaut 'CALCUL', l'image courante est                           */ \
                                        /* generee ; en fait, on ne calcule qu'une image sur 'pas_de_calcul'...                      */
#define   PAS_DE_CALCUL                                                                                                                 \
                    PAR0(QUATORZE)                                                                                                      \
                                        /* Pour une image calculee, on en saute 'pas_de_calcul'-1 ; ce nombre doit                   */ \
                                        /* etre pair afin de limiter au maximum les effets de saccades (en marches                   */ \
                                        /* d'escalier) lors du suivi des obliques du contour.                                        */

#define   EDITER_LE_NOMBRE_ARGUMENT_DES_JULIAS                                                                                          \
                    VRAI                                                                                                                \
                                        /* Indique s'il faut editer pour chaque calcul d'un ensemble de Julia l'octonion             */ \
                                        /* argument ('VRAI') ou pas ('FAUX').                                                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrc/ITERATION.11.I"

#define   GENERATEUR_REEL                                                                                                               \
                    AXPB(M_FENETRE_GD,ASD1(point_courant_extrait,x),vM_FENETRE_GAUCHE)
#define   GENERATEUR_IMAGINAIRE                                                                                                         \
                    AXPB(M_FENETRE_BH,ASD1(point_courant_extrait,y),vM_FENETRE_BAS)
                                        /* Definition du generateur de l'ensemble de Julia.                                          */

#define   DEFINE_CONTOUR(logique1,logique2)                                                                                             \
                    Bblock                                                                                                              \
                    BoIn(niveau,NOIR,SEUIL_D_EXTRACTION_DU_CONTOUR,I)                                                                   \
                         Bblock                                                                                                         \
                         EGAL(ITb1(exterieur,INDX(niveau,NOIR)),logique1);                                                              \
                         EGAL(ITb1(interieur,INDX(niveau,NOIR)),logique2);                                                              \
                         Eblock                                                                                                         \
                    EBoI                                                                                                                \
                    BoIn(niveau,SUCC(SEUIL_D_EXTRACTION_DU_CONTOUR),BLANC,I)                                                            \
                         Bblock                                                                                                         \
                         EGAL(ITb1(exterieur,INDX(niveau,NOIR)),logique2);                                                              \
                         EGAL(ITb1(interieur,INDX(niveau,NOIR)),logique1);                                                              \
                         Eblock                                                                                                         \
                    EBoI                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Definition de l'interieur et de l'exterieur d'un contour.                                 */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E S   R O T A T I O N S   T R I D I M E N S I O N N E L L E S  :                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   L ' I N T E R P O L A T I O N   D E S   P A R A M E T R E S  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D E   L ' E N S E M B L E   D E   J U L I A                                                                  */
/*        S U I V A N T   U N E   E Q U I P O T E N T I E L L E   D E                                                                */
/*        L ' E N S E M B L E   D E   M A N D E L B R O T                                                                            */
/*        D A N S   L ' E S P A C E   H Y P E R - H Y P E R - C O M P L E X E   :                                                    */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Logical,INIT(compatibilite_20190321,COMPATIBILITE_20190321));
                                        /* Permet de proceder a des generations compatibles a celles qui furent effectues            */
                                        /* anterieurement au 20190321131030.                                                         */

     DEFV(CHAR,INIC(POINTERc(nom_imageRM),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageRC),NOM_PIPE));
                                        /* Nom des images resultantes (introduites le 20190417103705).                               */

     DEFV(complexe,M_coin_bas_gauche);
     DEFV(complexe,M_coin_haut_droite);
                                        /* Definition de la fenetre de calcul de l'ensemble de Mandelbrot.                           */
     DEFV(Float,INIT(M_composante_J,M_COMPOSANTE_J));
     DEFV(Float,INIT(M_composante_K,M_COMPOSANTE_K));
     DEFV(Float,INIT(M_composante_S,M_COMPOSANTE_S));
     DEFV(Float,INIT(M_composante_T,M_COMPOSANTE_T));
     DEFV(Float,INIT(M_composante_U,M_COMPOSANTE_U));
     DEFV(Float,INIT(M_composante_V,M_COMPOSANTE_V));
                                        /* Definition des composantes 'J', 'K', 'S', 'T', 'U' et 'V' des octonions pour              */
                                        /* l'ensemble de Mandelbrot.                                                                 */
     DEFV(hyper_hyper_complexe,point_argument);
                                        /* Nombre hyper-hyper-complexe generateur des ensembles de Julia.                            */

     DEFV(Positive,INIT(M_nombre_maximal_d_iterations,M_NOMBRE_D_ITERATIONS));
                                        /* Nombre maximal d'iterations a effectuer pour le calcul de l'ensemble de Mandelbrot.       */
     DEFV(Int,INIT(saut_des_calculs,CALCUL));
                                        /* Permet de ne calculer qu'un ensemble partiel de Mandelbrot sur 'pas_de_calcul'.           */
     DEFV(Int,INIT(pas_de_calcul,PAS_DE_CALCUL));
                                        /* Pour une image calculee, on en saute 'pas_de_calcul'-1 ; ce nombre doit                   */
                                        /* etre pair afin de limiter au maximum les effets de saccades (en marches                   */
                                        /* d'escalier) lors du suivi des obliques du contour.                                        */

     DEFV(Logical,INIT(editer_le_nombre_argument_des_julias,EDITER_LE_NOMBRE_ARGUMENT_DES_JULIAS));
                                        /* Indique s'il faut editer pour chaque calcul d'un ensemble de Julia l'octonion             */
                                        /* argument ('VRAI') ou pas ('FAUX').                                                        */

     DEFV(processus,Pextraction);
                                        /* Processus d'extraction du contour.                                                        */
     DEFV(Logical,DTb1(exterieur,COULEURS));
                                        /* Definition de l'exterieur,                                                                */
     DEFV(Logical,DTb1(interieur,COULEURS));
                                        /* Et de l'interieur.                                                                        */
     DEFV(pointF_2D,point_de_depart);
                                        /* Point de depart de l'extraction de contour.                                               */
     DEFV(Logical,INIT(fin_de_contour,FAUX));
                                        /* Afin de connaitre le dernier point du contour, mais on n'y est pas encore...              */
     DEFV(pointF_2D,point_courant_extrait);
                                        /* Point courant extrait du contour dans [0,1].                                              */
     DEFV(genere_p,INIT(niveau_de_marquage_du_contour,CONTOUR));
                                        /* Niveau de marquage du contour extrait.                                                    */
     DEFV(Logical,INIT(emission_des_points,VRAI));
                                        /* Afin de transmettre les points du contour...                                              */

     DEFV(Int,INIT(numero_d_image,PREMIERE_IMAGE_ABSOLUE));
                                        /* Numero de l'image courante (celle-ci n'est pas necessairement generee : voir              */
                                        /* le parametre 'PREMIERE_IMAGE').                                                           */
     /*..............................................................................................................................*/
     Cinitialisation(M_coin_bas_gauche,M_FENETRE_GAUCHE,M_FENETRE_BAS);
     Cinitialisation(M_coin_haut_droite,M_FENETRE_DROITE,M_FENETRE_HAUT);
                                        /* Definition de la fenetre de calcul de l'ensemble de Mandelbrot.                           */

     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("compatibilite_20190321=",compatibilite_20190321);
                                        /* Argument introduit le 20190321131030...                                                   */

                         GET_ARGUMENT_C("imageRM=""RM=",nom_imageRM);
                         GET_ARGUMENT_C("imageRC=""RC=",nom_imageRC);
                                        /* Arguments introduits le 20190417103705...                                                 */

                         GET_ARGUMENT_F("exposantM=",Imandelbrot_dans_HHC_____exposant);
                         GET_ARGUMENT_F("seuilM=",Imandelbrot_dans_HHC_____seuil_du_carre_du_module);
                         GET_ARGUMENT_F("MJ=",M_composante_J);
                         GET_ARGUMENT_F("MK=",M_composante_K);
                         GET_ARGUMENT_F("MS=",M_composante_S);
                         GET_ARGUMENT_F("MT=",M_composante_T);
                         GET_ARGUMENT_F("MU=",M_composante_U);
                         GET_ARGUMENT_F("MV=",M_composante_V);
                         GET_ARGUMENT_L("editer=",editer_le_nombre_argument_des_julias);

                         GET_ARGUMENT_I("saut=",pas_de_calcul);

                         PROCESS_ARGUMENTS_DE_PARAMETRAGE_DES_ITERATIONS_1;
                         GET_ARGUMENT_L("F_ITERATION_DANS_HHC_____compatibilite_20110825=""compatibilite_20110825="
                                       ,F_ITERATION_DANS_HHC_____compatibilite_20110825
                                        );

                         CONTROLE_DE_L_ARITHMETIQUE_FOLKLORIQUE_DES_NOMBRES_COMPLEXES;
                         CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_HYPER_HYPER_COMPLEXES;
                         )
                    );

     SET_FILTRAGE(ACTIF);
                                        /* Afin d'acceder aux listes de substitutions...                                             */
     MODIFICATION_LISTE_DE_SUBSTITUTION(BLANC,PRED(PRED(BLANC)));
     MODIFICATION_LISTE_DE_SUBSTITUTION(PRED(BLANC),PRED(PRED(BLANC)));
                                        /* Afin de reserver le blanc pour le contour et les pointilles...                            */
     SUBSTITUTION(L_SUBSTITUTION_VARIABLE);

     BSaveModifyVariable(Logical,FHHCproduit_____utiliser_la_definition_theorique_du_produit,VRAI);

     CALS(Imandelbrot_dans_HHC(ImageA1
                              ,ADRESSE(M_coin_bas_gauche),ADRESSE(M_coin_haut_droite)
                              ,M_composante_J
                              ,M_composante_K
                              ,M_composante_S
                              ,M_composante_T
                              ,M_composante_U
                              ,M_composante_V
                              ,M_nombre_maximal_d_iterations
                              ,FAUX
                              ,FLOT__UNDEF,FLOT__UNDEF,FLOT__UNDEF,FLOT__UNDEF,FLOT__UNDEF,FLOT__UNDEF,FLOT__UNDEF
                               )
          );
                                        /* A1 = ensemble de Mandelbrot dont on va extraire une equipotentielle.                      */

     Test(IFEQ_chaine(nom_imageRM,NOM_PIPE))
          Bblock
          Eblock
     ATes
          Bblock
          CALi(Iupdate_image(nom_imageRM,ImageA1));
                                        /* Sauvegarde de l'ensemble de Mandelbrot dans le plan Complexe (introduite le               */
                                        /* 20190417103705).                                                                          */
          Eblock
     ETes

     ESaveModifyVariable(Logical,FHHCproduit_____utiliser_la_definition_theorique_du_produit);

     SET_FILTRAGE(INACTIF);
     DEFINE_CONTOUR(VRAI,FAUX);
                                        /* Definition de l'interieur et de l'exterieur du contour...                                 */

     Test(IFLE(niveau_de_marquage_du_contour,SUCC(SEUIL_D_EXTRACTION_DU_CONTOUR)))
          Bblock
          PRINT_ERREUR("les niveaux de gestion des contours sont incoherents");
          Eblock
     ATes
          Bblock
          Test(IZNE(NOMBRE_DE_CONTOURS))
               Bblock
               INITIALISATION_POINT_2D(point_de_depart,E_DEPART_X,E_DEPART_Y);
                                        /* Choix du point de depart de l'extraction de l'equipotentielle.                            */
               CALi(Inoir(ImageA2));
                                        /* Nettoyage de l'image ou mettre les contours interieurs.                                   */
               CALS(Iextraction_contour(ImageA2
                                       ,ImageA1
                                       ,ADRESSE(point_de_depart)
                                       ,exterieur,interieur
                                       ,niveau_de_marquage_du_contour
                                       ,FAUX,NoProcess
                                        )
                    );
                                        /* A2 = equipotentielle choisie de l'ensemble de Mandelbrot.                                 */
               CALS(Imove(ImageA1,ImageA2));
                                        /* A1 = equipotentielle choisie de l'ensemble de Mandelbrot.                                 */
               INITIALISATION_POINT_2D(point_de_depart,C_DEPART_X,C_DEPART_Y);
                                        /* Choix du point de depart de l'extraction de contour.                                      */
               Repe(NOMBRE_DE_CONTOURS)
                    Bblock
                    CALi(Inoir(ImageA2));
                                        /* Nettoyage de l'image ou mettre les contours interieurs.                                   */
                    CALS(Iextraction_contour(ImageA2
                                            ,ImageA1
                                            ,ADRESSE(point_de_depart)
                                            ,exterieur,interieur
                                            ,niveau_de_marquage_du_contour
                                            ,FAUX,NoProcess
                                             )
                         );
                                        /* A2 = contour courant interieur a l'equipotentielle de l'ensemble de Mandelbrot.           */
                    CALS(Imove(ImageA1,ImageA2));
                                        /* A1 = contour courant interieur a l'equipotentielle de l'ensemble de Mandelbrot (de facon  */
                                        /*       a extraire le contour interieur du contour courant...).                             */
                    Eblock
               ERep
               Eblock
          ATes
               Bblock
               Eblock
          ETes
          Eblock
     ETes

     CALi(Inoir(ImageA3));
                                        /* Nettoyage du futur contour pour le processus 'Pextraction'.                               */
     iPARALLELE(BLOC(INITIALISATION_POINT_2D(point_de_depart,E_DEPART_X,E_DEPART_Y);
                                        /* Choix du point de depart de l'extraction de contour.                                      */
                     CALS(Iextraction_contour(ImageA3
                                             ,ImageA1
                                             ,ADRESSE(point_de_depart)
                                             ,exterieur,interieur
                                             ,niveau_de_marquage_du_contour
                                             ,emission_des_points
                                             ,ADRESSE(Pextraction)
                                              )
                          );

                     Test(IFEQ_chaine(nom_imageRC,NOM_PIPE))
                          Bblock
                          Eblock
                     ATes
                          Bblock
                          CALi(Iupdate_image(nom_imageRC,ImageA3));
                                        /* Sauvegarde d'une "equipotentielle" de l'ensemble de Mandelbrot dans le plan Complexe      */
                                        /* (introduite le 20190417103705).                                                           */
                          Eblock
                     ETes
                     )
               ,Pextraction
                );
                                        /* Envoi en parallele de l'extraction du contour, c'est-a-dire de                            */
                                        /* l'equipotentielle numero 'SEUIL_D_EXTRACTION_DU_CONTOUR'.                                 */

     Tant(EST_FAUX(fin_de_contour))
          Bblock
          RECEIVE_F(Pextraction,ASD1(point_courant_extrait,x));
          RECEIVE_F(Pextraction,ASD1(point_courant_extrait,y));
                                        /* Recuperation du point courant du contour,                                                 */
          RECEIVE_L(Pextraction,fin_de_contour);
                                        /* Et de l'indicateur de fin...                                                              */
          Test(IFOU(IFEQ(saut_des_calculs,CALCUL)
                   ,EST_VRAI(fin_de_contour)
                    )
               )
               Bblock
                                        /* On ne fait les calculs que lorsque 'saut_des_calculs' est nul, ou                         */
                                        /* bien pour le dernier point (afin de "refermer" le contour).                               */
               gVARIABLES_RELATIVES_A_LA_NECESSITE_D_HOMOTHETIE(VRAI);

               HHCinitialisation(point_argument
                                ,GENERATEUR_REEL
                                ,GENERATEUR_IMAGINAIRE
                                ,M_composante_J
                                ,M_composante_K
                                ,M_composante_S
                                ,M_composante_T
                                ,M_composante_U
                                ,M_composante_V
                                 );
                                        /* Calcul du nombre argument de l'ensemble de Julia courant.                                 */
               Test(IL_FAUT(editer_le_nombre_argument_des_julias))
                    Bblock
                    CAL2(Prin9("image %04d : octonion=(%+.^^^,%+.^^^,%+.^^^,%+.^^^,%+.^^^,%+.^^^,%+.^^^,%+.^^^)\n"
                              ,numero_d_image
                              ,HHReelle(point_argument)
                              ,HHImaginaire(point_argument)
                              ,HHJmaginaire(point_argument)
                              ,HHKmaginaire(point_argument)
                              ,HHSmaginaire(point_argument)
                              ,HHTmaginaire(point_argument)
                              ,HHUmaginaire(point_argument)
                              ,HHVmaginaire(point_argument)
                               )
                         );
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Eblock
          ETes

          EGAL(saut_des_calculs
              ,MODU(SUCC(saut_des_calculs)
                   ,CALCUL
                   ,PRED(INTE(DIVI(FLOT(pas_de_calcul)
                                  ,MAX2(DIVI(FLOT(dimX_BASE),FLOT(dimX)),DIVI(FLOT(dimY_BASE),FLOT(dimY)))
                                   )
                              )
                         )
                    )
               );
                                        /* Afin de determiner le point suivant de facon "homothetique", c'est-a-dire de facon a ce   */
                                        /* que le nombre de points extraits soit a peu pres independant de la taille de l'image...   */

          INCR(numero_d_image,I);
                                        /* Numero de la prochaine image (fictive...) a generer.                                      */
          Eblock
     ETan

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.