multicalc 0.10.0

Math for real-time embedded systems, in stable no_std Rust: state estimation, control, kinematics, Lie groups, autodiff, and linear algebra — from 64-bit servers to bare-metal microcontrollers
Documentation
//! Dynamics: how a rigid body moves under the forces put on it.
//!
//! - [`RigidBody`] — a single body free to move in all six directions. Give it the forces and
//!   turns acting on it and it says how it speeds up, which is what an integrator needs to move it
//!   forward in time.
//! - [`RigidBodyAcceleration`] — how fast the body's motion is changing, straight-line and
//!   turning.
//! - [`RigidBody::stepped`] — moves the whole state one tick forward, carrying the direction the
//!   body faces as a turn so it stays a true rotation.
//! - [`state_vector_from_free_joint`] / [`free_joint_from_state_vector`] — the same state written
//!   as thirteen loose numbers, which is the form the ODE integrators take.
//!
//! Everything is generic over [`Numeric`](crate::Numeric) (so `f32`/`f64`/autodiff), in SI units
//! and radians. Positions and straight-line motion are in world axes; turning and the forces
//! applied to the body are in the body's own axes. Depends on
//! [`linear_algebra`](crate::linear_algebra), [`spatial`](crate::spatial), and
//! [`ode`](crate::ode).

mod rigid_body;

pub use rigid_body::{
    RigidBody, RigidBodyAcceleration, STATE_DIMENSION, free_joint_from_state_vector,
    state_vector_from_free_joint,
};