indexes of clifford objects
Hi! When compiling GiNaC with -DDO_GINAC_ASSERT, exam_clifford.cpp fails the test suite because clifford.cpp:105, assertion `is_a<varidx>(mu)' is violated. The function clifford_moebius_map constructs a clifford unit with an idx, not a varidx, if G is a matrix. The code in question was written by Vladimir in 2006. From a physicists point of view, I thought that it doesn't make sense to construct a clifford object with an idx instead of a varidx. But then, what's clifford_moebius_map doing? On the other hand, I also noticed that the tutorial does include examples of clifford objects with idx indices in section "A generic Clifford algebra". Strange. If someone with more insight could shed a light on this I could finish my recent quest to make GiNaC pass its test suite even when compiled with -DDO_GINAC_ASSERT. That would be great. Cheers -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
Dear Richard,
On Sun, 05 Jun 2011 00:19:51 +0200, "Richard B. Kreckel" <kreckel@ginac.de> said: RK> From a physicists point of view, I thought that it doesn't make RK> sense to construct a clifford object with an idx instead of a RK> varidx.
There are several mathematical frameworks leading to Clifford algebras. Most elementary one is a free algebra with n generators factorised by an ideal of the quadratic (anticommuting) relations. From that perspective generators of the Clifford algebra are not required to be even indexed objects at all. You may call them simply a, b, c,... as long as you able to make manipulations like ab=-ba, a^2=-1, etc. RK> If someone with more insight could shed a light on this I could RK> finish my recent quest to make GiNaC pass its test suite even RK> when compiled with -DDO_GINAC_ASSERT. That would be great. However, I do not see a practical obstacle to change the GiNaC code to permit varidx only as indices in the clifford class. Best wishes, Vladimir -- Vladimir V. Kisil email: kisilv@maths.leeds.ac.uk -- www: http://www.maths.leeds.ac.uk/~kisilv/
Dear Vladimir, On 06/05/2011 06:55 AM, Vladimir V. Kisil wrote:
On Sun, 05 Jun 2011 00:19:51 +0200, "Richard B. Kreckel"<kreckel@ginac.de> said: RK> From a physicists point of view, I thought that it doesn't make RK> sense to construct a clifford object with an idx instead of a RK> varidx.
There are several mathematical frameworks leading to Clifford algebras. Most elementary one is a free algebra with n generators factorised by an ideal of the quadratic (anticommuting) relations. From that perspective generators of the Clifford algebra are not required to be even indexed objects at all. You may call them simply a, b, c,... as long as you able to make manipulations like ab=-ba, a^2=-1, etc.
Thanks for the concise reminder.
RK> If someone with more insight could shed a light on this I could RK> finish my recent quest to make GiNaC pass its test suite even RK> when compiled with -DDO_GINAC_ASSERT. That would be great.
However, I do not see a practical obstacle to change the GiNaC code to permit varidx only as indices in the clifford class.
That, as opposed to making the clifford constructor accept both varidx and idx, would require changes to clifford_moebius_map and to the tutorial. Either way, can you recommend a patch? -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
Hello, On Sun, Jun 05, 2011 at 05:55:11AM +0100, Vladimir V. Kisil wrote:
RK> From a physicists point of view, I thought that it doesn't make RK> sense to construct a clifford object with an idx instead of a RK> varidx.
There are several mathematical frameworks leading to Clifford algebras. Most elementary one is a free algebra with n generators factorised by an ideal of the quadratic (anticommuting) relations. From that perspective generators of the Clifford algebra are not required to be even indexed objects at all. You may call them simply a, b, c,... as long as you able to make manipulations like ab=-ba, a^2=-1, etc.
RK> If someone with more insight could shed a light on this I could RK> finish my recent quest to make GiNaC pass its test suite even RK> when compiled with -DDO_GINAC_ASSERT. That would be great.
However, I do not see a practical obstacle to change the GiNaC code to permit varidx only as indices in the clifford class.
I don't think this artificial restrictions is a good idea. Why don't we remove that bogus assertion instead? Best regards, Alexei
Dear Alexei,
On Sat, 11 Jun 2011 15:38:54 +0000, Alexei Sheplyakov <alexei.sheplyakov@gmail.com> said: ASh> I don't think this artificial restrictions is a good idea. Why ASh> don't we remove that bogus assertion instead?
I do not qualify to participate in this discussion due to my limiting knowledge in software design. As a user I think that admitting idx make life easier, however I can survive if it will be restricted to varidx. Best wishes, Vladimir -- Vladimir V. Kisil email: kisilv@maths.leeds.ac.uk -- www: http://www.maths.leeds.ac.uk/~kisilv/
On 06/11/2011 07:10 PM, Vladimir V. Kisil wrote:
On Sat, 11 Jun 2011 15:38:54 +0000, Alexei Sheplyakov<alexei.sheplyakov@gmail.com> said: ASh> I don't think this artificial restrictions is a good idea. Why ASh> don't we remove that bogus assertion instead?
I do not qualify to participate in this discussion due to my limiting knowledge in software design. As a user I think that admitting idx make life easier, however I can survive if it will be restricted to varidx.
Oh, in this case, I am sure this is not a question of software design! It depends on how useful a clifford with idx is in practice. You are saying that allowing idx makes life easier. Well, I think this settles it. -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
On Sun, 12 Jun 2011 00:01:49 +0200, "Richard B. Kreckel" <kreckel@ginac.de> said: RK> It depends on how useful a clifford with idx is in practice. You RK> are saying that allowing idx makes life easier.
Yes, in the simplistic approach to Clifford algebra there is no need to assign any covariance to indexes: they are simply labels to distinguish different generators. RK> Well, I think this settles it. OK, then you can discharge the previous patch. Best wishes, Vladimir -- Vladimir V. Kisil email: kisilv@maths.leeds.ac.uk -- www: http://www.maths.leeds.ac.uk/~kisilv/
Hi! On 06/12/2011 01:57 PM, Vladimir V. Kisil wrote:
Yes, in the simplistic approach to Clifford algebra there is no need to assign any covariance to indexes: they are simply labels to distinguish different generators.
Great! I've patched it. Thanks a lot. Sadly, it turns out that clifford_check6 triggers yet another assertion, this time in clifford.cpp:1249. There, ex_to<indexed>(e.op(j)), however e.op(j) is actually a power object! It seems to have been introduced by b4631c1661b1, see <http://www.ginac.de/pipermail/ginac-devel/2004-October/000708.html>. Any idea? -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
participants (3)
-
Alexei Sheplyakov
-
Richard B. Kreckel
-
Vladimir V. Kisil