Starting with suitable definitions of unit vectors, Mathematica allows a fairly direct confirmation of ortogonalityorthogonality
u = {Cos[a] Cos[b], Sin[a] Cos[b], Sin[b]};
v = {Cos[c] Cos[d], Cos[d] Sin[c], Sin[d]};
Confirm that the vectors are indeed units
{u . u, v . v} // Simplify
(* {1, 1} *)
Define the matrix R
R =
u . v IdentityMatrix[3] + HodgeDual[Cross[u, v]] +
TensorProduct[Cross[u, v], Cross[u, v]]/(1 + u . v) // Normal //
Simplify;
Confirm orthogonality
R . Transpose[R] // Simplify
(* {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} *)