/*! \note the upfront must be quoted in fractional units. */
 public UpfrontCdsHelper(double upfront,
                         double runningSpread,
                         Period tenor,
                         int settlementDays,
                         Calendar calendar,
                         Frequency frequency,
                         BusinessDayConvention paymentConvention,
                         DateGeneration.Rule rule,
                         DayCounter dayCounter,
                         double recoveryRate,
                         Handle <YieldTermStructure> discountCurve,
                         int upfrontSettlementDays            = 0,
                         bool settlesAccrual                  = true,
                         bool paysAtDefaultTime               = true,
                         Date startDate                       = null,
                         DayCounter lastPeriodDayCounter      = null,
                         bool rebatesAccrual                  = true,
                         CreditDefaultSwap.PricingModel model =
                         CreditDefaultSwap.PricingModel.Midpoint)
     : base(upfront, tenor, settlementDays, calendar,
            frequency, paymentConvention, rule, dayCounter,
            recoveryRate, discountCurve, settlesAccrual, paysAtDefaultTime,
            startDate, lastPeriodDayCounter, rebatesAccrual, model)
 {
     upfrontSettlementDays_ = upfrontSettlementDays;
     runningSpread_         = runningSpread;
     initializeDates();
 }
 public SpreadCdsHelper(double runningSpread,
                        Period tenor,
                        int settlementDays,                      // ISDA: 1
                        Calendar calendar,
                        Frequency frequency,                     // ISDA: Quarterly
                        BusinessDayConvention paymentConvention, //ISDA:Following
                        DateGeneration.Rule rule,                // ISDA: CDS
                        DayCounter dayCounter,                   // ISDA: Actual/360
                        double recoveryRate,
                        Handle <YieldTermStructure> discountCurve,
                        bool settlesAccrual                  = true,
                        bool paysAtDefaultTime               = true,
                        Date startDate                       = null,
                        DayCounter lastPeriodDayCounter      = null, // ISDA: Actual/360(inc)
                        bool rebatesAccrual                  = true, // ISDA: true
                        CreditDefaultSwap.PricingModel model = CreditDefaultSwap.PricingModel.Midpoint)
     : base(runningSpread, tenor, settlementDays, calendar,
            frequency, paymentConvention, rule, dayCounter,
            recoveryRate, discountCurve, settlesAccrual, paysAtDefaultTime,
            startDate, lastPeriodDayCounter, rebatesAccrual, model)
 {
 }
        public CdsHelper(double quote,
                         Period tenor,
                         int settlementDays,
                         Calendar calendar,
                         Frequency frequency,
                         BusinessDayConvention paymentConvention,
                         DateGeneration.Rule rule,
                         DayCounter dayCounter,
                         double recoveryRate,
                         Handle <YieldTermStructure> discountCurve,
                         bool settlesAccrual                  = true,
                         bool paysAtDefaultTime               = true,
                         Date startDate                       = null,
                         DayCounter lastPeriodDayCounter      = null,
                         bool rebatesAccrual                  = true,
                         CreditDefaultSwap.PricingModel model = CreditDefaultSwap.PricingModel.Midpoint)
            : base(quote)
        {
            tenor_             = tenor;
            settlementDays_    = settlementDays;
            calendar_          = calendar;
            frequency_         = frequency;
            paymentConvention_ = paymentConvention;
            rule_              = rule;
            dayCounter_        = dayCounter;
            recoveryRate_      = recoveryRate;
            discountCurve_     = discountCurve;
            settlesAccrual_    = settlesAccrual;
            paysAtDefaultTime_ = paysAtDefaultTime;
            lastPeriodDC_      = lastPeriodDayCounter;
            rebatesAccrual_    = rebatesAccrual;
            model_             = model;
            startDate_         = startDate;
            schedule_          = new Schedule();

            initializeDates();
            discountCurve_.registerWith(update);
        }
        public double impliedHazardRate(double targetNPV, YieldTermStructureHandle discountCurve, DayCounter dayCounter, double recoveryRate, double accuracy, CreditDefaultSwap.PricingModel model)
        {
            double ret = NQuantLibcPINVOKE.CreditDefaultSwap_impliedHazardRate__SWIG_0(swigCPtr, targetNPV, YieldTermStructureHandle.getCPtr(discountCurve), DayCounter.getCPtr(dayCounter), recoveryRate, accuracy, (int)model);

            if (NQuantLibcPINVOKE.SWIGPendingException.Pending)
            {
                throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }