Confirmed the correctness of the pruning

This commit is contained in:
Dongryeol Lee
2008-02-12 22:50:52 +00:00
parent 27ef3809c0
commit eb062b2da9
4 changed files with 15 additions and 20 deletions
@@ -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 //////////