select

SELECT(3clc)                     OpenCL Manual                    SELECT(3clc)



NAME
       select - For each component of a vector type, result[i] = if MSB of
       c[i] is set ? b[i] : a[i]. For scalar type, result = c ? b : a.


       gentype select(gentype a, gentype b, igentype c);

       gentype select(gentype a, gentype b, ugentype c);


       halfn select (halfn a, halfn b, shortn
       c)      // if half extension enabled

       halfn select (halfn a, halfn b, ushortn
       c)      // if half extension enabled


DESCRIPTION
       For each component of a vector type, result[i] = if MSB of c[i] is set
       ?  b[i] : a[i].

       For scalar type, result = c ?  b : a.

       igentype and ugentype must have the same number of elements and bits as
       gentype.

NOTES
       The argment type gentype can be char, charn,uchar, ucharn, short,
       shortn, ushort, ushortn, int, intn, uint, uintn, long, longn, ulong,
       ulongn, float, floatn, double, and doublen.

       The argument type igentype refers to signed integer types, i.e.  char,
       charn, short, shortn, int, intn, long, and longn.

       The argument type ugentype refers to unsigned integer types, i.e.
       uchar, ucharn, ushort, ushortn, uint, uintn, ulong, and ulongn.  n is
       2, 3, 4, 8, or 16.

       If an implementation extends this specification to support IEEE-754
       flags or exceptions, then all built-in relational functions shall
       proceed without raising the invalid floating-point exception when one
       or more of the operands are NaNs.

       The built-in relational functions are extended with cl_khr_fp16(3clc)
       to include appropriate versions of functions that take half, and
       half{2|3|4|8|16} as arguments and return values.

SPECIFICATION
       OpenCL Specification[1]

SEE ALSO
       relationalFunctions(3clc)

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
        1. OpenCL Specification
           page 264, section 6.12.6 - Relational Functions



The Khronos Group                 02/03/2019                      SELECT(3clc)