code: private RandomVariable getA(double time, double maturity) {
  		int timeIndex = getProcess().getTimeIndex(time);
  		double timeStep = getProcess().getTimeDiscretization().getTimeStep(timeIndex);
  
  		RandomVariable zeroRate = getZeroRateFromForwardCurve(time); //getDiscountFactorFromForwardCurve(time).div(getDiscountFactorFromForwardCurve(timeNext)).log().div(timeNext-time);
  
  		RandomVariable forwardBond = getDiscountFactorFromForwardCurve(maturity).div(getDiscountFactorFromForwardCurve(time)).log();
  
  		RandomVariable B = getB(time,maturity);
  
  		RandomVariable lnA = B.mult(zeroRate).sub(B.squared().mult(getShortRateConditionalVariance(0,time).div(2))).add(forwardBond);
  
  		return lnA.exp();
  	}
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).