
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S N O M B R E S H Y P E R - H Y P E R - C O M P L E X E S */
/* ( O U " O C T O N I O N S " ) : */
/* */
/* */
/* Definition : */
/* */
/* Soit 'Q' le corps des nombres Hyper-Complexes (ou "quaternions"), */
/* le corps 'O' des nombres Hyper-Hyper-Complexes (ou "octonions" ou */
/* encore "octaves" de Cayley) peut alors se definir par : */
/* */
/* O = (Q.1) + (Q.s) */
/* */
/* la conjugaison '-' pouvant se definir par : */
/* */
/* - - */
/* O = (Q.1) - (Q.s) */
/* */
/* avec : */
/* */
/* 2 */
/* s = -1 */
/* */
/* j.s = -s.j ('j' definissant 'Q', et 's' definissant 'O') */
/* */
/* d'ou l'on tire ('1' etant l'element neutre de la multiplication dans 'R', 'C' et 'Q') : */
/* */
/* O = (Q.1) + (Q.s) */
/* O = (((C.1) + (C.j)).1) + (((C.1) + (C.j)).s) */
/* O = ((C.1).1) + ((C.j).1) + ((C.1).s) + ((C.j).s) */
/* = ((((R.1) + (R.i)).1).1) + ((((R.1) + (R.i)).j).1) + ((((R.1) + (R.i)).1).s) + ((((R.1) + (R.i)).j).s) */
/* = (((R.1).1).1) + (((R.i).1).1) + (((R.1).j).1) + (((R.i).j).1) + (((R.1).1).s) + (((R.i).1).s) + (((R.1).j).s) + (((R.i).j).s) */
/* */
/* | | | | | | | | */
/* | | | | | | | | */
/* | | ------------- | | | | | */
/* | --------------------------- | | | | | | */
/* ----------------------------------------- | | | | | | | */
/* | | | | | | | | */
/* | | | | | | | | */
/* 1 = ((1).1).1 <- | | | | | | | */
/* i = ((i).1).1 <--- | | | | | | */
/* j = ((1).j).1 <----- | | | | | */
/* k = ((i).j).1 <------- | | | | */
/* | | | | */
/* s = ((1).1).s <----------------------- | | | */
/* t = ((i).1).s <--------------------------------------- | | */
/* u = ((1).j).s <------------------------------------------------------- | */
/* v = ((i).j).s <----------------------------------------------------------------------- */
/* */
/* d'ou, avec k = (i).j : */
/* */
/* 1 = 1.1 */
/* i = i.1 */
/* j = j.1 */
/* k = k.1 */
/* */
/* s = 1.s */
/* t = i.s */
/* u = j.s */
/* v = k.s */
/* */
/* | | */
/* | | */
/* | --------> (1,s) definit 'O' */
/* ----------> (1,i,j,k) est la base de 'Q' */
/* */
/* */
/* Notation : */
/* */
/* Un octonion 'o' est compose d'une partie reelle 'a' */
/* et de sept parties parties imaginaires 'b', 'c', 'd', */
/* 'e' 'f', 'g' et 'h' ; on le notera : */
/* */
/* o = (a,b,c,d,e,f,g,h) */
/* */
/* ou : */
/* */
/* o = a.1 + b.i + c.j + d.k + e.s + f.t + g.u + h.v */
/* */
/* ou : */
/* */
/* o = a + b.i + c.j + d.k + e.s + f.t + g.u + h.v */
/* */
/* avec : */
/* */
/* 2 2 2 2 2 2 2 */
/* i = j = k = s = t = u = v = -1 */
/* */
/* i.j = -j.i */
/* j.k = -k.j */
/* k.i = -i.k */
/* */
/* etc, tous les produits de deux vecteurs de base distincts anticommutant (sauf avec '1')... */
/* */
/* */
/* on a donc la table de multiplication (v1.v2) : */
/* */
/* */
/* | | | | | | | | | */
/* + v1 | +1 | +i | +j | +k | +s | +t | +u | +v | */
/* + | | | | | | | | | */
/* + | | | | | | | | | */
/* v2 + | | | | | | | | | */
/* | | | | | | | | | */
/* ---------------|---------|---------|---------|---------| */
/* +1 | +1 +i | +j +k | +s +t | +u +v | */
/* ---------------| * | * | * | * | */
/* +i | +i -1 | -k +j | -t +s | +v -u | */
/* ---------------|---------|---------|---------|---------| */
/* +j | +j +k | -1 -i | -u -v | +s +t | */
/* ---------------| * | * | * | * | */
/* +k | +k -j | +i -1 | -v +u | -t +s | */
/* ---------------|---------|---------|---------|---------| */
/* +s | +s +t | +u +v | -1 -i | -j -k | */
/* ---------------| * | * | * | * | */
/* +t | +t -s | +v -u | +i -1 | +k -j | */
/* ---------------|---------|---------|---------|---------| */
/* +u | +u -v | -s +t | +j -k | -1 +i | */
/* ---------------| * | * | * | * | */
/* +v | +v +u | -t -s | +k +j | -i -1 | */
/* ------------------------------------------------------- */
/* */
/* */
/* (ce resultat a ete obtenu grace au programme 'v $xtKg/octonions$K') */
/* */
/* */
/* Le produit de deux octonions 'o1' et 'o2' se definit par : */
/* */
/* o1 = q11.1 + q12.s */
/* o2 = q21.1 + q22.s */
/* */
/* (ou 'q11', 'q12', 'q21' et 'q22' sont quatre quaternions) */
/* */
/* o1.o2 = (q11.1 + q12.s).(q21.1 + q22.s) */
/* */
/* --- --- */
/* o1.o2 = (q11.q21 - q22.q12).1 + (q22.q11 + q12.q21).s */
/* */
/* La multiplication n'est ni commutative, ni associative... */
/* */
/* */
/*************************************************************************************************************************************/
/* */ /* o R(o) */ /* e = e .[cos(|I(o)|) + sinc(|I(o)|).I(o)] */ /* */
/* */
/* 1 |R(o)| */
/* log(o) = {log(|o|,--------.acos(--------).I(o)} */
/* |I(o)| |o| */
/* */
/* */ /* cos(o) = [cos(R(o)).ch(|I(o)|)] - [sin(R(o)).shc(|I(o)|).I(o)] */ /* sin(o) = [sin(R(o)).ch(|I(o)|)] + [cos(R(o)).shc(|I(o)|).I(o)] */ /* */ /* ch(o) = [ch(R(o)).cos(|I(o)|)] + [sh(R(o)).sinc(|I(o)|).I(o)] */ /* sh(o) = [sh(R(o)).cos(|I(o)|)] + [ch(R(o)).sinc(|I(o)|).I(o)] */ /* */ /* en faisant les hypotheses audacieuses suivantes : */ /* */ /* o = R(o) + I(o) */ /* o = a + b.i + c.j + d.k + e.s + f.t + g.u + h.v */ /* */ /* I = b.i + c.j + d.k + e.s + f.t + g.u + h.v [I = I(o)] */ /* [m = |I|] */ /* */ /* o = a + I */ /* */ /* f11 f12 f21 f22 */ /* */ /* cos(o) = cos(a+I) = [cos(a).cos(I) - sin(a).sin(I)] */ /* sin(o) = cos(a+I) = [sin(a).cos(I) + cos(a).sin(I)] */ /* */ /* ch(o) = ch(a+I) = [ch(a).ch(I) + sh(a).sh(I)] */ /* sh(o) = sh(a+I) = [sh(a).ch(I) + ch(a).sh(I)] */ /* */ /* En effet, par des developpements en series tel celui de 'FgHCexponentielle(...)', on */ /* montre facilement que : */ /* */ /* cos(I) = ch(m) */ /* */ /* sh(m) */ /* sin(I) = -------.I = shc(m).I */ /* m */ /* */ /* */ /* ch(I) = cos(m) */ /* */ /* sin(m) */ /* sh(I) = --------.I = sinc(m).I */ /* m */ /* */ /* d'ou : */ /* */ /* f11 f12 f21 f22 */ /* */ /* cos(o) = cos(a+I) = [cos(a).ch(m) - sin(a).shc(m).I] */ /* sin(o) = cos(a+I) = [sin(a).ch(m) + cos(a).shc(m).I] */ /* */ /* ch(o) = ch(a+I) = [ch(a).cos(m) + sh(a).sinc(m).I] */ /* sh(o) = sh(a+I) = [sh(a).cos(m) + ch(a).sinc(m).I] */ /* */ /* */ /* On verifie aisement que : */ /* */ /* 2 2 2 2 2 */ /* cos (o) + sin (o) = ch (m) + shc (m).I */ /* */ /* 2 */ /* 2 sh (m) 2 2 2 */ /* = ch (m) + --------.I [I = -(m )] */ /* 2 */ /* m */ /* */ /* 2 2 */ /* = ch (m) - sh (m) */ /* ['m' etant un Reel...] */ /* = 1 */ /* */ /* de meme : */ /* */ /* 2 2 */ /* ch (o) - sh (o) = 1 */ /* */