// -------------------------------------------------------------------------
 @Override
 public double volatility(double expiry, double strike, double forward) {
   return surface.zValue(expiry, strike);
 }
 /**
  * Return the nu parameter for a pair of time to expiry and instrument tenor.
  *
  * @param expirytenor The expiry/tenor pair
  * @return The nu parameter
  */
 public double getShift(DoublesPair expirytenor) {
   return shiftSurface.zValue(expirytenor);
 }
 /**
  * Return the nu parameter for a pair of time to expiry and instrument tenor.
  *
  * @param expirytenor The expiry/tenor pair
  * @return The nu parameter
  */
 public double getNu(DoublesPair expirytenor) {
   return nuSurface.zValue(expirytenor);
 }
 /**
  * Return the rho parameter for a pair of time to expiry and instrument tenor.
  *
  * @param expirytenor The expiry/tenor pair
  * @return The rho parameter
  */
 public double getRho(DoublesPair expirytenor) {
   return rhoSurface.zValue(expirytenor);
 }
 /**
  * Return the beta parameter for a pair of time to expiry and instrument tenor.
  *
  * @param expirytenor The expiry/tenor pair
  * @return The beta parameter
  */
 public double getBeta(DoublesPair expirytenor) {
   return betaSurface.zValue(expirytenor);
 }
 /**
  * Return the alpha parameter for a pair of time to expiry and instrument tenor.
  *
  * @param expirytenor The expiry/tenor pair
  * @return The alpha parameter
  */
 public double getAlpha(DoublesPair expirytenor) {
   return alphaSurface.zValue(expirytenor);
 }