ott.geometry.costs.RegTICost.h_transform

ott.geometry.costs.RegTICost.h_transform#

RegTICost.h_transform(f)[source]#

Compute the h-transform of a concave function.

Return a callable \(f_h\) defined as:

\[f_h(x) = \min_y h(x - y) - f(y)\]

This is equivalent, up to a change of variables, \(z = x - y\), to define

\[\begin{split}\min_z h(z) - f(x - z). \\ \min_z h(z) + \tilde{f}(z, x).\end{split}\]

where \(\tilde{f}(z, x) := -f(x - z)\).

By contrast to the TICost.h_transform, this is exploiting the structure of h() and requires having access to its proximal operator \(\prox_{\tau h}(x)\). Under the hood, this is solved using proximal gradient descent.

Parameters:

f (Callable[[Array], float]) – Concave function.

Return type:

Callable[[Array, Optional[Array], Any], float]

Returns:

The h-transform \(f_h\) of \(f\).