packages feed

hasquant-0.5.0.2: cbits/qlEnumC2HS.h

// This file should only by used in C2HS, enums below are extracted from QuantLib headers
// time/weekday.hpp
enum Weekday {Sunday    = 1,
  Monday    = 2,
  Tuesday   = 3,
  Wednesday = 4,
  Thursday  = 5,
  Friday    = 6,
  Saturday  = 7,
  Sun = 1,
  Mon = 2,
  Tue = 3,
  Wed = 4,
  Thu = 5,
  Fri = 6,
  Sat = 7
};

// time/date.hpp
enum Month {January   = 1,
  February  = 2,
  March     = 3,
  April     = 4,
  May       = 5,
  June      = 6,
  July      = 7,
  August    = 8,
  September = 9,
  October   = 10,
  November  = 11,
  December  = 12,
  Jan = 1,
  Feb = 2,
  Mar = 3,
  Apr = 4,
  Jun = 6,
  Jul = 7,
  Aug = 8,
  Sep = 9,
  Oct = 10,
  Nov = 11,
  Dec = 12
};

// time/businessdayconvention.hpp
enum BusinessDayConvention {
  // ISDA
  Following,                   /*!< Choose the first business day after
                                 the given holiday. */
  ModifiedFollowing,           /*!< Choose the first business day after
                                 the given holiday unless it belongs
                                 to a different month, in which case
                                 choose the first business day before
                                 the holiday. */
  Preceding,                   /*!< Choose the first business
                                 day before the given holiday. */
  // NON ISDA
  ModifiedPreceding,           /*!< Choose the first business day before
                                 the given holiday unless it belongs
                                 to a different month, in which case
                                 choose the first business day after
                                 the holiday. */
  Unadjusted,                  /*!< Do not adjust. */
  HalfMonthModifiedFollowing,  /*!< Choose the first business day after
                                 the given holiday unless that day
                                 crosses the mid-month (15th) or the
                                 end of month, in which case choose
                                 the first business day before the
                                 holiday. */
  Nearest                      /*!< Choose the nearest business day
                                 to the given holiday. If both the
                                 preceding and following business
                                 days are equally far away, default
                                 to following business day. */
};

// time/dategenerationrule.hpp
enum DateGenerationRule {
  Backward,       /*!< Backward from termination date to
                    effective date. */
  Forward,        /*!< Forward from effective date to
                    termination date. */
  Zero,           /*!< No intermediate dates between effective date
                    and termination date. */
  ThirdWednesday, /*!< All dates but effective date and termination
                    date are taken to be on the third wednesday
                    of their month (with forward calculation.) */
  ThirdWednesdayInclusive, /*!< All dates including effective date and
                    termination date are taken to be on the third
                    wednesday of their month (with forward calculation.) */
  Twentieth,      /*!< All dates but the effective date are
                    taken to be the twentieth of their
                    month (used for CDS schedules in
                    emerging markets.)  The termination
                    date is also modified. */
  TwentiethIMM,   /*!< All dates but the effective date are
                    taken to be the twentieth of an IMM
                    month (used for CDS schedules.)  The
                    termination date is also modified. */
  OldCDS,         /*!< Same as TwentiethIMM with unrestricted date
                    ends and log/short stub coupon period (old
                    CDS convention). */
  CDS,             /*!< Credit derivatives standard rule since 'Big
                     Bang' changes in 2009.  */
  CDS2015,         /*!< Credit derivatives standard rule since
                     December 20th, 2015.  */
};

// time/timeunit.hpp
enum TimeUnit {Days,
  Weeks,
  Months,
  Years,
  Hours,
  Minutes,
  Seconds,
  Milliseconds,
  Microseconds
};

