/*************************************************************************************************************************************/
/* */
/* 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 '$xtc/NombresComplexes.01$I' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20250303124318). */
/* */
/*************************************************************************************************************************************/
#include "INCLUDES.01.I"
/* Introduit le 20051116101528... */
typedef struct complexe {
PRECIS reelle;
PRECIS imaginaire;
} complexe;
/* 'struct' de definition d'un nombre 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 Cconjugue(z,z1) \
{ \
Reelle(z) = +Reelle(z1); \
Imaginaire(z) = -Imaginaire(z1); \
}
#define Csomme(z,z1,z2) \
{ \
Reelle(z) = Reelle(z1) + Reelle(z2); \
Imaginaire(z) = Imaginaire(z1) + Imaginaire(z2); \
}
#define Cproduit(z,z1,z2) \
{ \
Reelle(z) = (Reelle(z1)*Reelle(z2)) - (Imaginaire(z1)*Imaginaire(z2)); \
Imaginaire(z) = (Reelle(z2)*Imaginaire(z1)) + (Reelle(z1)*Imaginaire(z2)); \
}
#define Cmodule2(z) \
((Reelle(z)*Reelle(z)) + (Imaginaire(z)*Imaginaire(z)))
#define Cquotient(z,z1,z2) \
{ \
complexe z2C; \
complexe z1z2C; \
double module2=Cmodule2(z2); \
Cconjugue(z2C,z2); \
Cproduit(z1z2C,z1,z2C); \
Cinit(z,Reelle(z1z2C)/module2,Imaginaire(z1z2C)/module2); \
}