/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E   V I S U A L I S A T I O N  :                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/hyper_volumes.14$I' :                                                                                      */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20230210104320).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1D.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I F F E R E N T S   E S P A C E S   E T   D E   L ' E F F E T   D E   B R U M E  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.13.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A I D E   A U   C A D R A G E   D E S   I M A G E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1C.I"

DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES
                                        /* Definition des extrema des coordonnees et des derivees. On notera bien l'absence de       */
                                        /* point-virgule apres 'DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES'.   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E S   I M A G E S  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/champs_5.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   R E L A T I V E S   A   L A   V I S U A L I S A T I O N  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E C H A N T I L L O N N A G E   D E   L ' H Y P E R - V O L U M E  :                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Un dispositif permet                                                                                           */
/*                  de visualiser le maillage suivant les                                                                            */
/*                  paralleles et les meridiens de l'hyper-volume.                                                                   */
/*                  Notons (suivant 'v $xrs/hyper_volumes.13$I PROCESS_ARGUMENTS_DE_DEFINITION_DES_COORDONNEES_CURVILIGNES') :       */
/*                                                                                                                                   */
/*                                      pu      = pas_de_u                                                                           */
/*                                      eu      = echantillonnage_de_u                                                               */
/*                                      dpu     = diviseur_du_pas_de_u                                                               */
/*                                                                                                                                   */
/*                                      pv      = pas_de_v                                                                           */
/*                                      ev      = echantillonnage_de_v                                                               */
/*                                      dpv     = diviseur_du_pas_de_v                                                               */
/*                                                                                                                                   */
/*                                      pw      = pas_de_w                                                                           */
/*                                      ew      = echantillonnage_de_w                                                               */
/*                                      dpw     = diviseur_du_pas_de_w                                                               */
/*                                                                                                                                   */
/*                                      pt      = pas_de_t                                                                           */
/*                                      et      = echantillonnage_de_t                                                               */
/*                                      dpt     = diviseur_du_pas_de_t                                                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  Les pas effectifs en 'u', 'v', 'w' et 't' sont donc :                                                            */
/*                                                                                                                                   */
/*                                      pu/dpu                                                                                       */
/*                                      pv/dpv                                                                                       */
/*                                      pw/dpw                                                                                       */
/*                                      pt/dpt                                                                                       */
/*                                                                                                                                   */
/*                  respectivement. Les meridiens seront espaces                                                                     */
/*                  de 'ev' points et les paralleles de 'eu' points.                                                                 */
/*                  Ainsi, par exemple si :                                                                                          */
/*                                                                                                                                   */
/*                                      eu == dpu                                                                                    */
/*                                      ev == dpv                                                                                    */
/*                                                                                                                                   */
/*                  les meridiens et les paralleles seront espaces                                                                   */
/*                  de 'pv' et 'pu' respectivement. Mais, en general,                                                                */
/*                  {eu,ev} et {dpu,dpv} ne seront pas "correles"...                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                    A 'w' 't' constants, une surface {u,v} du                                                                      */
/*                  volume va alors etre visualisee de                                                                               */
/*                  la facon suivante :                                                                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                                                                        'ev' points                                */
/*                                                                                   <------------------->                           */
/*                                                                                                                                   */
/*                                                                                        pv/dpv                                     */
/*                                                                                        <---->                                     */
/*                                                                                                                                   */
/*                                      .    .    .    .    *    .    .    .    .    *    .    .    .    .    *    .    .            */
/*                                                          |                        |                        |                      */
/*                                                          |      u =constante      |                        |                      */
/*                                      *----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*            */
/*                         /|\       /|\                    |     ("paralleles")     |                      v | "                    */
/*                          | pu/dpu  |                     |                        |                      = | m                    */
/*                          |        \|/.    .    .    .    *    .    .    .    .    *    .    .    .    .  c * e  .    .            */
/*                    'eu'  |                               |                        |                      o | r                    */
/*                          |                               |                        |                      n | i                    */
/*                   points |           .    .    .    .    *    .    .    .    .    *    .    .    .    .  s * d  .    .            */
/*                          |                               |                        |                      t | i                    */
/*                          |                               |                        |                      a | e                    */
/*                         \|/          .    .    .    .    *    .    .    .    .    *    .    .    .    .  n * n  .    .            */
/*                                                          |                        |                      t | s                    */
/*                                                          |                        |                      e | "                    */
/*                                      *----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*----*            */
/*                                                          |                        |                        |                      */
/*                                                          |                        |                        |                      */
/*                                      .    .    .    .    *    .    .    .    .    *    .    .    .    .    *    .    .            */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  ou les caracteres "*" materialisent les                                                                          */
/*                  points reellement visualises de l'hyper-volume.                                                                  */
/*                  Les caracteres "-" et "|" ne sont la que pour                                                                    */
/*                  materialiser les paralleles et les meridiens                                                                     */
/*                  respectivement, alors que les caracteres "."                                                                     */
/*                  montrent l'echantillonnage effectif de la                                                                        */
/*                  surface.                                                                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
DEFV(Local,DEFV(Float,INIT(minimum_de_u,MINIMUM_DE_U)));
DEFV(Local,DEFV(Float,INIT(maximum_de_u,MAXIMUM_DE_U)));
DEFV(Local,DEFV(Float,INIT(pas_de_u,PAS_DE_U)));
                                        /* Definition de la coordonnee parametrique 'u' de l'hyper-volume.                           */
