int start, end;
this.nRows = nRows;
this.nCols = nCols;
this.nThreads = nThreads;
lookupValues = new float[nRows][];
for (int j = 0; j < nRows; j++) {
lookupValues[j] = new float[nCols];
}
end = 0;
worker = new LoopUserThread[nThreads];
for (int i = 0; i < nThreads; i++) {
start = end;
end += (nCols / nThreads) + 1;
if (end > nCols)
end = nCols;
worker[i] = new LoopUserThread(start, end);
}