{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "808a3af3337c8701cf832269bf400fddb0ae6df2",
    "tool": "doxyref",
    "version": "1.17.0"
  },
  "language": "c",
  "modules": [
    {
      "description": "The rules by which `arm_convolve_f16()`, `arm_convolve_f16_acc16()` and `arm_convolve_f32()` choose a route, in their dispatch order: 1x1, 1xN, conv1d k5, conv1d k3, small-C (MVE float builds), packed-patch GEMM (when ctx holds one patch row), direct. The routers, their buffer-size queries and the direct entries of each route share these, so that a caller selecting the entry per layer ahead of time takes the route the router takes.",
      "name": "Float convolution route predicates",
      "path": "heliaCORE.floatConvRoutes",
      "submodules": [],
      "summary": "The rules by which armconvolvef16(), armconvolvef16acc16() and armconvolvef32() choose a route, in their dispatch order: 1x1, 1xN, conv1d k5, conv1d k3, small-…",
      "symbols": [
        {
          "description": "The packed-patch GEMM route needs at least this many output channels (float32 and float16 alike).",
          "examples": [],
          "id": "ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MIN_OC",
          "kind": "macro",
          "language": "c",
          "members": [],
          "name": "ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MIN_OC",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "#define ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MIN_OC (8)",
          "source": {
            "line": 1562,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1562"
          },
          "summary": "The packed-patch GEMM route needs at least this many output channels (float32 and float16 alike)."
        },
        {
          "description": "The packed-patch GEMM route needs at least this many output positions per batch (float32).",
          "examples": [],
          "id": "ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MIN_POS",
          "kind": "macro",
          "language": "c",
          "members": [],
          "name": "ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MIN_POS",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "#define ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MIN_POS (8)",
          "source": {
            "line": 1564,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1564"
          },
          "summary": "The packed-patch GEMM route needs at least this many output positions per batch (float32)."
        },
        {
          "description": "The packed-patch GEMM route needs at least this many output channels (float16).",
          "examples": [],
          "id": "ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_OC",
          "kind": "macro",
          "language": "c",
          "members": [],
          "name": "ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_OC",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "#define ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_OC (8)",
          "source": {
            "line": 1566,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1566"
          },
          "summary": "The packed-patch GEMM route needs at least this many output channels (float16)."
        },
        {
          "description": "The packed-patch GEMM route needs at least this many output positions per batch (float16).",
          "examples": [],
          "id": "ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_POS",
          "kind": "macro",
          "language": "c",
          "members": [],
          "name": "ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_POS",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "#define ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_POS (8)",
          "source": {
            "line": 1568,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1568"
          },
          "summary": "The packed-patch GEMM route needs at least this many output positions per batch (float16)."
        },
        {
          "description": "Lanes of the float16 small-C kernel: the route takes fewer input channels than this.",
          "examples": [],
          "id": "ARM_NN_CONV_SMALL_C_F16_LANES",
          "kind": "macro",
          "language": "c",
          "members": [],
          "name": "ARM_NN_CONV_SMALL_C_F16_LANES",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "#define ARM_NN_CONV_SMALL_C_F16_LANES (8)",
          "source": {
            "line": 1575,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1575"
          },
          "summary": "Lanes of the float16 small-C kernel: the route takes fewer input channels than this."
        },
        {
          "description": "Lanes of the float32 small-C kernel; the general gate takes fewer input channels.",
          "examples": [],
          "id": "ARM_NN_CONV_SMALL_C_F32_LANES",
          "kind": "macro",
          "language": "c",
          "members": [],
          "name": "ARM_NN_CONV_SMALL_C_F32_LANES",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "#define ARM_NN_CONV_SMALL_C_F32_LANES (4)",
          "source": {
            "line": 1577,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1577"
          },
          "summary": "Lanes of the float32 small-C kernel; the general gate takes fewer input channels."
        },
        {
          "description": "Identify an empty output request, after dimension validation.",
          "examples": [],
          "id": "arm_nn_conv_flt_empty",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_empty",
          "params": [
            {
              "description": "Output tensor dimensions.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true for zero batch or spatial extent."
            }
          ],
          "signature": "static bool arm_nn_conv_flt_empty(const cmsis_nn_dims *output_dims)",
          "source": {
            "line": 1584,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1584"
          },
          "summary": "Identify an empty output request, after dimension validation."
        },
        {
          "description": "Bound the signed coordinate intermediates for one nonempty output axis.",
          "examples": [],
          "id": "arm_nn_conv_flt_axis_ok",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_axis_ok",
          "params": [
            {
              "description": "Number of output positions.",
              "direction": "in",
              "name": "out",
              "type": "int32_t"
            },
            {
              "description": "Number of filter taps.",
              "direction": "in",
              "name": "kernel",
              "type": "int32_t"
            },
            {
              "description": "Positive output step.",
              "direction": "in",
              "name": "stride",
              "type": "int32_t"
            },
            {
              "description": "Nonnegative leading padding.",
              "direction": "in",
              "name": "pad",
              "type": "int32_t"
            },
            {
              "description": "Positive filter step.",
              "direction": "in",
              "name": "dilation",
              "type": "int32_t"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true when all coordinate intermediates fit int32."
            }
          ],
          "signature": "static bool arm_nn_conv_flt_axis_ok(int32_t out, int32_t kernel, int32_t stride, int32_t pad, int32_t dilation)",
          "source": {
            "line": 1598,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1598"
          },
          "summary": "Bound the signed coordinate intermediates for one nonempty output axis."
        },
        {
          "description": "Validate common float convolution metadata and accessed arithmetic. Output windows are explicit; generic kernels clip their out-of-input taps.",
          "examples": [],
          "id": "arm_nn_conv_flt_dims_ok",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_dims_ok",
          "params": [
            {
              "description": "Spatial output steps.",
              "direction": "in",
              "name": "stride",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Leading spatial padding.",
              "direction": "in",
              "name": "padding",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial filter steps.",
              "direction": "in",
              "name": "dilation",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Input dimensions [N, H, W, C_IN].",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [C_OUT, KH, KW, C_IN].",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT].",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Bytes per tensor element.",
              "direction": "in",
              "name": "element_size",
              "type": "size_t"
            },
            {
              "description": "Channel block size and vector loop width for the dtype.",
              "direction": "in",
              "name": "packed_lanes",
              "type": "int32_t"
            },
            {
              "description": "Whether the filter uses NT_N_PACKED storage.",
              "direction": "in",
              "name": "packed",
              "type": "bool"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true for consistent metadata and representable nonempty work, or a valid empty request."
            }
          ],
          "signature": "static bool arm_nn_conv_flt_dims_ok(\n    const cmsis_nn_tile *stride,\n    const cmsis_nn_tile *padding,\n    const cmsis_nn_tile *dilation,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims,\n    size_t element_size,\n    int32_t packed_lanes,\n    bool packed\n)",
          "source": {
            "line": 1619,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1619"
          },
          "summary": "Validate common float convolution metadata and accessed arithmetic."
        },
        {
          "description": "Check window coverage for an unpadded 1x1 body that samples directly.",
          "examples": [],
          "id": "arm_nn_conv_flt_1x1_window_ok",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_1x1_window_ok",
          "params": [
            {
              "description": "Spatial output steps.",
              "direction": "in",
              "name": "stride",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Input dimensions.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true when every requested sample lies inside the input."
            }
          ],
          "signature": "static bool arm_nn_conv_flt_1x1_window_ok(\n    const cmsis_nn_tile *stride,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1676,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1676"
          },
          "summary": "Check window coverage for an unpadded 1x1 body that samples directly."
        },
        {
          "description": "Bound f32 small-C coordinates, including inactive lanes and contiguous-load spans.",
          "examples": [],
          "id": "arm_nn_conv_f32_small_c_coords_ok",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_f32_small_c_coords_ok",
          "params": [
            {
              "description": "Spatial output steps.",
              "direction": "in",
              "name": "stride",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Leading spatial padding.",
              "direction": "in",
              "name": "padding",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial filter steps.",
              "direction": "in",
              "name": "dilation",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Validated input dimensions.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Validated filter dimensions.",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Validated nonempty output dimensions.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true when signed lane coordinates and products remain representable."
            }
          ],
          "signature": "static bool arm_nn_conv_f32_small_c_coords_ok(\n    const cmsis_nn_tile *stride,\n    const cmsis_nn_tile *padding,\n    const cmsis_nn_tile *dilation,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1695,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1695"
          },
          "summary": "Bound f32 small-C coordinates, including inactive lanes and contiguous-load spans."
        },
        {
          "description": "The 1x1 route: a 1x1 filter with no padding.",
          "examples": [],
          "id": "arm_nn_conv_flt_is_1x1",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_is_1x1",
          "params": [
            {
              "description": "Spatial zero-padding",
              "direction": "in",
              "name": "padding",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Filter dimensions [C_OUT, KH, KW, C_IN]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the router takes the 1x1 route"
            }
          ],
          "signature": "static bool arm_nn_conv_flt_is_1x1(const cmsis_nn_tile *padding, const cmsis_nn_dims *filter_dims)",
          "source": {
            "line": 1716,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1716"
          },
          "summary": "The 1x1 route: a 1x1 filter with no padding."
        },
        {
          "description": "A conv1d with a 1 x k filter: batch 1, input and output height 1, unit stride and dilation, no padding.",
          "examples": [],
          "id": "arm_nn_conv_flt_is_1d_k",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_is_1d_k",
          "params": [
            {
              "description": "Spatial stride",
              "direction": "in",
              "name": "stride",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial zero-padding",
              "direction": "in",
              "name": "padding",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial dilation",
              "direction": "in",
              "name": "dilation",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [C_OUT, KH, KW, C_IN]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter width",
              "direction": "in",
              "name": "k",
              "type": "const int32_t"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true for the conv1d k5 route with k = 5 and the conv1d k3 route with k = 3"
            }
          ],
          "signature": "static bool arm_nn_conv_flt_is_1d_k(\n    const cmsis_nn_tile *stride,\n    const cmsis_nn_tile *padding,\n    const cmsis_nn_tile *dilation,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims,\n    const int32_t k\n)",
          "source": {
            "line": 1732,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1732"
          },
          "summary": "A conv1d with a 1 x k filter: batch 1, input and output height 1, unit stride and dilation, no padding."
        },
        {
          "description": "The shape part of the 1xN route: input, output and filter height 1, a filter wider than 1, unit stride and dilation in height, unit dilation in width, a positive width stride and no height padding. Unless NN_DISABLE_SPECIALIZATION is defined, the routers take the conv1d routes for their shapes first. The router also needs ctx to hold `arm_convolve_1_x_n_f16_get_buffer_size()` (or _f32).",
          "examples": [],
          "id": "arm_nn_conv_flt_is_1xn",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_is_1xn",
          "params": [
            {
              "description": "Spatial stride",
              "direction": "in",
              "name": "stride",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial zero-padding",
              "direction": "in",
              "name": "padding",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial dilation",
              "direction": "in",
              "name": "dilation",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [C_OUT, KH, KW, C_IN]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the shape takes the 1xN route when ctx is large enough and no conv1d route claims it"
            }
          ],
          "signature": "static bool arm_nn_conv_flt_is_1xn(\n    const cmsis_nn_tile *stride,\n    const cmsis_nn_tile *padding,\n    const cmsis_nn_tile *dilation,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1758,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1758"
          },
          "summary": "The shape part of the 1xN route: input, output and filter height 1, a filter wider than 1, unit stride and dilation in height, unit dilation in width, a positi…"
        },
        {
          "description": "The float16 small-C route: fewer input channels than ARM_NN_CONV_SMALL_C_F16_LANES, a positive output depth and width, a positive input width, filter width, stride and dilation, a non-negative padding, and every gather and scatter offset within 16 bits.",
          "examples": [],
          "id": "arm_nn_conv_f16_is_small_c",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_f16_is_small_c",
          "params": [
            {
              "description": "Spatial stride",
              "direction": "in",
              "name": "stride",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial zero-padding",
              "direction": "in",
              "name": "padding",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Spatial dilation",
              "direction": "in",
              "name": "dilation",
              "type": "const cmsis_nn_tile *"
            },
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [C_OUT, KH, KW, C_IN]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the float16 routers take the small-C route on MVE float builds"
            }
          ],
          "signature": "static bool arm_nn_conv_f16_is_small_c(\n    const cmsis_nn_tile *stride,\n    const cmsis_nn_tile *padding,\n    const cmsis_nn_tile *dilation,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1783,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1783"
          },
          "summary": "The float16 small-C route: fewer input channels than ARMNNCONVSMALLCF16LANES, a positive output depth and width, a positive input width, filter width, stride a…"
        },
        {
          "description": "The float32 small-C route: fewer input channels than ARM_NN_CONV_SMALL_C_F32_LANES and a positive output depth and width.",
          "examples": [],
          "id": "arm_nn_conv_f32_is_small_c",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_f32_is_small_c",
          "params": [
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if `arm_convolve_f32()` takes the small-C route on MVE float builds"
            }
          ],
          "signature": "static bool arm_nn_conv_f32_is_small_c(const cmsis_nn_dims *input_dims, const cmsis_nn_dims *output_dims)",
          "source": {
            "line": 1814,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1814"
          },
          "summary": "The float32 small-C route: fewer input channels than ARMNNCONVSMALLCF32LANES and a positive output depth and width."
        },
        {
          "description": "Additional float32 small-C region: 3x3 filters, four input channels and up to 8 output channels.\n\n:::note\nRequires at least one full four-column output tile.\n\n:::",
          "examples": [],
          "id": "arm_nn_conv_f32_is_small_c_3x3",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_f32_is_small_c_3x3",
          "params": [
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [C_OUT, HK, WK, C_IN]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the shape uses the small-C route, subject to its coordinate bounds"
            }
          ],
          "signature": "static bool arm_nn_conv_f32_is_small_c_3x3(\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1828,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1828"
          },
          "summary": "Additional float32 small-C region: 3x3 filters, four input channels and up to 8 output channels."
        },
        {
          "description": "The shape part of the packed-patch GEMM route: at least ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_OC output channels and ARM_NN_CONV_NHWC_PATCH_GEMM_F16_MIN_POS output positions per batch (the float32 thresholds are equal). The router also needs ctx to hold one patch row (KH x KW x C_IN elements).",
          "examples": [],
          "id": "arm_nn_conv_flt_is_patch_gemm",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_conv_flt_is_patch_gemm",
          "params": [
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the shape takes the packed-patch GEMM route when ctx is large enough"
            }
          ],
          "signature": "static bool arm_nn_conv_flt_is_patch_gemm(const cmsis_nn_dims *output_dims)",
          "source": {
            "line": 1843,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1843"
          },
          "summary": "The shape part of the packed-patch GEMM route: at least ARMNNCONVNHWCPATCHGEMMF16MINOC output channels and ARMNNCONVNHWCPATCHGEMMF16MINPOS output positions per…"
        },
        {
          "description": "The depthwise conv1d k3 route of `arm_depthwise_conv_f16()`: batch 1, channel multiplier 1, a 1x3 filter, input and output height 1, unit stride and dilation, no padding.",
          "examples": [],
          "id": "arm_nn_dw_f16_is_1d_k3",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_dw_f16_is_1d_k3",
          "params": [
            {
              "description": "Depthwise parameters",
              "direction": "in",
              "name": "dw_conv_params",
              "type": "const cmsis_nn_dw_conv_params_f16 *"
            },
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [1, HK, WK, C_OUT]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the router takes the conv1d k3 route (unless NN_DISABLE_SPECIALIZATION is defined)"
            }
          ],
          "signature": "static bool arm_nn_dw_f16_is_1d_k3(\n    const cmsis_nn_dw_conv_params_f16 *dw_conv_params,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1859,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1859"
          },
          "summary": "The depthwise conv1d k3 route of armdepthwiseconvf16(): batch 1, channel multiplier 1, a 1x3 filter, input and output height 1, unit stride and dilation, no pa…"
        },
        {
          "description": "The depthwise 2x5 route of `arm_depthwise_conv_f16()`: a 2x5 filter, input height 2, output height 1, unit stride and dilation, no padding; any batch and channel multiplier.",
          "examples": [],
          "id": "arm_nn_dw_f16_is_2x5",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_dw_f16_is_2x5",
          "params": [
            {
              "description": "Depthwise parameters",
              "direction": "in",
              "name": "dw_conv_params",
              "type": "const cmsis_nn_dw_conv_params_f16 *"
            },
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Filter dimensions [1, HK, WK, C_OUT]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the router takes the 2x5 route (unless NN_DISABLE_SPECIALIZATION is defined)"
            }
          ],
          "signature": "static bool arm_nn_dw_f16_is_2x5(\n    const cmsis_nn_dw_conv_params_f16 *dw_conv_params,\n    const cmsis_nn_dims *input_dims,\n    const cmsis_nn_dims *filter_dims,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 1879,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1879"
          },
          "summary": "The depthwise 2x5 route of armdepthwiseconvf16(): a 2x5 filter, input height 2, output height 1, unit stride and dilation, no padding; any batch and channel mu…"
        },
        {
          "description": "The shape part of the depthwise one-input-channel route of `arm_depthwise_conv_f16()` on MVE float builds: one input channel and at least CONVERT_DW_CONV_WITH_ONE_INPUT_CH_AND_OUTPUT_CH_ABOVE_THRESHOLD output channels (the threshold depends on the compiler). The router takes the route after the channel-multiplier-1 route, and only when ctx->size is at least arm_nn_dw_f16_cin1_min_ctx_size; otherwise it takes the generic route.",
          "examples": [],
          "id": "arm_nn_dw_f16_is_cin1",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_dw_f16_is_cin1",
          "params": [
            {
              "description": "Input dimensions [N, H, W, C_IN]",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "true if the shape takes the one-input-channel route when ctx is large enough"
            }
          ],
          "signature": "static bool arm_nn_dw_f16_is_cin1(const cmsis_nn_dims *input_dims, const cmsis_nn_dims *output_dims)",
          "source": {
            "line": 1899,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1899"
          },
          "summary": "The shape part of the depthwise one-input-channel route of armdepthwiseconvf16() on MVE float builds: one input channel and at least CONVERTDWCONVWITHONEINPUTC…"
        },
        {
          "description": "The least ctx->size, in bytes, of the depthwise one-input-channel route: the filter packed in blocks of 8 output channels, then one patch row of KH x KW elements. More scratch packs more patch rows per step.",
          "examples": [],
          "id": "arm_nn_dw_f16_cin1_min_ctx_size",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_nn_dw_f16_cin1_min_ctx_size",
          "params": [
            {
              "description": "Filter dimensions [1, HK, WK, C_OUT]",
              "direction": "in",
              "name": "filter_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Output dimensions [N, H, W, C_OUT]",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "the size in bytes (64 bits, so that the caller can bound it), or INT64_MAX for a negative dimension or more than INT32_MAX taps, which no ctx can hold"
            }
          ],
          "signature": "static int64_t arm_nn_dw_f16_cin1_min_ctx_size(const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)",
          "source": {
            "line": 1912,
            "path": "Include/arm_nnsupportfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/808a3af3337c8701cf832269bf400fddb0ae6df2/Include/arm_nnsupportfunctions_flt.h#L1912"
          },
          "summary": "The least ctx->size, in bytes, of the depthwise one-input-channel route: the filter packed in blocks of 8 output channels, then one patch row of KH x KW elemen…"
        }
      ]
    }
  ],
  "name": "heliaCORE"
}
