]> git.donarmstrong.com Git - lilypond.git/blob - lily/page-spacing-result.cc
Merge commit 'origin' into beamlets2
[lilypond.git] / lily / page-spacing-result.cc
1 /* 
2   page-spacing-result.cc -- implement Page_spacing_result
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2007--2008 Han-Wen Nienhuys <hanwen@lilypond.org>
7   
8 */
9
10 #include "page-spacing-result.hh"
11 #include <cstdio>
12
13 Page_spacing_result::Page_spacing_result ()
14 {
15   penalty_ = 0;
16   demerits_ = infinity_f;
17 }
18
19 vsize
20 Page_spacing_result::system_count () const
21 {
22   vsize total = 0;
23   for (vsize i = 0; i < systems_per_page_.size(); i++)
24     total += systems_per_page_[i];
25
26   return total;      
27 }
28
29 vsize
30 Page_spacing_result::page_count () const
31 {
32   return systems_per_page_.size();
33 }
34
35 Real
36 Page_spacing_result::average_force () const
37 {
38   Real average_force = 0;
39   for (vsize i = 0; i < page_count (); i++)
40     average_force += force_[i];
41
42   average_force /= page_count ();
43   return average_force;
44 }
45
46 void
47 Page_spacing_result::print () const
48 {
49   printf ("penalty %lf, demerits %lf\n" , penalty_, demerits_);
50   for (vsize i = 0; i < page_count (); i++)
51     printf (" %d:  #sys=%d, force=%lf\n", int (i), int (systems_per_page_[i]),
52             force_[i]);
53 }