_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   B A S E   N E C E S S I T A N T   L E   ' GooF '  :                                              */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Dans ce fichier, se trouvent toutes                                                                            */
/*                  les fonctions d'interet general, et                                                                              */
/*                  en particulier celles de manipulation                                                                            */
/*                  des chaines de caracteres, celles de                                                                             */
/*                  gestion de fichiers, et necessitant le 'GooF'                                                                    */
/*                  Ceci a ete cree le 20080327134926 afin d'alleger                                                                 */
/*                  la compilation de la fonction 'FfLIO17(...)'.                                                                    */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xig/GooF_fo$vv$FON' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20080327134926).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O M B I N A I S O N S   L I N E A I R E S   O P T I M I S E E S  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#define   CALCUL_DE_LA_COMBINAISON_LINEAIRE_DES_ARGUMENTS(utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base)            \
                    Bblock                                                                                                              \
                    USs_GooF______CONDITIONNEL(utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base                        \
                                        /* Possibilite introduite le 20080327095150...                                               */ \
                                              ,BLOC(                                                                                    \
                                                    Bblock                                                                              \
                                                    EGAL(resultat                                                                       \
                                                        ,LIO17(a0,x0                                                                    \
                                                              ,a1,x1                                                                    \
                                                              ,a2,x2                                                                    \
                                                              ,a3,x3                                                                    \
                                                              ,a4,x4                                                                    \
                                                              ,a5,x5                                                                    \
                                                              ,a6,x6                                                                    \
                                                              ,a7,x7                                                                    \
                                                              ,a8,x8                                                                    \
                                                              ,a9,x9                                                                    \
                                                              ,aA,xA                                                                    \
                                                              ,aB,xB                                                                    \
                                                              ,aC,xC                                                                    \
                                                              ,aD,xD                                                                    \
                                                              ,aE,xE                                                                    \
                                                              ,aF,xF                                                                    \
                                                              ,aG,xG                                                                    \
                                                              ,b                                                                        \
                                                               )                                                                        \
                                                         );                                                                             \
                                                    Eblock                                                                              \
                                                    )                                                                                   \
                                               );                                                                                       \
                    Eblock

BFonctionF

DEFV(Common,DEFV(Logical,SINT(FfLIO17_____utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base,FAUX)));
                                        /* Afin de permettre l'usage du 'GooF' (introduit le 20080327095150)...                      */

DEFV(Common,DEFV(FonctionF,FfLIO17(a0,x0
                                  ,a1,x1
                                  ,a2,x2
                                  ,a3,x3
                                  ,a4,x4
                                  ,a5,x5
                                  ,a6,x6
                                  ,a7,x7
                                  ,a8,x8
                                  ,a9,x9
                                  ,aA,xA
                                  ,aB,xB
                                  ,aC,xC
                                  ,aD,xD
                                  ,aE,xE
                                  ,aF,xF
                                  ,aG,xG
                                  ,b
                                   )
                 )
     )
DEFV(Argument,DEFV(Float,a0));
DEFV(Argument,DEFV(Float,x0));
DEFV(Argument,DEFV(Float,a1));
DEFV(Argument,DEFV(Float,x1));
DEFV(Argument,DEFV(Float,a2));
DEFV(Argument,DEFV(Float,x2));
DEFV(Argument,DEFV(Float,a3));
DEFV(Argument,DEFV(Float,x3));
DEFV(Argument,DEFV(Float,a4));
DEFV(Argument,DEFV(Float,x4));
DEFV(Argument,DEFV(Float,a5));
DEFV(Argument,DEFV(Float,x5));
DEFV(Argument,DEFV(Float,a6));
DEFV(Argument,DEFV(Float,x6));
DEFV(Argument,DEFV(Float,a7));
DEFV(Argument,DEFV(Float,x7));
DEFV(Argument,DEFV(Float,a8));
DEFV(Argument,DEFV(Float,x8));
DEFV(Argument,DEFV(Float,a9));
DEFV(Argument,DEFV(Float,x9));
DEFV(Argument,DEFV(Float,aA));
DEFV(Argument,DEFV(Float,xA));
DEFV(Argument,DEFV(Float,aB));
DEFV(Argument,DEFV(Float,xB));
DEFV(Argument,DEFV(Float,aC));
DEFV(Argument,DEFV(Float,xC));
DEFV(Argument,DEFV(Float,aD));
DEFV(Argument,DEFV(Float,xD));
DEFV(Argument,DEFV(Float,aE));
DEFV(Argument,DEFV(Float,xE));
DEFV(Argument,DEFV(Float,aF));
DEFV(Argument,DEFV(Float,xF));
DEFV(Argument,DEFV(Float,aG));
DEFV(Argument,DEFV(Float,xG));
DEFV(Argument,DEFV(Float,b));
                                        /* Arguments flottants de la combinaison lineaire.                                           */
                                        /*                                                                                           */
                                        /* NOTA : cette fonction est introduite pour des raisons de performance a la compilation     */
                                        /* lorsque les arguments sont en fait des expressions complexes (le 20080325162650), pour    */
                                        /* 'v $xiii/mono_image$FON FONCTIONS_DE_TRANSFORMATION_DES_COORDONNEES_XYZ' initialement.    */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Float,INIT(resultat,FLOT__UNDEF));
                                        /* Variable intermediaire introduite le 20080327091323 en vue de referencer le 'GooF'...     */
     /*..............................................................................................................................*/
     CALCUL_DE_LA_COMBINAISON_LINEAIRE_DES_ARGUMENTS(FfLIO17_____utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base);

     RETU(resultat);
     Eblock

