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
//! # ferromotion-learn — differentiable, physics-informed learning for physical AI
//!
//! Where [`ferromotion_core`] gives you the *physics* — rigid-body dynamics, variational integrators,
//! contact, estimation — this crate gives you the *learning*: the differentiable machinery for models that
//! blend physics priors with data. It is the on-device, pure-Rust, WASM-clean counterpart to the
//! PyTorch-based physics-informed-ML stacks: no BLAS, no Python, no GPU required.
//!
//! The organizing idea (from the physics-informed ML literature) is that a physics prior can enter a learned
//! model at one of three places:
//! - **guided** — in the *data / features* (engineered inputs, geometric projections);
//! - **informed** — in the *loss* (penalize violation of a differential equation — a PINN);
//! - **encoded** — in the *architecture* (Lagrangian/Hamiltonian nets, Neural ODEs, structure-preserving
//! integrators).
//!
//! Everything rests on one keystone: **automatic differentiation**. [`autodiff`] is reverse-mode (for
//! gradients of a scalar loss w.r.t. many parameters — backpropagation); [`dual`] is forward-mode (for exact
//! higher-order derivatives w.r.t. a model's *inputs*, which PINNs and Lagrangian nets need). Both are
//! verified against finite differences.
pub use ;
pub use ModelBasedControl;
pub use Delan;
pub use PidController;
pub use ;
pub use Hnn;
pub use Msnn;
pub use NeuralOde;
pub use Mlp;
pub use Pinn;
pub use ;