22#include <ql/methods/finitedifferences/schemes/hundsdorferscheme.hpp>
29 ext::shared_ptr<FdmLinearOpComposite> map,
31 : dt_(
Null<
Real>()), theta_(theta), mu_(mu), map_(
std::move(map)), bcSet_(bcSet) {}
34 QL_REQUIRE(t-
dt_ > -1e-8,
"a step towards negative time given");
36 map_->setTime(std::max(0.0, t-
dt_), t);
45 for (
Size i=0; i <
map_->size(); ++i) {
54 for (
Size i=0; i <
map_->size(); ++i) {
1-D array used in linear algebra.
void applyAfterSolving(array_type &a) const
void applyAfterApplying(array_type &a) const
void applyBeforeApplying(operator_type &op) const
void setTime(Time t) const
HundsdorferScheme(Real theta, Real mu, ext::shared_ptr< FdmLinearOpComposite > map, const bc_set &bcSet=bc_set())
const BoundaryConditionSchemeHelper bcSet_
const ext::shared_ptr< FdmLinearOpComposite > map_
traits::array_type array_type
void step(array_type &a, Time t)
template class providing a null value for a given type.
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container