Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
brownianbridgepathinterpolator.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2020 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file methods/brownianbridgepathinterpolator.hpp
20 \brief brownian bridge path interpolator
21 \ingroup models
22*/
23
24#pragma once
25
27
28namespace QuantExt {
29
30/*! Input is
31
32 - a vector of ascending times 0 < t1 < t2 < ... < tn
33 - for a subset of these times a d-vector of N(0,1) variates that can be used to evolve a stochastic process
34 of dimension d on this subset of the given times, this subset is required to be non-empty
35
36 Here, the outer vector of the input variable variates refers to the times and the inner vector contains d random
37 variables. The components of the random variables correspond to the monte carlo pathts. For times where initially no
38 variates are given, the inner vector should be empty.
39
40 After the function call, the variates vector contains N(0,1) variates for all times. These variates can be
41 used to evolve the same stochastic process, but on the full time grid. The missing variates are interpolated using
42 a brownian bridge.
43*/
44
45void interpolateVariatesWithBrownianBridge(const std::vector<QuantLib::Real>& times,
46 std::vector<std::vector<QuantExt::RandomVariable>>& variates,
47 const Size seed);
48
49} // namespace QuantExt
void interpolateVariatesWithBrownianBridge(const std::vector< QuantLib::Real > &times, std::vector< std::vector< QuantExt::RandomVariable > > &variates, const Size seed)