Skip to content

Commit 0ab9a4b

Browse files
Add spell check GitHub Action (#553)
* add spell check GitHub Action * fix space * fix a few typos. * Fix more typos. * Add a note to contributing.md --------- Co-authored-by: Ronny Bergmann <git@ronnybergmann.net>
1 parent 7373e5b commit 0ab9a4b

55 files changed

Lines changed: 168 additions & 841 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/spell_check.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Spell Check
2+
3+
on: [pull_request, workflow_dispatch]
4+
5+
jobs:
6+
typos-check:
7+
name: Spell Check with Typos
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout Actions Repository
11+
uses: actions/checkout@v5
12+
- name: Check spelling
13+
uses: crate-ci/typos@v1.40.0

CONTRIBUTING.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ The following is a set of guidelines to [`Manopt.jl`](https://juliamanifolds.git
1717
- [Provide a new example](#Provide-a-new-example)
1818
- [Code style](#Code-style)
1919
- [Concerning the documentation](#Concerning-the-documentation)
20+
- [Spell checking](#Spell-checking)
2021
## I just have a question
2122

2223
The developer can most easily be reached in the Julia Slack channel [#manifolds](https://julialang.slack.com/archives/CP4QF0K5Z).
@@ -83,4 +84,8 @@ Please follow a few internal conventions:
8384

8485
If you implement a new feature, a tutorial how to use it would be appreciated as well. Tutorials are written as [Quarto](https://quarto.org/) documents and stored in the `tutorials/` folder. This is rendered automatically into the documentation page, you just have to add a menu entry within the tutorial sub menu.
8586

86-
If you implement an algorithm with a certain numerical example in mind, it would be great, if this could be added to the [ManoptExamples.jl](https://github.com/JuliaManifolds/ManoptExamples.jl) package as well.
87+
If you implement an algorithm with a certain numerical example in mind, it would be great, if this could be added to the [ManoptExamples.jl](https://github.com/JuliaManifolds/ManoptExamples.jl) package as well.
88+
89+
### Spell checking
90+
91+
We use [crate-ci/typos](https://github.com/crate-ci/typos) for spell checking, which is run automatically on GitHub Actions, but you can also run it locally using their command line tool.

Changelog.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
### Added
1212

1313
* a keyword argument `atol` to the `ConstrainedManifoldObjective` to set a tolerance for constraint satisfaction. (#545)
14+
* a spell checker following [crate-ci/typos](https://github.com/crate-ci/typos)
1415

1516
### Fixed
1617

@@ -21,7 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2122
* Removed `atol` from `DebugFeasibility` and instead use the one newly added `atol` from the `ConstrainedManifoldObjective`. (#546)
2223
* Move from CompatHelper to dependabot to keep track of dependency updates in Julia packages. (#547)
2324
* moved the `ManoptTestSuite` module to a sub module `Manopt.Test` within `Manopt.jl`,
24-
so it can be easier resused by others as well (#550)
25+
so it can be easier reused by others as well (#550)
2526
* moved to using a `Project.toml` for tests and an overall `[Workspace]`.
2627
This also allows finally to run single test files without installing all packages manually, but instead just switching to and instantiating the test environment. (#550)
2728
* for compatibility, state also `[source]` entries consistently in the sub `Project.toml` files. (#550)
@@ -246,7 +247,7 @@ present; they were changed to `retact_fused!`.
246247
* A scaling error that appeared only when calling `get_cost_function` on the new `ScaledManifoldObjective`.
247248
* Documentation issues for quasi-Newton solvers.
248249
* fixes a scaling error in quasi newton
249-
* Fixes printing of JuMP models containg Manopt solver.
250+
* Fixes printing of JuMP models containing Manopt solver.
250251

251252
## [0.5.12] April 13, 2025
252253

_typos.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[default.extend-words]
2+
methodes = "methodes" # french
3+
Serie = "Serie" # french
4+
sur = "sur" # french
5+
6+
[files]
7+
extend-exclude = [
8+
"tutorials/*.html",
9+
# rendered from tutorials/*.qmd -Z we do not want typos twice
10+
"docs/src/tutorials/*.md",
11+
"joss/paper.md",
12+
]

docs/src/plans/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The following symbols are used.
4141
| `:TrustRegionRadius` | [`TrustRegionsState`](@ref) | the trust region radius, equivalent to `` |
4242
| ``, `:u` | [`ExactPenaltyCost`](@ref), [`ExactPenaltyGrad`](@ref) | Parameters within the exact penalty objective |
4343
| ``, ``, `` | [`AugmentedLagrangianCost`](@ref), [`AugmentedLagrangianGrad`](@ref) | Parameters of the Lagrangian function |
44-
| `:p`, `:X` | [`LinearizedDCCost`](@ref), [`LinearizedDCGrad`](@ref) | Parameters withing the linearized functional used for the sub problem of the [difference of convex algorithm](@ref solver-difference-of-convex) |
44+
| `:p`, `:X` | [`LinearizedDCCost`](@ref), [`LinearizedDCGrad`](@ref) | Parameters within the linearized functional used for the sub problem of the [difference of convex algorithm](@ref solver-difference-of-convex) |
4545

4646
Any other lower case name or letter as well as single upper case letters access fields of the corresponding first argument.
4747
for example `:p` could be used to access the field `s.p` of a state.

docs/src/plans/stepsize.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ ArmijoInitialGuess
4141
HagerZhangInitialGuess
4242
```
4343

44-
Onw implementations can also (just) be functions.
44+
Own implementations can also (just) be functions.
4545

4646
Some step sizes use [`max_stepsize`](@ref) function as a rough upper estimate for the trust region size.
4747
It is by default equal to injectivity radius of the exponential map but in some cases a different value is used.

docs/src/references.bib

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ @book{doCarmo:1992
276276

277277
@techreport{deCasteljau:1959,
278278
AUTHOR = {de Casteljau, Paul},
279-
institution = {Enveloppe Soleau 40.040, Institute National de la Propriété Industrielle, Paris.},
279+
institution = {Envelope Soleau 40.040, Institute National de la Propriété Industrielle, Paris.},
280280
TITLE = {Outillage methodes calcul},
281281
YEAR = {1959}
282282
}
@@ -365,7 +365,7 @@ @article{DoddSharrockNemeth:2024
365365
@techreport{Dreisigmeyer:2007,
366366
AUTHOR = {Dreisigmeyer, David W.},
367367
INSTITUTION = {Optimization Online},
368-
TITLE = {Direct Search Alogirthms over Riemannian Manifolds},
368+
TITLE = {Direct Search Algorithms over Riemannian Manifolds},
369369
URL = {https://optimization-online.org/?p=9134},
370370
YEAR = {2007}
371371
}
@@ -557,7 +557,7 @@ @article{HoseiniMonjeziNobakhtianPouryayevali:2021
557557
}
558558
@phdthesis{Huang:2014,
559559
AUTHOR = {Huang, W.},
560-
SCHOOL = {Flordia State University},
560+
SCHOOL = {Florida State University},
561561
TITLE = {Optimization algorithms on Riemannian manifolds with applications},
562562
URL = {https://www.math.fsu.edu/~whuang2/pdf/Huang_W_Dissertation_2013.pdf},
563563
YEAR = {2014}
@@ -807,7 +807,7 @@ @article{SouzaOliveira:2015
807807
PAGES = {797--810},
808808
PUBLISHER = {Springer Science and Business Media LLC},
809809
VOLUME = {63},
810-
TITLE = {A proximal point algorithm for DC fuctions on Hadamard manifolds},
810+
TITLE = {A proximal point algorithm for DC functions on Hadamard manifolds},
811811
YEAR = {2015},
812812
}
813813
% --- T

joss/bibliography.bib

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ @booklet{Boumal:2020:1
4747
TITLE = {An Introduction to Optimization on Smooth Manifolds}
4848
}
4949

50-
@inproceedings{GousenbourgerMassartMusolasAbsilJaquesHendrickxMarzouk:2017,
50+
@inproceedings{GousenbourgerMassartMusolasAbsilJacquesHendrickxMarzouk:2017,
5151
AUTHOR = {Gousenbourger, Pierre-Yves and Massart, Estelle and Musolas, Antoni and Absil, P.-A. and Jacques, Laurent and Hendrickx, Julien M and Marzouk, Youssef},
5252
BOOKTITLE = {ESANN2017},
5353
PAGES = {305--310},

joss/paper.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Based on a generic optimization framework, together with the interface [`Manifol
2525
# Statement of Need
2626

2727
In many applications and optimization tasks, non-linear data appears naturally.
28-
For example, when data on the sphere is measured [@GousenbourgerMassartMusolasAbsilJaquesHendrickxMarzouk:2017], diffusion data can be captured as a signal or even multivariate data of symmetric positive definite matrices [@ValkonenBrediesKnoll2013], and orientations like they appear for electron backscattered diffraction (EBSD) data [@BachmannHielscherSchaeben2011]. Another example are fixed rank matrices, appearing in matrix completion [@Vandereycken:2013:1].
28+
For example, when data on the sphere is measured [@GousenbourgerMassartMusolasAbsilJacquesHendrickxMarzouk:2017], diffusion data can be captured as a signal or even multivariate data of symmetric positive definite matrices [@ValkonenBrediesKnoll2013], and orientations like they appear for electron backscattered diffraction (EBSD) data [@BachmannHielscherSchaeben2011]. Another example are fixed rank matrices, appearing in matrix completion [@Vandereycken:2013:1].
2929
Working on these data, for example doing data interpolation and approximation [@BergmannGousenbourger:2018:2], denoising [@LellmannStrekalovskiyKoetterCremers:2013:1; @BergmannFitschenPerschSteidl:2018], inpainting [@BergmannChanHielscherPerschSteidl:2016], or performing matrix completion [@GaoAbsil:2021], can usually be phrased as an optimization problem
3030

3131
$$ \text{Minimize}\quad f(x) \quad \text{where } x\in\mathcal M, $$
@@ -82,7 +82,7 @@ In the current version 0.3.17 of `Manopt.jl` the following algorithms are availa
8282
Given the [`Sphere`](https://juliamanifolds.github.io/Manifolds.jl/v0.7/manifolds/sphere.html) from `Manifolds.jl` and a set of unit vectors $p_1,...,p_N\in\mathbb R^3$, where $N$ is the number of data points,
8383
we can compute the generalization of the mean, called the Riemannian Center of Mass [@Karcher:1977:1], defined as the minimizer of the squared distances to the given data – a property that the mean in vector spaces fulfills:
8484

85-
$$ \operatorname*{arg\,min}_{x\in\mathcal M}\quad \displaystyle\sum_{k=1}^Nd_{\mathcal M}(x, p_k)^2, $$
85+
$$ \operatorname*{arg\,min}_{x\in\mathcal M}\quad \displaystyle\sum_{k=1}^N d_{\mathcal M}(x, p_k)^2, $$
8686

8787
where $d_{\mathcal M}$ denotes the length of a shortest geodesic connecting the points specified by its two arguments;
8888
this is called the Riemannian distance. For the sphere this [`distance`](https://juliamanifolds.github.io/Manifolds.jl/v0.7/manifolds/sphere.html#ManifoldsBase.distance-Tuple{AbstractSphere,%20Any,%20Any}) is given by the length of the shorter great arc connecting the two points.

src/Manopt.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,11 @@ Rn(args...; kwargs...) = Rn(Val(Rn_default()), args...; kwargs...)
171171
Rn_default()
172172
173173
Specify a default value to dispatch [`Rn`](@ref) on.
174-
This default is set to `Manifolds`, indicating, that when this package is loded,
174+
This default is set to `Manifolds`, indicating, that when this package is loaded,
175175
it is the preferred package to ask for a vector space space.
176176
177177
The default within `Manopt.jl` is to use the [`DefaultManifold`](@extref ManifoldsBase.DefaultManifold) from `ManifoldsBase.jl`.
178-
If you load `Manifolds.jl` this switches to using [`Euclidan`](@extref Manifolds.Euclidean).
178+
If you load `Manifolds.jl` this switches to using [`Euclidean`](@extref Manifolds.Euclidean).
179179
"""
180180
Rn_default() = :Manifolds
181181
Rn(::Val{T}, args...; kwargs...) where {T} = DefaultManifold(args...; kwargs...)

0 commit comments

Comments
 (0)