public RealDistribution realisedDemand(int t, int k) throws ConvolutionNotDefinedException{
		//check if k is lower or equal than t-l_max, then all orders will be open
		if (k <= t-getMaxOrderLeadTime()) return new RealSinglePointDistribution(0.0);
		
		//check if k is bigger than t, then all orders will be realised
		if (k > t) return totalDemand();
		
		//in all other cases, get the corresponding sub array and fold it
		int numberOfRealizedOrders = k-t+getMaxOrderLeadTime(); 
		RealDistribution[] orderDistributions = getOrderDistributions();
		RealDistribution[] ordersToConvolute = new RealDistribution[numberOfRealizedOrders];
		for (int i = 0; i < numberOfRealizedOrders; i++){
			ordersToConvolute[i] = orderDistributions[getMaxOrderLeadTime()-i];
		}
		return Convoluter.convolute(ordersToConvolute);
	}