final double dfDomesticBar = -spot / (dfDomestic * dfDomestic) * dfForeign * forwardBar + pv / dfDomestic * pvBar;
final double rForeignBar = -payTime * dfForeign * dfForeignBar;
final double rDomesticBar = -payTime * dfDomestic * dfDomesticBar;
// Sensitivity object
final List<DoublesPair> listForeign = new ArrayList<>();
listForeign.add(new DoublesPair(payTime, rForeignBar));
final Map<String, List<DoublesPair>> resultForeignMap = new HashMap<>();
resultForeignMap.put(foreignCurveName, listForeign);
InterestRateCurveSensitivity result = new InterestRateCurveSensitivity(resultForeignMap);
final List<DoublesPair> listDomestic = new ArrayList<>();
listDomestic.add(new DoublesPair(payTime, rDomesticBar));
final Map<String, List<DoublesPair>> resultDomesticMap = new HashMap<>();
resultDomesticMap.put(domesticCurveName, listDomestic);
result = result.plus(new InterestRateCurveSensitivity(resultDomesticMap));
return MultipleCurrencyInterestRateCurveSensitivity.of(domesticCcy, result);
}