fn queue_variable_by_counter(&mut self, variable: usize) -> Result<(), LinearProgramType<OF>> {
        match self.counters.variable[variable] {
            0 => {
                // If a variable is unfeasible before presolving, should have been detected during
                // loading as a trivial infeasibility. If unfeasible later, should be detected at
                // bound change.
                debug_assert!(self.updates.variable_feasible_value(variable).is_some());

                let value = if self.general_form.variables[variable].cost.is_zero() {
                    RemovedVariable::Solved(self.updates.variable_feasible_value(variable).unwrap())
                } else {
                    self.updates.optimize_column_independently(variable)?
                };
                self.remove_variable(variable, value);
            },
            1 => if self.general_form.variables[variable].cost.is_zero() {
                self.queues.slack.push(variable);
            },
            _ => (),
        }

        Ok(())
    }
/// When the variable counter drops low, this has implications for rules that should be tested.
///
/// Note that if a variable has no coefficients, we solve it directly in this function.
When the variable counter drops low, this has implications for rules that should be tested.
Note that if a variable has no coefficients, we solve it directly in this function.
When the variable counter drops low this has implications for rules that should be tested . Note that if a variable has no coefficients we solve it directly in this function .
fn queue_variable_by_counter(&mut self, variable: usize) -> Result<(), LinearProgramType<OF>> {
        match self.counters.variable[variable] {
            0 => {
                // If a variable is unfeasible before presolving, should have been detected during
                // loading as a trivial infeasibility. If unfeasible later, should be detected at
                // bound change.
                debug_assert!(self.updates.variable_feasible_value(variable).is_some());
                let value = if self.general_form.variables[variable].cost.is_zero() {
                    RemovedVariable::Solved(self.updates.variable_feasible_value(variable).unwrap())
                } else {
                    self.updates.optimize_column_independently(variable)?
                };
                self.remove_variable(variable, value);
            },
            1 => if self.general_form.variables[variable].cost.is_zero() {
                self.queues.slack.push(variable);
            },
            _ => (),
        }
        Ok(())
    }
fn queue_variable_by_counter ( & mut self , variable : usize ) -> Result < ( ) , LinearProgramType < OF > > { match self . counters . variable [ variable ] { 0 => { // If a variable is unfeasible before presolving, should have been detected during // loading as a trivial infeasibility. If unfeasible later, should be detected at // bound change. debug_assert ! ( self updates variable_feasible_value ( variable ) is_some ( ) ) ; let value = if self . general_form . variables [ variable ] . cost . is_zero ( ) { RemovedVariable :: Solved ( self . updates . variable_feasible_value ( variable ) . unwrap ( ) ) } else { self . updates . optimize_column_independently ( variable ) ? } ; self . remove_variable ( variable , value ) ; } , 1 => if self . general_form . variables [ variable ] . cost . is_zero ( ) { self . queues . slack . push ( variable ) ; } , _ => ( ) , } Ok ( ( ) ) }
When the variable counter drops low, this has implications for rules that should be tested.
When the variable counter drops low this has implications for rules that should be tested .
&mut self
variable
usize
&mut self
variable
usize