commit | 572ec4a5a52f1b4a712a291bf2b41c11ba943503 | [log] [tgz] |
---|---|---|
author | Darius Rueckert <darius.rueckert@fau.de> | Wed Dec 04 13:32:03 2019 +0100 |
committer | Darius Rueckert <darius.rueckert@fau.de> | Fri Dec 06 13:35:21 2019 +0100 |
tree | 2c2efabd2faffef6f5e305f4700f2bb7adf7e025 | |
parent | c7337154e97baa02015591d9ca143fa24cb45d28 [diff] |
Rework Expression creation and insertion Objects of 'Expression' can now be freely created and copied around. This creation does NOT add them to the active ExpressionGraph any more. The insertion into the graph is now done by ExpressionRef, which explicitly call graph.add(...) in each operation. This change brings the following advantages: 1. 'Expression' is now stand-alone and side-effect free - Remove the dependency Expression->ExpressionGraph - Expressions can be created by the optimizer 2. Explicit graph insertion - Previously CreateCompileTimeConstant not only created an expression, but also inserted it into the active graph. Now this insertion is done explicitly by ExpressionRef 3. It is now easier to insert new types and members - Should be straight forward now, because we got rid of the 3-way dependency - This is a preparation patch for the new return-type member in https://ceres-solver-review.googlesource.com/c/ceres-solver/+/16224 Change-Id: Icef2fe529a4db001a10d1fb6816c9dc681b14ff2
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.
Please see ceres-solver.org for more information.