code: public static double huntKennedyCMSFloorValue(
  			double forwardSwaprate,
  			double volatility,
  			double swapAnnuity,
  			double optionMaturity,
  			double swapMaturity,
  			double payoffUnit,
  			double optionStrike)
  	{
  		double huntKennedyCMSOptionValue = huntKennedyCMSOptionValue(forwardSwaprate, volatility, swapAnnuity, optionMaturity, swapMaturity, payoffUnit, optionStrike);
  
  		// A floor is an option plus the strike (max(X,K) = max(X-K,0) + K)
  		return huntKennedyCMSOptionValue + optionStrike * payoffUnit;
  	}
docs: Calculate the value of a CMS strike using the Black-Scholes model for the swap rate together with
  the Hunt-Kennedy convexity adjustment.
  
  @param forwardSwaprate The forward swap rate
  @param volatility Volatility of the log of the swap rate
  @param swapAnnuity The swap annuity
  @param optionMaturity The option maturity
  @param swapMaturity The swap maturity
  @param payoffUnit The payoff unit, e.g., the discount factor corresponding to the payment date
  @param optionStrike The option strike
  @return Value of the CMS strike