/*************************************************************************************************************************************/
/* */
/* 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)); \
}