]> git.donarmstrong.com Git - lilypond.git/commitdiff
Optimize optimal-page-breaking.
authorJoe Neeman <joeneeman@gmail.com>
Fri, 20 Aug 2010 06:27:12 +0000 (23:27 -0700)
committerJoe Neeman <joeneeman@gmail.com>
Fri, 20 Aug 2010 19:44:46 +0000 (12:44 -0700)
Use the new, faster, space_systems_on_best_pages instead of
space_systems_on_n_pages and friends.

lily/optimal-page-breaking.cc

index 60dddd421283783d63204420302ed73c913b67ee..e9010aec09345ef715d247a20a0a854d34bc5956 100644 (file)
@@ -102,13 +102,12 @@ Optimal_page_breaking::solve ()
 
       for (vsize i = 0; i < current_configuration_count (); i++)
        {
-         vsize min_p_count = min_page_count (i, first_page_num);
          Page_spacing_result cur;
 
-         if (min_p_count == page_count || scm_is_integer (forced_page_count))
+         if (scm_is_integer (forced_page_count))
            cur = space_systems_on_n_pages (i, page_count, first_page_num);
          else
-           cur = space_systems_on_n_or_one_more_pages (i, page_count-1, first_page_num, 0);
+           cur = space_systems_on_best_pages (i, first_page_num);
 
          if (cur.demerits_ < best_for_this_sys_count.demerits_)
            {
@@ -162,8 +161,10 @@ Optimal_page_breaking::solve ()
 
          if (min_p_count > page_count)
            continue;
-         else
+         else if (scm_is_integer (forced_page_count))
            cur = space_systems_on_n_pages (i, page_count, first_page_num);
+         else
+           cur = space_systems_on_best_pages (i, first_page_num);
 
          if (cur.demerits_ < best.demerits_)
            {