Closed tscrim closed 9 years ago
Attachment: trac_15300-weyl_clifford_algebras-ts.patch.gz
Branch: u/mguaypaq/weyl-clifford
Changed branch from u/mguaypaq/weyl-clifford to u/bump/ticket/15300
Description changed:
---
+++
@@ -1 +1,3 @@
Initial implementations of Weyl and Clifford algebras.
+
+Test!
Changed branch from u/bump/ticket/15300 to u/aschilling/ticket/15300
New commits:
[changeset:e3ff430] | Merge branch 'u/bump/ticket/15300' of git://trac.sagemath.org/sage into ticket/15300 |
[changeset:427f2fe] | changed formatting of list |
[changeset:0734921] | changed spaces |
[changeset:1c7458a] | #15300: Implement Weyl and Clifford algebras. |
Commit: e3ff430
Changed branch from u/aschilling/ticket/15300 to u/darij/ticket/15300
Description changed:
---
+++
@@ -1,3 +1 @@
Initial implementations of Weyl and Clifford algebras.
-
-Test!
Changed branch from u/darij/ticket/15300 to u/gmoose05/ticket/15300
Attachment: trac_15300-todos-dg.patch.gz
The patch I've posted contains a couple corrections and comments. Sorry for being this slow; the cold isn't very beneficial for my concentration.
EDIT: The commit list below has nothing to do with my post; it seems that trac automatically appends it to whatever post is made first after the commits. Anyway, for everyone who is not at Davis: The git commits on this ticket are a sandbox for people merging git; the true work is being done in the hg patches. I'm very positive this one is going to be reviewed way before we move over to git.
New commits:
[changeset:8138949] | Merge branch 'u/darij/ticket/15300' of trac.sagemath.org:sage into gregg-change |
[changeset:9f8c4a1] | merged with Anne |
[changeset:529d73c] | Merge branch 'u/bump/ticket/15300' of git://trac.sagemath.org/sage into ticket/15300 |
[changeset:9086aca] | added spaces |
[changeset:911906c] | #15300: Implement Weyl and Clifford algebras. |
[changeset:2033f23] | trying out git (pyflakes corrections) |
Changed branch from u/gmoose05/ticket/15300 to public/algebras/weyl_clifford-15300
New commits:
[c2f2fef](https://github.com/sagemath/sagetrac-mirror/commit/c2f2fef) | Merge branch 'master' into public/algebras/weyl_clifford-15300 |
Branch pushed to git repo; I updated commit sha1. New commits:
[802459a](https://github.com/sagemath/sagetrac-mirror/commit/802459a) | trac #15300: some remarks |
Changed keywords from none to days54
Branch pushed to git repo; I updated commit sha1. New commits:
[dce70bb](https://github.com/sagemath/sagetrac-mirror/commit/dce70bb) | Fixes to Clifford algebras and expanded to have a functor method lift_morphism() |
[728019a](https://github.com/sagemath/sagetrac-mirror/commit/728019a) | Merge branch 'master' into public/algebras/weyl_clifford-15300 |
Branch pushed to git repo; I updated commit sha1. New commits:
[6b69822](https://github.com/sagemath/sagetrac-mirror/commit/6b69822) | More docstring tweaks to Clifford algebra. |
[f759608](https://github.com/sagemath/sagetrac-mirror/commit/f759608) | Added lift_isometry method. |
Is there an established class for bilinear forms (not necessarily symmetric!) on free modules? I'd need one to get anywhere towards the Clifford-exterior iso.
The scalar
function as it stands is rather useless, since on the exterior algebra it just returns the product of the constant coefficients of self
and other
. What should be made (I can do that) is the lift of a bilinear (not quadratic) form on V
to the exterior algebra of V
(using the Gram matrix). But that requires bilinear forms, too, so I'd love to hear whether they exist before doing any changes.
Branch pushed to git repo; I updated commit sha1. New commits:
[760de0b](https://github.com/sagemath/sagetrac-mirror/commit/760de0b) | some doc fixes |
Replying to @darijgr:
Is there an established class for bilinear forms (not necessarily symmetric!) on free modules? I'd need one to get anywhere towards the Clifford-exterior iso.
I don't think so. I think this is usually worked (hacked) around using dedicated methods.
The
scalar
function as it stands is rather useless, since on the exterior algebra it just returns the product of the constant coefficients ofself
andother
. What should be made (I can do that) is the lift of a bilinear (not quadratic) form onV
to the exterior algebra ofV
(using the Gram matrix). But that requires bilinear forms, too, so I'd love to hear whether they exist before doing any changes.
I'd just have a function Element.scalar(other)
(or some other name) which projects down self
and other
to the exterior algebra and does the computation there via some (predefined) scalar()
method.
Do you think it makes sense to add a BilinearForm
class in analogy to QuadraticForm
, or should I just use matrices to represent bilinear forms?
It depends what feature about bilinear forms you need for now. If it's just about computing it on some elements, I would stick for now with implementing appropriate "scalar" methods. Granted, it's a bit rudimentary. In the long run we want to have proper multivariate morphisms, with support from the coercion model. See #8900 and http://trac.sagemath.org/wiki/CategoriesRoadMap.
Cheers, Nicolas
What I want is to change the WeylAlgebra
class to depend upon a space with a bilinear form, not on a polynomial ring. So the bilinear form will be a parameter. Still OK if it is a matrix or should I rather have an extra class?
Replying to @darijgr:
What I want is to change the
WeylAlgebra
class to depend upon a space with a bilinear form, not on a polynomial ring. So the bilinear form will be a parameter. Still OK if it is a matrix or should I rather have an extra class?
I think a matrix would be best for now (although I would like to keep the polynomial ring version).
Thanks,
Travis
Will be a matrix then.
Yeah, I'm not going to deprecate your Weyl algebra; I might end up renaming it, though. Thing is, the Weyl algebra of an antisymmetric bilinear form is the most correct analogue of the Clifford algebra known to me (there might be better ones, though) -- far closer than the Weyl algebra of a polynomial ring (which is just the Weyl algebra of the usual antisymmetric form which is
0 1
-1 0
as a block matrix.
I'm okay with renaming the class, but I'd like to keep the global entry point the same. In other words, I'd like to create it via WeylAlgebra(QQ, 4)
, where the absence of the bilinear form says to use the polynomial representation, or perhaps with a keyword such as polynomial=True
. Thanks.
Branch pushed to git repo; I updated commit sha1. New commits:
e9902b9 | Merge branch 'public/algebras/weyl_clifford-15300' of trac.sagemath.org:sage into public/algebras/weyl_clifford-15300 |
There is a stupid __repr__
bug I've no idea how to fix.
sage: A = CliffordAlgebra(QuadraticForm(QQ, 3, [1,0,-1,3,-4,5]))
sage: A.basis()
Finite family {(0, 1): e0*e1, (1, 2): ee2, (0,): e0, (1,): e1, (0, 1, 2): e0*ee2, (2,): e2, (): 1, (0, 2): e0*e2}
See the ee2
? It's an e1*e2
, which the __repr__
routine seems to simplify to ee2
because 1*
can be omitted, right? One way to deal with it would be to not use the multiplication signs; what do you think about that?
(Also, the doctests of lift_isometry
are wrong -- could you compute them by hand and re-insert them? Thank you.)
EDIT: Oh, I see, the bug is in repr_from_monomials
of weyl_algebra.py
, not in some big free-module module.
Branch pushed to git repo; I updated commit sha1. New commits:
9bdf752 | various improvements to clifford_algebra.py |
Branch pushed to git repo; I updated commit sha1. New commits:
9f5bb97 | fix merge |
Branch pushed to git repo; I updated commit sha1. New commits:
ab37f83 | tuple(S) for S a set doesn't always return the increasing list |
Branch pushed to git repo; I updated commit sha1. New commits:
a2354c6 | minor edits |
Branch pushed to git repo; I updated commit sha1. New commits:
8914ccc | further clifford edits |
Initial implementations of Weyl and Clifford algebras.
Depends on #16037
CC: @darijgr @sagetrac-sage-combinat
Component: algebra
Keywords: days54
Author: Travis Scrimshaw
Branch/Commit:
ff27bdc
Reviewer: Darij Grinberg, John Palmieri
Issue created by migration from https://trac.sagemath.org/ticket/15300