/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   C O M P L E X E S   D E   T R A N S F O R M A T I O N   D E S   I M A G E S  :                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Ce fichier contient toutes les definitions                                                                     */
/*                  des fonctions de manipulation des images par                                                                     */
/*                  transformations conformes.                                                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$ximcf/conformes$DEF' :                                                                                         */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20041225173122).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   C O N F O R M E S  :                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__ZQO_AU_CARRE(p,p1,produit)                                                                                    \
                    Bblock                                                                                                              \
                    produit(p,p1,p1);                                                                                                   \
                    Eblock                                                                                                              \
                                        /* Transformation conforme 'p1.p1' (introduite le 20120520112554).                           */
#define   TRANSFORMATION__UN_SUR_ZQO(p,p1,unite,quotient)                                                                               \
                    Bblock                                                                                                              \
                    quotient(p,unite,p1);                                                                                               \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '1/p1' (introduite le 20120520112554).                            */
#define   TRANSFORMATION__ZQO_HOMOGRAPHIQUE(p,p1,type,somme,produit,quotient,puissance,exposantN,exposantD,nA,nB,nC,nD,ACCES)           \
                                        /* La generalisation des transformations homographiques a ete introduite le 20210325104426   */ \
                                        /* en permettant d'elever 'p1' a une certaine puissance aussi bien au Numerateur qu'au       */ \
                                        /* Denominateur...                                                                           */ \
                    Bblock                                                                                                              \
                    DEFV(type,p1N);                                                                                                     \
                    DEFV(type,p1D);                                                                                                     \
                    DEFV(type,pmA);                                                                                                     \
                    DEFV(type,pmB);                                                                                                     \
                    DEFV(type,pmC);                                                                                                     \
                    DEFV(type,pmD);                                                                                                     \
                                                                                                                                        \
                    puissance(p1N,p1,exposantN);                                                                                        \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                          expN                                                             */ \
                                        /*                  p1N = p1                                                                 */ \
                                        /*                                                                                           */ \
                                                                                                                                        \
                    puissance(p1D,p1,exposantD);                                                                                        \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                          expD                                                             */ \
                                        /*                  p1D = p1                                                                 */ \
                                        /*                                                                                           */ \
                                                                                                                                        \
                    produit(pmA,ACCES(nA),p1N);                                                                                         \
                    somme(pmB,pmA,ACCES(nB));                                                                                           \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                  A.p1N + B                                                                */ \
                                        /*                                                                                           */ \
                                                                                                                                        \
                    produit(pmC,ACCES(nC),p1D);                                                                                         \
                    somme(pmD,pmC,ACCES(nD));                                                                                           \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                  C.p1D + D                                                                */ \
                                        /*                                                                                           */ \
                                                                                                                                        \
                    quotient(p,pmB,pmD);                                                                                                \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                   A.p1N + B                                                               */ \
                                        /*                  -----------                                                              */ \
                                        /*                   C.p1D + D                                                               */ \
                                        /*                                                                                           */ \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '((A.p1)+B)/((C.p1)+D)' (introduite le 20120520112554).           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   C O N F O R M E S                      */
/*        D A N S   L E   P L A N   C O M P L E X E  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__Z_AU_CARRE(z,z1)                                                                                              \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_AU_CARRE(z,z1,Cproduit);                                                                        \
                    Eblock                                                                                                              \
                                        /* Transformation conforme 'z.z' (introduite le 20120520112554).                             */
#define   TRANSFORMATION__UN_SUR_Z(z,z1)                                                                                                \
                    Bblock                                                                                                              \
                    TRANSFORMATION__UN_SUR_ZQO(z,z1,C_____nombre_complexe_p1__0,Cquotient);                                             \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '1/z' (introduite le 20120520112554).                             */
