.. _program_listing_file_src_pcms_utility_print.h: Program Listing for File print.h ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``src/pcms/utility/print.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef PCMS_PRINT_H #define PCMS_PRINT_H #include "pcms/configuration.h" #include #include namespace pcms { #if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) || \ defined(__SYCL_DEVICE_ONLY__) #define ACTIVE_GPU_EXECUTION #endif FILE* getStdout(); FILE* getStderr(); void setStdout(FILE* out); void setStderr(FILE* err); template void printError(const char* fmt, const Args&... args) { #if defined(PCMS_ENABLE_PRINT) fprintf(getStdout(), fmt, args...); #endif } template KOKKOS_INLINE_FUNCTION void printInfo(const char* fmt, const Args&... args) { #if defined(PCMS_ENABLE_PRINT) && !defined(ACTIVE_GPU_EXECUTION) fprintf(getStdout(), fmt, args...); #endif } template KOKKOS_INLINE_FUNCTION void printDebugInfo(const char* fmt, const Args&... args) { #if !defined(NDEBUG) && defined(PCMS_ENABLE_PRINT) #if !defined(ACTIVE_GPU_EXECUTION) fprintf(getStdout(), fmt, args...); #else // For GPU execution printf(fmt, args...); #endif #else (void)fmt; ((void)args, ...); #endif } } // namespace pcms #endif // PCMS_PRINT_H