public double error(int delimiter, CSVParser csvparser, int deltaTime, int[] desiredInputs, int mainColumnId, double mainColumnIdMaxValue) throws UnknownColumnException, InvalidStateOfParser, MainColumnIdMaxValueException {

		int end = csvparser.countLines()-deltaTime;
		double[] input = new double[1024];
		int desiredInputsCountSize = desiredInputs.length;
		int tmpVar;
		double runningValue = 0, trueValue = 0, errorRate = 0;
		int inputIteratorAll = 0;

		for(int i=delimiter; i<end; i++){

			for(int j=0; j < desiredInputsCountSize; j++) {
				tmpVar = desiredInputs[j]-1;

				for(int inputIterator=0; inputIterator<desiredInputs[j]; inputIterator++) {

					if(csvparser.isFilled())
						input[inputIteratorAll] = csvparser.getValue(i-tmpVar, j);	
					else
						throw new InvalidStateOfParser();

					tmpVar--;
	                inputIteratorAll++;
				}
			}

			if(mainColumnIdMaxValue == 0)
				throw new MainColumnIdMaxValueException();

			runningValue = run(input)*mainColumnIdMaxValue;

			if(csvparser.isFilled())
				trueValue = csvparser.getValue(i+deltaTime, mainColumnId)*mainColumnIdMaxValue;
			else
				throw new InvalidStateOfParser();

			errorRate += Math.abs(trueValue-runningValue);

	        inputIteratorAll = 0;
		}

		errorRate /= (end-delimiter);
		return errorRate;
	}