Class sym::Linearizer¶
- 
template<typename ScalarType>
 class Linearizer¶
- Class for evaluating multiple Factors at the linearization point given by a Values. - Stores the original Factors as well as the LinearizedFactors, and provides tools for aggregating keys and building a large jacobian / hessian for optimization. - For efficiency, prefer calling Relinearize() instead of re-constructing this object! - Public Functions - 
Linearizer(const std::string &name, const std::vector<Factor<Scalar>> &factors, const std::vector<Key> &key_order = {}, bool include_jacobians = false, bool debug_checks = false)¶
- Construct a Linearizer from factors and optional keys - Parameters:
- factors – Only stores a pointer, MUST be in scope for the lifetime of this object! 
- key_order – If provided, acts as an ordered set of keys that form the state vector to optimize. Can equal the set of all factor keys or a subset of all factor keys. If not provided, it is computed from all keys for all factors using a default ordering. 
- debug_checks – Whether to perform additional sanity checks for NaNs. This uses additional compute but not additional memory except for logging. 
 
 
 - 
void Relinearize(const Values<Scalar> &values, SparseLinearization<Scalar> &linearization)¶
- Update linearization at a new evaluation point - This is more efficient than reconstructing this object repeatedly. On the first call, it will allocate memory and perform analysis needed for efficient repeated relinearization. - TODO(aaron): This should be const except that it can initialize the object 
 - 
bool IsInitialized() const¶
- Whether this contains values, versus having not been evaluated yet 
 - 
const std::vector<LinearizedSparseFactor> &LinearizedSparseFactors() const¶
 
- 
Linearizer(const std::string &name, const std::vector<Factor<Scalar>> &factors, const std::vector<Key> &key_order = {}, bool include_jacobians = false, bool debug_checks = false)¶