code: 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);
  	}
docs: Returns A(t,T) where
  \( A(t,T) = P(T)/P(t) \cdot exp(B(t,T) \cdot f(0,t) - \frac{1}{2} \phi(0,t) * B(t,T)^{2} ) \)
  and
  \( \phi(t,T) \) is the value calculated from integrating \( ( \sigma(s) exp(-\int_{s}^{T} a(\tau) \mathrm{d}\tau ) )^{2} \) with respect to s from t to T
  in <code>getShortRateConditionalVariance</code>.
  
  @param time The parameter t.
  @param maturity The parameter T.
  @return The value A(t,T).