for (int i = 0; i < numTasks; i++) {
termStartIndex = termOffset;
termEndIndex = components.length - termOffset >= termsPerTask ? termOffset + termsPerTask : components.length;
termOffset += termsPerTask;
tasks[i] = new LearningTask(this, result, termStartIndex, termEndIndex);
}
addTasks(tasks);
} else {
throw new StructuralException("Ensemble contains non-plastic node terminations");
}