/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   N O M B R E S   C O M P L E X E S  :                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrC/complexes.01$vv$I' :                                                                                       */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20130727095802).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

typedef   struct    complexe  {
                              double    reelle;
                              double    imaginaire;
                              }         complexe;

#define   Reelle(z)           (z.reelle)
#define   Imaginaire(z)       (z.imaginaire)

#define   Cinit(z,x1,y1)                                                                                                                \
                    {                                                                                                                   \
                    Reelle(z) = x1;                                                                                                     \
                    Imaginaire(z) = y1;                                                                                                 \
                    }
#define   Cegal(z,z1)                                                                                                                   \
                    {                                                                                                                   \
                    Reelle(z) = Reelle(z1);                                                                                             \
                    Imaginaire(z) = Imaginaire(z1);                                                                                     \
                    }
#define   Csomme(z,z1,z2)                                                                                                               \
                    {                                                                                                                   \
                    Reelle(z) = ADD2f(Reelle(z1),Reelle(z2));                                                                           \
                    Imaginaire(z) = ADD2f(Imaginaire(z1),Imaginaire(z2));                                                               \
                    }
#define   Cproduit(z,z1,z2)                                                                                                             \
                    {                                                                                                                   \
                    Reelle(z) = SOUSf(MUL2f(Reelle(z1),Reelle(z2)),MUL2f(Imaginaire(z1),Imaginaire(z2)));                               \
                    Imaginaire(z) = ADD2f(MUL2f(Reelle(z2),Imaginaire(z1)),MUL2f(Reelle(z1),Imaginaire(z2)));                           \
                    }
#define   Cmodule2(z)                                                                                                                   \
                    ADD2f(MUL2f(Reelle(z),Reelle(z)),MUL2f(Imaginaire(z),Imaginaire(z)))

#define   PETIT     1.0e-16
#define   GRAND     1.0e32

#define   deborde(x)                                                                                                                    \
                    {                                                                                                                   \
                    if        (((x) < -PETIT) || ((x) > PETIT))                                                                         \
                              {                                                                                                         \
                              if        ((x) < -GRAND)                                                                                  \
                                        {                                                                                               \
                                        x = -GRAND;                                                                                     \
                                        }                                                                                               \
                              else                                                                                                      \
                                        {                                                                                               \
                                        if        ((x) > GRAND)                                                                         \
                                                  {                                                                                     \
                                                  x = GRAND;                                                                            \
                                                  }                                                                                     \
                                        else                                                                                            \
                                                  {                                                                                     \
                                                  }                                                                                     \
                                        }                                                                                               \
                              }                                                                                                         \
                    else                                                                                                                \
                              {                                                                                                         \
                              x = 0.0;                                                                                                  \
                              }                                                                                                         \
                    }

#define   Cdeborde(z)                                                                                                                   \
                    {                                                                                                                   \
                    deborde(Reelle(z));                                                                                                 \
                    deborde(Imaginaire(z));                                                                                             \
                    }



Copyright © Jean-François Colonna, 2013-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2013-2021.