/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T A B L E   D E   M U L T I P L I C A 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 '$xtKg/complexes$K' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20221202121012).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CPP_____MODULE_NON_DERIVABLE

@define   PRAGMA_CL_____MODULE_NON_OPTIMISABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TEST(z1,z2)                                                                                                                   \
                    IFET(IFEQ(Reelle(z1),Reelle(z2))                                                                                    \
                        ,IFET(IFEQ(Imaginaire(z1),Imaginaire(z2))                                                                       \
                             ,TOUJOURS_VRAI                                                                                             \
                              )                                                                                                         \
                         )
#define   ANTI_TEST(z1,z2)                                                                                                              \
                    IFET(IFEQ(Reelle(z1),NEGA(Reelle(z2)))                                                                              \
                        ,IFET(IFEQ(Imaginaire(z1),NEGA(Imaginaire(z2)))                                                                 \
                             ,TOUJOURS_VRAI                                                                                             \
                              )                                                                                                         \
                         )
#define   TEST_BASE(z,z1)                                                                                                               \
                    Bblock                                                                                                              \
                    Test(TEST(z,base`z1))                                                                                               \
                         Bblock                                                                                                         \
                         CAL2(Prin0("+z1"));                                                                                            \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Test(ANTI_TEST(z,base`z1))                                                                                          \
                         Bblock                                                                                                         \
                         CAL2(Prin0("-z1"));                                                                                            \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                                                                                                                                        \
                    Eblock
#define   PRODUIT(z1,z2)                                                                                                                \
                    Bblock                                                                                                              \
                    DEFV(complexe,z);                                                                                                   \
                                        /* Produit : z = z1.z2.                                                                      */ \
                    Cinitialisation(z,FZERO,FZERO);                                                                                     \
                                        /* Par pure hygiene...                                                                       */ \
                    aCproduit(z,base`z1,base`z2);                                                                                       \
                                        /* Calcul du produit...                                                                      */ \
                    CAL2(Prin0("z1.z2 = "));                                                                                            \
                    TEST_BASE(z,1);                                                                                                     \
                    TEST_BASE(z,i);                                                                                                     \
                    CAL2(Prin0("\n"));                                                                                                  \
                                        /* Edition d'une entree de la table de multiplication...                                     */ \
                    Eblock

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T A B L E   D E   M U L T I P L I C A T I O N   D E S   N O M B R E S   C O M P L E X E S  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(complexe,base_1);
     DEFV(complexe,base_i);
                                        /* Definition de la base (1,i).                                                              */
     /*..............................................................................................................................*/
     GET_ARGUMENTS_(nombre_d_arguments
                   ,BLOC(VIDE;)
                    );

     Cinitialisation(base_1,FU___,FZERO);
     Cinitialisation(base_i,FZERO,FU___);
                                        /* Initialisation de la base (1,i).                                                          */

     PRODUIT(1,1);
     PRODUIT(1,i);

     CAL2(Prin0("\n"));

     PRODUIT(i,1);
     PRODUIT(i,i);

     CAL2(Prin0("\n"));

     RETU_Commande;
     Eblock
ECommande



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