# ott.geometry.graph.Graph.to_LRCGeometry#

Graph.to_LRCGeometry(rank=0, tol=0.01, rng=Array([0, 0], dtype=uint32), scale=1.0)#

Factorize the cost matrix using either SVD (full) or .

When rank=min(n,m) or 0 (by default), use jax.numpy.linalg.svd().

For other values, use the routine in sublinear time . Uses the implementation of , algorithm 4.

It holds that with probability 0.99, $$||A - UV||_F^2 \leq || A - A_k ||_F^2 + tol \cdot ||A||_F^2$$, where $$A$$ is n x m cost matrix, $$UV$$ the factorization computed in sublinear time and $$A_k$$ the best rank-k approximation.

Parameters:
• rank (int) – Target rank of the cost_matrix.

• tol (float) – Tolerance of the error. The total number of sampled points is $$min(n, m,\frac{rank}{tol})$$.

• rng (PRNGKeyArray) – The PRNG key to use for initializing the model.

• scale (float) – Value used to rescale the factors of the low-rank geometry. Useful when this geometry is used in the linear term of fused GW.

Return type:

LRCGeometry

Returns:

Low-rank geometry.