INTEGERMAX(3clc)

πŸ“¦
version 1.0~svn33624 Β· 3 versions
, in ubuntu jammy, ubuntu noble

πŸ’– 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 of x or y. it's giving "who's the bigger one, no drama" πŸ‘‘
  • min β€” returns the lesser of x or y. 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 Β© 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 πŸ“

  1. 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