code: @Override
  	public RandomVariable getNumeraire(double time) throws CalculationException {
  		if(time < 0) {
  			return randomVariableFactory.createRandomVariable(discountCurve.getDiscountFactor(curveModel, time));
  		}
  
  		RandomVariable numeraire = getNumerairetUnAdjusted(time);
  		/*
  		 * Adjust for discounting, i.e. funding or collateralization
  		 */
  		if (discountCurve != null) {
  			RandomVariable deterministicNumeraireAdjustment = getNumeraireAdjustment(time);
  
  			numeraire = numeraire.mult(numeraire.invert().getAverage()).div(deterministicNumeraireAdjustment);
  		}
  		return numeraire;
  	}
docs: Return the numeraire at a given time.
  
  The numeraire is provided for interpolated points. If requested on points which are not
  part of the tenor discretization, the numeraire uses a linear interpolation of the reciprocal
  value. See ISBN 0470047224 for details.
  
  @param time Time time <i>t</i> for which the numeraire should be returned <i>N(t)</i>.
  @return The numeraire at the specified time as <code>RandomVariable</code>
  @throws net.finmath.exception.CalculationException Thrown if the valuation fails, specific cause may be available via the <code>cause()</code> method.