263{
264
265 decltype(
timer()) timeA, timeB;
266
267
270 {
271 std::cout << "computation status after computing frame: " << std::endl;
273 }
274
278
279#if defined(WITH_TBB)
280
282 {
283
284 mScheduler.execute([&] {
288 false);
289 mDepGraph.startComputation();
290 mDepGraph.waitForCompletion();
291 });
292
293 }
294 else
296#else
298#endif
299
301 {
304 << std::endl;
306 << std::endl;
308 << std::endl;
310 << std::endl;
312 << std::endl;
314 << std::endl;
316 << std::endl;
318 << std::endl;
319 }
320
321 return;
322#if 0
324 {
325 std::cout << "computation status after computing syzygies: " << std::endl;
327 }
333 {
334 std::cout << "computation status after computing ranks: " << std::endl;
336 }
337
338
339
340 int top_slanted_degree = 0;
341
345
346 while (true)
347 {
350 break;
352 std::cerr << "ERROR: should not get to this point anymore..." << std::endl;
354 std::cout <<
"maxsize = " <<
mFrame.mLevels.size() <<
" and mCurrentLevel = " <<
mCurrentLevel << std::endl;
356 {
357
364 {
365 std::cout << "non-minimal betti: " << std::endl;
367 }
368
369
370
371
372
373
374 }
375 break;
380
382 {
386 {
389#if 0
391#endif
394 {
395 int rk =
rank(it->first, it->second);
398 }
404 break;
405 }
406
407
408 }
410 {
412 }
415 std::cout << "done" << std::endl;
418 break;
421 {
422 std::cout <<
"total time for make matrix: " <<
timeMakeMatrix << std::endl;
423 std::cout <<
"total time for sort matrix: " <<
timeSortMatrix << std::endl;
424 std::cout <<
"total time for reorder matrix: " <<
timeReorderMatrix << std::endl;
425 std::cout <<
"total time for gauss matrix: " <<
timeGaussMatrix << std::endl;
426 std::cout <<
"total time for clear matrix: " <<
timeClearMatrix << std::endl;
428 std::cout <<
"total time for computing ranks: " <<
timeComputeRanks << std::endl;
429 }
430 return;
431 default:
432 break;
433 }
434 }
435#endif
436}
std::vector< std::pair< int, int > > mMinimalizeTODO
void computeSyzygies(int slanted_degree, int maxlevel)
void computeRanks(int slanted_degree, int maxlevel)
bool mParallelizeByDegree
BettiDisplay mBettiMinimal
int rank(int slanted_degree, int lev)
enum SchreyerFrame::@107076371201376153077324375251043314133302145334 mState
component_index computeNextLevel()
double timeResetHashTable
BettiDisplay mComputationStatus
double timeComputeSparseRanks
void getBounds(int &loDegree, int &hiDegree, int &length) const
void showMemoryUsage() const
BettiDisplay mBettiNonminimal
bool debugCheckOrderAll() const
std::unique_ptr< F4Res > mComputer
void makeDependencyGraph(int nlevels, int nslanted_degrees)
The full frame: a vector of Levels indexed by homological degree.
M2_bool stop_after_degree
std::chrono::steady_clock::time_point timer()
double seconds(DurationType time_diff)