RsBundle  Diff

Differences From Artifact [f80b6e5c56]:

  • File src/solver.rs — part of check-in [d67ab3a0b0] at 2016-10-11 08:45:35 on branch trunk — solver: Check bounds for validity. (user: fifr size: 31595)

To Artifact [12134cfbf2]:

  • File src/solver.rs — part of check-in [8d2547a9f9] at 2016-10-11 08:50:18 on branch trunk — Add variable+value update. (user: fifr size: 32036)

584
585
586
587
588
589
590









591
592
593
594
595
596
597
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606







+
+
+
+
+
+
+
+
+







                    if lower > upper {
                        return Err(Error::InvalidBounds(lower, upper))
                    }
                    let value = if lower > 0.0 { lower }
                    else if upper < 0.0 { upper }
                    else { 0.0 };
                    newvars.push((lower - value, upper - value));
                },
                Update::AddVariableValue{lower, upper, value} => {
                    if lower > upper {
                        return Err(Error::InvalidBounds(lower, upper))
                    }
                    if value < lower || value > upper {
                        return Err(Error::ViolatedBounds(lower, upper, value))
                    }
                    newvars.push((lower - value, upper - value));
                },
            }
        }

        if !newvars.is_empty() {
            let mut problem = &mut self.problem;
            let minorants = &self.minorants;