README.md

changeset 52
f0e8704d3f0e
parent 50
39c5e6c7759d
child 56
3a784e6e475a
child 57
5c9c5649c35d
--- a/README.md	Tue Aug 01 10:25:09 2023 +0300
+++ b/README.md	Mon Feb 17 13:54:53 2025 -0500
@@ -1,19 +1,19 @@
 
 # Proximal methods for point source localisation: the implementation
 
-This package contains [Rust] codes for the manuscript “_Proximal methods for
-point source localisation_” ([arXiv:2212.02991]) by Tuomo Valkonen
-⟨tuomov@iki.fi⟩. It concerns solution of problems of the type
+This package contains the [Rust] codes for the numerical experiments in the articles
+* T. Valkonen, “_Proximal methods for
+point source localisation_”, Journal of Nonsmooth Analysis and Optimization  4 (2023), 10433, [doi:10.46298/jnsao-2023-10433] ([arXiv:2212.02991])
+* T. Valkonen, “_Point source localisation with unbalanced optimal transport_” (2025), submitted.
+
+It concerns solution of problems of the type
 $$
     \min_{μ ∈ ℳ(Ω)}~ F(μ) + λ \|μ\|_{ℳ(Ω)} + δ_{≥ 0}(μ),
 $$
 where $F$ is a data term, and $ℳ(Ω)$ is the space of Radon measures on the
 (rectangular) domain $Ω ⊂ ℝ^n$. Implemented are $F(μ)=\frac12\|Aμ-b\|_2^2$ and
 $F(μ)=\|Aμ-b\|_1$ for the forward operator $A \in 𝕃(ℳ(Ω); ℝ^m)$ modelling a
-simple sensor grid. For the 2-norm-squared data term implemented are the
-algorithms μFB, μFISTA, and μPDPS from the aforementioned manuscript along with
-comparison relaxed and fully corrective conditional gradient methods from the
-literature. For the 1-norm data term only the μPDPS is applicable.
+simple sensor grid.
 
 ## Installation and usage
 
@@ -36,8 +36,8 @@
     brew install gsl
     ```
     For other operating systems, suggestions are available in the [rust-GSL]
-    crate documentation. On Windows, you will likely need to pass extra
-    `RUSTFLAGS` options to Cargo in the following steps to locate the library.
+    crate documentation. You may need to pass extra `RUSTFLAGS` options to
+    Cargo in the following steps to locate the library.
 
 4. Download [alg_tools] and unpack it under the same directory as this
    package.
@@ -49,38 +49,33 @@
   [rust-GSL]: https://docs.rs/GSL/6.0.0/rgsl/
   [Homebrew]: https://brew.sh
   [arXiv:2212.02991]: https://arxiv.org/abs/2212.02991
+  [doi:10.46298/jnsao-2023-10433]: http://doi.org/10.46298/jnsao-2023-10433
 
 ### Building and running the experiments
 
-To compile the code and run the experiments in the manuscript, use
+To compile and install the program, use
+```console
+cargo install --path=.
+```
+When doing this for the first time, several dependencies will be downloaded.
+Now you can run the default set of experiments with
+```
+pointsource_algs -o results
+```
+The `-o results` option tells `pointsource_algs` to write results in the
+`results` directory. The option is required.
+
+Alternatively, you may build and run the program without installing with
 ```console
 cargo run --release -- -o results
 ```
-When doing this for the first time, several dependencies will be downloaded.
-The double-dash (`--`) separates the arguments of Cargo and this software,
-`pointsource_algs`. The `--release` option to Cargo is required for `rustc` to
-build optimised high performance code. Without that flag the performance will
-be significantly worse. The `-o results` option tells `pointsource_algs` to
-write results in the `results` directory. The option is required.
-
-Alternatively, you may build the executable with
-```console
-cargo build --release
-```
-and then run it with
-```
-target/release/pointsource_algs -o results
-```
+The double-dash separates the options for the Cargo build system 
+and `pointsource_algs`.
 
 ### Documentation
 
 Use the `--help` option to get an extensive listing of command line options to
-customise algorithm parameters and the experiments performed. As above with
-`-o`, if using `cargo` to run the executable, you have to pass any arguments
-to `pointsource_algs` after a double-dash:
-```console
-cargo run --release -- --help
-```
+customise algorithm parameters and the experiments performed.
 
 ## Internals
 

mercurial