docs: public static double blackScholesOptionDelta(
  			double initialStockValue,
  			double riskFreeRate,
  			double volatility,
  			double optionMaturity,
  			double optionStrike)
  	{
  		if(optionMaturity < 0) {
  			return 0;
  		}
  		else if(initialStockValue < 0) {
  			// We use Indicator(S>K) = 1 - Indicator(-S>-K)
  			return 1 - blackScholesOptionDelta(-initialStockValue, riskFreeRate, volatility, optionMaturity, -optionStrike);
  		}
  		else if(initialStockValue == 0)
  		{
  			// Limit case (where dPlus = +/- infty)
  			if(optionStrike < 0) {
  				return 1.0;					// dPlus = +infinity
  			} else if(optionStrike > 0) {
  				return 0.0;					// dPlus = -infinity
  			}
  			else {
  				return 1.0;					// Matter of definition of continuity of the payoff function
  			}
  		}
  		else if((optionStrike <= 0.0) || (volatility <= 0.0) || (optionMaturity <= 0.0))		// (and initialStockValue > 0)
  		{
  			// The Black-Scholes model does not consider it being an option
  			return 1.0;
  		}
  		else
  		{
  			// Calculate delta
  			double dPlus = (Math.log(initialStockValue / optionStrike) + (riskFreeRate + 0.5 * volatility * volatility) * optionMaturity) / (volatility * Math.sqrt(optionMaturity));
  
  			double delta = NormalDistribution.cumulativeDistribution(dPlus);
  
  			return delta;
  		}
  	}