/src/main/java/net/finmath/equities/models/Black76Model.java
final double lnOfB = Math.log ( b0 ) ; final double bLnOfB = b0 * lnOfB;
{ final Double[] derivatives = BlackFunctionDerivatives.apply(sigma); final double b0 = derivatives[0]; final double b1 = derivatives[1]; final double b2 = derivatives[2]; final double b3 = derivatives[3]; <extra_id_0> final double bLnOfBSquare = bLnOfB * bLnOfB; final double nu = bLnOfB * (1.0 - lnOfB / Math.log(beta)) / b1; final double gamma = (b0 * b2 * lnOfB - b1 * (lnOfB + 2.0)) / bLnOfB; final double delta = (bLnOfBSquare * b3 + 2.0 * b1 * b1 * (lnOfB * lnOfB + 3.0 * lnOfB + 3.0) - 3.0 * bLnOfB * b1 * b2 * (lnOfB + 2.0)) / bLnOfBSquare; return sigma + nu * (1.0 + 0.5 * nu * gamma) / (1.0 + nu * (gamma + delta * nu / 6.0));