Skip to main content

rl_lang/interpreter/stdlib/math/constants/
mod.rs

1//! `std::math::consts` - mathematical constants from [`std::f64::consts`].
2//!
3//! All constants are zero-argument functions returning `f64`.
4//! Accessed as `std::math::consts::PI()` in rl.
5
6mod e;
7mod euler_gamma;
8mod frac_1_pi;
9mod frac_1_sqrt_2;
10mod frac_2_pi;
11mod frac_2_sqrt_pi;
12mod frac_pi_2;
13mod frac_pi_3;
14mod frac_pi_4;
15mod frac_pi_6;
16mod frac_pi_8;
17mod inf;
18mod is_inf;
19mod is_nan;
20mod ln_10;
21mod ln_2;
22mod log10_2;
23mod log10_e;
24mod log2_10;
25mod log2_e;
26mod nan;
27mod phi;
28mod pi;
29mod sqrt_2;
30mod tau;
31
32use crate::interpreter::native::Module;
33
34pub const KEYWORDS: &[&str] = &[
35    "E",
36    "PI",
37    "FRAC_1_PI",
38    "FRAC_1_SQRT_2",
39    "FRAC_2_PI",
40    "FRAC_2_SQRT_PI",
41    "FRAC_PI_2",
42    "FRAC_PI_3",
43    "FRAC_PI_4",
44    "FRAC_PI_6",
45    "FRAC_PI_8",
46    "INF",
47    "NAN",
48    "is_inf",
49    "is_nan",
50    "LN_10",
51    "LN_2",
52    "LOG10_2",
53    "LOG10_E",
54    "LOG2_10",
55    "LOG2_E",
56    "SQRT_2",
57    "EULER_GAMMA",
58    "PHI",
59    "TAU",
60];
61
62pub fn module() -> Module {
63    Module::new("consts")
64        .with_function("E", e::std_e)
65        .with_function("PI", pi::std_pi)
66        .with_function("PHI", phi::std_phi)
67        .with_function("TAU", tau::std_tau)
68        .with_function("INF", inf::std_inf)
69        .with_function("NAN", nan::std_nan)
70        .with_function("is_inf", is_inf::std_is_inf)
71        .with_function("is_nan", is_nan::std_is_nan)
72        .with_function("FRAC_1_PI", frac_1_pi::std_frac_1_pi)
73        .with_function("FRAC_2_PI", frac_2_pi::std_frac_2_pi)
74        .with_function("FRAC_1_SQRT_2", frac_1_sqrt_2::std_frac_1_sqrt_2)
75        .with_function("FRAC_2_SQRT_PI", frac_2_sqrt_pi::std_frac_2_sqrt_pi)
76        .with_function("EULER_GAMMA", euler_gamma::std_euler_gamma)
77        .with_function("LN_10", ln_10::std_ln_10)
78        .with_function("LN_2", ln_2::std_ln_2)
79        .with_function("LOG2_E", log2_e::std_log2_e)
80        .with_function("LOG2_10", log2_10::std_log2_10)
81        .with_function("LOG10_2", log10_2::std_log10_2)
82        .with_function("LOG10_E", log10_e::std_log10_e)
83        .with_function("FRAC_PI_2", frac_pi_2::std_frac_pi_2)
84        .with_function("FRAC_PI_3", frac_pi_3::std_frac_pi_3)
85        .with_function("FRAC_PI_4", frac_pi_4::std_frac_pi_4)
86        .with_function("FRAC_PI_6", frac_pi_6::std_frac_pi_6)
87        .with_function("FRAC_PI_8", frac_pi_8::std_frac_pi_8)
88        .with_function("SQRT_2", sqrt_2::std_sqrt_2)
89}