83 lines
2.4 KiB
ReStructuredText
83 lines
2.4 KiB
ReStructuredText
Assert
|
||
=================
|
||
|
||
逐元素判断输入是否为真(非零)。若输入为真则输出 1,否则输出 0。
|
||
|
||
.. math::
|
||
|
||
output_i = \begin{cases}
|
||
1, & \text{if } input_i \neq 0 \\
|
||
0, & \text{if } input_i = 0
|
||
\end{cases}
|
||
|
||
输入:
|
||
- **input** - 输入数据地址。
|
||
- **core_mask(int, 可选)** - 核掩码(仅适用于共享存储版本)。
|
||
|
||
输出:
|
||
- **output** - 计算结果地址。
|
||
|
||
支持平台:
|
||
``FT78NE``
|
||
``MT7004``
|
||
|
||
.. note::
|
||
- FT78NE 支持 int8, int16, int32, fp32, fp64, cplx64, cplx128
|
||
- MT7004 支持 fp16, fp32, int16, int32, cplx64
|
||
|
||
**共享存储版本:**
|
||
|
||
.. c:function:: void i8_assert_s(int8_t *input, int8_t *output, int core_mask)
|
||
.. c:function:: void i16_assert_s(int16_t *input, int16_t *output, int core_mask)
|
||
.. c:function:: void i32_assert_s(int *input, int *output, int core_mask)
|
||
.. c:function:: void hp_assert_s(half *input, half *output, int core_mask)
|
||
.. c:function:: void fp_assert_s(float *input, float *output, int core_mask)
|
||
.. c:function:: void dp_assert_s(double *input, double *output, int core_mask)
|
||
.. c:function:: void c64_assert_s(float *input, float *output, int core_mask)
|
||
.. c:function:: void c128_assert_s(double *input, double *output, int core_mask)
|
||
|
||
**C调用示例:**
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
:emphasize-lines: 9
|
||
|
||
//FT78NE示例
|
||
#include <stdio.h>
|
||
|
||
int main(int argc, char* argv[]) {
|
||
float *input = (float *)0xA0000000;
|
||
float *output = (float *)0xC0000000;
|
||
int core_mask = 0xff;
|
||
fp_assert_s(input, output, core_mask);
|
||
return 0;
|
||
}
|
||
|
||
|
||
**私有存储版本:**
|
||
|
||
.. c:function:: void i8_assert_p(int8_t *input, int8_t *output)
|
||
.. c:function:: void i16_assert_p(int16_t *input, int16_t *output)
|
||
.. c:function:: void i32_assert_p(int *input, int *output)
|
||
.. c:function:: void hp_assert_p(half *input, half *output)
|
||
.. c:function:: void fp_assert_p(float *input, float *output)
|
||
.. c:function:: void dp_assert_p(double *input, double *output)
|
||
.. c:function:: void c64_assert_p(float *input, float *output)
|
||
.. c:function:: void c128_assert_p(double *input, double *output)
|
||
|
||
**C调用示例:**
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
:emphasize-lines: 7
|
||
|
||
//FT78NE示例
|
||
#include <stdio.h>
|
||
|
||
int main(int argc, char* argv[]) {
|
||
float *input = (float *)0x10800000;
|
||
float *output = (float *)0x10810000;
|
||
fp_assert_p(input, output);
|
||
return 0;
|
||
}
|