/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D E S   E N S E M B L E S   " I T E R A T I F S "   D A N S   L E   P L A N   C O M P L E X E ,              */
/*        D A N S   L E   C O R P S   D E S   Q U A T E R N I O N S   ( O U   " H Y P E R - C O M P L E X E " ) ,                    */
/*        E T   D A N S   L E   C O R P S   D E S   O C T O N I O N S   ( O U   " H Y P E R - H Y P E R - C O M P L E X E " )  :     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota :                                                                                                                     */
/*                                                                                                                                   */
/*                    Lorsqu'un parametre peut prendre deux                                                                          */
/*                  valeurs 'M' et 'J' suivant que l'on                                                                              */
/*                  calcule l'ensemble de Mandelbrot ou un                                                                           */
/*                  ensemble de Julia, on le note :                                                                                  */
/*                                                                                                                                   */
/*                                      (M,J), avec                                                                                  */
/*                                                                                                                                   */
/*                  donc dans l'ordre Mandelbrot, puis Julia...                                                                      */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$ximcf/iterations$DEF' :                                                                                        */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 19890000000000).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   C H A N G E M E N T   D E   F O R M A T   D E S                                                  */
/*        F E N E T R E S   D E   C A L C U L   E N   F O N C T I O N   D E S                                                        */
/*        P R O P O R T I O N S   D E   L ' I M A G E   A   G E N E R E R  :                                                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gVARIABLES_RELATIVES_A_LA_NECESSITE_D_HOMOTHETIE(choix_de_l_ajustement)                                                       \
                    DEFV(Logical                                                                                                        \
                        ,INIT(ajuster_la_definition_de_la_fenetre_de_calcul_au_rapport_dimX_sur_dimY                                    \
                             ,choix_de_l_ajustement                                                                                     \
                              )                                                                                                         \
                         );                                                                                                             \
                                        /* L'ajustement de la proportion des dimensions des fenetres au rapport dimX/dimY est-il     */ \
                                        /* necessaire (introduit le 20091124124351 et transfere en partie ici le 20091126090816      */ \
                                        /* depuis 'v $ximcf/iterations$FON 20091126090842' afin de pouvoir etre utilisee dans        */ \
                                        /* certains '$K's ('v $xrc/julia.02$K VARIABLES_RELATIVES_A_LA_NECESSITE_D_HOMOTHETIE'       */ \
                                        /* exemple...) ?                                                                             */

#define   CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE(gauche,droite,fonction)                                                                    \
                    fonction(MOYE(gauche,droite)                                                                                        \
                            ,MOIT(CARRE_OX_PAR_RAPPORT_A_OY(SOUS(droite,gauche)))                                                       \
                             )

#define   CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE_GAUCHE(gauche,droite)                                                                      \
                    COND(IL_FAUT(ajuster_la_definition_de_la_fenetre_de_calcul_au_rapport_dimX_sur_dimY)                                \
                        ,CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE(gauche,droite,SOUS)                                                         \
                        ,gauche                                                                                                         \
                         )
#define   CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE_DROITE(gauche,droite)                                                                      \
                    COND(IL_FAUT(ajuster_la_definition_de_la_fenetre_de_calcul_au_rapport_dimX_sur_dimY)                                \
                        ,CHANGEMENT_HOMOTHETIQUE_D_ABSCISSE(gauche,droite,ADD2)                                                         \
                        ,droite                                                                                                         \
                         )
                                        /* Fonctions de modification homothetique des abscisses d'une fenetre de calcul. On trouve   */
                                        /* d'abord la fonction generale, puis celles qui concernent respectivement les coins de      */
                                        /* de gauche et de droite d'une fenetre.                                                     */
                                        /*                                                                                           */
                                        /* La conditionnalite de l'ajustement de la fenetre a ete introduit le 20091124125720...     */

#define   CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE(bas,haut,fonction)                                                                         \
                    fonction(bas,haut)

