예제 #1
0
 /// <summary>
 /// Method for value comparison of maxCoefficients
 /// </summary>
 /// <returns>
 /// 0: if they are equal
 /// 1: if first > second
 /// -1: if second > first 
 /// </returns>
 /// <exception cref="NullReferenceException"></exception>
 public static int Compare(MaxCoefficient first, MaxCoefficient second)
 {
     if (ReferenceEquals(first, null))
         if (ReferenceEquals(second, null))
             return 0;
         else
             throw new NullReferenceException();
     return first.CompareTo(second);
 }
예제 #2
0
 /// <summary>
 /// Method for value comparison of maxCoefficient and fraction
 /// </summary>
 /// <returns>
 /// 0: if they are equal
 /// 1: if fraction  > maxCoefficient
 /// -1: if maxCoefficient > fraction
 /// </returns>
 /// <exception cref="NullReferenceException"></exception>
 public static int Compare(Fraction fraction, MaxCoefficient maxCoefficient)
 {
     return (maxCoefficient.CompareTo(fraction) * -1);
 }
예제 #3
0
 /// <summary>
 /// Method for value comparison of maxCoefficient and fraction
 /// </summary>
 /// <returns>
 /// 0: if they are equal
 /// 1: if maxCoefficient > fraction
 /// -1: if fraction > maxCoefficient
 /// </returns>
 /// <exception cref="NullReferenceException"></exception>
 public static int Compare(MaxCoefficient maxCoefficient, Fraction fraction)
 {
     return maxCoefficient.CompareTo(fraction);
 }
예제 #4
0
 /// <summary>
 /// Method for value comparison of maxCoefficient and number
 /// </summary>
 /// <returns>
 /// 0: if they are equal
 /// 1: if number > maxCoefficient
 /// -1: if maxCoefficient > number
 /// </returns>
 /// <exception cref="NullReferenceException"></exception>
 public static int Compare(int number, MaxCoefficient maxCoefficient)
 {
     return (maxCoefficient.CompareTo(number) * -1);
 }
예제 #5
0
 /// <summary>
 /// Method for value comparison of maxCoefficient and number
 /// </summary>
 /// <returns>
 /// 0: if they are equal
 /// 1: if maxCoefficient > number
 /// -1: if number > maxCoefficient
 /// </returns>
 /// <exception cref="NullReferenceException"></exception>
 public static int Compare(MaxCoefficient maxCoefficient, int number)
 {
     return maxCoefficient.CompareTo(number);
 }
 /// <summary>
 /// Returns index of solving cell(or -1 if table has no positive rating)
 /// </summary>
 /// <param name="table">Table with calculated ratings</param>
 /// <param name="solvingRowIndex">Index of solving row</param>
 private int GetSolvingCellIndex(SimplexTable table, int solvingRowIndex)
 {
     if (solvingRowIndex < 0) return -1;
     var minRatioIndex = -1;
     var minRatio = new MaxCoefficient();
     for (var i = 0; i < table.Variables.Count; i++)
     {
         var matrixElement = table.GetMatrixElement(solvingRowIndex, i);
         if (matrixElement >= 0) continue;
         var rating = table.Ratings[i];
         var currRatio = new MaxCoefficient(rating);
         currRatio.Multiply(1 / matrixElement);
         if (currRatio.CompareTo(minRatio) != -1 && minRatioIndex != -1) continue;
         minRatioIndex = i;
         minRatio = currRatio;
     }
     return minRatioIndex;
 }