Rank
=================

    获取输入张量的秩（维数），并将该值写入输出地址。

    输入：
        - **output** - 输出数据的地址，用于存储秩的结果。
        - **n** - 输入张量的秩（维数）。
        - **core_mask** - 核掩码（仅适用于共享存储版本）。

    输出：
        - **output** - 存储秩数值的地址。

    支持平台：
        ``FT78NE``
        ``MT7004``

    .. note::
        - 由于该算子对于不同数据类型的具体实现一致，因此统一使用 ``rank_s`` 和 ``rank_p`` 命名，不再区分数据类型前缀（如 ``fp_``, ``i8_`` 等）。
        - 支持的数据类型包括：int8, int16, int32, fp32, fp64, cplx64, cplx128。

**共享存储版本:**

.. c:function:: void rank_s(int* output, int n, int core_mask)

    **C调用示例：**

    .. code-block:: c
        :linenos:
        :emphasize-lines: 8

        #include <stdio.h>

        int main(int argc, char* argv[]) {
            int n = 4; // 假设张量的秩为4
            int *output = (int *)0xA0000000;
            int core_mask = 0xff;

            rank_s(output, n, core_mask);
            
            return 0;
        }


**私有存储版本:**

.. c:function:: void rank_p(int* output, int n)

    **C调用示例：**

    .. code-block:: c
        :linenos:
        :emphasize-lines: 7

        #include <stdio.h>

        int main(int argc, char* argv[]) {
            int n = 3; // 假设张量的秩为3
            int *output = (int *)0x10810000; 

            rank_p(output, n);
            
            return 0;
        }