Skip to content

Commit

Permalink
Merge branch 'master' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
Marco-Congedo authored May 13, 2022
2 parents 9c3fb4e + 750794d commit 3779204
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 5 deletions.
13 changes: 11 additions & 2 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
name: TagBot
on:
schedule:
- cron: 0 * * * *
issue_comment:
types:
- created
workflow_dispatch:
inputs:
lookback:
default: 3
permissions:
contents: write
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
steps:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
43 changes: 40 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,48 @@
# PosDefManifold.jl

[![](https://img.shields.io/badge/docs-dev-blue.svg)](https://Marco-Congedo.github.io/PosDefManifold.jl/latest)
| **Documentation** |
|:---------------------------------------:|
| [![](https://img.shields.io/badge/docs-dev-blue.svg)](https://marco-congedo.github.io/PosDefManifold.jl/dev/) |

**PosDefManifold** is a [**Julia**](https://julialang.org/) package for manipulating data in the manifold **P** of real or complex [**positive definite matrices**](https://en.wikipedia.org/wiki/Definiteness_of_a_matrix). The package supports **10 metrics** acting on **P**, two of which define [**Riemannian manifolds**](https://en.wikipedia.org/wiki/Riemannian_manifold).

This package computes **distances**, **geodesics** and **weighted Fréchet means** for the supported metrics, **graph Laplacians**, **Lapacian eigen maps** and a special solution of the [**Procrustes problem**](https://en.wikipedia.org/wiki/Orthogonal_Procrustes_problem) in **P**. Key functions are multi-threaded.
![](/docs/src/assets/Fig1.jpg)

The documentation is rich and gives all mathematical details pertaining to the implemented functions (click the 'docs|dev' button).
This package computes **distances**, **geodesics**, **weighted Fréchet means** and **inductive Fréchet means** for the supported metrics, **graph Laplacians**, **Lapacian eigen maps**, **tangent space projections**, **parallel transport**, the **geometric midrange**, matrix **approximations** and a special solution of the [**Procrustes problem**](https://en.wikipedia.org/wiki/Orthogonal_Procrustes_problem) in **P**. Key functions are *multi-threaded*.

The [documentation](https://marco-congedo.github.io/PosDefManifold.jl/dev/) is rich and gives all mathematical details pertaining to the implemented functions.

For **machine learning** in **P** see [PosDefManifoldML.jl](https://github.com/Marco-Congedo/PosDefManifoldML.jl).

For **optimization** in **P** see [Manopt.jl](http://www.manoptjl.org/stable/).

See also [Manifolds.jl](https://github.com/JuliaNLSolvers/Manifolds.jl).

For similar code resources in other programming languages see [here](https://sites.google.com/site/marcocongedo/science/code-resources).

## About the author

[Marco Congedo](https://sites.google.com/site/marcocongedo) is
a Research Director of [CNRS](http://www.cnrs.fr/en) (Centre National de la Recherche Scientifique), working at [UGA](https://www.univ-grenoble-alpes.fr/english/) (University of Grenoble Alpes), in Grenoble (France).

## Contact

marco *dot* congedo *at* gmail *dot* com

## Examples:

```
using PosDefManifold
 
P, Q = randP(20), randP(20) # random Positive Definite Matrices (PDMs) of size 20x20
d = distance(Fisher, P, Q) # distance between P and Q
R = geodesic(Fisher, P, Q, 0.1) # move on the geodesic relying P and Q
G = mean(Fisher, P, Q) # mean of P and Q (geodesic mid-point)
U = procrustes(P, Q) # solution to a special Procrustes problem
S = logMap(Fisher, P, G) # tangent space mapping
 
𝐏 = randP(20, 100) # random set 𝐏 of 100 PDMs of size 20x20
G = mean(Fisher, 𝐏) # mean of all matrices in set 𝐏
λ, U, i, c = spEmb(Fisher, 𝐏, 3) # spectral embedding in 3D
```

0 comments on commit 3779204

Please sign in to comment.