fn constraint_group_start_indices(&self) ->[usize; NR_VARIABLE_TYPES] {
        let amounts_per_block = [
            self.nr_equality_constraints,
            self.nr_range_constraints,
            self.nr_upper_bounded_constraints,
            self.nr_lower_bounded_constraints,
            self.bound_index_to_non_slack_variable_index.len(),
            self.nr_range_slack_bounds(),
        ];

        Self::cumulative_sum(amounts_per_block)
    }
/// Indices at which a different type of constraints starts.
///
/// See the struct documentation for a visualization.
///
/// The indices start at zero, because the first block starts at index 0.
Indices at which a different type of constraints starts.
See the struct documentation for a visualization.

The indices start at zero, because the first block starts at index 0.
Indices at which a different type of constraints starts . See the struct documentation for a visualization . The indices start at zero because the first block starts at index 0 .
fn constraint_group_start_indices(&self) ->[usize; NR_VARIABLE_TYPES] {
        let amounts_per_block = [
            self.nr_equality_constraints,
            self.nr_range_constraints,
            self.nr_upper_bounded_constraints,
            self.nr_lower_bounded_constraints,
            self.bound_index_to_non_slack_variable_index.len(),
            self.nr_range_slack_bounds(),
        ];
        Self::cumulative_sum(amounts_per_block)
    }
fn constraint_group_start_indices ( & self ) -> [ usize ; NR_VARIABLE_TYPES ] { let amounts_per_block = [ self . nr_equality_constraints , self . nr_range_constraints , self . nr_upper_bounded_constraints , self . nr_lower_bounded_constraints , self . bound_index_to_non_slack_variable_index . len ( ) , self . nr_range_slack_bounds ( ) , ] ; Self :: cumulative_sum ( amounts_per_block ) }
Indices at which a different type of constraints starts.
Indices at which a different type of constraints starts .
&self
&self