]> git.donarmstrong.com Git - lilypond.git/blob - lily/page-spacing-result.cc
Docs: Fix fixed IR compilation (copy @q and @qq from macros.itely)
[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 Han-Wen Nienhuys <hanwen@lilypond.org>
7   
8 */
9
10 #include "page-spacing-result.hh"
11
12 Page_spacing_result::Page_spacing_result ()
13 {
14   penalty_ = 0;
15   demerits_ = infinity_f;
16 }
17
18 vsize
19 Page_spacing_result::system_count () const
20 {
21   vsize total = 0;
22   for (vsize i = 0; i < systems_per_page_.size(); i++)
23     total += systems_per_page_[i];
24
25   return total;      
26 }
27
28 vsize
29 Page_spacing_result::page_count () const
30 {
31   return systems_per_page_.size();
32 }
33
34 Real
35 Page_spacing_result::average_force () const
36 {
37   Real average_force = 0;
38   for (vsize i = 0; i < page_count (); i++)
39     average_force += force_[i];
40
41   average_force /= page_count ();
42   return average_force;
43 }
44
45 void
46 Page_spacing_result::print () const
47 {
48   printf ("penalty %lf, demerits %lf\n" , penalty_, demerits_);
49   for (vsize i = 0; i < page_count (); i++)
50     printf (" %d:  #sys=%d, force=%lf\n", int (i), int (systems_per_page_[i]),
51             force_[i]);
52 }