EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Batched.h File Reference

Batched functions (decisions.md [batched-functions]): batched(), the mark that a function takes every point at once, as the columns of a matrix, and writes one output; the marks of the Jacobians it writes, jacobians::perColumn() and jacobians::shared(); and BatchedOutput, the output the library provides, sized once for the batch and for the blocks whose Jacobians it uses. More...

#include <array>
#include <cstddef>
#include <tuple>
#include <type_traits>
#include <utility>
#include <unsupported/Eigen/AutoDiff>
#include <EmrysFilter/Core/Forwarding.h>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Models/Methods.h>
#include <EmrysFilter/Spaces/Composite.h>
#include <EmrysFilter/Spaces/Space.h>
#include <EmrysFilter/Spaces/TagPath.h>

Go to the source code of this file.

Classes

struct  Emrys::jacobians::PerColumn
 The mark that a batched function writes one Jacobian per column, by block of its input: Y.jacobian<Name>(j), made by perColumn(). More...
struct  Emrys::jacobians::Shared
 The mark that a batched function writes one Jacobian for every column, by block of its input: Y.jacobian<Name>(), for a function linear in its input, made by shared(). More...
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. More...
class  Emrys::BatchedOutput< In, Out, Scalar_, Mark >
 The output of a batched function (decisions.md [batched-functions]): its values, a column per point, and the Jacobians the library uses, by block of the function's input, in storage the library provides and sizes once before the call. More...

Namespaces

namespace  Emrys::jacobians
 The marks of the Jacobians a batched function writes beside its values (decisions.md [batched-functions], [policy-factories]): perColumn() and shared(), given as batched(f, mark).

Concepts

concept  Emrys::JacobianMark
 Whether T is a mark of the Jacobians a batched function writes, made by a factory in Emrys::jacobians (decisions.md [batched-functions]).

Functions

constexpr PerColumn Emrys::jacobians::perColumn ()
constexpr Shared Emrys::jacobians::shared ()
template<typename F>
requires (!internal::isBatched<std::remove_cvref_t<F>> && !MatrixExpression<F>)
Batched< std::remove_cvref_t< F > > Emrys::batched (F &&function)
template<typename F, JacobianMark Mark>
requires (!internal::isBatched<std::remove_cvref_t<F>> && !MatrixExpression<F>)
Batched< std::remove_cvref_t< F >, std::remove_cvref_t< Mark > > Emrys::batched (F &&function, Mark)

Detailed Description

Batched functions (decisions.md [batched-functions]): batched(), the mark that a function takes every point at once, as the columns of a matrix, and writes one output; the marks of the Jacobians it writes, jacobians::perColumn() and jacobians::shared(); and BatchedOutput, the output the library provides, sized once for the batch and for the blocks whose Jacobians it uses.

Read Policies.h next.