Struct optimization_engine::constraints::Halfspace [−][src]
pub struct Halfspace<'a> { /* fields omitted */ }
Expand description
A halfspace is a set given by $H = \{x \in \mathbb{R}^n {}:{} \langle c, x\rangle \leq b\}$.
Implementations
A halfspace is a set given by $H = \{x \in \mathbb{R}^n {}:{} \langle c, x\rangle \leq b\}$, where $c$ is the normal vector of the halfspace and $b$ is an offset.
This method constructs a new instance of Halfspace
with a given normal
vector and bias
Arguments
normal_vector
: the normal vector, $c$, as a sliceoffset
: the offset parameter, $b$
Returns
New instance of Halfspace
Panics
Does not panic. Note: it does not panic if you provide an empty slice as normal_vector
,
but you should avoid doing that.
Example
use optimization_engine::constraints::{Constraint, Halfspace};
let normal_vector = [1., 2.];
let offset = 1.0;
let halfspace = Halfspace::new(&normal_vector, offset);
let mut x = [-1., 3.];
halfspace.project(&mut x);
Trait Implementations
Projects on halfspace using the following formula:
$$\begin{aligned} \mathrm{proj}_{H}(x) = \begin{cases} x,& \text{ if } \langle c, x\rangle \leq b \\ x - \frac{\langle c, x\rangle - b} {\|c\|}c,& \text{else} \end{cases} \end{aligned}$$
where $H = \{x \in \mathbb{R}^n {}:{} \langle c, x\rangle \leq b\}$
Arguments
x
: (in) vector to be projected on the current instance of a halfspace, (out) projection on the second-order cone
Panics
This method panics if the length of x
is not equal to the dimension
of the halfspace.
Auto Trait Implementations
impl<'a> RefUnwindSafe for Halfspace<'a>
impl<'a> UnwindSafe for Halfspace<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more