pub struct WeightedObjective<T> { /* private fields */ }Expand description
Weighted combination of multiple objectives.
The final score is: sum(weight_i * score_i) / sum(weight_i). Invalid weights (non-finite, zero, or negative) and non-finite scores are skipped.
Implementations§
Trait Implementations§
Source§impl<T> Default for WeightedObjective<T>
impl<T> Default for WeightedObjective<T>
Source§impl<T: Send + Sync> Objective<T> for WeightedObjective<T>
impl<T: Send + Sync> Objective<T> for WeightedObjective<T>
Source§fn score(&self, candidate: &T, context: &ObjectiveContext) -> f64
fn score(&self, candidate: &T, context: &ObjectiveContext) -> f64
Evaluate a single candidate.
Source§fn precision(&self, _candidate: &T, _context: &ObjectiveContext) -> f64
fn precision(&self, _candidate: &T, _context: &ObjectiveContext) -> f64
Precision (inverse variance) estimate for the score of a candidate. Read more
Source§fn passes_score(&self, score: f64, context: &ObjectiveContext) -> bool
fn passes_score(&self, score: f64, context: &ObjectiveContext) -> bool
Check if a score passes the threshold. Read more
Source§fn passes(&self, candidate: &T, context: &ObjectiveContext) -> bool
fn passes(&self, candidate: &T, context: &ObjectiveContext) -> bool
Check if a candidate passes the threshold.
Source§fn batch_score(
&self,
candidates: &[T],
context: &ObjectiveContext,
) -> Vec<(usize, f64)>
fn batch_score( &self, candidates: &[T], context: &ObjectiveContext, ) -> Vec<(usize, f64)>
Score a batch of candidates and return the passing
(index, score) pairs. Read moreSource§fn select<'a>(
&self,
candidates: &'a [T],
context: &ObjectiveContext,
) -> ObjectiveResult<Selection<&'a T>>
fn select<'a>( &self, candidates: &'a [T], context: &ObjectiveContext, ) -> ObjectiveResult<Selection<&'a T>>
Select the best candidate from a list. Read more
Source§fn select_top<'a>(
&self,
candidates: &'a [T],
n: usize,
context: &ObjectiveContext,
) -> Vec<Selection<&'a T>>
fn select_top<'a>( &self, candidates: &'a [T], n: usize, context: &ObjectiveContext, ) -> Vec<Selection<&'a T>>
Select the top N candidates. Read more
Auto Trait Implementations§
impl<T> Freeze for WeightedObjective<T>
impl<T> !RefUnwindSafe for WeightedObjective<T>
impl<T> Send for WeightedObjective<T>
impl<T> Sync for WeightedObjective<T>
impl<T> Unpin for WeightedObjective<T>
impl<T> UnsafeUnpin for WeightedObjective<T>
impl<T> !UnwindSafe for WeightedObjective<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<O, T> DeterministicObjective<T> for O
impl<O, T> DeterministicObjective<T> for O
Source§fn select_deterministic<'a>(
&self,
candidates: &'a [T],
context: &ObjectiveContext,
) -> Result<Selection<&'a T>, ObjectiveError>
fn select_deterministic<'a>( &self, candidates: &'a [T], context: &ObjectiveContext, ) -> Result<Selection<&'a T>, ObjectiveError>
Select the best candidate with deterministic tie-breaking.
Source§fn select_top_deterministic<'a>(
&self,
candidates: &'a [T],
n: usize,
context: &ObjectiveContext,
) -> Vec<Selection<&'a T>>
fn select_top_deterministic<'a>( &self, candidates: &'a [T], n: usize, context: &ObjectiveContext, ) -> Vec<Selection<&'a T>>
Select the top N candidates with deterministic ordering.