Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions SWIG/interpolation.i
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,18 @@ using QuantLib::Cubic;
using QuantLib::Bicubic;
using QuantLib::ConvexMonotone;
using QuantLib::DefaultLogCubic;
using QuantLib::LinearThenFlat;
using QuantLib::Cubic__SplineOvershootingMinimization1;
using QuantLib::Cubic__SplineOvershootingMinimization2;
using QuantLib::Cubic__FritschButland_monotonic;
using QuantLib::Cubic__FritschButland_nonMonotonic;
using QuantLib::Cubic__Kruger;
using QuantLib::Cubic__MonotonicKruger;
using QuantLib::Cubic__MonotonicParabolic;
using QuantLib::Cubic__Monotonic_NaturalSpline;
using QuantLib::Cubic__NaturalSpline;
using QuantLib::Cubic__Akima;
using QuantLib::Cubic__Parabolic;

class MonotonicCubic : public Cubic {
public:
Expand Down Expand Up @@ -267,6 +279,7 @@ struct MixedInterpolation {
struct BackwardFlat {};
struct ForwardFlat {};
struct Linear {};
struct LinearThenFlat {};
struct LogLinear {};
struct Cubic {
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP)
Expand Down Expand Up @@ -311,6 +324,17 @@ struct ParabolicCubic : Cubic {};
struct MonotonicParabolicCubic : Cubic {};
struct LogParabolicCubic : LogCubic {};
struct MonotonicLogParabolicCubic : LogCubic {};
struct Cubic__SplineOvershootingMinimization1{};
struct Cubic__SplineOvershootingMinimization2{};
struct Cubic__FritschButland_monotonic{};
struct Cubic__FritschButland_nonMonotonic{};
struct Cubic__Kruger {};
struct Cubic__MonotonicKruger {};
struct Cubic__MonotonicParabolic {};
struct Cubic__Monotonic_NaturalSpline {};
struct Cubic__NaturalSpline {};
struct Cubic__Akima {};
struct Cubic__Parabolic {};

%define make_mixed_linear_cubic(T)
%{
Expand Down
22 changes: 22 additions & 0 deletions SWIG/piecewiseyieldcurve.i
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ using QuantLib::Discount;
using QuantLib::ZeroYield;
using QuantLib::ForwardRate;
using QuantLib::PiecewiseYieldCurve;
using QuantLib::SimpleZeroYield;
%}

%{
Expand Down Expand Up @@ -177,6 +178,27 @@ export_piecewise_curve(PiecewiseParabolicCubicZero,ZeroYield,ParabolicCubic);
export_piecewise_curve(PiecewiseMonotonicParabolicCubicZero,ZeroYield,MonotonicParabolicCubic);
export_piecewise_curve(PiecewiseLogParabolicCubicDiscount,Discount,LogParabolicCubic);
export_piecewise_curve(PiecewiseMonotonicLogParabolicCubicDiscount,Discount,MonotonicLogParabolicCubic);
export_piecewise_curve(PiecewiseForwardRateBackward,ForwardRate,BackwardFlat);
export_piecewise_curve(PiecewiseForwardRateLinear,ForwardRate,Linear);
export_piecewise_curve(PiecewiseForwardRateCubic,ForwardRate,Cubic);
export_piecewise_curve(PiecewiseZeroYieldBackward,ZeroYield,BackwardFlat);
export_piecewise_curve(PiecewiseZeroYieldForward,ZeroYield,ForwardFlat);
export_piecewise_curve(PiecewiseZeroYieldLinear,ZeroYield,Linear);
export_piecewise_curve(PiecewiseZeroYieldLinearThenFlat,ZeroYield,LinearThenFlat);
export_piecewise_curve(PiecewiseZeroYieldCubic,ZeroYield,Cubic);
export_piecewise_curve(PiecewiseZeroYield_Cubic__SplineOvershootingMinimization2, ZeroYield,Cubic__SplineOvershootingMinimization2 );
export_piecewise_curve(PiecewiseZeroYield_Cubic__FritschButland_monotonic, ZeroYield,Cubic__FritschButland_monotonic);
export_piecewise_curve(PiecewiseZeroYield_Cubic__Kruger, ZeroYield,Cubic__Kruger);
export_piecewise_curve(PiecewiseZeroYield_Cubic__MonotonicKruger, ZeroYield,Cubic__MonotonicKruger );
export_piecewise_curve(PiecewiseZeroYield_Cubic__MonotonicParabolic, ZeroYield,Cubic__MonotonicParabolic );
export_piecewise_curve(PiecewiseZeroYield_Cubic__Monotonic_NaturalSpline, ZeroYield,Cubic__Monotonic_NaturalSpline);
export_piecewise_curve(PiecewiseZeroYield_Cubic__NaturalSpline, ZeroYield,Cubic__NaturalSpline );
export_piecewise_curve(PiecewiseZeroYield_Cubic__Parabolic, ZeroYield,Cubic__Parabolic );
export_piecewise_curve(PiecewiseZeroYield_Cubic__SplineOvershootingMinimization1, ZeroYield,Cubic__SplineOvershootingMinimization1 );
export_piecewise_curve(PiecewiseDiscountLogLinear,Discount,LogLinear);
export_piecewise_curve(PiecewiseDiscountLinear,Discount,Linear);
export_piecewise_curve(PiecewiseDiscountCubic,Discount,Cubic);
export_piecewise_curve(PiecewiseYieldSimpleZeroYieldCurveLinear,SimpleZeroYield,Linear);


// global boostrapper
Expand Down
4 changes: 4 additions & 0 deletions SWIG/zerocurve.i
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ deprecate_feature(KrugerZeroCurve, CubicZeroCurve);
#else
%template(KrugerZeroCurve) InterpolatedZeroCurve<Kruger>;
#endif
%shared_ptr(InterpolatedZeroCurve<LinearThenFlat>);
%shared_ptr(InterpolatedZeroCurve<ForwardFlat>);
%template(ZeroCurveLinearThenFlat) InterpolatedZeroCurve<LinearThenFlat>;
%template(ZeroCurveForwardFlat) InterpolatedZeroCurve<ForwardFlat>;
%template(ParabolicCubicZeroCurve) InterpolatedZeroCurve<ParabolicCubic>;
%template(MonotonicParabolicCubicZeroCurve) InterpolatedZeroCurve<MonotonicParabolicCubic>;

Expand Down