-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce Kendall's shape space (#550)
* Introduce Kendall's shape space * fixed shape space, added preshape space and some docs * fix rotation action tests * hand gesture example * remove temporary `using Revise` * improve tests and address an issue from review * slightly expand tutorial * more comments * bump tolerance * more docs * bump tolerance to hopefully fix issue on Julia 1.6 * more reporting on why some tests fail * increase tolerance * addressing review * more docs * fix issues from CI * improve coverage, bump version, fix incompatibility with newer OrdinaryDiffEq (termination codes changed)
- Loading branch information
1 parent
8fc0322
commit 9366c53
Showing
15 changed files
with
697 additions
and
23 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,7 +1,7 @@ | ||
name = "Manifolds" | ||
uuid = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e" | ||
authors = ["Seth Axen <[email protected]>", "Mateusz Baran <[email protected]>", "Ronny Bergmann <[email protected]>", "Antoine Levitt <[email protected]>"] | ||
version = "0.8.38" | ||
version = "0.8.39" | ||
|
||
[deps] | ||
Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" | ||
|
@@ -34,6 +34,7 @@ HybridArrays = "0.4" | |
Kronecker = "0.4, 0.5" | ||
ManifoldsBase = "0.13.21" | ||
MatrixEquations = "2.2" | ||
OrdinaryDiffEq = "6.31" | ||
Plots = "1" | ||
Quaternions = "0.5, 0.6" | ||
RecipesBase = "1.1" | ||
|
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
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 |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Shape spaces | ||
|
||
Shape spaces are spaces of ``k`` points in ``\mathbb{R}^n`` up to simultaneous action of a group on all points. | ||
The most commonly encountered are Kendall's pre-shape and shape spaces. | ||
In the case of the Kendall's pre-shape spaces the action is translation and scaling. | ||
In the case of the Kendall's shape spaces the action is translation, scaling and rotation. | ||
|
||
```@example | ||
using Manifolds, Plots | ||
M = KendallsShapeSpace(2, 3) | ||
# two random point on the shape space | ||
p = [ | ||
0.4385117672460505 -0.6877826444042382 0.24927087715818771 | ||
-0.3830259932279294 0.35347460720654283 0.029551386021386548 | ||
] | ||
q = [ | ||
-0.42693314765896473 -0.3268567431952937 0.7537898908542584 | ||
0.3054740561061169 -0.18962848284149897 -0.11584557326461796 | ||
] | ||
# let's plot them as triples of points on a plane | ||
fig = scatter(p[1,:], p[2,:], label="p", aspect_ratio=:equal) | ||
scatter!(fig, q[1,:], q[2,:], label="q") | ||
# aligning q to p | ||
A = get_orbit_action(M) | ||
a = optimal_alignment(A, p, q) | ||
rot_q = apply(A, a, q) | ||
scatter!(fig, rot_q[1,:], rot_q[2,:], label="q aligned to p") | ||
``` | ||
|
||
A more extensive usage example is available in the `hand_gestures.jl` tutorial. | ||
|
||
```@autodocs | ||
Modules = [Manifolds, ManifoldsBase] | ||
Pages = ["manifolds/KendallsPreShapeSpace.jl"] | ||
Order = [:type] | ||
``` | ||
|
||
```@autodocs | ||
Modules = [Manifolds, ManifoldsBase] | ||
Pages = ["manifolds/KendallsShapeSpace.jl"] | ||
Order = [:type] | ||
``` | ||
|
||
## Provided functions | ||
|
||
```@autodocs | ||
Modules = [Manifolds, ManifoldsBase] | ||
Pages = ["manifolds/KendallsPreShapeSpace.jl"] | ||
Order = [:function] | ||
``` | ||
|
||
```@autodocs | ||
Modules = [Manifolds, ManifoldsBase] | ||
Pages = ["manifolds/KendallsShapeSpace.jl"] | ||
Order = [:function] | ||
``` |
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
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
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
Oops, something went wrong.
9366c53
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JuliaRegistrator register
9366c53
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registration pull request created: JuliaRegistries/General/72105
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via: