36#ifndef quantlib_brownian_bridge_hpp
37#define quantlib_brownian_bridge_hpp
39#include <ql/methods/montecarlo/path.hpp>
40#include <ql/methods/montecarlo/sample.hpp>
80 const std::vector<Time>&
times()
const {
return t_; }
105 template <
class RandomAccessIterator1,
106 class RandomAccessIterator2>
108 RandomAccessIterator1 end,
109 RandomAccessIterator2 output)
const {
110 QL_REQUIRE(end >= begin,
"invalid sequence");
112 "incompatible sequence size");
133 output[i] -= output[i-1];
141 std::vector<Time>
t_;
Builds Wiener process paths using Gaussian variates.
const std::vector< Size > & rightIndex() const
std::vector< Size > leftIndex_
const std::vector< Real > & leftWeight() const
const std::vector< Size > & bridgeIndex() const
const std::vector< Size > & leftIndex() const
std::vector< Real > sqrtdt_
void transform(RandomAccessIterator1 begin, RandomAccessIterator1 end, RandomAccessIterator2 output) const
Brownian-bridge generator function.
std::vector< Size > rightIndex_
const std::vector< Real > & stdDeviation() const
std::vector< Real > stdDev_
std::vector< Real > rightWeight_
const std::vector< Time > & times() const
std::vector< Size > bridgeIndex_
std::vector< Real > leftWeight_
const std::vector< Real > & rightWeight() const
std::size_t Size
size of a container