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
                    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));









                },
            }
        }

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







>
>
>
>
>
>
>
>
>







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;