* @param iRow index of row in table
		 * @param iCol index of column in table
		 */
		public void setValueAt(Object oProb, int iRow, int iCol) {
			Double fProb = (Double) oProb;
			if (fProb < 0 || fProb > 1) {
				return;
			}
			m_fProbs[iRow][iCol] = (double) fProb;
			double sum = 0;
			for (int i = 0; i < m_fProbs[iRow].length; i++) {
				sum += m_fProbs[iRow][i];
			}

			if (sum > 1) {
				// handle overflow
				int i = m_fProbs[iRow].length - 1;
				while (sum > 1) {
					if (i != iCol) {
						if (m_fProbs[iRow][i] > sum - 1) {
							m_fProbs[iRow][i] -= sum - 1;
							sum = 1;
						} else {
							sum -= m_fProbs[iRow][i];
							m_fProbs[iRow][i] = 0;
						}
					}
					i--;
				}
			} else {
				// handle underflow
				int i = m_fProbs[iRow].length - 1;
				while (sum < 1) {
					if (i != iCol) {
						m_fProbs[iRow][i] += 1 - sum;
						sum = 1;
					}
					i--;
				}

			}
			validate();
		}