choreo.ActionSym.SurjectiveDirectSpaceRot#
- static ActionSym.SurjectiveDirectSpaceRot(double[::1] params)#
Surjective parametrization of direct isometries.
This function computes a direct isometry \(R \in SO(n)\) from a set of \(\frac{n(n-1)}{2}\) parameters using the squared Cayley transform, ensuring surjectivity:
\[R = ((I_n-A)^{-1}(I_n+A))^2\]where \(A\) denotes the skew-symmetric matrix whose upper triangular entries are given in
params
.Example
>>> R = choreo.ActionSym.SurjectiveDirectSpaceRot(np.array([1.,2.,3.])) >>> np.linalg.norm(np.matmul(R,R.T) - np.identity(3)) < 1e-14 np.True_ >>> abs(np.linalg.det(R) - 1.) < 1e-14 np.True_
- Parameters:
params (
numpy.ndarray
(shape = n*(n-1)/2, dtype = np.float64)
) – Upper part of the Cayley skew-symmetric matrix.- Returns:
A direct orthonormal transformation.
- Return type:
numpy.ndarray
(shape = (n,n), dtype = np.float64)