From: Joe Neeman Date: Sun, 5 Nov 2006 19:09:08 +0000 (+0000) Subject: * lily/include/page-turn-page-breaking.hh: remove unused X-Git-Tag: release/2.10.0-2~26^2~9 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5f2ab1daf560216392b065bf2e9042b8a9e7ec76;p=lilypond.git * lily/include/page-turn-page-breaking.hh: remove unused fields in Break_node * lily/page-turn-page-breaking.cc (calc_demerits): * lily/optimal-page-breaking.cc (try_page_spacing): remove uniformity penalties. --- diff --git a/ChangeLog b/ChangeLog index 2dcb253afa..cfac4b5bf1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-11-05 Joe Neeman + + * lily/include/page-turn-page-breaking.hh: remove unused + fields in Break_node + + * lily/page-turn-page-breaking.cc (calc_demerits): + * lily/optimal-page-breaking.cc (try_page_spacing): remove + uniformity penalties. + 2006-11-05 Werner Lemberg * Documentation/user/changing-defaults.itely, diff --git a/lily/include/page-turn-page-breaking.hh b/lily/include/page-turn-page-breaking.hh index 1706437908..6fb78bc67d 100644 --- a/lily/include/page-turn-page-breaking.hh +++ b/lily/include/page-turn-page-breaking.hh @@ -33,12 +33,6 @@ protected: int first_page_number_; vsize page_count_; - Real force_; - Real penalty_; - - Real line_force_; - Real line_penalty_; - /* true if every score here is too widely spaced */ bool too_many_lines_; @@ -51,8 +45,6 @@ protected: Break_node () { prev_ = break_pos_ = VPOS; - penalty_ = force_ = 0; - line_penalty_ = line_force_ = 0; demerits_ = infinity_f; first_page_number_ = 0; page_count_ = 0; @@ -72,7 +64,6 @@ protected: SCM make_lines (vector *breaks); SCM make_pages (vector const &breaks, SCM systems); - Real calc_demerits (Break_node const &me); void calc_subproblem (vsize i); }; #endif /* PAGE_TURN_PAGE_BREAKING_HH */ diff --git a/lily/optimal-page-breaking.cc b/lily/optimal-page-breaking.cc index 90bc685f06..46105f7255 100644 --- a/lily/optimal-page-breaking.cc +++ b/lily/optimal-page-breaking.cc @@ -60,11 +60,7 @@ Optimal_page_breaking::try_page_spacing (Line_division const &line_count) ret.demerits_ = ret.force_[0] * ret.force_[0] * page_weighting; for (vsize i = 1; i < ret.force_.size (); i++) - { - Real uniformity = fabs (ret.force_[i] - ret.force_[i-1]); - ret.demerits_ += (ret.force_[i] * ret.force_[i] - + uniformity * uniformity) * page_weighting; - } + ret.demerits_ += ret.force_[i] * ret.force_[i] * page_weighting; /* for a while we tried averaging page and line forces instead of summing them, but it caused the following problem. If there is a single page diff --git a/lily/page-turn-page-breaking.cc b/lily/page-turn-page-breaking.cc index 81cfab9cac..c6a1381f36 100644 --- a/lily/page-turn-page-breaking.cc +++ b/lily/page-turn-page-breaking.cc @@ -33,27 +33,6 @@ Page_turn_page_breaking::~Page_turn_page_breaking () { } -Real -Page_turn_page_breaking::calc_demerits (const Break_node &me) -{ - Real prev_f = 0; - Real prev_dem = 0; - Real page_weighting = robust_scm2double (book_->paper_->c_variable ("page-spacing-weight"), 10); - if (me.prev_ != VPOS) - { - prev_f = state_[me.prev_].force_; - prev_dem = state_[me.prev_].demerits_; - } - - Real dem = me.force_ * me.force_ * page_weighting - + me.line_force_ * me.line_force_ - + fabs (me.force_ - prev_f); - if (isinf (me.line_force_) || isinf (me.force_) || me.page_count_ == 0) - dem = infinity_f; - - return dem + prev_dem + me.penalty_ + me.line_penalty_; -} - Page_turn_page_breaking::Break_node Page_turn_page_breaking::put_systems_on_pages (vsize start, vsize end, @@ -67,6 +46,7 @@ Page_turn_page_breaking::put_systems_on_pages (vsize start, Real page_h = page_height (1, false); // FIXME SCM force_sym = last ? ly_symbol2scm ("blank-last-page-force") : ly_symbol2scm ("blank-page-force"); Real blank_force = robust_scm2double (book_->paper_->lookup_variable (force_sym), 0); + Real page_weighting = robust_scm2double (book_->paper_->c_variable ("page-spacing-weight"), 10); int min_p_count = min_page_count (lines, page_h, ragged_all, ragged_last); bool auto_first = to_boolean (book_->paper_->c_variable ("auto-first-page-number")); @@ -109,24 +89,23 @@ Page_turn_page_breaking::put_systems_on_pages (vsize start, ret.first_page_number_ = page_number; if (auto_first && start == 0) ret.first_page_number_ += 1 - (ret.page_count_ % 2); - ret.force_ = 0; - for (vsize i = 0; i < result.force_.size (); i++) - ret.force_ += fabs (result.force_[i]); - ret.penalty_ = result.penalty_; ret.div_ = div; ret.system_count_ = result.systems_per_page_; ret.too_many_lines_ = true; - ret.line_force_ = 0; - ret.line_penalty_ = 0; + ret.demerits_ = result.penalty_; + if (start > 0) + ret.demerits_ += state_[start-1].demerits_; for (vsize i = 0; i < lines.size (); i++) { - ret.line_force_ += fabs (lines[i].force_); - ret.line_penalty_ += lines[i].break_penalty_; + ret.demerits_ += lines[i].force_ * lines[i].force_; + ret.demerits_ += lines[i].break_penalty_; if (lines[i].force_ < 0) ret.too_many_lines_ = false; } + for (vsize i = 0; i < result.force_.size (); i++) + ret.demerits_ += result.force_[i] * result.force_[i] * page_weighting; return ret; } @@ -190,7 +169,6 @@ Page_turn_page_breaking::calc_subproblem (vsize ending_breakpoint) vector line = line_details (start, end, div[d]); cur = put_systems_on_pages (start, end, line, div[d], p_num); - cur.demerits_ = calc_demerits (cur); if (isinf (cur.demerits_) || (cur.page_count_ > 2