rhai_sci/constants.rs
1use rhai::plugin::*;
2
3#[export_module]
4#[allow(non_upper_case_globals)]
5pub mod constant_definitions {
6 use rhai::FLOAT;
7
8 // The ratio of a circle's circumference to its diameter.
9 #[allow(non_upper_case_globals)]
10 pub const pi: FLOAT = 3.14159265358979323846264338327950288;
11
12 //Speed of light in meters per second (m/s).
13 #[allow(non_upper_case_globals)]
14 pub const c: FLOAT = 299792458.0;
15
16 // Euler's number.
17 #[allow(non_upper_case_globals)]
18 pub const e: FLOAT = 2.71828182845904523536028747135266250;
19
20 // Acceleration due to gravity on Earth in meters per second per second (m/s^2).
21 #[allow(non_upper_case_globals)]
22 pub const g: FLOAT = 9.80665;
23
24 // The Planck constant in Joules per Hertz (J/Hz)
25 #[allow(non_upper_case_globals)]
26 pub const h: FLOAT = 6.62607015e-34;
27
28 // The golden ratio
29 #[allow(non_upper_case_globals)]
30 pub const phi: FLOAT = 1.61803398874989484820;
31
32 // Newtonian gravitational constant
33 pub const G: FLOAT = 6.6743015e-11;
34
35 /// Physical constants useful for science.
36 /// ### `pi: FLOAT`
37 /// The ratio of a circle's circumference to its diameter (non-dimensional).
38 /// ```typescript
39 /// assert_eq(pi, 3.14159265358979323846264338327950288);
40 /// ```
41 /// ### `c: FLOAT`
42 /// The speed of light in meters per second (m/s).
43 /// ```typescript
44 /// assert_eq(c, 299792458.0);
45 /// ```
46 /// ### `e: FLOAT`
47 /// Euler's number (non-dimensional).
48 /// ```typescript
49 /// assert_eq(e, 2.71828182845904523536028747135266250);
50 /// ```
51 /// ### `g: FLOAT`
52 /// The acceleration due to gravity on Earth in meters per second per second (m/s^2).
53 /// ```typescript
54 /// assert_eq(g, 9.80665);
55 /// ```
56 /// ### `h: FLOAT`
57 /// The Planck constant in Joules per Hertz (J/Hz).
58 /// ```typescript
59 /// assert_eq(h, 6.62607015e-34);
60 /// ```
61 /// ### `phi: FLOAT`
62 /// The golden ratio (non-dimensional).
63 /// ```typescript
64 /// assert_eq(phi, 1.61803398874989484820);
65 /// ```
66 /// ### `G: FLOAT`
67 /// The Newtonian gravitational constant (non-dimensional).
68 /// ```typescript
69 /// assert_eq(G, 6.6743015e-11);
70 /// ```
71 #[rhai_fn(name = "$CONSTANTS$")]
72 pub fn constants() {}
73}