25 OsiHintStrength strength;
27 bool gotHint = (lhs.getHintParam(OsiDoReducePrint, takeHint, strength));
29 bool printStuff =
true;
33 int numberRows = lhs.getNumRows();
34 int numberColumns = lhs.getNumCols();
35 int numberIntegers = lhs.getNumIntegers();
36 if (numberRows!= rhs.getNumRows() || numberColumns != rhs.getNumCols()) {
38 printf(
"** Mismatch on size, this has %d rows, %d columns - rhs has %d rows, %d columns\n",
39 numberRows, numberColumns, rhs.getNumRows(), rhs.getNumCols());
42 if (numberIntegers != rhs.getNumIntegers()) {
44 printf(
"** Mismatch on number of integers, this has %d - rhs has %d\n",
45 numberIntegers, rhs.getNumIntegers());
48 int numberErrors1 = 0;
49 int numberErrors2 = 0;
50 for (
int i = 0; i < numberColumns; i++) {
51 if (lhs.isInteger(i)) {
52 if (!rhs.isInteger(i))
59 if (numberErrors1||numberErrors2) {
61 printf(
"** Mismatch on integers, %d (this int, rhs not), %d (this not rhs int)\n",
62 numberErrors1, numberErrors2);
66 const double * rowLower = lhs.getRowLower();
67 const double * rowUpper = lhs.getRowUpper();
68 const double * columnLower = lhs.getColLower();
69 const double * columnUpper = lhs.getColUpper();
70 const double * objective = lhs.getObjCoefficients();
71 const double * rowLower2 = rhs.getRowLower();
72 const double * rowUpper2 = rhs.getRowUpper();
73 const double * columnLower2 = rhs.getColLower();
74 const double * columnUpper2 = rhs.getColUpper();
75 const double * objective2 = rhs.getObjCoefficients();
76 const CoinPackedMatrix * matrix = lhs.getMatrixByCol();
77 const CoinPackedMatrix * matrix2 = rhs.getMatrixByCol();
78 CoinRelFltEq tolerance;
79 int numberDifferentL = 0;
80 int numberDifferentU = 0;
81 for (
int i = 0; i < numberRows; i++) {
82 if (!tolerance(rowLower[i], rowLower2[i]))
84 if (!tolerance(rowUpper[i], rowUpper2[i]))
87 int n = numberDifferentL+numberDifferentU;
90 printf(
"Row differences , %d lower, %d upper\n",
91 numberDifferentL, numberDifferentU);
94 int numberDifferentO = 0;
95 for (
int i = 0; i < numberColumns; i++) {
96 if (!tolerance(columnLower[i], columnLower2[i]))
98 if (!tolerance(columnUpper[i], columnUpper2[i]))
100 if (!tolerance(objective[i], objective2[i]))
103 n = numberDifferentL+numberDifferentU+numberDifferentO;
106 printf(
"Column differences , %d lower, %d upper, %d objective\n",
107 numberDifferentL, numberDifferentU, numberDifferentO);
108 if (matrix->getNumElements() == rhs.getNumElements()) {
109 if (!matrix->isEquivalent(*matrix2, tolerance)) {
112 printf(
"Two matrices are not same\n");
117 printf(
"Two matrices are not same - %d elements and %d elements\n",
118 matrix->getNumElements(), matrix2->getNumElements());