EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::Batched< F, Mark > Struct Template Reference

A function that takes every point at once, as batched() marks it (decisions.md [batched-functions]): it receives the points as the columns of a matrix X and writes into one output Y, a BatchedOutput the library provides, last. More...

#include <EmrysFilter/Models/Batched.h>

Public Types

using FunctionType = F
 the function
using MarkType = Mark
 the Jacobians it writes

Public Member Functions

template<typename In, typename Out, MatrixExpression X, typename... Rest>
auto operator() (In const &in, Out const &out, X const &x, Rest const &... rest) const

Public Attributes

F function
 the function

Static Public Attributes

static constexpr bool GivesJacobians = !std::is_same_v<Mark, internal::NoJacobians>
 whether the function writes Jacobians
static constexpr bool PerColumn = std::is_same_v<Mark, jacobians::PerColumn>
 whether it writes one Jacobian per column

Detailed Description

template<typename F, typename Mark = internal::NoJacobians>
struct Emrys::Batched< F, Mark >

A function that takes every point at once, as batched() marks it (decisions.md [batched-functions]): it receives the points as the columns of a matrix X and writes into one output Y, a BatchedOutput the library provides, last.

Template Parameters
Fthe function
Markthe Jacobians it writes: internal::NoJacobians, jacobians::PerColumn, or jacobians::Shared
See also
batched()

Member Function Documentation

◆ operator()()

template<typename F, typename Mark>
template<typename In, typename Out, MatrixExpression X, typename... Rest>
auto Emrys::Batched< F, Mark >::operator() ( In const & in,
Out const & out,
X const & x,
Rest const &... rest ) const
nodiscard
Returns
the function at one point, x, a vector in its input space in, as a batch of one column, with rest, the step of a process model or nothing, before its output: the value, a vector in the output space out, and with a mark that gives Jacobians a WithJacobian of it and the Jacobian over the input's differences, every block wanted. This is how Linearized and the iterated updates call a batched function, and how a function differentiated in the autodiff scalar is called (decisions.md [batched-functions]).

The documentation for this struct was generated from the following file: