# DSP算子C接口命名规范

DSP算子C接口命名规范是为了提高代码的可读性和可维护性，确保所有DSP算子的函数名称都遵循一定的规则和格式。以下是具体的命名规范：

## 1. 基本原则
- **清晰明了**：函数名应清晰地反映其功能或用途。
- **一致性**：所有函数名应遵循相同的命名规则，以保持代码的一致性。
- **简洁**：避免冗长的命名，但同时要确保足够的信息量。
- **蛇形命名**：使用小写字母和下划线（_）分隔单词，例如 `xxx_xxx_xxx`。
- **数据类型开头**：函数名算子的数据类型开始，描述该算子是什么数据类型的算子，以第一个输入数据类型确定算子的数据类型算子；例如 `fp_xxx_xxx`、`dp_xxx_xxx` 等。各个数据类型算子命名规则如下：
  - `hp`：半精度浮点数算子(float16)
  - `fp`：浮点数算子(float32)
  - `dp`：双精度浮点数算子(float64)
  - `i32`：32位整数算子(int32)
  - `i16`：16位整数算子(int16)
  - `i8`：8位整数算子(int8)
  - `c64`：64位复数算子(complex64)
  - `c128`：128位复数算子(complex128)
- **算子名字在中间**：函数名算子的名字在中间，描述该算子是什么功能的。例如 `xxx_add_xxx`、`xxx_mul_xxx` 等。
- **存储空间类型结尾**：函数名算子的存储空间类型结尾，描述该算子是在共享或者私有存储空间上操作的；其中`_s` 结尾是共享存储版本，`_p` 结尾是私有存储版本；例如 `xxx_xxx_s`、`xxx_xxx_p` 等。

## 2. 具体命名示例

### 2.1 加法算子
- **共享存储**：
  - `fp_add_s` - 表示这是一个在浮点数上操作的加法算子的共享存储版本。
  - `hp_add_s` - 表示这是一个在半精度浮点数上操作的加法算子的共享存储版本。
  - `dp_add_s` - 表示这是一个在双精度浮点数上操作的加法算子的共享存储版本。
  - `i16_add_s` - 表示这是一个在16位整数上操作的加法算子的共享存储版本。
  - `i32_add_s` - 表示这是一个在32位整数上操作的加法算子的共享存储版本。
  - `i8_add_s` - 表示这是一个在8位整数上操作的加法算子的共享存储版本。
  - `c64_add_s` - 表示这是一个在复数（64位）上操作的加法算子的共享存储版本。
  - `c128_add_s` - 表示这是一个在复数（128位）上操作的加法算子的共享存储版本。
- **私有存储**：
  - `fp_add_p` - 表示这是一个在浮点数上操作的加法算子的私有存储版本。
  - `hp_add_p` - 表示这是一个在半精度浮点数上操作的加法算子的私有存储版本。
  - `dp_add_p` - 表示这是一个在双精度浮点数上操作的加法算子的私有存储版本。
  - `i16_add_p` - 表示这是一个在16位整数上操作的加法算子的私有存储版本。
  - `i32_add_p` - 表示这是一个在32位整数上操作的加法算子的私有存储版本。
  - `i8_add_p` - 表示这是一个在8位整数上操作的加法算子的私有存储版本。
  - `c64_add_p` - 表示这是一个在复数（64位）上操作的加法算子的私有存储版本。
  - `c128_add_p` - 表示这是一个在复数（128位）上操作的加法算子的私有存储版本。

## 3. 其他注意事项
```{note}
对于复合操作，如同时涉及多功能的算子，可以在函数名中适当增加描述性词汇，例如 `xxx_add_sub_xxx` 可以表示一个先加后减的算子。
```

