Sat, 10 Dec 2022 16:23:58 +0200
Add rust-version specification to Cargo.toml
0 | 1 | |
20 | 2 | # alg_tools |
0 | 3 | |
16 | 4 | This package contains some general utility routines and tools for implementing |
20 | 5 | iterative algorithms and (abstract) numerical computing in [Rust]. Former versions |
6 | of the package were for Julia. They are no longer maintained. Included are: | |
0 | 7 | |
17 | 8 | * [Linear operator], [mapping], [Euclidean space], and [norm] abstractions. |
9 | Matrices and vectors are supported via [nalgebra]. | |
16 | 10 | There is also abstraction for [`AXPY`][AXPY] and [`GEMV`][GEMV] operations. |
17 | 11 | * Small (on stack) [vectors] and [cubes] that implement the relevant |
16 | 12 | abstractions and vector space operations. |
17 | 13 | * Multi-dimensional [linear grids], including the familiar-from-Matlab |
16 | 14 | one-dimensional [`linspace`][linspace]. |
17 | 15 | * [Algorithm iterator abstraction] for generically implementing |
16 | 16 | intermittent verbosity and stopping rules in iterative algorithms. |
17 | 17 | * The algorithm iterators can employ a [logger] to store intermittent results |
18 | (e.g. function values) in memory to later [write] into a csv-file. | |
20 | 19 | * Additional [iterators and iteration tools], especially variants of `map` |
16 | 20 | with predictable type signatures. |
17 | 21 | * The `Float` and [associated traits] build upon [num_traits] to |
16 | 22 | conveniently write code that works with any floating point number type. |
17 | 23 | * Geometrical [bisection trees] for efficient representations of sums of |
16 | 24 | functions and branch-and-bound optimisation. |
25 | ||
26 | ## Building the documentation | |
0 | 27 | |
16 | 28 | Integrated source code documentation may be built and opened with |
29 | ```console | |
30 | cargo doc # build dependency docs | |
31 | misc/cargo-d --open # build and open KaTeX-aware docs for this crate | |
32 | ``` | |
33 | The `cargo-d` script ensures that KaTeX mathematics is rendered in the | |
20 | 34 | generated documentation through an ugly workaround. Unfortunately, |
35 | `rustdoc`, akin to Rust largely itself, is stuck in 80's 7-bit gringo ASCII | |
36 | world, and does not support modern markdown features, such as mathematics. | |
16 | 37 | |
38 | ||
20 | 39 | [Rust]: https://www.rust-lang.org |
16 | 40 | [nalgebra]: https://www.nalgebra.org |
20 | 41 | [num_traits]: https://docs.rs/num-traits/latest/num_traits/ |
16 | 42 | [norm]: crate::norms |
43 | [linear grids]: crate::lingrid | |
44 | [Euclidean space]: crate::euclidean | |
45 | [Linear operator]: crate::linops | |
46 | [AXPY]: crate::linops::AXPY | |
47 | [GEMV]: crate::linops::GEMV | |
48 | [linspace]: crate::lingrid::linspace | |
49 | [Algorithm iterator abstraction]: crate::iterate | |
50 | [logger]: crate::logger | |
51 | [write]: crate::tabledump | |
52 | [iterators and iteration tools]: crate::iter | |
53 | [Float]: crate::types::Float | |
54 | [bisection trees]: crate::bisection_tree | |
55 | [mapping]: crate::mapping::Mapping | |
56 | [associated traits]: crate::types | |
57 | [vectors]: crate::loc::Loc | |
58 | [cubes]: crate::sets::Cube | |
0 | 59 |