13 inline namespace _V1 {
22 int4 Rangewhd(ImgRange[0], ImgRange[1], ImgRange[2], 0);
23 switch (SmplAddrMode) {
28 Tempuvw = Tempuvw * (Rangewhd.convert<
cl_float>());
30 Coordijk = Tempuvw.convert<
cl_int>();
31 Coordijk =
sycl::min(Coordijk, (Rangewhd - 1));
51 Coordijk = (
sycl::floor(Tempuvw)).convert<cl_int>();
52 int4 GreaterThanEqual = (Coordijk >= Rangewhd);
53 Coordijk = sycl::select(Coordijk, (Coordijk - Rangewhd), GreaterThanEqual);
71 Coordijk = (
sycl::floor(Coorduvw)).convert<cl_int>();
72 Coordijk =
sycl::clamp(Coordijk, int4(0), (Rangewhd - 1));
75 Coordijk = (
sycl::floor(Coorduvw)).convert<cl_int>();
76 Coordijk =
sycl::clamp(Coordijk, int4(-1), Rangewhd);
79 Coordijk = (
sycl::floor(Coorduvw)).convert<cl_int>();
93 const range<3> ImgRange, float4 &Retabc) {
94 int4 Rangewhd(ImgRange[0], ImgRange[1], ImgRange[2], 0);
99 switch (SmplAddrMode) {
104 Coorduvw = Temp * Rangewhd.convert<
cl_float>();
107 Ci0j0k0 = Int_uvwsubhalf;
108 Ci1j1k1 = Ci0j0k0 + 1;
111 Ci1j1k1 =
sycl::min(Ci1j1k1, (Rangewhd - 1));
119 Ci0j0k0 = Int_uvwsubhalf;
120 Ci1j1k1 = Ci0j0k0 + 1;
122 Ci0j0k0 = sycl::select(Ci0j0k0, (Ci0j0k0 + Rangewhd), Ci0j0k0 < int4(0));
123 Ci1j1k1 = sycl::select(Ci1j1k1, (Ci1j1k1 - Rangewhd), Ci1j1k1 >= Rangewhd);
127 Ci0j0k0 =
sycl::clamp(Int_uvwsubhalf, int4(0), (Rangewhd - 1));
128 Ci1j1k1 =
sycl::clamp((Int_uvwsubhalf + 1), int4(0), (Rangewhd - 1));
132 Ci0j0k0 =
sycl::clamp(Int_uvwsubhalf, int4(-1), Rangewhd);
133 Ci1j1k1 =
sycl::clamp((Int_uvwsubhalf + 1), int4(-1), Rangewhd);
137 Ci0j0k0 = Int_uvwsubhalf;
138 Ci1j1k1 = Ci0j0k0 + 1;
142 Retabc = (Coorduvw - 0.5f) - (Int_uvwsubhalf.convert<
cl_float>());
144 return int8(Ci0j0k0, Ci1j1k1);
160 return ((Coord < 0) || (Coord >= Range));
163 bool CheckWidth = CheckOutOfRange(PixelCoord.x(), ImgRange[0]);
164 bool CheckHeight = CheckOutOfRange(PixelCoord.y(), ImgRange[1]);
165 bool CheckDepth = CheckOutOfRange(PixelCoord.z(), ImgRange[2]);
167 return (CheckWidth || CheckHeight || CheckDepth);
172 float4 BorderColor(0.0f);
173 switch (ImgChannelOrder) {
178 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)