DEFV(Local,DEFV(Float,INIT(minimum_de_v,MINIMUM_DE_V)));
DEFV(Local,DEFV(Float,INIT(maximum_de_v,MAXIMUM_DE_V)));
DEFV(Local,DEFV(Float,INIT(pas_de_v,PAS_DE_V)));
                                        /* Definition de la coordonnee parametrique 'v' de l'hyper-volume.                           */
DEFV(Local,DEFV(Float,INIT(minimum_de_w,MINIMUM_DE_W)));
DEFV(Local,DEFV(Float,INIT(maximum_de_w,MAXIMUM_DE_W)));
DEFV(Local,DEFV(Float,INIT(pas_de_w,PAS_DE_W)));
                                        /* Definition de la coordonnee parametrique 'w' de l'hyper-volume.                           */
DEFV(Local,DEFV(Float,INIT(minimum_de_t,MINIMUM_DE_T)));
DEFV(Local,DEFV(Float,INIT(maximum_de_t,MAXIMUM_DE_T)));
DEFV(Local,DEFV(Float,INIT(pas_de_t,PAS_DE_T)));
                                        /* Definition de la coordonnee parametrique 't' de l'hyper-volume.                           */

#define   LISTER_LES_COORDONNEES_u_v_w_t_DES_POINTS                                                                                     \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(lister_les_coordonnees_u_v_w_t_des_points,LISTER_LES_COORDONNEES_u_v_w_t_DES_POINTS)));
                                        /* Ceci fut introduit le 20101006103609.                                                     */

#define   ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t                                                                                        \
                    UN
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_u,ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_v,ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_w,ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Int,INIT(echantillonnage_de_t,ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
                                        /* Dispositif permettant d'echantillonner le volume  ce qui permet donc de mieux             */
                                        /* materialiser les lignes {u=constante}, {v=constante}, {w=constante} et {t=constante},     */
                                        /* ce que l'on peut appeler :                                                                */
                                        /*                                                                                           */
                                        /*                  u=constante       : "paralleles",                                        */
                                        /*                  v=constante       : "meridiens".                                         */
                                        /*                  w=constante       : ?                                                    */
                                        /*                  t=constante       : ?                                                    */
                                        /*                                                                                           */
                                        /* Pour cela, il suffit par exemple de prendre un pas pour 'u', 'v' et 'w' qui soit 'N'      */
                                        /* fois plus petit qu'habituellement, puis de prendre comme echantillonnage en 'u', 'v'      */
                                        /* et 'w' la valeur 'N'.                                                                     */

#define   TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t                                                                       \
                    ZERO
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_u,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_v,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_w,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Int,INIT(translation_de_l_echantillonnage_de_t,TRANSLATION_DE_L_ECHANTILLONNAGE_DE_u_DE_v_DE_w_ET_DE_t)));
                                        /* Dispositif qui permet, par sa variation (0, 1, 2,...) de faire "glisser" la grille        */
                                        /* d'echantillonnage dans l'hyper-volume...                                                  */

