diff --git a/gtsam/discrete/DiscreteValues.h b/gtsam/discrete/DiscreteValues.h index 8a6d6f930..9ec08302b 100644 --- a/gtsam/discrete/DiscreteValues.h +++ b/gtsam/discrete/DiscreteValues.h @@ -120,6 +120,11 @@ class GTSAM_EXPORT DiscreteValues : public Assignment { /// @} }; +/// Free version of CartesianProduct. +inline std::vector cartesianProduct(const DiscreteKeys& keys) { + return DiscreteValues::CartesianProduct(keys); +} + /// Free version of markdown. std::string markdown(const DiscreteValues& values, const KeyFormatter& keyFormatter = DefaultKeyFormatter, diff --git a/gtsam/discrete/discrete.i b/gtsam/discrete/discrete.i index 6df443300..158dc9016 100644 --- a/gtsam/discrete/discrete.i +++ b/gtsam/discrete/discrete.i @@ -17,6 +17,8 @@ class DiscreteKeys { }; // DiscreteValues is added in specializations/discrete.h as a std::map +std::vector cartesianProduct( + const gtsam::DiscreteKeys& keys); string markdown( const gtsam::DiscreteValues& values, const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter);