Points sampled in SPD(n).
n = self.n
size = (n_samples, n, n) if n_samples != 1 else (n, n)
mat = 2 * gs.random.rand(*size) - 1
spd_mat = GeneralLinear.exp(Matrices.to_symmetric(mat))
After Change
@classmethod
@geomstats.vectorization.decorator(["else", "matrix", "matrix"])
def inverse_differential_log(cls, tangent_vec, base_point):
Compute the inverse of the differential of the matrix logarithm.
Compute the inverse of the differential of the matrix
logarithm on SPD matrices at base_point applied to
tangent_vec.
Parameters
----------
tangent_vec : array_like, shape=[..., n, n]
Tangent vector at base point.
base_point : array_like, shape=[..., n, n]
Base point.
Returns
-------
inverse_differential_log : array-like, shape=[..., n, n]
Inverse of the differential of the matrix logarithm.
eigvectors, transp_eigvectors, numerator, denominator, temp_result =\
cls.aux_differential_power(0, tangent_vec, base_point)