-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
51 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
``` | ||
|