29#include <ql/time/date.hpp>
31#include <boost/variant.hpp>
60using ValueType = boost::variant<RandomVariable, EventVec, CurrencyVec, IndexVec, DaycounterVec, Filter>;
62static const std::vector<std::string> valueTypeLabels = {
"Number",
"Event",
"Currency",
63 "Index",
"Daycounter",
"Filter"};
RandomVariable max(RandomVariable x, const RandomVariable &y)
BucketedDistribution operator+(const BucketedDistribution &lhs, const BucketedDistribution &rhs)
RandomVariable exp(RandomVariable x)
RandomVariable sqrt(RandomVariable x)
RandomVariable log(RandomVariable x)
RandomVariable pow(RandomVariable x, const RandomVariable &y)
RandomVariable operator/(RandomVariable x, const RandomVariable &y)
std::ostream & operator<<(std::ostream &out, EquityReturnType t)
bool operator==(const Dividend &d1, const Dividend &d)
RandomVariable normalCdf(RandomVariable x)
RandomVariable abs(RandomVariable x)
RandomVariable normalPdf(RandomVariable x)
Filter equal(Filter x, const Filter &y)
RandomVariable operator-(RandomVariable x, const RandomVariable &y)
RandomVariable min(RandomVariable x, const RandomVariable &y)
BucketedDistribution operator*(Real factor, const BucketedDistribution &rhs)
Filter lt(const ValueType &x, const ValueType &y)
bool deterministic(const ValueType &v)
Filter notequal(const ValueType &x, const ValueType &y)
Filter gt(const ValueType &x, const ValueType &y)
ValueType typeSafeAssign(ValueType &x, const ValueType &y)
Filter logicalAnd(const ValueType &x, const ValueType &y)
Size size(const ValueType &v)
Filter logicalOr(const ValueType &x, const ValueType &y)
Filter leq(const ValueType &x, const ValueType &y)
Filter geq(const ValueType &x, const ValueType &y)
boost::variant< RandomVariable, EventVec, CurrencyVec, IndexVec, DaycounterVec, Filter > ValueType
Filter logicalNot(const ValueType &x)
Serializable Credit Default Swap.