docs: @Override
  	public RandomVariable getValue(double evaluationTime, LIBORModelMonteCarloSimulationModel model) throws CalculationException {
  
  		double productToModelTimeOffset = 0;
  		try {
  			if(referenceDate != null) {
  				productToModelTimeOffset = FloatingpointDate.getFloatingPointDateFromDate(model.getReferenceDate(), referenceDate);
  			}
  		}
  		catch(UnsupportedOperationException e) {};
  
  		// Get random variables
  		RandomVariable	numeraire				= model.getNumeraire(productToModelTimeOffset + maturity);
  		RandomVariable	monteCarloProbabilities	= model.getMonteCarloWeights(productToModelTimeOffset + maturity);
  
  		// Calculate numeraire relative value
  		RandomVariable values = model.getRandomVariableForConstant(1.0);
  		values = values.div(numeraire).mult(monteCarloProbabilities);
  
  		// Convert back to values
  		RandomVariable	numeraireAtEvaluationTime				= model.getNumeraire(evaluationTime);
  		RandomVariable	monteCarloProbabilitiesAtEvaluationTime	= model.getMonteCarloWeights(evaluationTime);
  		values = values.mult(numeraireAtEvaluationTime).div(monteCarloProbabilitiesAtEvaluationTime);
  
  		// Return values
  		return values;
  	}