Skip to main content

Space

Trait Space 

Source
pub trait Space {
    type Point: Clone;

    // Required methods
    fn dimension(&self, at: &Self::Point) -> usize;
    fn step(&self, at: &Self::Point, step: &[Scalar]) -> Option<Self::Point>;
    fn same(&self, a: &Self::Point, b: &Self::Point) -> bool;
}
Expand description

Where minimize’s points are, and how a step moves one: the variables themselves, a step added to them (Euclidean) — or a manifold, where a step is taken from a point along its tangent space (a pose by the exponential map of a twist, say), and the Jacobians evaluated at a point are by steps from that point.

Required Associated Types§

Required Methods§

Source

fn dimension(&self, at: &Self::Point) -> usize

How many numbers a step from at takes.

Source

fn step(&self, at: &Self::Point, step: &[Scalar]) -> Option<Self::Point>

Where step takes at; None where it cannot. The point a step leads to is a free choice: sharp.

Source

fn same(&self, a: &Self::Point, b: &Self::Point) -> bool

Whether b, where a step from a led, is no different from a: the step changed nothing.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§