#define   TRANSFORMATION__Z_HOMOGRAPHIQUE(z,z1,nA,nB,nC,nD,ACCES)                                                                       \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_HOMOGRAPHIQUE(z,z1                                                                              \
                                                     ,complexe                                                                          \
                                                     ,Csomme                                                                            \
                                                     ,Cproduit                                                                          \
                                                     ,Cquotient                                                                         \
                                                     ,Cpuissance                                                                        \
                                                     ,TRANSFORMATION__Z_HOMOGRAPHIQUE_____exposant_du_numerateur__                      \
                                                     ,TRANSFORMATION__Z_HOMOGRAPHIQUE_____exposant_du_denominateur                      \
                                                     ,nA,nB,nC,nD                                                                       \
                                                     ,ACCES                                                                             \
                                                      );                                                                                \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '((A.z)+B)/((C.z)+D)' (introduite le 20120520112554).             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   C O N F O R M E S                      */
/*        D A N S   L E   P L A N   H Y P E R - C O M P L E X E  :                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__Q_AU_CARRE(q,q1)                                                                                              \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_AU_CARRE(q,q1,aHCproduit);                                                                      \
                    Eblock                                                                                                              \
                                        /* Transformation conforme 'q.q' (introduite le 20120520112554).                             */
#define   TRANSFORMATION__UN_SUR_Q(q,q1)                                                                                                \
                    Bblock                                                                                                              \
                    TRANSFORMATION__UN_SUR_ZQO(q,q1,HC_____quaternion_p1__0__0__0,aHCquotient);                                         \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '1/q' (introduite le 20120520112554).                             */
#define   TRANSFORMATION__Q_HOMOGRAPHIQUE(q,q1,nA,nB,nC,nD,ACCES)                                                                       \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_HOMOGRAPHIQUE(q,q1                                                                              \
                                                     ,hyper_complexe                                                                    \
                                                     ,aHCsomme                                                                          \
                                                     ,aHCproduit                                                                        \
                                                     ,aHCquotient                                                                       \
                                                     ,aHCpuissance                                                                      \
                                                     ,TRANSFORMATION__Q_HOMOGRAPHIQUE_____exposant_du_numerateur__                      \
                                                     ,TRANSFORMATION__Q_HOMOGRAPHIQUE_____exposant_du_denominateur                      \
                                                     ,nA,nB,nC,nD                                                                       \
                                                     ,ACCES                                                                             \
                                                      );                                                                                \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '((A.q)+B)/((C.q)+D)' (introduite le 20120520112554).             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   C O N F O R M E S                      */
/*        D A N S   L E   P L A N   H Y P E R - H Y P E R - C O M P L E X E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__O_AU_CARRE(o,o1)                                                                                              \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_AU_CARRE(o,o1,aHHCproduit);                                                                     \
                    Eblock                                                                                                              \
                                        /* Transformation conforme 'o.o' (introduite le 20120520112554).                             */
#define   TRANSFORMATION__UN_SUR_O(o,o1)                                                                                                \
                    Bblock                                                                                                              \
                    TRANSFORMATION__UN_SUR_ZQO(o,o1,HHC_____octonion_p1__0__0__0__0__0__0__0,aHHCquotient);                             \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '1/o' (introduite le 20120520112554).                             */
#define   TRANSFORMATION__O_HOMOGRAPHIQUE(o,o1,nA,nB,nC,nD,ACCES)                                                                       \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_HOMOGRAPHIQUE(o,o1                                                                              \
                                                     ,hyper_hyper_complexe                                                              \
                                                     ,aHHCsomme                                                                         \
                                                     ,aHHCproduit                                                                       \
                                                     ,aHHCquotient                                                                      \
                                                     ,aHHCpuissance                                                                     \
                                                     ,TRANSFORMATION__O_HOMOGRAPHIQUE_____exposant_du_numerateur__                      \
                                                     ,TRANSFORMATION__O_HOMOGRAPHIQUE_____exposant_du_denominateur                      \
                                                     ,nA,nB,nC,nD                                                                       \
                                                     ,ACCES                                                                             \
                                                      );                                                                                \
                    Eblock                                                                                                              \
                                        /* Transformation conforme '((A.o)+B)/((C.o)+D)' (introduite le 20120520112554).             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   K * ( Z * * 2 )                        */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIz_au_carre_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat)        \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_au_carre_dans_le_plan_image(imageR,R_translat,facteur,imageA,A_translat)                                   \
                         ,IFz_au_carre_dans_le_plan_image(FimageR,R_translat,facteur,FimageA,A_translat)                                \
                          )                                                                                                             \
                                        /* Transformation conforme "z au carre" ("standard" ou "flottante").                         */

