Skip to main content

Point

Struct Point 

pub struct Point<'a> {
    pub values: &'a [f64],
    pub constraints: Option<&'a [f64]>,
}
Expand description

One solution as the comparison layer sees it: its objectives and, if it declared any, its constraint values.

A borrowed view rather than an owned struct, so a caller ranking trials borrows straight out of the FrozenTrials it already holds and copies nothing.

An empty constraint slice means “this solution declared no constraints” and is normalised to None by Point::new: an empty list carries no feasibility information, so treating it as a declaration would make every such point beat every point that genuinely declared none (see constrained_dominates).

use atune_core::pareto::Point;

let plain = Point::new(&[1.0, 2.0], &[]);
assert_eq!(plain.constraints, None, "an empty list is not a declaration");

let constrained = Point::new(&[1.0, 2.0], &[-0.5]);
assert!(constrained.is_feasible());

Fields§

§values: &'a [f64]

The objective values, one per study Direction.

§constraints: Option<&'a [f64]>

The constraint values, if the solution declared any. ≤ 0 is satisfied.

Implementations§

§

impl<'a> Point<'a>

pub const fn new(values: &'a [f64], constraints: &'a [f64]) -> Self

A point with objectives and constraints; an empty constraint slice becomes None.

pub const fn unconstrained(values: &'a [f64]) -> Self

A point that declares no constraints.

pub fn is_feasible(&self) -> bool

true if the point declared no constraints, or declared only satisfied ones.

A solution that declared nothing is not infeasible — it simply said nothing about feasibility.

pub fn violation(&self) -> f64

The point’s total constraint violation; 0 when it declared none.

Trait Implementations§

§

impl<'a> Clone for Point<'a>

§

fn clone(&self) -> Point<'a>

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
§

impl<'a> Copy for Point<'a>

§

impl<'a> Debug for Point<'a>

§

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

Formats the value using the given formatter. Read more
§

impl<'a> PartialEq for Point<'a>

§

fn eq(&self, other: &Point<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
§

impl<'a> StructuralPartialEq for Point<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Point<'a>

§

impl<'a> RefUnwindSafe for Point<'a>

§

impl<'a> Send for Point<'a>

§

impl<'a> Sync for Point<'a>

§

impl<'a> Unpin for Point<'a>

§

impl<'a> UnsafeUnpin for Point<'a>

§

impl<'a> UnwindSafe for Point<'a>

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more