/*************************************************************************************************************************************/
/* */
/* C O M B I N A I S O N " H O R N E R I E N N E " D E D E U X I M A G E S F L O T T A N T E S */
/* ( " A D E U X V A R I A B L E S " ) D U S E C O N D D E G R E */
/* A C O E F F I C I E N T S V A R I A B L E S L O C A L E M E N T : */
/* */
/* */
/* Author of '$xci/comH_v2d2cvl$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20080219152821). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 imageY \
IFmageA2
#define imageA22 \
IFmageA3
#define imageA21 \
IFmageA4
#define imageA20 \
IFmageA5
#define imageA12 \
IFmageA6
#define imageA11 \
IFmageA7
#define imageA10 \
IFmageA8
#define imageA02 \
IFmageA9
#define imageA01 \
IFmageAA
#define imageA00 \
IFmageAB
#define imageR \
IFmageR
/* L'ensemble des definitions precedentes {image...} a ete introduit le 20080220120235... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C O M B I N A I S O N " H O R N E R I E N N E " D E D E U X I M A G E S F L O T T A N T E S */
/* ( " A D E U X V A R I A B L E S " ) D U S E C O N D D E G R E */
/* A C O E F F I C I E N T S V A R I A B L E S L O C A L E M E N T : */
/* */
/*************************************************************************************************************************************/
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_imageY),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA22),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA21),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA20),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA12),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA11),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA10),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA02),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA01),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA00),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("imageY=""Y=",nom_imageY);
GET_ARGUMENT_C("imageA22=""A22=",nom_imageA22);
GET_ARGUMENT_C("imageA21=""A21=",nom_imageA21);
GET_ARGUMENT_C("imageA20=""A20=",nom_imageA20);
GET_ARGUMENT_C("imageA12=""A12=",nom_imageA12);
GET_ARGUMENT_C("imageA11=""A11=",nom_imageA11);
GET_ARGUMENT_C("imageA10=""A10=",nom_imageA10);
GET_ARGUMENT_C("imageA02=""A02=",nom_imageA02);
GET_ARGUMENT_C("imageA01=""A01=",nom_imageA01);
GET_ARGUMENT_C("imageA00=""A00=",nom_imageA00);
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
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageY,nom_imageY))))
Bblock
/* Entree des deux images Arguments {imageX,imageY} a combiner de facon "hornerienne". */
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA22,nom_imageA22))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA21,nom_imageA21))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA20,nom_imageA20))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA12,nom_imageA12))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA11,nom_imageA11))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA10,nom_imageA10))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA02,nom_imageA02))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA01,nom_imageA01))))
Bblock
Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(imageA00,nom_imageA00))))
Bblock
/* Entree des neuf images Arguments {imageA22,...,imageA00} definissant le polynome (en */
/* chaque point {X,Y}). */
CALS(IFcombinaison_hornerienne_var2_degre2_cvl(imageR
,imageX
,imageY
,imageA22,imageA21,imageA20
,imageA12,imageA11,imageA10
,imageA02,imageA01,imageA00
)
);
/* Combinaison "hornerienne" des deux images {X,Y} par calcul du polynome : */
/* */
/* i=2 j=2 */
/* _____ _____ */
/* \ \ j i */
/* P(X,Y) = \ \ A .X .Y */
/* / / ij */
/* /_____ /_____ */
/* i=0 j=0 */
/* */
/* en notant bien que : */
/* */
/* i --0--> Y */
/* j --0--> X */
/* */
/* dans 'A(i,j)' et non pas l'inverse (qui pourrait paraitre plus logique...). */
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