pub fn components(p: &Problem) -> Vec<Component>Expand description
Split a problem into independent components.
- Fixed variables never connect rules (they are constants).
- Rules with no free variable form their own
Backend::Trivialcomponent (checked for violation only). - Free variables touched only by targets/stays form trivial components.
- A component is
Backend::Linearwhen every row of every rule is affine in the free variables; otherwise the whole component isBackend::Numeric.