Hi @newpavlov, thanks for the question, it’s a good one.

The formulas on the cheat sheet are limited to lines, not general bivectors. Recall that a line is a bivector \ell such that \ell \wedge \ell = 0. That’s equivalent to the condition that \ell\widetilde{\ell} \in \mathbb{R}. Then the normalization formulas work.

The situation with a general bivector as you point out is more complicated since for a non-simple bivector \Sigma, \Sigma\widetilde{\Sigma} = s + p\textbf{I} where p\neq 0. What is usually done for the general bivector is to compute its axis, which is a line \ell such that \Sigma = (c+d\mathbf{I})\ell. That essentially decomposes \Sigma into two lines, one of which, c\ell, is euclidean and the other which, (d\ell)\mathbf{I}, is ideal, such that the ideal line is perpendicular to the euclidean line (like the equator is perpendicular to the north pole). That’s the special form needed to exponentiate a bivector to produce a rotor for a screw motion: the rotor will rotate around \ell while at the same time translating along \ell. The ratio \dfrac{d}{c} is called the pitch of the screw and expresses the ratio of the translation motion to the rotation motion. Consult Sec. 8.1.3 of the course notes to find out more about the axis, and 8.1.6 to find out about exponentiation of bivectors.

Then I think you will recognize that the formula on the cheat sheet that calculates the logarithm of a rotor also contains, somewhat hidden, the calculations needed to calculate the axis of its bivector part.

Using a simple bivector, that is, a line, to create a rotor will produce a pure rotation about the line when it is euclidean (pitch 0), and a translation when the line is ideal (pitch \infty).