/*************************************************************************************************************************************/
/* */
/* F O N C T I O N ' HORNER_2_04(...) ' A V E C P E R M U T A T I O N D E */
/* L ' A D D I T I O N E T D E L A M U L T I P L I C A T I O N : */
/* */
/* */
/* Author of '$xtc/HORNER_2_04.etendu.01$c' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20181123115528). */
/* */
/*************************************************************************************************************************************/
#include <stdio.h>
#define P4(x) (((((((a44+x*a43)+x)*a42)+x)*a41)+x)*a40)
#define P3(x) (((((((a34+x*a33)+x)*a32)+x)*a31)+x)*a30)
#define P2(x) (((((((a24+x*a23)+x)*a22)+x)*a21)+x)*a20)
#define P1(x) (((((((a14+x*a13)+x)*a12)+x)*a11)+x)*a10)
#define P0(x) (((((((a04+x*a03)+x)*a02)+x)*a01)+x)*a00)
#define HORNER_2_04(x,y) (((((((P4(x)+y)*P3(x))+y)*P2(x))+y)*P1(x))+y)*P0(x)
/* On notera donc la permutation de "+" et de "*" par rapport a la definition "standard" */
/* ('v $xiii/tri_image$FON 20181119120731'). */
main()
{
double a44=1;
double a43=1;
double a42=1;
double a41=1;
double a40=1;
/* Definition du premier polynome en 'X' (puissance la plus elevee de 'Y'). */
double a34=1;
double a33=1;
double a32=1;
double a31=1;
double a30=1;
/* Definition du second polynome en 'X'. */
double a24=1;
double a23=1;
double a22=1;
double a21=1;
double a20=1;
/* Definition du troisieme polynome en 'X'. */
double a14=1;
double a13=1;
double a12=1;
double a11=1;
double a10=1;
/* Definition du quatrieme polynome en 'X'. */
double a04=1;
double a03=1;
double a02=1;
double a01=1;
double a00=1;
/* Definition du dernier polynome en 'X' (puissance la plus faible de 'Y'). */
double x=2,y=3;
printf("HORNER=%f\n",HORNER_2_04(x,y));
}
Copyright © Jean-François COLONNA, 2023-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2023-2024.