Ejemplo n.º 1
0
        public double value(IPath path)
        {
            MultiPath p = path as MultiPath;

            Utils.QL_REQUIRE(p != null, () => "invalid path");

            Utils.QL_REQUIRE(p.pathSize() > 0, () => "the path cannot be empty");

            Vector states = new Vector(p.assetNumber());

            for (int j = 0; j < states.size(); ++j)
            {
                states[j] = p[j][p.pathSize() - 1];
            }

            double df = 1.0 / process_.numeraire(exerciseTime_, states);

            return(payoff_.value(states[0]) * df);
        }