/*************************************************************************************************************************************/ /* */ /* T R A N S F O R M A T I O N " H O R N E R I E N N E " D ' U N E I M A G E F L O T T A N T E */ /* ( " A U N E V A R I A B L E " ) D U N E U V I E M E D E G R E : */ /* */ /* */ /* Author of '$xci/traHorner.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20080324084236). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define imageX \ IFmageA1 #define imageA9 \ IFmageA2 #define imageA8 \ IFmageA3 #define imageA7 \ IFmageA4 #define imageA6 \ IFmageA5 #define imageA5 \ IFmageA6 #define imageA4 \ IFmageA7 #define imageA3 \ IFmageA8 #define imageA2 \ IFmageA9 #define imageA1 \ IFmageAA #define imageA0 \ IFmageAB #define imageR \ IFmageR /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T R A N S F O R M A T I O N " H O R N E R I E N N E " D ' U N E I M A G E F L O T T A N T E */ /* ( " A U N E V A R I A B L E " ) D U N E U V I E M E D E G R E : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageX),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA9),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA8),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA7),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA6),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA5),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA4),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA3),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA2),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA1),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA0),NOM_PIPE)); /*..............................................................................................................................*/ EGAL(si_le_GooF_est_activable_utiliser_l_arithmetique_etendue_au_lieu_de_l_arithmetique_de_base,VRAI); /* A priori, l'utilisation de l'arithmetique etendue est forcee puisque l'option */ /* 'utiliser_l_arithmetique_etendue' peut etre activee et que cette derniere n'a */ /* evidemment d'interet qu'avec l'arithmetique etendue. */ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageX=""X=",nom_imageX); GET_ARGUMENT_C("imageA9=""A9=",nom_imageA9); GET_ARGUMENT_C("imageA8=""A8=",nom_imageA8); GET_ARGUMENT_C("imageA7=""A7=",nom_imageA7); GET_ARGUMENT_C("imageA6=""A6=",nom_imageA6); GET_ARGUMENT_C("imageA5=""A5=",nom_imageA5); GET_ARGUMENT_C("imageA4=""A4=",nom_imageA4); GET_ARGUMENT_C("imageA3=""A3=",nom_imageA3); GET_ARGUMENT_C("imageA2=""A2=",nom_imageA2); GET_ARGUMENT_C("imageA1=""A1=",nom_imageA1); GET_ARGUMENT_C("imageA0=""A0=",nom_imageA0); GET_ARGUMENT_C("imageR=""R=",nom_imageR); ) ); CALi(IFinitialisation(imageR,FZERO)); /* Initialisation de l'image Resultat. */ Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageX,nom_imageX)))) Bblock /* Entree de l'image Argument {imageX} a transformer de facon "hornerienne". */ Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA9,nom_imageA9)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA8,nom_imageA8)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA7,nom_imageA7)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA6,nom_imageA6)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA5,nom_imageA5)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA4,nom_imageA4)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA3,nom_imageA3)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA2,nom_imageA2)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA1,nom_imageA1)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA0,nom_imageA0)))) Bblock /* Entree des dix images Arguments {imageA9,...,imageA0} definissant le polynome (en */ /* chaque point {X,Y}). */ CALS(IFtransformation_hornerienne_var1_degre9_cvl(imageR ,imageX ,imageA9 ,imageA8 ,imageA7 ,imageA6 ,imageA5 ,imageA4 ,imageA3 ,imageA2 ,imageA1 ,imageA0 ) ); /* Calcul du polynome courant : */ /* */ /* i=9 */ /* _____ */ /* \ i */ /* P(X) = \ A .X */ /* / i */ /* /_____ */ /* i=0 */ /* */ CALi(IupdateF_image(nom_imageR,imageR)); 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 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 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