|
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 |