/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S F O R M A T I O N   A U T O - S I M I L A I R E   D E   H I L B E R T                                            */
/*        D A N S   [ 0 , 1 ] x [ 0 , 1 ] x [ 0 , 1 ]  :                                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Probleme de terminologie (le 20230106115757) :                                                                             */
/*                                                                                                                                   */
/*                    On notera un probleme dans les                                                                                 */
/*                  noms donnes aux programmes :                                                                                     */
/*                                                                                                                                   */
/*                                      $xci/valeurs_TransformationPeano2D$I                                                         */
/*                                      $xci/valeurs_TransformationPeano2D$K                                                         */
/*                                      $xci/valeurs_TransformationPeano3D$K                                                         */
/*                                                                                                                                   */
/*                  qui devraient s'appeler 'Hilbert'                                                                                */
/*                  et non pas 'Peano', ainsi qu'a 55                                                                                */
/*                  images 'PEAN's qui devraient s'appeler                                                                           */
/*                  en fait 'HILB's. Tout cela est precise                                                                           */
/*                  dans 'v $xiirv/$Fnota 20230106103125'...                                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Cette commande est une version tridimensionnelle                                                               */
/*                  de 'v $xci/valeurs_TransformationPeano2D$K'...                                                                   */
/*                                                                                                                                   */
/*                    Avec les notations suivantes :                                                                                 */
/*                                                                                                                                   */
/*                                      X(n)      -->       X1                                                                       */
/*                                      Y(n)      -->       Y1                                                                       */
/*                                      Z(n)      -->       Z1                                                                       */
/*                                                                                                                                   */
/*                                      X(n+1)    -->       X2                                                                       */
/*                                      Y(n+1)    -->       Y2                                                                       */
/*                                      Z(n+1)    -->       Z2                                                                       */
/*                                                                                                                                   */
/*                  la definition de la transformation de Hilbert                                                                    */
/*                  tridimensionnelle "historique" est la suivante                                                                   */
/*                  en notation matricielle :                                                                                        */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |  X1|    |+1  0  0|   |X1|   |0|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |  Z1|  = | 0  0 +1| * |Y1| + |0|                 Transformation 1                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |  Y1|    | 0 +1  0|   |Z1|   |0|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |  Z1|    | 0  0 +1|   |X1|   |0|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1+Y1|  = | 0 +1  0| * |Y1| + |1|                 Transformation 2                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |  X1|    |+1  0  0|   |Z1|   |0|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |1+X1|    |+1  0  0|   |X1|   |1|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1+Y1|  = | 0 +1  0| * |Y1| + |1|                 Transformation 3                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |  Z1|    | 0  0 +1|   |Z1|   |0|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |1+Z1|    | 0  0 +1|   |X1|   |1|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1-X1|  = |-1  0  0| * |Y1| + |1|                 Transformation 4                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |1-Y1|    | 0 -1  0|   |Z1|   |1|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |2-Z1|    | 0  0 -1|   |X1|   |2|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1-X1|  = |-1  0  0| * |Y1| + |1|                 Transformation 5                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |1+Y1|    | 0 +1  0|   |Z1|   |1|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |1+X1|    |+1  0  0|   |X1|   |1|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1+Y1|  = | 0 +1  0| * |Y1| + |1|                 Transformation 6                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |1+Z1|    | 0  0 +1|   |Z1|   |1|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |1-Z1|    | 0  0 -1|   |X1|   |1|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1+Y1|  = | 0 +1  0| * |Y1| + |1|                 Transformation 7                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |2-X1|    |-1  0  0|   |Z1|   |2|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                      |X2|      |  X1|    |+1  0  0|   |X1|   |0|                                                  */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Y2|    = |1-Z1|  = | 0  0 -1| * |Y1| + |1|                 Transformation 8                 */
/*                                      |  |      |    |    |        |   |  |   | |                                                  */
/*                                      |Z2|      |2-Y1|    | 0 -1  0|   |Z1|   |2|                                                  */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/valeurs_TransformationPeano3D$K' :                                                                         */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20220425092803).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   DIMENSION_DE_LA_COURBE                                                                                                        \
                    TRI_DIMENSIONNEL                                                                                                    \
                                        /* Dimension de la courbe...                                                                 */

#define   REMPLACER_LES_LISTES_DE_SUBSTITUTION_PAR_DES_LISTES_QUELCONQUES                                                               \
                    FAUX                                                                                                                \
                                        /* Faut-il remplacer les listes de substitution par des listes queconques ('VRAI') ou pas    */ \
                                        /* ('FAUX') ? La valeur par defaut assure la compatibilite anterieure (introduit le          */ \
                                        /* 20220513105553)...                                                                        */
#define   INTERPOLER_LES_LISTES_QUELCONQUES                                                                                             \
                    FAUX                                                                                                                \
                                        /* Faut-il interpoler les listes queconques ('VRAI') ou pas ('FAUX') ? Voir a ce propos le   */ \
                                        /* commentaires 'v $xci/valeurs_TransformationPeano2D$I 20220513134353'. Ceci fut introduit  */ \
                                        /* le 20220513142523...                                                                      */

#define   EDITER_LA_DEFINITION_DU_CUBE                                                                                                  \
                    FAUX
#define   EDITER_LA_DEFINITION_DES_SOUS_CUBES                                                                                           \
                    FAUX
                                        /* Faut-il editer la definition du cube ('VRAI') ou pas ('FAUX') ? L'edition de la           */
                                        /* definition des 8 sous-cubes a ete introduite le 20220519182554..                          */

#define   f1x_____NOM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                                  \
                    "L_SUBSTITUTION_ROUGE"
#define   f1x_____SUBSTITUTION_COURANTE_DE_DEFINITION                                                                                   \
                    L_SUBSTITUTION_ROUGE
#define   f1x_____LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    FAUX
#define   f1x_____NOMBRE_DE_PASSES_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                          \
                    UN
#define   f1x_____PAS_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                       \
                    PAS_COULEURS
#define   f1x_____MINIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    COORDONNEE_BARYCENTRIQUE_MINIMALE
#define   f1x_____MAXIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    COORDONNEE_BARYCENTRIQUE_MAXIMALE
#define   f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    VRAI
#define   f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__LINEAIREMENT                                                                \
                    VRAI
#define   f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_ORIGINE__                                              \
                    FZERO
#define   f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_EXTREMITE                                              \
                    FZERO
                                        /* Definition de 'f1x(...)' via '$xiP' a valeur dans [0,1]...                                */
                                        /*                                                                                           */
                                        /* Le 20220427092531, l'interpolation des listes de substitution est passee de 'FAUX'        */
                                        /* a 'VRAI' par defaut et ce contrairement a 'v $xci/valeurs_TransformationPeano2D$K'        */
                                        /* qui reste a 'FAUX' pour des raisons de compatibilite anterieure...                        */

#define   f1y_____NOM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                                  \
                    "L_SUBSTITUTION_VERTE"
#define   f1y_____SUBSTITUTION_COURANTE_DE_DEFINITION                                                                                   \
                    L_SUBSTITUTION_VERTE
#define   f1y_____LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    FAUX
#define   f1y_____NOMBRE_DE_PASSES_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                          \
                    UN
#define   f1y_____PAS_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                       \
                    PAS_COULEURS
#define   f1y_____MINIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    COORDONNEE_BARYCENTRIQUE_MINIMALE
#define   f1y_____MAXIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    COORDONNEE_BARYCENTRIQUE_MAXIMALE
#define   f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    VRAI
#define   f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__LINEAIREMENT                                                                \
                    VRAI
#define   f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_ORIGINE__                                              \
                    FZERO
#define   f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_EXTREMITE                                              \
                    FZERO
                                        /* Definition de 'f1y(...)' via '$xiP' a valeur dans [0,1]...                                */
                                        /*                                                                                           */
                                        /* Le 20220427092531, l'interpolation des listes de substitution est passee de 'FAUX'        */
                                        /* a 'VRAI' par defaut et ce contrairement a 'v $xci/valeurs_TransformationPeano2D$K'        */
                                        /* qui reste a 'FAUX' pour des raisons de compatibilite anterieure...                        */

#define   f1z_____NOM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                                  \
                    "L_SUBSTITUTION_VERTE"
#define   f1z_____SUBSTITUTION_COURANTE_DE_DEFINITION                                                                                   \
                    L_SUBSTITUTION_VERTE
#define   f1z_____LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    FAUX
#define   f1z_____NOMBRE_DE_PASSES_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                          \
                    UN
#define   f1z_____PAS_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                       \
                    PAS_COULEURS
#define   f1z_____MINIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    COORDONNEE_BARYCENTRIQUE_MINIMALE
#define   f1z_____MAXIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    COORDONNEE_BARYCENTRIQUE_MAXIMALE
#define   f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION                                                                              \
                    VRAI
#define   f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__LINEAIREMENT                                                                \
                    VRAI
#define   f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_ORIGINE__                                              \
                    FZERO
#define   f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_EXTREMITE                                              \
                    FZERO
                                        /* Definition de 'f1z(...)' via '$xiP' a valeur dans [0,1]...                                */
                                        /*                                                                                           */
                                        /* Le 20220427092531, l'interpolation des listes de substitution est passee de 'FAUX'        */
                                        /* a 'VRAI' par defaut et ce contrairement a 'v $xci/valeurs_TransformationPeano2D$K'        */
                                        /* qui reste a 'FAUX' pour des raisons de compatibilite anterieure...                        */

#define   CHAINER_LES_POINTS                                                                                                            \
                    VRAI                                                                                                                \
                                        /* Faut-il chainer les points ('VRAI') ou pas ('FAUX') ?                                     */

#define   CALCULER_UNE_SEULE_ITERATION                                                                                                  \
                    VRAI
#define   NUMERO_DE_L_ITERATION_UNIQUE                                                                                                  \
                    ITERATION_05
                                        /* Choix du mode "une" ou "plusieurs iterations"...                                          */

#define   EDITER_ITERATION_01                                                                                                           \
                    FAUX
#define   EDITER_ITERATION_02                                                                                                           \
                    FAUX
#define   EDITER_ITERATION_03                                                                                                           \
                    FAUX
#define   EDITER_ITERATION_04                                                                                                           \
                    FAUX
#define   EDITER_ITERATION_05                                                                                                           \
                    VRAI
