Go to the documentation of this file.00001
00002
00003
00004
00005 #include <assert.h>
00006
00007 #include <iostream>
00008 #include <algorithm>
00009
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
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
00098 const int PartialSumHolder::getLowerBound (const double& value) const {
00099 PartialSumList_T::const_iterator itLowerBound =
00100 std::lower_bound (_partialSumList.begin(), _partialSumList.end() , value);
00101 const int position = itLowerBound - _partialSumList.begin();
00102 return position;
00103 }
00104
00105 }