| Index: courgette/adjustment_method_2.cc
|
| ===================================================================
|
| --- courgette/adjustment_method_2.cc (revision 63075)
|
| +++ courgette/adjustment_method_2.cc (working copy)
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -12,8 +12,6 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| -#include <iostream>
|
| -
|
| #include "base/basictypes.h"
|
| #include "base/format_macros.h"
|
| #include "base/logging.h"
|
| @@ -153,31 +151,6 @@
|
| namespace courgette {
|
| namespace adjustment_method_2 {
|
|
|
| -// We have three discretionary information logging levels for algorithm
|
| -// development. For now just configure with #defines.
|
| -// TODO(sra): make dependent of some configurable setting.
|
| -struct LogToCout {
|
| - LogToCout() {}
|
| - ~LogToCout() { std::cout << std::endl; }
|
| - std::ostream& stream() { return std::cout; }
|
| -};
|
| -#define LOG_TO_COUT (LogToCout().stream())
|
| -#define NO_LOG DLOG_IF(INFO, false)
|
| -
|
| -#if 0 // Log to log file.
|
| -#define ALOG1 LOG(INFO)
|
| -#define ALOG2 LOG(INFO)
|
| -#define ALOG3 LOG(INFO)
|
| -#elif 0 // Log to stdout.
|
| -#define ALOG1 LOG_TO_COUT
|
| -#define ALOG2 LOG_TO_COUT
|
| -#define ALOG3 LOG_TO_COUT
|
| -#else // Log to nowhere.
|
| -#define ALOG1 NO_LOG
|
| -#define ALOG2 NO_LOG
|
| -#define ALOG3 NO_LOG
|
| -#endif
|
| -
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|
| class AssignmentCandidates;
|
| @@ -348,14 +321,14 @@
|
| }
|
|
|
| void Print(int max) {
|
| - ALOG1 << "score " << TopScore() << " " << ToString(program_info_)
|
| - << " := ?";
|
| + VLOG(2) << "score " << TopScore() << " " << ToString(program_info_)
|
| + << " := ?";
|
| if (!pending_updates_.empty())
|
| - ALOG1 << pending_updates_.size() << " pending";
|
| + VLOG(2) << pending_updates_.size() << " pending";
|
| int count = 0;
|
| for (Queue::iterator q = queue_.begin(); q != queue_.end(); ++q) {
|
| if (++count > max) break;
|
| - ALOG1 << " " << q->first << " " << ToString(q->second);
|
| + VLOG(2) << " " << q->first << " " << ToString(q->second);
|
| }
|
| }
|
|
|
| @@ -828,8 +801,8 @@
|
| AssignmentProblem(const Trace& trace, size_t model_end)
|
| : trace_(trace),
|
| model_end_(model_end) {
|
| - ALOG1 << "AssignmentProblem::AssignmentProblem " << model_end << ", "
|
| - << trace.size();
|
| + VLOG(2) << "AssignmentProblem::AssignmentProblem " << model_end << ", "
|
| + << trace.size();
|
| }
|
|
|
| bool Solve() {
|
| @@ -845,10 +818,8 @@
|
| AddPatternsNeedingUpdatesToQueues();
|
|
|
| patterns_needing_updates_.clear();
|
| - while (FindAndAssignBestLeader()) {
|
| - NO_LOG << "Updated " << patterns_needing_updates_.size() << " patterns";
|
| + while (FindAndAssignBestLeader())
|
| patterns_needing_updates_.clear();
|
| - }
|
| PrintActivePatterns();
|
|
|
| return true;
|
| @@ -874,11 +845,11 @@
|
| SingleUsePatternQueue;
|
|
|
| void PrintPatternsHeader() const {
|
| - ALOG1 << shingle_instances_.size() << " instances "
|
| - << trace_.size() << " trace length "
|
| - << patterns_.size() << " shingle indexes "
|
| - << single_use_pattern_queue_.size() << " single use patterns "
|
| - << active_non_single_use_patterns_.size() << " active patterns";
|
| + VLOG(2) << shingle_instances_.size() << " instances "
|
| + << trace_.size() << " trace length "
|
| + << patterns_.size() << " shingle indexes "
|
| + << single_use_pattern_queue_.size() << " single use patterns "
|
| + << active_non_single_use_patterns_.size() << " active patterns";
|
| }
|
|
|
| void PrintActivePatterns() const {
|
| @@ -887,7 +858,7 @@
|
| p != active_non_single_use_patterns_.end();
|
| ++p) {
|
| const ShinglePattern* pattern = *p;
|
| - ALOG1 << ToString(pattern, 10);
|
| + VLOG(2) << ToString(pattern, 10);
|
| }
|
| }
|
|
|
| @@ -902,7 +873,7 @@
|
| p != patterns_.end();
|
| ++p) {
|
| const ShinglePattern& pattern = p->second;
|
| - ALOG1 << ToString(&pattern, 10);
|
| + VLOG(2) << ToString(&pattern, 10);
|
| }
|
| }
|
|
|
| @@ -911,7 +882,7 @@
|
| p != shingle_instances_.end();
|
| ++p) {
|
| const Shingle& instance = *p;
|
| - ALOG1 << ToString(&instance) << " " << ToString(instance.pattern());
|
| + VLOG(2) << ToString(&instance) << " " << ToString(instance.pattern());
|
| }
|
| }
|
|
|
| @@ -1093,10 +1064,10 @@
|
| LabelInfo* model_info = model_instance->at(i);
|
| if ((model_info->assignment_ == NULL) !=
|
| (program_info->assignment_ == NULL)) {
|
| - ALOG1 << "ERROR " << i
|
| - << "\n\t" << ToString(pattern, 10)
|
| - << "\n\t" << ToString(program_instance)
|
| - << "\n\t" << ToString(model_instance);
|
| + VLOG(2) << "ERROR " << i
|
| + << "\n\t" << ToString(pattern, 10)
|
| + << "\n\t" << ToString(program_instance)
|
| + << "\n\t" << ToString(model_instance);
|
| }
|
| if (!program_info->assignment_ && !model_info->assignment_) {
|
| sums[program_info][model_info] += score;
|
| @@ -1139,8 +1110,8 @@
|
| LOG_ASSERT(model_info->is_model_);
|
| LOG_ASSERT(!program_info->is_model_);
|
|
|
| - ALOG2 << "Assign " << ToString(program_info)
|
| - << " := " << ToString(model_info);
|
| + VLOG(3) << "Assign " << ToString(program_info)
|
| + << " := " << ToString(model_info);
|
|
|
| ShingleSet affected_shingles;
|
| AddAffectedPositions(model_info, &affected_shingles);
|
| @@ -1254,7 +1225,7 @@
|
| ~Adjuster() {}
|
|
|
| bool Adjust(const AssemblyProgram& model, AssemblyProgram* program) {
|
| - LOG(INFO) << "Adjuster::Adjust";
|
| + VLOG(1) << "Adjuster::Adjust";
|
| prog_ = program;
|
| model_ = &model;
|
| return Finish();
|
| @@ -1297,8 +1268,8 @@
|
| base::Time start_time = base::Time::Now();
|
| AssignmentProblem a(model, model_end);
|
| a.Solve();
|
| - LOG(INFO) << " Adjuster::Solve "
|
| - << (base::Time::Now() - start_time).InSecondsF();
|
| + VLOG(1) << " Adjuster::Solve "
|
| + << (base::Time::Now() - start_time).InSecondsF();
|
| }
|
|
|
| void ReferenceLabel(Trace* trace, Label* label, bool is_model) {
|
|
|