# Exponential in Clifford algebra

Hello, I am trying to take the exponential of A+B*i in Clifford algebra (isomorphic to the complex numbers) .

Code is:

sage: R.<A,B> = PolynomialRing(ZZ);
sage: Cl.<i> = CliffordAlgebra(Q);
sage: exp(A+B*i)*exp(A-B*i)


I would expect it to output exp(2*A), but it produces this error:

TypeError: cannot coerce arguments: no canonical coercion from The Clifford algebra of the Quadratic form in 1 variables over Multivariate Polynomial Ring in A, B over Integer Ring with coefficients:
[ 1 ] to Symbolic Ring

edit retag close merge delete

1

What do you expect as a result? Is it a polynomial in A, B, i?

@MaxAlekseyez Good question. What I want, really, is for this exp(A+B*i)*exp(A-B*i) to give exp(2*A) (I've edited the question).

1

@MaxAlekseyez Well, I just want A and B to be symbolic variables. In my mind A and B are elements of the reals. Using polynomial ring was suggested by a colleague on this site to make A and B work as symbolic variables in Clifford algebras. I am willing to look at other things. Specifically I would like to set up a Clifford algebra, such that both (A+B*i)*(A-B*i)=A^2+B^2 and exp(A+B*i)*exp(A-B*i)=exp(2*A) are realized. I don't mind playing around with the definitions of the setup of the algebra to make this possible.

You can define A and B as symbolic variables, and exp(2A) would be a legitimate object, however exp(B*i) would still not make sense as exponentiation of the generator of the Clifford algebra is not defined.

Sort by » oldest newest most voted As I pointed out in the comments, the issue is that exponentiation is defined neither in the polynomial ring, nor for the algebra generators. While the first issue can be alleviated by switching to symbolic variables A and B, the second issue is more trickier. A possible approach here can be introducing a symbolic variable E for exp(i) and defining our own exponentiation function:

A,B,E = var('A B E')
def myexp(x):
return prod(E^c if t else exp(c) for t,c in x)

Cl.<i> = CliffordAlgebra(Q);

myexp(A+B*i)*myexp(A-B*i)


This gives e^(2*A) as expected.

more

Can you explain what c and t means in the function, and what for t,c in x do, with respect to x=A+B*i?

c are coefficients (depending on A and B) and t are terms (either () for scalar or (1,) for i). Just run for t,c in A+B*i: print(t,c) and you'll see.

"Just run for t,c in A+B*i: print(t,c) and you'll see." Oh that's fancy.. I'm gonna like this software :)