9
$\begingroup$

Question: Is there a reasonably efficient algorithmic representation of $\mathit{Spin}_n$? By this I mean, a way to store its elements and operate on them (multiply, inverse, maybe compute exponentials from the Lie algebra, and also some kind of distance to the origin; essentially, those operations we can do in $\mathit{SO}_n$) that does not involve an exponential complexity in $n$?

Discussion:

  • One way to represent elements of $\mathit{Spin}_n$ is by their action on spinors, i.e., on the spin representation; but then they are matrices of size $2^{\lfloor n/2\rfloor}$, which grows exponentially with $n$. This is a rather unsatisfactory state of affairs for an object which stores merely one more bit of information than an element of $\mathit{SO}_n$ (so the latter can be represented by a matrix of size merely $n\times n$). The question is whether we can do with less, and how.

  • If the issue is merely to store an element $g$ of $\mathit{Spin}_n$, we can indeed do better: fixing once and for all a maximal torus $T \subseteq \mathit{Spin}_n$, say the inverse image in $\mathit{Spin}_n$ of the torus of $\mathit{SO}_n$ consisting of rotation matrices which are block diagonals of $2\times 2$ rotation matrices with angles $\theta_1,\ldots,\theta_{\lfloor n/2\rfloor}$, we can describe $g$ by giving a rotation $r \in \mathit{SO}_n$ which¹ conjugates $g$ into $T$ and an element $t = r g r^{-1}$ of $T$, itself represented by $\lfloor n/2\rfloor$ rotation angles $\theta_1,\ldots,\theta_{\lfloor n/2\rfloor}$, each defined mod $4\pi$, but mod adding $2\pi$ to any even number of these angles; so the data of $r$ and the $\theta_i$ defines $g$ (this representation is not unique, but it's not hard to decide when two are equal). The problem with this representation is that I can't see any way to multiply them; so a specific form of my question might be: how do we multiply elements of $\mathit{Spin}_n$ written in the “standard” form I just described?

  1. A priori we need to take $r \in \mathit{Spin}_n$, but given $r \in \mathit{SO}_n$, the two $\tilde r$ which lift it to $\mathit{Spin}_n$ differ by a central element, so $\tilde r g \tilde r^{-1}$ is the same in either case, and by abuse of notation I call this $r g r^{-1}$.

Note: In the above, $\mathit{Spin}_n$ is implicitly taken to be the compact real form of the Lie group. I omit any discussion concerning how to represent real numbers in a computer: one possible way to make the question more precise is to say that I am, in fact, really talking about $\mathit{Spin}_n$ over the field of real algebraic numbers (which can then be represented exactly by computer), and/or that the complexity is taken to be a black-box complexity in terms of algebraic operations on the coefficients. But beyond the real numbers, I'm also interested in comments or answers on how to represent elements of (the various algebraic forms of) $\mathit{Spin}_n$ over any field.

$\endgroup$
5
  • $\begingroup$ I think you could also express the elements in terms of the root system (Steinberg/Chevalley relations etc). $\endgroup$
    – spin
    Commented Apr 28, 2022 at 13:57
  • $\begingroup$ @spin: Over the reals, I suspect this would amount to my second point (the angles $\theta_1,…,\theta_{⌊n/2⌋}$ mod $4\pi$ each and mod $2\pi$ for an even number are a parametrization of the Cartan subalgebra mod the weight lattice of the root system $B_{⌊n/2⌋}$ or $D_{⌊n/2⌋}$). But I'm not sure. $\endgroup$
    – Gro-Tsen
    Commented Apr 28, 2022 at 14:44
  • $\begingroup$ Can't you represent $Spin(n)$ using the cocycle for the central extension? $\endgroup$ Commented Apr 28, 2022 at 18:50
  • $\begingroup$ @AaronBergman Possibly! But the question is then: how do we represent the cocycle algorithmically? (Note that, AFAICT, we don't need to represent just the class of the cocycle, but the actual cocycle itself, for a given section of the projection $\mathit{Spin}_n \to \mathit{SO}_n$.) $\endgroup$
    – Gro-Tsen
    Commented Apr 29, 2022 at 13:17
  • $\begingroup$ Maybe one could represent elements of $Spin_n$ as products of vectors of norm $1$ in the Clifford algebra. The map to $SO_n$ is simply by mapping to a reflection. To multiply, first multiply in $SO_n$ and reconstruct a representation as a product of reflections. Then there is a sign ambiguity in $Spin_n$, so the question is: given a product of vectors mapping to $1$ in $SO_n$, determine which of $\pm 1$ the product is. Expanding the product in a basis is costly ($2^n$) but maybe one can construct a loop in $SO_n$ such that its class in $\pi_1$ gives the sign? $\endgroup$
    – Aurel
    Commented Apr 30, 2022 at 12:14

1 Answer 1

4
$\begingroup$

OK, I think I figured this out. If I am not mistaken, basically you can use decomposition into a product of reflections, and then improve this to take the signs into account. This gives a $\mathcal{O}(n^3)$ algorithm for multiplication - as good as naïve matrix multiplication.

Let me first describe an algorithm for representing (and multiplying) elements of the group* $\operatorname{O}(n)$. And then I will explain how I think it can be adapted to $\operatorname{Pin}^\pm(n)$.


A presentation of $\operatorname{O}(n)$: We start with the well-known fact that $\operatorname{O}(n)$ is generated by reflections. More precisely, for each unit vector $u \in \mathbb{S}(\mathbb{R}^n)$, let $\sigma_u$ denote the reflection through the hyperplane orthogonal to $u$. (Of course it is more appropriate to parametrize these hyperplanes by the projective space $\mathbb{P}(\mathbb{R}^n)$; but the unit sphere $\mathbb{S}(\mathbb{R}^n)$ is more convenient for concrete algorithmic representation, and will in fact be necessary for the Pin groups --- see below).

Then $\operatorname{O}(n)$ is generated by this set $\{\sigma_u | u \in \mathbb{S}(\mathbb{R}^n)\}$, and presented by the following relations:

  1. $\forall u \in \mathbb{S}(\mathbb{R}^n),\quad \sigma_u^2 = \operatorname{Id}$;
  2. $\forall u \in \mathbb{S}(\mathbb{R}^n),\quad \sigma_{-u} = \sigma_u$;
  3. $\forall u, v \in \mathbb{S}(\mathbb{R}^n)$ s.t. $\langle u, v \rangle = 0$ and $\forall (\alpha, \beta), (\alpha', \beta') \in \mathbb{S}(\mathbb{R}^2)$, $$\sigma_{\alpha u + \beta v} \sigma_u = \sigma_{(\alpha \alpha' - \beta \beta')u + (\alpha \beta' + \alpha' \beta)v} \sigma_{\alpha' u + \beta' v}.$$

(The last relation is basically about the fact that the product of two distinct reflections is a rotation, but that the decomposition of a rotation into such a product is not unique.)

Canonical form in $\operatorname{O}(n)$: We now define a canonical form for an element $g \in \operatorname{O}(n)$ as a product $$g = x_1 x_2 \cdots x_n$$ with each $x_i$ lying in the set $R_i$ (or, if you prefer, the smaller set $R^+_i$), which, by definition, comprises $\operatorname{Id}$ and all the reflections $\sigma_u$ with respect to vectors $u$ whose first $i-1$ coordinates all vanish, and whose $i$-th coordinate is nonzero (resp. positive).

It is then easy to see that this canonical form is unique (up to sign if using $R_i$, and completely unique if using $R_i^+$). Indeed, $x_i$ can be computed as the unique (up to sign) element of $R_i$ that sends the vector $f_i = x_{i-1} \cdots x_1 g \cdot e_i$ (guaranteed by induction to be orthogonal to $e_1, \ldots, e_{i-1}$) to $e_i$. Even more explicitly, it is equal to $\operatorname{Id}$ if $e_i = f_i$, and to the reflection about $\frac{e_i - f_i}{\|e_i - f_i\|}$ otherwise.

The multiplication algorithm for $\operatorname{O}(n)$: To explain how to multiply two canonical forms, it suffices to explain how to multiply on the left a canonical form $x_1 x_2 \cdots x_n$ by an arbitrary reflection $\sigma_u =: y_1$. We convert the product $y_1 x_1 \cdots x_n$ to canonical form step by step, in the following way: $$y_1 x_1 x_2 \cdots x_n \\ = x'_1 y_2 x_2 \cdots x_n \\ = \vdots \\ = x'_1 x'_2 \cdots x'_n y_{n+1},$$ while ensuring that, at each step, $x'_i$ still belongs to $R_i$, and furthermore $y_i$ belongs to $R_i \cup R_{i+1} \cup \ldots \cup R_{n+1}$ (with the obvious convention $R_{n+1} = \{\operatorname{Id}\}$). In the end, we are thus reduced to $y_{n+1} = \operatorname{Id}$ that we can discard, and we are left with $x'_1 x'_2 \cdots x'_n$ which is in canonical form.

More precisely, the $i$-th step (converting $y_i x_i$ to $x'_i y_{i+1}$) works as follows:

  • If $y_i$ is already equal to $\operatorname{Id}$, simply set $x_i' = x_i$ and $y_{i+1} = \operatorname{Id}$.
  • If $x_i = \operatorname{Id}$, set $x'_i = y_i$ and $y_{i+1} = \operatorname{Id}$.
  • If $y_i x_i = \operatorname{Id}$, set $x'_i = \operatorname{Id}$ and $y_{i+1} = \operatorname{Id}$.
  • Otherwise, we have $y_i = \sigma_w$ and $x_i = \sigma_u$ for some linearly independent unit vectors $u \in (0, \ldots, 0, \mathbb{R}^*, \mathbb{R}, \ldots, \mathbb{R})$ and $w \in (0, \ldots, 0, \mathbb{R}, \mathbb{R}, \ldots, \mathbb{R})$. Consequently we can express $w$ as $\alpha u + \beta v$, for some unit vector $v \in (0, \ldots, 0, \mathbb{R}, \mathbb{R}, \ldots, \mathbb{R})$ orthogonal to $u$ and for some $(\alpha, \beta) \in \mathbb{S}(\mathbb{R}^2)$. We then apply the relation 3 above, adjusting the pair $(\alpha', \beta')$ so as to make the $i$-th coordinate of $\alpha' u + \beta' v$ vanish. This choice is then unique (up to sign), and one can verify that the $i$-th coordinate of the new $x'_i$ cannot vanish.

A presentation of $\operatorname{Pin}^\pm(n)$: now, in any of these two double covers, each reflection $\sigma_u = \sigma_{-u} \in \operatorname{O}(n)$ has two lifts. One can easily verify that there exists a natural (one-to-one) parametrization of the set of these lifted reflections by $\mathbb{S}(\mathbb{R}^n)$, i.e. we may call the two lifts $\tilde{\sigma}_u$ and $\tilde{\sigma}_{-u}$ (which are now distinct!).

Now if I am not mistaken (this is the part where I am only like 80% confident: please double-check!!), the group $\operatorname{Pin}^\pm(n)$ is presented, over this set $\{\tilde{\sigma}_u | u \in \mathbb{S}(\mathbb{R}^n)\}$, by a very similar set of relations:

  1. $\forall u \in \mathbb{S}(\mathbb{R}^n),\quad \tilde{\sigma}_u^2 = +\operatorname{Id}$ (for $\operatorname{Pin}^+$) or $-\operatorname{Id}$ (for $\operatorname{Pin}^-$);
  2. $\forall u \in \mathbb{S}(\mathbb{R}^n),\quad \tilde{\sigma}_{-u} = -\operatorname{Id} \cdot \tilde{\sigma}_u$;
  3. exactly verbatim as for $\operatorname{O}(n)$ (just add tildas).

Canonical form in $\operatorname{Pin}^\pm(n)$: We can then similarly define a canonical form for an element $g \in \operatorname{Pin}^\pm(n)$ as a product $$g = x_1 x_2 \cdots x_n,$$ with each $x_i$ lying in the set $$\tilde{R}_i := \{\pm \operatorname{Id}\} \cup \{\tilde{\sigma}_u | \sigma_u \in R_i\}.$$ The canonical form is then once again unique, up to changing the sign of an even number of factors. Alternatively, to avoid this ambiguity, you may use the smaller set $$\tilde{R}^+_i := \{\operatorname{Id}\} \cup \{\tilde{\sigma}_u | \sigma_u \in R^+_i\}:$$ you then get a completely unique canonical form, at the expense of adding an extra bit of information to keep track of the global sign: i.e. it then looks like $$g = (\pm \operatorname{Id}) x_1 x_2 \cdots x_n.$$

The multiplication algorithm for $\operatorname{Pin}^\pm(n)$ is then a completely straightforward generalization of the algorithm for $\operatorname{O}(n)$ (at least assuming that the presentation I have given is correct): just replace $\operatorname{Id}$ by $\pm \operatorname{Id}$ as needed.


* I apologize for the confusion between the big-O notation $\mathcal{O}(n^3)$ and the name of the orthogonal group $\operatorname{O}(n)$ - the Context Club, as Gro-Tsen calls it, must be laughing really hard on this one.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .