public void trainProcess(int delimiter, int[] desiredInputs, CSVParser csvparser, int mainColumnId, int deltaTime, double learningRate, double momentum) throws InterruptedException, InvalidStateOfParser {

		double[] input = new double[1024];
        int tmpVar;
        int inputIteratorAll = 0;
        int maxDesiredInputs = 0;
        int desiredInputsCountSize = desiredInputs.length;
        
        for(int i = 0; i < desiredInputsCountSize; i++)
            if(desiredInputs[i] > maxDesiredInputs)
                maxDesiredInputs = desiredInputs[i];

        for(int i = maxDesiredInputs; i < delimiter; 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);	

                    tmpVar--;
                    inputIteratorAll++;
                }

            }
            
            if(csvparser.isFilled())
            	train(input, csvparser.getValue(i+deltaTime, mainColumnId), learningRate, momentum);
            else
            	throw new InvalidStateOfParser();
            
            inputIteratorAll = 0;
        }
	}