@@ -439,7 +439,6 @@ Real NumericLgmRiskParticipationAgreementEngine::protectionLegNpv() const {
439439 std::vector<std::vector<Size>> onRateCutoff (eventDates.size ());
440440 std::vector<std::vector<bool >> onIncludeSpread (eventDates.size ());
441441 std::vector<std::vector<Period>> onLookback (eventDates.size ());
442- std::vector<std::vector<DayCounter>> onAccrualDayCounter (eventDates.size ());
443442 std::vector<std::vector<bool >> onLocalCapFloor (eventDates.size ());
444443 std::vector<std::vector<int >> floatingCouponsLatestRelevantCallEventIndex (eventDates.size ());
445444
@@ -572,7 +571,6 @@ Real NumericLgmRiskParticipationAgreementEngine::protectionLegNpv() const {
572571 onRateCutoff[i].push_back (0 );
573572 onIncludeSpread[i].push_back (false );
574573 onLookback[i].push_back (0 * Days);
575- onAccrualDayCounter[i].push_back (DayCounter ());
576574 onLocalCapFloor[i].push_back (false );
577575 onIsAveraging[i].push_back (false );
578576 floatingCouponsLatestRelevantCallEventIndex[i].push_back (getLatestRelevantCallIndex (
@@ -598,7 +596,6 @@ Real NumericLgmRiskParticipationAgreementEngine::protectionLegNpv() const {
598596 onRateCutoff[i].push_back (onCouponAnalyzer.rateCutoff ());
599597 onIncludeSpread[i].push_back (onCouponAnalyzer.includeSpread ());
600598 onLookback[i].push_back (onCouponAnalyzer.lookback ());
601- onAccrualDayCounter[i].push_back (onCouponAnalyzer.dayCounter ());
602599 onIsAveraging[i].push_back (onCouponAnalyzer.isAveraging ());
603600 payTimes[i].push_back (discountCurves_[baseCcy_]->timeFromReference (c->date ()));
604601 floatingCouponsLatestRelevantCallEventIndex[i].push_back (
@@ -675,17 +672,17 @@ Real NumericLgmRiskParticipationAgreementEngine::protectionLegNpv() const {
675672 RandomVariable rate;
676673 if (auto on = boost::dynamic_pointer_cast<OvernightIndex>(floatingIndices[i][k])) {
677674 if (onIsAveraging[i][k]) {
678- rate = lgm. averagedOnRate (on, onFixingDates[i][k], onValueDates[i][k], onDt[i][k],
679- onRateCutoff [i][k], onIncludeSpread [i][k], floatingSpreads [i][k],
680- floatingGearings [i][k], onLookback [i][k], onAccrualDayCounter [i][k],
681- floatingCaps [i][k], floatingFloors [i][k], onLocalCapFloor [i][k],
682- nakedOption[i][k], eventTimes[i], states);
675+ rate =
676+ lgm. averagedOnRate (on, onFixingDates[i][k], onValueDates [i][k], onDt [i][k], onRateCutoff [i][k],
677+ onIncludeSpread [i][k], floatingSpreads [i][k], floatingGearings [i][k],
678+ onLookback [i][k], floatingCaps [i][k], floatingFloors [i][k],
679+ onLocalCapFloor[i][k], nakedOption[i][k], eventTimes[i], states);
683680 } else {
684681 rate = lgm.compoundedOnRate (on, onFixingDates[i][k], onValueDates[i][k], onDt[i][k],
685682 onRateCutoff[i][k], onIncludeSpread[i][k], floatingSpreads[i][k],
686- floatingGearings[i][k], onLookback[i][k], onAccrualDayCounter [i][k],
687- floatingCaps [i][k], floatingFloors [i][k], onLocalCapFloor [i][k],
688- nakedOption[i][k], eventTimes[i], states);
683+ floatingGearings[i][k], onLookback[i][k], floatingCaps [i][k],
684+ floatingFloors [i][k], onLocalCapFloor [i][k], nakedOption [i][k],
685+ eventTimes[i], states);
689686 }
690687 } else if (auto ibor = boost::dynamic_pointer_cast<IborIndex>(floatingIndices[i][k])) {
691688 rate = computeIborRate (lgm.fixing (ibor, eventDates[i], eventTimes[i], states), floatingSpreads[i][k],
@@ -720,16 +717,14 @@ Real NumericLgmRiskParticipationAgreementEngine::protectionLegNpv() const {
720717 rate = lgm.averagedOnRate (
721718 on, onFixingDates[t][k], onValueDates[t][k], onDt[t][k], onRateCutoff[t][k],
722719 onIncludeSpread[t][k], floatingSpreads[t][k], floatingGearings[t][k],
723- onLookback[t][k], onAccrualDayCounter[t][k], floatingCaps[t][k],
724- floatingFloors[t][k], onLocalCapFloor[t][k], nakedOption[t][k], eventTimes[i],
725- states);
720+ onLookback[t][k], floatingCaps[t][k], floatingFloors[t][k], onLocalCapFloor[t][k],
721+ nakedOption[t][k], eventTimes[i], states);
726722 } else {
727723 rate = lgm.compoundedOnRate (
728724 on, onFixingDates[t][k], onValueDates[t][k], onDt[t][k], onRateCutoff[t][k],
729725 onIncludeSpread[t][k], floatingSpreads[t][k], floatingGearings[t][k],
730- onLookback[t][k], onAccrualDayCounter[t][k], floatingCaps[t][k],
731- floatingFloors[t][k], onLocalCapFloor[t][k], nakedOption[t][k], eventTimes[i],
732- states);
726+ onLookback[t][k], floatingCaps[t][k], floatingFloors[t][k], onLocalCapFloor[t][k],
727+ nakedOption[t][k], eventTimes[i], states);
733728 }
734729 } else if (auto ibor = boost::dynamic_pointer_cast<IborIndex>(floatingIndices[t][k])) {
735730 rate = computeIborRate (
@@ -758,16 +753,14 @@ Real NumericLgmRiskParticipationAgreementEngine::protectionLegNpv() const {
758753 rate = lgm.averagedOnRate (
759754 on, onFixingDates[t][k], onValueDates[t][k], onDt[t][k], onRateCutoff[t][k],
760755 onIncludeSpread[t][k], floatingSpreads[t][k], floatingGearings[t][k],
761- onLookback[t][k], onAccrualDayCounter[t][k], floatingCaps[t][k],
762- floatingFloors[t][k], onLocalCapFloor[t][k], nakedOption[t][k], eventTimes[i],
763- states);
756+ onLookback[t][k], floatingCaps[t][k], floatingFloors[t][k], onLocalCapFloor[t][k],
757+ nakedOption[t][k], eventTimes[i], states);
764758 } else {
765759 rate = lgm.compoundedOnRate (
766760 on, onFixingDates[t][k], onValueDates[t][k], onDt[t][k], onRateCutoff[t][k],
767761 onIncludeSpread[t][k], floatingSpreads[t][k], floatingGearings[t][k],
768- onLookback[t][k], onAccrualDayCounter[t][k], floatingCaps[t][k],
769- floatingFloors[t][k], onLocalCapFloor[t][k], nakedOption[t][k], eventTimes[i],
770- states);
762+ onLookback[t][k], floatingCaps[t][k], floatingFloors[t][k], onLocalCapFloor[t][k],
763+ nakedOption[t][k], eventTimes[i], states);
771764 }
772765 } else if (auto ibor = boost::dynamic_pointer_cast<IborIndex>(floatingIndices[t][k])) {
773766 rate = computeIborRate (
0 commit comments