160 typename Eigen::Matrix<double, EdgeDimension, VertexDimension,
188 std::min({Edge::template VertexXnType<Ints>::Dimension...}) > 0,
189 "Dynamically sized vertices are not supported");
190 EstimateAccess estimateAccess;
191 (*that)(estimateAccess.template data<Ints>(that)..., that->errorData());
200 std::min({Edge::template VertexXnType<Ints>::Dimension...}) > 0,
201 "Dynamically sized vertices are not supported");
203 if (that->allVerticesFixed()) {
204 (void(that->template jacobianOplusXn<Ints>().setZero()), ...);
210 Edge::template VertexXnType<Ints>::Dimension>...>
215 EstimateAccess estimateAccess;
216 double* parameters[] = {estimateAccess.template data<Ints>(that)...};
223 double* jacobians[] = {
224 that->template vertexXn<Ints>()->fixed()
226 :
const_cast<double*
>(std::get<Ints>(ad_jacobians).data())...};
228 double errorValue[Edge::Dimension];
230 Edge::template VertexXnType<Ints>::Dimension...>;
234 *that, parameters, Edge::Dimension, errorValue, jacobians);
236 assert(diffState &&
"Error during Automatic Differentiation");
238 (void(std::get<Ints>(ad_jacobians).setZero()), ...);
243 (void(that->template vertexXn<Ints>()->fixed()
244 ? (that->template jacobianOplusXn<Ints>().setZero(), 0)
245 : (
assign(that->template jacobianOplusXn<Ints>(),
246 std::get<Ints>(ad_jacobians)),