100 preprocessingTime->reset();
101 simplexTime->reset();
103 transformTime->reset();
104 rationalTime->reset();
105 reconstructionTime->reset();
106 luFactorizationTimeReal = 0.0;
107 luSolveTimeReal = 0.0;
108 luFactorizationTimeRational = 0.0;
109 luSolveTimeRational = 0.0;
111 iterationsPrimal = 0;
112 iterationsFromBasis = 0;
114 luFactorizationsReal = 0;
116 luFactorizationsRational = 0;
117 rationalReconstructions = 0;
119 stallRefinements = 0;
120 pivotRefinements = 0;
128 Real solTime = solvingTime->time();
129 Real totTime = readingTime->time() + solTime;
130 Real otherTime = solTime - syncTime->time() - transformTime->time() - preprocessingTime->time() - simplexTime->time() - rationalTime->time();
132 os << std::fixed << std::setprecision(2);
134 os <<
"Total time : " << totTime <<
"\n"
135 <<
" Reading : " << readingTime->time() <<
"\n"
136 <<
" Solving : " << solTime <<
"\n"
137 <<
" Preprocessing : " << preprocessingTime->time();
139 os <<
" (" << 100 * (preprocessingTime->time() / solTime) <<
"% of solving time)";
140 os <<
"\n Simplex : " << simplexTime->time();
142 os <<
" (" << 100 * (simplexTime->time() / solTime) <<
"% of solving time)";
143 os <<
"\n Synchronization : " << syncTime->time();
145 os <<
" (" << 100 * (syncTime->time() / solTime) <<
"% of solving time)";
146 os <<
"\n Transformation : " << transformTime->time();
148 os <<
" (" << 100*transformTime->time() / solTime <<
"% of solving time)";
149 os <<
"\n Rational : " << rationalTime->time();
151 os <<
" (" << 100*rationalTime->time() / solTime <<
"% of solving time)";
152 os <<
"\n Other : " << otherTime;
154 os <<
" (" << 100*otherTime / solTime <<
"% of solving time)";
156 os <<
"\nRefinements : " << refinements <<
"\n"
157 <<
" Stalling : " << stallRefinements <<
"\n"
158 <<
" Pivoting : " << pivotRefinements <<
"\n"
159 <<
" Feasibility : " << feasRefinements <<
"\n"
160 <<
" Unboundedness : " << unbdRefinements <<
"\n";
162 os <<
"Iterations : " << iterations <<
"\n"
163 <<
" From scratch : " << iterations - iterationsFromBasis;
165 os <<
" (" << 100*double((iterations - iterationsFromBasis))/double(iterations) <<
"%)";
166 os <<
"\n From basis : " << iterationsFromBasis;
168 os <<
" (" << 100*double(iterationsFromBasis)/double(iterations) <<
"%)";
169 os <<
"\n Primal : " << iterationsPrimal;
171 os <<
" (" << 100*double(iterationsPrimal)/double(iterations) <<
"%)";
172 os <<
"\n Dual : " << iterations - iterationsPrimal;
174 os <<
" (" << 100*double((iterations - iterationsPrimal))/double(iterations) <<
"%)";
175 os <<
"\n Bound flips : " << boundflips;
177 os <<
"\nLU factorizations : " << luFactorizationsReal <<
"\n"
178 <<
" Factor. frequency : ";
179 if( luFactorizationsReal > 0 )
180 os << double(iterations) / double(luFactorizationsReal) <<
" iterations per factorization\n";
183 os <<
" Factor. time : " << luFactorizationTimeReal <<
"\n";
185 os <<
"LU solves : " << luSolvesReal <<
"\n"
186 <<
" Solve frequency : ";
187 if( luSolvesReal > 0 )
188 os << double(luSolvesReal) / double(iterations) <<
" solves per iteration\n";
191 os <<
" Solve time : " << luSolveTimeReal <<
"\n";
193 os <<
"Rat. factorizations : " << luFactorizationsRational <<
"\n"
194 <<
" Rat. factor. time : " << luFactorizationTimeRational <<
"\n"
195 <<
" Rat. solve time : " << luSolveTimeRational <<
"\n";
197 os <<
"Rat. reconstructions: " << rationalReconstructions <<
"\n"
198 <<
" Rat. rec. time : " << reconstructionTime->time() <<
"\n";