INTEGERMAX(3clc)
π MAX, MIN (INTEGER) β the 3clc page, bestie edition π
okay so you're reading the OpenCL manual, specifically the MAX, MIN (INTEGER)(3clc) page, and honestly? you're about to have the easiest glow-up of your whole kernel. sit down, hydrate, let's go β¨
πΈ NAME πΈ
max, min β returns the greater or lesser of x or y. that's it. that's the whole job. iconic behavior honestly π«Ά
gentype max(gentype x, gentype y);
gentype max(gentype x, sgentype y);
gentype min(gentype x, gentype y);
gentype min(gentype x, sgentype y);
β¨ DESCRIPTION β¨
maxβ returns the greater ofxory. it's giving "who's the bigger one, no drama" πminβ returns the lesser ofxory. the humble one. the quiet one. still slaying π
π¦ NOTES π¦
bestie listen. 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. so like, every lane does its own little thing, no cross-talk, we love a boundaries queen π
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. that's a lot of options and honestly? variety is the spice of life π
we use the generic type name ugentype to refer to unsigned versions of gentype. for example, if gentype is char4, ugentype is uchar4. see how that works? little glow-up, same energy π
we also 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, gentype must be uchar or uchar{2|3|4|8|16}. no mixing and matching random types, bestie, this is a situationship-free zone π«
for vector versions, sgentype is implicitly widened to gentype as described in section 6.3.a of the OpenCL specification. it just grows. we love growth π±
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. periodt. π
π SPECIFICATION π
OpenCL Specification[1]
π SEE ALSO π
integerFunctions(3clc) β go read the whole family, they're all so good, iykyk π
π 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 following condition:
the above copyright notice and this 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!! this one's from The Khronos Group, dated 01/14/2021, and yeah the manual name is literally MAX, MIN (INTEGER)(3clc) β say it with your chest. now go compare some integers, you absolute legend π§πβ¨
π¦ 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