def inverse_differential_gram(tangent_vec, base_point):
        """Compute inverse differential of gram map.

        Parameters
        ----------
        tangent_vec : array_like, shape=[..., n, n]
            tanget vector at gram(base_point)
            Symmetric Matrix.
        base_point : array_like, shape=[..., n, n]
            Base point.

        Returns
        -------
        inverse_differential_gram : array-like, shape=[..., n, n]
            Inverse differential of gram.
            Lower triangular matrix.
        """
        inv_base_point = gs.linalg.inv(base_point)
        inv_transpose_base_point = Matrices.transpose(inv_base_point)
        aux = Matrices.to_lower_triangular_diagonal_scaled(
            Matrices.mul(inv_base_point, tangent_vec, inv_transpose_base_point)
        )
        inverse_differential_gram = Matrices.mul(base_point, aux)
        return inverse_differential_gram