docs: @Override
  	public RandomVariable getProcessValue(int timeIndex, int componentIndex) {
  		// Thread safe lazy initialization
  		synchronized(this) {
  			if (discreteProcess == null || discreteProcess.length == 0) {
  				doPrecalculateProcess();
  			}
  		}
  
  		if(discreteProcess[timeIndex][componentIndex] == null) {
  			throw new NullPointerException("Generation of process component " + componentIndex + " at time index " + timeIndex + " failed. Likely due to out of memory");
  		}
  
  		// Return value of process
  		return discreteProcess[timeIndex][componentIndex];
  	}