jax.lax.linalg.qdwh(x, *, is_hermitian=False, max_iterations=None, eps=None, dynamic_shape=None)[source]#

QR-based dynamically weighted Halley iteration for polar decomposition.

  • x – A full-rank matrix, with shape M x N. The matrix may be padded up to that size from a smaller true shape (dynamic_shape).

  • is_hermitian (bool) – True if x is Hermitian. Default to False. This parameter is currently unused, but exists for backward compatibility.

  • eps (float | None) – The final result will satisfy |x_k - x_k-1| < |x_k| * (4*eps)**(1/3) where x_k is the iterate.

  • max_iterations (int | None) – Iterations will terminate after this many steps even if the above is unsatisfied.

  • dynamic_shape (tuple[int, int] | None) – the unpadded shape as an (m, n) tuple; optional.


A four-tuple of (u, h, num_iters, is_converged) containing the polar decomposition of x = u * h, the number of iterations to compute u, and is_converged, whose value is True when the convergence is achieved within the maximum number of iterations.