Confirmed the correctness of the pruning
This commit is contained in:
@@ -499,12 +499,12 @@ class DenseLpr {
|
||||
|
||||
/** @brief Get the intermediate computation results.
|
||||
*/
|
||||
void get_intermediate_results(Matrix *numerator,
|
||||
ArrayList<Matrix> *denominator,
|
||||
ArrayList<int> *old_from_new_queries) {
|
||||
numerator = &numerator_e_;
|
||||
denominator = &denominator_e_;
|
||||
old_from_new_queries = &old_from_new_queries_;
|
||||
void get_intermediate_results(Matrix **numerator,
|
||||
ArrayList<Matrix> **denominator,
|
||||
ArrayList<int> **old_from_new_queries) {
|
||||
*numerator = &numerator_e_;
|
||||
*denominator = &denominator_e_;
|
||||
*old_from_new_queries = &old_from_new_queries_;
|
||||
}
|
||||
|
||||
/** @brief Get the regression estimates.
|
||||
|
||||
@@ -58,8 +58,8 @@ int main(int argc, char *argv[]) {
|
||||
fast_lpr.Compute();
|
||||
fast_lpr.PrintDebug();
|
||||
fast_lpr.get_regression_estimates(&fast_lpr_results);
|
||||
fast_lpr.get_intermediate_results(fast_numerator, fast_denominator,
|
||||
old_from_new_queries);
|
||||
fast_lpr.get_intermediate_results(&fast_numerator, &fast_denominator,
|
||||
&old_from_new_queries);
|
||||
|
||||
// Do naive algorithm.
|
||||
ArrayList<Vector> *naive_numerator = NULL;
|
||||
@@ -71,7 +71,7 @@ int main(int argc, char *argv[]) {
|
||||
naive_lpr.Compute();
|
||||
naive_lpr.PrintDebug();
|
||||
naive_lpr.get_regression_estimates(&naive_lpr_results);
|
||||
naive_lpr.get_intermediate_results(naive_numerator, naive_denominator);
|
||||
naive_lpr.get_intermediate_results(&naive_numerator, &naive_denominator);
|
||||
printf("Maximum relative error: %g\n",
|
||||
MatrixUtil::MaxRelativeDifference(naive_lpr_results,
|
||||
fast_lpr_results));
|
||||
@@ -79,7 +79,7 @@ int main(int argc, char *argv[]) {
|
||||
double max_relative_error = 0;
|
||||
for(index_t q = 0; q < queries.n_cols(); q++) {
|
||||
Vector q_fast_numerator;
|
||||
fast_numerator->MakeColumnVector(q, &q_fast_numerator);
|
||||
(*fast_numerator).MakeColumnVector(q, &q_fast_numerator);
|
||||
|
||||
max_relative_error =
|
||||
std::max(max_relative_error,
|
||||
|
||||
@@ -139,11 +139,6 @@ class MatrixUtil {
|
||||
std::max(max_relative_error,
|
||||
fabs(approx_results[d] - true_results[d]) /
|
||||
fabs(true_results[d]));
|
||||
|
||||
printf("%g against %g gives %g\n",
|
||||
approx_results[d], true_results[d],
|
||||
fabs(approx_results[d] - true_results[d]) /
|
||||
fabs(true_results[d]));
|
||||
}
|
||||
|
||||
return max_relative_error;
|
||||
|
||||
@@ -63,11 +63,11 @@ class NaiveLpr {
|
||||
public:
|
||||
|
||||
////////// Getter/Setter //////////
|
||||
void get_intermediate_results(ArrayList<Vector> *numerator,
|
||||
ArrayList<Matrix> *denominator) {
|
||||
|
||||
numerator = &numerator_;
|
||||
denominator = &denominator_;
|
||||
void get_intermediate_results(ArrayList<Vector> **numerator,
|
||||
ArrayList<Matrix> **denominator) {
|
||||
|
||||
*numerator = &numerator_;
|
||||
*denominator = &denominator_;
|
||||
}
|
||||
|
||||
////////// Constructor/Destructor //////////
|
||||
|
||||
Reference in New Issue
Block a user