#define   EDITER_ITERATION_06                                                                                                           \
                    VRAI
#define   EDITER_ITERATION_07                                                                                                           \
                    VRAI
                                        /* Choix des iterations a editer si 'IL_NE_FAUT_PAS(calculer_une_seule_iteration)'...        */

#define   PAS_DE_L_ITERATION_01                                                                                                         \
                    PARE(0.001000)
#define   PAS_DE_L_ITERATION_02                                                                                                         \
                    FRA2(PAS_DE_L_ITERATION_01)
#define   PAS_DE_L_ITERATION_03                                                                                                         \
                    FRA2(PAS_DE_L_ITERATION_02)
#define   PAS_DE_L_ITERATION_04                                                                                                         \
                    FRA2(PAS_DE_L_ITERATION_03)
#define   PAS_DE_L_ITERATION_05                                                                                                         \
                    FRA4(PAS_DE_L_ITERATION_04)
#define   PAS_DE_L_ITERATION_06                                                                                                         \
                    FRA4(PAS_DE_L_ITERATION_05)
#define   PAS_DE_L_ITERATION_07                                                                                                         \
                    FRA4(PAS_DE_L_ITERATION_06)
                                        /* Pas d'edition des iterations...                                                           */

#define   PERMUTATION_XX                                                                                                                \
                    FZERO
#define   PERMUTATION_XY                                                                                                                \
                    FZERO
#define   PERMUTATION_XZ                                                                                                                \
                    NEUT(FU)
#define   TRANSLATION_X                                                                                                                 \
                    FZERO

#define   PERMUTATION_YX                                                                                                                \
                    FZERO
#define   PERMUTATION_YY                                                                                                                \
                    NEUT(FU)
#define   PERMUTATION_YZ                                                                                                                \
                    FZERO
#define   TRANSLATION_Y                                                                                                                 \
                    FZERO

#define   PERMUTATION_ZX                                                                                                                \
                    NEGA(FU)
#define   PERMUTATION_ZY                                                                                                                \
                    FZERO
#define   PERMUTATION_ZZ                                                                                                                \
                    FZERO
#define   TRANSLATION_Z                                                                                                                 \
                    FU
                                        /* Le 20220428110814, les coordonnees 'X' et 'Z' ont ete permutees afin d'assurer la         */
                                        /* compatibilite des orientations des courbes ainsi generees avec des courbes anterieures    */
                                        /* (voir par exemple 'v $xiirv/PEAN.61' et 'v $xiirv/HILB.I2' respectivement...) generees    */
                                        /* par 'v $xci/valeurs_Hilbert3D$K' en particulier...                                        */

#define   PONDERATION_DE_T                                                                                                              \
                    FU
#define   PONDERATION_DE_X                                                                                                              \
                    FZERO
#define   PONDERATION_DE_Y                                                                                                              \
                    FZERO
#define   PONDERATION_DE_Z                                                                                                              \
                    FZERO
                                        /* Ponderations respectives de 'X', 'Y' et 'Z'.                                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/ARITHMET.1d.I"
#include  xrv/ARITHMET.21.I"
#include  xrv/champs_5.41.I"
                                        /* Introduits le 20220513101131...                                                           */

#include  xci/valeurs_TransformationPeano2D.I"
                                        /* Introduit le 20220426131337...                                                            */

#define   PARAMETRAGE_DE_L_ITERATION_UNIQUE(iteration,editer_iteration,pas_de_l_iteration)                                              \
                    Ca1e(iteration)                                                                                                     \
                         Bblock                                                                                                         \
                         EGAL(editer_iteration,VRAI);                                                                                   \
                         Eblock                                                                                                         \
                    ECa1                                                                                                                \
                                        /* Choix d'une iteration...                                                                  */

#define   EDITION_DE_LA_DEFINITION_DU_CUBE(editer,sommetX,sommetY,sommetZ)                                                              \
                                        /* On notera que l'argument 'editer' n'est pas utilisee, mais ce n'est pas une erreur et     */ \
                                        /* cela vient de l'usage 'v $xci/valeurs_Hilbert3D$I EDITION_DE_LA_DEFINITION_DU_CUBE'...    */ \
                    Bblock                                                                                                              \
                    EDITION_DES_COORDONNEES("xB=%+.^^^ yB=%+.^^^ zB=%+.^^^ DefinitionCube=",sommetX,sommetY,sommetZ);                   \
                    Eblock                                                                                                              \
                                        /* Edition de la definition du cube...                                                       */

#define   EDITION_DES_COORDONNEES(format_coordonnees_X_Y_et_Z,Coordonnee_X,Coordonnee_Y,Coordonnee_Z)                                   \
                    Bblock                                                                                                              \
                    CAL2(Prin3(format_coordonnees_X_Y_et_Z                                                                              \
                              ,LIN3(permutation_XX,Coordonnee_X                                                                         \
                                   ,permutation_XY,Coordonnee_Y                                                                         \
                                   ,permutation_XZ,Coordonnee_Z                                                                         \
                                   ,translation_X                                                                                       \
                                    )                                                                                                   \
                              ,LIN3(permutation_YX,Coordonnee_X                                                                         \
                                   ,permutation_YY,Coordonnee_Y                                                                         \
                                   ,permutation_YZ,Coordonnee_Z                                                                         \
                                   ,translation_Y                                                                                       \
                                    )                                                                                                   \
                              ,LIN3(permutation_ZX,Coordonnee_X                                                                         \
                                   ,permutation_ZY,Coordonnee_Y                                                                         \
                                   ,permutation_ZZ,Coordonnee_Z                                                                         \
                                   ,translation_Z                                                                                       \
                                    )                                                                                                   \
                               )                                                                                                        \
                         );                                                                                                             \
                                        /* Le 20220428110814, les coordonnees 'X' et 'Z' ont ete permutees afin d'assurer la         */ \
                                        /* compatibilite des orientations des courbes ainsi generees avec des courbes anterieures    */ \
                                        /* (voir par exemple 'v $xiirv/PEAN.61' et 'v $xiirv/HILB.I2' respectivement...) generees    */ \
                                        /* par 'v $xci/valeurs_Hilbert3D$K' en particulier...                                        */ \
                    CAL2(Prin0("\n"));                                                                                                  \
                    Eblock                                                                                                              \
                                        /* Edition des coordonnees.                                                                  */

#define   EDITION_EVENTUELLE_D_UNE_ITERATION(editer,F2x,F2y,F2z,F1x,F1y,,F1z,pas_t)                                                     \
                    Bblock                                                                                                              \
                    Test(IL_FAUT(editer))                                                                                               \
                         Bblock                                                                                                         \
                         DEFV(Float,INIT(t,FLOT__UNDEF));                                                                               \
                                                                                                                                        \
                         DEFV(Local,DEFV(Float,INIT(Coordonnee_courante___X,FLOT__UNDEF)));                                             \
                         DEFV(Local,DEFV(Float,INIT(Coordonnee_courante___Y,FLOT__UNDEF)));                                             \
                         DEFV(Local,DEFV(Float,INIT(Coordonnee_courante___Z,FLOT__UNDEF)));                                             \
                                        /* Coordonnees 'X', 'Y' et 'Z' a l'instant 'T' courant.                                      */ \
                                                                                                                                        \
                         DEFV(Local,DEFV(Float,INIT(Coordonnee_anterieure_X,FLOT__UNDEF)));                                             \
                         DEFV(Local,DEFV(Float,INIT(Coordonnee_anterieure_Y,FLOT__UNDEF)));                                             \
                         DEFV(Local,DEFV(Float,INIT(Coordonnee_anterieure_Z,FLOT__UNDEF)));                                             \
                                        /* Coordonnees 'X', 'Y' et 'Z' a l'instant 'T' precedent.                                    */ \
                                                                                                                                        \
                         DoIn(t,minimum_t,maximum_t,pas_t)                                                                              \
                              Bblock                                                                                                    \
                              EGAL(Coordonnee_courante___X,F2x(t,&F1x,&F1y,&F1z));                                                      \
                              EGAL(Coordonnee_courante___Y,F2y(t,&F1x,&F1y,&F1z));                                                      \
                              EGAL(Coordonnee_courante___Z,F2z(t,&F1x,&F1y,&F1z));                                                      \
                                                                                                                                        \
                              Test(IL_FAUT(chainer_les_points))                                                                         \
                                   Bblock                                                                                               \
                                   Test(IFGT(t,minimum_t))                                                                              \
                                        Bblock                                                                                          \
                                        EGAL(Coordonnee_anterieure_X,Coordonnee_courante___X);                                          \
                                        EGAL(Coordonnee_anterieure_Y,Coordonnee_courante___Y);                                          \
                                        EGAL(Coordonnee_anterieure_Z,Coordonnee_courante___Z);                                          \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                                                                                                                                        \
                              Test(IL_FAUT(chainer_les_points))                                                                         \
                                   Bblock                                                                                               \
                                   Test(IFGT(t,minimum_t))                                                                              \
                                        Bblock                                                                                          \
                                        EDITION_DES_COORDONNEES("xA=%+.^^^ yA=%+.^^^ zA=%+.^^^"                                         \
                                                               ,Coordonnee_anterieure_X,Coordonnee_anterieure_Y,Coordonnee_anterieure_Z \
                                                                );                                                                      \
                                        EDITION_DES_COORDONNEES("xB=%+.^^^ yB=%+.^^^ zB=%+.^^^"                                         \
                                                               ,Coordonnee_courante___X,Coordonnee_courante___Y,Coordonnee_courante___Z \
                                                                );                                                                      \
                                        Eblock                                                                                          \
                                   ATes                                                                                                 \
                                        Bblock                                                                                          \
                                        Eblock                                                                                          \
                                   ETes                                                                                                 \
                                   Eblock                                                                                               \
                              ATes                                                                                                      \
                                   Bblock                                                                                               \
                                   CAL2(Prin2(Cara(chain_Aconcaten5(INTRODUCTION_FORMAT,valeurs_signees,".*",format_d_edition,"\n"))    \
                                             ,NOMBRE_DE_DECIMALES_EFFECTIF(nombre_de_decimales)                                         \
                                             ,LIZ4(ponderation_de_T,FLOT(t)                                                             \
                                                  ,ponderation_de_X,FLOT(Coordonnee_courante___X)                                       \
                                                  ,ponderation_de_Y,FLOT(Coordonnee_courante___Y)                                       \
                                                  ,ponderation_de_Z,FLOT(Coordonnee_courante___Z)                                       \
                                                   )                                                                                    \
                                              )                                                                                         \
                                        );                                                                                              \
                                   Eblock                                                                                               \
                              ETes                                                                                                      \
                              Eblock                                                                                                    \
                         EDoI                                                                                                           \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Edition des coordonnees.                                                                  */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        S U I T E   D E   F O N C T I O N S   R E C U R S I V E S   A   V A L E U R   D A N S   [ 0 , 1 ]                          */
