About DiscretizedAssets operation, I've written something like this, but I
would prefer it to be in the base class QuantLib::DiscretizedAsset of course, these are not all useful math operations, but it is very easy to add new ones what do you think about? bye *************************************************************************** class GeneralDiscretized : public QuantLib::DiscretizedAsset { public: GeneralDiscretized(const QuantLib::Handle<QuantLib::NumericalMethod>& method) : QuantLib::DiscretizedAsset(method) {} void reset(QuantLib::Size size) { values_ = QuantLib::Array(size, 0.0); } GeneralDiscretized& operator=(double value) { values_ = QuantLib::Array(values_.size(), value); return *this; } GeneralDiscretized& operator+=(double value) { values_ += value; return *this; } GeneralDiscretized& operator-=(double value) { values_ -= value; return *this; } GeneralDiscretized& operator*=(double value) { values_ *= value; return *this; } GeneralDiscretized& operator/=(double value) { values_ /= value; return *this; } GeneralDiscretized& operator+=(QuantLib::DiscretizedAsset &asset) { QuantLib::Array &valori = asset.values(); if (time_ != asset.time() || values_.size() != valori.size()) errore("Slices differenti!"); values_ += valori; return *this; } GeneralDiscretized& operator-=(QuantLib::DiscretizedAsset &asset) { QuantLib::Array &valori = asset.values(); if (time_ != asset.time() || values_.size() != valori.size()) errore("Slices differenti!"); values_ -= valori; return *this; } GeneralDiscretized& max(QuantLib::DiscretizedAsset &asset) { QuantLib::Array &valori = asset.values(); if (time_ != asset.time() || values_.size() != valori.size()) errore("Slices differenti!"); for (int i = 0; i < values_.size(); i++) values_[i] = MAX(values_[i], valori[i]); return *this; } GeneralDiscretized& max(double value) { for (int i = 0; i < values_.size(); i++) values_[i] = MAX(values_[i], value); return *this; } }; ---------------------------------------------------------------------------------------------------------------------------------------- La presente comunicazione è destinata esclusivamente al soggetto indicato più sopra quale destinatario o ad eventuali altri soggetti autorizzati a riceverla. Essa contiene informazioni strettamente confidenziali e riservate, la cui comunicazione o diffusione a terzi è proibita, salvo che non sia stata espressamente autorizzata. Se avete ricevuto questa comunicazione per errore, Vi preghiamo di darne immediata comunicazione al mittente e di cancellarne ogni evidenza dai Vostri supporti. ---------------------------------------------------------------------------------------------------------------------------------------- |
Free forum by Nabble | Edit this page |