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