EFonctionF

#ifdef    ASSURER_LA_COEXISTENCE_DE__LIOH__ET_DE__LIO17                         /* Common,DEFV(Fonction,) : 'LIOH' et 'LIO17'...     */
                                        /* Introduit le 20190203102858...                                                            */
BFonctionF

DEFV(Common,DEFV(Logical,SINT(FfLIOH_____utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base,FAUX)));
                                        /* Afin de permettre l'usage du 'GooF' (introduit le 20080327095150)...                      */

DEFV(Local,DEFV(Logical,INIT(FfLIOH_____le_message_d_ATTENTION_a_ete_emis_une_fois,FAUX)));
                                        /* Introduit le 20190201160847 afin de ne pas se noyer sous les messages...                  */

DEFV(Common,DEFV(FonctionF,FfLIOH(a0,x0
                                 ,a1,x1
                                 ,a2,x2
                                 ,a3,x3
                                 ,a4,x4
                                 ,a5,x5
                                 ,a6,x6
                                 ,a7,x7
                                 ,a8,x8
                                 ,a9,x9
                                 ,aA,xA
                                 ,aB,xB
                                 ,aC,xC
                                 ,aD,xD
                                 ,aE,xE
                                 ,aF,xF
                                 ,aG,xG
                                 ,b
                                  )
                 )
     )
                                        /* Fonction introduite le 20190201141442 "en parallele" de 'FfLIO17(...)' et destinee        */
                                        /* a permettre une compatibilite pendant un certain temps en evitant (provisoirement) des    */
                                        /* compilations "couteuses" (en particulier sur '$LACT19'...).                               */
DEFV(Argument,DEFV(Float,a0));
DEFV(Argument,DEFV(Float,x0));
DEFV(Argument,DEFV(Float,a1));
DEFV(Argument,DEFV(Float,x1));
DEFV(Argument,DEFV(Float,a2));
DEFV(Argument,DEFV(Float,x2));
DEFV(Argument,DEFV(Float,a3));
DEFV(Argument,DEFV(Float,x3));
DEFV(Argument,DEFV(Float,a4));
DEFV(Argument,DEFV(Float,x4));
DEFV(Argument,DEFV(Float,a5));
DEFV(Argument,DEFV(Float,x5));
DEFV(Argument,DEFV(Float,a6));
DEFV(Argument,DEFV(Float,x6));
DEFV(Argument,DEFV(Float,a7));
DEFV(Argument,DEFV(Float,x7));
DEFV(Argument,DEFV(Float,a8));
DEFV(Argument,DEFV(Float,x8));
DEFV(Argument,DEFV(Float,a9));
DEFV(Argument,DEFV(Float,x9));
DEFV(Argument,DEFV(Float,aA));
DEFV(Argument,DEFV(Float,xA));
DEFV(Argument,DEFV(Float,aB));
DEFV(Argument,DEFV(Float,xB));
DEFV(Argument,DEFV(Float,aC));
DEFV(Argument,DEFV(Float,xC));
DEFV(Argument,DEFV(Float,aD));
DEFV(Argument,DEFV(Float,xD));
DEFV(Argument,DEFV(Float,aE));
DEFV(Argument,DEFV(Float,xE));
DEFV(Argument,DEFV(Float,aF));
DEFV(Argument,DEFV(Float,xF));
DEFV(Argument,DEFV(Float,aG));
DEFV(Argument,DEFV(Float,xG));
DEFV(Argument,DEFV(Float,b));
                                        /* Arguments flottants de la combinaison lineaire.                                           */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Float,INIT(resultat,FLOT__UNDEF));
     /*..............................................................................................................................*/
     Test(EST_FAUX(FfLIOH_____le_message_d_ATTENTION_a_ete_emis_une_fois))
          Bblock
          PRINT_ATTENTION("la fonction 'LIOH(...)' doit etre remplacee par 'LIO17(...)' (des recompilations vont etre necessaires)");

          EGAL(FfLIOH_____le_message_d_ATTENTION_a_ete_emis_une_fois,VRAI);
          Eblock
     ATes
          Bblock
          Eblock
     ETes

     CALCUL_DE_LA_COMBINAISON_LINEAIRE_DES_ARGUMENTS(FfLIOH_____utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base);

     RETU(resultat);
     Eblock

EFonctionF
#Aifdef   ASSURER_LA_COEXISTENCE_DE__LIOH__ET_DE__LIO17                         /* Common,DEFV(Fonction,) : 'LIOH' et 'LIO17'...     */
#Eifdef   ASSURER_LA_COEXISTENCE_DE__LIOH__ET_DE__LIO17                         /* Common,DEFV(Fonction,) : 'LIOH' et 'LIO17'...     */

#undef    CALCUL_DE_LA_COMBINAISON_LINEAIRE_DES_ARGUMENTS

_______________________________________________________________________________________________________________________________________



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