Skip to content

Port G(p, q, r) from GAlgebra.jl #395

@utensil

Description

@utensil

See https://github.com/pygae/GAlgebra.jl/blob/master/src/ga.jl

Discussion on Slack:

Eric Wieser 21 minutes ago
Perhaps as Ga.from_sig?

Eric Wieser 19 minutes ago
Although I assume you also want a convenient shorthand

Eric Wieser 19 minutes ago
Question is, should it behave like Ga.build and also return the basis vectors?

utensil 19 minutes ago
OK, but I also want a API that resembles G(p, q, r) as we call it in daily life

Eric Wieser 19 minutes ago
Clifford has ga, blade_dict = Cl(p, q, r), for comparison

Eric Wieser 18 minutes ago
Which in my opinion was a mistake, we should have made it ga = Cl(p, q, r)

Eric Wieser 18 minutes ago
I'm not opinionated on Cl vs G

utensil 18 minutes ago
I'd like it to just return the ga as one would expect intuitively (edited)

Eric Wieser 17 minutes ago
My worry is that G is a bit too short, unless you want users to use it as galgebra.G

utensil 17 minutes ago
Cl is a constructor (edited)

Eric Wieser 17 minutes ago
What do you mean by that?

utensil 16 minutes ago
If we do the same thing, then it's Ga(p, q, r) ... (edited)

Eric Wieser 15 minutes ago
Cl is not a constructor in clifford.

utensil 15 minutes ago
Oh

Eric Wieser 14 minutes ago
clifford.Layout is our galgebra.Ga, roughly

utensil 14 minutes ago
Yeah, just check the code

Eric Wieser 13 minutes ago
In theory, we could spell it Ga(sig=(p, q, r))

Eric Wieser 13 minutes ago
We already have a sig argument to Ga, it just doesn't make any sense at the moment

Eric Wieser 12 minutes ago
And we could make basis optional, inferring it as e_n from either g or sig

Eric Wieser 11 minutes ago
But that's probably more work than adding Ga.from_sig(p, q, r), Ga.of_sig(p, q, r), or perhaps something wacky like Ga[p, q, r] (edited)

utensil 10 minutes ago
I don't want to mess with the current constructor further (edited)

utensil 10 minutes ago
it's already an overhead for callers

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions