]> git.donarmstrong.com Git - lilypond.git/commitdiff
add Page_spacing_result::average_force()
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 20 May 2007 21:10:15 +0000 (18:10 -0300)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 20 May 2007 21:10:15 +0000 (18:10 -0300)
lily/include/page-spacing-result.hh
lily/optimal-page-breaking.cc
lily/page-spacing-result.cc

index 46a25d04edb59f38352135e9cc89688016cf7a24..c37153285e544baefd771d03f1685607b7dddff1 100644 (file)
@@ -19,6 +19,7 @@ struct Page_spacing_result {
   Real penalty_;
   Real demerits_;
 
+  Real average_force () const;
   vsize page_count () const;
   vsize system_count () const;  
   Page_spacing_result ();
index f25d75f039ca3a9cebeb3779c8f57fba1bf2f217..728e726a5e3e476e540018d7a9041a0b1bbb964b 100644 (file)
@@ -92,17 +92,11 @@ Optimal_page_breaking::solve ()
          best_division = bound;
        }
 
-      if (best_for_this_sys_count.systems_per_page_.size () < page_count)
-       {
-         /* if the pages are stretched on average, stop trying to reduce sys_count */
-         Real average_force = 0;
-         for (vsize i = 0; i < best_for_this_sys_count.systems_per_page_.size (); i++)
-           average_force += best_for_this_sys_count.force_[i];
-
-         average_force /= best_for_this_sys_count.page_count (); 
-         if (average_force > 0)
-           break;
-       }
+      /* if the pages are stretched on average, stop trying to reduce sys_count */
+      if (best_for_this_sys_count.page_count () < page_count
+         && best_for_this_sys_count.average_force () > 0)
+       break;
+       
 
       if (isinf (best_for_this_sys_count.demerits_))
        break;
index 510567e1ac5584ba69f320f23f270f8d70b0ed41..f677476b34a731abfcdddd6e3a09b5b61dd219d1 100644 (file)
@@ -30,3 +30,14 @@ Page_spacing_result::page_count () const
 {
   return systems_per_page_.size();
 }
+
+Real
+Page_spacing_result::average_force () const
+{
+  Real average_force = 0;
+  for (vsize i = 0; i < page_count (); i++)
+    average_force += force_[i];
+
+  average_force /= page_count ();
+  return average_force;
+}