fn compute_solution_where_possible(&mut self) {
        // To avoid recomputations, we store all computed intermediate values in this collection.
        let mut new_solutions = vec![None; self.original_variables.len()];
        let mut changed = Vec::new();
        for (j, (_, variable)) in self.original_variables.iter().enumerate() {
            if let OriginalVariable::Removed(FunctionOfOthers { .. }) = variable {
                if self.compute_solution_value(j, &mut new_solutions).is_some() {
                    changed.push(j);
                }
            }
        }

        // Save all values
        for (variable, solution) in new_solutions.into_iter().enumerate() {
            if let Some(value) = solution {
                self.original_variables[variable].1 = OriginalVariable::Removed(Solved(value));
            }
        }

        // TODO: Include updating of fixed cost in case a presolved variable as a function of others
        //  had a nonzero cost.
    }
/// Compute explicit solution from slack variables where possible.
Compute explicit solution from slack variables where possible.
Compute explicit solution from slack variables where possible .
fn compute_solution_where_possible(&mut self) {
        // To avoid recomputations, we store all computed intermediate values in this collection.
        let mut new_solutions = vec![None; self.original_variables.len()];
        let mut changed = Vec::new();
        for (j, (_, variable)) in self.original_variables.iter().enumerate() {
            if let OriginalVariable::Removed(FunctionOfOthers { .. }) = variable {
                if self.compute_solution_value(j, &mut new_solutions).is_some() {
                    changed.push(j);
                }
            }
        }
        // Save all values
        for (variable, solution) in new_solutions.into_iter().enumerate() {
            if let Some(value) = solution {
                self.original_variables[variable].1 = OriginalVariable::Removed(Solved(value));
            }
        }
        // TODO: Include updating of fixed cost in case a presolved variable as a function of others
        //  had a nonzero cost.
    }
fn compute_solution_where_possible ( & mut self ) { // To avoid recomputations, we store all computed intermediate values in this collection. let mut new_solutions = vec ! [ None self original_variables len ( ) ] ; let mut changed = Vec :: new ( ) ; for ( j , ( _ , variable ) ) in self . original_variables . iter ( ) . enumerate ( ) { if let OriginalVariable :: Removed ( FunctionOfOthers { .. } ) = variable { if self . compute_solution_value ( j , & mut new_solutions ) . is_some ( ) { changed . push ( j ) ; } } } // Save all values for ( variable , solution ) in new_solutions . into_iter ( ) . enumerate ( ) { if let Some ( value ) = solution { self . original_variables [ variable ] . 1 = OriginalVariable :: Removed ( Solved ( value ) ) ; } } // TODO: Include updating of fixed cost in case a presolved variable as a function of others //  had a nonzero cost. }
Compute explicit solution from slack variables where possible.
Compute explicit solution from slack variables where possible .
&mut self
&mut self