/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        R E C H E R C H E   D ' U N E   R O T A T I O N   D A N S   L E S   Q U A T E R N I O N S  :                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtKg/rotations_HC.01$K' :                                                                                      */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20181202143943).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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   ALPHA_D                                                                                                                       \
                    NEGA(PI_SUR_2)
#define   ALPHA_A                                                                                                                       \
                    NEUT(PI_SUR_2)

#define   PHI___D                                                                                                                       \
                    NEGA(PI_SUR_2)
#define   PHI___A                                                                                                                       \
                    NEUT(PI_SUR_2)

#define   THETA__D                                                                                                                      \
                    NEGA(PI_SUR_2)
#define   THETA__A                                                                                                                      \
                    NEUT(PI_SUR_2)

#define   PAS                                                                                                                           \
                    FRA10(FRA10(FU))

#define   EPSILON                                                                                                                       \
                    GRO3(FRA10(FU))

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*                                                                                                                                   */
/*        R E C H E R C H E   D ' U N E   R O T A T I O N   D A N S   L 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(hyper_complexe,q1);
                                        /* Variables complexe et hyper-complexe.                                                     */
     DEFV(Float,INIT(alpha,FLOT__UNDEF));
     DEFV(Float,INIT(phi__,FLOT__UNDEF));
     DEFV(Float,INIT(theta_,FLOT__UNDEF));
                                        /* Angles...                                                                                 */

     DEFV(Float,INIT(pas,PAS));
     DEFV(Float,INIT(epsilon,EPSILON));
                                        /* Arguments d'appel...                                                                      */
     /*..............................................................................................................................*/
     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(GET_ARGUMENT_F("epsilon=",epsilon);
                         GET_ARGUMENT_F("pas=",pas);
                         )
                    );

     HCinitialisation(q1,c1,ci,cj,ck);

     DoIn(alpha,ALPHA_D,ALPHA_A,pas)
          Bblock
          DoIn(phi__,PHI___D,PHI___A,pas)
               Bblock
               DoIn(theta_,THETA__D,THETA__A,pas)
                    Bblock
                    DEFV(hyper_complexe,q2);
                    HCrotation(q2,q1,alpha,phi__,theta_);

                    Test(I4ET(IFEQ_a_peu_pres_absolu(HReelle(q2),NEGA(HImaginaire(q1)),epsilon)
                             ,IFEQ_a_peu_pres_absolu(HImaginaire(q2),NEUT(HReelle(q1)),epsilon)
                             ,IFEQ_a_peu_pres_absolu(HJmaginaire(q2),NEUT(HJmaginaire(q1)),epsilon)
                             ,IFEQ_a_peu_pres_absolu(HKmaginaire(q2),NEUT(HKmaginaire(q1)),epsilon)
                              )
                         )
                         Bblock
                         CAL3(Prme3("rotation={%+.^^^,%+.^^^,%+.^^^}",alpha,phi__,theta_));
                         CALS(FPrme0("     "));

                         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
                    ATes
                         Bblock
                         Eblock
                    ETes
                    Eblock
               EDoI
               Eblock
          EDoI
          Eblock
     EDoI

     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.