#define   CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE_BAS(bas,haut)                                                                              \
                    COND(IL_FAUT(ajuster_la_definition_de_la_fenetre_de_calcul_au_rapport_dimX_sur_dimY)                                \
                        ,CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE(bas,haut,SE12)                                                              \
                        ,bas                                                                                                            \
                         )
#define   CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE_HAUT(bas,haut)                                                                             \
                    COND(IL_FAUT(ajuster_la_definition_de_la_fenetre_de_calcul_au_rapport_dimX_sur_dimY)                                \
                        ,CHANGEMENT_HOMOTHETIQUE_D_ORDONNEE(bas,haut,SE22)                                                              \
                        ,haut                                                                                                           \
                         )
                                        /* Fonctions de modification homothetique des ordonnees d'une fenetre de calcul. On trouve   */
                                        /* d'abord la fonction generale, puis celles qui concernent respectivement les coins de      */
                                        /* du bas et du haut d'une fenetre.                                                          */
                                        /*                                                                                           */
                                        /* La conditionnalite de l'ajustement de la fenetre a ete introduit le 20091124125720...     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   P O S S I B L E S   D E   V I S U A L I S A T I O N  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
Denumer05(INIS(_VISUALISATION_DU_NOMBRE_D_ITERATIONS,UN)
                                        /* Visualisation du nombre d'iterations en fin d'iterations,                                 */
              ,_VISUALISATION_DE_L_ARGUMENT_DE_SORTIE
                                        /* Visualisation de la valeur de l'argument de SUITE(N) en fin d'iterations,                 */
              ,_VISUALISATION_DES_ORBITES
                                        /* Tentative de visualisation de l'orbite des points par deformation d'une image Argument,   */
              ,_VISUALISATION_DES_DISTANCES
                                        /* Visualisation de la fonction d(z).                                                        */
              ,DERNIER_MODE_DE_VISUALISATION
         ,liste_des_modes_de_visualisation_des_fractales
          );
                                        /* Liste des modes de visualisation des ensembles de Mandelbrot et Julia.                    */
#define   VISUALISATION_DU_NOMBRE_D_ITERATIONS                                                                                          \
                    ENUM(_VISUALISATION_DU_NOMBRE_D_ITERATIONS)                                                                         \
                                        /* Ce qui donne pour l'ensemble de Mandelbrot :                                              */ \
                                        /*                                                                                           */ \
                                        /*                                                                  *:                       */ \
                                        /*                                                                *****                      */ \
                                        /*                                                                *****                      */ \
                                        /*                                                       .:.  *+********* *                  */ \
                                        /*                                                        ******************* **             */ \
                                        /*                                                       **********************              */ \
                                        /*                                                     *************************:            */ \
                                        /*                                                    ****************************           */ \
                                        /*                                        *.****:.   ****************************.           */ \
                                        /*                                      ***********. ****************************:           */ \
                                        /*                                  .   ************.***************************-            */ \
                                        /*                  **********************************************************               */ \
                                        /*                                  .   ************.***************************-            */ \
                                        /*                                      ***********. ****************************:           */ \
                                        /*                                        *.****:.   ****************************.           */ \
                                        /*                                                    ****************************           */ \
                                        /*                                                     *************************:            */ \
                                        /*                                                       **********************              */ \
                                        /*                                                        ******************* **             */ \
                                        /*                                                       .:.  *+********* *                  */ \
                                        /*                                                                *****                      */ \
                                        /*                                                                *****                      */ \
                                        /*                                                                  *:                       */ \
                                        /*                                                                                           */
#define   VISUALISATION_DE_L_ARGUMENT_DE_SORTIE                                                                                         \
                    ENUM(_VISUALISATION_DE_L_ARGUMENT_DE_SORTIE)                                                                        \
                                        /* Ce qui donne pour l'ensemble de Mandelbrot :                                              */ \
                                        /*                                                                                           */ \
                                        /*                  ++++-------:::::......     @@:::..   @@**oo+-.@+: @o+-::..  @ooo         */ \
                                        /*                  ++++++------::::::.....  +++---::..   @@. @*@. :*:@+:.@.  @@**oo         */ \
                                        /*                  o+++++++-----::::::...**ooo++---::...o+-::.o+-.- @:@-*o+-@@**oo+         */ \
                                        /*                  ooo++++++------:::  @@***ooo++---: @@*o++:. :+. -. +@+--:. oo++-         */ \
                                        /*                  ooooo++++++----:...  @@@**ooo++--:.  @ @*o+ :.**:+++ * *o @*o+--         */ \
                                        /*                  *oooooo+++++---::...  @@@**@@*o++-:@o-:o-.+.-*--:..o*+*+-. *-:.          */ \
                                        /*                  ***ooooo+oo+++--::...  -::.  @*o*o+-@o+o@.:-*@+o*@ . .*-:o:@o+.o         */ \
                                        /*                  *****oo@**ooo++--::@**o+-::. +-:.+-o- . o@@.*********+@@o****@+          */ \
                                        /*                  @****  @@***oo+++:. @*o++:.@*o+-. :o*@o @@**************o-**oo*.         */ \
                                        /*                  @@@...   @@** @*oo:*-.@*+-.o-.@** -  *@@@@@*************ooo:++@+         */ \
                                        /*                  @--::...  @-:.  - :+- -*:::*- *+.-- @@@@@@@@***********ooooo-@-o         */ \
                                        /*                  +++--::.*oo+-: @*@-o.* -@ o @o o.@*@@@@@@@@@@*********ooooooo@@+         */ \
                                        /*                  oo++-:. @**oo+:@o- * :@ @@@@- @:- @@@@@@@@@@@@@******oooooooo...         */ \
                                        /*                  @*@*o-:.o-. @  @@-:@@@@@@@@@@@@+-@@@@@@@@@@@@@@@****ooooooooo- -         */ \
                                        /*                  o-.+.*:+ o.@*:++:-@.@@@@@@@@@@@@:@@@@@@@@@@@@@@@@@**oo++++++- :@         */ \
                                        /*                  -@@-@@---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@------------         */ \
                                        /*                  :+*-*.o-@:* .o--o+ *            o                 ..::------+@o          */ \
                                        /*                   . .:-o*:+o@ @@  +o            -+                ...:::::::::+@+         */ \
                                        /*                  ::--+o*@ ..::-o :+@.@o @    +@ o-@              .....::::::::*o*         */ \
                                        /*                  ---++oo*.::-+o@ . +:* *+ @:* .@:*             .........::::::  -         */ \
                                        /*                   ++ooo**@@ +o*@@+@+-+@+.ooo.+@.-o++@          ..........::::+ +:         */ \
                                        /*                     o**@@@  ..@ .::o.+* .-+*:+* ..@-@@.       .............:o-- -         */ \
                                        /*                    ...@@   ..::-:-+*@ .:--o* .:-+*@o:. :@    .............+..:: *         */ \
                                        /*                  .....:: ..:::--++oo  .:-+oo*@-+o*-+:+@*@:  o.........-  :.... -@         */ \
                                        /*                  ...::::::::---++ooo**@@+oo*@@ ...:-+ :-. *o+. ::. @*@*.++:o ::*:         */ \
                                        /*                  .::::::------++ooo**@@   ..  .::-+o :-o:+*-*+.-+o**:.-.:+*@.+o*@         */ \
                                        /*                  :::::------++++o***@@   ..:::---+o*@@ @ .:-@o*. o--:*.@.:@ .:-++         */ \
                                        /*                  ::::------+++++ooo@@   ..:::--+++o@  .:--o*@o:**+*@: -++o*@::---         */ \
                                        /*                  ::------++++++ooooo***..:::--+++oo***:-+oo*:-+o+@ o +.:--  ..::-         */ \
                                        /*                  ------++++++oooooo*****@@:--+++oo***@@  *@ . *@o.o -o* *@@  ...:         */ \
                                        /*                  -----++++++oooooo*****@@@@@  +oo***@@  ..::-+* -o@ :-+oo**@@ :::         */ \
                                        /*                  @--+++++++oooooo*****@@@@@     ..*@@  ..::-++o*@ ..:--+oo*...:::         */ \
                                        /*                                                                                           */
