public FloatFloatSwap(VanillaSwap.Type type, double nominal1, double nominal2, Schedule schedule1, InterestRateIndex index1, DayCounter dayCount1, Schedule schedule2, InterestRateIndex index2, DayCounter dayCount2, bool intermediateCapitalExchange = false, bool finalCapitalExchange = false, double gearing1 = 1.0, double spread1 = 0.0, double?cappedRate1 = null, double?flooredRate1 = null, double gearing2 = 1.0, double spread2 = 0.0, double?cappedRate2 = null, double?flooredRate2 = null, BusinessDayConvention?paymentConvention1 = null, BusinessDayConvention?paymentConvention2 = null) : base(2) { type_ = type; nominal1_ = new InitializedList <double> (schedule1.size() - 1, nominal1); nominal2_ = new InitializedList <double> (schedule2.size() - 1, nominal2); schedule1_ = schedule1; schedule2_ = schedule2; index1_ = index1; index2_ = index2; gearing1_ = new InitializedList <double>(schedule1.size() - 1, gearing1); gearing2_ = new InitializedList <double>(schedule2.size() - 1, gearing2); spread1_ = new InitializedList <double>(schedule1.size() - 1, spread1); spread2_ = new InitializedList <double>(schedule2.size() - 1, spread2); cappedRate1_ = new InitializedList <double?>(schedule1.size() - 1, cappedRate1); flooredRate1_ = new InitializedList <double?>(schedule1.size() - 1, flooredRate1); cappedRate2_ = new InitializedList <double?>(schedule2.size() - 1, cappedRate2); flooredRate2_ = new InitializedList <double?>(schedule2.size() - 1, flooredRate2); dayCount1_ = dayCount1; dayCount2_ = dayCount2; intermediateCapitalExchange_ = intermediateCapitalExchange; finalCapitalExchange_ = finalCapitalExchange; init(paymentConvention1, paymentConvention2); }