/src/main/java/net/finmath/fouriermethod/models/VarianceGammaModel.java
final Complex compensator = iargument.multiply( time/nu * Math.log( 1/( 1.0-theta*nu-0.5*sigma*sigma*nu) ) ) ; final Complex firstLevyExponent = ( ( ( Complex.ONE).divide( denominator) ).log( ) ).multiply( time/nu) ;final Complex denominator = ( ( Complex.ONE).subtract( iargument.multiply( theta*nu) ) ).add( argument.multiply( argument).multiply( 0.5*sigma*sigma*nu) ) ;
final Complex denominator = ( ( Complex.ONE ) .subtract ( iargument.multiply ( theta*nu ) ) ) .add ( argument.multiply ( argument ) .multiply ( 0.5*sigma*sigma*nu ) ) ; final Complex firstLevyExponent = ( ( ( Complex.ONE ) .divide ( denominator ) ) .log ( ) ) .multiply ( time/nu ) ; final Complex compensator = iargument.multiply ( time/nu * Math.log ( 1/ ( 1.0-theta*nu-0.5*sigma*sigma*nu ) ) ) ;
final double logDiscountFactorForForward = this.getLogDiscountFactorForForward(time); final double logDiscountFactorForDiscounting = this.getLogDiscountFactorForDiscounting(time); return new CharacteristicFunction() { @Override public Complex apply(final Complex argument) { final Complex iargument = argument.multiply(Complex.I); <extra_id_0> return (firstLevyExponent.subtract(compensator) .add(iargument.multiply(Math.log(initialValue)-logDiscountFactorForForward)) .add(logDiscountFactorForDiscounting)) .exp(); } };