[][src]Struct contest_algorithms::order::PiecewiseLinearConvexFn

pub struct PiecewiseLinearConvexFn { /* fields omitted */ }

Represents a maximum (upper envelope) of a collection of linear functions of one variable, evaluated using an online version of the convex hull trick. It combines the offline algorithm with square root decomposition, resulting in an asymptotically suboptimal but simple algorithm with good amortized performance: N inserts interleaved with Q queries yields O(N sqrt Q + Q log N) time complexity in general, or O(N + Q log N) if all queries come after all inserts.

Implementations

impl PiecewiseLinearConvexFn[src]

pub fn max_with(&mut self, new_m: f64, new_b: f64)[src]

Replaces the represented function with the maximum of itself and a provided line

pub fn evaluate(&mut self, x: f64) -> f64[src]

Evaluates the function at x with good amortized runtime

Trait Implementations

impl Default for PiecewiseLinearConvexFn[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.