// time/frequency.hpp
enum Frequency {NoFrequency = -1,     //!< null frequency
  Once = 0,             //!< only once, e.g., a zero-coupon
  Annual = 1,           //!< once a year
  Semiannual = 2,       //!< twice a year
  EveryFourthMonth = 3, //!< every fourth month
  Quarterly = 4,        //!< every third month
  Bimonthly = 6,        //!< every second month
  Monthly = 12,         //!< once a month
  EveryFourthWeek = 13, //!< every fourth week
  Biweekly = 26,        //!< every second week
  Weekly = 52,          //!< once a week
  Daily = 365,          //!< once a day
  OtherFrequency = 999  //!< some other unknown frequency
};

// time/imm.hpp
enum ImmMonth {F =  1, G =  2, H =  3,
  J =  4, K =  5, M =  6,
  N =  7, Q =  8, U =  9,
  V = 10, X = 11, Z = 12};

// cashflows/duration.hpp
enum DurationType {Simple, Macaulay, Modified};

// time/calendars/jointcalendar.hpp
enum JointCalendarRule {JoinHolidays,    /*!< A date is a holiday
                                            for the joint calendar
                                            if it is a holiday
                                            for any of the given
                                            calendars */
  JoinBusinessDays /*!< A date is a business day
                     for the joint calendar
                     if it is a business day
                     for any of the given
                     calendars */
};

// prices.hpp
enum PriceType {
  Bid,          /*!< Bid price. */
  Ask,          /*!< Ask price. */
  Last,         /*!< Last price. */
  Close,        /*!< Close price. */
  Mid,          /*!< Mid price, calculated as the arithmetic
                  average of bid and ask prices. */
  MidEquivalent, /*!< Mid equivalent price, calculated as
                   a) the arithmetic average of bid and ask prices
                   when both are available; b) either the bid or the
                   ask price if any of them is available;
                   c) the last price; or d) the close price. */
  MidSafe       /*!< Safe Mid price, returns the mid price only if
                  both bid and ask are available. */
};

// prices.hpp
enum IntervalPriceType {Open, Close, High, Low};

// experimental/fx/deltavolquote.hpp
enum DeltaType {
  Spot,        // Spot Delta, e.g. usual Black Scholes delta
  Fwd,         // Forward Delta
  PaSpot,      // Premium Adjusted Spot Delta
  PaFwd        // Premium Adjusted Forward Delta
};

// experimental/fx/deltavolquote.hpp
enum AtmType {
  AtmNull,         // Default, if not an atm quote
  AtmSpot,         // K=S_0
  AtmFwd,          // K=F
  AtmDeltaNeutral, // Call Delta = Put Delta
  AtmVegaMax,      // K such that Vega is Maximum
  AtmGammaMax,     // K such that Gamma is Maximum
  AtmPutCall50     // K such that Call Delta=0.50 (only for Fwd Delta)
};

// models/calibrationhelper.hpp
enum CalibrationErrorType {
  RelativePriceError, PriceError, ImpliedVolError};

// cashflows/duration.hpp
enum DurationType {Simple, Macaulay, Modified};

// money.hpp
enum MoneyConversionType {
  NoConversion,           /*!< do not perform conversions */
  BaseCurrencyConversion, /*!< convert both operands to
                            the base currency before
                            converting */
  AutomatedConversion     /*!< return the result in the
                            currency of the first
                            operand */
};

// exchangerate.hpp
enum ExchangeRateType {Direct, Derived};

// exercise.hpp
enum ExerciseType {American, Bermudan, European};

// position.hpp
enum PositionType {Long, Short};

// instruments/swaption.hpp
enum SettlementType {Physical, Cash};

// instruments/swaption.hpp
enum SwaptionPriceType {Spot, Forward};

// pricingengines/swaption/blackswaptionengine.hpp
enum CashAnnuityModel {SwapRate, DiscountCurve};

// pricingengines/swaption/gaussian1dswaptionengine.hpp
enum Probabilities {None, Naive, Digital};

// pricingengines/vanilla/cashdividendeuropeanengine.hpp
enum CashDividendModel {Spot, Escrowed};

// pricingengines/credit/isdacdsengine.hpp
// NumericalFix's enumerators are prefixed (NumericalFixNone/NumericalFixTaylor) because plain
// "None" already belongs to Probabilities above -- C enumerators share one namespace per TU.
enum NumericalFix {NumericalFixNone, NumericalFixTaylor};
enum AccrualBias {HalfDayBias, NoBias};
enum ForwardsInCouponPeriod {Flat, Piecewise};

// instruments/swaption.hpp
enum SettlementMethod {
  PhysicalOTC,
  PhysicalCleared,
  CollateralizedCashPrice,
  ParYieldCurve
};

// instruments/callabilityschedule.hpp
enum CallabilityType {Call, Put};

// instruments/bond.hpp
enum BondPriceType {Dirty, Clean};

// option.hpp
enum OptionType {Put = -1, Call = 1};

// instruments/barriertype.hpp
enum BarrierType {DownIn, UpIn, DownOut, UpOut};

// instruments/doublebarriertype.hpp
enum DoubleBarrierType {KnockIn, KnockOut, KIKO, KOKI};

// instruments/partialtimebarrieroption.hpp -- values are non-consecutive
// upstream (no 1), must mirror PartialBarrier::Range exactly or EndB1/EndB2
// silently alias to the wrong case (unchecked cast, see CLAUDE.md).
enum PartialBarrierRange {Start = 0, EndB1 = 2, EndB2 = 3};

// instruments/swap.hpp
enum SwapType {Receiver = -1, Payer = 1};

// compounding.hpp
enum Compounding {Simple = 0,          //!< \f$ 1+rt \f$
  Compounded = 1,      //!< \f$ (1+r)^t \f$
  Continuous = 2,      //!< \f$ e^{rt} \f$
  SimpleThenCompounded, //!< Simple up to the first period then Compounded
  CompoundedThenSimple //!< Compounded up to the first period then Simple
};

// instruments/averagetype.hpp
enum AverageType {Arithmetic, Geometric};

// termstructures/volatility/volatilitytype.hpp
enum VolatilityType {ShiftedLognormal, Normal};

// cashflows/rateaveraging.hpp
enum RateAveragingType {
  Simple,  /*!< Under the simple convention the amount of
             interest is calculated by applying the
             sub-rate to the principal, and the payment
             due at the end of the period is the sum of
             those amounts. */
  Compound /*!< Under the compound convention, the
             additional amount of interest owed each
             period is calculated by applying the rate
             both to the principal and the accumulated
             unpaid interest. */
};

// termstructures/bootstraphelper.hpp
enum PillarChoice {MaturityDate, LastRelevantDate, CustomDate};

// instruments/futures.hpp
enum FuturesType {IMM, ASX, Custom};

// instruments/creditdefaultswap.hpp
enum PricingModel {
  Midpoint,
  ISDA
};

// default.hpp
enum ProtectionSide {Buyer, Seller};

// experimental/credit/defaulttype.hpp
enum Seniority {
  SecDom = 0,
  SnrFor,
  SubLT2,
  JrSubT2,
  PrefT1,
  // Unassigned value, allows for default RR quote
  NoSeniority,
  // markit parlance
  SeniorSec     = SecDom,
  SeniorUnSec   = SnrFor,
  SubTier1      = PrefT1,
  SubUpperTier2 = JrSubT2,
  SubLoweTier2  = SubLT2
};

// experimental/credit/defaulttype.hpp
enum AtomicDefaultType {
  // Includes one of the restructuring cases
  Restructuring = 0,
  Bankruptcy,
  FailureToPay,
  RepudiationMoratorium,
  Acceleration,
  Default,
  // synonyms
  ObligationAcceleration = Acceleration,
  ObligationDefault = Default,
  CrossDefault = Default,
  // Other non-isda
  Downgrade,   // Non-ISDA, not in FpML
  MergerEvent  // Non-ISDA, not in FpML
};


