quant-pricer-cpp
Loading...
Searching...
No Matches
brownian_bridge.hpp
Go to the documentation of this file.
1
2#pragma once
3
4#include <cstddef>
5#include <vector>
6
7namespace quant::qmc {
8
10 public:
11 BrownianBridge(std::size_t steps, double maturity);
12
13 std::size_t size() const { return size_; }
14
15 void transform(const double* normals, double* increments) const;
16
17 private:
18 void initialize();
19
20 std::size_t size_{};
21 double maturity_{};
22 std::vector<double> times_;
23 std::vector<std::size_t> bridge_index_;
24 std::vector<std::size_t> left_index_;
25 std::vector<std::size_t> right_index_;
26 std::vector<double> left_weight_;
27 std::vector<double> right_weight_;
28 std::vector<double> std_dev_;
29 mutable std::vector<double> workspace_;
30};
31
32} // namespace quant::qmc
Definition brownian_bridge.hpp:9
std::size_t size() const
Definition brownian_bridge.hpp:13
void transform(const double *normals, double *increments) const
Definition brownian_bridge.cpp:78
std::vector< double > normals
Definition mc.cpp:119
int steps
Definition mc.cpp:129
std::vector< double > increments
Definition mc.cpp:121
Brownian bridge mapping for quasi Monte Carlo Brownian paths.
Definition brownian_bridge.hpp:7