public static double macaulayDuration(Leg leg, InterestRate y, bool includeSettlementDateFlows,
Date settlementDate, Date npvDate)
{
Utils.QL_REQUIRE(y.compounding() == Compounding.Compounded, () => "compounded rate required");
return((1.0 + y.rate() / (int)y.frequency()) *
modifiedDuration(leg, y, includeSettlementDateFlows, settlementDate, npvDate));
}