INTEGERFUNCTIONS(3clc)
π INTEGER BUILT-IN FU β OpenCL Manual, section 3clc π
okay bestie, come sit with me π«Ά this is the lil index page for every single built-in integer function in OpenCL. it's giving group chat, but for math. every entry has its own manpage, so just tap the name and go live your truth β¨
π NAME π
Integer_Built-In_Functions β click an item in the table below for details about that function.
bestie, the original was a whole table and tables are not the vibe here, so it's a list now. same rows, same facts, zero casualties. π
abs(3clc)β the absolute value situation:|x|abs(3clc)β|x-y|, and no modulo overflow allowed πadd_sat(3clc)βx+yand saturate resulthadd(3clc)β(x+y) >> 1without modulo overflowhadd(3clc)β(x+y+1) >> 1. The intermediate sum does not modulo overflow.clz(3clc)β Number of leading 0-bits inxintegerClamp(3clc)βmin(max( x, minval), maxval)mad_hi(3clc)βmul_hi(a,b)+cmad24(3clc)β (Fast integer function.) Multiply 24-bit integer then add the 32-bit result to 32-bit integermad_sat(3clc)βa*b+cand saturate the resultintegerMax(3clc)β The greater ofxoryintegerMax(3clc)β The lessor ofxorymul_hi(3clc)β High half of the product ofxandymul24(3clc)β (Fast integer function.) Multiply 24-bit integer valuesaandbrotate(3clc)βresult[indx]=v[indx]<<i[indx]sub_sat(3clc)βx - yand saturate the resultupsample(3clc)βresult[i] = ((gentype)hi[i] << 8|16|32) | lo[i]popcount(3clc)β Returns the number of non-zero bits inx.
πΈ DESCRIPTION πΈ
so here's the tea β built-in integer functions take scalar or vector arguments. the vector versions of the integer functions operate component-wise, and the description is per component. yes bestie, per component. every time. π¦
we use the generic type name gentype to indicate that the function can take char, char{2|3|4|8|16}, uchar, uchar{2|3|4|8|16}, short, short{2|3|4|8|16}, ushort, ushort{2|3|4|8|16}, int, int{2|3|4|8|16}, uint, uint{2|3|4|8|16}, long, long{2|3|4|8|16}, ulong, or ulong{2|3|4|8|16} as the type for the arguments. iconic list, no notes. π
we also use the generic type name ugentype to refer to the unsigned versions of gentype. for example, if gentype is char4, then ugentype is uchar4. slay. β¨
and we use the generic type name sgentype to indicate that the function can take a scalar data type, i.e. char, uchar, short, ushort, int, uint, long, or ulong as the type for the arguments. for built-in integer functions that take gentype and sgentype arguments, the gentype argument must be a vector or scalar version of the sgentype argument. for example, if sgentype is uchar, then gentype must be uchar or uchar{2|3|4|8|16}. for vector versions, sgentype is implicitly widened to gentype as described in section 6.3.a of the OpenCL specification. it's giving "they have to match, bestie" π
one more thing, and it's important fr fr: for any specific use of a function, the actual type has to be the same for all arguments and the return type unless otherwise specified. no mixing, no matching, periodt. π
β SPECIFICATION β
OpenCL Specification[1]
π AUTHORS π
The Khronos Group
π COPYRIGHT π
Copyright Β© 2007-2011 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the condition that this copyright notice and permission notice shall be included in all copies or substantial portions of the Materials.
π NOTES π
- OpenCL Specification page 256, section 6.12.3 - Integer Functions
and that's the whole page, bestie, you ate it up π this little legend comes to you from The Khronos Group, dated 01/14/2021, and it lives under the manual name INTEGER BUILT-IN FU(3clc). go forth and integer responsibly π§β¨
π¦ where this page comes from
- ubuntu jammy: opencl-1.2-man-doc 1.0~svn33624-5 Β· other
- ubuntu noble: opencl-1.2-man-doc 1.0~svn33624-5 Β· other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms