From abfebbb40a98d8b8a315982cfac8a083b4555f9a Mon Sep 17 00:00:00 2001 From: Dongryeol Lee Date: Sat, 20 Nov 2010 18:59:37 +0000 Subject: [PATCH] Another bug fix. --- .../core/gnp/tripletree_dfs_dev.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/tripletree_dfs_dev.h b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/tripletree_dfs_dev.h index 2e904ebee1..09b53f9ebf 100644 --- a/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/tripletree_dfs_dev.h +++ b/fastlib/trunk/contrib/dongryel/thesis_research/core/gnp/tripletree_dfs_dev.h @@ -276,6 +276,13 @@ bool core::gnp::TripletreeDfs::CanProbabilisticSummarize_( typename ProblemType::DeltaType &delta, typename ProblemType::ResultType *query_results) { + // Since we have turned on the monochromatic trick, fail if all + // three nodes are equal. + if(range_in.node(0) == range_in.node(1) && + range_in.node(1) == range_in.node(2)) { + return false; + } + // If there are too many tuples to approximate, then don't try. if(std::max( range_in.num_tuples(0), std::max( @@ -381,6 +388,15 @@ bool core::gnp::TripletreeDfs::CanSummarize_( typename ProblemType::ResultType *query_results, int *failure_index) { + // Since we have turned on the monochromatic trick, fail if all + // three nodes are equal. + if(triple_range_distance_sq_in.node(0) == + triple_range_distance_sq_in.node(1) && + triple_range_distance_sq_in.node(1) == + triple_range_distance_sq_in.node(2)) { + return false; + } + std::vector< typename ProblemType::SummaryType > new_summaries; new_summaries.resize(3);