Update of /cvsroot/quantlib/QuantLib/ql/MonteCarlo
In directory usw-pr-cvs1:/tmp/cvs-serv22552/ql/MonteCarlo
Modified Files:
Makefile.am mctypedefs.hpp montecarlomodel.hpp
multifactorpricer.hpp
Removed Files:
mccontrolvariatepricer.hpp montecarlocontrolvariatemodel.hpp
Log Message:
removing controlvariate specific class, since control variation technique
is now handled by the general MC model
Index: Makefile.am
===================================================================
RCS file: /cvsroot/quantlib/QuantLib/ql/MonteCarlo/Makefile.am,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** Makefile.am 2001/10/22 16:51:14 1.9
--- Makefile.am 2001/10/25 15:00:47 1.10
***************
*** 20,27 ****
knuthrandomgenerator.hpp \
lecuyerrandomgenerator.hpp \
- mccontrolvariatepricer.hpp \
mcpricer.hpp \
mctypedefs.hpp \
- montecarlocontrolvariatemodel.hpp \
montecarlomodel.hpp \
multifactorpricer.hpp \
--- 20,25 ----
Index: mctypedefs.hpp
===================================================================
RCS file: /cvsroot/quantlib/QuantLib/ql/MonteCarlo/mctypedefs.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** mctypedefs.hpp 2001/10/22 17:08:41 1.3
--- mctypedefs.hpp 2001/10/25 15:00:47 1.4
***************
*** 40,44 ****
#include "ql/MonteCarlo/multipathgenerator.hpp"
#include "ql/MonteCarlo/montecarlomodel.hpp"
- #include "ql/MonteCarlo/montecarlocontrolvariatemodel.hpp"
#include "ql/MonteCarlo/pathpricer.hpp"
#include "ql/MonteCarlo/multipathpricer.hpp"
--- 40,43 ----
***************
*** 73,85 ****
MultiPathPricer> MultiFactorMonteCarloOption;
- //! default choice for one-factor Control Variate Monte Carlo model.
- typedef MonteCarloControlVariateModel<
- Math::Statistics, GaussianPathGenerator, PathPricer>
- OneFactorMonteCarloControlVariateOption;
-
- //! default choice for multi-factor Monte Carlo model.
- typedef MonteCarloControlVariateModel<
- Math::Statistics, GaussianMultiPathGenerator, MultiPathPricer>
- MultiFactorMonteCarloControlVariateOption;
}
--- 72,75 ----
Index: montecarlomodel.hpp
===================================================================
RCS file: /cvsroot/quantlib/QuantLib/ql/MonteCarlo/montecarlomodel.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** montecarlomodel.hpp 2001/10/19 16:25:51 1.7
--- montecarlomodel.hpp 2001/10/25 15:00:47 1.8
***************
*** 71,75 ****
MonteCarloModel(const Handle<PG>& pathGenerator,
const Handle<PP>& pathPricer,
! const S& sampleAccumulator);
void addSamples(unsigned int samples);
const S& sampleAccumulator(void) const;
--- 71,77 ----
MonteCarloModel(const Handle<PG>& pathGenerator,
const Handle<PP>& pathPricer,
! const S& sampleAccumulator,
! const Handle<PP>& cvPathPricer = Handle<PP>(),
! double cvOptionValue=0);
void addSamples(unsigned int samples);
const S& sampleAccumulator(void) const;
***************
*** 78,81 ****
--- 80,86 ----
Handle<PP> pathPricer_;
S sampleAccumulator_;
+ Handle<PP> cvPathPricer_;
+ double cvOptionValue_;
+ bool isControlVariate_;
};
***************
*** 84,93 ****
inline MonteCarloModel<S, PG, PP>::MonteCarloModel(
const Handle<PG>& pathGenerator,
! const Handle<PP>& pathPricer,
! const S& sampleAccumulator) :
! pathGenerator_(pathGenerator),
! pathPricer_(pathPricer),
! sampleAccumulator_(sampleAccumulator)
! {}
template<class S, class PG, class PP>
--- 89,102 ----
inline MonteCarloModel<S, PG, PP>::MonteCarloModel(
const Handle<PG>& pathGenerator,
! const Handle<PP>& pathPricer, const S& sampleAccumulator,
! const Handle<PP>& cvPathPricer, double cvOptionValue)
! : pathGenerator_(pathGenerator), pathPricer_(pathPricer),
! sampleAccumulator_(sampleAccumulator), cvPathPricer_(cvPathPricer),
! cvOptionValue_(cvOptionValue) {
! if (cvPathPricer_.isNull())
! isControlVariate_=false;
! else
! isControlVariate_=true;
! }
template<class S, class PG, class PP>
***************
*** 97,102 ****
typename PG::sample_type path = pathGenerator_->next();
typename PP::result_type price = (*pathPricer_)(path);
! double weight = pathGenerator_->weight();
! sampleAccumulator_.add(price, weight);
}
}
--- 106,112 ----
typename PG::sample_type path = pathGenerator_->next();
typename PP::result_type price = (*pathPricer_)(path);
! if (isControlVariate_)
! price += cvOptionValue_-(*cvPathPricer_)(path);
! sampleAccumulator_.add(price, pathGenerator_->weight());
}
}
Index: multifactorpricer.hpp
===================================================================
RCS file: /cvsroot/quantlib/QuantLib/ql/MonteCarlo/multifactorpricer.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** multifactorpricer.hpp 2001/10/22 08:55:18 1.5
--- multifactorpricer.hpp 2001/10/25 15:00:47 1.6
***************
*** 54,63 ****
public:
MultiFactorPricer() {}
- MultiFactorPricer(unsigned int samples,
- long seed=0);
virtual ~MultiFactorPricer(){}
virtual double value() const;
virtual double errorEstimate() const;
protected:
long seed_;
mutable unsigned int samples_;
--- 54,63 ----
public:
MultiFactorPricer() {}
virtual ~MultiFactorPricer(){}
virtual double value() const;
virtual double errorEstimate() const;
protected:
+ MultiFactorPricer(unsigned int samples,
+ long seed=0);
long seed_;
mutable unsigned int samples_;
--- mccontrolvariatepricer.hpp DELETED ---
--- montecarlocontrolvariatemodel.hpp DELETED ---
|