/**
  * Compute the present value of a fixed coupon bond transaction.
  *
  * @param bond The bond transaction.
  * @param curves The curve bundle.
  * @return The present value.
  */
 public double presentValue(final BondFixedTransaction bond, final YieldCurveBundle curves) {
   final double pvNominal = bond.getBondTransaction().getNominal().accept(PVC, curves);
   final double pvCoupon = bond.getBondTransaction().getCoupon().accept(PVC, curves);
   final double settlementAmount =
       -(bond.getTransactionPrice()
                   * bond.getBondTransaction().getCoupon().getNthPayment(0).getNotional()
               + bond.getBondTransaction().getAccruedInterest())
           * bond.getQuantity();
   final PaymentFixed settlement =
       new PaymentFixed(
           bond.getBondTransaction().getCurrency(),
           bond.getBondTransaction().getSettlementTime(),
           settlementAmount,
           bond.getBondTransaction().getRepoCurveName());
   final double pvSettlement = settlement.accept(PVC, curves);
   return (pvNominal + pvCoupon) * bond.getQuantity() + pvSettlement;
 }
 /**
  * Compute the present value sensitivity of a bond transaction.
  *
  * @param bond The bond transaction.
  * @param curves The curve bundle.
  * @return The present value sensitivity.
  */
 public InterestRateCurveSensitivity presentValueSensitivity(
     final BondFixedTransaction bond, final YieldCurveBundle curves) {
   final InterestRateCurveSensitivity pvsNominal =
       new InterestRateCurveSensitivity(
           bond.getBondTransaction().getNominal().accept(PVSC, curves));
   final InterestRateCurveSensitivity pvsCoupon =
       new InterestRateCurveSensitivity(
           bond.getBondTransaction().getCoupon().accept(PVSC, curves));
   final double settlementAmount =
       -(bond.getTransactionPrice()
                   * bond.getBondTransaction().getCoupon().getNthPayment(0).getNotional()
               + bond.getBondTransaction().getAccruedInterest())
           * bond.getQuantity();
   final PaymentFixed settlement =
       new PaymentFixed(
           bond.getBondTransaction().getCurrency(),
           bond.getBondTransaction().getSettlementTime(),
           settlementAmount,
           bond.getBondTransaction().getRepoCurveName());
   final InterestRateCurveSensitivity pvsSettlement =
       new InterestRateCurveSensitivity(settlement.accept(PVSC, curves));
   return pvsNominal.plus(pvsCoupon).multipliedBy(bond.getQuantity()).plus(pvsSettlement);
 }