Bures.barycenter(weights, xs, tolerance=0.0001, sqrtm_kw=None, **kwargs)[source]#

Compute the Bures barycenter of weighted Gaussian distributions.

Implements the fixed point approach proposed in [Álvarez-Esteban et al., 2016] for the computation of the mean and the covariance of the barycenter of weighted Gaussian distributions.

  • weights (Array) – The barycentric weights.

  • xs (Array) – The points to be used in the computation of the barycenter, where each point is described by a concatenation of the mean and the covariance (raveled).

  • tolerance (float) – convergence tolerance to control the termination of the algorithm.

  • sqrtm_kw (Optional[Dict[str, Any]]) – Arguments passed on to the sqrtm() function used within covariance_fixpoint_iter(). This defines the precision (in terms of convergence threshold, and number of iterations) of the matrix square root calls that are used at each outer iteration of the computation of Gaussian barycenters. These values are, by default, the same as those used to define the Bures cost object itself.

  • kwargs (Any) – Passed on to covariance_fixpoint_iter(), to specify the number of iterations and tolerance of the fixed-point iteration of the barycenter routine, by parameterizing tolerance and other relevant arguments passed on to fixpoint_iter(), namely min_iterations, max_iterations and inner_iterations.

Return type:

Tuple[Array, Array]


A list holding a concatenation of the mean and the raveled covariance of the barycenter as its first element, followed by a vector of norms of successive differences in iterates.