Struct metis::option::PFactor

source ·
pub struct PFactor(pub Idx);
Expand description

Specifies the minimum degree of the vertices that will be ordered last.

If the specified value is x > 0, then any vertices with a degree greater than 0.1*x*(average degree) are removed from the graph, an ordering of the rest of the vertices is computed, and an overall ordering is computed by ordering the removed vertices at the end of the overall ordering. For example if x == 40, and the average degree is 5, then the algorithm will remove all vertices with degree greater than 20. The vertices that are removed are ordered last (i.e., they are automatically placed in the top-level separator). Good values are often in the range of 60 to 200 (i.e., 6 to 20 times more than the average). Default value is 0, indicating that no vertices are removed.

Used to control whether the ordering algorithm should remove any vertices with high degree (i.e., dense columns). This is particularly helpful for certain classes of LP matrices, in which there a few vertices that are connected to many other vertices. By removing these vertices prior to ordering, the quality and the amount of time required to do the ordering improves.

Tuple Fields§

§0: Idx

Trait Implementations§

source§

impl Opt for PFactor

source§

const INDEX: usize = 15usize

Index of the option in the array from crate::Graph::set_options and crate::Mesh::set_options.
source§

fn value(self) -> Idx

Convert the value into metis’ format, for use with crate::Graph::set_options and crate::Mesh::set_options.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.