# OnesLike — MindSpore Signal+ 使用手册 alpha 文档

# OnesLike

对输出数组的所有元素填充数值 1。对于复数类型，实部填充 1.0，虚部填充 0.0。

\[\text{对于实数类型:}\quad output_i = 1\]
\[\text{对于复数类型:}\quad output_i = 1 + 0i\]

输入：

  - output - 待填充的目标内存地址。

  - length - 处理的元素个数（对于复数类型，指复数的个数）。

  - core_mask(int, 可选) - 核掩码（仅适用于共享存储版本）。

输出：

  - output - 填充完成后的结果地址。

支持平台：

  `FT78NE` `MT7004`

备注

- FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128

- MT7004 支持 int16, int32, fp16, fp32, cplx64

- 复数类型（cplx64 / cplx128）在内存中以连续的 [实部, 虚部] 形式存储，OnesLike 将其设置为 [1.0, 0.0]。

- 共享存储版本在内部使用 DMA 加速和“加倍拷贝法”以提高填充效率。

共享存储版本:

void i8_ones_like_s(int8_t *output, int length, int core_mask)

void i16_ones_like_s(int16_t *output, int length, int core_mask)

void i32_ones_like_s(int32_t *output, int length, int core_mask)

void hp_ones_like_s(half *output, int length, int core_mask)

void fp_ones_like_s(float *output, int length, int core_mask)

void dp_ones_like_s(double *output, int length, int core_mask)

void c64_ones_like_s(float *output, int length, int core_mask)

void c128_ones_like_s(double *output, int length, int core_mask)

  C调用示例：

       1//FT78NE示例（共享存储）
       2#include <stdio.h>
       3#include "78NE/utils.h"
       4
       5int main(int argc, char* argv[]) {
       6    float *output = (float *)0xB0000000;   // 输出在 DDR 空间
       7    int length = 960001;
       8    int core_mask = 0x0B; // 使用核心 0, 1, 3
       9    fp_ones_like_s(output, length, core_mask);
      10    return 0;
      11}

私有存储版本:

void i8_ones_like_p(int8_t *output, int length)

void i16_ones_like_p(int16_t *output, int length)

void i32_ones_like_p(int32_t *output, int length)

void hp_ones_like_p(half *output, int length)

void fp_ones_like_p(float *output, int length)

void dp_ones_like_p(double *output, int length)

void c64_ones_like_p(float *output, int length)

void c128_ones_like_p(double *output, int length)

  C调用示例：

      1//MT7004 示例（私有存储）
      2#include <stdio.h>
      3
      4int main(int argc, char* argv[]) {
      5    float *output = (float *)0x10002000;
      6    int length = 1024;
      7    fp_ones_like_p(output, length);
      8    return 0;
      9}