Let $A,B\in\Bbb{S}_{++}^n$ be two symmetric positive definite $n\times n$ matrices with real entries. The Log-Euclidean distance between these matrices is defined as follows $$ d = \lVert \log(A) - \log(B) \rVert_{F}, $$ where $\lVert\cdot\rVert_{F}$ denotes the Frobenius norm and $\log(\cdot)$ the principal logarithm.
I am interested in "simplifying" this formula, such that I can efficiently compute it in $\texttt{C}$ using probably some linear algebra library (such as the GNU Scientific Library - GSL).
What I have thought so far is to exploit:
(a) the definition of the Frobenius norm, that is $$ \lVert A \rVert_{F} = \sqrt{ \operatorname{tr}(A^\top A) }, $$ and
(b) the fact that, by conducting eigen-analysis on $A$, $B$, i.e., by writing $A$, $B$ as $$ A = U_A\Lambda_AU_A^\top,\quad B = U_B\Lambda_BU_B^\top, $$ the logarithms can be written as $$ \log(A) = U_A \log(\Lambda_A) U_A^\top = U_A \operatorname{diag}\big(\log(\lambda_A^1),\ldots,\log(\lambda_A^n)\big) U_A^\top, $$ and $$ \log(B) = U_B \log(\Lambda_A) U_B^\top, = U_B \operatorname{diag}\big(\log(\lambda_B^1),\ldots,\log(\lambda_B^n)\big) U_B^\top. $$
Let's assume that conducting eigen-analysis using GSL in $\texttt{C}$ is not computationally expensive, that is, $U_A$, $U_B$, $\Lambda_A$, and $\Lambda_B$ can be computed efficiently enough, then what would be the best strategy for computing the Log-Euclidean distance?
On the other hand, is there any other approach potentially more efficient that this using eigen-analysis?
Thank you very much!