/*        T R A N S F O R M A T I O N   A U T O - S I M I L A I R E   D E   H I L B E R T                                            */
/*        D A N S   [ 0 , 1 ] x [ 0 , 1 ] x [ 0 , 1 ]  :                                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

Denumer07(INIS(_01,UN)
              ,_02
              ,_03
              ,_04
              ,_05
              ,_06
              ,_07
              ,ListeDesIterationsDisponibles
          );

#define   ITERATION_01                                                                                                                  \
                    ENUM(_01)
#define   ITERATION_02                                                                                                                  \
                    ENUM(_02)
#define   ITERATION_03                                                                                                                  \
                    ENUM(_03)
#define   ITERATION_04                                                                                                                  \
                    ENUM(_04)
#define   ITERATION_05                                                                                                                  \
                    ENUM(_05)
#define   ITERATION_06                                                                                                                  \
                    ENUM(_06)
#define   ITERATION_07                                                                                                                  \
                    ENUM(_07)

BFonctionF
                                        /* Definition d'une fonction neutre 'f0x(...)' a valeur dans [0,1]...                        */

DEFV(FonctionF,f0x(t))
DEFV(Argument,DEFV(Float,t));
     Bblock
     RETU(t);
     Eblock

EFonctionF

BFonctionF
                                        /* Definition d'une fonction neutre 'f0y(...)' a valeur dans [0,1]...                        */

DEFV(FonctionF,f0y(t))
DEFV(Argument,DEFV(Float,t));
     Bblock
     RETU(t);
     Eblock

EFonctionF

BFonctionF
                                        /* Definition d'une fonction neutre 'f0z(...)' a valeur dans [0,1]...                        */

DEFV(FonctionF,f0z(t))
DEFV(Argument,DEFV(Float,t));
     Bblock
     RETU(t);
     Eblock

EFonctionF

BFonctionF
                                        /* Definition de la premiere fonction ('f1x(...)') de la suite de fonctions recursives       */
                                        /* a valeur dans [0,1]...                                                                    */

DEFV(Logical,INIT(remplacer_les_listes_de_substitution_par_des_listes_quelconques
                 ,REMPLACER_LES_LISTES_DE_SUBSTITUTION_PAR_DES_LISTES_QUELCONQUES
                  )
     );
                                        /* Faut-il remplacer les listes de substitution par des listes queconques ('VRAI') ou pas    */
                                        /* ('FAUX') ? La valeur par defaut assure la compatibilite anterieure (introduit le          */
                                        /* 20220513105553)...                                                                        */
DEFV(Logical,INIT(interpoler_les_listes_quelconques,INTERPOLER_LES_LISTES_QUELCONQUES));
                                        /* Faut-il interpoler les listes queconques ('VRAI') ou pas ('FAUX') ? Voir a ce propos le   */
                                        /* commentaires 'v $xci/valeurs_TransformationPeano2D$I 20220513134353'. Ceci fut introduit  */
                                        /* le 20220513142523...                                                                      */

#define   MINIMUM_T                                                                                                                     \
                    COORDONNEE_BARYCENTRIQUE_MINIMALE
#define   MAXIMUM_T                                                                                                                     \
                    COORDONNEE_BARYCENTRIQUE_MAXIMALE

DEFV(Local,DEFV(Float,INIT(minimum_t,MINIMUM_T)));
DEFV(Local,DEFV(Float,INIT(maximum_t,MAXIMUM_T)));

DEFV(Int,INIT(nombre_d_elements,NOMBRE_D_ELEMENTS));

#define   X_IMPLICITE                                                                                                                   \
                    FZERO
#define   Y_IMPLICITE                                                                                                                   \
                    FZERO
#define   Z_IMPLICITE                                                                                                                   \
                    FZERO

gGENERATION_D_UN_FICHIER(fichier_LISTE_X,liste_initiale_des_X);
gGENERATION_D_UN_FICHIER(fichier_LISTE_Y,liste_initiale_des_Y);
gGENERATION_D_UN_FICHIER(fichier_LISTE_Z,liste_initiale_des_Z);

#define   ELEMENT_DU_FICHIER_LISTE_X(index)                                                                                             \
                    gELEMENT_DU_FICHIER(liste_initiale_des_X,index)
#define   ELEMENT_DU_FICHIER_LISTE_Y(index)                                                                                             \
                    gELEMENT_DU_FICHIER(liste_initiale_des_Y,index)
#define   ELEMENT_DU_FICHIER_LISTE_Z(index)                                                                                             \
                    gELEMENT_DU_FICHIER(liste_initiale_des_Z,index)
                                        /* Listes introduites le 20220513101131...                                                   */

DEFV(Local,DEFV(Logical,INIT(f1x_____generer_avec_une_liste_de_substitution,FAUX)));
DEFV(Local,DEFV(genere_Float,DTb1(f1x_____liste_flottante_substitution_de_definition,COULEURS)));
                                        /* A priori, 'f1x(...)' n'utilise pas de liste de substitution mais peut le faire...         */
DEFV(Local,DEFV(Logical,INIT(f1x_____interpoler_la_substitution_de_definition,f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION)));
DEFV(Local,DEFV(Logical,INIT(f1x_____interpoler_la_substitution_de_definition__lineairement
                            ,f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__LINEAIREMENT
                             )
                )
     );
DEFV(Local,DEFV(Float,INIT(f1x_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                          ,f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_ORIGINE__
                           )
                )
     );
DEFV(Local,DEFV(Float,INIT(f1x_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                          ,f1x_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_EXTREMITE
                           )
                )
     );
                                        /* Possible interpolation des listes de substitution...                                      */

DEFV(FonctionF,f1x(t,ARGUMENT_FONCTION(f0x),ARGUMENT_FONCTION(f0y),ARGUMENT_FONCTION(f0z)))
DEFV(Argument,DEFV(Float,t));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0x)));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0y)));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0z)));
     Bblock
     DEFV(Float,INIT(ValeurDeLaFonction,FLOT__UNDEF));

     Test(EST_VRAI(f1x_____generer_avec_une_liste_de_substitution))
          Bblock
          INTERPOLATION_DE_LA_SUBSTITUTION(f1x_____liste_flottante_substitution_de_definition
                                          ,f1x_____interpoler_la_substitution_de_definition
                                          ,f1x_____interpoler_la_substitution_de_definition__lineairement
                                          ,f1x_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                                          ,f1x_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                                          ,ELEMENT_DU_FICHIER_LISTE_X
                                           );
          Eblock
     ATes
          Bblock
          EGAL(ValeurDeLaFonction,MUL3(FQUATRE,t,COMP(t)));
          Eblock
     ETes

     RETU(ValeurDeLaFonction);
     Eblock

EFonctionF

BFonctionF
                                        /* Definition de la premiere fonction ('f1y(...)') de la suite de fonctions recursives       */
                                        /* a valeur dans [0,1]...                                                                    */

DEFV(Local,DEFV(Logical,INIT(f1y_____generer_avec_une_liste_de_substitution,FAUX)));
DEFV(Local,DEFV(genere_Float,DTb1(f1y_____liste_flottante_substitution_de_definition,COULEURS)));
                                        /* A priori, 'f1y(...)' n'utilise pas de liste de substitution mais peut le faire...         */
DEFV(Local,DEFV(Logical,INIT(f1y_____interpoler_la_substitution_de_definition,f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION)));
DEFV(Local,DEFV(Logical,INIT(f1y_____interpoler_la_substitution_de_definition__lineairement
                            ,f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__LINEAIREMENT
                             )
                )
     );
DEFV(Local,DEFV(Float,INIT(f1y_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                          ,f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_ORIGINE__
                           )
                )
     );
DEFV(Local,DEFV(Float,INIT(f1y_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                          ,f1y_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_EXTREMITE
                           )
                )
     );
                                        /* Possible interpolation des listes de substitution...                                      */

DEFV(FonctionF,f1y(t,ARGUMENT_FONCTION(f0x),ARGUMENT_FONCTION(f0y),ARGUMENT_FONCTION(f0z)))
DEFV(Argument,DEFV(Float,t));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0x)));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0y)));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0z)));
     Bblock
     DEFV(Float,INIT(ValeurDeLaFonction,FLOT__UNDEF));

     Test(EST_VRAI(f1y_____generer_avec_une_liste_de_substitution))
          Bblock
          INTERPOLATION_DE_LA_SUBSTITUTION(f1y_____liste_flottante_substitution_de_definition
                                          ,f1y_____interpoler_la_substitution_de_definition
                                          ,f1y_____interpoler_la_substitution_de_definition__lineairement
                                          ,f1y_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                                          ,f1y_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                                          ,ELEMENT_DU_FICHIER_LISTE_Y
                                           );
          Eblock
     ATes
          Bblock
          EGAL(ValeurDeLaFonction,MUL3(FQUATRE,t,COMP(t)));
          Eblock
     ETes

     RETU(ValeurDeLaFonction);
     Eblock

EFonctionF

BFonctionF
                                        /* Definition de la premiere fonction ('f1z(...)') de la suite de fonctions recursives       */
                                        /* a valeur dans [0,1]...                                                                    */

DEFV(Local,DEFV(Logical,INIT(f1z_____generer_avec_une_liste_de_substitution,FAUX)));
DEFV(Local,DEFV(genere_Float,DTb1(f1z_____liste_flottante_substitution_de_definition,COULEURS)));
                                        /* A priori, 'f1z(...)' n'utilise pas de liste de substitution mais peut le faire...         */
DEFV(Local,DEFV(Logical,INIT(f1z_____interpoler_la_substitution_de_definition,f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION)));
DEFV(Local,DEFV(Logical,INIT(f1z_____interpoler_la_substitution_de_definition__lineairement
                            ,f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__LINEAIREMENT
                             )
                )
     );
