15 inline namespace _V1 {
24 int4 Rangewhd(ImgRange[0], ImgRange[1], ImgRange[2], 0);
25 switch (SmplAddrMode) {
30 Tempuvw = Tempuvw * (Rangewhd.convert<
cl_float>());
32 Coordijk = Tempuvw.convert<
cl_int>();
33 Coordijk =
sycl::min(Coordijk, (Rangewhd - 1));
53 Coordijk = (
sycl::floor(Tempuvw)).convert<cl_int>();
54 int4 GreaterThanEqual = (Coordijk >= Rangewhd);
55 Coordijk = sycl::select(Coordijk, (Coordijk - Rangewhd), GreaterThanEqual);
73 Coordijk = (
sycl::floor(Coorduvw)).convert<cl_int>();
74 Coordijk =
sycl::clamp(Coordijk, int4(0), (Rangewhd - 1));
77 Coordijk = (
sycl::floor(Coorduvw)).convert<cl_int>();
78 Coordijk =
sycl::clamp(Coordijk, int4(-1), Rangewhd);
81 Coordijk = (
sycl::floor(Coorduvw)).convert<cl_int>();
95 const range<3> ImgRange, float4 &Retabc) {
96 int4 Rangewhd(ImgRange[0], ImgRange[1], ImgRange[2], 0);
101 switch (SmplAddrMode) {
106 Coorduvw = Temp * Rangewhd.convert<
cl_float>();
109 Ci0j0k0 = Int_uvwsubhalf;
110 Ci1j1k1 = Ci0j0k0 + 1;
113 Ci1j1k1 =
sycl::min(Ci1j1k1, (Rangewhd - 1));
121 Ci0j0k0 = Int_uvwsubhalf;
122 Ci1j1k1 = Ci0j0k0 + 1;
124 Ci0j0k0 = sycl::select(Ci0j0k0, (Ci0j0k0 + Rangewhd), Ci0j0k0 < int4(0));
125 Ci1j1k1 = sycl::select(Ci1j1k1, (Ci1j1k1 - Rangewhd), Ci1j1k1 >= Rangewhd);
129 Ci0j0k0 =
sycl::clamp(Int_uvwsubhalf, int4(0), (Rangewhd - 1));
130 Ci1j1k1 =
sycl::clamp((Int_uvwsubhalf + 1), int4(0), (Rangewhd - 1));
134 Ci0j0k0 =
sycl::clamp(Int_uvwsubhalf, int4(-1), Rangewhd);
135 Ci1j1k1 =
sycl::clamp((Int_uvwsubhalf + 1), int4(-1), Rangewhd);
139 Ci0j0k0 = Int_uvwsubhalf;
140 Ci1j1k1 = Ci0j0k0 + 1;
144 Retabc = (Coorduvw - 0.5f) - (Int_uvwsubhalf.convert<
cl_float>());
146 return int8(Ci0j0k0, Ci1j1k1);
162 return ((Coord < 0) || (Coord >= Range));
165 bool CheckWidth = CheckOutOfRange(PixelCoord.x(), ImgRange[0]);
166 bool CheckHeight = CheckOutOfRange(PixelCoord.y(), ImgRange[1]);
167 bool CheckDepth = CheckOutOfRange(PixelCoord.z(), ImgRange[2]);
169 return (CheckWidth || CheckHeight || CheckDepth);
174 float4 BorderColor(0.0f);
175 switch (ImgChannelOrder) {
180 BorderColor.w() = 1.0f;
The file contains implementations of accessor class.
float4 getBorderColor(const image_channel_order ImgChannelOrder)
int4 getPixelCoordNearestFiltMode(float4, const addressing_mode, const range< 3 >)
bool isOutOfRange(const int4 PixelCoord, const addressing_mode SmplAddrMode, const range< 3 > ImgRange)
int8 getPixelCoordLinearFiltMode(float4, const addressing_mode, const range< 3 >, float4 &)
std::enable_if_t< detail::is_bf16_storage_type< T >::value, T > fabs(T x)