/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D ' U N E V A R I E T E D E C A L A B I - Y A U 8 - D I M E N S I O N N E L L E : */
/* */
/* */
/* Author of '$xrs/CalabiYau.31.1$I' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20230210114658). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S T R O I S F O N C T I O N S ' F ' : */
/* */
/* */
/* Definition ('v $xrs/CalabiYau.32$K') : */
/* */
/* Une variete hyper-complexe de Calabi-Yau */
/* 8-dimensionnelle est definie */
/* implicitement par : */
/* */
/* / \n1 / \n2 */
/* | Q' | | Q' | */
/* | 1 | | 2 | */
/* | ---- | + | ---- | = 1 */
/* | A | | B | */
/* \ / \ / */
/* */
/* posons : */
/* */
/* Q' */
/* 1 */
/* Q = ---- */
/* 1 A */
/* */
/* Q' */
/* 2 */
/* Q = ---- */
/* 2 B */
/* */
/* d'ou : */
/* */
/* n1 n2 */
/* Q + Q = 1 */
/* 1 2 */
/* */
/* ou 'Q1' et 'Q2' sont deux nombres hyper-complexes. */
/* Cela peut se reecrire : */
/* */
/* 2 2 */
/* / n1 \ / n2 \ */
/* | ---- | | ---- | */
/* | 2 | | 2 | */
/* | Q | + | Q | = 1 */
/* \ 1 / \ 2 / */
/* */
/* ou encore : */
/* */
/* 2 2 */
/* cos(Q) + sin(Q) = 1 */
/* */
/* d'ou : */
/* */
/* n1 2 */
/* Q = cos(Q) */
/* 1 */
/* */
/* n2 2 */
/* Q = sin(Q) */
/* 2 */
/* */
/* (ou 'Q' est un "angle" hyper-complexe) d'ou : */
/* */
/* 1 */
/* k1 / \ ---- */
/* 2Ip.---- | | n1 */
/* n1 | 2 | */
/* Q = e | cos(Q) | */
/* 1 \ / */
/* */
/* 1 */
/* k2 / \ ---- */
/* 2Ip.---- | | n2 */
/* n2 | 2 | */
/* Q = e | sin(Q) | */
/* 2 \ / */
/* */
/* */
/* ou 'I' represente l'imaginaire pur (0,1,1,1). */
/* */
/* D'ou : */
/* */
/* k1 2 */
/* 2Ip.---- ---- */
/* n1 n1 */
/* Q = e .cos(Q) */
/* 1 */
/* */
/* k2 2 */
/* 2Ip.---- ---- */
/* n2 n2 */
/* Q = e .sin(Q) */
/* 2 */
/* */
/* et : */
/* */
/* Q' = A.Q */
/* 1 1 */
/* */
/* Q' = B.Q */
/* 2 2 */
/* */
/* ou 'k1' et 'k2' indicent les racines n-iemes */
/* de l'unite (n = {n1,n2}) : */
/* */
/* k1 E [ 0 , n1-1 ] */
/* */
/* k2 E [ 0 , n2-1 ] */
/* */
/* La variete est ainsi composee de n1.n2 "patches" */
/* parametres chacun par {u,v}, avec : */
/* */
/* u E [ 0 , p/2 ] */
/* */
/* v E [ -1 , +1 ] */
/* */
/* (ou 'p' designe 'pi') et : */
/* */
/* Q = u + i.v + j.u' + k.v' */
/* */
/* {u',v'} etant deux parametres supplementaires... */
/* */
/* */
/*************************************************************************************************************************************/
/*************************************************************************************************************************************/
/* */
/* */
/* Cette variete est donc a 8 dimensions, et la */
/* surface a 3 dimensions que l'on visualisera */
/* sera definie par : */
/* */
/* */
/* X = (A .R(Q )) + (A .I(Q )) + (A .J(Q )) + (A .K(Q )) + (A .R(Q )) + (A .I(Q )) + (A .J(Q )) + (A .K(Q )) */
/* X1 1 X2 1 X3 1 X4 1 X5 2 X6 2 X7 2 X8 2 */
/* */
/* */
/* Y = (A .R(Q )) + (A .I(Q )) + (A .J(Q )) + (A .K(Q )) + (A .R(Q )) + (A .I(Q )) + (A .J(Q )) + (A .K(Q )) */
/* Y1 1 Y2 1 Y3 1 Y4 1 Y5 2 Y6 2 Y7 2 Y8 2 */
/* */
/* */
/* Z = (A .R(Q )) + (A .I(Q )) + (A .J(Q )) + (A .K(Q )) + (A .R(Q )) + (A .I(Q )) + (A .J(Q )) + (A .K(Q )) */
/* Z1 1 Z2 1 Z3 1 Z4 1 Z5 2 Z6 2 Z7 2 Z8 2 */
/* */
/* */
/* soit, par defaut (qui fait que 'v $xiirs/CAYA.A1.0129' et 'v $xiirs/CAYA.O3' sont semblables bien qu'ayant ete */
/* generees par '$xrs/CalabiYau.12$X' et '$xrs/CalabiYau.32$X' respectivement) : */
/* */
/* */
/* X = R(Q ) + I(Q ) */
/* 1 2 */
/* */
/* */
/* Y = I(Q ) + I(Q ) */
/* 1 2 */
/* */
/* */
/* Z = R(Q ) + I(Q ) */
/* 2 2 */
/* */
/* */
/* (ou 'R(...)', 'I(...)', J(...)' et 'K(...)' designent respectivement */
/* les parties Reelle, Imaginaire, Jmaginaire et Kmaginaire). Une possible */
/* matrice 'A' sera : */
/* */
/* | 1 0 0 0 0 1 0 0 | */
/* | 0 1 0 0 0 1 0 0 | */
/* | 0 0 0 0 1 1 0 0 | */
/* */
/* qui permet de retrouver 'v $xiirs/CAYA.A1.0129' */
/* avec 'v $xiirs/CAYA.O3'... */
/* */
/*************************************************************************************************************************************/
#define GENERATION_DU_CALABI_YAU_OCTODIMENSIONNEL(coordonnee_w,coordonnee_t) \
Bblock \
begin_nouveau_block \
Bblock \
DEFV(Float,INIT(exposant_n1,parametre_n1)); \
DEFV(Float,INIT(demi_exposant_n1,MOIT(parametre_n1))); \
/* Exposant (n1) et demi-exposant (n1/2). */ \
DEFV(Float,INIT(exposant_n2,parametre_n2)); \
DEFV(Float,INIT(demi_exposant_n2,MOIT(parametre_n2))); \
/* Exposant (n2) et demi-exposant (n2/2). */ \
DEFV(hyper_complexe,quv); \
DEFV(hyper_complexe,cosinus_quv); \
DEFV(hyper_complexe,sinus_quv); \
DEFV(hyper_complexe,puissance_de_cosinus_quv); \
DEFV(hyper_complexe,puissance_de_sinus_quv); \
DEFV(hyper_complexe,racine_de_l_unite_1); \
DEFV(hyper_complexe,racine_de_l_unite_2); \
/* Nombres hyper-complexes de manoeuvre... */ \
\
HCinitialisation(quv,u,v,coordonnee_w,coordonnee_t); \
/* Calcul de : */ \
/* */ \
/* q = u + i.v + j.w + k.t */ \
/* uv */ \
/* */ \
HCcosinus(cosinus_quv,quv); \
/* Calcul de : */ \
/* */ \
/* cos(q ) */ \
/* uv */ \
/* */ \
HCsinus(sinus_quv,quv); \
/* Calcul de : */ \
/* */ \
/* sin(q ) */ \
/* uv */ \
/* */ \
HCpuissance(puissance_de_cosinus_quv,cosinus_quv,INVE(demi_exposant_n1)); \
/* Calcul de : */ \
/* */ \
/* 2 */ \
/* ---- */ \
/* n1 */ \
/* cos(q ) */ \
/* uv */ \
/* */ \
HCpuissance(puissance_de_sinus_quv,sinus_quv,INVE(demi_exposant_n2)); \
/* Calcul de : */ \
/* */ \
/* 2 */ \
/* ---- */ \
/* n2 */ \
/* sin(q ) */ \
/* uv */ \
/* */ \
HCdefinition_trigonometrique(racine_de_l_unite_1 \
,HC_MODULE_UNITAIRE \
,SCAL(CERCLE_TRIGONOMETRIQUE,exposant_n1,parametre_k1) \
); \
/* Calcul de : */ \
/* */ \
/* k1 */ \
/* 2Ip.---- */ \
/* n1 */ \
/* e */ \
/* */ \
HCdefinition_trigonometrique(racine_de_l_unite_2 \
,HC_MODULE_UNITAIRE \
,SCAL(CERCLE_TRIGONOMETRIQUE,exposant_n2,parametre_k2) \
); \
/* Calcul de : */ \
/* */ \
/* k2 */ \
/* 2Ip.---- */ \
/* n2 */ \
/* e */ \
/* */ \
HCproduit(q1,racine_de_l_unite_1,puissance_de_cosinus_quv); \
/* Calcul de : */ \
/* */ \
/* k1 2 */ \
/* 2Ip.---- ---- */ \
/* n1 n1 */ \
/* e .cos(q ) */ \
/* uv */ \
/* */ \
HCproduit(q2,racine_de_l_unite_2,puissance_de_sinus_quv); \
/* Calcul de : */ \
/* */ \
/* k2 2 */ \
/* 2Ip.---- ---- */ \
/* n2 n2 */ \
/* e .sin(q ) */ \
/* uv */ \
/* */ \
HCproduit(q1,parametre_qA,q1); \
/* Calcul de : */ \
/* */ \
/* k1 2 */ \
/* 2Ip.---- ---- */ \
/* n1 n1 */ \
/* A.e .cos(q ) */ \
/* uv */ \
/* */ \
HCproduit(q2,parametre_qB,q2); \
/* Calcul de : */ \
/* */ \
/* k2 2 */ \
/* 2Ip.---- ---- */ \
/* n2 n2 */ \
/* B.e .sin(q ) */ \
/* uv */ \
/* */ \
\
Test(IL_FAUT(valider_la_qualite_du_calcul_de_q1_et_de_q2)) \
/* On notera le probleme "existentiel" decrit dans 'v $ximcd/operator$FON 20230324100530' */ \
/* qui fait que ce test de validation n'a peut-etre, a cause de 'HCpuissance(...)', aucun */ \
/* sens ! Et d'ailleurs cela peut concerner en fait tous les calculs precedents. Cela s'est */ \
/* vu lors du calcul de 'v $xiirs/CAYA.W4' aux environs du 20230324100530... */ \
Bblock \
DEFV(hyper_complexe,q1_puissance_n1); \
DEFV(hyper_complexe,q2_puissance_n2); \
DEFV(hyper_complexe,validation); \
/* Nombres hyper-complexes de manoeuvre... */ \
\
HCpuissance(q1_puissance_n1,q1,parametre_n1); \
/* Calcul de : */ \
/* */ \
/* n1 */ \
/* q */ \
/* 1 */ \
/* */ \
HCpuissance(q2_puissance_n2,q2,parametre_n2); \
/* Calcul de : */ \
/* */ \
/* n2 */ \
/* q */ \
/* 2 */ \
/* */ \
HCsomme(validation,q1_puissance_n1,q2_puissance_n2); \
/* Calcul de : */ \
/* */ \
/* n1 n2 */ \
/* q + q */ \
/* 1 2 */ \
/* */ \
\
Test(HCTestIFNE_a_peu_pres_absolu(validation,HC_____quaternion_p1__0__0__0 \
,epsilon_de_validation_du_calcul_de_q1_et_de_q2 \
) \
) \
Bblock \
PRINT_ERREUR("le calcul de 'q1' et de 'q2' est incorrect"); \
PRINT_DANS_HC("quv",quv); \
/* Introduit le 20230323092855... */ \
PRINT_DANS_HC("q1",q1); \
PRINT_DANS_HC("q2",q2); \
CAL1(Prer8("(%+.^^^,%+.^^^,%+.^^^,%+.^^^) est obtenu au lieu de (%+.^^^,%+.^^^,%+.^^^,%+.^^^)\n" \
,HReelle(validation) \
,HImaginaire(validation) \
,HJmaginaire(validation) \
,HKmaginaire(validation) \
,HReelle(HC_____quaternion_p1__0__0__0) \
,HImaginaire(HC_____quaternion_p1__0__0__0) \
,HJmaginaire(HC_____quaternion_p1__0__0__0) \
,HKmaginaire(HC_____quaternion_p1__0__0__0) \
) \
); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_nouveau_block \
Eblock \
/* Calcul sur la variete hyper-complexe a 2 dimensions. */