Enregistré dans:
| Auteurs principaux: | , |
|---|---|
| Format: | Recurso digital |
| Langue: | |
| Publié: |
Zenodo
2025
|
| Accès en ligne: | https://doi.org/10.5281/zenodo.15102168 |
| Tags: |
Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
|
| _version_ | 1866902274456944640 |
|---|---|
| author | Valkonen, Tuomo von Koch, Heikki Antero |
| author_facet | Valkonen, Tuomo von Koch, Heikki Antero |
| contents | <p>This package contains <a href="https://www.rust-lang.org/">Rust</a> codes for the manuscript “<em>Forward-backward methods in bilaterally bounded Alexandrov spaces</em>” (<a href="https://arxiv.org/abs/2503.24126">arXiv:2503.24126</a>) by Heikki von Koch and Tuomo Valkonen ⟨tuomov@iki.fi⟩. It concerns the solution of problems of the type $$ \min_{x ∈ M} F(x) + G(x) $$ where $F$ is a smooth function and $G$ a possibly nonsmooth convex function on a manifold $M$, which we do not assume to be Riemannian. It may, for example, be an embedded manifold in $ℝ^3$ with sharp edges. We have implemented the cube and the cylinder, as well as squared and non-squared distance functions.</p> <h2>Installation and usage</h2> <h3>Installing dependencies</h3> <p>Most dependencies are managed by the Cargo build system of <a href="https://www.rust-lang.org/">Rust</a>. You will only need to manually install the “stable” Rust system itself. This can be done with <a href="https://rustup.rs/">rustup</a>.</p> <h3>Building and running the experiments</h3> <p>To compile and install the program, use:</p> <pre><code>cargo install --path=. </code></pre> <p>When doing this for the first time, several dependencies will be downloaded. After this, you may run the experiment with</p> <pre><code>non-riemannian-opt </code></pre> <p>Alternatively, you may build (without installing) and run the experiments with</p> <pre><code>cargo run --release </code></pre> <h3>Generating the graphical illustrations</h3> <p>We include LaTeX/PGFPLOTS files for graphically illustrating the numerical results. To generate <code>cube.pdf</code> and <code>cylinder.pdf</code> that visualise the computations, after running <code>non-riemannian-opt</code> as indicated above, you can use:</p> <pre><code>cd visualisations pdflatex cube pdflatex cylinder </code></pre> <h2>Internals and auxiliary results</h2> <p>If you are interested in the program internals, the integrated source code documentation may be built and opened with</p> <pre><code>cargo doc # build dependency docs misc/cargo-d --open # build and open KaTeX-aware docs for this crate </code></pre> <p>The <code>cargo-d</code> script ensures that KaTeX mathematics is rendered in the generated documentation through an ugly workaround. Unfortunately, <code>rustdoc</code>, akin to Rust largely itself, is stuck in 80's 7-bit gringo ASCII world, and does not support modern markdown features, such as mathematics.</p> <p>In the <code>doc/</code> subdirectory, you can find <code>aux_results.pdf</code> (and <code>.tex</code>) that includes additional detailed geodesic formulas that are not included in the main manuscript.</p> |
| format | Recurso digital |
| id | zenodo_https___doi_org_10_5281_zenodo_15102168 |
| institution | Zenodo |
| language | |
| publishDate | 2025 |
| publisher | Zenodo |
| record_format | zenodo |
| spellingShingle | Non-Riemannian optimisation Valkonen, Tuomo von Koch, Heikki Antero <p>This package contains <a href="https://www.rust-lang.org/">Rust</a> codes for the manuscript “<em>Forward-backward methods in bilaterally bounded Alexandrov spaces</em>” (<a href="https://arxiv.org/abs/2503.24126">arXiv:2503.24126</a>) by Heikki von Koch and Tuomo Valkonen ⟨tuomov@iki.fi⟩. It concerns the solution of problems of the type $$ \min_{x ∈ M} F(x) + G(x) $$ where $F$ is a smooth function and $G$ a possibly nonsmooth convex function on a manifold $M$, which we do not assume to be Riemannian. It may, for example, be an embedded manifold in $ℝ^3$ with sharp edges. We have implemented the cube and the cylinder, as well as squared and non-squared distance functions.</p> <h2>Installation and usage</h2> <h3>Installing dependencies</h3> <p>Most dependencies are managed by the Cargo build system of <a href="https://www.rust-lang.org/">Rust</a>. You will only need to manually install the “stable” Rust system itself. This can be done with <a href="https://rustup.rs/">rustup</a>.</p> <h3>Building and running the experiments</h3> <p>To compile and install the program, use:</p> <pre><code>cargo install --path=. </code></pre> <p>When doing this for the first time, several dependencies will be downloaded. After this, you may run the experiment with</p> <pre><code>non-riemannian-opt </code></pre> <p>Alternatively, you may build (without installing) and run the experiments with</p> <pre><code>cargo run --release </code></pre> <h3>Generating the graphical illustrations</h3> <p>We include LaTeX/PGFPLOTS files for graphically illustrating the numerical results. To generate <code>cube.pdf</code> and <code>cylinder.pdf</code> that visualise the computations, after running <code>non-riemannian-opt</code> as indicated above, you can use:</p> <pre><code>cd visualisations pdflatex cube pdflatex cylinder </code></pre> <h2>Internals and auxiliary results</h2> <p>If you are interested in the program internals, the integrated source code documentation may be built and opened with</p> <pre><code>cargo doc # build dependency docs misc/cargo-d --open # build and open KaTeX-aware docs for this crate </code></pre> <p>The <code>cargo-d</code> script ensures that KaTeX mathematics is rendered in the generated documentation through an ugly workaround. Unfortunately, <code>rustdoc</code>, akin to Rust largely itself, is stuck in 80's 7-bit gringo ASCII world, and does not support modern markdown features, such as mathematics.</p> <p>In the <code>doc/</code> subdirectory, you can find <code>aux_results.pdf</code> (and <code>.tex</code>) that includes additional detailed geodesic formulas that are not included in the main manuscript.</p> |
| title | Non-Riemannian optimisation |
| url | https://doi.org/10.5281/zenodo.15102168 |