From e9ddee4322463db425c40d950a35d8d80a71d93a Mon Sep 17 00:00:00 2001 From: Mike Bosse Date: Thu, 9 Jul 2015 09:39:13 +0200 Subject: [PATCH] fixed bug in expression traceExecution --- gtsam/nonlinear/internal/ExpressionNode.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gtsam/nonlinear/internal/ExpressionNode.h b/gtsam/nonlinear/internal/ExpressionNode.h index d8f9cf3ff..f3c19e1aa 100644 --- a/gtsam/nonlinear/internal/ExpressionNode.h +++ b/gtsam/nonlinear/internal/ExpressionNode.h @@ -416,8 +416,9 @@ public: Record* record = new (ptr) Record(); ptr += upAligned(sizeof(Record)); record->value1 = expression1_->traceExecution(values, record->trace1, ptr); + ptr += expression1_->traceSize(); record->value2 = expression2_->traceExecution(values, record->trace2, ptr); - ptr += expression1_->traceSize() + expression2_->traceSize(); + ptr += expression2_->traceSize(); trace.setFunction(record); return function_(record->value1, record->value2, record->dTdA1, record->dTdA2); @@ -534,10 +535,11 @@ public: Record* record = new (ptr) Record(); ptr += upAligned(sizeof(Record)); record->value1 = expression1_->traceExecution(values, record->trace1, ptr); + ptr += expression1_->traceSize(); record->value2 = expression2_->traceExecution(values, record->trace2, ptr); + ptr += expression2_->traceSize(); record->value3 = expression3_->traceExecution(values, record->trace3, ptr); - ptr += expression1_->traceSize() + expression2_->traceSize() - + expression3_->traceSize(); + ptr += expression3_->traceSize(); trace.setFunction(record); return function_(record->value1, record->value2, record->value3, record->dTdA1, record->dTdA2, record->dTdA3);