quantsupport 0.1.0

Rust library for fixed-income, derivative pricing and risk analytics.
Documentation
//! Prelude module for convenient imports.
//!
//! Re-exports the most commonly used types so that
//! `use quantsupport::prelude::*;` brings everything into scope.

pub use crate::{
    ad::{
        adreal::{ADReal, Const, Expr, IsReal},
        tape::Tape,
    },
    core::{
        collateral::{DiscountPolicy, FixedIncomeDiscountPolicy, SingleCurveCSADiscountPolicy},
        contextmanager::ContextManager,
        elements::{
            curveelement::{ADCurveElement, DiscountCurveElement, DividendCurveElement},
            montecarlosimulationelement::{
                ADMonteCarloSimulationElement, MonteCarloSimulationElement,
            },
            volatilitycubelement::{ADVolatilityCubeElement, VolatilityCubeElement},
            volatilitysurfaceelement::{ADVolatilitySurfaceElement, VolatilitySurfaceElement},
        },
        evaluationresults::{CashflowsTable, EvaluationResults, SensitivityMap},
        instrument::{AssetClass, Instrument},
        marketdatahandling::{
            constructedelementrequest::ConstructedElementRequest,
            constructedelementstore::{ConstructedElementStore, SharedElement},
            fixingrequest::FixingRequest,
            marketdata::{MarketData, MarketDataProvider, MarketDataRequest},
        },
        pillars::Pillars,
        pricer::Pricer,
        pricerstate::PricerState,
        request::{
            HandleCashflows, HandleFairRate, HandleModifiedDuration, HandleSensitivities,
            HandleValue, HandleYieldToMaturity, LegsProvider, Request,
        },
        trade::{Side, Trade},
        visitable::{Visitable, Visitor},
    },
    currencies::{
        currency::Currency, currencydetails::CurrencyDetails, exchangeratestore::ExchangeRateStore,
    },
    indices::{
        marketindex::{MarketIndex, MarketIndexDetails},
        quotetype::QuoteType,
        rateindex::RateIndexDetails,
    },
    instruments::{
        cashflows::{
            cashflow::{Cashflow, SimpleCashflow},
            cashflowtype::CashflowType,
            coupons::{LinearCoupon, NonLinearCoupon},
            fixedratecoupon::FixedRateCoupon,
            floatingratecoupon::FloatingRateCoupon,
            leg::Leg,
            makeleg::{MakeLeg, PaymentStructure, RateType},
        },
        equity::{
            equityeuropeanoption::{
                EquityEuropeanOption, EquityEuropeanOptionTrade, EuroOptionType,
            },
            equityforward::{EquityForward, EquityForwardTrade},
            futures::{Futures, FuturesTrade},
            makeequityforward::MakeEquityForward,
            makefutures::MakeFutures,
        },
        fixedincome::{
            fixedratebond::{FixedRateBond, FixedRateBondTrade},
            fixedratedeposit::{FixedRateDeposit, FixedRateDepositTrade},
            floatingratenote::{FloatingRateNote, FloatingRateNoteTrade},
            makefixedratebond::MakeFixedRateBond,
            makefixedratedeposit::MakeFixedRateDeposit,
            makefloatingratenote::MakeFloatingRateNote,
        },
        fx::{
            fxforward::{FxForward, FxForwardSettlement, FxForwardTrade},
            makefxforward::MakeFxForward,
        },
        rates::{
            basisswap::{BasisSwap, BasisSwapTrade},
            capfloor::{CapFloor, CapFloorTrade, CapFloorType},
            capletfloorlet::{CapletFloorlet, CapletFloorletTrade, CapletFloorletType},
            crosscurrencyswap::{CrossCurrencySwap, CrossCurrencySwapTrade},
            floatfloatcrosscurrencyswap::{
                FloatFloatCrossCurrencySwap, FloatFloatCrossCurrencySwapTrade,
            },
            makebasisswap::MakeBasisSwap,
            makecapfloor::MakeCapFloor,
            makecrosscurrencyswap::MakeCrossCurrencySwap,
            makefloatfloatcrosscurrencyswap::MakeFloatFloatCrossCurrencySwap,
            makeratefutures::MakeRateFutures,
            makeswap::MakeSwap,
            makeswaption::MakeSwaption,
            ratefutures::{RateFutures, RateFuturesTrade},
            swap::{Swap, SwapTrade},
            swaption::{Swaption, SwaptionExerciseType, SwaptionTrade, SwaptionType},
        },
    },
    math::{
        interpolation::interpolator::{Interpolate, Interpolator, StaticInterpolate},
        probability::norm_cdf::NormCDF,
        solvers::{bisection::Bisection, newtonraphson::NewtonRaphson},
    },
    models::{GbmModelParameters, ModelParameters},
    pricers::{
        cashflows::discountingcashflowpricer::CashflowDiscountPricer,
        equity::blackeuropeanoptionpricer::BlackEuropeanOptionPricer,
        fixedincome::fixedratedepositdiscountingpricer::FixedRateDepositDiscountingPricer,
        fx::fxforwardpricer::FxForwardPricer,
        pricerdefinitions::{
            BlackClosedFormPricer, CloseFormPricer, GbmMonteCarloPricer, HullWhiteClosedFormPricer,
            MonteCarloPricer, NormalClosedFormPricer,
        },
        rates::{blackcapletpricer::BlackCapletPricer, ratefuturespricer::RateFuturesPricer},
    },
    quotes::{
        fixingstore::FixingStore,
        quote::{Level, Quote, QuoteDetails, QuoteInstrument, QuoteLevels},
        quotestore::QuoteStore,
    },
    rates::{
        bootstrapping::{
            bootstrap::MultiCurveBootstrapper,
            bootstrapdiscountpolicy::BootstrapDiscountPolicy,
            curvespec::{BootstrappedCurve, CurveSpec, QuoteSelector},
            resolvedcurvespec::{ResolvedCurveSpec, ResolvedInstrument},
        },
        compounding::Compounding,
        interestrate::{InterestRate, RateDefinition},
        yieldtermstructure::{
            discounttermstructure::DiscountTermStructure,
            flatforwardtermstructure::FlatForwardTermStructure,
            interestratestermstructure::InterestRatesTermStructure,
        },
    },
    simulations::simulation::MonteCarloSimulation,
    time::{
        calendar::Calendar,
        date::{Date, NaiveDateExt},
        daycounter::DayCounter,
        enums::{
            BusinessDayConvention, DateGenerationRule, Frequency, IMMMonth, Month, TimeUnit,
            Weekday,
        },
        imm::IMM,
        period::Period,
        schedule::{MakeSchedule, Schedule},
    },
    utils::errors::{QSError, Result},
    volatility::{
        interpolatedvolatilitysurface::InterpolatedVolatilitySurface,
        volatilitycube::VolatilityCube,
        volatilityindexing::{SmileType, Strike, VolatilityType},
        volatilitysurface::VolatilitySurface,
    },
};