fn after_bound_change(
        &mut self,
        variable: usize,
        direction: BoundDirection,
        change: Option<OF>,
    ) {
        debug_assert!(self.updates.removed_variables.iter().all(|&(j, _)| variable != j));
        debug_assert!(match direction {
            BoundDirection::Lower => change.as_ref().map_or(true, |v| v > &OF::zero()),
            BoundDirection::Upper => change.as_ref().map_or(true, |v| v < &OF::zero()),
        });

        if self.updates.is_variable_fixed(variable).is_some() && self.counters.is_variable_still_active(variable) {
            self.queues.substitution.push(variable);
        }

        match change {
            Some(difference) => self.update_activity_bounds(variable, direction, difference),
            None => self.update_activity_counters(variable, direction),
        }
    }
/// Performs actions that should be performed after a new variable bound is found.
///
/// These include:
///
/// * If a variable is now fixed, it should be substituted in the problem.
/// * Otherwise, some rows might need to have the existing activity bound recomputed
///
/// # Arguments
///
/// * `variable`: Variable who's bound was changed.
/// * `direction`: Whether the lower- or upper variable bound was updated.
/// * `change`: Whether another bound was previously known, and the difference between the
/// former and current bound.
Performs actions that should be performed after a new variable bound is found.
These include.

If a variable is now fixed, it should be substituted in the problem.
Otherwise, some rows might need to have the existing activity bound recomputed
Performs actions that should be performed after a new variable bound is found . These include . If a variable is now fixed it should be substituted in the problem . Otherwise some rows might need to have the existing activity bound recomputed
fn after_bound_change(
        &mut self,
        variable: usize,
        direction: BoundDirection,
        change: Option<OF>,
    ) {
        debug_assert!(self.updates.removed_variables.iter().all(|&(j, _)| variable != j));
        debug_assert!(match direction {
            BoundDirection::Lower => change.as_ref().map_or(true, |v| v > &OF::zero()),
            BoundDirection::Upper => change.as_ref().map_or(true, |v| v < &OF::zero()),
        });
        if self.updates.is_variable_fixed(variable).is_some() && self.counters.is_variable_still_active(variable) {
            self.queues.substitution.push(variable);
        }
        match change {
            Some(difference) => self.update_activity_bounds(variable, direction, difference),
            None => self.update_activity_counters(variable, direction),
        }
    }
fn after_bound_change ( & mut self , variable : usize , direction : BoundDirection , change : Option < OF > , ) { debug_assert ! ( self updates removed_variables iter ( ) all ( ( j ) variable j ) ) ; debug_assert ! ( match direction { BoundDirection Lower change as_ref ( ) map_or ( true v v OF zero ( ) ) BoundDirection Upper change as_ref ( ) map_or ( true v v OF zero ( ) ) } ) ; if self . updates . is_variable_fixed ( variable ) . is_some ( ) && self . counters . is_variable_still_active ( variable ) { self . queues . substitution . push ( variable ) ; } match change { Some ( difference ) => self . update_activity_bounds ( variable , direction , difference ) , None => self . update_activity_counters ( variable , direction ) , } }
Performs actions that should be performed after a new variable bound is found.
Performs actions that should be performed after a new variable bound is found .
&mut self
variable
usize
direction
BoundDirection
change
Option<OF>
&mut self
variable
usize
direction
BoundDirection
change
Option<OF>