Damus
Dan Piponi profile picture
Dan Piponi
@Dan Piponi
Bicomplex numbers in the wild ℂ⊗ℂ

Complex numbers are sometimes very convenient as a coordinate for 2D fluid dynamics. Complex numbers are also useful for reasoning about oscillatory perturbations to a fluid. You can use both at the same time but you need to take care because you're now working with two completely distinct square roots of -1. You can simply give the two numbers different names i and j but what you're really doing is working in the tensor product ℂ⊗ℂ. I was interested to see a paper on exactly this topic [1].

I mention this because it's exactly the structure you get in many programming languages when you iterate the complex number type constructor, eg. Complex (Complex Double) or complex<complex<double>>. As I mentioned in [2] you don't just get the vector space tensor product but you get the correct algebraic structure "for free". In fact, it's entirely possible to write generic code to work separately with complex coordinates and complex perturbations that makes the compiler build the bicomplex algebra under the hood without the user even realising.

[1] https://arxiv.org/abs/2203.05857
[2] https://blog.sigfpe.com/2026/04/introduction-i-want-to-return-to.html

(I should have said ℂ⊗_ℝ ℂ but it's unwieldy in Unicode.)
1
Stephen Brooks 🦆 · 1w
nostr:nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpqc9m22hkc5h6zgrwkz48crhcpw6vch2rf6j97746ugl3neys86jeqwtg0zc When I first saw ℂ⊗ℂ I thought "well, it's a decimal expansion N -> 10" and then "this tensor product must be something like N^2 -> 10 i.e. a two-dimensional decimal expansion". I...