/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C O M B I N A I S O N   P O L Y N O M I A L E   D E   D E U X   I M A G E S   F L O T T A N T E S  :                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/poly_2_04$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  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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   D E U X   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));
     /*..............................................................................................................................*/
     GET_ARGUMENTSi(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_C("imageA1=""A1=",nom_imageA1);
                         GET_ARGUMENT_C("imageA2=""A2=",nom_imageA2);
                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);

                                        /* On notera le 20071103095017 que dans 'IFpolynome_2_04_____coefficient_YX', les            */
                                        /* indices 'Y' et 'X' ('v $ximd/operator.1$FON HORNER_2_04') designent respectivement        */
                                        /* 'IFmageA2' et 'IFmageA1' :                                                                */
                                        /*                                                                                           */
                                        /*                  IFpolynome_2_04_____coefficient_YX                                       */
                                        /*                                                                                           */
                                        /*                                                  ^^                                       */
                                        /*                                                  ||                                       */
                                        /*                                                  | ----- IFmageA1                         */
                                        /*                                                  |                                        */
                                        /*                                                   ------ IFmageA2                         */
                                        /*                                                                                           */
                                        /* ces conventions etant inversees pour les parametres (afin d'en faciliter l'usage), soit : */
                                        /*                                                                                           */
                                        /*                  aXY (=AXY)                                                               */
                                        /*                                                                                           */
                                        /*                   ^^                                                                      */
                                        /*                   ||                                                                      */
                                        /*                   | ------ IFmageA1                                                       */
                                        /*                   |                                                                       */
                                        /*                    ------- IFmageA2                                                       */
                                        /*                                                                                           */
                                        /* ce que l'on ecrira symboliquement "A12"...                                                */
                                        /*                                                                                           */
                                        /* Cela peut se retrouver facilement avec :                                                  */
                                        /*                                                                                           */
                                        /*   $xci/poly_2_04$X    a10=1 a01=0 A1=1 A2=2  | $xci/extrema$X standard=FAUX       ==> 1   */
                                        /*   $xci/poly_2_04$X    a10=0 a01=1 A1=1 A2=2  | $xci/extrema$X standard=FAUX       ==> 2   */
                                        /*                                                                                           */
                                        /* ou les images {A1,A2} ont respectivement comme valeur {1,2}...                            */

                         GET_ARGUMENT_F("a44=""A44=",IFpolynome_2_04_____coefficient_44);
                         GET_ARGUMENT_F("a34=""A34=",IFpolynome_2_04_____coefficient_43);
                         GET_ARGUMENT_F("a24=""A24=",IFpolynome_2_04_____coefficient_42);
                         GET_ARGUMENT_F("a14=""A14=",IFpolynome_2_04_____coefficient_41);
                         GET_ARGUMENT_F("a04=""A04=",IFpolynome_2_04_____coefficient_40);

                         GET_ARGUMENT_F("a43=""A43=",IFpolynome_2_04_____coefficient_34);
                         GET_ARGUMENT_F("a33=""A33=",IFpolynome_2_04_____coefficient_33);
                         GET_ARGUMENT_F("a23=""A23=",IFpolynome_2_04_____coefficient_32);
                         GET_ARGUMENT_F("a13=""A13=",IFpolynome_2_04_____coefficient_31);
                         GET_ARGUMENT_F("a03=""A03=",IFpolynome_2_04_____coefficient_30);

                         GET_ARGUMENT_F("a42=""A42=",IFpolynome_2_04_____coefficient_24);
                         GET_ARGUMENT_F("a32=""A32=",IFpolynome_2_04_____coefficient_23);
                         GET_ARGUMENT_F("a22=""A22=",IFpolynome_2_04_____coefficient_22);
                         GET_ARGUMENT_F("a12=""A12=",IFpolynome_2_04_____coefficient_21);
                         GET_ARGUMENT_F("a02=""A02=",IFpolynome_2_04_____coefficient_20);

                         GET_ARGUMENT_F("a41=""A41=",IFpolynome_2_04_____coefficient_14);
                         GET_ARGUMENT_F("a31=""A31=",IFpolynome_2_04_____coefficient_13);
                         GET_ARGUMENT_F("a21=""A21=",IFpolynome_2_04_____coefficient_12);
                         GET_ARGUMENT_F("a11=""A11=",IFpolynome_2_04_____coefficient_11);
                         GET_ARGUMENT_F("a01=""A01=",IFpolynome_2_04_____coefficient_10);

                         GET_ARGUMENT_F("a40=""A40=",IFpolynome_2_04_____coefficient_04);
                         GET_ARGUMENT_F("a30=""A30=",IFpolynome_2_04_____coefficient_03);
                         GET_ARGUMENT_F("a20=""A20=",IFpolynome_2_04_____coefficient_02);
                         GET_ARGUMENT_F("a10=""A10=",IFpolynome_2_04_____coefficient_01);
                         GET_ARGUMENT_F("a00=""A00=",IFpolynome_2_04_____coefficient_00);
                         )
                    );

     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
               CALS(IFpolynome_2_04(IFmageR,IFmageA1,IFmageA2));
                                        /* Combinaison polynomiale des deux 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

     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.