login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for #118 Quaternion restriction revision 1 of 3

1 2 3
Editor:
Time: 2007/11/17 21:53:49 GMT-8
Note: property change

changed:
-
*originally posted by Anonymous*

I've been checking quaternion support in Axiom. And I've found out
that it is a bit too restricted. More exactly it seems to be aimed
on Hamiltonian quaternions only:
\begin{axiom}
q := quatern(0,1,0,0)
q**2
\end{axiom}
This is fine over the reals. But only there. On any field with bigger
group of square classes (e.g. rationals, algebraic rationals,...) we
have far more quaternion algebras. Namely for any two square classes
$a$, $b$ there exist a
"quaternion algebra":http://en.wikipedia.org/wiki/Quaternion_algebra
with $i^2 = a$ and $j^2 = b$.

Is there a way to declare such a quaternions in Axiom?


From BillPage Mon Mar 7 10:33:49 -0600 2005
From: Bill Page
Date: Mon, 07 Mar 2005 10:33:49 -0600
Subject: 
Message-ID: <20050307103349-0600@page.axiom-developer.org>

>From the description of quatern on in section
*9.64 Quaternion*, page 734 of the
"Axiom Book":http://page.axiom-developer.org/zope/Plone/refs/books/axiom-book2.pdf#751
I think that what you want is not possible with this domain.
But since the quaternions can be thought of as a Clifford algebra,
please refer to section
*9.10.2 The Quaternion Numbers as a Clifford Algebra*,
page 483 of 
"the Book":http://page.axiom-developer.org/zope/Plone/refs/books/axiom-book2.pdf#500.
For example
\begin{axiom}
K := Fraction Polynomial Integer
m := matrix [ [a,0],[0,b] ]
H := CliffordAlgebra(2, K, quadraticForm m)
i: H := e(1)
j: H := e(2)
k: H := i * j
i^2
j^2
k^2
\end{axiom}


From unknown Tue Mar 8 04:58:59 -0600 2005
From: 
Date: Tue, 08 Mar 2005 04:58:59 -0600
Subject: property change
Message-ID: <20050308045859-0600@page.axiom-developer.org>



Submitted by : (unknown) at: 2007-11-17T21:53:49-08:00 (17 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

originally posted by Anonymous

I've been checking quaternion support in Axiom. And I've found out that it is a bit too restricted. More exactly it seems to be aimed on Hamiltonian quaternions only:

axiom
q := quatern(0,1,0,0)

\label{eq1}i(1)
Type: Quaternion(Integer)
axiom
q**2

\label{eq2}- 1(2)
Type: Quaternion(Integer)

This is fine over the reals. But only there. On any field with bigger group of square classes (e.g. rationals, algebraic rationals,...) we have far more quaternion algebras. Namely for any two square classes a, b there exist a quaternion algebra with i^2 = a and j^2 = b.

Is there a way to declare such a quaternions in Axiom?

From the description of quatern on in section
9.64 Quaternion, page 734 of the Axiom Book I think that what you want is not possible with this domain. But since the quaternions can be thought of as a Clifford algebra, please refer to section 9.10.2 The Quaternion Numbers as a Clifford Algebra, page 483 of the Book For example
axiom
K := Fraction Polynomial Integer

\label{eq3}\hbox{\axiomType{Fraction}\ } (\hbox{\axiomType{Polynomial}\ } (\hbox{\axiomType{Integer}\ }))(3)
Type: Type
axiom
m := matrix [ [a,0],[0,b] ]

\label{eq4}\left[ 
\begin{array}{cc}
a & 0 
\
0 & b 
(4)
Type: Matrix(Polynomial(Integer))
axiom
H := CliffordAlgebra(2, K, quadraticForm m)
There are 1 exposed and 0 unexposed library operations named quadraticForm having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op quadraticForm to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named quadraticForm with argument type(s) Matrix(Polynomial(Integer))
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. i: H := e(1)
There are 1 exposed and 0 unexposed library operations named e having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op e to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named e with argument type(s) PositiveInteger
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. j: H := e(2)
There are 1 exposed and 0 unexposed library operations named e having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op e to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named e with argument type(s) PositiveInteger
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. k: H := i * j

\label{eq5}i \  j(5)
Type: Polynomial(Integer)
axiom
i^2

\label{eq6}i^2(6)
Type: Polynomial(Integer)
axiom
j^2

\label{eq7}j^2(7)
Type: Polynomial(Integer)
axiom
k^2

\label{eq8}{i^2}\ {j^2}(8)
Type: Polynomial(Integer)

property change
Tue, 08 Mar 2005 04:58:59 -0600 reply