Skip to main content

Crate helixrs

Crate helixrs 

Expand description

helixrs — a mode-generic fixed-income substrate.

§Status: 0.0.1, a pre-release

This is the first cut, handed out for testing and development, and the API changes without notice until 0.1: any name, signature or module path may move between cuts. Cargo treats every 0.0.z version as incompatible with every other, so a dependency is pinned exactly, helixrs = "=0.0.1", and moves deliberately.

What a tester may rely on already: a valuation is bit-identical across the AD modes (the numeric-scalar-modes gate), the Rust and Python surfaces agree member for member (the binding marshals and does not calculate), and the error vocabulary in spellings.txt is the one a caller may copy out of a message. Nothing else is promised yet.

§The scalar is the caller’s choice

Nothing in this crate fixes a numeric scalar. Pricing code is written once against crate::xad::Real and instantiated at the call site with the mode that matches the problem’s derivative shape:

ModeShapeUsed for
f64no derivativesvalue-only pricing
Jet1one input, one outputthe sequential calibration solve
Jet2second order, one directiongamma; the P&L explain’s quadratic term, along the whole move and split by axis pair
AReal + tapemany inputs, one outputrisk ladders; the calibration Jacobian above REVERSE_FROM pillars
JetKK inputs per tape-free passthe calibration Jacobian at or below REVERSE_FROM pillars, and the bond-curve fit

There is no crate-wide scalar alias and no Cargo feature selecting a mode, so one process may price without derivatives and take risk in the same run.

A mode is admitted by implementing the lift seam, which makes it available to every generic body and puts it under the cross-mode value-identity gate; it is used only where an entry point has its derivative shape. JetK is used in exactly two places, and the mode-routing test holds the list: the calibration Jacobian ∂q/∂z (every par quote against every pillar, wanted as a whole matrix) on ladders of at most REVERSE_FROM pillars, and the bond-curve fit’s ∂price/∂β over a form’s coefficients, which is the same shape. Each seeds eight lanes at a time with its own block loop. Eight is measured, not chosen: on a forty-pillar ladder the Jacobian costs +140% of the solve in eight lanes where one lane costs +575%.

Above REVERSE_FROM the Jacobian is routed by size to the reverse mode: one recording of every rung on a tape calibration keeps per thread, read back by vector sweeps in blocks the ADJOINT_BUDGET_BYTES budget admits, so the buffer is bounded and the rungs are never re-recorded. A calibration never nests a recording: with one already open on the thread it takes the eight-lane engine whatever the size, so it runs inside a risk pass unnoticed. Which engine built a ladder is reported on its provenance. The measurement behind the lane count is the LANES table in calibration.rs; the one behind the threshold, and the one a further routing decision should be argued against, is the Jacobian-shape group in benches/mode_crossover.rs (jacobian_ladder_4 through _40 and jacobian_ois_ladder_50): one eight-lane pass wins at four and eight pillars, the sweep from sixteen on, by 1.9× at forty and 3.1× on the overnight ladder.

§The market is active; the trade is data

Contract terms — notionals, rates, spreads, strikes — are passive f64. Only market inputs are differentiable: curve parameters, volatility nodes, credit parameters, FX rates, observed fixings, and declared exogenous scalars.

Consequently the trading layer — containers, lenses, scenarios — and the product-construction layer carry no scalar type parameter at all — a book is a book regardless of the mode a valuation runs in.

§Curves: storage, view, evaluation

A stored curve holds passive parameters and no AD state. A lift produces a view for one mode, borrowing the storage rather than copying it; the view implements the evaluation trait. Adjoint read-back is a property of the active view, not of each curve family.

Re-exports§

