Documentation

Cayley.Soundness.CayleyMatrix

Cayley coordinates for three-dimensional rotations #

The vector (x, y, z) represents the unit quaternion proportional to (1, x, y, z). Unlike Euler coordinates, the resulting rotation matrix is rational in the three parameters. These coordinates cover exactly the rotations without angle pi; in particular they cover every rotation whose trace is nonnegative.

def Cayley.cayleyDenom (x y z : ℝ) :

The positive denominator in the three-dimensional Cayley transform.

Equations
Instances For
    theorem Cayley.cayleyDenom_pos (x y z : ℝ) :
    0 < cayleyDenom x y z
    theorem Cayley.cayleyDenom_ne (x y z : ℝ) :
    def Cayley.cayleyNumeratorMatrix {R : Type} [CommRing R] (x y z : R) :
    Matrix (Fin 3) (Fin 3) R

    Polynomial numerator of the Cayley rotation, defined over any commutative ring so rational certificate evaluation uses the same formula.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def Cayley.cayleyMatrix (x y z : ℝ) :
      Matrix (Fin 3) (Fin 3) ℝ

      The rational rotation matrix with Cayley vector (x, y, z).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Cayley matrices are orientation-preserving orthogonal matrices.

        noncomputable def Cayley.cayleyVector (x y z : ℝ) :

        The Euclidean vector represented by the three scalar coordinates.

        Equations
        Instances For

          Exact Rodrigues form of the Cayley transform.

          theorem Cayley.cayleyMatrix_smul_unit_apply_sub (c : ℝ) (axis v : Euc(3)) (haxis : ‖axis‖ = 1) :
          (Matrix.toEuclideanLin (cayleyMatrix (c * axis.ofLp 0) (c * axis.ofLp 1) (c * axis.ofLp 2))) v - v = (2 * c / (1 + c ^ 2)) • BalancedSupport.cross3 axis v + (2 * c ^ 2 / (1 + c ^ 2)) • BalancedSupport.cross3 axis (BalancedSupport.cross3 axis v)

          Cayley rotation about a unit axis, written in Rodrigues form.

          theorem Cayley.trace_cayleyMatrix (x y z : ℝ) :
          (cayleyMatrix x y z).trace = (3 - (x ^ 2 + y ^ 2 + z ^ 2)) / cayleyDenom x y z

          Trace is a rational function of the squared Cayley radius.

          Linear trace recovers the cosine of any axis-angle presentation.

          Matrix trace recovers the cosine of an axis-angle presentation.

          theorem Cayley.exists_cayleyMatrix_of_trace_nonneg (A : Matrix (Fin 3) (Fin 3) ℝ) (hA : A ∈ Matrix.specialOrthogonalGroup (Fin 3) ℝ) (htrace : 0 ≤ A.trace) :
          ∃ (x : ℝ) (y : ℝ) (z : ℝ), x ^ 2 + y ^ 2 + z ^ 2 ≤ 3 ∧ A = cayleyMatrix x y z

          Every special orthogonal matrix of nonnegative trace has a Cayley vector of squared radius at most three, giving a closed, bounded Cayley chart for the nonnegative-trace rotations.