Computing in a quaternion algebra over a complex field?
If I enter
Q.<i,j,k> = QuaternionAlgebra(CC,1,1)
there is no problem. I can then type something like
(2+i+j)*(3*i-j)
and get the appropriate answer
2.00000000000000 + 6.00000000000000*i + (-2.00000000000000)*j + (-4.00000000000000)*k
The problem comes when I want to use non-real numbers. If I type
i*sqrt(-1)
then I get
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-0b500ba4930f> in <module>()
1 Q = QuaternionAlgebra(CC,Integer(1),Integer(1), names=('i', 'j', 'k',)); (i, j, k,) = Q._first_ngens(3)
----> 2 i*sqrt(-Integer(1))
/home/sc_serv/sage/local/lib/python2.7/site-packages/sage/structure/element.so in sage.structure.element.RingElement.__mul__ (/home/sc_serv/sage/src/build/cythonized/sage/structure/element.c:17265)()
/home/sc_serv/sage/local/lib/python2.7/site-packages/sage/structure/coerce.so in sage.structure.coerce.CoercionModel_cache_maps.bin_op (/home/sc_serv/sage/src/build/cythonized/sage/structure/coerce.c:9721)()
TypeError: unsupported operand parent(s) for '*': 'Quaternion Algebra (1.00000000000000, 1.00000000000000) with base ring Complex Field with 53 bits of precision' and 'Symbolic Ring'
As a matter of fact, something similar happens if I type
i*sqrt(2)
which is not imaginary... I also tried typing
I*i
and got a similar error message. Since I am supposedly working in the quaternion algebra over the complex numbers, how do I specify arbitrary complex coefficients?