/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2023-2023.