X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpage-spacing-result.cc;h=1f29d20f98297b0c59b261b624ed41783acbf572;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=9a05ef802b1c87e9a05aaa95e32ec76e9059adb6;hpb=651887bf80f7d060457ef46a97341eec46688b44;p=lilypond.git diff --git a/lily/page-spacing-result.cc b/lily/page-spacing-result.cc index 9a05ef802b..1f29d20f98 100644 --- a/lily/page-spacing-result.cc +++ b/lily/page-spacing-result.cc @@ -1,26 +1,55 @@ -/* - page-spacing-result.cc -- implement Page_spacing_result - - source file of the GNU LilyPond music typesetter - - (c) 2007 Han-Wen Nienhuys - +/* + This file is part of LilyPond, the GNU music typesetter. + + Copyright (C) 2007--2015 Han-Wen Nienhuys + + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "page-spacing-result.hh" +#include Page_spacing_result::Page_spacing_result () { penalty_ = 0; demerits_ = infinity_f; + system_count_status_ = SYSTEM_COUNT_OK; } vsize -Page_spacing_result::system_count () const +Page_spacing_result::page_count () const { - vsize total = 0; - for (vsize i = 0; i < systems_per_page_.size(); i++) - total += systems_per_page_[i]; + return systems_per_page_.size (); +} - return total; +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; +} + +void +Page_spacing_result::print () const +{ + printf ("penalty %lf, demerits %lf\n", penalty_, demerits_); + for (vsize i = 0; i < page_count (); i++) + printf (" %d: #sys=%d, force=%lf\n", int (i), int (systems_per_page_[i]), + force_[i]); }