#define   DIVISEUR_DU_PAS_DE_u_DE_v_DE_W_ET_DE_t                                                                                        \
                    FU
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_u,DIVISEUR_DU_PAS_DE_u_DE_v_DE_W_ET_DE_t)));
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_v,DIVISEUR_DU_PAS_DE_u_DE_v_DE_W_ET_DE_t)));
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_w,DIVISEUR_DU_PAS_DE_u_DE_v_DE_W_ET_DE_t)));
DEFV(Local,DEFV(Float,INIT(diviseur_du_pas_de_t,DIVISEUR_DU_PAS_DE_u_DE_v_DE_W_ET_DE_t)));
                                        /* Dispositif permettant d'utiliser le dispositif precedent d'echantillonnage precedent      */
                                        /* et ce sans avoir a toucher aux pas des coordonnees {u,v,w,t}. Il suffira, par exemple,    */
                                        /* d'utiliser des diviseurs egaux aux echantillonnages...                                    */

#define   LE_PAS_DE_u_DE_v_DE_w_ET_DE_t_DE_DIFFERENTIATION_EST_HOMOTHETIQUE                                                             \
                    VRAI
DEFV(Local,DEFV(Logical,INIT(le_pas_de_u_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_DE_w_ET_DE_t_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
DEFV(Local,DEFV(Logical,INIT(le_pas_de_v_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_DE_w_ET_DE_t_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
DEFV(Local,DEFV(Logical,INIT(le_pas_de_w_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_DE_w_ET_DE_t_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
DEFV(Local,DEFV(Logical,INIT(le_pas_de_t_de_differentiation_est_homothetique
                            ,LE_PAS_DE_u_DE_v_DE_w_ET_DE_t_DE_DIFFERENTIATION_EST_HOMOTHETIQUE
                             )
                )
     );
                                        /* Ce dispositif permet de faire que le pas de differentiation en {u,v,w,t} est homothetique */
                                        /* ('VRAI'), c'est-a-dire qu'il est alors calcule a partir de                                */
                                        /* {pas_de_u_effectif,pas_de_v_effectif,pas_de_w_effectif,pas_de_t_effectif} ou bien         */
                                        /* ('FAUX') a partir de {pas_de_u,pas_de_v,pas_de_w,pas_de_t}.                               */

#define   DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_DE_w_ET_DE_t                                                                            \
                    FU
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_u,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_v,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_w,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_DE_w_ET_DE_t)));
DEFV(Local,DEFV(Float,INIT(diviseur_de_differentiation_de_t,DIVISEUR_DE_DIFFERENTIATION_DE_u_DE_v_DE_w_ET_DE_t)));

#define   FACILITER_LE_PARAMETRAGE_DE_u_v_w_t                                                                                           \
                    FAUX

#define   NOMBRE_D_INTERS_u                                                                                                             \
                    UN
#define   NOMBRE_D_INTERS_v                                                                                                             \
                    UN
#define   NOMBRE_D_INTERS_w                                                                                                             \
                    UN
#define   NOMBRE_D_INTERS_t                                                                                                             \
                    UN

#define   NOMBRE_DE_POINTS_DANS_UN_INTER_u                                                                                              \
                    UN
#define   NOMBRE_DE_POINTS_DANS_UN_INTER_v                                                                                              \
                    UN
#define   NOMBRE_DE_POINTS_DANS_UN_INTER_w                                                                                              \
                    UN
#define   NOMBRE_DE_POINTS_DANS_UN_INTER_t                                                                                              \
                    UN

DEFV(Local,DEFV(Logical,INIT(faciliter_le_parametrage_de_u_v_w_t,FACILITER_LE_PARAMETRAGE_DE_u_v_w_t)));

DEFV(Local,DEFV(Int,INIT(nombre_d_inters_u,NOMBRE_D_INTERS_u)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_u,NOMBRE_DE_POINTS_DANS_UN_INTER_u)));
DEFV(Local,DEFV(Int,INIT(nombre_d_inters_v,NOMBRE_D_INTERS_v)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_v,NOMBRE_DE_POINTS_DANS_UN_INTER_v)));
DEFV(Local,DEFV(Int,INIT(nombre_d_inters_w,NOMBRE_D_INTERS_w)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_w,NOMBRE_DE_POINTS_DANS_UN_INTER_w)));
DEFV(Local,DEFV(Int,INIT(nombre_d_inters_t,NOMBRE_D_INTERS_t)));
DEFV(Local,DEFV(Int,INIT(nombre_de_points_dans_un_inter_t,NOMBRE_DE_POINTS_DANS_UN_INTER_t)));
                                        /* Afin de faciliter la definition du maillage en {u,v,w,t} des hyper-volumes.               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S F O R M A T I O N   D E S   C O R D O N N E E S   ' u ' . ' v ' , ' w '   E T   ' t '  :                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GESTION_TORIQUE_DE_u_v_w_t                                                                                                    \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_u,GESTION_TORIQUE_DE_u_v_w_t)));
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_v,GESTION_TORIQUE_DE_u_v_w_t)));
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_w,GESTION_TORIQUE_DE_u_v_w_t)));
DEFV(Local,DEFV(Logical,INIT(gestion_torique_de_t,GESTION_TORIQUE_DE_u_v_w_t)));
                                        /* Afin de savoir s'il faut proceder a une gestion "torique" des coordonnees {u,v,w,t}.      */
                                        /* effectives, c'est-a-dire apres la transformation eventuelle des coordonnees {u,v,w,t}.    */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P E R M U T A T I O N   E V E N T U E L L E   D E S   C O O R D O N N E E S                                                */
/*        E T   D E S   D I F F E R E N T I E L L E S  :                                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PERMUTER_LES_COORDONNEES_ET_LES_DIFFERENTIELLES                                                                               \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(permuter_les_coordonnees_et_les_differentielles,PERMUTER_LES_COORDONNEES_ET_LES_DIFFERENTIELLES)));
                                        /* Permuter ('VRAI') ou pas les coordonnees et les differentielles ('FAUX').                 */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.16.I"

#TestADef RAYON_DE_VISUALISATION                                                                                                        \
                    FRA2(FRA10(FU))
DEFV(Local,DEFV(Float,INIT(rayon_de_visualisation,RAYON_DE_VISUALISATION)));
                                        /* Rayon du disque materialisant une iteration.                                              */

#define   GROSSISSEMENT_DU_RAYON_DE_VISUALISATION_AUX_INTERSECTIONS_DES_LIGNES_DE_COORDONNEES                                           \
                    FU
DEFV(Local,DEFV(Float,INIT(grossissement_du_rayon_de_visualisation_aux_intersections_des_lignes_de_coordonnees
                          ,GROSSISSEMENT_DU_RAYON_DE_VISUALISATION_AUX_INTERSECTIONS_DES_LIGNES_DE_COORDONNEES
                           )
                )
     );
                                        /* Facteur de grossissement du rayon de visualisation aux intersections des lignes de        */
                                        /* coordonnees.                                                                              */

#define   IGNORER_LES_POINTS_TROP_LOINTAINS                                                                                             \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(ignorer_les_points_trop_lointains,IGNORER_LES_POINTS_TROP_LOINTAINS)));
#define   DISTANCE_DES_POINTS_TROP_LOINTAINS                                                                                            \
                    F_INFINI
DEFV(Local,DEFV(Float,INIT(distance_des_points_trop_lointains,DISTANCE_DES_POINTS_TROP_LOINTAINS)));
                                        /* Introduit le 20120606143939 par symetrie avec 'v $xrs/surfaces.14$I 20120606143945'...    */

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_06(AXf,AYf,AZf,AdXf,AdYf,AdZf)))
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de l'iteration courante.                                */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     INIT_ERROR;
     /*..............................................................................................................................*/
     Test(IFOU(IL_NE_FAUT_PAS(ignorer_les_points_trop_lointains)
              ,IFET(IL_FAUT(ignorer_les_points_trop_lointains)
                   ,IFLT(RdisF3D(AXf,AYf,AZf,FXorigine,FYorigine,FZorigine),distance_des_points_trop_lointains)
                    )
               )
          )
          Bblock
          DEFV(Int,INIT(numero_de_l_iteration_courante,UNDEF));
                                        /* Pour des raisons de compatibilite avec 'ATTENUATION(...)'.                                */
#include  xrk/attractor.15.I"

          EGAL(nombre_d_iterations_visualisees,NOMBRE_D_ITERATIONS_VISUALISEES);
          EGAL(attenuation_de_la_premiere_iteration,ATTENUATION_DE_LA_PREMIERE_ITERATION);
          EGAL(attenuation_de_la_derniere_iteration,ATTENUATION_DE_LA_DERNIERE_ITERATION);
                                        /* Pour des raisons de compatibilite avec 'ATTENUATION(...)'.                                */

          MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                       ,Y_DERIVEE_DANS_01(AdYf)
                                       ,Z_DERIVEE_DANS_01(AdZf)
                                        );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */
          Eblock
     ATes
          Bblock
          Eblock
     ETes

     RETU_ERROR;
     Eblock

