/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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



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.