-
-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Universal pseudoscalar I and × cross product #10
Conversation
Codecov Report
@@ Coverage Diff @@
## master #10 +/- ##
=========================================
- Coverage 24.19% 23.69% -0.5%
=========================================
Files 7 7
Lines 1236 1266 +30
=========================================
+ Hits 299 300 +1
- Misses 937 966 +29
Continue to review full report at Codecov.
|
You already have the pseudo scalar represented as the highest grade basis vector. e.g. The sign of |
aside from a more explicit representation of the pseudoscalar I'd like to see a operator for the geometric algebra dual, which is ( up to a sign ) the Hodge Dual. Could look like this: which gives you the quaternion basis
|
I may be mixing some stuff up here. I have to admit to being a little confused on the difference and relationships between the geometric dual, involutions, orthogonal complements, conj, etc. |
This pull request also defines this new function hyperplanes(V::VectorSpace{N}) where N = map(n->I*getbasis(V,1<<n),0:N-1) which does basically what your Hodge star does julia> hyperplanes(ℝ^3)
3-element Array{SValue{⟨+++⟩,2,B,Int64} where B,1}:
-1v₂₃
1v₁₃
-1v₁₂ so that will be available after I merge this (here I still used the other interpretation of sign) Alright, so Then the Hodge star can map to a single element, because I don't believe it returns a set. |
The GA form of the hodge star operator there takes a blade with grade (n-r) and returns a blade with grade r. That's for another pull request I figure. Cheers. |
Not sure if you are aware of julia> complementright(v13)
-1v₂
julia> ⋆(v13+v12)
0v₁ - 1v₂ + 1v₃ This is on the current release of julia> ⋆(v1+v2+v3)
1v₁₂ - 1v₁₃ + 1v₂₃ should it be the negative of the |
I had seen the complementleft/right methods. I hadn't noticed the star operator since with a small font it looks like ⋅ unless you squint |-) That's great. What is the definition of complementleft and right? I appears to be the effect of mulitplying ( via geometric product ) with the pseudoscalar from left or right side. What is the source material you are pulling from most often? The differences between Grassmann, Clifford, exterior and Geometric Algebra can be pretty subtle. For the GA dual ( on a versor: https://en.wikipedia.org/wiki/Geometric_algebra#Versor ) would use complementleft. The hodge star is closer to Grassmann algebra than GA isn't it? It could be they differ by a sign. You do need a scale there though for it to really be a hodge star ( norm of the metric )? However you define it is fine with me as there should be a simple isomorphism to whatever form of exterior product enhanced algebra the user wants. |
Definition of It turns out that this definition of complement is same as multiplying by a pseudoscalar on left or right. julia> ⋆(Λ(V"-+++").v1), ⋆(Λ(V"++++").v1)
(-1v₂₃₄, v₂₃₄) I also mentioned about the Hodge dual in issue #2 and in this case the norm of metric would be ±1 and the Hodge dual should be made up of a product of the metric signs and in fact my definition of complement also takes the metric like this also into account. So my definition of julia> Λ(V"-+++").v1 ∧ complementright(Λ(V"-+++").v1)
-1v₁₂₃₄ Which means that the Hodge star / Should the complement and Hodge definitions be separated? There are two aspects we are discussing, there is the complement and there is the additional sign change with metric. |
My primary reference for GA is: http://www.faculty.luther.edu/~macdonal/laga/ Ok, I see. I've only really be thinking of "+" basis vectors. Where the metric is trivial. Not sure all the dual properties hold in non-"+" spaces. i.e. That's all I got 😃 Not sure I can constructively comment until I've read a bit more. I am keen on seeing non-trivial metrics sorted out though as I have some applications I'd like to explore with dual quaternions ( degenerate metric ). |
The |
As pointed out in the literature cited by @Orbots in #5 there is an interest in a generalized notation for the pseudoscalar quantity, sometimes written as
i
orI
by various authors.In this pull request, the goal is to debate and discuss the interpretation of
I
or-I
with its signed value.As it happens,
I
is also defined in Julia'sLinearAlgebra
libraryand it is a
UniformScaling
type in generalThis pull request implements an interpretation of
UniformScaling
as a universal pseudoscalar element, which in correspondence with the new version of AbstractTensors.jl v0.1.4 just released enables full algebraic interoperability ofUniformScaling
andI
as a universal pseudoscalar.There is one question about it however; because the value of
I
is by default a signed interpretationas you can see, the default
I
holds aBool
sign value of true, thus I have also taken the liberty of defining the default signedI
as having a minus sign attached to it.The advantage of defining the signed
I
with its signed interpretation is that it helps with hyperplaneswhere the multiplication on the left by
I*x
has the effect of-complementright(x)
.This is then also useful for making the generalized definition of cross product
which also requires a negative sign interpretation (here already built-in).
This sign value might be confusing to some onlookers though, who are not familiar with the sign value associated to the
UniformScaling
and how it is interpreted in geometric algebra.What do you think is the best interpretation of it here? I think the sign value is a good way to interpret it.
requesting feedback from @enkimute @arsenovic @hugohadfield