RobinHankin / clifford

5 stars 0 forks source link

is.blade() #13

Open RobinHankin opened 4 years ago

RobinHankin commented 4 years ago

I think if x is a blade then x*rev(x) is a scalar, this could be used to define is.blade()

RobinHankin commented 4 years ago

No, that is incorrect:

> (a <- 1+clifford(list(1:2)))
Element of a Clifford algebra, equal to
+ 1 + 1e_12
> a*rev(a)
Element of a Clifford algebra, equal to
scalar ( 2 )
RobinHankin commented 4 years ago

This diagnostic is incorrect even for homogenous multivectors. Fontijne 2007, "Efficient implementation of geometric algebra", Box Press, page 88, gives:

> (a <- basis(1:3) + basis(4:6))
Element of a Clifford algebra, equal to
+ 1e_123 + 1e_456
> rev(a)*a
Element of a Clifford algebra, equal to
scalar ( 2 )
RobinHankin commented 3 years ago

This is a major research project, closing this issue pending dire need or publication of new methods

hugohadfield commented 3 years ago

You might find the algorithm in GA for Computer Scientists useful for this, its the same one we use here: https://github.com/pygae/clifford/blob/e371de6cf38e3dc184a8b3c17c7c231abfe5b67e/clifford/_multivector.py#L648

RobinHankin commented 3 years ago

thanks for this! I don't think I put any versor functionality in the package. I am not 100% sure I understand the underlying meaning of a multivector being a blade. Do you have a pointer to GA for Computer Scientists? Best wishes, Robin

hugohadfield commented 3 years ago

No problem! Here is a link to the webpage for the book http://www.geometricalgebra.net/ , its probably the most useful textbook on the stuff for people with engineering/comp sci background. I find browsing the associated source code is pretty useful often as well http://www.geometricalgebra.net/reference_impl.html . And here is a science direct link: https://www.sciencedirect.com/book/9780123694652/geometric-algebra-for-computer-science Not sure what other books you are working with at the moment but if you haven't come across them before you might find some useful stuff in the other classic textbooks: Geometric Algebra for Physicists (https://www.cambridge.org/core/books/geometric-algebra-for-physicists/FB8D3ACB76AB3AB10BA7F27505925091), Clifford Algebras and Spinors (https://www.cambridge.org/core/books/clifford-algebras-and-spinors/8318F7DD5B5DE06B30BC612BB5617021) and the paper collection: Guide to Geometric Algebra in Practice (https://www.springer.com/gp/book/9780857298102)

Re. blades, a multivector is a blade when it is constructable from the outer product of 1-vectors, and typically blades are important because they are practically useful. In lots of algebras the blades are imbued with some underlying geometric significance and often the things we are wedgeing together are points, eg. in Cl(4,1,0) if we take the outer product of three points we get something that can represent a circle etc.. In general not all pure grade multivectors are blades, you can take linear combinations of blades and the result is only a blade in specific circumstances (https://link.springer.com/article/10.1007/s00006-019-1003-y )

Cool to see an R package for Clifford algebras :)

RobinHankin commented 3 years ago

Hi again, thanks for this. I've been meaning to work on the package for a while now. To me, Clifford algebras are interesting mathematical objects associated with R^n for arbitrary (high) n and as such are a perfect application of the STL map class in C++. The fact that clifford objects are actually useful was unexpected to me! My motivation is to provide Clifford algebra functionality in an R environment. I'm a statistician really and one of my interests is probability distributions on awkward sets which have a lot of structure. The problem is that this structure typically does not play nicely with the usual tenets of probability theory.

I had a look at your excellent paper with Joan Lasenby which reminds me that she took one of my supervisions when I was an undergraduate. I've been meaning to write to her, although I'm a bit intimidated: I was a very bad student and she would be unlikely to remember me.

Best wishes from NZ

Robin

hankin.robin@gmail.com

On Mon, Aug 31, 2020 at 11:27 PM hugohadfield notifications@github.com wrote:

No problem! Here is a link to the webpage for the book http://www.geometricalgebra.net/ , its probably the most useful textbook on the stuff for people with engineering/comp sci background. I find browsing the associated source code is pretty useful often as well http://www.geometricalgebra.net/reference_impl.html . And here is a science direct link: https://www.sciencedirect.com/book/9780123694652/geometric-algebra-for-computer-science Not sure what other books you are working with at the moment but if you haven't come across them before you might find some useful stuff in the other classic textbooks: Geometric Algebra for Physicists ( https://www.cambridge.org/core/books/geometric-algebra-for-physicists/FB8D3ACB76AB3AB10BA7F27505925091), Clifford Algebras and Spinors ( https://www.cambridge.org/core/books/clifford-algebras-and-spinors/8318F7DD5B5DE06B30BC612BB5617021) and the paper collection: Guide to Geometric Algebra in Practice ( https://www.springer.com/gp/book/9780857298102)

Re. blades, a multivector is a blade when it is constructable from the outer product of 1-vectors, and typically blades are important because they are practically useful. In lots of algebras the blades are imbued with some underlying geometric significance and often the things we are wedgeing together are points, eg. in Cl(4,1,0) if we take the outer product of three points we get something that can represent a circle etc.. In general not all pure grade multivectors are blades, you can take linear combinations of blades and the result is only a blade in specific circumstances (https://link.springer.com/article/10.1007/s00006-019-1003-y )

Cool to see an R package for Clifford algebras :)

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/RobinHankin/clifford/issues/13#issuecomment-683721661, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADFFZUWEQDPTLBKGFG4FMV3SDOCITANCNFSM4KB5WRFQ .