Skip to content
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

Complement and degenerate metric #4

Closed
chakravala opened this issue Feb 20, 2019 · 4 comments
Closed

Complement and degenerate metric #4

chakravala opened this issue Feb 20, 2019 · 4 comments

Comments

@chakravala
Copy link
Owner

chakravala commented Feb 20, 2019

The following is a quote of @enkimute from the discussion in #3

check the way he defined the complement and figure out if this may provide a method that works for degenerate metrics in the same unified fashion..

Opening this issue is meant to track ongoing discussions regarding degenerate metrics and complements

@chakravala
Copy link
Owner Author

@Orbots and @enkimute just wanted to let you know that this whole time Grassmann already has support for dual numbers built-in along with DirectSum.jl package.

julia> using Grassmann

julia> basis"ϵ+++"
(⟨ϵ+++⟩, v, vϵ, v₁, v₂, v₃, vϵ₁, vϵ₂, vϵ₃, v₁₂, v₁₃, v₂₃, vϵ₁₂, vϵ₁₃, vϵ₂₃, v₁₂₃, vϵ₁₂₃)

julia> v2*-1vϵ₂

julia> ans*0v

As mentioned in #3 and #10 there is some interest in the complement operation and the degenerate metric

The feature already exists, although I don't know enough about degenerate inner products to really know if it is correct or not, so it is up to you to check this.

However, the degenerate metric feature is not fully advertised yet because I wanted to enhance the behavior of the origin and infinity elements of conformal geometric algebra...

This current definition should be sufficient for dual numbers though, as far as I know currently. Please let me know if you try it out and have some feedback.

@chakravala
Copy link
Owner Author

chakravala commented Feb 28, 2019

Did a test on the degenerate metric in Grassmann and compared with @enkimute Ganja Cheat Sheets

julia> using Grassmann

julia> basis"ϵ"
(⟨ϵ⟩, v, vϵ)

julia> (1+2vϵ)+(3+4vϵ)
4 + 6vϵ

julia> (1+2vϵ)-(3+4vϵ)
-2 - 2vϵ

julia> (1+2vϵ)*(3+4vϵ)
3 + 10vϵ

julia> (1+2vϵ)(3+4vϵ)
3 + 10vϵ

julia> (1+2vϵ)(3+4vϵ)
11 + 6vϵ

julia> (1+2vϵ)(3+4vϵ)
10 + 8vϵ

julia> conj(1+2vϵ)
1 - 2vϵ

julia> complementright(1+2vϵ)
2 + 1

This means that all my results are correct so far except for the inner product should be 3 + 10vϵ

That means there is something I might be doing right, but the inner prodocut not yet.

@chakravala
Copy link
Owner Author

Alright, so if I use the Hodge star (at the moment defined to be complementright) then I do get the correct results for inner product in fact:

julia> ((1+2vϵ)(((3+4vϵ))))
3 + 10

And this is how I techincally defined the inner product in my program too. This means there is a bug in the way I implemented the degenerate metric in the inner product composite method.

I will let you know when I figure out what the bug is, but to answer @enkimute original question, yes it does look like the complementright definition of inner product used should be sound. I should just make sure that my composite implementation also handles the degenerate metric correctly now.

@chakravala
Copy link
Owner Author

As of right now, this issue is considered resolved and higher-order degenerate metrics are now supported via the tangent bundle capability provided by DirectSum version 0.2.1, documentation comes later ~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant