00001 // ////////////////////////////////////////////////////////////////////// 00002 // Import section 00003 // ////////////////////////////////////////////////////////////////////// 00004 // C 00005 #include <assert.h> 00006 // STL 00007 #include <iostream> 00008 #include <algorithm> 00009 // RMOL 00010 #include <rmol/bom/PartialSumHolder.hpp> 00011 00012 namespace RMOL { 00013 00014 // ////////////////////////////////////////////////////////////////////// 00015 PartialSumHolder::PartialSumHolder () { 00016 } 00017 00018 // ////////////////////////////////////////////////////////////////////// 00019 PartialSumHolder:: 00020 PartialSumHolder (const PartialSumHolder& iPartialSumHolder) { 00021 } 00022 00023 // ////////////////////////////////////////////////////////////////////// 00024 PartialSumHolder::~PartialSumHolder() { 00025 _partialSumList.clear (); 00026 } 00027 00028 // ////////////////////////////////////////////////////////////////////// 00029 const std::string PartialSumHolder::describeShortKey() const { 00030 std::ostringstream oStr; 00031 return oStr.str(); 00032 } 00033 00034 // ////////////////////////////////////////////////////////////////////// 00035 const std::string PartialSumHolder::describeKey() const { 00036 return describeShortKey(); 00037 } 00038 00039 // ////////////////////////////////////////////////////////////////////// 00040 std::string PartialSumHolder::toString() const { 00041 std::ostringstream oStr; 00042 oStr << _partialSumList.size(); 00043 return oStr.str(); 00044 } 00045 00046 // ////////////////////////////////////////////////////////////////////// 00047 void PartialSumHolder::toStream (std::ostream& ioOut) const { 00048 ioOut << toString(); 00049 } 00050 00051 // ////////////////////////////////////////////////////////////////////// 00052 void PartialSumHolder::fromStream (std::istream& ioIn) { 00053 } 00054 00055 // ////////////////////////////////////////////////////////////////////// 00056 const std::string PartialSumHolder::shortDisplay() const { 00057 std::ostringstream oStr; 00058 oStr << describeKey(); 00059 // Generate a CSV (Comma Separated Values) output 00060 oStr << "Partial Sum (K = " << _partialSumList.size() << ")" << std::endl; 00061 return oStr.str(); 00062 } 00063 00064 // ////////////////////////////////////////////////////////////////////// 00065 const std::string PartialSumHolder::display() const { 00066 std::ostringstream oStr; 00067 oStr << shortDisplay(); 00068 00069 PartialSumList_T::const_iterator itPartialSum = _partialSumList.begin(); 00070 for (short k=1; itPartialSum != _partialSumList.end(); itPartialSum++,k++){ 00071 const double currentPartialSum = *itPartialSum; 00072 oStr << k << "; " << currentPartialSum; 00073 } 00074 return oStr.str(); 00075 } 00076 00077 // ////////////////////////////////////////////////////////////////////// 00078 void PartialSumHolder::initSize (const int K) { 00079 _partialSumList.reserve (K); 00080 } 00081 00082 // ////////////////////////////////////////////////////////////////////// 00083 const double PartialSumHolder::getPartialSum (const int k) const { 00084 return _partialSumList.at (k); 00085 } 00086 00087 // ////////////////////////////////////////////////////////////////////// 00088 void PartialSumHolder::addPartialSum (const double iPartialSum) { 00089 _partialSumList.push_back (iPartialSum); 00090 } 00091 00092 // ////////////////////////////////////////////////////////////////////// 00093 void PartialSumHolder::sort () { 00094 std::sort (_partialSumList.begin(), _partialSumList.end()); 00095 } 00096 00097 }
Generated on Sun Jun 14 23:33:59 2009 for RMOL by Doxygen 1.5.8