#define   gIz_au_carre_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat)     \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_au_carre_dans_le_plan_complexe(imageR,R_translat,facteur,imageA,A_translat)                                \
                         ,IFz_au_carre_dans_le_plan_complexe(FimageR,R_translat,facteur,FimageA,A_translat)                             \
                          )                                                                                                             \
                                        /* Transformation conforme "z au carre" ("standard" ou "flottante").                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   K * ( 1 / Z )                          */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   gIun_sur_z_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat)          \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iun_sur_z_dans_le_plan_image(imageR,R_translat,facteur,imageA,A_translat)                                     \
                         ,IFun_sur_z_dans_le_plan_image(FimageR,R_translat,facteur,FimageA,A_translat)                                  \
                          )                                                                                                             \
                                        /* Transformation conforme "un sur z" ("standard" ou "flottante").                           */

#define   gIun_sur_z_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat)       \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iun_sur_z_dans_le_plan_complexe(imageR,R_translat,facteur,imageA,A_translat)                                  \
                         ,IFun_sur_z_dans_le_plan_complexe(FimageR,R_translat,facteur,FimageA,A_translat)                               \
                          )                                                                                                             \
                                        /* Transformation conforme "un sur z" ("standard" ou "flottante").                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   H O M O G R A P H I Q U E              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20041228085125 :                                                  */

#define   gIz_homographique_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD)      \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_homographique_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD)                                 \
                         ,IFz_homographique_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD)                              \
                          )                                                                                                             \
                                        /* Transformation conforme homographique ("standard" ou "flottante").                        */

#define   gIz_homographique_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD)   \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_homographique_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD)                              \
                         ,IFz_homographique_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD)                           \
                          )                                                                                                             \
                                        /* Transformation conforme homographique ("standard" ou "flottante").                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   " A U T O - S I M I L A I R E "   C O M P L E X E        */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20200705121006 :                                                  */

#define   gIz_auto_similaire_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,pd,prd)          \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_auto_similaire_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr,pd,prd)                                     \
                         ,IFz_auto_similaire_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr,pd,prd)                                  \
                          )                                                                                                             \
                                        /* Transformation conforme "auto-similaire" ("standard" ou "flottante").                     */

#define   gIz_auto_similaire_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,pd,prd)       \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_auto_similaire_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr,pd,prd)                                  \
                         ,IFz_auto_similaire_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr,pd,prd)                               \
                          )                                                                                                             \
                                        /* Transformation conforme "auto-similaire" ("standard" ou "flottante").                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   H Y P E R B O L I Q U E   1                              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20111228112148 :                                                  */

#define   gIz_hyperbolique_1_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)                 \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_hyperbolique_1_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr)                                            \
                         ,IFz_hyperbolique_1_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr)                                         \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 1 ("standard" ou "flottante").                       */

#define   gIz_hyperbolique_1_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)              \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_hyperbolique_1_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr)                                         \
                         ,IFz_hyperbolique_1_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr)                                      \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 1 ("standard" ou "flottante").                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   H Y P E R B O L I Q U E   2                              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20120526223509 :                                                  */

#define   gIz_hyperbolique_2_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)                 \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_hyperbolique_2_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr)                                            \
                         ,IFz_hyperbolique_2_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr)                                         \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 2 ("standard" ou "flottante").                       */

#define   gIz_hyperbolique_2_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)              \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iz_hyperbolique_2_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr)                                         \
                         ,IFz_hyperbolique_2_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr)                                      \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 2 ("standard" ou "flottante").                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   K * ( Q * * 2 )                        */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20070116154207 :                                                  */

