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"};
BucketedDistribution operator+(const BucketedDistribution &lhs, const BucketedDistribution &rhs)
RandomVariable sqrt(RandomVariable x)
CompiledFormula exp(CompiledFormula x)
CompiledFormula min(CompiledFormula x, const CompiledFormula &y)
std::ostream & operator<<(std::ostream &out, EquityReturnType t)
bool operator==(const Dividend &d1, const Dividend &d)
CompiledFormula pow(CompiledFormula x, const CompiledFormula &y)
RandomVariable normalCdf(RandomVariable x)
CompiledFormula max(CompiledFormula x, const CompiledFormula &y)
CompiledFormula abs(CompiledFormula x)
RandomVariable normalPdf(RandomVariable x)
Filter equal(Filter x, const Filter &y)
CompiledFormula log(CompiledFormula x)
CompiledFormula operator-(CompiledFormula x, const CompiledFormula &y)
CompiledFormula operator/(CompiledFormula x, const CompiledFormula &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.