// $Id: Rstats.cpp 492 2013-02-24 22:14:47Z mueller $ // // Copyright 2011-2013 by Walter F.J. Mueller // // This program is free software; you may redistribute and/or modify it under // the terms of the GNU General Public License as published by the Free // Software Foundation, either version 2, or at your option any later version. // // This program 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 complete details. // // Revision History: // Date Rev Version Comment // 2013-02-03 481 1.0.2 use Rexception // 2011-03-06 367 1.0.1 use max from algorithm // 2011-02-06 359 1.0 Initial version // --------------------------------------------------------------------------- /*! \file \version $Id: Rstats.cpp 492 2013-02-24 22:14:47Z mueller $ \brief Implemenation of Rstats . */ #include #include "Rstats.hpp" #include "RosFill.hpp" #include "RosPrintf.hpp" #include "Rexception.hpp" using namespace std; /*! \class Retro::Rstats \brief FIXME_docs */ // all method definitions in namespace Retro namespace Retro { //------------------------------------------+----------------------------------- //! Default constructor Rstats::Rstats() : fValue(), fName(), fText(), fHash(0), fFormat("f"), fWidth(12), fPrec(0) {} //------------------------------------------+----------------------------------- //! Copy constructor Rstats::Rstats(const Rstats& rhs) : fValue(rhs.fValue), fName(rhs.fName), fText(rhs.fText), fHash(rhs.fHash), fFormat(rhs.fFormat), fWidth(rhs.fWidth), fPrec(rhs.fPrec) {} //------------------------------------------+----------------------------------- //! Destructor Rstats::~Rstats() {} //------------------------------------------+----------------------------------- //! FIXME_docs void Rstats::Define(size_t ind, const std::string& name, const std::string& text) { // update hash for (size_t i=0; i= Size()) { fValue.resize(ind+1); fName.resize(ind+1); fText.resize(ind+1); } fValue[ind] = 0.; fName[ind] = name; fText[ind] = text; } return; } //------------------------------------------+----------------------------------- //! FIXME_docs void Rstats::SetFormat(const char* format, int width, int prec) { fFormat = format; fWidth = width; fPrec = prec; return; } //------------------------------------------+----------------------------------- //! FIXME_docs void Rstats::Print(std::ostream& os, const char* format, int width, int prec) const { if (format == 0 || format[0]==0) { format = fFormat.c_str(); width = fWidth; prec = fPrec; } for (size_t i=0; i