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
extern crate rand; pub mod util; pub mod lattice; pub mod state; pub mod energy; pub mod integrator; #[macro_export] macro_rules! hamiltonian { (@flatten $I: expr,) => ( $I ); (@flatten $I: expr, $J: expr, $($K:expr,)*) => ( hamiltonian!(@flatten hamiltonian!($I, $J), $($K,)*) ); ($I: expr) => ( $I ); ($I: expr, $J: expr) => ( $crate::energy::ComposedEnergy::new($I, $J) ); ($I: expr, $J: expr, $($K: expr),+) => ( hamiltonian!(@flatten hamiltonian!($I, $J), $($K,)+) ); }