Skip to main content

Quadratic

Struct Quadratic 

Source
pub struct Quadratic<const MAX: usize = 32, const MIN: usize = 9>;
Expand description

Quadratic split — Boost’s textbook default.

O(n²): pick the two children whose combined bounding box wastes the most area as the seeds of the two groups, then assign each remaining child to whichever group’s box it enlarges least. Mirrors index/detail/rtree/quadratic/redistribute_elements.hpp.

The type’s own <32, 9> default is a symmetric alternative; it is not the default strategy of crate::Rtree. Treat an explicit strategy choice as a workload-specific opt-in and follow the module tuning guide.

Trait Implementations§

Source§

impl<const MAX: usize, const MIN: usize> Clone for Quadratic<MAX, MIN>

Source§

fn clone(&self) -> Quadratic<MAX, MIN>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const MAX: usize, const MIN: usize> Copy for Quadratic<MAX, MIN>

Source§

impl<const MAX: usize, const MIN: usize> Debug for Quadratic<MAX, MIN>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const MAX: usize, const MIN: usize> Default for Quadratic<MAX, MIN>

Source§

fn default() -> Quadratic<MAX, MIN>

Returns the “default value” for a type. Read more
Source§

impl<const MAX: usize, const MIN: usize> SplitParameters for Quadratic<MAX, MIN>

Source§

const MAX: usize = MAX

Maximum children per node before it must split.
Source§

const MIN: usize = MIN

Minimum children each node must keep after a split.
Source§

fn split(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>)

Partition entries (a bounds-per-child list) into two groups of indices, each of size at least Self::MIN.
Source§

const LEAF_MAX: usize = Self::MAX

Maximum values in a leaf. Defaults to Self::MAX.
Source§

const LEAF_MIN: usize = Self::MIN

Minimum values in either half of a split leaf.
Source§

const BRANCH_MAX: usize = Self::MAX

Maximum children in a branch. Defaults to Self::MAX.
Source§

const BRANCH_MIN: usize = Self::MIN

Minimum children in either half of a split branch.
Source§

const BULK_LEAF_MAX: usize = Self::LEAF_MAX

Maximum values per leaf created by bulk loading.
Source§

const BULK_BRANCH_MAX: usize = Self::BRANCH_MAX

Maximum children per branch created by bulk loading.
Source§

fn split_leaf(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>)

Partition an overflowing leaf.
Source§

fn split_branch(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>)

Partition an overflowing branch.

Auto Trait Implementations§

§

impl<const MAX: usize, const MIN: usize> Freeze for Quadratic<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> RefUnwindSafe for Quadratic<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> Send for Quadratic<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> Sync for Quadratic<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> Unpin for Quadratic<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> UnsafeUnpin for Quadratic<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> UnwindSafe for Quadratic<MAX, MIN>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> SameAs<T> for T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.