docs: private double getA(double time, double maturity) {
  		int timeIndex = getProcess().getTimeIndex(time);
  		double timeStep = getProcess().getTimeDiscretization().getTimeStep(timeIndex);
  
  		double dt = timeStep;
  		double zeroRate = -Math.log(discountCurveFromForwardCurve.getDiscountFactor(time+dt)/discountCurveFromForwardCurve.getDiscountFactor(time)) / dt;
  
  		double B = getB(time,maturity);
  
  		double lnA = Math.log(discountCurveFromForwardCurve.getDiscountFactor(maturity)/discountCurveFromForwardCurve.getDiscountFactor(time))
  				+ B * zeroRate - 0.5 * getShortRateConditionalVariance(0,time) * B * B;
  
  		return Math.exp(lnA);
  	}