src/solvers/polar.c file

Functions

auto mat3_polar(matrix3* R, matrix3* U, const matrix3* F) -> bool
Polar decomposition F = R U.

Function documentation

bool mat3_polar(matrix3* R, matrix3* U, const matrix3* F)

Polar decomposition F = R U.

Parameters
R Output rotation (proper).
U Output stretch (symmetric positive definite).
F Input deformation gradient.
Returns true on success.

U is symmetric positive definite, R is proper (det R = 1). Newton iteration on C = Fᵀ F, capped. Returns false on a singular matrix, a non-positive stretch, a reflection, or non-convergence.