/*************************************************************************************************************************************/
/* */
/* P R O D U I T D E D E U X N O M B R E S H Y P E R - H Y P E R - C O M P L E X E S : */
/* */
/* */
/* Author of '$xcg/o_MUL2.01$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20221202113012). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 PARTIE_REELLE_____DE_NOMBRE_1 \
FU
#define PARTIE_IMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_JMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_KMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_SMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_TMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_UMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_VMAGINAIRE_DE_NOMBRE_1 \
FZERO
#define PARTIE_REELLE_____DE_NOMBRE_2 \
FU
#define PARTIE_IMAGINAIRE_DE_NOMBRE_2 \
FZERO
#define PARTIE_JMAGINAIRE_DE_NOMBRE_2 \
FZERO
#define PARTIE_KMAGINAIRE_DE_NOMBRE_2 \
FZERO
#define PARTIE_SMAGINAIRE_DE_NOMBRE_2 \
FZERO
#define PARTIE_TMAGINAIRE_DE_NOMBRE_2 \
FZERO
#define PARTIE_UMAGINAIRE_DE_NOMBRE_2 \
FZERO
#define PARTIE_VMAGINAIRE_DE_NOMBRE_2 \
FZERO
/* Nombres hyper-hyper-complexes dont on veut le produit... */
#include xcg/ARIT.01.I"
#include xci/valeurs.01.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/valeurs.02.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P R O D U I T D E D E U X N O M B R E S H Y P E R - H Y P E R - C O M P L E X E S : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(hyper_hyper_complexe,nombre_1);
DEFV(hyper_hyper_complexe,nombre_2);
/* Nombres hyper-hyper-complexes dont on veut le produit... */
#include xci/valeurs.03.I"
/*..............................................................................................................................*/
HHCinitialisation(nombre_1
,PARTIE_REELLE_____DE_NOMBRE_1
,PARTIE_IMAGINAIRE_DE_NOMBRE_1
,PARTIE_JMAGINAIRE_DE_NOMBRE_1
,PARTIE_KMAGINAIRE_DE_NOMBRE_1
,PARTIE_SMAGINAIRE_DE_NOMBRE_1
,PARTIE_TMAGINAIRE_DE_NOMBRE_1
,PARTIE_UMAGINAIRE_DE_NOMBRE_1
,PARTIE_VMAGINAIRE_DE_NOMBRE_1
);
HHCinitialisation(nombre_2
,PARTIE_REELLE_____DE_NOMBRE_2
,PARTIE_IMAGINAIRE_DE_NOMBRE_2
,PARTIE_JMAGINAIRE_DE_NOMBRE_2
,PARTIE_KMAGINAIRE_DE_NOMBRE_2
,PARTIE_SMAGINAIRE_DE_NOMBRE_2
,PARTIE_TMAGINAIRE_DE_NOMBRE_2
,PARTIE_UMAGINAIRE_DE_NOMBRE_2
,PARTIE_VMAGINAIRE_DE_NOMBRE_2
);
GET_ARGUMENTS_(nombre_d_arguments
,BLOC(GET_ARGUMENT_F("partie_reelle_1=""r1=",HHReelle(nombre_1));
GET_ARGUMENT_F("partie_imaginaire_1=""i1=",HHImaginaire(nombre_1));
GET_ARGUMENT_F("partie_jmaginaire_1=""j1=",HHJmaginaire(nombre_1));
GET_ARGUMENT_F("partie_kmaginaire_1=""k1=",HHKmaginaire(nombre_1));
GET_ARGUMENT_F("partie_smaginaire_1=""s1=",HHSmaginaire(nombre_1));
GET_ARGUMENT_F("partie_tmaginaire_1=""t1=",HHTmaginaire(nombre_1));
GET_ARGUMENT_F("partie_umaginaire_1=""u1=",HHUmaginaire(nombre_1));
GET_ARGUMENT_F("partie_vmaginaire_1=""v1=",HHVmaginaire(nombre_1));
GET_ARGUMENT_F("partie_reelle_2=""r2=",HHReelle(nombre_2));
GET_ARGUMENT_F("partie_imaginaire_2=""i2=",HHImaginaire(nombre_2));
GET_ARGUMENT_F("partie_jmaginaire_2=""j2=",HHJmaginaire(nombre_2));
GET_ARGUMENT_F("partie_kmaginaire_2=""k2=",HHKmaginaire(nombre_2));
GET_ARGUMENT_F("partie_smaginaire_2=""s2=",HHSmaginaire(nombre_2));
GET_ARGUMENT_F("partie_tmaginaire_2=""t2=",HHTmaginaire(nombre_2));
GET_ARGUMENT_F("partie_umaginaire_2=""u2=",HHUmaginaire(nombre_2));
GET_ARGUMENT_F("partie_vmaginaire_2=""v2=",HHVmaginaire(nombre_2));
CONTROLE_DE_L_ARITHMETIQUE_FOLKLORIQUE_DES_NOMBRES_COMPLEXES;
CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_HYPER_HYPER_COMPLEXES;
PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_1;
PROCESS_ARGUMENTS_DE_PARAMETRAGE_DE_LA_GENERATION_DE_SUITE_DE_VALEURS_2;
)
);
PRINT_DANS_HHC("produit",fFHHCproduit(nombre_1,nombre_2));
PRINT_DANS_HHC("produit",fFHHCproduit(nombre_2,nombre_1));
/* Edition du produit eventuellement generalisee et/ou folklorique... */
/* */
/* Cela permet de verifier la NON commutativite de la multiplication des nombres */
/* hyper-hyper-complexes, par exemple avec : */
/* */
/* $xcg/o_MUL2.01$X r1=3 r2=7 \ */
/* i1=13 i2=17 \ */
/* j1=9 j2=23 \ */
/* k1=31 k2=19 \ */
/* s1=17 s2=71 \ */
/* t1=11 t2=23 \ */
/* u1=43 u2=25 \ */
/* v1=15 v2=19 */
/* */
/* qui donne : */
/* */
/* produit={-3816,-1232,-2352,+392,+680,+912,+112,+2400} */
/* produit={-3816,+1516,+2616,+156,-16,-620,+640,-2076} */
/* */
/* (voir 'v $xcg/z_MUL2.01$K', 'v $xcg/q_MUL2.01$K' et '$xcg/o_MUL2.01$K'). Ceci fut */
/* introduit le 20230323181409... */
RETU_Commande;
Eblock
ECommande