pub use crate::analytics::pnl::ExplainLeg;
pub use crate::analytics::pnl::ExplainReport;
pub use crate::analytics::pnl::GammaTerms;
pub use crate::analytics::pnl::LayoutMismatch;
pub use crate::analytics::pnl::MarketDiff;
pub use crate::analytics::pnl::PnlError;
pub use crate::analytics::pnl::PredictedPnl;
pub use crate::analytics::pnl::Published;
pub use crate::analytics::pnl::Reconciliation;
pub use crate::analytics::pnl::ReconciliationRow;
pub use crate::analytics::pnl::ResetPnl;
pub use crate::analytics::pnl::ResetRow;
pub use crate::analytics::pnl::default_order;
pub use crate::analytics::pnl::explain;
pub use crate::analytics::pnl::market_diff;
pub use crate::analytics::pnl::predicted_pnl;
pub use crate::analytics::pnl::reconcile;
pub use crate::analytics::pnl::reset_pnl;
pub use crate::calibration::sabr::SabrCalibrationError;
pub use crate::calibration::sabr::SabrFit;
pub use crate::calibration::sabr::SabrSliceFit;
pub use crate::calibration::sabr::SabrSpec;
pub use crate::calibration::sabr::calibrate_sabr;
pub use crate::calibration::sabr::calibrate_sabr_with_atm;
pub use crate::calibration::sabr::caplet_forwards;
pub use crate::calibration::sabr::swaption_forwards;
pub use crate::calibration::BondRungError;
pub use crate::calibration::Calibrated;
pub use crate::calibration::CalibratedBaseCorrelation;
pub use crate::calibration::CalibratedDensity;
pub use crate::calibration::CalibratedInflation;
pub use crate::calibration::CalibratedSurvival;
pub use crate::calibration::CalibrationError;
pub use crate::calibration::CalibrationOptions;
pub use crate::calibration::HelperSolve;
pub use crate::calibration::JacobianEngine;
pub use crate::calibration::JointCalibration;
pub use crate::calibration::JointCurve;
pub use crate::calibration::QuoteKind;
pub use crate::calibration::QuoteSheet;
pub use crate::calibration::RecipeQuoteError;
pub use crate::calibration::Rung;
pub use crate::calibration::SheetEntry;
pub use crate::calibration::SmoothedCalibration;
pub use crate::calibration::Tolerance;
pub use crate::calibration::bond_rung;
pub use crate::calibration::calibrate;
pub use crate::calibration::calibrate_base_correlation;
pub use crate::calibration::calibrate_cross_currency;
pub use crate::calibration::calibrate_curve_helpers;
pub use crate::calibration::calibrate_inflation;
pub use crate::calibration::calibrate_jointly;
pub use crate::calibration::calibrate_jointly_on;
pub use crate::calibration::calibrate_recipe;
pub use crate::calibration::calibrate_smoothed;
pub use crate::calibration::calibrate_survival;
pub use crate::calibration::calibrate_survival_density;
pub use crate::calibration::calibrate_with;
pub use crate::calibration::check_pillars_ascend;
pub use crate::calibration::recipe_rungs_at;
pub use crate::calibration::rungs_for;
pub use crate::calibration::CapQuote;
pub use crate::calibration::StripScheme;
pub use crate::calibration::strip_caplet_smile;
pub use crate::calibration::strip_caplet_vols;
pub use crate::calibration::strip_overnight_caplet_vols;
pub use crate::cashflows::coupons::AnyCoupon;
pub use crate::cashflows::coupons::CmsCoupon;
pub use crate::cashflows::coupons::CmsSpreadCorrelation;
pub use crate::cashflows::coupons::Collar;
pub use crate::cashflows::coupons::CpiCoupon;
pub use crate::cashflows::coupons::CpiRedemption;
pub use crate::cashflows::coupons::Digital;
pub use crate::cashflows::coupons::DigitalStrike;
pub use crate::cashflows::coupons::Direction;
pub use crate::cashflows::coupons::FixedRateCoupon;
pub use crate::cashflows::coupons::IborCoupon;
pub use crate::cashflows::coupons::MultiResetCoupon;
pub use crate::cashflows::coupons::Observation;
pub use crate::cashflows::coupons::OvernightCoupon;
pub use crate::cashflows::coupons::PayoffError;
pub use crate::cashflows::coupons::RangeAccrualCoupon;
pub use crate::cashflows::coupons::RangeObservation;
pub use crate::cashflows::coupons::RatePayoff;
pub use crate::cashflows::coupons::Redemption;
pub use crate::cashflows::coupons::Reset;
pub use crate::cashflows::coupons::ResetCompounding;
pub use crate::cashflows::coupons::YoyInflationCoupon;
pub use crate::cashflows::legs::Accumulation;
pub use crate::cashflows::legs::Leg;
pub use crate::cashflows::legs::LegTerms;
pub use crate::cashflows::legs::ObservationConventions;
pub use crate::cashflows::legs::PaymentRule;
pub use crate::cashflows::legs::StubRule;
pub use crate::cashflows::legs::accumulated_fixed_leg;
pub use crate::cashflows::legs::accumulated_float_leg;
pub use crate::cashflows::legs::fixed_rate_leg;
pub use crate::cashflows::legs::ibor_leg;
pub use crate::cashflows::legs::ibor_leg_on_index;
pub use crate::cashflows::legs::ibor_leg_with_stubs;
pub use crate::cashflows::legs::multi_reset_leg;
pub use crate::cashflows::legs::overnight_leg;
pub use crate::cashflows::legs::overnight_leg_with;
pub use crate::cashflows::legs::overnight_observations;
pub use crate::cashflows::legs::yoy_inflation_leg;
pub use crate::cashflows::records::CASHFLOW_COLUMNS;
pub use crate::cashflows::records::cashflow_records;
pub use crate::cashflows::records::leg_cashflow_records;
pub use crate::core::scalar::Scalar;
pub use crate::curves::discount::CurveError;
pub use crate::curves::discount::PiecewiseDiscount;
pub use crate::curves::discount::YieldCurve;
pub use crate::curves::fit::FitWeights;
pub use crate::curves::fit::FittedForm;
pub use crate::curves::flat::FlatForward;
pub use crate::curves::spread::RepoSpread;
pub use crate::curves::survival::PiecewiseSurvival;
pub use crate::market::store::DegenerateHub;
pub use crate::market::store::PinnedCurve;
pub use crate::marketdata::future_option_vol::FutureOptionVolSurface;
pub use crate::statics::conventions::Compounding;
pub use crate::statics::conventions::RateConvention;
pub use crate::statics::conventions::SwaptionKind;
pub use crate::curves::family::Curve;
pub use crate::curves::family::Family;
pub use crate::curves::family::Lift;
pub use crate::curves::inflation::Inflation;
pub use crate::curves::inflation::InflationCurve;
pub use crate::curves::inflation::LevelInterpolation;
pub use crate::curves::inflation::PiecewiseInflation;
pub use crate::curves::inflation::lagged_observation;
pub use crate::instruments::asset_swap::AssetSwap;
pub use crate::instruments::asset_swap::AssetSwapError;
pub use crate::instruments::asset_swap::AssetSwapKind;
pub use crate::instruments::asset_swap::CrossCurrencyAssetSwap;
pub use crate::instruments::asset_swap::CrossCurrencyAssetSwapError;
pub use crate::instruments::bond_derivatives::BondFuture;
pub use crate::instruments::bond_derivatives::BondFutureAnalysis;
pub use crate::instruments::bond_derivatives::BondFutureError;
pub use crate::instruments::bond_derivatives::BondFutureOption;
pub use crate::instruments::bond_derivatives::BondFutureOptionDiagnostics;
pub use crate::instruments::bond_derivatives::BondFutureOptionError;
pub use crate::instruments::bond_derivatives::BondFuturePosition;
pub use crate::instruments::bond_derivatives::BondOption;
pub use crate::instruments::bond_derivatives::BondOptionDiagnostics;
pub use crate::instruments::bond_derivatives::BondOptionEngine;
pub use crate::instruments::bond_derivatives::BondOptionError;
pub use crate::instruments::bond_derivatives::BondStrike;
pub use crate::instruments::bond_derivatives::CmeMaturityRounding;
pub use crate::instruments::bond_derivatives::Deliverable;
pub use crate::instruments::bond_derivatives::DeliverableAnalysis;
pub use crate::instruments::bond_derivatives::ExerciseStyle;
pub use crate::instruments::bond_derivatives::PremiumStyle;
pub use crate::instruments::bond_derivatives::RepoTier;
pub use crate::instruments::bond_derivatives::bond_future_option_from_template;
pub use crate::instruments::bond_derivatives::cme_conversion_factor;
pub use crate::instruments::bond_derivatives::eurex_btp_conversion_factor;
pub use crate::instruments::bond_derivatives::eurex_chf_conversion_factor;
pub use crate::instruments::bond_derivatives::eurex_conversion_factor;
pub use crate::instruments::bond_derivatives::ice_gilt_conversion_factor;
pub use crate::instruments::bond_derivatives::weekly_bond_future_option_from_template;
pub use crate::instruments::bonds::linker::AnbimaParcel;
pub use crate::instruments::bonds::linker::AnbimaQuote;
pub use crate::instruments::bonds::linker::MonthObservation;
pub use crate::instruments::bonds::linker::anbima_nominal_value;
pub use crate::instruments::bonds::linker::anbima_price;
pub use crate::instruments::bonds::linker::anbima_yield_from_price;
pub use crate::instruments::bonds::linker::australian_coupon_factor;
pub use crate::instruments::bonds::linker::australian_indexation_factor;
pub use crate::instruments::bonds::linker::australian_price_from_real_yield;
pub use crate::instruments::bonds::linker::australian_real_yield_from_price;
pub use crate::instruments::bonds::linker::invoice;
pub use crate::instruments::bonds::linker::real_price;
pub use crate::instruments::bonds::linker::real_yield;
pub use crate::instruments::bonds::linker::reference_index;
pub use crate::instruments::bonds::linker::street_index_ratio;
pub use crate::instruments::bonds::linker::uk_money_accrued;
pub use crate::instruments::bonds::linker::uk_money_price;
pub use crate::instruments::bonds::linker::uk_money_yield;
pub use crate::instruments::bonds::linker::uk_real_yield_from_money;
pub use crate::instruments::bonds::linker::uk_real_yield_from_money_dirty;
pub use crate::instruments::bonds::zero_coupon::ZeroCouponBond;
pub use crate::instruments::bonds::CallKind;
pub use crate::instruments::bonds::CallPrice;
pub use crate::instruments::bonds::CallYieldError;
pub use crate::instruments::bonds::Callability;
pub use crate::instruments::bonds::CallableBond;
pub use crate::instruments::bonds::FixedRateBond;
pub use crate::instruments::bonds::FloatingRateNote;
pub use crate::instruments::bonds::InflationLinkedBond;
pub use crate::instruments::bonds::SpreadSolveError;
pub use crate::instruments::bonds::YieldMoments;
pub use crate::instruments::bonds::YieldSolveError;
pub use crate::instruments::bonds::clean_price;
pub use crate::instruments::bonds::convexity;
pub use crate::instruments::bonds::curve_yield_at;
pub use crate::instruments::bonds::dirty_price;
pub use crate::instruments::bonds::dv01;
pub use crate::instruments::bonds::forward_price_with;
pub use crate::instruments::bonds::g_spread;
pub use crate::instruments::bonds::i_spread;
pub use crate::instruments::bonds::ise_simple_yield;
pub use crate::instruments::bonds::japanese_simple_price;
pub use crate::instruments::bonds::japanese_simple_yield;
pub use crate::instruments::bonds::macaulay_duration;
pub use crate::instruments::bonds::modified_duration;
pub use crate::instruments::bonds::money_duration;
pub use crate::instruments::bonds::money_dv01;
pub use crate::instruments::bonds::pv_weighted_time;
pub use crate::instruments::bonds::quoted_clean_price;
pub use crate::instruments::bonds::quoted_yield;
pub use crate::instruments::bonds::risky_value;
pub use crate::instruments::bonds::spread_over_curve;
pub use crate::instruments::bonds::yield_from_dirty_price;
pub use crate::instruments::bonds::yield_moments;
pub use crate::instruments::bonds::z_spread_on_curve;
pub use crate::instruments::cap_floor::CapFloorError;
pub use crate::instruments::cap_floor::CapFloorKind;
pub use crate::instruments::cap_floor::InterestRateCapFloor;
pub use crate::instruments::cpi_cap_floor::ZeroCouponInflationCapFloor;
pub use crate::instruments::credit::AccrualOnDefault;
pub use crate::instruments::credit::BasketCorrelation;
pub use crate::instruments::credit::CdoTranche;
pub use crate::instruments::credit::CdsDiagnostics;
pub use crate::instruments::credit::CdsOptionStyle;
pub use crate::instruments::credit::CdsStrikeType;
pub use crate::instruments::credit::CreditDefaultSwap;
pub use crate::instruments::credit::CreditDefaultSwapOption;
pub use crate::instruments::credit::CreditDefaultSwapOptionError;
pub use crate::instruments::credit::CreditError;
pub use crate::instruments::credit::CreditEvent;
pub use crate::instruments::credit::CreditLinkedNote;
pub use crate::instruments::credit::DefaultPaymentTime;
pub use crate::instruments::credit::IndexCreditDefaultSwap;
pub use crate::instruments::credit::IndexSettlement;
pub use crate::instruments::credit::NthToDefaultSwap;
pub use crate::instruments::credit::TrancheCopula;
pub use crate::instruments::credit::TrancheMark;
pub use crate::instruments::credit::TrancheRecovery;
pub use crate::instruments::credit::TrancheSettlement;
pub use crate::instruments::credit_linked::CreditLinkedSwap;
pub use crate::instruments::credit_linked::CreditLinkedSwapError;
pub use crate::instruments::credit_linked::LegRole;
pub use crate::instruments::credit_linked::RoleLeg;
pub use crate::instruments::curve_pin::CurvePin;
pub use crate::instruments::curve_pin::CurveReading;
pub use crate::instruments::equity::Barrier;
pub use crate::instruments::equity::EquityOption;
pub use crate::instruments::equity::EquityOptionError;
pub use crate::instruments::fee::Fee;
pub use crate::instruments::financing::BasketConstituent;
pub use crate::instruments::financing::BondBasket;
pub use crate::instruments::financing::BondForward;
pub use crate::instruments::financing::BondTotalReturnSwap;
pub use crate::instruments::financing::EquityTotalReturnSwap;
pub use crate::instruments::financing::FinancingError;
pub use crate::instruments::financing::StrikeQuote;
pub use crate::instruments::fx::FxError;
pub use crate::instruments::fx::FxForward;
pub use crate::instruments::fx::FxOption;
pub use crate::instruments::fx::FxOptionDiagnostics;
pub use crate::instruments::fx::FxSwap;
pub use crate::instruments::fx::Settlement;
pub use crate::instruments::fx::Strike;
pub use crate::instruments::loan::Amortisation;
pub use crate::instruments::loan::CallableLoan;
pub use crate::instruments::loan::Loan;
pub use crate::instruments::pik::Accretion;
pub use crate::instruments::pik::Capitalisation;
pub use crate::instruments::pik::ContractualAccretion;
pub use crate::instruments::pik::PaymentInKindBond;
pub use crate::instruments::pik::PikError;
pub use crate::instruments::rates::CrossCurrencyError;
pub use crate::instruments::rates::CrossCurrencyLeg;
pub use crate::instruments::rates::CrossCurrencySwap;
pub use crate::instruments::rates::ForwardRateAgreement;
pub use crate::instruments::rates::MoneyMarketDeposit;
pub use crate::instruments::rates::OvernightIndexedSwap;
pub use crate::instruments::rates::RateFuture;
pub use crate::instruments::rates::RateFutureError;
pub use crate::instruments::rates::TenorBasisSwap;
pub use crate::instruments::rates::VanillaSwap;
pub use crate::instruments::rates::YoyInflationSwap;
pub use crate::instruments::rates::ZeroCouponInflationSwap;
pub use crate::instruments::rates::ZeroCouponSwap;
pub use crate::instruments::repack::RepackEngine;
pub use crate::instruments::repack::RepackError;
pub use crate::instruments::repack::RepackNote;
pub use crate::instruments::repack::RepackRole;
pub use crate::instruments::repack::ValuationTrigger;
pub use crate::instruments::repack::Waterfall;
pub use crate::instruments::repo::CouponTreatment;
pub use crate::instruments::repo::OpenRepo;
pub use crate::instruments::repo::Repo;
pub use crate::instruments::repo::RepoAmount;
pub use crate::instruments::repo::RepoError;
pub use crate::instruments::repo::RepoMargin;
pub use crate::instruments::repo::RepoRate;
pub use crate::instruments::repo::RepoSide;
pub use crate::instruments::repo::RepoTerms;
pub use crate::instruments::repo::SecuritiesLoan;
pub use crate::instruments::repo::TriPartyAllocation;
pub use crate::instruments::repo::TriPartyRepo;
pub use crate::instruments::straddle::Straddle;
pub use crate::instruments::straddle::StraddleError;
pub use crate::instruments::structured::StructuredNote;
pub use crate::instruments::structured::StructuredNoteError;
pub use crate::instruments::swaptions::BermudanSwaption;
pub use crate::instruments::swaptions::EuropeanSwaption;
pub use crate::instruments::swaptions::SwaptionEngine;
pub use crate::instruments::swaptions::SwaptionError;
pub use crate::instruments::swaptions::SwaptionSettlement;
pub use crate::instruments::swaptions::SwaptionUnderlying;
pub use crate::instruments::swaptions::expiry_years;
pub use crate::instruments::yoy_cap_floor::YoyInflationCapFloor;
pub use crate::instruments::AnyInstrument;
pub use crate::instruments::NotTheProduct;
pub use crate::market::bond_readings::BondReadingError;
pub use crate::market::bond_readings::accreted_face;
pub use crate::market::bond_readings::accreted_redemption;
pub use crate::market::bond_readings::bond_future_option_diagnostics;
pub use crate::market::bond_readings::bond_option_diagnostics;
pub use crate::market::bond_readings::callable_oas;
pub use crate::market::bond_readings::capitalisations;
pub use crate::market::bond_readings::clean_price_at_oas;
pub use crate::market::bond_readings::discount_margin;
pub use crate::market::bond_readings::effective_risk;
pub use crate::market::bond_readings::fair_margin;
pub use crate::market::bond_readings::forward_price;
pub use crate::market::bond_readings::note_dirty_price;
pub use crate::market::bond_readings::note_z_spread;
pub use crate::market::bond_readings::package_value;
pub use crate::market::bond_readings::repo_margin;
pub use crate::market::bond_readings::settlement_date;
pub use crate::market::bond_readings::simple_margin;
pub use crate::market::bond_readings::spread_duration;
pub use crate::market::bond_readings::yield_to_call;
pub use crate::market::bond_readings::yield_to_maturity_scenario;
pub use crate::market::bond_readings::yield_to_worst;
pub use crate::market::bond_readings::z_spread;
pub use crate::market::bond_readings::zero_coupon_quotes;
pub use crate::market::cms::CmsSwap;
pub use crate::market::cms::SwapIndex;
pub use crate::market::context::CollateralSpec;
pub use crate::market::context::CrisisParameters;
pub use crate::market::context::CrossCurrencyDynamics;
pub use crate::market::context::GaussianIntensity;
pub use crate::market::context::HullWhiteParameters;
pub use crate::market::context::Priceable;
pub use crate::market::context::PricingError;
pub use crate::market::context::PricingRiskFactors;
pub use crate::market::context::PricingView;
pub use crate::market::context::RiskFactors;
pub use crate::market::context::SigmaTerm;
pub use crate::market::context::credit_crisis_default_label;
pub use crate::market::context::credit_crisis_jump_mean_label;
pub use crate::market::context::credit_crisis_rate_label;
pub use crate::market::context::credit_intensity_mean_reversion_label;
pub use crate::market::context::credit_intensity_vol_label;
pub use crate::market::context::credit_rate_correlation_label;
pub use crate::market::context::fx_credit_correlation_label;
pub use crate::market::context::fx_rate_correlation_label;
pub use crate::market::context::hull_white_mean_reversion_label;
pub use crate::market::context::hull_white_sigma_label;
pub use crate::market::context::hull_white_sigma_piece_label;
pub use crate::market::context::parse_hull_white_sigma_piece_label;
pub use crate::market::context::rate_rate_correlation_label;
pub use crate::market::context::swaption_normal_vol_label;
pub use crate::market::pricers::CdsOptionValue;
pub use crate::market::pricers::IndexIntrinsic;
pub use crate::market::pricers::IndexSkew;
pub use crate::market::pricers::LatticeMoments;
pub use crate::market::pricers::callable_oas_with;
pub use crate::market::pricers::cds_option;
pub use crate::market::pricers::clean_price_at_oas_with;
pub use crate::market::pricers::fair_forward_rate;
pub use crate::market::pricers::fair_margin_with;
pub use crate::market::pricers::fra_settlement;
pub use crate::market::pricers::futures_convexity;
pub use crate::market::pricers::futures_price;
pub use crate::market::pricers::index_intrinsic;
pub use crate::market::pricers::index_skew;
pub use crate::market::pricers::note_z_spread_with;
pub use crate::market::pricers::z_spread_with;
pub use crate::market::records::instrument_cashflow_records;
pub use crate::market::records::refuses_a_cashflow_table;
pub use crate::market::risk::AssetClass;
pub use crate::market::risk::AxisSet;
pub use crate::market::risk::CurveId;
pub use crate::market::risk::MarketInputId;
pub use crate::market::risk::QuantityKind;
pub use crate::market::risk::RiskAxis;
pub use crate::market::risk::RiskEntry;
pub use crate::market::risk::RiskError;
pub use crate::market::risk::RiskVector;
pub use crate::market::risk::VolSurfaceId;
pub use crate::market::source::CalendarSource;
pub use crate::market::source::DataSource;
pub use crate::market::source::Demand;
pub use crate::market::source::FetchReport;
pub use crate::market::source::FxSpot;
pub use crate::market::source::Gap;
pub use crate::market::source::MarketData;
pub use crate::market::source::MarketDataSource;
pub use crate::market::source::RecipeAsk;
pub use crate::market::source::RecipeSource;
pub use crate::market::source::SnapshotError;
pub use crate::market::source::SourceError;
pub use crate::market::source::StripKey;
pub use crate::market::source::StripQuotes;
pub use crate::market::source::Unresolved;
pub use crate::market::source::set_data_source;
pub use crate::market::store::Diagnostics;
pub use crate::market::store::LiftedMarket;
pub use crate::market::store::MarketContext;
pub use crate::market::store::MarketView;
pub use crate::market::store::ProjectionKey;
pub use crate::market::store::SigmaPin;
pub use crate::market::store::npv;
pub use crate::market::store::risk_with;
pub use crate::marketdata::MarketDataError;
pub use crate::marketdata::base_correlation::BaseCorrelation;
pub use crate::marketdata::base_correlation::BaseCorrelationError;
pub use crate::marketdata::cms_spread_correlation::CmsSpreadCorrelationCurve;
pub use crate::marketdata::cms_spread_correlation::CmsSpreadCorrelationView;
pub use crate::marketdata::credit_vol::CreditVolError;
pub use crate::marketdata::credit_vol::CreditVolSurface;
pub use crate::marketdata::credit_vol::CreditVolView;
pub use crate::marketdata::fx_vol::DeltaConvention;
pub use crate::marketdata::fx_vol::DeltaQuote;
pub use crate::marketdata::fx_vol::FxVolError;
pub use crate::marketdata::fx_vol::FxVolSmile;
pub use crate::marketdata::fx_vol::FxVolSurface;
pub use crate::marketdata::inflation_vol::CpiVolSurface;
pub use crate::marketdata::inflation_vol::InflationVolView;
pub use crate::marketdata::inflation_vol::YoyVolSurface;
pub use crate::marketdata::rate_vol::RateSmile;
pub use crate::marketdata::rate_vol::RateSmileView;
pub use crate::marketdata::rate_vol::RateVolError;
pub use crate::marketdata::rate_vol::RateVolSurface;
pub use crate::marketdata::rate_vol::RateVolView;
pub use crate::marketdata::rate_vol::StrikeAxis;
pub use crate::marketdata::rate_vol::VolConvention;
pub use crate::marketdata::sabr::SabrParameter;
pub use crate::marketdata::sabr::SabrRegistry;
pub use crate::marketdata::sabr::SabrVolSurface;
pub use crate::marketdata::sabr::SabrVolView;
pub use crate::models::credit::Copula;
pub use crate::models::credit::RecoveryModel;
pub use crate::models::credit::basket_survival_probability;
pub use crate::models::credit::expected_tranche_loss;
pub use crate::models::credit::inv_norm_cdf;
pub use crate::models::credit::norm_cdf;
pub use crate::models::fx_option::DeltaError;
pub use crate::models::fx_option::atm_delta_neutral_strike;
pub use crate::models::fx_option::delta;
pub use crate::models::fx_option::strike_from_delta;
pub use crate::models::hw_calibration::CalibratedSigma;
pub use crate::models::hw_calibration::InstrumentFit;
pub use crate::models::hw_calibration::SigmaShape;
pub use crate::models::hw_calibration::StripPoint;
pub use crate::models::hw_calibration::calibrate_and_pin;
pub use crate::models::hw_calibration::calibrate_hull_white;
pub use crate::models::hw_calibration::calibrate_hull_white_to_strip;
pub use crate::models::hw_calibration::market_vega;
pub use crate::models::hw_calibration::strip_from_callable;
pub use crate::models::lattice::DiscretizedAsset;
pub use crate::models::lattice::HullWhiteLattice;
pub use crate::models::lattice::TimeGrid;
pub use crate::models::lattice::compounded_oas;
pub use crate::models::repack_gap::GapCharge;
pub use crate::models::repack_gap::GapRow;
pub use crate::models::repack_gap::repack_gap;
pub use crate::models::repack_sim::GapLegs;
pub use crate::models::repack_sim::GapProfileRow;
pub use crate::models::repack_sim::SimulatedGap;
pub use crate::models::repack_sim::SimulationSettings;
pub use crate::models::repack_sim::simulate_repack_gap;
pub use crate::models::repack_sim::simulate_repack_gap_risk;
pub use crate::models::sabr::SabrError;
pub use crate::models::sabr::SabrFormula;
pub use crate::models::sabr::SabrParams;
pub use crate::models::sabr::alpha_from_atm;
pub use crate::models::sabr::sabr_vol;
pub use crate::models::short_rate::HullWhite;
pub use crate::models::short_rate::SolvedParameter;
pub use crate::models::short_rate::coupon_bond_option;
pub use crate::models::short_rate::discount_bond_affine;
pub use crate::models::short_rate::hull_white_compounded_convexity_exponent;
pub use crate::models::short_rate::hull_white_convexity_bias;
pub use crate::models::short_rate::hull_white_convexity_exponent;
pub use crate::models::short_rate::instantaneous_forward;
pub use crate::models::short_rate::payer_swaption;
pub use crate::models::short_rate::receiver_swaption;
pub use crate::models::short_rate::zero_bond_option;
pub use crate::products::FutureContract;
pub use crate::products::FxSwapQuote;
pub use crate::products::Locator;
pub use crate::products::MeetingLocator;
pub use crate::products::ProductBuilder;
pub use crate::products::ProductFamily;
pub use crate::products::RungBuildError;
pub use crate::products::Side;
pub use crate::products::SideParseError;
pub use crate::products::SwapLegsError;
pub use crate::products::SwapTemplateArg;
pub use crate::products::Termination;
pub use crate::products::TerminationParseError;
pub use crate::products::WindowEnd;
pub use crate::products::XccyTemplateArg;
pub use crate::products::cross_currency_rungs;
pub use crate::products::deposit_rung;
pub use crate::products::fra_rung;
pub use crate::products::future_rung;
pub use crate::products::fx_swap_rung;
pub use crate::products::market_data_needs;
pub use crate::products::meeting_overnight_swap;
pub use crate::products::meeting_rung;
pub use crate::products::meeting_window;
pub use crate::products::par_rungs;
pub use crate::products::swap_builder_on_index;
pub use crate::products::swap_builder_on_overnight_template;
pub use crate::products::swap_builder_on_template;
pub use crate::products::swap_builder_on_tenor;
pub use crate::products::swap_dates_from_tenor;
pub use crate::products::swap_from_legs;
pub use crate::products::swap_index_code;
pub use crate::products::tenor_basis_rung;
pub use crate::products::turn_rung;
pub use crate::products::window_rung;
pub use crate::statics::credit_identity::CreditCurveId;
pub use crate::statics::credit_identity::CreditIdParseError;
pub use crate::statics::credit_identity::CreditIndexId;
pub use crate::statics::credit_identity::DocClause;
pub use crate::statics::credit_identity::ReferenceEntity;
pub use crate::statics::listed_future::FuturesExchange;
pub use crate::statics::listed_future::ListedFutureId;
pub use crate::statics::listed_future::ListedFutureIdError;
pub use crate::statics::money::Currency;
pub use crate::statics::securities::Seniority;
pub use crate::statics::securities::ExDivDayType;
pub use crate::statics::securities::ExDivRule;
pub use crate::statics::securities::PriceBasis;
pub use crate::statics::templates::registry::TemplateError;
pub use crate::statics::templates::registry::template;
pub use crate::trading::presets;
pub use crate::cashflows::adjustments::LagAdjustment;
pub use crate::curves::interp::Interpolation;
pub use crate::curves::spread::FlatSpread;
pub use crate::curves::spread::PiecewiseSpread;
pub use crate::curves::survival::DensitySurvival;
pub use crate::curves::survival::FlatHazard;
pub use crate::curves::survival::ScaledSurvival;
pub use crate::curves::survival::Survival;
pub use crate::marketdata::fixings::FixingHistory;
pub use crate::marketdata::fixings::FixingKey;
pub use crate::marketdata::fixings::FixingStore;
pub use crate::marketdata::fx::CurrencyPair;
pub use crate::marketdata::fx::FxRates;
pub use crate::products::nds_rung;
pub use crate::statics::calc_methods::LinkerConvention;
pub use crate::statics::calc_methods::NoSingleBasis;
pub use crate::statics::calc_methods::YieldKernel;
pub use crate::statics::calc_methods::YieldQuoteConvention;
pub use crate::statics::conventions::AccrualCompounding;
pub use crate::statics::conventions::BusinessDayConvention;
pub use crate::statics::conventions::DateGenerationRule;
pub use crate::statics::conventions::Frequency;
pub use crate::statics::conventions::RollConvention;
pub use crate::statics::conventions::StubPeriodType;
pub use crate::statics::conventions::YieldBasis;
pub use crate::statics::daycounts::DayCountFraction;
pub use crate::statics::daycounts::PeriodContext;
pub use crate::statics::templates::registry as template_registry;
pub use crate::statics::schedules::Schedule;
pub use crate::statics::schedules::ScheduleError;
pub use crate::statics::templates::AnyTemplate;
pub use crate::statics::templates::FutureTemplate;
pub use crate::statics::templates::MeetingNode;
pub use crate::statics::time::period::ForwardTenor;
pub use crate::statics::time::period::Period;
pub use crate::statics::time::period::PeriodEnum;
pub use crate::curves::binary::FxImplied;
pub use crate::curves::fit::BondFitRow;
pub use crate::curves::fit::fit_bond_curve;
pub use crate::curves::step::StepForward;
pub use crate::curves::survival::SurvivalProbability;
pub use crate::market::cms::CmsRate;
pub use crate::market::cms::cms_coupon_rate;
pub use crate::market::cms::cms_leg;
pub use crate::market::cms::cms_option;
pub use crate::market::cms::cms_rate;
pub use crate::market::cms::cms_spread_coupon_rate;
pub use crate::market::cms::cms_spread_leg;
pub use crate::market::cms::cms_spread_option;
pub use crate::market::frame::Aggregation;
pub use crate::market::frame::Basis;
pub use crate::market::frame::Column;
pub use crate::market::frame::Factor;
pub use crate::market::frame::Label;
pub use crate::market::frame::Records;
pub use crate::market::frame::RiskFrame;
pub use crate::market::frame::Scale;
pub use crate::market::frame::Scales;
pub use crate::market::frame::reading_records;
pub use crate::models::analytic::BarrierKind;
pub use crate::models::analytic::OptionKind;
pub use crate::models::analytic::bachelier;
pub use crate::models::analytic::barrier_option;
pub use crate::models::analytic::black76;
pub use crate::models::analytic::black76_implied_vol;
pub use crate::statics::imm::cds_standard_maturity;
pub use crate::statics::imm::cds_standard_maturity_months;
pub use crate::statics::imm::next_cds_imm_date;
pub use crate::statics::imm::prior_cds_imm_date;
pub use crate::statics::meetings::CentralBank;
pub use crate::statics::meetings::KnotKind;
pub use crate::statics::meetings::MeetingId;
pub use crate::statics::meetings::MeetingSchedule;
pub use crate::statics::meetings::TurnPeriod;
pub use crate::statics::meetings::TurnSchedule;
pub use crate::statics::recipes::CurveRecipe;
pub use crate::statics::recipes::CurveRecipes;
pub use crate::statics::recipes::ProjectionSpec;
pub use crate::statics::recipes::RecipeSpec;
pub use crate::statics::recipes::RecipeSpecError;
pub use crate::statics::recipes::WindowSpec;
pub use crate::statics::templates::credit::CdsTemplate;
pub use crate::statics::templates::credit::CreditIndexFamily;
pub use crate::statics::templates::credit::CreditIndexTemplate;
pub use crate::statics::templates::credit::cds_standard;
pub use crate::statics::templates::credit::cdx_na_ig;
pub use crate::statics::templates::credit::itraxx_europe;
pub use crate::trading::Book;
pub use crate::trading::BookPnlError;
pub use crate::trading::BumpedKind;
pub use crate::trading::CreditBumpError;
pub use crate::trading::FxMode;
pub use crate::trading::How;
pub use crate::trading::Lens;
pub use crate::trading::Measure;
pub use crate::trading::Preset;
pub use crate::trading::Request;
pub use crate::trading::Scenario;
pub use crate::trading::ScenarioError;
pub use crate::trading::ScenarioLeg;
pub use crate::trading::Selector;
pub use crate::trading::Sensitivity;
pub use crate::trading::Shift;
pub use crate::trading::ShiftType;
pub use crate::trading::SmileComponent;
pub use crate::trading::Trade;
pub use crate::trading::TrancheInput;
pub use crate::trading::correlation_sensitivities;
pub use crate::trading::npv_under;
pub use crate::trading::quote_delta;
pub use crate::trading::quote_held_recovery_sensitivities;
pub use crate::trading::recovery_sensitivities;
pub use crate::trading::report;
pub use crate::trading::report_records;
pub use crate::statics::indices::registry::codes;
pub use crate::statics::indices::registry::register;
pub use crate::statics::indices::AnyIndex;
pub use crate::statics::indices::FxIndex;
pub use crate::statics::indices::IborIndex;
pub use crate::statics::indices::OvernightIndex;
pub use crate::statics::indices::PriceIndex;
pub use crate::statics::calendars::BusinessCenter;
pub use crate::statics::calendars::Calendar;
pub use crate::statics::calendars::CalendarAmendError;
pub use crate::statics::calendars::CalendarIngestError;
pub use crate::statics::calendars::CalendarParseError;
pub use crate::statics::calendars::CalendarSpec;
pub use crate::statics::calendars::DataCalendar;
pub use crate::statics::calendars::JointCalendar;
pub use crate::statics::calendars::JointCalendarRule;
pub use crate::statics::calendars::NullCalendar;
pub use crate::statics::calendars::SettlementLag;
pub use crate::statics::calendars::SettlementLagUnit;
pub use crate::statics::calendars::WeekendsOnly;
pub use crate::statics::calendars::add_period;
pub use crate::statics::calendars::amended;
pub use crate::statics::calendars::ingest_calendar;
pub use crate::statics::calendars::ingest_calendars;
pub use crate::statics::calendars::ingested_calendars;
pub use crate::statics::calendars::last_day_of_month;
pub use crate::statics::calendars::lookup as calendar;
pub use crate::statics::imm::ImmCycle;
pub use crate::statics::imm::ImmDay;
pub use crate::statics::imm::imm_code_of;
pub use crate::statics::imm::imm_code_to_dates;
pub use crate::statics::imm::imm_date;
pub use crate::statics::imm::imm_date_on;
pub use crate::statics::imm::is_imm_date;
pub use crate::statics::imm::next_imm_date;
pub use crate::statics::imm::prior_imm_date;
pub use crate::statics::indices::registry::lookup as index;
pub use crate::statics::time::day_of_week::DayOfWeek;
pub use crate::statics::time::day_of_week::next_weekday;
pub use crate::statics::time::day_of_week::nth_weekday;
pub use crate::statics::counterparty::Counterparties;
pub use crate::statics::counterparty::Counterparty;
pub use crate::statics::templates::spot_effective_date;
pub use crate::statics::templates::xccy::CsaSpec;
pub use crate::statics::templates::xccy::IborProjection;
pub use crate::statics::templates::xccy::XccyTemplateError;

Modules§

analytics
Measures and attribution: what a book’s value is made of, and why it moved.
calibration
Curve calibration: recovering pillars from quoted instruments.
cashflows
Cashflows: what a trade pays, and when.
core
Cross-cutting primitives with no domain content.
curves
Discount curves: stored passively, evaluated in a mode.
fpml
An FpML 5 confirmation-view reader: a trade document into a helixio instrument, with the cashflows the document itself states kept beside it.
instruments
Instrument types: what a trade is, with no opinion on how it is valued.
market
The pricing seam: what a product declares it needs, and what it is handed.
marketdata
MarketContext data that sits below curves: observed fixings and FX spot rates.
models
Pricing models: closed-form and short-rate engines.
products
Product construction: turning a template and a few trade terms into an instrument, and saying what market data it will need.
statics
L1 reference data — pure value types, no state.
trading
Trading containers, measures, lenses and scenarios.
xad
The differentiation modes the generic entry points instantiate. helixrs defines them itself (the arithmetic of xad-rs 1.0.0), so a caller names them from here and needs no AD dependency of its own.

Structs§

VocabularyParseError
Error parsing a closed vocabulary from a string.

Functions§

version
The version of this crate, as declared in Cargo.toml.