#define   gIq_au_carre_dans_le_plan_hyper_image(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)        \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iq_au_carre_dans_le_plan_hyper_image(imageR,R_trans,facteur,imageA,A_trans)                                   \
                         ,IFq_au_carre_dans_le_plan_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans)                                \
                          )                                                                                                             \
                                        /* Transformation conforme "q au carre" ("standard" ou "flottante").                         */

#define   gIq_au_carre_dans_le_plan_hyper_complexe(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)     \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iq_au_carre_dans_le_plan_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans)                                \
                         ,IFq_au_carre_dans_le_plan_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans)                             \
                          )                                                                                                             \
                                        /* Transformation conforme "q au carre" ("standard" ou "flottante").                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   K * ( 1 / Q )                          */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20070116154207 :                                                  */

#define   gIun_sur_q_dans_le_plan_hyper_image(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)          \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iun_sur_q_dans_le_plan_hyper_image(imageR,R_trans,facteur,imageA,A_trans)                                     \
                         ,IFun_sur_q_dans_le_plan_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans)                                  \
                          )                                                                                                             \
                                        /* Transformation conforme "un sur q" ("standard" ou "flottante").                           */

#define   gIun_sur_q_dans_le_plan_hyper_complexe(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)       \
                    gCALC(EST_VRAI(les_images_sont_standards)                                                                           \
                         ,Iun_sur_q_dans_le_plan_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans)                                  \
                         ,IFun_sur_q_dans_le_plan_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans)                               \
                          )                                                                                                             \
                                        /* Transformation conforme "un sur q" ("standard" ou "flottante").                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   H O M O G R A P H I Q U E              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20070116154207 :                                                  */

#define   gIq_homographique_dans_le_plan_hyper_image(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD)    \
                    gCALC(EST_VRAI(images_sont_standards)                                                                               \
                         ,Iq_homographique_dans_le_plan_hyper_image(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD)                           \
                         ,IFq_homographique_dans_le_plan_hyper_image(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD)                        \
                          )                                                                                                             \
                                        /* Transformation conforme homographique ("standard" ou "flottante").                        */

#define   gIq_homographique_dans_le_plan_hyper_complexe(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \
                    gCALC(EST_VRAI(images_sont_standards)                                                                               \
                         ,Iq_homographique_dans_le_plan_hyper_complexe(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD)                        \
                         ,IFq_homographique_dans_le_plan_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD)                     \
                          )                                                                                                             \
                                        /* Transformation conforme homographique ("standard" ou "flottante").                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   H Y P E R B O L I Q U E   1                              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20111229175602 :                                                  */

#define   gIq_hyperbolique_1_dans_le_plan_hyper_image(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)               \
                    gCALC(EST_VRAI(images_sont_standards)                                                                               \
                         ,Iq_hyperbolique_1_dans_le_plan_hyper_image(imageR,R_tr,fact,imageA,A_tr)                                      \
                         ,IFq_hyperbolique_1_dans_le_plan_hyper_image(FimageR,R_tr,fact,FimageA,A_tr)                                   \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 1 ("standard" ou "flottante").                       */

#define   gIq_hyperbolique_1_dans_le_plan_hyper_complexe(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)            \
                    gCALC(EST_VRAI(images_sont_standards)                                                                               \
                         ,Iq_hyperbolique_1_dans_le_plan_hyper_complexe(imageR,R_tr,fact,imageA,A_tr)                                   \
                         ,IFq_hyperbolique_1_dans_le_plan_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr)                                \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 1 ("standard" ou "flottante").                       */


/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   K * ( O * * 2 )                        */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20070116154207 :                                                  */

#define   gIo_au_carre_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)                \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Io_au_carre_dans_le_plan_hyper_hyper_image(imageR,R_trans,facteur,imageA,A_trans)                             \
                         ,IFo_au_carre_dans_le_plan_hyper_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans)                          \
                          )                                                                                                             \
                                        /* Transformation conforme "o au carre" ("standard" ou "flottante").                         */

