Skip to content

Commit 487f6f1

Browse files
committed
Allow construction of ConditionalGaussian without copying the prior
1 parent 173652d commit 487f6f1

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

include/albatross/src/models/conditional_gaussian.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ struct ConditionalFit {
2323
class ConditionalGaussian : public ModelBase<ConditionalGaussian> {
2424

2525
public:
26+
ConditionalGaussian(JointDistribution &&prior,
27+
const MarginalDistribution &truth)
28+
: prior_(std::move(prior)), truth_(truth) {}
29+
2630
ConditionalGaussian(const JointDistribution &prior,
2731
const MarginalDistribution &truth)
2832
: prior_(prior), truth_(truth) {}

include/albatross/src/models/ransac_gp.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,17 +109,18 @@ struct AlwaysAcceptCandidateMetric {
109109
};
110110

111111
template <typename InlierMetric, typename ConsensusMetric,
112-
typename IsValidCandidateMetric, typename GroupKey>
112+
typename IsValidCandidateMetric, typename GroupKey,
113+
typename PriorDistribution>
113114
inline RansacFunctions<ConditionalFit, GroupKey> get_gp_ransac_functions(
114-
const JointDistribution &prior, const MarginalDistribution &truth,
115+
PriorDistribution &&prior, const MarginalDistribution &truth,
115116
const GroupIndexer<GroupKey> &indexer, const InlierMetric &inlier_metric,
116117
const ConsensusMetric &consensus_metric,
117118
const IsValidCandidateMetric &is_valid_candidate_metric) {
118119

119120
static_assert(is_prediction_metric<InlierMetric>::value,
120121
"InlierMetric must be an PredictionMetric.");
121122

122-
const ConditionalGaussian model(prior, truth);
123+
const ConditionalGaussian model(std::forward<PriorDistribution>(prior), truth);
123124

124125
const auto fitter = get_gp_ransac_fitter<GroupKey>(model, indexer);
125126

0 commit comments

Comments
 (0)