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

 Submitted by : (unknown) at: 2007-11-17T21:53:49-08:00 (14 years ago) Name : Axiom Version : default friCAS-20090114 Axiom-20050901 OpenAxiom-20091012 OpenAxiom-20110220 OpenAxiom-Release-141 Category : Axiom Aldor Interface Axiom Compiler Axiom Library Axiom Interpreter Axiom Documentation Axiom User Interface building Axiom from source lisp system MathAction Doyen CD Reduce Axiom on Windows Axiom on Linux Severity : critical serious normal minor wishlist Status : open closed rejected not reproducible fix proposed fixed somewhere duplicate need more info 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:

fricas
q := quatern(0,1,0,0) (1)
Type: Quaternion(Integer)
fricas
q^2 (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 , there exist a quaternion algebra with and .

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

Yes, use GeneralQuaternion?:

fricas
qD := GeneralQuaternion(Fraction(Polynomial(Integer)), a, b) (3)
Type: Type
fricas
quatern(0, 1, 0, 0)$qD^2 (4) Type: GeneralQuaternion?(Fraction(Polynomial(Integer)),a,b) fricas quatern(0, 0, 1, 0)$qD^2 (5)
Type: GeneralQuaternion?(Fraction(Polynomial(Integer)),a,b)
fricas
quatern(0, 0, 0, 1)\$qD^2 (6)
Type: GeneralQuaternion?(Fraction(Polynomial(Integer)),a,b)

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
fricas
K := Fraction Polynomial Integer (7)
Type: Type
fricas
m := matrix [ [a,0],[0,b] ] (8)
Type: Matrix(Polynomial(Integer))
fricas
H := CliffordAlgebra(2, K, m) (9)
Type: Type
fricas
i: H := e(1) (10)
Type: CliffordAlgebra?(2,Fraction(Polynomial(Integer)),[[a,0],[0,b]])
fricas
j: H := e(2) (11)
Type: CliffordAlgebra?(2,Fraction(Polynomial(Integer)),[[a,0],[0,b]])
fricas
k: H := i * j (12)
Type: CliffordAlgebra?(2,Fraction(Polynomial(Integer)),[[a,0],[0,b]])
fricas
i^2 (13)
Type: CliffordAlgebra?(2,Fraction(Polynomial(Integer)),[[a,0],[0,b]])
fricas
j^2 (14)
Type: CliffordAlgebra?(2,Fraction(Polynomial(Integer)),[[a,0],[0,b]])
fricas
k^2 (15)
Type: CliffordAlgebra?(2,Fraction(Polynomial(Integer)),[[a,0],[0,b]])

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

Status: open => closed

 Subject:   Be Bold !! ( 15 subscribers )