#define   gIo_au_carre_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)             \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Io_au_carre_dans_le_plan_hyper_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans)                          \
                         ,IFo_au_carre_dans_le_plan_hyper_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans)                       \
                          )                                                                                                             \
                                        /* Transformation conforme "o au carre" ("standard" ou "flottante").                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   K * ( 1 / O )                          */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20070116154207 :                                                  */

#define   gIun_sur_o_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)                  \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Iun_sur_o_dans_le_plan_hyper_hyper_image(imageR,R_trans,facteur,imageA,A_trans)                               \
                         ,IFun_sur_o_dans_le_plan_hyper_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans)                            \
                          )                                                                                                             \
                                        /* Transformation conforme "un sur o" ("standard" ou "flottante").                           */

#define   gIun_sur_o_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans)               \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Iun_sur_o_dans_le_plan_hyper_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans)                            \
                         ,IFun_sur_o_dans_le_plan_hyper_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans)                         \
                          )                                                                                                             \
                                        /* Transformation conforme "un sur o" ("standard" ou "flottante").                           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   C O N F O R M E   H O M O G R A P H I Q U E              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20070116154207 :                                                  */

#define   gIo_homographique_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD)        \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Io_homographique_dans_le_plan_hyper_hyper_image(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD)                     \
                         ,IFo_homographique_dans_le_plan_hyper_hyper_image(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD)                  \
                          )                                                                                                             \
                                        /* Transformation conforme homographique ("standard" ou "flottante").                        */

#define   gIo_homographique_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD)     \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Io_homographique_dans_le_plan_hyper_hyper_complexe(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD)                  \
                         ,IFo_homographique_dans_le_plan_hyper_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD)               \
                          )                                                                                                             \
                                        /* Transformation conforme homographique ("standard" ou "flottante").                        */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A P P L I C A T I O N   D E   L A   T R A N S F O R M A T I O N   H Y P E R B O L I Q U E   1                              */
/*        E N   C O O R D O N N E E S   D ' E C R A N   [Xmin,Xmax] x [Ymin,Ymax]  :                                                 */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* Ceci a ete introduit le 20111229175602 :                                                  */

#define   gIo_hyperbolique_1_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)                   \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Io_hyperbolique_1_dans_le_plan_hyper_hyper_image(imageR,R_tr,fact,imageA,A_tr)                                \
                         ,IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image(FimageR,R_tr,fact,FimageA,A_tr)                             \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 1 ("standard" ou "flottante").                       */

#define   gIo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr)                \
                    gCALC(EST_VRAI(i_standards)                                                                                         \
                         ,Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(imageR,R_tr,fact,imageA,A_tr)                             \
                         ,IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr)                          \
                          )                                                                                                             \
                                        /* Transformation conforme hyperbolique 1 ("standard" ou "flottante").                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   Q U E L C O N Q U E S  :               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__ZQO_AUTO_SIMILAIRE(p,p1,pd,prd,type,egal,produit,quotient,logarithme,exponentielle,base,ACCES)                \
                    Bblock                                                                                                              \
                    DEFV(type,pmA);                                                                                                     \
                    DEFV(type,pmB);                                                                                                     \
                                                                                                                                        \
                    quotient(pmA,p1,ACCES(pd));                                                                                         \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                   p1                                                                      */ \
                                        /*                  ----                                                                     */ \
                                        /*                   pd                                                                      */ \
                                        /*                                                                                           */ \
                                        /* le nombre 'pd' etant le "Diviseur"...                                                     */ \
                    logarithme(pmB,pmA);                                                                                                \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                       p1                                                                  */ \
                                        /*                  log(----)                                                                */ \
                                        /*                       pd                                                                  */ \
                                        /*                                                                                           */ \
                                                                                                                                        \
                    Test(IL_FAUT(TRANSFORMATION__ZQO_AUTO_SIMILAIRE_____ne_calculer_que_le_logarithme))                                 \
                                        /* Test introduit le 20200724124859 a des fins de test...                                    */ \
                         Bblock                                                                                                         \
                         egal(p,pmB);                                                                                                   \
                                        /* Calcul seul du logarithme...                                                              */ \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         DEFV(type,pmC);                                                                                                \
                                                                                                                                        \
                         produit(pmC,ACCES(prd),pmB);                                                                                   \
                                        /* Calcul de :                                                                               */ \
                                        /*                                                                                           */ \
                                        /*                           p1                                                              */ \
                                        /*                  prd.log(----)                                                            */ \
                                        /*                           pd                                                              */ \
                                        /*                                                                                           */ \
                                        /* le nombre 'prd' effectuant la "Rotation-Dilatation"...                                    */ \
                         exponentielle(p,base,pmC);                                                                                     \
                                        /*                                                                                           */ \
                                        /*                               p1                                                          */ \
                                        /*                      prd.log(----)                                                        */ \
                                        /*                               pd                                                          */ \
                                        /*                  base                                                                     */ \
                                        /*                                                                                           */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Transformation "auto-similaire" (introduite le 20200705103242)...                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   Q U E L C O N Q U E S                  */
