26#ifndef quantlib_bootstrap_error_hpp
27#define quantlib_bootstrap_error_hpp
29#include <ql/shared_ptr.hpp>
30#include <ql/types.hpp>
36 template <
class Curve>
38 typedef typename Curve::traits_type
Traits;
41 ext::shared_ptr<typename Traits::helper> instrument,
44 const ext::shared_ptr<typename Traits::helper>&
helper() {
49 const ext::shared_ptr<typename Traits::helper>
helper_;
56 template <
class Curve>
58 ext::shared_ptr<typename Traits::helper> helper,
60 : curve_(curve), helper_(
std::move(helper)), segment_(segment) {}
63 template <
class Curve>
65 Traits::updateGuess(curve_->data_, guess, segment_);
66 curve_->interpolation_.
update();
67 return helper_->quoteError();
const ext::shared_ptr< typename Traits::helper > helper_
Real operator()(Rate guess) const
const ext::shared_ptr< typename Traits::helper > & helper()
BootstrapError(const Curve *curve, ext::shared_ptr< typename Traits::helper > instrument, Size segment)
Curve::traits_type Traits
std::size_t Size
size of a container