Alright I was thinking about this in the context of what does a general-relativistic frame mean (in contrast to a special-relativistic one which is only composed of rotations (skew-symmetric, i.e. exp map of antisymmetric generator)
and Lorentz boosts (basically the same thing except with a hyperbolic rotation (i.e. symmetric generator ) instead of regular rotation).
And somewhere I searched and found someone who was just trying to interpolate 3x3 rotations and found that if he LERP'd the individual coefficients of $a_{ij}$ then he got something ugly ... I found it on stackexchange, maybe I can link it ...
he was probably just doing rotations and just needed SLERP ... in fact most all transforms people deal with are angle-preserving and certainly handedness-preserving ...
... but back to GR, I was thinking, how would we parameterize this, since in GR all frames are possible right?
So whatever your motive, let's examine the task of decomposing general linear 3x3 transforms into their intuitive, LERP-able components.
Spoilers, for all practical purposes, this could lead into a rant on 3x3 matrix-logarithms.
So here's our arbitrary matrix:
$A = \left[ \begin{matrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{matrix} \right]$
It can be thought of as representing a coordinate system whose basis vectors are its column vectors:
$A = \left[ \begin{array}{c|c|c}
& & \\
\vec{a}_1 & \vec{a}_2 & \vec{a}_3 \\
& &
\end{array} \right]$
There's 9 degrees-of-freedom total, because it's a 3x3 matrix, and 3x3=9.
Here is how I am intuitively breaking things down:
- 3 rotation parameters. These can be Euler angles pitch roll yaw, or Euler angles logarithm of quaternions, or just quaternions where the w component is redundant.
- 3 scale parameters.
- 3 shear parameters.
Here's my breakdown of how to transform identity through our 9 single-DOF transforms into any arbitrary 3x3 matrix:
1) start with identity.
2) scale each axis according to what you want it to be in the end, simultaneously un-scale any extra scales that get introduced from our subsequent shears.
3) shear to account for any inter-frame angles. Of course orthogonal frames don't have any shear.
4) rotate 3 times to align each of your 3 frame vectors accordingly
Rotations
So for 3 rotation generators there's the traditional (TODO I know these aren't Pauli matrices, so put a better more-appropriate label on them):
$\sigma_z = \epsilon_{zij} = \left[ \begin{matrix}
0 & -1 & 0 \\
1 & 0 & 0 \\
0 & 0 & 0
\end{matrix} \right]$
$\sigma_y = \epsilon_{yij} = \left[ \begin{matrix}
0 & 0 & 1 \\
0 & 0 & 0 \\
-1 & 0 & 0
\end{matrix} \right]$
$\sigma_x = \epsilon_{zij} = \left[ \begin{matrix}
0 & 0 & 0 \\
0 & 0 & -1 \\
0 & 1 & 0
\end{matrix} \right]$
These individually produce...
$R_z(\phi) = exp(\phi \sigma_z) = exp \left(
\left[ \begin{matrix}
0 & -\phi & 0 \\
\phi & 0 & 0 \\
0 & 0 & 0
\end{matrix} \right]
\right)
=
\left[ \begin{matrix}
cos(\phi) & -sin(\phi) & 0 \\
sin(\phi) & cos(\phi) & 0 \\
0 & 0 & 1
\end{matrix} \right]
$
$R_y(\theta) = exp(\theta \sigma_y) = exp \left(
\left[ \begin{matrix}
0 & 0 & \theta \\
0 & 0 & 0 \\
-\theta & 0 & 0
\end{matrix} \right]
\right)
=
\left[ \begin{matrix}
cos(\theta) & 0 & sin(\theta) \\
0 & 1 & 0 \\
-sin(\theta) & 0 & cos(\theta)
\end{matrix} \right]
$
$R_x(\psi) = exp(\psi \sigma_x) = exp \left(
\left[ \begin{matrix}
0 & 0 & 0 \\
0 & 0 & -\psi \\
0 & \psi & 0
\end{matrix} \right]
\right)
=
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & cos(\psi) & -sin(\psi) \\
0 & sin(\psi) & cos(\psi)
\end{matrix} \right]
$
Or of course combine all three and insret Rodriguez rotation formula here.
Or of course you can sum the generator transforms and then exp them, mix and match, angle-axis, read up more on this about quaternions and ultimately quaternion SLERPs.
Scales
This is easy:
$S_x(s_x) = s_x e_x \otimes e_x + e_y \otimes e_y + e_z \otimes e_z = \left[ \begin{matrix}
s_x & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]$
$S_y(s_y) = e_x \otimes e_x + s_y e_y \otimes e_y + e_z \otimes e_z = \left[ \begin{matrix}
1 & 0 & 0 \\
0 & s_y & 0 \\
0 & 0 & 1
\end{matrix} \right]$
$S_z(s_z) = e_x \otimes e_x + e_y \otimes e_y + s_z e_z \otimes e_z = \left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & s_z
\end{matrix} \right]$
One caveat is that $s_x, s_y, s_z$ can all be positive. Unless you're dealing with a null matrix, in which they have to be zero. Or if you're dealing with a transform that changes handedness, then one has to be negative.
But otherwise, in the common case that they are all positive, why not do the interpolation in log-space?
In fact, how about the claim that unless a null or handed-ness transform happens then scales should be positive and interpolations should be done in log-space.
In fact, even if you have a sign flip scale during interpolation, why not do it in log-space, where the log of your negative scale is of course imaginary. I suppose the exp of this imaginary would be complex itself (unlike the exp of the imaginary eigenvalues of a rotation matrix, which produce a matrix with real coefficients).
Also obvious point, so long as our basis of our outer products $\{ e_x, e_y, e_z \}$ is orthogonal, our scale matrices are commutable, and so any order is valid, and you can combine them as:
$S(s_x, s_y, s_z) = S_x(s_x) \cdot S_y(s_y) \cdot S_z(s_z) = \left[ \begin{matrix}
s_x & 0 & 0 \\
0 & s_y & 0 \\
0 & 0 & s_z
\end{matrix} \right]$
Shear
Alright we need three DOF of shear, but shear transforms can take up any of 6 components:
I'm going to label $Sh^a_{bc}(s)$ as the shear along axis 'a' which interchanges axii 'b' and 'c' by amount 's'. Yes, 'a' will always also be one of 'b' or 'c'.
horizontal:
$
\{ Sh^y_{xy}(s_{xy}), Sh^z_{xz}(s_{xz}), Sh^z_{yz}(s_{yz}) \}
= \left\{
\left[ \begin{matrix}
1 & s_{xy} & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right],
\left[ \begin{matrix}
1 & 0 & s_{xz} \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right],
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
\right\}
$
vertical:
$
\{ Sh^x_{xy}(t_{xy}), Sh^x_{xz}(t_{xz}), Sh^y_{yz}(t_{yz}) \}
= \left\{
\left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right],
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
t_{xz} & 0 & 1
\end{matrix} \right],
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & t_{yz} & 1
\end{matrix} \right]
\right\}
$
Since this is a 2D operation, of shifting one axis along another axis, we can just look at it from a 2D perspective, i.e. I might just omit the 3rd column and row in some of these examples, in which case just substitute identity and you'll be fine.
So let's look at those 2D transformations:
$Sh^y_{xy}(s) \cdot \vec{x}
= \left[ \begin{matrix}
1 & s \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
x \\
y
\end{matrix} \right]
=
\left[ \begin{matrix}
x + s y \\
y
\end{matrix} \right]
$
Yup, it was the x-coordinate alone that changed, proportional to the y-coordinate. So only a horizontal change.
$Sh^x_{xy}(t) \cdot \vec{x}
= \left[ \begin{matrix}
1 & 0 \\
t & 1
\end{matrix} \right]
\left[ \begin{matrix}
x \\
y
\end{matrix} \right]
=
\left[ \begin{matrix}
x \\
t x + y
\end{matrix} \right]
$
Yup, it was the y-coordinate alone that changed, proportional to the x-coordinate. So only a vertical change.
I'm calling the top set 'horizontal' and the bottom set 'vertical' because when you restrict this to the 2D case, then $Sh^y_{xy}$ is a horizontal transform and.
So if this space should be parameterizable by only three variables then how do these relate? How does $Sh^x_{xy}(s_{xy})$ relate to $Sh^y_{yx}(t_{xy})$?
If you take a look at the transforms on a collection of points or an image within the domain of $[0,1] \otimes [0,1]$ then you will see that a vertical shear is equivalent to a horizontal shear, then a rotation, then a rescale. So let's try to replicate that:
$Sh^x_{xy}(t) = S(\sigma_1, \sigma_2) \cdot R_z(\alpha) \cdot Sh^y_{xy}(s)$
$
\left[ \begin{matrix}
1 & 0 \\
t & 1
\end{matrix} \right] =
\left[ \begin{matrix}
\sigma_1 & 0 \\
0 & \sigma_2
\end{matrix} \right]
\left[ \begin{matrix}
cos(\alpha) & -sin(\alpha) \\
sin(\alpha) & cos(\alpha)
\end{matrix} \right]
\left[ \begin{matrix}
1 & s \\
0 & 1
\end{matrix} \right]
$
But how much exactly is that rotation amount $\alpha$ that brings our shear'd diagonal back up to the vertical axis? Well let's look at our shear transform applied to the point $(0,1)$.
The horizontal shear transforms it into point $(s, 1)$. We are going to rotate the point back onto the vertical plane, so to $(0, \sqrt{1 + s^2})$.
So our rotation amount $\alpha = atan(s)$. We can just do some dot and cross products and come up with the cos and sin individually:
$cos(\alpha) = \frac{1}{\sqrt{1 + s^2}}$, $sin(\alpha) = \sqrt{1 - \left( \frac{1}{\sqrt{1 + s^2}} \right)^2} = \frac{s}{\sqrt{1 + s^2}}$. Note the sign on s.
So our rotation matrix now looks like:
$R_z(\alpha) = \left[ \begin{matrix}
\frac{1}{\sqrt{1 + s^2}} & \frac{-s}{\sqrt{1 + s^2}} \\
\frac{s}{\sqrt{1 + s^2}} & \frac{1}{\sqrt{1 + s^2}}
\end{matrix} \right]$
What should the scale be? Well we have to scale the y-axis to normalize it again, since a equivalent vertical transform isn't going to change the length of the y axis which remains at 1.
An intuitive guess of the x scale would be the inverse, and lo and behold that works out:
$\sigma_1 = \sqrt{1 + s^2}, \sigma_2 = \frac{1}{\sqrt{1 + s^2}}$
$S(\sigma_1, \sigma_2) = \left[ \begin{matrix}
\sqrt{1 + s^2} & 0 \\
0 & \frac{1}{\sqrt{1 + s^2}}
\end{matrix} \right]$
Line them all up:
$\left[ \begin{matrix}
\sqrt{1 + s^2} & 0 \\
0 & \frac{1}{\sqrt{1 + s^2}}
\end{matrix} \right]
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + s^2}} & \frac{-s}{\sqrt{1 + s^2}} \\
\frac{s}{\sqrt{1 + s^2}} & \frac{1}{\sqrt{1 + s^2}}
\end{matrix} \right]
\left[ \begin{matrix}
1 & s \\
0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & -s \\
\frac{s}{1 + s^2} & \frac{1}{1 + s^2}
\end{matrix} \right]
\left[ \begin{matrix}
1 & s \\
0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & 0 \\
\frac{s}{1 + s^2} & 1
\end{matrix} \right]
$
So now we have this dilemma that this only works for $t = \frac{s}{1 + s^2}$. Meh.
If you walk through the equivalent process from relating horizontal to vertical will you get the same relation? Is it invertible? Hmm.
So now we have 6 shears listed, you have to pick 3, and if you pick the 'horizontal' set then we've shown it is (sort of) equivalent to picking the 'vertical' set as well, so it is just a matter of convention.
But how to apply those shears? Order seems to matter. If you pick the 'horizontal' set then applying them in forward order (i.e. matrix-multiply them reverse as they visually appear here) will result in the z axis being unchanged.
Ex:
$
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & s_{xz} \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & s_{xy} & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & 0 & s_{xz} \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & s_{xy} & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & s_{xy} & s_{xz} \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
$
However reversing the order will introduce an extra shear. Ex:
$
\left[ \begin{matrix}
1 & s_{xy} & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & s_{xz} \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & s_{xy} & s_{xz} \\
0 & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & s_{xy} & s_{xy} s_{yz} + s_{xz} \\
0 & 1 & s_{yz} \\
0 & 0 & 1
\end{matrix} \right]
$
The opposite ordered rule holds for the 'vertical' set of shear transforms, for the sake of preserving the x-axis being unchanged:
$ \left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
t_{xz} & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & t_{yz} & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
t_{xz} & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & t_{yz} & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
t_{xz} & t_{yz} & 1
\end{matrix} \right]
$
...vs...
$ \left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & t_{yz} & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
t_{xz} & 0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
t_{xz} & t_{yz} & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
0 & 0 & 1
\end{matrix} \right]
$
$= \left[ \begin{matrix}
1 & 0 & 0 \\
t_{xy} & 1 & 0 \\
t_{xz} + t_{xy} t_{yz} & t_{yz} & 1
\end{matrix} \right]
$
But what if instead of dealing with horizontal or vertical, we deal with both simultaneously?
Enter the world of hyperbolic rotations.
Coicidentally these can be reproduced by the generators:
$\eta_{xy} = 2 \delta_{x(i} \delta_{j)y} = \left[ \begin{matrix}
0 & 1 & 0 \\
1 & 0 & 0 \\
0 & 0 & 0
\end{matrix} \right]$
$\eta_{xz} = 2 \delta_{x(i} \delta_{j)z} = \left[ \begin{matrix}
0 & 0 & 1 \\
0 & 0 & 0 \\
1 & 0 & 0
\end{matrix} \right]$
$\eta_{yz} = 2 \delta_{y(i} \delta_{j)z} = \left[ \begin{matrix}
0 & 0 & 0 \\
0 & 0 & 1 \\
0 & 1 & 0
\end{matrix} \right]$
...and their exponentials:
$H_{xy}(h_{xy}) = exp(h_{xy} \eta_{xy}) = \left[ \begin{matrix}
cosh(h_{xy}) & sinh(h_{xy}) & 0 \\
sinh(h_{xy}) & cosh(h_{xy}) & 0 \\
0 & 0 & 1
\end{matrix} \right]$
$H_{xz}(h_{xz}) = exp(h_{xz} \eta_{xz}) = \left[ \begin{matrix}
cosh(h_{xz}) & 0 & sinh(h_{xz}) \\
0 & 0 & 1 \\
sinh(h_{xz}) & 0 & cosh(h_{xz})
\end{matrix} \right]$
$H_{yz}(h_{yz}) = exp(h_{yz} \eta_{yz}) = \left[ \begin{matrix}
1 & 0 & 0 \\
0 & cosh(h_{yz}) & sinh(h_{yz}) \\
0 & sinh(h_{yz}) & cosh(h_{yz})
\end{matrix} \right]$
TODO and then the inverse is the same but with negative skew components. Same if you just negative the parameter right?
Back to doing two shears simultaneously.
Let's apply a horizontal then a vertical shear:
$
\left[ \begin{matrix}
1 & h \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 \\
h & 1
\end{matrix} \right]
=
\left[ \begin{matrix}
1 + h^2 & h \\
h & 1
\end{matrix} \right]
$
But now we have an off-scale diagonal. We can undo that with a scale transform at each end:
$
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + h^2}} & 0 \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & h \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 \\
h & 1
\end{matrix} \right]
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + h^2}} & 0 \\
0 & 1
\end{matrix} \right]
=
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + h^2}} & 0 \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 + h^2 & h \\
h & 1
\end{matrix} \right]
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + h^2}} & 0 \\
0 & 1
\end{matrix} \right]
=
\left[ \begin{matrix}
1 & \frac{h}{\sqrt{1 + h^2}} \\
\frac{h}{\sqrt{1 + h^2}} & 1
\end{matrix} \right]
$
And now we have our symmetric shear with no scale. But what if we want it to fit the form of our hyprebolic rotation? Scale the whole thing by the denominator:
$
\sqrt{1 + h^2}
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + h^2}} & 0 \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & h \\
0 & 1
\end{matrix} \right]
\left[ \begin{matrix}
1 & 0 \\
h & 1
\end{matrix} \right]
\left[ \begin{matrix}
\frac{1}{\sqrt{1 + h^2}} & 0 \\
0 & 1
\end{matrix} \right]
=
\left[ \begin{matrix}
\sqrt{1 + h^2} & h \\
h & \sqrt{1 + h^2}
\end{matrix} \right]
$
Now this happens to conveniently match up with our hyperbolic rotation.
Choose $h = sinh(\alpha)$, and using the property $cosh(\alpha)^2 - sinh(\alpha)^2 = 1$, i.e. $cosh(\alpha) = \sqrt{1 + sinh(\alpha)^2}$, we find this is equal to:
$
\left[ \begin{matrix}
cosh(\alpha) & sinh(\alpha) \\
sinh(\alpha) & cosh(\alpha)
\end{matrix} \right]
$
So there you have it, how to represent a hyperbolic rotation with two symmetric shears.
But what if you wanted to represent only a single shear with a hyperbolic rotation?
What if, for exmaple, you were doing Gauss-Jordan decomposition on a matrix into strictly scales and shears, and while the (positive) scales are generators, you want to represent the shears as generators as well?
For this it looks like we can simply 1) hyperbolic-rotate to adjust the angle gap between the basis vectors to our hearts content, 2) normalize, and 3) rotate to align our basis back to where we started.
And maybe scale some more to account for the fact that a shear has unequal length sides. Oh well, deal with that later, let's solve now the problem of strictly how to change the angle between basis vectors using a hyperbolic rotation:
First we have to ask, what is the angle between the hyperbolic rotation basis vectors? And for that we also have to ask, what is the magnitude of hyperbolic rotation vectors?
So for starters:
$
\left[ \begin{matrix}
cosh(\alpha) & sinh(\alpha) \\
sinh(\alpha) & cosh(\alpha)
\end{matrix} \right]
\left[ \begin{matrix} 1 \\ 0 \end{matrix} \right]
=
\left[ \begin{matrix} cosh(\alpha) \\ sinh(\alpha) \end{matrix} \right]
$, and
$
\left[ \begin{matrix}
cosh(\alpha) & sinh(\alpha) \\
sinh(\alpha) & cosh(\alpha)
\end{matrix} \right]
\left[ \begin{matrix} 0 \\ 1 \end{matrix} \right]
=
\left[ \begin{matrix} sinh(\alpha) \\ cosh(\alpha) \end{matrix} \right]
$
Kind of obvious just looking at the column vectors.
Ok so what is the magnitude of this? Using another hyperbolic trigonometry identity ...
$|| H(\alpha) \cdot e_x || = || H(\alpha) \cdot e_y || = \sqrt{ cosh(\alpha)^2 + sinh(\alpha)^2 } = \sqrt{ cosh(2 \alpha) }$
So that means our hyperbolic-rotated vectors, normalized, will look like:
$
unit(H(\alpha) \cdot e_x) = \left[ \begin{matrix}
\frac{cosh(\alpha)}{\sqrt{cosh(2 \alpha)}} \\
\frac{sinh(\alpha)}{\sqrt{cosh(2 \alpha)}}
\end{matrix} \right],
unit(H(\alpha) \cdot e_x) = \left[ \begin{matrix}
\frac{sinh(\alpha)}{\sqrt{cosh(2 \alpha)}} \\
\frac{cosh(\alpha)}{\sqrt{cosh(2 \alpha)}}
\end{matrix} \right],
$
What's the angle between? Using the inner product, and a few more hyperbolic trig identity:
$cos(\phi) = \langle unit(H(\alpha) \cdot e_x), unit(H(\alpha) \cdot e_y) \rangle = \frac{2 sinh(\alpha) cosh(\alpha)}{cosh(2 \alpha)} = \frac{sinh(2\alpha)}{cosh(2\alpha)} = tanh(2\alpha)$
$sin(\phi) = \sqrt{1 - cos(\phi)^2} = \sqrt{1 - tanh(2\alpha)^2} = \sqrt{\frac{cosh(2\alpha)^2 - sinh(2\alpha)^2}{cosh(2\alpha)^2}} = \frac{1}{cosh(2\alpha)}$
For sign-ness I should really start with the sin calculation using a unit cross product magnitude and then calculate cos from there. Then again, nope, sign wouldn't have mattered.
So $\phi = atan(\frac{sin(\phi)}{cos(\phi)}) = atan(\frac{1}{sinh(2\alpha)})$
So there is your angle between basis vectors after a hyperbolic rotation.