problemreductions/rules/
spinglass_casts.rs

1//! Variant cast reductions for SpinGlass.
2
3use crate::impl_variant_reduction;
4use crate::models::graph::SpinGlass;
5use crate::topology::SimpleGraph;
6use crate::variant::CastToParent;
7
8impl_variant_reduction!(
9    SpinGlass,
10    <SimpleGraph, i32> => <SimpleGraph, f64>,
11    fields: [num_spins, num_interactions],
12    |src| SpinGlass::from_graph(
13        src.graph().clone(),
14        src.couplings().iter().map(|w| w.cast_to_parent()).collect(),
15        src.fields().iter().map(|w| w.cast_to_parent()).collect())
16);