Grassmann.jl icon indicating copy to clipboard operation
Grassmann.jl copied to clipboard

More elegant way to access `v1` programmatically?

Open eschnett opened this issue 5 years ago • 1 comments

I am using projective or conformal bases, such as

julia> S = S"∞++"
julia> B = Λ(S)

I want to write dimension-generic code, and want to access the i-th basis vector. Unfortunately, Grassmann counts starting from v∞, so that v₁ is B.v(2) etc. It would be more convenient if B.v(1) returned v1, independent of whether v∞ or v∅ were present. I currently have to write B.v(i+1) or B.v(i+2), depending on the basis.

I realize this would be a breaking change, and obviously this is not an urgent feature request.

eschnett avatar Apr 30 '20 14:04 eschnett

As it turns out, the space S"∞++" is isomorphic to ℝ^3, aside from having a dedicated index for the up and down projection of the Riemann sphere. Therefore, it should be trivial for you to simply switch to using the ℝ^3 space instead of S"∞++" if it is the basis ordering which you don't like. By switching to the ℝ^3 you can pick v3 as your projection basis instead.

The only difference is that ℝ^3 does not currently have an automatic up and down projection method defined for it, thus you'll have to define your own method.

chakravala avatar Apr 30 '20 22:04 chakravala