packages feed

hasquant-0.5.0.2: cbits/qlEnumObjects.h

// Enumerations to be mapped to specific QuantLib classes
// must match with the order of qlMisc.cpp:ccys
enum Ccy {ARS = 0
  , ATS
  , AUD
  , BCH
  , BDT
  , BEF
  , BGL
  , BRL
  , BTC
  , BYR
  , CAD
  , CHF
  , CLP
  , CNY
  , COP
  , CYP
  , CZK
  , DASH
  , DEM
  , DKK
  , EEK
  , ESP
  , ETC
  , ETH
  , EUR
  , FIM
  , FRF
  , GBP
  , GRD
  , HKD
  , HUF
  , IDR
  , IEP
  , ILS
  , INR
  , IQD
  , IRR
  , ISK
  , ITL
  , JPY
  , KRW
  , KWD
  , KZT
  , LTC
  , LTL
  , LUF
  , LVL
  , MTL
  , MXN
  , MYR
  , NGN
  , NLG
  , NOK
  , NPR
  , NZD
  , PEH
  , PEI
  , PEN
  , PKR
  , PLN
  , PTE
  , ROL
  , RON
  , RUB
  , SAR
  , SEK
  , SGD
  , SIT
  , SKK
  , THB
  , TRL
  , TRY
  , TTD
  , TWD
  , UAH
  , USD
  , VEB
  , VND
  , XRP
  , ZAR
  , ZEC
  , AED
  , AOA
  , BGN
  , BHD
  , BWP
  , CLF
  , CNH
  , COU
  , EGP
  , ETB
  , GEL
  , GHS
  , HRK
  , JOD
  , KES
  , LKR
  , MAD
  , MKD
  , MUR
  , MXV
  , OMR
  , PHP
  , QAR
  , RSD
  , TND
  , UGX
  , UYU
  , UZS
  , XOF
  , ZMW
};

// should match with the order of qlMisc.cpp:calendars
enum CalendarCountry {
  Argentina = 0
  , Australia
  , Austria
  , Botswana
  , Brazil
  , Canada
  , China
  , CzechRepublic
  , Denmark
  , Finland
  , France
  , Germany
  , HongKong
  , Hungary
  , Iceland
  , India
  , Indonesia
  , Israel
  , Italy
  , Japan
  , Mexico
  , NewZealand
  , Norway
  , Null
  , Poland
  , Romania
  , Russia
  , SaudiArabia
  , Singapore
  , Slovakia
  , SouthAfrica
  , SouthKorea
  , Sweden
  , Switzerland
  , Taiwan
  , TARGET
  , Thailand
  , Turkey
  , Ukraine
  , UnitedKingdom
  , UnitedStates
  , WeekendsOnly
  , Chile
  , Croatia
  , Malta
  , Montenegro
  , NorthMacedonia
  , Serbia
  , Slovenia
  , Uzbekistan
};

// should match with the order of qlMisc.cpp:dayCounters
enum DayCounterType {
  Actual360 = 0
  , Actual364
  , Actual365Fixed
  , ActualActual
  , One
  , Simple
  , Thirty360
  , Thirty365
  , Actual36525
  , Actual366
};

#define NO_ENUM -100;

// must match with the order of qlTermStructure.cpp.cpp:onIndices
enum OvernightIborIndexType {
  Aonia = 0
  , Eonia
  , Estr
  , FedFunds
  , Nzocr
  , Sofr
  , Sonia
  , Cdi
  , Corra
  , Kofr
  , Destr
  , Swestr
  , Shir
  , Tonar
  , Saron
  , Zaronia
};

// must match with the order of qlTermStructure.cpp:swapIndices
enum LiborSwapIndexType {
  ChfLiborSwapIsdaFix = 0
  , EurLiborSwapIfrFix
  , EurLiborSwapIsdaFixA
  , EurLiborSwapIsdaFixB
  , EuriborSwapIfrFix
  , EuriborSwapIsdaFixA
  , EuriborSwapIsdaFixB
  , GbpLiborSwapIsdaFix
  , JpyLiborSwapIsdaFixAm
  , JpyLiborSwapIsdaFixPm
  , UsdLiborSwapIsdaFixAm
  , UsdLiborSwapIsdaFixPm
};

// must match the order of the "standard" block of qlTermStructure.cpp:iborIndices (comes
// first). IborIndexTypeLast is a sentinel, not a real index -- insert new values above it.
// This (and the other *Last sentinels below) is stripped out and turned into a flat-array
// offset entirely on the Haskell side by deriveIborConstructor in QuantLib/Internal/Syntax.hs
// -- nothing here needs to encode a count, a length, or an offset by hand.
enum IborIndexType {
  Bbsw = 0
  , Bibor
  , Bkbm
  , Cdor
  , EurLibor
  , AudLibor
  , CadLibor
  , ChfLibor
  , DkkLibor
  , GbpLibor
  , JpyLibor
  , NzdLibor
  , SekLibor
  , UsdLibor
  , Euribor
  , Euribor365
  , Jibar
  , Mosprime
  , Pribor
  , Robor
  , Shibor
  , THBFIX
  , TRLibor
  , Tibor
  , Wibor
  , Zibor
  , Nibor
  , IborIndexTypeLast
};

