docs: public static RandomVariable blackScholesGeneralizedOptionValue(
  			RandomVariable forward,
  			RandomVariable volatility,
  			double optionMaturity,
  			double optionStrike,
  			RandomVariable payoffUnit)
  	{
  		if(optionMaturity < 0) {
  			return forward.mult(0.0);
  		}
  		else
  		{
  			RandomVariable dPlus	= forward.div(optionStrike).log().add(volatility.squared().mult(0.5 * optionMaturity)).div(volatility).div(Math.sqrt(optionMaturity));
  			RandomVariable dMinus	= dPlus.sub(volatility.mult(Math.sqrt(optionMaturity)));
  
  			RandomVariable valueAnalytic = dPlus.apply(NormalDistribution::cumulativeDistribution).mult(forward).sub(dMinus.apply(NormalDistribution::cumulativeDistribution).mult(optionStrike)).mult(payoffUnit);
  
  			return valueAnalytic;
  		}
  	}