$\DeclareMathOperator{\arccosh}{arccosh} \DeclareMathOperator*{\argmin}{arg\,min} \DeclareMathOperator{\Exp}{Exp} \newcommand{\geo}[2]{\gamma_{\overset{\frown}{#1,#2}}} \newcommand{\geoS}{\gamma} \newcommand{\geoD}[2]{\gamma_} \newcommand{\geoL}[2]{\gamma(#2; #1)} \newcommand{\gradM}{\nabla_{\M}} \newcommand{\gradMComp}[1]{\nabla_{\M,#1}} \newcommand{\Grid}{\mathcal G} \DeclareMathOperator{\Log}{Log} \newcommand{\M}{\mathcal M} \newcommand{\N}{\mathcal N} \newcommand{\mat}[1]{\mathbf{#1}} \DeclareMathOperator{\prox}{prox} \newcommand{\PT}[3]{\mathrm{PT}_{#1\to#2}#3} \newcommand{\R}{\mathbb R} \newcommand{\SPD}[1]{\mathcal{P}(#1)} \DeclareMathOperator{\Tr}{Tr} \newcommand{\tT}{\mathrm{T}} \newcommand{\vect}[1]{\mathbf{#1}}$

# The orthonormal basis in a tangent space

This function computes an ONB where the $\xi_1=\log_x y$ belongs to the ONB and hence it diagonalizes the curvature tensor along $\geo{x}{y}$, i.e. the eigenvalues $1$ for all $\xi_k$, $k>1$ and zero for the first value.

### Matlab Documentation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
% xi = TpMONB(x,y) compute an ONB in TpM, with first pointing to q
%
% INPUT
%     x : base point( sets)
%
% OPTIONAL:
%     y : directional indicator( sets) for the first vector(s).
%
% OUTPUT
%    xi : basiscolumn matrice(s) for each TpM
%    k : (optional) curvature coefficients, here
%           all are 1 except the first which is 0
% ---
% MVIRT 1.0, R. Bergmann ~ 2014-10-19 | 2018-03-01