Crates.io | i_mth |
lib.rs | i_mth |
version | 0.1.2 |
source | src |
created_at | 2023-07-18 18:39:08.832766 |
updated_at | 2023-07-29 07:04:29.562843 |
description | A math library continuously under development made for use in particle and ridgid body dynamics and statics |
homepage | |
repository | https://github.com/i-Sage/i_mth |
max_upload_size | |
id | 919707 |
size | 29,581 |
This is a crate designed for use in easy to complex statics and dynamics problems.
The crate is made as lean as possible and method names are directly correlated to what they actually do.
All types currently in the crate and features that will be implemented later will all use the
f64
data type because well I am a freak of nature and I have accuracy issues.
Add this to Cargo.toml
[dependencies]
i_mth = "0.1.2"
use i_mth::vector3d::Vector3D;
fn main() {
// there are several available methods to create vectors
let v3d_0 = Vector3D::new(1.0, 1.0, 1.0);
let v3d_1 = Vector3D::set(1.0);
assert_eq!(v3d_0, v3d_1);
}
use i_mth::vector3d::Vector3D;
fn main() {
let f = Vector3D::new(400.0, 693.0, 0.0);
let r = Vector3D::new(-0.2, 0.16, 0.0);
let moment = r.cross(f);
assert_eq!(-202.6, moment.z);
}
use i_mth::utils::calc_escape_velocity;
fn main() {
let mass_of_moon = 7.342e22;
let radius_of_moon = 1737.4e3;
let escape_vel_of_moon = calc_escape_velocity(mass_of_moon, radius_of_moon);
println!("{} km/s", escape_vel_of_moon / 1000.0);
}
use i_mth::vector3d::Vector3D;
fn main() {
let unit_i = Vector3D::i();
let unit_j = Vector3D::j();
let unit_k = unit_i.cross(unit_j);
println!("{}", unit_k);
}