#undef    DISTANCE_DES_POINTS_TROP_LOINTAINS
#undef    IGNORER_LES_POINTS_TROP_LOINTAINS

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D O N N E E S   D E   D E R I V A T I O N   P A R T I E L L E   N U M E R I Q U E  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FACTEUR_x_DE_PAS_DE_u                                                                                                         \
                    FU
#define   FACTEUR_x_DE_PAS_DE_v                                                                                                         \
                    FZERO
#define   FACTEUR_x_DE_PAS_DE_w                                                                                                         \
                    FZERO
#define   FACTEUR_x_DE_PAS_DE_t                                                                                                         \
                    FZERO
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_u,FACTEUR_x_DE_PAS_DE_u)));
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_v,FACTEUR_x_DE_PAS_DE_v)));
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_w,FACTEUR_x_DE_PAS_DE_w)));
DEFV(Local,DEFV(Float,INIT(facteur_x_de_pas_de_t,FACTEUR_x_DE_PAS_DE_t)));
                                        /* Donnees de derivation partielle numerique de 'Fx(u,v,w,t)'.                               */
#define   FACTEUR_y_DE_PAS_DE_u                                                                                                         \
                    FZERO
#define   FACTEUR_y_DE_PAS_DE_v                                                                                                         \
                    FU
