38 using Sample = std::pair<double, double>;
51 template <
class Basis>
54 using Parameters =
typename Basis::Parameters;
57 Parameters parameters_;
65 for (
const Sample sample : sequence) {
77 values.
insert<Parameters>(0, Parameters::Zero(N));
92 parameters_ = solution.
at(0);
static NonlinearFactorGraph NonlinearGraph(const Sequence &sequence, const SharedNoiseModel &model, size_t N)
Create nonlinear FG from Sequence.
Definition: FitBasis.h:61
static GaussianFactorGraph::shared_ptr LinearGraph(const Sequence &sequence, const SharedNoiseModel &model, size_t N)
Create linear FG from Sequence.
Definition: FitBasis.h:73
IsDerived< DERIVEDFACTOR > emplace_shared(Args &&... args)
Emplace a shared pointer to factor of given type.
Definition: FactorGraph.h:196
Factor Graph consisting of non-linear factors.
void insert(Key j, const Value &val)
Factor definitions for various Basis functors.
Vector & at(Key j)
Definition: VectorValues.h:139
Definition: FitBasis.h:52
Definition: VectorValues.h:74
std::map< double, double > Sequence
Our sequence representation is a map of {x: y} values where y = f(x)
Definition: FitBasis.h:36
Factor for enforcing the scalar value of the polynomial BASIS representation at x is the same as the ...
Definition: BasisFactors.h:39
Compute an interpolating basis.
Linear Factor Graph where all factors are Gaussians.
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: GaussianFactorGraph.h:82
Definition: NonlinearFactorGraph.h:55
Definition: chartTesting.h:28
FitBasis(const Sequence &sequence, const SharedNoiseModel &model, size_t N)
Construct a new FitBasis object.
Definition: FitBasis.h:89
Parameters parameters() const
Return Fourier coefficients.
Definition: FitBasis.h:96
std::pair< double, double > Sample
A sample is a key-value pair from a sequence.
Definition: FitBasis.h:38
noiseModel::Base::shared_ptr SharedNoiseModel
Definition: NoiseModel.h:741
std::shared_ptr< GaussianFactorGraph > linearize(const Values &linearizationPoint) const
Linearize a nonlinear factor graph.