---
title: Select
description: "根据条件张量的真假，从两个输入张量中选择元素，构成一个新的张量。"
url: https://www.hikunpeng.com/document/detail/zh/boostsra/srainference/SRA_Inference/kunpengsra_inference_16_0013.html
sourcePath: /source/zh/boostsra/srainference/SRA_Inference/kunpengsra_inference_16_0013.html
indexId: 126bc94008c67cd1c45b8d5ac5a7b8368a7b0962766b6af4ef433025f35c333480
---
# Select

#### 接口功能

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


#### 函数原型

```
int Select(bool *cond, T *thenBranch, T *elseBranch, T *output, size_t length);
```

- 该接口只接受一维张量作为输入。
- 模板类型T：支持int64_t，范围[-2^63,2^63-1]。
- 输入指针有效空间由用户指定。
- 保证输入指针的有效空间相互不重叠。


#### 参数说明

| 参数 | 输入/输出 | 说明 | 约束 |
| --- | --- | --- | --- |
| cond | 输入 | 用于比较的判断条件。 | 指针不为空，且只接受一维张量。 |
| thenBranch | 输入 | 若条件为真，则选择的元素。 | 指针不为空，且只接受一维张量。 |
| elseBranch | 输入 | 若条件为假，则选择的元素。 | 指针不为空，且只接受一维张量。 |
| output | 输入 | 用于存储经过判断条件后构成的张量，作为输出。 | 指针不为空，且只接受一维张量。 |
| length | 输入 | 用于计算的张量长度。 | 取值范围[0,2^64\-1]，length应等于output的有效空间、cond有效空间和thenBranch有效空间的最小值。用户需确保该值，防止缓冲区溢出等安全问题。 |
