Files
mesa/src/compiler/libcl/math.h
Konstantin Seurer cb31b5a958 clc,libcl: Clean up CL includes
This patch does a couple of things to make CL integration with drivers
as seamless as possible:
- We pull in opencl-c.h and opencl-c-base.h to stop relying on system
  headers.
- Parts of libcl.h are moved to new headers that are incomplete CL-safe
  variants of libc headers.
- A couple of util headers are changed to remove now unnecessary
  __OPENCL_VERSION__ guards and make more headers CL safe.
- Drivers now include src/compiler/libcl and use headers like
  macros.h,u_math.h instead of libcl.h.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33576>
2025-04-11 21:27:37 +00:00

35 lines
612 B
C

/*
* 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);
}