README.md

changeset 20
76e7d61874eb
parent 17
51bfde513cfa
equal deleted inserted replaced
18:2b75e98df693 20:76e7d61874eb
1 1
2 # AlgTools 2 # alg_tools
3 3
4 This package contains some general utility routines and tools for implementing 4 This package contains some general utility routines and tools for implementing
5 iterative algorithms and (abstract) numerical computing in Rust. Former versions 5 iterative algorithms and (abstract) numerical computing in [Rust]. Former versions
6 of the package were for Julia. They are no longer mintained. Included are: 6 of the package were for Julia. They are no longer maintained. Included are:
7 7
8 * [Linear operator], [mapping], [Euclidean space], and [norm] abstractions. 8 * [Linear operator], [mapping], [Euclidean space], and [norm] abstractions.
9 Matrices and vectors are supported via [nalgebra]. 9 Matrices and vectors are supported via [nalgebra].
10 There is also abstraction for [`AXPY`][AXPY] and [`GEMV`][GEMV] operations. 10 There is also abstraction for [`AXPY`][AXPY] and [`GEMV`][GEMV] operations.
11 * Small (on stack) [vectors] and [cubes] that implement the relevant 11 * Small (on stack) [vectors] and [cubes] that implement the relevant
14 one-dimensional [`linspace`][linspace]. 14 one-dimensional [`linspace`][linspace].
15 * [Algorithm iterator abstraction] for generically implementing 15 * [Algorithm iterator abstraction] for generically implementing
16 intermittent verbosity and stopping rules in iterative algorithms. 16 intermittent verbosity and stopping rules in iterative algorithms.
17 * The algorithm iterators can employ a [logger] to store intermittent results 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. 18 (e.g. function values) in memory to later [write] into a csv-file.
19 * Additional [iterators and iteration tools][], especially variants of `map` 19 * Additional [iterators and iteration tools], especially variants of `map`
20 with predictable type signatures. 20 with predictable type signatures.
21 * The `Float` and [associated traits] build upon [num_traits] to 21 * The `Float` and [associated traits] build upon [num_traits] to
22 conveniently write code that works with any floating point number type. 22 conveniently write code that works with any floating point number type.
23 * Geometrical [bisection trees] for efficient representations of sums of 23 * Geometrical [bisection trees] for efficient representations of sums of
24 functions and branch-and-bound optimisation. 24 functions and branch-and-bound optimisation.
29 ```console 29 ```console
30 cargo doc # build dependency docs 30 cargo doc # build dependency docs
31 misc/cargo-d --open # build and open KaTeX-aware docs for this crate 31 misc/cargo-d --open # build and open KaTeX-aware docs for this crate
32 ``` 32 ```
33 The `cargo-d` script ensures that KaTeX mathematics is rendered in the 33 The `cargo-d` script ensures that KaTeX mathematics is rendered in the
34 generated documentation. Unfortunately, `rustdoc`, akin to Rust largely itself, 34 generated documentation through an ugly workaround. Unfortunately,
35 is stuck in 80's 7-bit gringo ASCII world, and does not support modern markdown 35 `rustdoc`, akin to Rust largely itself, is stuck in 80's 7-bit gringo ASCII
36 features, such as mathematics. Instead, to render mathematics, an ugly 36 world, and does not support modern markdown features, such as mathematics.
37 workaround is needed together with lots of painful raw HTML escapes in the
38 documentation.
39 37
40 38
41 39 [Rust]: https://www.rust-lang.org
42 [nalgebra]: https://www.nalgebra.org 40 [nalgebra]: https://www.nalgebra.org
41 [num_traits]: https://docs.rs/num-traits/latest/num_traits/
43 [norm]: crate::norms 42 [norm]: crate::norms
44 [linear grids]: crate::lingrid 43 [linear grids]: crate::lingrid
45 [Euclidean space]: crate::euclidean 44 [Euclidean space]: crate::euclidean
46 [Linear operator]: crate::linops 45 [Linear operator]: crate::linops
47 [AXPY]: crate::linops::AXPY 46 [AXPY]: crate::linops::AXPY
54 [Float]: crate::types::Float 53 [Float]: crate::types::Float
55 [bisection trees]: crate::bisection_tree 54 [bisection trees]: crate::bisection_tree
56 [mapping]: crate::mapping::Mapping 55 [mapping]: crate::mapping::Mapping
57 [associated traits]: crate::types 56 [associated traits]: crate::types
58 [vectors]: crate::loc::Loc 57 [vectors]: crate::loc::Loc
59 [num_traits]: num_traits
60 [cubes]: crate::sets::Cube 58 [cubes]: crate::sets::Cube
61 59

mercurial