/src/main/java/net/finmath/equities/models/SviVolatilitySmile.java
final var alpha = Math.signum( rho) * Math.sqrt( 1 / beta / beta - 1) ;
final var alpha = Math.signum ( beta ) * Math.sqrt ( 1 / beta / beta - 1 ) ;
/ (logStrikes.get(nPoints - 1) - logStrikes.get(nPoints - 2)); final var p = (totalVariances.get(0) - totalVariances.get(1)) / (logStrikes.get(1) - logStrikes.get(0)); final var b = 0.5 * (c + p); final var rho = 1 - 2 * p / (c + p); final var beta = rho - dwdk / b; <extra_id_0> final var m = (w - wMin) / b / (Math.signum(alpha) * Math.sqrt(1 + alpha * alpha) - alpha * Math.sqrt(1 - rho * rho) - rho); final var sigma = alpha * m; final var a = wMin - b * sigma * Math.sqrt(1 - rho * rho); return new double[] {a, b, rho, m, sigma}; }