/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O M B I N A I S O N   P O L Y N O M I A L E   D E   Q U A T R E   I M A G E S   F L O T T A N T E S  :                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/comH_v4d1$K' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20071101095626).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS
                                        /* Introduit le 20080709143106...                                                            */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE
#include  image_image_IMAGESF_EXT
#include  image_image_GOOF_IMAGE_EXT
                                        /* La reference 'image_image_PENT_IMAGE_EXT' fut remplace par 'image_image_GOOF_IMAGE_EXT'   */
                                        /* le 20080709143106...                                                                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O M B I N A I S O N   P O L Y N O M I A L E   D E   Q U A T R E   I M A G E S   F L O T T A N T E S  :                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA1),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA2),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA3),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageA4),NOM_PIPE));
     /*..............................................................................................................................*/
     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageA1=""A1=",nom_imageA1);
                         GET_ARGUMENT_C("imageA2=""A2=",nom_imageA2);
                         GET_ARGUMENT_C("imageA3=""A3=",nom_imageA3);
                         GET_ARGUMENT_C("imageA4=""A4=",nom_imageA4);
                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);

                                        /* On notera le 20071103100520 que dans 'IFpolynome_2_04_____coefficient_TZYX', les          */
                                        /* indices 'T', 'Z', 'Y' et 'X' ('v $ximd/operator.1$FON HORNER_4_01') designent             */
                                        /* respectivement 'IFmageA4', 'IFmageA3', 'IFmageA2' et 'IFmageA1' :                         */
                                        /*                                                                                           */
                                        /*                  IFpolynome_2_04_____coefficient_TZYX                                     */
                                        /*                                                                                           */
                                        /*                                                  ^^^^                                     */
                                        /*                                                  ||||                                     */
                                        /*                                                  ||| --- IFmageA1                         */
                                        /*                                                  |||                                      */
                                        /*                                                  || ---- IFmageA2                         */
                                        /*                                                  ||                                       */
                                        /*                                                  | ----- IFmageA3                         */
                                        /*                                                  |                                        */
                                        /*                                                   ------ IFmageA4                         */
                                        /*                                                                                           */
                                        /* ces conventions etant inversees pour les parametres (afin d'en faciliter l'usage), soit : */
                                        /*                                                                                           */
                                        /*                  aXYZT (=AXYZT)                                                           */
                                        /*                                                                                           */
                                        /*                   ^^^^                                                                    */
                                        /*                   ||||                                                                    */
                                        /*                   ||| --- IFmageA4                                                        */
                                        /*                   |||                                                                     */
                                        /*                   || ---- IFmageA3                                                        */
                                        /*                   ||                                                                      */
                                        /*                   | ----- IFmageA2                                                        */
                                        /*                   |                                                                       */
                                        /*                    ------ IFmageA1                                                        */
                                        /*                                                                                           */
                                        /* ce que l'on ecrira symboliquement "A1234"...                                              */
                                        /*                                                                                           */
                                        /* Cela peut se retrouver facilement avec :                                                  */
                                        /*                                                                                           */
                                        /*   set                 PoLy="$xci/poly_4_01$X"                                             */
                                        /*   set                 ExTr="$xci/extrema$X standard=FAUX"                                 */
                                        /*                                                                                           */
                                        /*   eval  "$PoLy a1000=1 a0100=0 a0010=0 a0001=0 A1=1 A2=2 A3=3 A4=4 | $ExTr"       ==> 1   */
                                        /*   eval  "$PoLy a1000=0 a0100=1 a0010=0 a0001=0 A1=1 A2=2 A3=3 A4=4 | $ExTr"       ==> 2   */
                                        /*   eval  "$PoLy a1000=0 a0100=0 a0010=1 a0001=0 A1=1 A2=2 A3=3 A4=4 | $ExTr"       ==> 3   */
                                        /*   eval  "$PoLy a1000=0 a0100=0 a0010=0 a0001=1 A1=1 A2=2 A3=3 A4=4 | $ExTr"       ==> 4   */
                                        /*                                                                                           */
                                        /* ou les images {A1,A2,A3,A4} ont respectivement comme valeur {1,2,3,4}...                  */
                                        /*                                                                                           */
                                        /* On notera que jusqu'a cette date (le 20071103104507), ces conventions etaient inversees,  */
                                        /* et l'on trouvait ainsi :                                                                  */
                                        /*                                                                                           */
                                        /*                  aTZYX (=ATZYX)                                                           */
                                        /*                                                                                           */
                                        /* Mais cette nouvelle convention d'ecriture des parametres est plus logique et de plus      */
                                        /* compatible avec celle de 'v $xci/poly_2_04$K aXY'...                                      */

                         GET_ARGUMENT_F("a1111=""A1111=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1111);
                         GET_ARGUMENT_F("a1110=""A1110=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0111);
                         GET_ARGUMENT_F("a1101=""A1101=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1011);
                         GET_ARGUMENT_F("a1100=""A1100=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0011);
                         GET_ARGUMENT_F("a1011=""A1011=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1101);
                         GET_ARGUMENT_F("a1010=""A1010=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0101);
                         GET_ARGUMENT_F("a1001=""A1001=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1001);
                         GET_ARGUMENT_F("a1000=""A1000=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0001);
                         GET_ARGUMENT_F("a0111=""A0111=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1110);
                         GET_ARGUMENT_F("a0110=""A0110=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0110);
                         GET_ARGUMENT_F("a0101=""A0101=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1010);
                         GET_ARGUMENT_F("a0100=""A0100=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0010);
                         GET_ARGUMENT_F("a0011=""A0011=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1100);
                         GET_ARGUMENT_F("a0010=""A0010=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0100);
                         GET_ARGUMENT_F("a0001=""A0001=",IFcombinaison_hornerienne_var4_degre1_____coefficient_1000);
                         GET_ARGUMENT_F("a0000=""A0000=",IFcombinaison_hornerienne_var4_degre1_____coefficient_0000);
                         )
                    );

     CALi(IFinitialisation(IFmageR,FZERO));
                                        /* Initialisation de l'image Resultat.                                                       */

     Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA1,nom_imageA1))))
          Bblock
          Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA2,nom_imageA2))))
               Bblock
               Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA3,nom_imageA3))))
                    Bblock
                    Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA4,nom_imageA4))))
                         Bblock
                         CALS(IFcombinaison_hornerienne_var4_degre1(IFmageR,IFmageA1,IFmageA2,IFmageA3,IFmageA4));
                                        /* Combinaison polynomiale des quatre images Arguments...                                    */

                         CALi(IupdateF_image(nom_imageR,IFmageR));
                         Eblock
                    ATes
                         Bblock
                         Test__CODE_ERREUR__ERREUR07;
                         Eblock
                    ETes
                    Eblock
               ATes
                    Bblock
                    Test__CODE_ERREUR__ERREUR07;
                    Eblock
               ETes
               Eblock
          ATes
               Bblock
               Test__CODE_ERREUR__ERREUR07;
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test__CODE_ERREUR__ERREUR07;
          Eblock
     ETes

     RETU_Commande;
     Eblock
ECommande



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