public void run() {
		int numChanged = 0;
		boolean examineAll = true;
		while (numChanged > 0 || examineAll) {
			numChanged = 0;
			if (examineAll) {
				// loop I over all training examples
				for (int i = 0; i < model.getLength(); i++) {
					numChanged += examineExample(i);
				}
			} else {
				// loop I over examples where alpha is not 0 & not C
				// if (model.alpha[i] > 0 && model.alpha[i] < 0) {
				for (int i = 0; i < model.getLength(); i++) {
					if (alpha[i] != 0 && alpha[i] != C) {
						numChanged += examineExample(i);
					}
				}
			}
			if (examineAll)
				examineAll = false;
			else if (numChanged == 0)
				examineAll = true;
		}
	}