Public
Edited
May 29, 2022
Insert cell
# g-numbers

From [here](https://arxiv.org/pdf/1905.08102.pdf)

* ${tex`𝐚^2 = 𝐛^2 = 0`}
* ${tex`2𝐚⋅𝐛 ≡ 𝐛𝐚 + 𝐚𝐛 = 1`}
* ${tex`𝐚𝐛𝐚 = (1 - 𝐛𝐚) 𝐚 = 𝐚 - 𝐛𝐚^2 = 𝐚`}
* ${tex`(𝐚𝐛)(𝐛𝐚) = 0 = (𝐛𝐚)(𝐚𝐛)`}


---

Also from [here](https://www.garretstar.com/hyprevisited12-17-2017.pdf) (in slightly different order, mostly re: idempotents).
And some craziness from [here](https://www.garretstar.com/sobczyk09-mar-2020.pdf), largely around the Clifford clock, and building up any G_p,q from standard basis.


Multiplication table, reordered for bidiagonal blocks:
~~~
× 𝐛𝐚 𝐚 𝐛 𝐚𝐛
𝐛𝐚 𝐛𝐚 0 𝐛 0
𝐛 0 𝐛𝐚 0 𝐛
𝐚 𝐚 0 𝐚𝐛 0
𝐚𝐛 0 𝐚 0 𝐚𝐛
~~~

Another alternative, reordered as a direct sum:
~~~
× 𝐚𝐛 𝐚 𝐛 𝐛𝐚
𝐚𝐛 𝐚𝐛 𝐚 0 0
𝐛 𝐛 𝐛𝐚 0 0
𝐚 0 0 𝐚𝐛 𝐚
𝐛𝐚 0 0 𝐛 𝐛𝐚
~~~

Insert cell
lift_scalar = (p, q) => (q ? Math.sign(q) * ((p || 0) % Math.abs(q)) : (p || 0))
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
reversion = (g_) => {
const g = lift(g_);
return lift({
ba: g.ab,
b: g.b,
a: g.a,
ab: g.ba
});
}
Insert cell
Insert cell
Insert cell
inversion = (g_) => {
const g = lift(g_);
return lift({
ba: g.ba,
b: -g.b,
a: -g.a,
ab: g.ab
});
}
Insert cell
Insert cell
Insert cell
star = (g) => inversion(reversion(g))
Insert cell
Insert cell
Insert cell
tr = (g_) => {
const g = lift(g_);
return lift_scalar(g.ba + g.ab);
}
Insert cell
Insert cell
Insert cell
det = (g_) => {
const g = lift(g_);
return lift_scalar(g.ba * g.ab - g.b * g.a);
}
Insert cell
Insert cell
Insert cell
## Arithmetic
Insert cell
Insert cell
add = (f_, g_) => {
const f = lift(f_);
const g = lift(g_);
return lift({
ba: f.ba + g.ba,
b: f.b + g.b,
a: f.a + g.a,
ab: f.ab + g.ab
});
}
Insert cell
Insert cell
multiply = (f_,g_) => {
const f = lift(f_)
const g = lift(g_)
return lift({
ba: f.ba * g.ba + f.b * g.a,
b: f.ba * g.b + f.b * g.ab,
a: f.a * g.ba + f.ab * g.a,
ab: f.a * g.b + f.ab * g.ab,
})
}
Insert cell
reversion([-3, -4, 2, 11])
Insert cell
Insert cell
controls
Insert cell
plot
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more