#define   VISUALISATION_DES_ORBITES                                                                                                     \
                    ENUM(_VISUALISATION_DES_ORBITES)
#define   VISUALISATION_DES_DISTANCES                                                                                                   \
                    ENUM(_VISUALISATION_DES_DISTANCES)

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E S P A C E   D E   L Y A P U N O V  :                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DenumeT07(TAUX_DE_CROISSANCE_R1_DANS_L_ESPACE_DE_LYAPUNOV
         ,TAUX_DE_CROISSANCE_R2_DANS_L_ESPACE_DE_LYAPUNOV
         ,TAUX_DE_CROISSANCE_R3_DANS_L_ESPACE_DE_LYAPUNOV
         ,TAUX_DE_CROISSANCE_R4_DANS_L_ESPACE_DE_LYAPUNOV
         ,TAUX_DE_CROISSANCE_R5_DANS_L_ESPACE_DE_LYAPUNOV
         ,TAUX_DE_CROISSANCE_R6_DANS_L_ESPACE_DE_LYAPUNOV
         ,TAUX_DE_CROISSANCE_R7_DANS_L_ESPACE_DE_LYAPUNOV
         ,choix_du_taux_de_croissance_dans_l_espace_de_Lyapunov
          )
                                        /* Types possibles des taux de croissance afin de definir le contenu d'une periode, et donc  */
                                        /* de definir le contenu du tableau 'suite_des_taux_de_croissance'. ATTENTION, on notera     */
                                        /* qu'il n'y a pas de ";" a la suite de cette directive, car sinon, il se trouverait colle   */
                                        /* a la derniere definition...                                                               */
                                        /*                                                                                           */
                                        /* Le 20151006091226 furent introduits 'R4' et 'R5'...                                       */
                                        /*                                                                                           */
                                        /* Le 20151007092702 furent introduits 'R6' et 'R7'...                                       */
#define   PREMIERE_ITERATION_DANS_L_ESPACE_DE_LYAPUNOV                                                                                  \
                    INDEX0                                                                                                              \
                                        /* Numero de la premiere iteration...                                                        */
Denumer03(INIS(_CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DE_LA_PARTIE_REELLE_DE_LA_DERIVEE,UN)
              ,_CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DE_LA_PARTIE_IMAGINAIRE_DE_LA_DERIVEE
              ,_CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DU_MODULE_DE_LA_DERIVEE
         ,choix_du_mode_de_calcul_de_l_exposant_de_Lyapunov
          );
#define   CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DE_LA_PARTIE_REELLE_DE_LA_DERIVEE                                                   \
                    ENUM(_CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DE_LA_PARTIE_REELLE_DE_LA_DERIVEE)
#define   CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DE_LA_PARTIE_IMAGINAIRE_DE_LA_DERIVEE                                               \
                    ENUM(_CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DE_LA_PARTIE_IMAGINAIRE_DE_LA_DERIVEE)
#define   CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DU_MODULE_DE_LA_DERIVEE                                                             \
                    ENUM(_CALCUL_DE_L_EXPOSANT_DE_LYAPUNOV_A_PARTIR_DU_MODULE_DE_LA_DERIVEE)
                                        /* Definition des trois facons de calculer l'exposant de Lyapunov a partir de la derivee de  */
                                        /* la fonction iteree...                                                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   D E   L A   F O N C T I O N   ' zeta '   D E   R I E M A N N  :                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PREMIER_ELEMENT_DE_LA_FONCTION_ZETA_DE_RIEMANN                                                                                \
                    POSI(UN)                                                                                                            \
                                        /* Numero de la premiere iteration...                                                        */



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.