/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E S   P R O B L E M E S   S U R   L A   N O T I O N   D E   M U L T I P L E S                                  */
/*        D E   N O M B R E S   F L O T T A N T S  :                                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtc/multiple.01$c' :                                                                                           */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#include  "INCLUDES.01.I"
                                        /* Introduit le 20051116101731...                                                            */

extern    double    fmod();

#define   fREST(a,b)                                                                                                                    \
                    mod(a,b)
#define   fMULD(a,b)                                                                                                                    \
                    muld(a,b)
#define   fARRI(x)                                                                                                                      \
                    fMULD(x,epsilon)
#define   FACTEUR                                                                                                                       \
                    2

double    mod(x,y)
                                        /* Fonction se substituant a 'fmod(...)'.                                                    */
double    x,y;
          {
          double    ax=ABSO(x),ay=ABSO(y);
          double    r1,r2,dr1;
          double    r;

          r1=fmod(ax,ay);
          dr1=FACTEUR*r1;
          r2=fmod(FACTEUR*ax,ay);

          if        (r2 == dr1)
                    {
                    r=r1;
                    }
          else
                    {
                    r=ay-r1;
                    }

          if        (x<0)
                    {
                    r=-r;
                    }
          else
                    {
                    }

          return(r);
          }

double    muld(x,y)
double    x,y;
          {
          double   ax=ABSO(x),ay=ABSO(y);
          double   r;
          double   z;

          r=fREST(ax,ay);

          if        (x>=0)
                    {
                    z=x+r;
                    }
          else
                    {
                    z=x-r;
                    }

          return(z);
          }

main()
          {
          int       k;
          double    maille=0.1000000000000000;
          double    epsilon=1.0e-8;
          double    x=0;

          for       (k=-8 ; k<=8 ; k=k+1)
                    {
                    double    x=k*maille;
                    double    y,z;
                    int       a,b;
                    z=fREST(x,maille);
                    y=fMULD(x,maille);
                    printf("\n coordonnee=%+.17f   noeud=%+.17f",x,y);
                    y=fARRI(y);
                    printf("  arrondi=%+.17f",y);
                    }
          }



Copyright © Jean-François Colonna, 2021-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2021-2023.