// experimental/credit/defaulttype.hpp
enum RestructuringType {
  NoRestructuring = 0,
  ModifiedRestructuring,
  ModifiedModifiedRestructuring,
  FullRestructuring,
  AnyRestructuring,
  // Markit notation:
  XR = NoRestructuring,
  MR = ModifiedRestructuring,
  MM = ModifiedModifiedRestructuring,
  CR = FullRestructuring
};

// math/rounding.hpp
enum RoundingType {
  None,    /*!< do not round: return the number unmodified */
  Up,      /*!< the first decimal place past the precision will be
             rounded up. This differs from the OMG rule which
             rounds up only if the decimal to be rounded is
             greater than or equal to the rounding digit */
  Down,    /*!< all decimal places past the precision will be
             truncated */
  Closest, /*!< the first decimal place past the precision
             will be rounded up if greater than or equal
             to the rounding digit; this corresponds to
             the OMG round-up rule.  When the rounding
             digit is 5, the result will be the one
             closest to the original number, hence the
             name. */
  Floor,   /*!< positive numbers will be rounded up and negative
             numbers will be rounded down using the OMG round up
             and round down rules */
  Ceiling  /*!< positive numbers will be rounded down and negative
             numbers will be rounded up using the OMG round up
             and round down rules */
};

// enums values should match with those in ql/time/calendars/*.hpp
enum AustriaMarket {Settlement, Exchange};
enum BrazilMarket {Settlement, Exchange};
enum CanadaMarket {Settlement, TSX};
enum ChinaMarket {SSE, IB};
enum FranceMarket {Settlement, Exchange};
enum GermanyMarket {Settlement, FrankfurtStockExchange, Xetra, Eurex, Euwax};
enum IndonesiaMarket {BEJ, JSX, IDX};
enum IsraelMarket {Settlement, TASE, SHIR, Telbor};
enum ItalyMarket {Settlement, Exchange};
enum RomaniaMarket {Public, BVB};
enum RussiaMarket {Settlement, MOEX};
enum SouthKoreaMarket {Settlement, KRX};
enum UnitedKingdomMarket {Settlement, Exchange, Metals};
enum UnitedStatesMarket {Settlement, NYSE, GovernmentBond, NERC, LiborImpact, FederalReserve, SOFR};
enum AustraliaMarket {Settlement, ASX};
enum NewZealandMarket {Wellington, Auckland};
enum PolandMarket {Settlement, WSE};

// enums values should match with those in ql/time/daycounters/*.hpp
enum ActualActualConvention {ISMA, Bond, ISDA, Historical, Actual365, AFB, Euro};
enum Thirty360Convention {USA, BondBasis, European, EurobondBasis, Italian, German, ISMA, ISDA, NASD};
enum Actual365FixedConvention {Standard, Canadian, NoLeap};

// math/optimization/endcriteria.hpp
enum EndCriteriaType {EndNone,
  MaxIterations,
  StationaryPoint,
  StationaryFunctionValue,
  StationaryFunctionAccuracy,
  ZeroGradientNorm,
  Unknown
};

// math/statistics/histogram.hpp
enum HistogramAlgorithm {HistogramNone, Sturges, FD, Scott};

// methods/finitedifferences/boundarycondition.hpp
enum BoundaryConditionSide {BoundaryNone, Upper, Lower};

// methods/finitedifferences/solvers/fdmbackwardsolver.hpp
enum FdmSchemeType {HundsdorferType, DouglasType,
 CraigSneydType, ModifiedCraigSneydType,
 ImplicitEulerType, ExplicitEulerType,
 MethodOfLinesType, TrBDF2Type,
 CrankNicolsonType};

// methods/montecarlo/lsmbasissystem.hpp
enum PolynomialType {Monomial, Laguerre, Hermite, Hyperbolic,
  Legendre, Chebyshev, Chebyshev2nd};