DEFV(Local,DEFV(Float,INIT(f1z_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                          ,f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_ORIGINE__
                           )
                )
     );
DEFV(Local,DEFV(Float,INIT(f1z_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                          ,f1z_____INTERPOLER_LA_SUBSTITUTION_DE_DEFINITION__CUBIQUEMENT__DERIVEE_EXTREMITE
                           )
                )
     );
                                        /* Possible interpolation des listes de substitution...                                      */

DEFV(FonctionF,f1z(t,ARGUMENT_FONCTION(f0x),ARGUMENT_FONCTION(f0y),ARGUMENT_FONCTION(f0z)))
DEFV(Argument,DEFV(Float,t));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0x)));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0y)));
DEFV(Argument,DEFV(Float,afPOINTEUR(f0z)));
     Bblock
     DEFV(Float,INIT(ValeurDeLaFonction,FLOT__UNDEF));

     Test(EST_VRAI(f1z_____generer_avec_une_liste_de_substitution))
          Bblock
          INTERPOLATION_DE_LA_SUBSTITUTION(f1z_____liste_flottante_substitution_de_definition
                                          ,f1z_____interpoler_la_substitution_de_definition
                                          ,f1z_____interpoler_la_substitution_de_definition__lineairement
                                          ,f1z_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                                          ,f1z_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                                          ,ELEMENT_DU_FICHIER_LISTE_Z
                                           );
          Eblock
     ATes
          Bblock
          EGAL(ValeurDeLaFonction,NEUT(t));
          Eblock
     ETes

     RETU(ValeurDeLaFonction);
     Eblock

EFonctionF

#define   _____Generer                                                                                                                  \
                    FU
#define   NePasGenerer                                                                                                                  \
                    FZERO

#define   NombreDIntervalles                                                                                                            \
                    INTE(PUIX(DEUX,DIMENSION_DE_LA_COURBE))

#define   t0                                                                                                                            \
                    ADD2(minimum_t,GRO0(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t1                                                                                                                            \
                    ADD2(minimum_t,GRO1(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t2                                                                                                                            \
                    ADD2(minimum_t,GRO2(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t3                                                                                                                            \
                    ADD2(minimum_t,GRO3(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t4                                                                                                                            \
                    ADD2(minimum_t,GRO4(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t5                                                                                                                            \
                    ADD2(minimum_t,GRO5(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t6                                                                                                                            \
                    ADD2(minimum_t,GRO6(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t7                                                                                                                            \
                    ADD2(minimum_t,GRO7(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))
#define   t8                                                                                                                            \
                    ADD2(minimum_t,GRO8(SOUS(maximum_t,minimum_t)/FLOT(NombreDIntervalles)))

#define   ______0                                                                                                                       \
                    FZERO
#define   _____m1                                                                                                                       \
                    NEGA(FU)
#define   _____p1                                                                                                                       \
                    NEUT(FU)
#define   _____m2                                                                                                                       \
                    NEGA(FDEUX)
#define   _____p2                                                                                                                       \
                    NEUT(FDEUX)
#define   _____m3                                                                                                                       \
                    NEGA(FTROIS)
#define   _____p3                                                                                                                       \
                    NEUT(FTROIS)
#define   _____m4                                                                                                                       \
                    NEGA(FQUATRE)
#define   _____p4                                                                                                                       \
                    NEUT(FQUATRE)
#define   _____m5                                                                                                                       \
                    NEGA(FCINQ)
#define   _____p5                                                                                                                       \
                    NEUT(FCINQ)
#define   _____m6                                                                                                                       \
                    NEGA(FSIX)
#define   _____p6                                                                                                                       \
                    NEUT(FSIX)
#define   _____m7                                                                                                                       \
                    NEGA(FSEPT)
#define   _____p7                                                                                                                       \
                    NEUT(FSEPT)
                                        /* Afin d'ameliorer les tabulations ci-apres...                                              */

DEFV(Local,DEFV(Float,INIT(ax00,_____p1)));
DEFV(Local,DEFV(Float,INIT(bx00,______0)));
DEFV(Local,DEFV(Float,INIT(tx00,______0)));
DEFV(Local,DEFV(Float,INIT(ay00,_____p1)));
DEFV(Local,DEFV(Float,INIT(by00,______0)));
DEFV(Local,DEFV(Float,INIT(ty00,______0)));
DEFV(Local,DEFV(Float,INIT(az00,_____p1)));
DEFV(Local,DEFV(Float,INIT(bz00,______0)));
DEFV(Local,DEFV(Float,INIT(tz00,______0)));

DEFV(Local,DEFV(Float,INIT(ax01,_____p1)));
DEFV(Local,DEFV(Float,INIT(bx01,______0)));
DEFV(Local,DEFV(Float,INIT(tx01,_____m1)));
DEFV(Local,DEFV(Float,INIT(ay01,_____p1)));
DEFV(Local,DEFV(Float,INIT(by01,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty01,_____m1)));
DEFV(Local,DEFV(Float,INIT(az01,_____p1)));
DEFV(Local,DEFV(Float,INIT(bz01,______0)));
DEFV(Local,DEFV(Float,INIT(tz01,_____m1)));

DEFV(Local,DEFV(Float,INIT(ax02,_____p1)));
DEFV(Local,DEFV(Float,INIT(bx02,_____p1)));
DEFV(Local,DEFV(Float,INIT(tx02,_____m2)));
DEFV(Local,DEFV(Float,INIT(ay02,_____p1)));
DEFV(Local,DEFV(Float,INIT(by02,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty02,_____m2)));
DEFV(Local,DEFV(Float,INIT(az02,_____p1)));
DEFV(Local,DEFV(Float,INIT(bz02,______0)));
DEFV(Local,DEFV(Float,INIT(tz02,_____m2)));

DEFV(Local,DEFV(Float,INIT(ax03,_____p1)));
DEFV(Local,DEFV(Float,INIT(bx03,_____p1)));
DEFV(Local,DEFV(Float,INIT(tx03,_____m3)));
DEFV(Local,DEFV(Float,INIT(ay03,_____m1)));
DEFV(Local,DEFV(Float,INIT(by03,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty03,_____m3)));
DEFV(Local,DEFV(Float,INIT(az03,_____m1)));
DEFV(Local,DEFV(Float,INIT(bz03,_____p1)));
DEFV(Local,DEFV(Float,INIT(tz03,_____m3)));

DEFV(Local,DEFV(Float,INIT(ax04,_____m1)));
DEFV(Local,DEFV(Float,INIT(bx04,_____p2)));
DEFV(Local,DEFV(Float,INIT(tx04,_____m4)));
DEFV(Local,DEFV(Float,INIT(ay04,_____m1)));
DEFV(Local,DEFV(Float,INIT(by04,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty04,_____m4)));
DEFV(Local,DEFV(Float,INIT(az04,_____p1)));
DEFV(Local,DEFV(Float,INIT(bz04,_____p1)));
DEFV(Local,DEFV(Float,INIT(tz04,_____m4)));

DEFV(Local,DEFV(Float,INIT(ax05,_____p1)));
DEFV(Local,DEFV(Float,INIT(bx05,_____p1)));
DEFV(Local,DEFV(Float,INIT(tx05,_____m5)));
DEFV(Local,DEFV(Float,INIT(ay05,_____p1)));
DEFV(Local,DEFV(Float,INIT(by05,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty05,_____m5)));
DEFV(Local,DEFV(Float,INIT(az05,_____p1)));
DEFV(Local,DEFV(Float,INIT(bz05,_____p1)));
DEFV(Local,DEFV(Float,INIT(tz05,_____m5)));

DEFV(Local,DEFV(Float,INIT(ax06,_____m1)));
DEFV(Local,DEFV(Float,INIT(bx06,_____p1)));
DEFV(Local,DEFV(Float,INIT(tx06,_____m6)));
DEFV(Local,DEFV(Float,INIT(ay06,_____p1)));
DEFV(Local,DEFV(Float,INIT(by06,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty06,_____m6)));
DEFV(Local,DEFV(Float,INIT(az06,_____m1)));
DEFV(Local,DEFV(Float,INIT(bz06,_____p2)));
DEFV(Local,DEFV(Float,INIT(tz06,_____m6)));

DEFV(Local,DEFV(Float,INIT(ax07,_____p1)));
DEFV(Local,DEFV(Float,INIT(bx07,______0)));
DEFV(Local,DEFV(Float,INIT(tx07,_____m7)));
DEFV(Local,DEFV(Float,INIT(ay07,_____m1)));
DEFV(Local,DEFV(Float,INIT(by07,_____p1)));
DEFV(Local,DEFV(Float,INIT(ty07,_____m7)));
DEFV(Local,DEFV(Float,INIT(az07,_____m1)));
DEFV(Local,DEFV(Float,INIT(bz07,_____p2)));
DEFV(Local,DEFV(Float,INIT(tz07,_____m7)));

DEFV(Local,DEFV(Float,INIT(diviseur,FDEUX)));

Denumer09(INIS(__01,UN)
              ,__02
              ,__03
              ,__04
              ,__05
              ,__06
              ,__07
              ,__08
              ,__09
              ,ListeDesSegmentsPossibles
          );

#define   SEGMENT_01                                                                                                                    \
                    ENUM(__01)
#define   SEGMENT_02                                                                                                                    \
                    ENUM(__02)
#define   SEGMENT_03                                                                                                                    \
                    ENUM(__03)
#define   SEGMENT_04                                                                                                                    \
                    ENUM(__04)
#define   SEGMENT_05                                                                                                                    \
                    ENUM(__05)
#define   SEGMENT_06                                                                                                                    \
                    ENUM(__06)
#define   SEGMENT_07                                                                                                                    \
                    ENUM(__07)
#define   SEGMENT_08                                                                                                                    \
                    ENUM(__08)
#define   SEGMENT_INEXISTANT                                                                                                            \
                    ENUM(__09)
                                        /* Afin de simplifier la gestion des 8 segments (introduit le 20220426114741)...             */

#define   CHOIX_D_UN_SEGMENT(segment,valeur)                                                                                            \
                    Ca1e(segment)                                                                                                       \
                         Bblock                                                                                                         \
                         EGAL(ValeurDeLaFonction,valeur);                                                                               \
                         Eblock                                                                                                         \
                    ECa1

#define   APPEL_RECURSIF(a,F2,translation,F1x,F1y,F1z,b)                                                                                \
                    AXPB(a,F2(AXPB(NombreDIntervalles,t,translation),&F1x,&F1y,&F1z),b)                                                 \
                                        /* Introduit le 20220426104524 pour simplifier...                                            */

#define   GENERE_fnx_fny_fnz(nom                                                                                                        \
                            ,F2x,F2y,F2z                                                                                                \
                            ,F1x,F1y,F1z                                                                                                \
                            ,GenX,GenY,GenZ                                                                                             \
                            ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00                                                               \
                            ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01                                                               \
                            ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02                                                               \
                            ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03                                                               \
                            ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04                                                               \
                            ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05                                                               \
                            ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06                                                               \
                            ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07                                                               \
                             )                                                                                                          \
                                        /* A priori les arguments {ax00,tx00,...,tz03,bz03} ne servent a rien car ils possedent      */ \
                                        /* la meme valeur lors de tous les appels a 'GENERE_fnx_fny_fnz(...)', mais on ne sait       */ \
                                        /* jamais : plus tard...                                                                     */ \
                    BFonctionF                                                                                                          \
                    DEFV(FonctionF,nom(t,ARGUMENT_FONCTION(F2x),ARGUMENT_FONCTION(F2y),ARGUMENT_FONCTION(F2z)))                         \
                    DEFV(Argument,DEFV(Float,t));                                                                                       \
                    DEFV(Argument,DEFV(Float,afPOINTEUR(F2x)));                                                                         \
                    DEFV(Argument,DEFV(Float,afPOINTEUR(F2y)));                                                                         \
                    DEFV(Argument,DEFV(Float,afPOINTEUR(F2z)));                                                                         \
                              Bblock                                                                                                    \
                              DEFV(Float,INIT(ValeurDeLaFonction,FLOT__UNDEF));                                                         \
                              DEFV(Int,INIT(NumeroDu_segment                                                                            \
                                           ,CON08(IFINff(t,t0,t1),SEGMENT_01                                                            \
                                                 ,IFINff(t,t1,t2),SEGMENT_02                                                            \
                                                 ,IFINff(t,t2,t3),SEGMENT_03                                                            \
                                                 ,IFINff(t,t3,t4),SEGMENT_04                                                            \
                                                 ,IFINff(t,t4,t5),SEGMENT_05                                                            \
                                                 ,IFINff(t,t5,t6),SEGMENT_06                                                            \
                                                 ,IFINff(t,t6,t7),SEGMENT_07                                                            \
                                                 ,IFINff(t,t7,t8),SEGMENT_08                                                            \
                                                 ,SEGMENT_INEXISTANT                                                                    \
                                                  )                                                                                     \
                                            )                                                                                           \
                                   );                                                                                                   \
                                        /* Introduit le 20220426115352 afin de simplifier ce qui suit...                             */ \
                                                                                                                                        \
                              Choi(NumeroDu_segment)                                                                                    \
                                   Bblock                                                                                               \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_01                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax00,F2x,tx00,F1x,F1y,F1z,bx00)                          \
                                                          ,GenY,APPEL_RECURSIF(ay00,F2z,ty00,F1x,F1y,F1z,by00)                          \
                                                          ,GenZ,APPEL_RECURSIF(az00,F2y,tz00,F1x,F1y,F1z,bz00)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t0,t1] : transformation 1.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_02                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax01,F2z,tx01,F1x,F1y,F1z,bx01)                          \
                                                          ,GenY,APPEL_RECURSIF(ay01,F2y,ty01,F1x,F1y,F1z,by01)                          \
                                                          ,GenZ,APPEL_RECURSIF(az01,F2x,tz01,F1x,F1y,F1z,bz01)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t1,t2] : transformation 2.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_03                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax02,F2x,tx02,F1x,F1y,F1z,bx02)                          \
                                                          ,GenY,APPEL_RECURSIF(ay02,F2y,ty02,F1x,F1y,F1z,by02)                          \
                                                          ,GenZ,APPEL_RECURSIF(az02,F2z,tz02,F1x,F1y,F1z,bz02)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t2,t3] : transformation 3.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_04                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax03,F2z,tx03,F1x,F1y,F1z,bx03)                          \
                                                          ,GenY,APPEL_RECURSIF(ay03,F2x,ty03,F1x,F1y,F1z,by03)                          \
                                                          ,GenZ,APPEL_RECURSIF(az03,F2y,tz03,F1x,F1y,F1z,bz03)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t3,t4] : transformation 4.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_05                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax04,F2z,tx04,F1x,F1y,F1z,bx04)                          \
                                                          ,GenY,APPEL_RECURSIF(ay04,F2x,ty04,F1x,F1y,F1z,by04)                          \
                                                          ,GenZ,APPEL_RECURSIF(az04,F2y,tz04,F1x,F1y,F1z,bz04)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t4,t5] : transformation 5.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_06                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax05,F2x,tx05,F1x,F1y,F1z,bx05)                          \
                                                          ,GenY,APPEL_RECURSIF(ay05,F2y,ty05,F1x,F1y,F1z,by05)                          \
                                                          ,GenZ,APPEL_RECURSIF(az05,F2z,tz05,F1x,F1y,F1z,bz05)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t5,t6] : transformation 6.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_07                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax06,F2z,tx06,F1x,F1y,F1z,bx06)                          \
                                                          ,GenY,APPEL_RECURSIF(ay06,F2y,ty06,F1x,F1y,F1z,by06)                          \
                                                          ,GenZ,APPEL_RECURSIF(az06,F2x,tz06,F1x,F1y,F1z,bz06)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t6,t7] : transformation 7.                                                */ \
                                   CHOIX_D_UN_SEGMENT(SEGMENT_08                                                                        \
                                                     ,LIZ3(GenX,APPEL_RECURSIF(ax07,F2x,tx07,F1x,F1y,F1z,bx07)                          \
                                                          ,GenY,APPEL_RECURSIF(ay07,F2z,ty07,F1x,F1y,F1z,by07)                          \
                                                          ,GenZ,APPEL_RECURSIF(az07,F2y,tz07,F1x,F1y,F1z,bz07)                          \
                                                           )                                                                            \
                                                      );                                                                                \
                                        /* Cas du segment [t7,t8] : transformation 8.                                                */ \
                                   Defo                                                                                                 \
                                        Bblock                                                                                          \
                                        PRINT_ERREUR("le parametre 'T' est hors limite");                                               \
                                        CAL1(Prer3("(il vaut %f alors qu'il devrait etre dans [%f,%f])\n"                               \
                                                  ,t                                                                                    \
                                                  ,t1,t8                                                                                \
                                                   )                                                                                    \
                                             );                                                                                         \
                                        Eblock                                                                                          \
                                   EDef                                                                                                 \
                                   Eblock                                                                                               \
                              ECho                                                                                                      \
                                                                                                                                        \
                              RETU(DIVI(ValeurDeLaFonction,diviseur));                                                                  \
                              Eblock                                                                                                    \
                    EFonctionF

