diff -r 000000000000 -r eb3c7813b67a README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Thu Dec 01 23:07:35 2022 +0200 @@ -0,0 +1,42 @@ + +# pointsource_algs + +This repository contains [Rust][] codes for the manuscript “_Proximal methods for point source localisation_” by Tuomo Valkonen ⟨tuomov@iki.fi⟩. +It concerns solution of problems of the type +$$ + \min_{μ ∈ ℳ(Ω)}~ F(x) + λ \|μ\|_{ℳ(Ω)} + δ_{≥ 0}(x), +$$ +where $F(x)=\frac12\|Ax-b\|_2^2$ and $A \in 𝕃(ℳ(Ω); ℝ^m)$, and $ℳ(Ω)$ is the space of Radon measures on the (rectangular) domain $Ω ⊂ ℝ^n$. + +## Installation and usage + +First install the Install [Rust][] compiler and `cargo`. +Also install the [GNU Scientific Library][gsl]. On a Mac with [Homebrew][] +installed, the latter can be done with +```sh +$ brew install gsl +``` +Then download [alg_tools][] and unpack it under the same directory as this package. +To compile the code and run the experiments in the manuscript, use +```sh +$ cargo run --release +``` +The `--release` flag is required to build optimised high performance code. +Without that flag the performance will be significantly worse. + +## Documentation + +The integrated documentation may be built and opened with +```sh +$ carg doc # build dependency docs +$ . misc/doc-alias.sh # load KaTeX helper macro +$ cargo-d --open # build and open KaTeX-aware docs for this crate +``` +The `cargo-d` alias ensures that KaTeX mathematics is rendered in the generated documentation. `Rustdoc` is obsolete rubbish that does not support modern markdown featues, so `cargo doc` does not render mathematics. Instead an ugly workaround is needed. + + [alg_tools]: https://tuomov.iki.fi/software/alg_tools/ + [Rust]: https://www.rust-lang.org/ + [gsl]: https://www.gnu.org/software/gsl/ + [Homebrew]: https://brew.sh + +