Struct optimization_engine::constraints::FiniteSet [−][src]
pub struct FiniteSet<'a> { /* fields omitted */ }
Expand description
A finite set, $X = \{x_1, x_2, \ldots, x_n\}\subseteq\mathbb{R}^n$, given vectors $x_i\in\mathbb{R}^n$
Implementations
Construct a finite set, $X = \{x_1, x_2, \ldots, x_n\}$, given vectors $x_i\in\mathbb{R}^n$
Arguments
- data: vector of vectors (see example below)
Example
use optimization_engine::constraints::{Constraint, FiniteSet};
let data: &[&[f64]] = &[
&[1.0, 1.0],
&[0.0, 1.0],
&[1.0, 0.0],
&[0.0, 0.0],
];
let finite_set = FiniteSet::new(data);
Panics
This method will panic if (i) the given vector of data is empty and (ii) if the given vectors have unequal dimensions.
Trait Implementations
Projection on the current finite set
Traverses the elements of the vector, computes norm-2 distances
to each element, and updates the given vector x
with the closest
element from the finite set.
Parameters
x
: (input) given vector, (output) projection on finite set
Example
use optimization_engine::constraints::*;
let data: &[&[f64]] = &[
&[0.0, 0.0],
&[1.0, 1.0],
];
let finite_set = FiniteSet::new(data);
let mut x = [0.7, 0.6];
finite_set.project(&mut x); // compute projection
Panics
Does not panic
Auto Trait Implementations
impl<'a> RefUnwindSafe for FiniteSet<'a>
impl<'a> UnwindSafe for FiniteSet<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more