//------------------------------------------------------------------------------
// <auto-generated />
//
// This file was automatically generated by SWIG (http://www.swig.org).
// Version 4.0.2
//
// Do not make changes to this file unless you know what you are doing--modify
// the SWIG interface file instead.
//------------------------------------------------------------------------------

namespace QuantLib {

public class FixedRateBond : Bond {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal FixedRateBond(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NQuantLibcPINVOKE.FixedRateBond_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FixedRateBond obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          NQuantLibcPINVOKE.delete_FixedRateBond(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, bool exCouponEndOfMonth) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_0(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention, exCouponEndOfMonth), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_1(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_2(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_3(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_4(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_5(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_6(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_7(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_8(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, bool exCouponEndOfMonth) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_9(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention, exCouponEndOfMonth), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_10(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_11(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_12(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_13(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_14(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_15(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_16(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_17(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, bool exCouponEndOfMonth) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_18(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention, exCouponEndOfMonth), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_19(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_20(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_21(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_22(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_23(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_24(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_25(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_26(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_27(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_28(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_29(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public FixedRateBond(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter) : this(NQuantLibcPINVOKE.new_FixedRateBond__SWIG_30(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter)), true) {
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, bool exCouponEndOfMonth) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_0(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention, exCouponEndOfMonth);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_1(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_2(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_3(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_4(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption, Date issueDate) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_5(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption, Date.getCPtr(issueDate));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention, double redemption) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_6(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention, redemption);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter, BusinessDayConvention paymentConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_7(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter), (int)paymentConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_rates(int settlementDays, double faceAmount, Schedule schedule, DoubleVector coupons, DayCounter paymentDayCounter) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_rates__SWIG_8(settlementDays, faceAmount, Schedule.getCPtr(schedule), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(paymentDayCounter));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, bool exCouponEndOfMonth) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_0(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention, exCouponEndOfMonth);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_1(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_2(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar, Period exCouponPeriod) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_3(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Calendar paymentCalendar) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_4(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate), Calendar.getCPtr(paymentCalendar));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption, Date issueDate) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_5(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption, Date.getCPtr(issueDate));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention, double redemption) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_6(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention, redemption);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons, BusinessDayConvention paymentConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_7(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons), (int)paymentConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_interest_rates(int settlementDays, double faceAmount, Schedule schedule, InterestRateVector coupons) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_interest_rates__SWIG_8(settlementDays, faceAmount, Schedule.getCPtr(schedule), InterestRateVector.getCPtr(coupons));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention, bool exCouponEndOfMonth) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_0(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention, exCouponEndOfMonth);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar, BusinessDayConvention exCouponConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_1(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar), (int)exCouponConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod, Calendar exCouponCalendar) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_2(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod), Calendar.getCPtr(exCouponCalendar));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar, Period exCouponPeriod) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_3(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar), Period.getCPtr(exCouponPeriod));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth, Calendar paymentCalendar) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_4(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth, Calendar.getCPtr(paymentCalendar));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule, bool endOfMonth) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_5(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule, endOfMonth);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate, DateGeneration.Rule rule) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_6(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate), (int)rule);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate, Date stubDate) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_7(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate), Date.getCPtr(stubDate));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption, Date issueDate) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_8(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption, Date.getCPtr(issueDate));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention, double redemption) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_9(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention, redemption);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention, BusinessDayConvention paymentConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_10(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention, (int)paymentConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter, BusinessDayConvention accrualConvention) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_11(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter), (int)accrualConvention);
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FixedRateBond from_date_info(int settlementDays, Calendar couponCalendar, double faceAmount, Date startDate, Date maturityDate, Period tenor, DoubleVector coupons, DayCounter accrualDayCounter) {
    global::System.IntPtr cPtr = NQuantLibcPINVOKE.FixedRateBond_from_date_info__SWIG_12(settlementDays, Calendar.getCPtr(couponCalendar), faceAmount, Date.getCPtr(startDate), Date.getCPtr(maturityDate), Period.getCPtr(tenor), DoubleVector.getCPtr(coupons), DayCounter.getCPtr(accrualDayCounter));
    FixedRateBond ret = (cPtr == global::System.IntPtr.Zero) ? null : new FixedRateBond(cPtr, true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public Frequency frequency() {
    Frequency ret = (Frequency)NQuantLibcPINVOKE.FixedRateBond_frequency(swigCPtr);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public DayCounter dayCounter() {
    DayCounter ret = new DayCounter(NQuantLibcPINVOKE.FixedRateBond_dayCounter(swigCPtr), true);
    if (NQuantLibcPINVOKE.SWIGPendingException.Pending) throw NQuantLibcPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
