FloorDiv
=================



    传入两个等长的浮点型数组，对于数组中对位元素做除法，再对除法所得结果执行向下取整操作。

    .. math::

        dst_i = floorf(\frac{input0_i}{input1_i}) 

    输入：
        - **input0** - 被除数数据地址。
        - **input1** - 除数数据地址。
        - **params** - 其他参数打包成数组：
            - **input0_dims** - input0 的维度。
            - **input1_dims** - input1的维度。
            - **output_dims** - output的维度。
            - **strides0** - Input0 的步长，大小为8*sizeof(int)
            - **strides1** - Input1 的步长，大小为8*sizeof(int)
            - **strides_output** - Output 的步长，大小为8*sizeof(int)
            - **num_dims** - 维度数量。
        - **core_mask** - 核掩码（仅适用于共享存储版本）。

    输出：
        - **output** - 计算结果地址。

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

    .. note::
        - FT78NE 支持fp32, fp64
        - MT7004 支持fp16, fp32

**共享存储版本:**


.. c:function:: void hp_floor_div_s(half* src_data0, half* src_data1, half* dst_data, unsigned long long * params, int core_mask)
.. c:function:: void fp_floor_div_s(float* src_data0, float* src_data1, float* dst_data, unsigned long long * params, int core_mask)
.. c:function:: void dp_floor_div_s(double* src_data0, double* src_data1, double* dst_data, unsigned long long * params, int core_mask)

    **C调用示例：**

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

        //FT78NE示例
        #include <stdio.h>
        #include <floordiv.h>
        
        int main(int argc, char* argv[]) {
            float *input0 = (float *)0xA0000000;   //input在DDR空间
            float *input1 = (float *)0xB0000000;
            float *output = (float *)0xC0000000;
            int *strides0 = (int*)0x84000000;
            int *strides1 = (int*)0x85000000;
            int *strides_output = (int*)0x86000000;

            int core_mask = 0xff;
            int input0_dims[] = {4, 8, 17};  // 2x2
            int input1_dims[] = {4, 8, 17};  // 2x2
            int output_dims[] = {4, 8, 17};      // 2x2
            int num_dims = 3;

            unsigned long long params[9];
            params[0] = (unsigned long long)input0_dims;
            params[1] = (unsigned long long)input1_dims;
            params[2] = (unsigned long long)output_dims;
            params[3] = (unsigned long long)strides0;
            params[4] = (unsigned long long)strides1;
            params[5] = (unsigned long long)strides_output;
            params[6] = (unsigned long long)num_dims;
            fp_floor_div_s( input0,input1, output,params,core_mask);
            return 0;
        }


**私有存储版本:**

.. c:function:: void hp_floor_div_p(half* src_data0, half* src_data1, half* dst_data, unsigned long long * params)
.. c:function:: void fp_floor_div_p(float* src_data0, float* src_data1, float* dst_data, unsigned long long * params)
.. c:function:: void dp_floor_div_p(double* src_data0, double* src_data1, double* dst_data, unsigned long long * params)



    **C调用示例：**

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

        //FT78NE示例
        #include <stdio.h>
        #include <floordiv.h>
        int main(int argc, char* argv[]) {
            float *input0 = (float *)0x10810000;   //input在L2空间
            float *input1 = (float *)0x10820000;
            float *output = (float *)0x10830000;
            int *strides0 = (int*)0x10841000;
            int *strides1 = (int*)0x10842000;
            int *strides_output = (int*)0x10843000;
            int input0_dims[] = {4, 8, 17};  // 2x2
            int input1_dims[] = {4, 8, 17};  // 2x2
            int output_dims[] = {4, 8, 17};      // 2x2
            int num_dims = 3;

            unsigned long long params[9];
            params[0] = (unsigned long long)input0_dims;
            params[1] = (unsigned long long)input1_dims;
            params[2] = (unsigned long long)output_dims;
            params[3] = (unsigned long long)strides0;
            params[4] = (unsigned long long)strides1;
            params[5] = (unsigned long long)strides_output;
            params[6] = (unsigned long long)num_dims;
            fp_floor_div_p( input0, input1, output, params);
            return 0;
        }