Select

接口功能

根据条件张量的真假,从两个输入张量中选择元素,构成一个新的张量。

函数原型

1
int Select(bool *cond, T *thenBranch, T *elseBranch, T *output, size_t length);
  • 该接口只接受一维张量作为输入。
  • 模板类型T:支持int64_t,范围[-2^63,2^63-1]。
  • 输入指针有效长度由用户决定。
  • 保证输入指针的有效空间相互不重叠。

参数说明

表1 参数说明

参数

输入/输出

说明

约束

cond

输入

用于比较的判断条件。

指针不为空,且只接受一维张量。

thenBranch

输入

若条件为真,则选择的元素。

指针不为空,且只接受一维张量。

elseBranch

输入

若条件为假,则选择的元素。

指针不为空,且只接受一维张量。

output

输入

用于存储经过判断条件,构成的张量,作为输出。

指针不为空,且只接受一维张量。

length

输入

用于计算的张量长度。

取值范围[0,2^64-1],length等于output的有效空间,cond有效空间,thenBranch有效空间的最小值,需用户保障,防止缓冲区溢出等安全问题。