#define   FACTEUR_y_DE_PAS_DE_w                                                                                                         \
                    FZERO
#define   FACTEUR_y_DE_PAS_DE_t                                                                                                         \
                    FZERO
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_u,FACTEUR_y_DE_PAS_DE_u)));
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_v,FACTEUR_y_DE_PAS_DE_v)));
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_w,FACTEUR_y_DE_PAS_DE_w)));
DEFV(Local,DEFV(Float,INIT(facteur_y_de_pas_de_t,FACTEUR_y_DE_PAS_DE_t)));
                                        /* Donnees de derivation partielle numerique de 'Fy(u,v,w,t)'.                               */
#define   FACTEUR_z_DE_PAS_DE_u                                                                                                         \
                    FZERO
#define   FACTEUR_z_DE_PAS_DE_v                                                                                                         \
                    FZERO
#define   FACTEUR_z_DE_PAS_DE_w                                                                                                         \
                    FU
#define   FACTEUR_z_DE_PAS_DE_t                                                                                                         \
                    FU
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_u,FACTEUR_z_DE_PAS_DE_u)));
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_v,FACTEUR_z_DE_PAS_DE_v)));
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_w,FACTEUR_z_DE_PAS_DE_w)));
DEFV(Local,DEFV(Float,INIT(facteur_z_de_pas_de_t,FACTEUR_z_DE_PAS_DE_t)));
                                        /* Donnees de derivation partielle numerique de 'Fz(u,v,w,t)'.                               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D O N N E E S   D E   C O L O R I A G E  :                                                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PONDERATION__x_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__y_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__z_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__u_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__v_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__w_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION__t_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION_dx_____DANS_dx                                                                                                    \
                    FU
#define   PONDERATION_dy_____DANS_dx                                                                                                    \
                    FZERO
#define   PONDERATION_dz_____DANS_dx                                                                                                    \
                    FZERO
DEFV(Local,DEFV(Float,INIT(ponderation_de__x_____dans_dx,PONDERATION__x_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__y_____dans_dx,PONDERATION__y_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__z_____dans_dx,PONDERATION__z_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__u_____dans_dx,PONDERATION__u_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__v_____dans_dx,PONDERATION__v_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__w_____dans_dx,PONDERATION__w_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__t_____dans_dx,PONDERATION__t_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dx_____dans_dx,PONDERATION_dx_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dy_____dans_dx,PONDERATION_dy_____DANS_dx)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dz_____dans_dx,PONDERATION_dz_____DANS_dx)));
                                        /* Donnees de coloriage 'dcx'.                                                               */
