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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#![crate_name = "ndarray_unit"]
mod unit;
pub use unit::BaseUnit;
pub use unit::Unit;
pub fn get_meter() -> Unit {
Unit::from_vec(vec![(BaseUnit::METER, 1)])
}
pub fn get_second() -> Unit {
Unit::from_vec(vec![(BaseUnit::SECOND, 1)])
}
pub fn get_candela() -> Unit {
Unit::from_vec(vec![(BaseUnit::CANDELA, 1)])
}
pub fn get_mole() -> Unit {
Unit::from_vec(vec![(BaseUnit::MOLE, 1)])
}
pub fn get_kelvin() -> Unit {
Unit::from_vec(vec![(BaseUnit::KELVIN, 1)])
}
pub fn get_ampere() -> Unit {
Unit::from_vec(vec![(BaseUnit::AMPERE, 1)])
}
pub fn get_newton() -> Unit {
Unit::from_vec(vec![
(BaseUnit::KILOGRAM, 1),
(BaseUnit::METER, 1),
(BaseUnit::SECOND, -2),
])
}
pub fn get_joule() -> Unit {
&get_newton() * &get_meter()
}
pub fn get_watt() -> Unit {
Unit::from_vec(vec![
(BaseUnit::KILOGRAM, 1),
(BaseUnit::METER, 2),
(BaseUnit::SECOND, -3),
])
}
pub fn get_volt() -> Unit {
&get_watt() * &get_ampere().get_inverse()
}
pub fn get_ohm() -> Unit {
&get_volt() / &get_ampere()
}
pub fn get_siemens() -> Unit {
get_ohm().get_inverse()
}
pub fn get_pascal() -> Unit {
Unit::from_vec(vec![
(BaseUnit::KILOGRAM, 1),
(BaseUnit::METER, -1),
(BaseUnit::SECOND, -2),
])
}
pub fn get_coulomb() -> Unit {
&get_ampere() * &get_second()
}
pub fn get_farad() -> Unit {
&get_coulomb() / &get_volt()
}
pub fn get_henry() -> Unit {
Unit::from_vec(vec![
(BaseUnit::KILOGRAM, 1),
(BaseUnit::METER, 2),
(BaseUnit::SECOND, -2),
(BaseUnit::AMPERE, -2),
])
}
pub fn get_weber() -> Unit {
&get_volt() * &get_second()
}
pub fn get_becquerel() -> Unit {
get_second().get_inverse()
}
pub fn get_hertz() -> Unit {
get_second().get_inverse()
}
pub fn get_tesla() -> Unit {
Unit::from_vec(vec![
(BaseUnit::KILOGRAM, 1),
(BaseUnit::SECOND, -2),
(BaseUnit::AMPERE, -1),
])
}
#[cfg(test)]
mod test;