/*************************************************************************************************************************************/ /* */ /* T E S T D E S R O T A T I O N S D E S N O M B R E S C O M P L E X E S E T D E S Q U A T E R N I O N S : */ /* */ /* */ /* Author of '$xtKg/rotations_C_HC.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20181201093604). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define ROTATION__C(theta_) \ Bblock \ DEFV(complexe,z2); \ \ CAL3(Prme1("rotation={%+.^^^}",theta_)); \ CALS(FPrme0(" ")); \ \ Crotation(z2,z1,theta_); \ \ CAL3(Prme2("z1={%+.^^^,%+.^^^}",Reelle(z1),Imaginaire(z1))); \ CALS(FPrme0(" --> ")); \ CAL3(Prme2("z2={%+.^^^,%+.^^^}",Reelle(z2),Imaginaire(z2))); \ CALS(Fsauts_de_lignes(UN)); \ Eblock #define ROTATION_HC(alpha,phi__,theta_) \ Bblock \ DEFV(hyper_complexe,q2); \ \ CAL3(Prme3("rotation={%+.^^^,%+.^^^,%+.^^^}",alpha,phi__,theta_)); \ CALS(FPrme0(" ")); \ \ HCrotation(q2,q1,alpha,phi__,theta_); \ \ CAL3(Prme4("q1={%+.^^^,%+.^^^,%+.^^^,%+.^^^}",HReelle(q1),HImaginaire(q1),HJmaginaire(q1),HKmaginaire(q1))); \ CALS(FPrme0(" --> ")); \ CAL3(Prme4("q2={%+.^^^,%+.^^^,%+.^^^,%+.^^^}",HReelle(q2),HImaginaire(q2),HJmaginaire(q2),HKmaginaire(q2))); \ CALS(Fsauts_de_lignes(UN)); \ Eblock /*===================================================================================================================================*/ /* */ /* T E S T D E S R O T A T I O N D E S N O M B R E S C O M P L E X E S E T D E S Q U A T E R N I O N S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(Float,INIT(c1,11)); DEFV(Float,INIT(ci,22)); DEFV(Float,INIT(cj,33)); DEFV(Float,INIT(ck,44)); /* Composantes flottantes. */ DEFV(complexe,z1); DEFV(hyper_complexe,q1); /* Variables complexe et hyper-complexe. */ /*..............................................................................................................................*/ EGAL(nombre_de_chiffres_des_editions_flottantes,QUATRE); EGAL(PREMIER_CARACTERE_ITb0(mode_fg_de_FORMAT_FLOT_EDITION),K_f); GET_ARGUMENTS_(nombre_d_arguments ,BLOC(VIDE;) ); Cinitialisation(z1,c1,ci); HCinitialisation(q1,c1,ci,cj,ck); ROTATION__C(FZERO); /* Il s'agit de la rotation "neutre"... */ ROTATION__C(PI_SUR_2); /* Il s'agit d'une rotation de pi/2 dans le plan complexe... */ CALS(Fsauts_de_lignes(UN)); ROTATION_HC(PI_SUR_2,PI_SUR_2,FZERO); /* Il s'agit de la rotation "neutre"... */ ROTATION_HC(PI_SUR_2,PI_SUR_2,PI_SUR_2); /* Il s'agit d'une rotation de pi/2 dans le plan complexe... */ ROTATION_HC(FZERO,FZERO,FZERO); /* Et la, "dans les choux"... */ RETU_Commande; Eblock ECommande