GENERE_fnx_fny_fnz(f2x
                  ,f1x,f1y,f1z
                  ,f0x,f0y,f0z
                  ,_____Generer,NePasGenerer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f2y
                  ,f1x,f1y,f1z
                  ,f0x,f0y,f0z
                  ,NePasGenerer,_____Generer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f2z
                  ,f1x,f1y,f1z
                  ,f0x,f0y,f0z
                  ,NePasGenerer,NePasGenerer,_____Generer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
                                        /* Definition des fonctions {f2x(...),f2y(...),f2z(...)} de la suite de fonctions recursives */
                                        /* a valeur dans [0,1]...                                                                    */

GENERE_fnx_fny_fnz(f3x
                  ,f2x,f2y,f2z
                  ,f1x,f1y,f1z
                  ,_____Generer,NePasGenerer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f3y
                  ,f2x,f2y,f2z
                  ,f1x,f1y,f1z
                  ,NePasGenerer,_____Generer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f3z
                  ,f2x,f2y,f2z
                  ,f1x,f1y,f1z
                  ,NePasGenerer,NePasGenerer,_____Generer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
                                        /* Definition des fonctions {f3x(...),f3y(...),f3z(...)} de la suite de fonctions recursives */
                                        /* a valeur dans [0,1]...                                                                    */

GENERE_fnx_fny_fnz(f4x
                  ,f3x,f3y,f3z
                  ,f2x,f2y,f2z
                  ,_____Generer,NePasGenerer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f4y
                  ,f3x,f3y,f3z
                  ,f2x,f2y,f2z
                  ,NePasGenerer,_____Generer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f4z
                  ,f3x,f3y,f3z
                  ,f2x,f2y,f2z
                  ,NePasGenerer,NePasGenerer,_____Generer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
                                        /* Definition des fonctions {f4x(...),f4y(...),f4z(...)} de la suite de fonctions recursives */
                                        /* a valeur dans [0,1]...                                                                    */

GENERE_fnx_fny_fnz(f5x
                  ,f4x,f4y,f4z
                  ,f3x,f3y,f3z
                  ,_____Generer,NePasGenerer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f5y
                  ,f4x,f4y,f4z
                  ,f3x,f3y,f3z
                  ,NePasGenerer,_____Generer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f5z
                  ,f4x,f4y,f4z
                  ,f3x,f3y,f3z
                  ,NePasGenerer,NePasGenerer,_____Generer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
                                        /* Definition des fonctions {f5x(...),f5y(...),f5z(...)} de la suite de fonctions recursives */
                                        /* a valeur dans [0,1]...                                                                    */

GENERE_fnx_fny_fnz(f6x
                  ,f5x,f5y,f5z
                  ,f4x,f4y,f4z
                  ,_____Generer,NePasGenerer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f6y
                  ,f5x,f5y,f5z
                  ,f4x,f4y,f4z
                  ,NePasGenerer,_____Generer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f6z
                  ,f5x,f5y,f5z
                  ,f4x,f4y,f4z
                  ,NePasGenerer,NePasGenerer,_____Generer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
                                        /* Definition des fonctions {f6x(...),f6y(...),f6z(...)} de la suite de fonctions recursives */
                                        /* a valeur dans [0,1]...                                                                    */

GENERE_fnx_fny_fnz(f7x
                  ,f6x,f6y,f6z
                  ,f5x,f5y,f5z
                  ,_____Generer,NePasGenerer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f7y
                  ,f6x,f6y,f6z
                  ,f5x,f5y,f5z
                  ,NePasGenerer,_____Generer,NePasGenerer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
GENERE_fnx_fny_fnz(f7z
                  ,f6x,f6y,f6z
                  ,f5x,f5y,f5z
                  ,NePasGenerer,NePasGenerer,_____Generer
                  ,ax00,bx00,tx00,ay00,by00,ty00,az00,bz00,tz00
                  ,ax01,bx01,tx01,ay01,by01,ty01,az01,bz01,tz01
                  ,ax02,bx02,tx02,ay02,by02,ty02,az02,bz02,tz02
                  ,ax03,bx03,tx03,ay03,by03,ty03,az03,bz03,tz03
                  ,ax04,bx04,tx04,ay04,by04,ty04,az04,bz04,tz04
                  ,ax05,bx05,tx05,ay05,by05,ty05,az05,bz05,tz05
                  ,ax06,bx06,tx06,ay06,by06,ty06,az06,bz06,tz06
                  ,ax07,bx07,tx07,ay07,by07,ty07,az07,bz07,tz07
                   );
                                        /* Definition des fonctions {f7x(...),f7y(...),f7z(...)} de la suite de fonctions recursives */
                                        /* a valeur dans [0,1]...                                                                    */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S F O R M A T I O N   A U T O - S I M I L A I R E   D E   H I L B E R T                                            */
/*        D A N S   [ 0 , 1 ] x [ 0 , 1 ] x [ 0 , 1 ]  :                                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Logical,INIT(editer_la_definition_du_cube,EDITER_LA_DEFINITION_DU_CUBE));
     DEFV(Logical,INIT(editer_la_definition_des_sous_cubes,EDITER_LA_DEFINITION_DES_SOUS_CUBES));
                                        /* Faut-il editer la definition du cube ('VRAI') ou pas ('FAUX') ? L'edition de la           */
                                        /* definition des 8 sous-cubes a ete introduite le 20220519182554..                          */

     DEFV(CHAR,INIC(POINTERc(f1x_____nom_paletteA),NOM_PIPE));
     DEFV(CHAR,INIT(POINTERc(f1x_____nom_de_la_substitution_de_definition),f1x_____NOM_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Int,INIT(f1x_____substitution_courante_de_definition,f1x_____SUBSTITUTION_COURANTE_DE_DEFINITION));
     DEFV(Logical,INIT(f1x_____lissage_de_la_substitution_de_definition,f1x_____LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Int,INIT(f1x_____nombre_de_passes_de_lissage_de_la_substitution_de_definition
                  ,f1x_____NOMBRE_DE_PASSES_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION
                   )
          );
     DEFV(Int,INIT(f1x_____pas_de_lissage_de_la_substitution_de_definition,f1x_____PAS_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Float,INIT(f1x_____minimum_de_la_substitution_de_definition,f1x_____MINIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Float,INIT(f1x_____maximum_de_la_substitution_de_definition,f1x_____MAXIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION));
                                        /* Definition de 'f1x(...)' via '$xiP' (inutilise par defaut...).                            */
                                        /*                                                                                           */
                                        /* Le 20220427092531, l'interpolation des listes de substitution est passee de 'FAUX'        */
                                        /* a 'VRAI' par defaut et ce contrairement a 'v $xci/valeurs_TransformationPeano2D$K'        */
                                        /* qui reste a 'FAUX' pour des raisons de compatibilite anterieure...                        */

     DEFV(CHAR,INIC(POINTERc(f1y_____nom_paletteA),NOM_PIPE));
     DEFV(CHAR,INIT(POINTERc(f1y_____nom_de_la_substitution_de_definition),f1y_____NOM_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Int,INIT(f1y_____substitution_courante_de_definition,f1y_____SUBSTITUTION_COURANTE_DE_DEFINITION));
     DEFV(Logical,INIT(f1y_____lissage_de_la_substitution_de_definition,f1y_____LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Int,INIT(f1y_____nombre_de_passes_de_lissage_de_la_substitution_de_definition
                  ,f1y_____NOMBRE_DE_PASSES_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION
                   )
          );
     DEFV(Int,INIT(f1y_____pas_de_lissage_de_la_substitution_de_definition,f1y_____PAS_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Float,INIT(f1y_____minimum_de_la_substitution_de_definition,f1y_____MINIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Float,INIT(f1y_____maximum_de_la_substitution_de_definition,f1y_____MAXIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION));
                                        /* Definition de 'f1y(...)' via '$xiP' (inutilise par defaut...).                            */
                                        /*                                                                                           */
                                        /* Le 20220427092531, l'interpolation des listes de substitution est passee de 'FAUX'        */
                                        /* a 'VRAI' par defaut et ce contrairement a 'v $xci/valeurs_TransformationPeano2D$K'        */
                                        /* qui reste a 'FAUX' pour des raisons de compatibilite anterieure...                        */

     DEFV(CHAR,INIC(POINTERc(f1z_____nom_paletteA),NOM_PIPE));
     DEFV(CHAR,INIT(POINTERc(f1z_____nom_de_la_substitution_de_definition),f1z_____NOM_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Int,INIT(f1z_____substitution_courante_de_definition,f1z_____SUBSTITUTION_COURANTE_DE_DEFINITION));
     DEFV(Logical,INIT(f1z_____lissage_de_la_substitution_de_definition,f1z_____LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Int,INIT(f1z_____nombre_de_passes_de_lissage_de_la_substitution_de_definition
                  ,f1z_____NOMBRE_DE_PASSES_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION
                   )
          );
     DEFV(Int,INIT(f1z_____pas_de_lissage_de_la_substitution_de_definition,f1z_____PAS_DE_LISSAGE_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Float,INIT(f1z_____minimum_de_la_substitution_de_definition,f1z_____MINIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION));
     DEFV(Float,INIT(f1z_____maximum_de_la_substitution_de_definition,f1z_____MAXIMUM_DE_LA_SUBSTITUTION_DE_DEFINITION));
                                        /* Definition de 'f1z(...)' via '$xiP' (inutilise par defaut...).                            */
                                        /*                                                                                           */
                                        /* Le 20220427092531, l'interpolation des listes de substitution est passee de 'FAUX'        */
                                        /* a 'VRAI' par defaut et ce contrairement a 'v $xci/valeurs_TransformationPeano2D$K'        */
                                        /* qui reste a 'FAUX' pour des raisons de compatibilite anterieure...                        */

     DEFV(Logical,INIT(chainer_les_points,CHAINER_LES_POINTS));
                                        /* Faut-il chainer les points ('VRAI') ou pas ('FAUX') ?                                     */

     DEFV(Logical,INIT(calculer_une_seule_iteration,CALCULER_UNE_SEULE_ITERATION));
     DEFV(Int,INIT(numero_de_l_iteration_unique,NUMERO_DE_L_ITERATION_UNIQUE));
                                        /* Choix du mode "une" ou "plusieurs iterations"...                                          */

     DEFV(Logical,INIT(editer_iteration_01,EDITER_ITERATION_01));
     DEFV(Logical,INIT(editer_iteration_02,EDITER_ITERATION_02));
     DEFV(Logical,INIT(editer_iteration_03,EDITER_ITERATION_03));
     DEFV(Logical,INIT(editer_iteration_04,EDITER_ITERATION_04));
     DEFV(Logical,INIT(editer_iteration_05,EDITER_ITERATION_05));
     DEFV(Logical,INIT(editer_iteration_06,EDITER_ITERATION_06));
     DEFV(Logical,INIT(editer_iteration_07,EDITER_ITERATION_07));
                                        /* Choix des iterations a editer...                                                          */

     DEFV(Float,INIT(pas_de_l_iteration_01,PAS_DE_L_ITERATION_01));
     DEFV(Float,INIT(pas_de_l_iteration_02,PAS_DE_L_ITERATION_02));
     DEFV(Float,INIT(pas_de_l_iteration_03,PAS_DE_L_ITERATION_03));
     DEFV(Float,INIT(pas_de_l_iteration_04,PAS_DE_L_ITERATION_04));
     DEFV(Float,INIT(pas_de_l_iteration_05,PAS_DE_L_ITERATION_05));
     DEFV(Float,INIT(pas_de_l_iteration_06,PAS_DE_L_ITERATION_06));
     DEFV(Float,INIT(pas_de_l_iteration_07,PAS_DE_L_ITERATION_07));
                                        /* Pas d'edition des iterations...                                                           */

     DEFV(Float,INIT(permutation_XX,PERMUTATION_XX));
     DEFV(Float,INIT(permutation_XY,PERMUTATION_XY));
     DEFV(Float,INIT(permutation_XZ,PERMUTATION_XZ));
     DEFV(Float,INIT(translation_X,TRANSLATION_X));

     DEFV(Float,INIT(permutation_YX,PERMUTATION_YX));
     DEFV(Float,INIT(permutation_YY,PERMUTATION_YY));
     DEFV(Float,INIT(permutation_YZ,PERMUTATION_YZ));
     DEFV(Float,INIT(translation_Y,TRANSLATION_Y));

     DEFV(Float,INIT(permutation_ZX,PERMUTATION_ZX));
     DEFV(Float,INIT(permutation_ZY,PERMUTATION_ZY));
     DEFV(Float,INIT(permutation_ZZ,PERMUTATION_ZZ));
     DEFV(Float,INIT(translation_Z,TRANSLATION_Z));
                                        /* Le 20220428110814, les coordonnees 'X' et 'Z' ont ete permutees afin d'assurer la         */
                                        /* compatibilite des orientations des courbes ainsi generees avec des courbes anterieures    */
                                        /* (voir par exemple 'v $xiirv/PEAN.61' et 'v $xiirv/HILB.I2' respectivement...) generees    */
                                        /* par 'v $xci/valeurs_Hilbert3D$K' en particulier...                                        */

     DEFV(Float,INIT(ponderation_de_T,PONDERATION_DE_T));
     DEFV(Float,INIT(ponderation_de_X,PONDERATION_DE_X));
     DEFV(Float,INIT(ponderation_de_Y,PONDERATION_DE_Y));
     DEFV(Float,INIT(ponderation_de_Z,PONDERATION_DE_Z));
                                        /* Ponderations respectives de 'X', 'Y' et 'Z'.                                              */

#include  xci/valeurs.03.I"
     /*..............................................................................................................................*/
     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("listes_quelconques=""lq=",remplacer_les_listes_de_substitution_par_des_listes_quelconques);
                         GET_ARGUMENT_N("listes_substitution=""ls=",remplacer_les_listes_de_substitution_par_des_listes_quelconques);
                                        /* Arguments introduits le 20220513105553...                                                 */
                         GET_ARGUMENT_L("interpoler_listes_quelconques=""ilq=",interpoler_les_listes_quelconques);
                                        /* Argument introduit le 20220513142518...                                                   */

                         PROCESS_ARGUMENT_I("nombre_elements=""ne=",nombre_d_elements
                                           ,BLOC(VIDE;)
                                           ,BLOC(Bblock
                                                 PRINT_AVERTISSEMENT("'ne=' doit etre defini avant toute entree de fichiers");
                                                 Eblock
                                                 )
                                            );

                         PROCESS_ARGUMENTS_DE_DEFINITION_DES_FICHIERS_01;

                         PROKESF_ARGUMENT_FICHIER("LISTE_X="
                                                 ,fichier_LISTE_X
                                                 ,liste_initiale_des_X
                                                 ,X_IMPLICITE
                                                 ,lTRANSFORMAT_0d
                                                 ,iGENERATION_D_UN_FICHIER
                                                  );
                         PROKESF_ARGUMENT_FICHIER("LISTE_Y="
                                                 ,fichier_LISTE_Y
                                                 ,liste_initiale_des_Y
                                                 ,Y_IMPLICITE
                                                 ,lTRANSFORMAT_0d
                                                 ,iGENERATION_D_UN_FICHIER
                                                  );
                         PROKESF_ARGUMENT_FICHIER("LISTE_Z="
                                                 ,fichier_LISTE_Z
                                                 ,liste_initiale_des_Z
                                                 ,Z_IMPLICITE
                                                 ,lTRANSFORMAT_0d
                                                 ,iGENERATION_D_UN_FICHIER
                                                  );

                         GET_ARGUMENT_C("f1x_palette=""f1x_pA=""f1x_p=",f1x_____nom_paletteA);
                         GET_ARGUMENT_L("f1x_lissage=",f1x_____lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_I("f1x_passes=",f1x_____nombre_de_passes_de_lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_I("f1x_pl=""f1x_pas_lissage=",f1x_____pas_de_lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_C("f1x_substitution=""f1x_s=",f1x_____nom_de_la_substitution_de_definition);
                         GET_ARGUMENT_F("f1x_minimum=""f1x_m=",f1x_____minimum_de_la_substitution_de_definition);
                         GET_ARGUMENT_F("f1x_maximum=""f1x_M=",f1x_____maximum_de_la_substitution_de_definition);
                         GET_ARGUMENT_L("f1x_interpoler=""f1x_i=",f1x_____interpoler_la_substitution_de_definition);
                         GET_ARGUMENT_L("f1x_interpoler_lineairement=""f1x_il="
                                       ,f1x_____interpoler_la_substitution_de_definition__lineairement
                                        );
                         GET_ARGUMENT_N("f1x_interpoler_cubiquement=""f1x_ic="
                                       ,f1x_____interpoler_la_substitution_de_definition__lineairement
                                        );
                         GET_ARGUMENT_F("f1x_derivee_origine=""f1x_do="
                                       ,f1x_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                                        );
                         GET_ARGUMENT_F("f1x_derivee_extremite=""f1x_de="
                                       ,f1x_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                                        );

                         GET_ARGUMENT_C("f1y_palette=""f1y_pA=""f1y_p=",f1y_____nom_paletteA);
                         GET_ARGUMENT_L("f1y_lissage=",f1y_____lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_I("f1y_passes=",f1y_____nombre_de_passes_de_lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_I("f1y_pl=""f1y_pas_lissage=",f1y_____pas_de_lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_C("f1y_substitution=""f1y_s=",f1y_____nom_de_la_substitution_de_definition);
                         GET_ARGUMENT_F("f1y_minimum=""f1y_m=",f1y_____minimum_de_la_substitution_de_definition);
                         GET_ARGUMENT_F("f1y_maximum=""f1y_M=",f1y_____maximum_de_la_substitution_de_definition);
                         GET_ARGUMENT_L("f1y_interpoler=""f1y_i=",f1y_____interpoler_la_substitution_de_definition);
                         GET_ARGUMENT_L("f1y_interpoler_lineairement=""f1y_il="
                                       ,f1y_____interpoler_la_substitution_de_definition__lineairement
                                        );
                         GET_ARGUMENT_N("f1y_interpoler_cubiquement=""f1y_ic="
                                       ,f1y_____interpoler_la_substitution_de_definition__lineairement
                                        );
                         GET_ARGUMENT_F("f1y_derivee_origine=""f1y_do="
                                       ,f1y_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                                        );
                         GET_ARGUMENT_F("f1y_derivee_extremite=""f1y_de="
                                       ,f1y_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                                        );

                         GET_ARGUMENT_C("f1z_palette=""f1z_pA=""f1z_p=",f1z_____nom_paletteA);
                         GET_ARGUMENT_L("f1z_lissage=",f1z_____lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_I("f1z_passes=",f1z_____nombre_de_passes_de_lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_I("f1z_pl=""f1z_pas_lissage=",f1z_____pas_de_lissage_de_la_substitution_de_definition);
                         GET_ARGUMENT_C("f1z_substitution=""f1z_s=",f1z_____nom_de_la_substitution_de_definition);
                         GET_ARGUMENT_F("f1z_minimum=""f1z_m=",f1z_____minimum_de_la_substitution_de_definition);
                         GET_ARGUMENT_F("f1z_maximum=""f1z_M=",f1z_____maximum_de_la_substitution_de_definition);
                         GET_ARGUMENT_L("f1z_interpoler=""f1z_i=",f1z_____interpoler_la_substitution_de_definition);
                         GET_ARGUMENT_L("f1z_interpoler_lineairement=""f1z_il="
                                       ,f1z_____interpoler_la_substitution_de_definition__lineairement
                                        );
                         GET_ARGUMENT_N("f1z_interpoler_cubiquement=""f1z_ic="
                                       ,f1z_____interpoler_la_substitution_de_definition__lineairement
                                        );
                         GET_ARGUMENT_F("f1z_derivee_origine=""f1z_do="
                                       ,f1z_____interpoler_la_substitution_de_definition__cubiquement__derivee_origine__
                                        );
                         GET_ARGUMENT_F("f1z_derivee_extremite=""f1z_de="
                                       ,f1z_____interpoler_la_substitution_de_definition__cubiquement__derivee_extremite
                                        );

                         GET_ARGUMENT_L("definition_cube=""dc=",editer_la_definition_du_cube);
                         GET_ARGUMENT_L("definition_sous_cubes=""dsc=",editer_la_definition_des_sous_cubes);
                                        /* Argument introduit le 20220519182608...                                                   */

                         GET_ARGUMENT_L("chainer_points=""cp=",chainer_les_points);

                         GET_ARGUMENT_F("min_t=""mt=",minimum_t);
                         GET_ARGUMENT_F("max_t=""Mt=",maximum_t);

                         GET_ARGUMENT_F("ax00=",ax00);
                                        /* Je note le 20220522101354 que changer "ax00=+1" en "ax00=+0.5" est interessant (conserve  */
                                        /* la continuite et cree des zones vides...).                                                */
                         GET_ARGUMENT_F("bx00=",bx00);
                         GET_ARGUMENT_F("tx00=",tx00);
                         GET_ARGUMENT_F("ay00=",ay00);
                         GET_ARGUMENT_F("by00=",by00);
                         GET_ARGUMENT_F("ty00=",ty00);
                         GET_ARGUMENT_F("az00=",az00);
                         GET_ARGUMENT_F("bz00=",bz00);
                         GET_ARGUMENT_F("tz00=",tz00);

                         GET_ARGUMENT_F("ax01=",ax01);
                         GET_ARGUMENT_F("bx01=",bx01);
                         GET_ARGUMENT_F("tx01=",tx01);
                         GET_ARGUMENT_F("ay01=",ay01);
                         GET_ARGUMENT_F("by01=",by01);
                         GET_ARGUMENT_F("ty01=",ty01);
                         GET_ARGUMENT_F("az01=",az01);
                         GET_ARGUMENT_F("bz01=",bz01);
                         GET_ARGUMENT_F("tz01=",tz01);

                         GET_ARGUMENT_F("ax02=",ax02);
                         GET_ARGUMENT_F("bx02=",bx02);
                         GET_ARGUMENT_F("tx02=",tx02);
                         GET_ARGUMENT_F("ay02=",ay02);
                         GET_ARGUMENT_F("by02=",by02);
                         GET_ARGUMENT_F("ty02=",ty02);
                         GET_ARGUMENT_F("az02=",az02);
                         GET_ARGUMENT_F("bz02=",bz02);
                         GET_ARGUMENT_F("tz02=",tz02);

                         GET_ARGUMENT_F("ax03=",ax03);
                                        /* Je note le 20220522101354 que changer "ax03=+1" en "ax03=+0.5" est interessant (conserve  */
                                        /* la continuite et cree des zones vides...).                                                */
                         GET_ARGUMENT_F("bx03=",bx03);
                         GET_ARGUMENT_F("tx03=",tx03);
                         GET_ARGUMENT_F("ay03=",ay03);
                         GET_ARGUMENT_F("by03=",by03);
                         GET_ARGUMENT_F("ty03=",ty03);
                         GET_ARGUMENT_F("az03=",az03);
                         GET_ARGUMENT_F("bz03=",bz03);
                         GET_ARGUMENT_F("tz03=",tz03);

                         GET_ARGUMENT_F("ax04=",ax04);
                         GET_ARGUMENT_F("bx04=",bx04);
                         GET_ARGUMENT_F("tx04=",tx04);
                         GET_ARGUMENT_F("ay04=",ay04);
                         GET_ARGUMENT_F("by04=",by04);
                         GET_ARGUMENT_F("ty04=",ty04);
                         GET_ARGUMENT_F("az04=",az04);
                         GET_ARGUMENT_F("bz04=",bz04);
                         GET_ARGUMENT_F("tz04=",tz04);

                         GET_ARGUMENT_F("ax05=",ax05);
                         GET_ARGUMENT_F("bx05=",bx05);
                         GET_ARGUMENT_F("tx05=",tx05);
                         GET_ARGUMENT_F("ay05=",ay05);
                         GET_ARGUMENT_F("by05=",by05);
                         GET_ARGUMENT_F("ty05=",ty05);
                         GET_ARGUMENT_F("az05=",az05);
                         GET_ARGUMENT_F("bz05=",bz05);
                         GET_ARGUMENT_F("tz05=",tz05);

                         GET_ARGUMENT_F("ax06=",ax06);
                         GET_ARGUMENT_F("bx06=",bx06);
                         GET_ARGUMENT_F("tx06=",tx06);
                         GET_ARGUMENT_F("ay06=",ay06);
                         GET_ARGUMENT_F("by06=",by06);
                         GET_ARGUMENT_F("ty06=",ty06);
                         GET_ARGUMENT_F("az06=",az06);
                         GET_ARGUMENT_F("bz06=",bz06);
                         GET_ARGUMENT_F("tz06=",tz06);

                         GET_ARGUMENT_F("ax07=",ax07);
                         GET_ARGUMENT_F("bx07=",bx07);
                         GET_ARGUMENT_F("tx07=",tx07);
                         GET_ARGUMENT_F("ay07=",ay07);
                         GET_ARGUMENT_F("by07=",by07);
                         GET_ARGUMENT_F("ty07=",ty07);
                         GET_ARGUMENT_F("az07=",az07);
                         GET_ARGUMENT_F("bz07=",bz07);
                         GET_ARGUMENT_F("tz07=",tz07);

                         GET_ARGUMENT_F("diviseur=""d=",diviseur);

                         GET_ARGUMENT_L("une_iteration=""ui=",calculer_une_seule_iteration);
                         GET_ARGUMENT_I("numero_iteration=""ni=",numero_de_l_iteration_unique);

                         GET_ARGUMENT_L("iteration_01=""i01=",editer_iteration_01);
                         GET_ARGUMENT_L("iteration_02=""i02=",editer_iteration_02);
                         GET_ARGUMENT_L("iteration_03=""i03=",editer_iteration_03);
                         GET_ARGUMENT_L("iteration_04=""i04=",editer_iteration_04);
                         GET_ARGUMENT_L("iteration_05=""i05=",editer_iteration_05);
                         GET_ARGUMENT_L("iteration_06=""i06=",editer_iteration_06);
                         GET_ARGUMENT_L("iteration_07=""i07=",editer_iteration_07);

                         GET_ARGUMENT_F("pas_01=""p01=",pas_de_l_iteration_01);
                         GET_ARGUMENT_F("pas_02=""p02=",pas_de_l_iteration_02);
                         GET_ARGUMENT_F("pas_03=""p03=",pas_de_l_iteration_03);
                         GET_ARGUMENT_F("pas_04=""p04=",pas_de_l_iteration_04);
                         GET_ARGUMENT_F("pas_05=""p05=",pas_de_l_iteration_05);
                         GET_ARGUMENT_F("pas_06=""p06=",pas_de_l_iteration_06);
                         GET_ARGUMENT_F("pas_07=""p07=",pas_de_l_iteration_07);

                         GET_ARGUMENT_F("Pxx=""PXX=",permutation_XX);
                         GET_ARGUMENT_F("Pxy=""PXY=",permutation_XY);
                         GET_ARGUMENT_F("Pxz=""PXZ=",permutation_XZ);
                         GET_ARGUMENT_F("Tx=""TX=",translation_X);

                         GET_ARGUMENT_F("Pyx=""PYX=",permutation_YX);
                         GET_ARGUMENT_F("Pyy=""PYY=",permutation_YY);
                         GET_ARGUMENT_F("Pyz=""PYZ=",permutation_YZ);
                         GET_ARGUMENT_F("Ty=""TY=",translation_Y);

                         GET_ARGUMENT_F("Pzx=""PZX=",permutation_ZX);
                         GET_ARGUMENT_F("Pzy=""PZY=",permutation_ZY);
                         GET_ARGUMENT_F("Pzz=""PZZ=",permutation_ZZ);
                         GET_ARGUMENT_F("Tz=""TZ=",translation_Z);
                                        /* Les options de permutation des coordonnees ont ete introduites le 20220428110814...       */

                         GET_ARGUMENT_F("Pt=""PT=",ponderation_de_T);
                         GET_ARGUMENT_F("Px=""PX=",ponderation_de_X);
                         GET_ARGUMENT_F("Py=""PY=",ponderation_de_Y);
                         GET_ARGUMENT_F("Pz=""PZ=",ponderation_de_Z);

                         PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_1;
                         )
                    );

     MISE_EN_PLACE_D_UNE_LISTE_DE_SUBSTITUTION(f1x_____nom_paletteA
                                              ,f1x_____nom_de_la_substitution_de_definition
                                              ,f1x_____substitution_courante_de_definition
                                              ,f1x_____liste_flottante_substitution_de_definition
                                              ,f1x_____lissage_de_la_substitution_de_definition
                                              ,f1x_____nombre_de_passes_de_lissage_de_la_substitution_de_definition
                                              ,f1x_____pas_de_lissage_de_la_substitution_de_definition
                                              ,f1x_____minimum_de_la_substitution_de_definition
                                              ,f1x_____maximum_de_la_substitution_de_definition
                                              ,f1x_____generer_avec_une_liste_de_substitution
                                               );

     MISE_EN_PLACE_D_UNE_LISTE_DE_SUBSTITUTION(f1y_____nom_paletteA
                                              ,f1y_____nom_de_la_substitution_de_definition
                                              ,f1y_____substitution_courante_de_definition
                                              ,f1y_____liste_flottante_substitution_de_definition
                                              ,f1y_____lissage_de_la_substitution_de_definition
                                              ,f1y_____nombre_de_passes_de_lissage_de_la_substitution_de_definition
                                              ,f1y_____pas_de_lissage_de_la_substitution_de_definition
                                              ,f1y_____minimum_de_la_substitution_de_definition
                                              ,f1y_____maximum_de_la_substitution_de_definition
                                              ,f1y_____generer_avec_une_liste_de_substitution
                                               );

     MISE_EN_PLACE_D_UNE_LISTE_DE_SUBSTITUTION(f1z_____nom_paletteA
                                              ,f1z_____nom_de_la_substitution_de_definition
                                              ,f1z_____substitution_courante_de_definition
                                              ,f1z_____liste_flottante_substitution_de_definition
                                              ,f1z_____lissage_de_la_substitution_de_definition
                                              ,f1z_____nombre_de_passes_de_lissage_de_la_substitution_de_definition
                                              ,f1z_____pas_de_lissage_de_la_substitution_de_definition
                                              ,f1z_____minimum_de_la_substitution_de_definition
                                              ,f1z_____maximum_de_la_substitution_de_definition
                                              ,f1z_____generer_avec_une_liste_de_substitution
                                               );

     Test(IL_FAUT(calculer_une_seule_iteration))
          Bblock
          EGAL(editer_iteration_01,FAUX);
          EGAL(editer_iteration_02,FAUX);
          EGAL(editer_iteration_03,FAUX);
          EGAL(editer_iteration_04,FAUX);
          EGAL(editer_iteration_05,FAUX);
          EGAL(editer_iteration_06,FAUX);
          EGAL(editer_iteration_07,FAUX);

          Choi(numero_de_l_iteration_unique)
               Bblock
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_01,editer_iteration_01,pas_de_l_iteration_01);
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_02,editer_iteration_02,pas_de_l_iteration_02);
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_03,editer_iteration_03,pas_de_l_iteration_03);
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_04,editer_iteration_04,pas_de_l_iteration_04);
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_05,editer_iteration_05,pas_de_l_iteration_05);
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_06,editer_iteration_06,pas_de_l_iteration_06);
               PARAMETRAGE_DE_L_ITERATION_UNIQUE(ITERATION_07,editer_iteration_07,pas_de_l_iteration_07);

               Defo
                    Bblock
                    PRINT_ERREUR("le numero d'iteration demande n'existe pas");
                    CAL1(Prer2("(l'iteration %d etait demandee et l'iteration %d est forcee)\n"
                              ,numero_de_l_iteration_unique
                              ,ITERATION_05
                               )
                         );

                    EGAL(editer_iteration_05,VRAI);
                    Eblock
               EDef
               Eblock
          ECho
          Eblock
     ATes
          Bblock
          Eblock
     ETes

     begin_nouveau_block
          Bblock
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_01,f1x,f1y,f1z,f0x,f0y,f0z,pas_de_l_iteration_01);
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_02,f2x,f2y,f2z,f1x,f1y,f1z,pas_de_l_iteration_02);
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_03,f3x,f3y,f3z,f2x,f2y,f2z,pas_de_l_iteration_03);
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_04,f4x,f4y,f4z,f3x,f3y,f3z,pas_de_l_iteration_04);
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_05,f5x,f5y,f5z,f4x,f4y,f4z,pas_de_l_iteration_05);
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_06,f6x,f6y,f6z,f5x,f5y,f5z,pas_de_l_iteration_06);
          EDITION_EVENTUELLE_D_UNE_ITERATION(editer_iteration_07,f7x,f7y,f7z,f6x,f6y,f6z,pas_de_l_iteration_07);

          Test(IL_FAUT(editer_la_definition_du_cube))
               Bblock
               Test(IL_FAUT(chainer_les_points))
                    Bblock
#include  xci/valeurs_Hilbert3D.I"
                                        /* Afin d'etre compatible avec 'v $xiirv/.PEAN.21.$U', il faut que le cube soit trace apres  */
                                        /* la trajectoire de 'T' et ce afin que ce cube semble etre derriere cette trajectoire...    */
                    Eblock
               ATes
                    Bblock
                    PRINT_ATTENTION("lors de l'edition de points isoles, la definition du cube ne peut etre editee");
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Eblock
          ETes
          Eblock
     end_nouveau_block

     RETU_Commande;
     Eblock
ECommande



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