1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! # Lib
//!
//! $$
//! V_0 = \mathbb{E}^{\mathbb{Q}}\!\left[e^{-\int_0^T r_t\,dt}\,\Pi(X_T)\right]
//! $$
//!
//#![warn(missing_docs)]
// Mutually exclusive global allocators. If both features are enabled (e.g.
// `cargo check --all-features` for CI smoke testing), `jemalloc` wins.
static GLOBAL: MiMalloc = MiMalloc;
static GLOBAL: Jemalloc = Jemalloc;
pub use stochastic_rs_ai as ai;
pub use stochastic_rs_copulas as copulas;
pub use simd_rng;
pub use stochastic_rs_distributions as distributions;
pub use stochastic_rs_quant as quant;
pub use stochastic_rs_stats as stats;
pub use stochastic_rs_stochastic as stochastic;
pub use stochastic_rs_viz as visualization;
// Python bindings will live in `stochastic-rs-py` (Phase 6 follow-up).
// The umbrella `python` feature is currently a no-op pending that migration.
/// Convenience prelude that re-exports the most commonly used types and traits.
///
/// Bring this in scope to get the canonical trait set (`ProcessExt`,
/// `FloatExt`, `ModelPricer`, `BivariateExt`, …) and the option-type enums
/// without pulling them one by one.
///
/// ```ignore
/// use stochastic_rs::prelude::*;
///
/// let bm = stochastic_rs::stochastic::process::bm::Bm::new(1000, Some(1.0));
/// let path = bm.sample();
/// ```