| |
1 |
| |
2 # pointsource_algs |
| |
3 |
| |
4 This repository contains [Rust][] codes for the manuscript “_Proximal methods for point source localisation_” by Tuomo Valkonen ⟨tuomov@iki.fi⟩. |
| |
5 It concerns solution of problems of the type |
| |
6 $$ |
| |
7 \min_{μ ∈ ℳ(Ω)}~ F(x) + λ \|μ\|_{ℳ(Ω)} + δ_{≥ 0}(x), |
| |
8 $$ |
| |
9 where $F(x)=\frac12\|Ax-b\|_2^2$ and $A \in 𝕃(ℳ(Ω); ℝ^m)$, and $ℳ(Ω)$ is the space of Radon measures on the (rectangular) domain $Ω ⊂ ℝ^n$. |
| |
10 |
| |
11 ## Installation and usage |
| |
12 |
| |
13 First install the Install [Rust][] compiler and `cargo`. |
| |
14 Also install the [GNU Scientific Library][gsl]. On a Mac with [Homebrew][] |
| |
15 installed, the latter can be done with |
| |
16 ```sh |
| |
17 $ brew install gsl |
| |
18 ``` |
| |
19 Then download [alg_tools][] and unpack it under the same directory as this package. |
| |
20 To compile the code and run the experiments in the manuscript, use |
| |
21 ```sh |
| |
22 $ cargo run --release |
| |
23 ``` |
| |
24 The `--release` flag is required to build optimised high performance code. |
| |
25 Without that flag the performance will be significantly worse. |
| |
26 |
| |
27 ## Documentation |
| |
28 |
| |
29 The integrated documentation may be built and opened with |
| |
30 ```sh |
| |
31 $ carg doc # build dependency docs |
| |
32 $ . misc/doc-alias.sh # load KaTeX helper macro |
| |
33 $ cargo-d --open # build and open KaTeX-aware docs for this crate |
| |
34 ``` |
| |
35 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. |
| |
36 |
| |
37 [alg_tools]: https://tuomov.iki.fi/software/alg_tools/ |
| |
38 [Rust]: https://www.rust-lang.org/ |
| |
39 [gsl]: https://www.gnu.org/software/gsl/ |
| |
40 [Homebrew]: https://brew.sh |
| |
41 |
| |
42 |