/// <summary> /// The fill. /// </summary> /// <param name="matrix"> /// The matrix. /// </param> public void Fill(IOpenMatrix matrix) { double temp = matrix.ValueList.Cast<double>().Sum(); for (int i = 0; i < ValueList.Count; i++) { ValueList[i] = (temp == 0) ? 0 : ((double)matrix.ValueList[i]) / temp; } }
/// <summary> /// The fill. /// </summary> /// <param name="matrix"> /// The matrix. /// </param> public void Fill(IOpenMatrix matrix) { double temp = 0; for (int i = 0; i < matrix.ValueList.Count; i++) { temp += ((IOpenMatrix)matrix.ValueList[i]).Value; } for (int i = 0; i < ValueList.Count; i++) { ((IWritableMatrix)ValueList[i]).Value = (temp == 0) ? 0 : ((IOpenMatrix)matrix.ValueList[i]).Value / temp; ((IProbabilityMatrix)ValueList[i]).Fill((IOpenMatrix)matrix.ValueList[i]); } }