#include <stdio.h>
#include <opencv2/opencv.hpp>
#include "dynmem.hpp"
-#ifdef CUFFT
-#include "complexmat.cuh"
-#else
#include "complexmat.hpp"
+
+#ifdef CUFFT
+#include <cufft.h>
+#include "nvToolsExt.h"
#endif
public:
bool debug = false;
+ static constexpr int precision = 2;
std::string indent() { return std::string(indentLvl * 4, ' '); }
public:
FTrace(DbgTracer &dt, const char *fn, const char *format, ...) : t(dt), funcName(fn)
{
+#ifdef CUFFT
+ nvtxRangePushA(fn);
+#endif
if (!t.debug) return;
char *arg;
va_list vl;
}
~FTrace()
{
+#ifdef CUFFT
+ nvtxRangePop();
+#endif
if (!t.debug) return;
t.indentLvl--;
std::cerr << t.indent() << "}" << std::endl;
void traceVal(const char *name, const T& obj, int line, bool always = false)
{
(void)line;
- if (debug || always)
+ if (debug || always) {
+ IOSave s(std::cerr);
+ std::cerr << std::setprecision(precision);
std::cerr << indent() << name /*<< " @" << line */ << " " << print(obj) << std::endl;
+ }
}
template <typename T> struct Printer {