/*        D A N S   L E   P L A N   C O M P L E X E  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__Z_AUTO_SIMILAIRE(z,z1,zd,zrd,ACCES)                                                                           \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_AUTO_SIMILAIRE(z                                                                                \
                                                      ,z1                                                                               \
                                                      ,zd                                                                               \
                                                      ,zrd                                                                              \
                                                      ,complexe                                                                         \
                                                      ,Cegal                                                                            \
                                                      ,Cproduit                                                                         \
                                                      ,Cquotient                                                                        \
                                                      ,Clogarithme                                                                      \
                                                      ,Cexponentielle,EN                                                                \
                                                      ,ACCES                                                                            \
                                                       );                                                                               \
                    Eblock                                                                                                              \
                                        /* Transformation dite "auto-similaire" (introduite le 20200705103242).                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   Q U E L C O N Q U E S                  */
/*        D A N S   L E   P L A N   H Y P E R - C O M P L E X E  :                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__Q_AUTO_SIMILAIRE(q,q1,qd,qrd)                                                                                 \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_AUTO_SIMILAIRE(q                                                                                \
                                                      ,q1                                                                               \
                                                      ,qd                                                                               \
                                                      ,qrd                                                                              \
                                                      ,hyper_complexe                                                                   \
                                                      ,HCegal                                                                           \
                                                      ,aHCproduit                                                                       \
                                                      ,aHCquotient                                                                      \
                                                      ,HClogarithme                                                                     \
                                                      ,HCexponentielle,EN                                                               \
                                                       );                                                                               \
                    Eblock                                                                                                              \
                                        /* Transformation dite "auto-similaire" (introduite le 20200705103242).                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   D E S   T R A N S F O R M A T I O N S   Q U E L C O N Q U E S                  */
/*        D A N S   L E   P L A N   H Y P E R - H Y P E R - C O M P L E X E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   TRANSFORMATION__O_AUTO_SIMILAIRE(o,o1,od,ord)                                                                                 \
                    Bblock                                                                                                              \
                    TRANSFORMATION__ZQO_AUTO_SIMILAIRE(o                                                                                \
                                                      ,o1                                                                               \
                                                      ,od                                                                               \
                                                      ,ord                                                                              \
                                                      ,hyper_hyper_complexe                                                             \
                                                      ,HHCegal                                                                          \
                                                      ,aHHCproduit                                                                      \
                                                      ,aHHCquotient                                                                     \
                                                      ,HHClogarithme                                                                    \
                                                      ,HHCexponentielle,EN                                                              \
                                                       );                                                                               \
                    Eblock                                                                                                              \
                                        /* Transformation dite "auto-similaire" (introduite le 20200705103242).                      */



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.