#if defined(NVTX_AS_SYSTEM_HEADER)
#if defined(__clang__)
#pragma clang system_header
#elif defined(__GNUC__) || defined(__NVCOMPILER)
#pragma GCC system_header
#elif defined(_MSC_VER)
#pragma system_header
#endif
#endif
#include "nvToolsExtPayload.h"
#ifndef NVTX_SEMANTIC_ID_COUNTERS_V1
#define NVTX_SEMANTIC_ID_COUNTERS_V1 5
#define NVTX_COUNTER_SEMANTIC_VERSION 2
#define NVTX_COUNTER_FLAGS_NONE 0
#define NVTX_COUNTER_FLAG_NORMALIZE (1 << 1)
#define NVTX_COUNTER_FLAG_LIMIT_MIN (1 << 2)
#define NVTX_COUNTER_FLAG_LIMIT_MAX (1 << 3)
#define NVTX_COUNTER_FLAG_LIMITS \
(NVTX_COUNTER_FLAG_LIMIT_MIN | NVTX_COUNTER_FLAG_LIMIT_MAX)
#define NVTX_COUNTER_FLAG_VALUETYPE_ABSOLUTE (1 << 4)
#define NVTX_COUNTER_FLAG_VALUETYPE_DELTA (2 << 4)
#define NVTX_COUNTER_FLAG_VALUETYPE_DELTA_SINCE_START (3 << 4)
#define NVTX_COUNTER_FLAG_VALUETYPES (3 << 4)
#define NVTX_COUNTER_FLAG_INTERPOLATION_POINT (1 << 8)
#define NVTX_COUNTER_FLAG_INTERPOLATION_SINCE_LAST (2 << 8)
#define NVTX_COUNTER_FLAG_INTERPOLATION_UNTIL_NEXT (3 << 8)
#define NVTX_COUNTER_FLAG_INTERPOLATION_LINEAR (4 << 8)
#define NVTX_COUNTER_FLAG_INTERPOLATIONS (7 << 8)
#define NVTX_COUNTER_LIMIT_UNDEFINED 0
#define NVTX_COUNTER_LIMIT_I64 1
#define NVTX_COUNTER_LIMIT_U64 2
#define NVTX_COUNTER_LIMIT_F64 3
typedef union
{
int64_t i64;
uint64_t u64;
double f64;
} nvtxCounterLimit_t;
typedef struct nvtxSemanticsCounter_v1
{
struct nvtxSemanticsHeader_v1 header;
uint64_t flags;
const char* unit;
uint64_t unitScaleNumerator;
uint64_t unitScaleDenominator;
int64_t limitType;
nvtxCounterLimit_t min;
nvtxCounterLimit_t max;
} nvtxSemanticsCounter_t;
#endif