#define   PONDERATION__x_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__y_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__z_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__u_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__v_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__w_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION__t_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION_dx_____DANS_dy                                                                                                    \
                    FZERO
#define   PONDERATION_dy_____DANS_dy                                                                                                    \
                    FU
#define   PONDERATION_dz_____DANS_dy                                                                                                    \
                    FZERO
DEFV(Local,DEFV(Float,INIT(ponderation_de__x_____dans_dy,PONDERATION__x_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__y_____dans_dy,PONDERATION__y_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__z_____dans_dy,PONDERATION__z_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__u_____dans_dy,PONDERATION__u_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__v_____dans_dy,PONDERATION__v_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__w_____dans_dy,PONDERATION__w_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__t_____dans_dy,PONDERATION__t_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dx_____dans_dy,PONDERATION_dx_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dy_____dans_dy,PONDERATION_dy_____DANS_dy)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dz_____dans_dy,PONDERATION_dz_____DANS_dy)));
                                        /* Donnees de coloriage 'dcy'.                                                               */
#define   PONDERATION__x_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__y_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__z_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__u_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__v_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__w_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION__t_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION_dx_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION_dy_____DANS_dz                                                                                                    \
                    FZERO
#define   PONDERATION_dz_____DANS_dz                                                                                                    \
                    FU
DEFV(Local,DEFV(Float,INIT(ponderation_de__x_____dans_dz,PONDERATION__x_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__y_____dans_dz,PONDERATION__y_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__z_____dans_dz,PONDERATION__z_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__u_____dans_dz,PONDERATION__u_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__v_____dans_dz,PONDERATION__v_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__w_____dans_dz,PONDERATION__w_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de__t_____dans_dz,PONDERATION__t_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dx_____dans_dz,PONDERATION_dx_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dy_____dans_dz,PONDERATION_dy_____DANS_dz)));
DEFV(Local,DEFV(Float,INIT(ponderation_de_dz_____dans_dz,PONDERATION_dz_____DANS_dz)));
                                        /* Donnees de coloriage 'dcz'.                                                               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   V I S U A L I S A T I O N   E T   D ' I N T E R P O L A T I O N  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.17.I"



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