#![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;