// must match the order of the "daily tenor" block of qlTermStructure.cpp:iborIndices (comes
// right after the standard block).
enum IborDailyTenorIndexType {
  EurDailyTenorLibor = 0
  , ChfDailyTenorLibor
  , GbpDailyTenorLibor
  , JpyDailyTenorLibor
  , UsdDailyTenorLibor
  , IborDailyTenorIndexTypeLast
};

// must match the order of the "overnight" block of qlTermStructure.cpp:iborIndices (comes
// last -- no sentinel needed, nothing chains off this group).
enum IborONIndexType {
  CadLiborON = 0
  , EurLiborON
  , GbpLiborON
  , UsdLiborON
};

enum RngTrait {
  PseudoRandom = 0
  , PoissonPseudoRandom
  , LowDiscrepancy
  , Ziggurat
};

enum BinomialTree {
  JarrowRudd = 0
  , CoxRossRubinstein
  , AdditiveEQPBinomialTree
  , Trigeorgis
  , Tian
  , LeisenReimer
  , Joshi4
  , ExtendedJarrowRudd
  , ExtendedCoxRossRubinstein
  , ExtendedAdditiveEQPBinomialTree
  , ExtendedTrigeorgis
  , ExtendedTian
  , ExtendedLeisenReimer
  , ExtendedJoshi4
};

enum ProcessDiscretization {
  EulerDiscretization = 0
  , EndEulerDiscretization
};

enum BootstrapTrait {
  Discount
  , ZeroYield
  , ForwardRate
  , SimpleZeroYield
};

enum InterpolationType {
  BackwardFlat
  , ForwardFlat
  , Linear
  , LogLinear
  , Cubic
  , LogCubic
  , Abcd
};

enum ApproximationType {
  NaturalSpline
  , Parabolic
  , Kruger
  , FritschButland
};

// 2-D interpolators, for BlackVarianceSurface::setInterpolation<Interpolator>(). Separate from
// InterpolationType above because the two sets are disjoint (no 1-D interpolator is usable on
// a surface and vice versa) and because a 2-D interpolator is always default-constructed --
// there is no approximator/approximatorArg to pair with it. Matches the two QuantLib-SWIG
// exposes (SWIG/volatilities.i's "bilinear"/"bicubic" strings); QuantLib also has
// BackwardflatLinear, deliberately left out to stay aligned with the reference binding.
// Named without the "Type" suffix InterpolationType/ApproximationType carry: those two are
// merged into the public Interpolation ADT by TH (deriveCrossEnum) and their c2hs-derived
// enums stay unexported, whereas this one *is* the public Haskell type, and public names here
// don't carry the suffix.
enum Interpolation2D {
  Bilinear
  , Bicubic
};

enum ProbabilityTrait {
  SurvivalProbability = 0
  , HazardRate
  , DefaultDensity
};

// must match the order of qlTermStructure.cpp:zeroInflationIndices
enum ZeroInflationIndexType {
  AUCPI = 0
  , EUHICP
  , EUHICPXT
  , FRHICP
  , UKHICP
  , UKRPI
  , USCPI
  , ZACPI
};

// must match the order of qlTermStructure.cpp:yoyInflationIndices
enum YoYInflationIndexType {
  YYAUCPI = 0
  , YYEUHICP
  , YYEUHICPXT
  , YYFRHICP
  , YYUKRPI
  , YYUSCPI
  , YYZACPI
};

// Values must equal upstream ql/indexes/inflationindex.hpp's CPI::InterpolationType
// exactly (AsIndex = 0 is deprecated upstream and deliberately not exposed here, so this
// enum starts at 1, not 0 -- do NOT renumber from 0, that silently aliases CPIFlat to
// upstream's deprecated AsIndex and CPILinear to upstream's Flat, see
// smoke/CheckInflation.hs's Flat-vs-Linear divergence check, which exists specifically to
// catch this).
// Must match QuantLib.Internal.Type's hand-written CPIInterpolationType Enum instance
// (CPIFlat = 1, CPILinear = 2) -- deliberately not c2hs {#enum#}-derived, see the type's
// haddock comment for why.
enum CPIInterpolationType {
  CPIFlat = 1
  , CPILinear = 2
};

// must match the order of qlTermStructure.cpp:regions
enum RegionType {
  AustraliaRegion = 0
  , EURegion
  , FranceRegion
  , UKRegion
  , USRegion
  , ZARegion
};

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