/* ========================================================================== */ /* === Source/Mongoose_Logger.cpp =========================================== */ /* ========================================================================== */ /* ----------------------------------------------------------------------------- * Mongoose Graph Partitioning Library, Copyright (C) 2017-2018, * Scott P. Kolodziej, Nuri S. Yeralan, Timothy A. Davis, William W. Hager * Mongoose is licensed under Version 3 of the GNU General Public License. * Mongoose is also available under other licenses; contact authors for details. * SPDX-License-Identifier: GPL-3.0-only * -------------------------------------------------------------------------- */ /** * Centralized debug and timing manager * * For debug and timing information to be displayed via stdout. This system * allows this information to be displayed (or not) without recompilation. * Timing inforation for different *portions of the library are also managed * here with a tic/toc pattern. */ #include "Mongoose_Logger.hpp" #include "Mongoose_Debug.hpp" #include "Mongoose_Internal.hpp" #include namespace Mongoose { int Logger::debugLevel = None; bool Logger::timingOn = false; double Logger::clocks[6]; float Logger::times[6]; void Logger::setDebugLevel(int debugType) { debugLevel = debugType; } void Logger::setTimingFlag(bool tFlag) { timingOn = tFlag; } void Logger::printTimingInfo() { std::cout << " Matching: " << std::setprecision(4) << times[MatchingTiming] << "s\n"; std::cout << " Coarsening: " << std::setprecision(4) << times[CoarseningTiming] << "s\n"; std::cout << " Refinement: " << std::setprecision(4) << times[RefinementTiming] << "s\n"; std::cout << " FM: " << std::setprecision(4) << times[FMTiming] << "s\n"; std::cout << " QP: " << std::setprecision(4) << times[QPTiming] << "s\n"; std::cout << " IO: " << std::setprecision(4) << times[IOTiming] << "s\n"; } } // end namespace Mongoose