![]() |
NDEVR
API Documentation
|
Templatized BaseVertex. More...
Public Member Functions | |
| BaseVertex () | |
| Default constructor. | |
| HessianBlockType & | A () |
| return the hessian block associated with the vertex | |
| Eigen::Matrix< g_type, t_dims, 1 > & | b () |
| return right hand side b of the constructed linear system | |
| const g_type & | b (int i) const final override |
| Returns a const reference to the i-th element of the b vector. | |
| g_type & | b (int i) final override |
| Returns a mutable reference to the i-th element of the b vector. | |
| g_type * | bData () final override |
| Returns a mutable pointer to the raw b vector data. | |
| void | clearQuadraticForm () final override |
| Zeros the b vector, clearing the accumulated quadratic form gradient. | |
| sint04 | copyB (g_type *b_) const final override |
| Copies the b vector into the provided array. | |
| sint04 | dimension () const final override |
| Returns the minimal dimension of this vertex. | |
| virtual void | discardTop () final override |
| Discards the top of the backup stack without restoring. | |
| const EstimateType & | estimate () const |
| return the current estimate of the vertex | |
| const g_type & | hessian (int i, int j) const final override |
| Returns a const reference to the Hessian element at (i,j). | |
| g_type & | hessian (int i, int j) final override |
| Returns a mutable reference to the Hessian element at (i,j). | |
| g_type * | hessianData () final override |
| Returns a mutable pointer to the raw Hessian data. | |
| g_type | hessianDeterminant () const final override |
| Returns the determinant of the Hessian block. | |
| void | mapHessianMemory (g_type *d) final override |
| Maps the Hessian block to an external memory buffer. | |
| virtual void | pop () final override |
| Restores the estimate from the top of the backup stack and removes it. | |
| virtual void | push () final override |
| Pushes the current estimate onto the backup stack. | |
| void | setEstimate (const EstimateType &et) |
| set the estimate for the vertex also calls updateCache() | |
| g_type | solveDirect (g_type lambda=0.0) final override |
| Solves the local linear system H*dx = b directly and applies the update. | |
| virtual int | stackSize () const final override |
| Returns the number of entries on the backup stack. | |
| Public Member Functions inherited from OptimizableGraph::OGVertex | |
| int | colInHessian () const |
| get the row of this vertex in the Hessian | |
| virtual sint04 | estimateDimension () const |
| returns the dimension of the extended representation used by get/setEstimate(g_type*) -1 if it is not supported | |
| bool | fixed () const |
| true => this node is fixed during the optimization | |
| virtual bool | getEstimateData (Buffer< g_type > &estimate) const |
| writes the estimater to an array of g_type | |
| virtual bool | getEstimateData (g_type *) const |
| writes the estimater to an array of g_type | |
| virtual bool | getMinimalEstimateData (Buffer< g_type > &estimate) const |
| writes the estimate to an array of g_type | |
| virtual bool | getMinimalEstimateData (g_type *) const |
| writes the estimate to an array of g_type | |
| int | hessianIndex () const |
| temporary index of this node in the parameter vector obtained from linearization | |
| bool | marginalized () const |
| true => this node is marginalized out during the optimization | |
| virtual sint04 | minimalEstimateDimension () const |
| returns the dimension of the extended representation used by get/setEstimate(g_type*) -1 if it is not supported | |
| void | oplus (const g_type *v) |
| Update the position of the node from the parameters in v. | |
| void | setColInHessian (int c) |
| set the row of this vertex in the Hessian | |
| bool | setEstimateData (const Buffer< g_type > &estimate) |
| sets the initial estimate from an array of g_type Implement setEstimateDataImpl() | |
| bool | setEstimateData (const g_type *estimate) |
| sets the initial estimate from an array of g_type Implement setEstimateDataImpl() | |
| void | setFixed (bool fixed) |
| true => this node should be considered fixed during the optimization | |
| void | setHessianIndex (int ti) |
| set the temporary index of the vertex in the parameter blocks | |
| virtual void | setId (int id) |
| sets the id of the node in the graph be sure that the graph keeps consistent after changing the id | |
| void | setMarginalized (bool marginalized) |
| true => this node should be marginalized out during the optimization | |
| bool | setMinimalEstimateData (const Buffer< g_type > &estimate) |
| sets the initial estimate from an array of g_type. | |
| bool | setMinimalEstimateData (const g_type *estimate) |
| sets the initial estimate from an array of g_type. | |
| Public Member Functions inherited from HyperGraph::HGVertex | |
| HGVertex (int id=-1) | |
| creates a vertex having an ID specified by the argument | |
| Buffer< HGEdge * > & | edges () |
| returns the set of hyper-edges that are leaving/entering in this vertex | |
| const Buffer< HGEdge * > & | edges () const |
| returns the set of hyper-edges that are leaving/entering in this vertex | |
| int | id () const |
| returns the id | |
| void | setId (int newId) |
| sets the id of this vertex | |
Protected Attributes | |
| Eigen::Matrix< g_type, t_dims, 1 > | _b |
| Right-hand side (gradient) vector of the quadratic form. | |
| BackupStackType | _backup |
| Stack for backing up and restoring estimates. | |
| EstimateType | _estimate |
| Current estimate for this vertex. | |
| HessianBlockType | _hessian |
| Mapped Hessian block for this vertex. | |
| Protected Attributes inherited from OptimizableGraph::OGVertex | |
| int | _colInHessian = 0 |
| Column of this vertex in the Hessian matrix. | |
| bool | _fixed = false |
| Whether this vertex is fixed during optimization. | |
| int | _hessianIndex = 0 |
| Index of this vertex in the Hessian. | |
| bool | _marginalized = false |
| Whether this vertex is marginalized (Schur complement). | |
| Protected Attributes inherited from HyperGraph::HGVertex | |
| Buffer< HGEdge * > | _edges |
| Set of edges connected to this vertex. | |
| int | _id |
| Unique identifier for this vertex. | |
Additional Inherited Members | |
| Protected Member Functions inherited from OptimizableGraph::OGVertex | |
| virtual void | oplusImpl (const g_type *v)=0 |
| update the position of the node from the parameters in v. | |
| virtual bool | setEstimateDataImpl (const g_type *) |
| writes the estimater to an array of g_type | |
| virtual bool | setMinimalEstimateDataImpl (const g_type *) |
| sets the initial estimate from an array of g_type | |
Templatized BaseVertex.
Templatized BaseVertex t_dims : minimal dimension of the vertex, e.g., 3 for rotation in 3D T : internal type to represent the estimate, e.g., Quaternion for rotation in 3D
Definition at line 18 of file base_vertex.h.
|
inline |
|
inlinefinaloverridevirtual |
Copies the b vector into the provided array.
| [in] | b_ | Destination array of at least t_dims elements. |
Implements OptimizableGraph::OGVertex.
Definition at line 75 of file base_vertex.h.
References _b.
|
inlinefinaloverridevirtual |
Maps the Hessian block to an external memory buffer.
| [in] | d | Pointer to the external memory of size t_dims * t_dims. |
Implements OptimizableGraph::OGVertex.
Definition at line 57 of file base_vertex.h.
References _hessian.
|
inlinefinaloverridevirtual |
Solves the local linear system H*dx = b directly and applies the update.
| [in] | lambda | Optional damping factor added to the diagonal. |
Implements OptimizableGraph::OGVertex.
Definition at line 43 of file base_vertex.h.
References _b, _hessian, IsInvalid(), and OptimizableGraph::OGVertex::oplus().