/* * Copyright 2024 Valve Corporation * Copyright 2023 Alyssa Rosenzweig * SPDX-License-Identifier: MIT */ #pragma once #ifndef __OPENCL_VERSION__ #error "should only be included from OpenCL" #endif #define CL_FLT_EPSILON 1.1920928955078125e-7f /* OpenCL C lacks roundf and llroundf, we can emulate it */ static inline float roundf(float x) { return trunc(x + copysign(0.5f - 0.25f * CL_FLT_EPSILON, x)); } static inline long long llroundf(float x) { return roundf(x); } static inline long lrintf(float x) { return (long)roundf(x); } static inline float fabsf(float x) { return fabs(x); }