// pricingengines/vanilla/analytichestonengine.hpp
enum ComplexLogFormula {
  // Gatheral form of characteristic function w/o control variate
  Gatheral,
  // old branch correction form of the characteristic function w/o control variate
  BranchCorrection,
  // Gatheral form with Andersen-Piterbarg control variate
  AndersenPiterbarg,
  // same as AndersenPiterbarg, but a slightly better control variate
  AndersenPiterbargOptCV,
  // Gatheral form with asymptotic expansion of the characteristic function as control variate
  // https://hpcquantlib.wordpress.com/2020/08/30/a-novel-control-variate-for-the-heston-model
  AsymptoticChF,
  // auto selection of best control variate algorithm from above
  OptimalCV
};

// experimental/processes/extendedblackscholesprocess.hpp
enum ExtendedBlackScholesMertonProcessDiscretization {ExtendedBSMEuler, Milstein, PredictorCorrector};

// processes/hestonprocess.hpp
enum HestonProcessDiscretization {HestonPartialTruncation,
  HestonFullTruncation,
  HestonReflection,
  NonCentralChiSquareVariance,
  QuadraticExponential,
  QuadraticExponentialMartingale,
  BroadieKayaExactSchemeLobatto,
  BroadieKayaExactSchemeLaguerre,
  BroadieKayaExactSchemeTrapezoidal
};

// processes/gjrgarchprocess.hpp
enum GJRGARCHProcessDiscretization {GJRGARCHPartialTruncation, GJRGARCHFullTruncation,
  GJRGARCHReflection};

// processes/hybridhestonhullwhiteprocess.hpp
enum HybridHestonHullWhiteProcessDiscretization {HybridHestonHullWhiteEuler, BSMHullWhite};

// cashflows/conundrumpricer.hpp
enum YieldCurveModel {Standard,
  ExactYield,
  ParallelShifts,
  NonParallelShifts
};

// termstructures/volatility/swaption/cmsmarketcalibration.hpp
enum CmsMarketCalibrationType {OnSpread, OnPrice, OnForwardCmsPrice};

// termstructures/volatility/equityfx/blackvariancesurface.hp
enum BlackVarianceSurfaceExtrapolation {
  BlackVarianceSurfaceConstantExtrapolation,
  BlackVarianceSurfaceInterpolatorDefaultExtrapolation
};

// experimental/volatility/extendedblackvariancesurface.hpp
enum ExtendedBlackVarianceSurfaceExtrapolation {
  ExtendedBlackVarianceSurfaceConstantExtrapolation,
  ExtendedBlackVarianceSurfaceInterpolatorDefaultExtrapolation};

// termstructures/volatility/equityfx/fixedlocalvolsurface.hpp
enum FixedLocalVolSurfaceExtrapolation {
  FixedLocalVolSurfaceConstantExtrapolation,
  FixedLocalVolSurfaceInterpolatorDefaultExtrapolation
};

// cashflows/couponpricer.hpp (BlackIborCouponPricer::TimingAdjustment)
enum TimingAdjustment {Black76, BivariateLognormal};

// math/randomnumbers/sobolrsg.hpp
enum SobolDirectionIntegers {
  Unit, Jaeckel, SobolLevitan, SobolLevitanLemieux,
  JoeKuoD5, JoeKuoD6, JoeKuoD7, Kuo, Kuo2, Kuo3};

// termstructures/volatility/equityfx/blackvolsurfacedelta.hpp
// (BlackVolatilitySurfaceDelta::SmileInterpolationMethod). SmileLinear (not bare Linear, which
// would collide with Interpolation's own Linear constructor, imported unqualified all over) --
// same disambiguation-by-prefix convention DeltaVolQuote::AtmType's AtmSpot/AtmFwd/etc. already
// use against DeltaType's Spot/Fwd.
enum SmileInterpolationMethod {SmileLinear, NaturalCubic, FinancialCubic, CubicSpline};

// termstructures/volatility/equityfx/blackvoltimeextrapolation.hpp (BlackVolTimeExtrapolation::Type)
enum BlackVolTimeExtrapolationType {FlatVolatility, UseInterpolator, LinearVariance};

/* vim: set ft=cpp ff=unix ts=8 sts=2 sw=2 et: */