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