{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "5f3fed9f21a57390cc7f00f77a37db8f5f110cb8",
    "tool": "doxyref",
    "version": "1.17.0"
  },
  "language": "c",
  "modules": [
    {
      "description": "",
      "name": "Gather Functions:",
      "path": "heliaCORE.Gather",
      "submodules": [],
      "summary": "",
      "symbols": [
        {
          "description": "Gather contiguous slices along an axis.\n\nData rank is 1..4 and indices rank is 0..4; rank-0 indices contain one index. Negative axis normalizes by input_rank; negative batch_dims normalizes by coords_rank. After normalization, 0 <= batch_dims <= coords_rank and batch_dims <= axis < input_rank. Leading batch dimensions must match. The inferred output shape is input_shape[:axis] + indices_shape[batch_dims:] + input_shape[axis + 1:].\n\nShapes use the first rank fields of `cmsis_nn_dims` in n, h, w, c order; unused fields are ignored. The inferred output rank must be 0..4, and output_dims must match its leading dimensions. A rank-0 output is one element. All dimension extents must be nonnegative. Input, index and output buffer byte counts must each fit INT32_MAX; this is a CORE capacity limit.\n\nAll metadata pointers are required. A NULL data, indices or output pointer is accepted only when that respective buffer has zero elements. Valid empty calls copy nothing. All supplied indices are checked, even for empty output. Coordinates must be nonnegative and below their corresponding axis extent. Invalid metadata or indices return ARG_ERROR without changing output.\n\nThis operation preserves all bits, including NaN payloads, signed zero and subnormals, independently of floating-point controls. Buffers must not overlap. No scratch buffer is required. Portable copies use existing MVE copy paths when enabled.",
          "examples": [],
          "id": "arm_gather_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_gather_f32",
          "params": [
            {
              "description": "Input data buffer.",
              "direction": "in",
              "name": "input_data",
              "type": "const float32_t *"
            },
            {
              "description": "Input shape in leading-dimension order.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Signed 32-bit indices.",
              "direction": "in",
              "name": "indices_data",
              "type": "const int32_t *"
            },
            {
              "description": "Indices shape in leading-dimension order.",
              "direction": "in",
              "name": "indices_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Ranks and gathering parameters.",
              "direction": "in",
              "name": "params",
              "type": "const cmsis_nn_gather_params *"
            },
            {
              "description": "Output data buffer.",
              "direction": "out",
              "name": "output_data",
              "type": "float32_t *"
            },
            {
              "description": "Inferred output shape in leading-dimension order.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "ARM_CMSIS_NN_SUCCESS or ARM_CMSIS_NN_ARG_ERROR."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_gather_f32(\n    const float32_t *input_data,\n    const cmsis_nn_dims *input_dims,\n    const int32_t *indices_data,\n    const cmsis_nn_dims *indices_dims,\n    const cmsis_nn_gather_params *params,\n    float32_t *output_data,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 2135,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L2135"
          },
          "summary": "Gather contiguous slices along an axis."
        },
        {
          "description": "Gather contiguous slices using coordinate tuples.\n\nData rank is 1..4 and indices rank is 1..4. The final indices dimension is the tuple width, which must be at least one. batch_dims is a TensorFlow-style extension (not a LiteRT builtin option): 0 <= batch_dims < indices_rank, batch_dims < params_rank, and batch_dims + tuple_width <= params_rank. Leading batch dimensions must match. The inferred output shape is indices_shape[:-1] + params_shape[batch_dims + tuple_width:]. Empty data with a nonempty index buffer is rejected.\n\nShapes use the first rank fields of `cmsis_nn_dims` in n, h, w, c order; unused fields are ignored. The inferred output rank must be 0..4, and output_dims must match its leading dimensions. A rank-0 output is one element. All dimension extents must be nonnegative. Input, index and output buffer byte counts must each fit INT32_MAX; this is a CORE capacity limit.\n\nAll metadata pointers are required. A NULL data, indices or output pointer is accepted only when that respective buffer has zero elements. Valid empty calls copy nothing. All supplied indices are checked, even for empty output. Coordinates must be nonnegative and below their corresponding axis extent. Invalid metadata or indices return ARG_ERROR without changing output.\n\nThis operation preserves all bits, including NaN payloads, signed zero and subnormals, independently of floating-point controls. Buffers must not overlap. No scratch buffer is required. Portable copies use existing MVE copy paths when enabled.",
          "examples": [],
          "id": "arm_gather_nd_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_gather_nd_f32",
          "params": [
            {
              "description": "Input data buffer.",
              "direction": "in",
              "name": "params_data",
              "type": "const float32_t *"
            },
            {
              "description": "Input shape in leading-dimension order.",
              "direction": "in",
              "name": "params_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Signed 32-bit indices.",
              "direction": "in",
              "name": "indices_data",
              "type": "const int32_t *"
            },
            {
              "description": "Indices shape in leading-dimension order.",
              "direction": "in",
              "name": "indices_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Ranks and gathering parameters.",
              "direction": "in",
              "name": "params",
              "type": "const cmsis_nn_gather_nd_params *"
            },
            {
              "description": "Output data buffer.",
              "direction": "out",
              "name": "output_data",
              "type": "float32_t *"
            },
            {
              "description": "Inferred output shape in leading-dimension order.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "ARM_CMSIS_NN_SUCCESS or ARM_CMSIS_NN_ARG_ERROR."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_gather_nd_f32(\n    const float32_t *params_data,\n    const cmsis_nn_dims *params_dims,\n    const int32_t *indices_data,\n    const cmsis_nn_dims *indices_dims,\n    const cmsis_nn_gather_nd_params *params,\n    float32_t *output_data,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 2180,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L2180"
          },
          "summary": "Gather contiguous slices using coordinate tuples."
        },
        {
          "description": "Gather contiguous slices along an axis.\n\nData rank is 1..4 and indices rank is 0..4; rank-0 indices contain one index. Negative axis normalizes by input_rank; negative batch_dims normalizes by coords_rank. After normalization, 0 <= batch_dims <= coords_rank and batch_dims <= axis < input_rank. Leading batch dimensions must match. The inferred output shape is input_shape[:axis] + indices_shape[batch_dims:] + input_shape[axis + 1:].\n\nShapes use the first rank fields of `cmsis_nn_dims` in n, h, w, c order; unused fields are ignored. The inferred output rank must be 0..4, and output_dims must match its leading dimensions. A rank-0 output is one element. All dimension extents must be nonnegative. Input, index and output buffer byte counts must each fit INT32_MAX; this is a CORE capacity limit.\n\nAll metadata pointers are required. A NULL data, indices or output pointer is accepted only when that respective buffer has zero elements. Valid empty calls copy nothing. All supplied indices are checked, even for empty output. Coordinates must be nonnegative and below their corresponding axis extent. Invalid metadata or indices return ARG_ERROR without changing output.\n\nThis operation preserves all bits, including NaN payloads, signed zero and subnormals, independently of floating-point controls. Buffers must not overlap. No scratch buffer is required. Portable copies use existing MVE copy paths when enabled.",
          "examples": [],
          "id": "arm_gather_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_gather_f16",
          "params": [
            {
              "description": "Input data buffer.",
              "direction": "in",
              "name": "input_data",
              "type": "const float16_t *"
            },
            {
              "description": "Input shape in leading-dimension order.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Signed 32-bit indices.",
              "direction": "in",
              "name": "indices_data",
              "type": "const int32_t *"
            },
            {
              "description": "Indices shape in leading-dimension order.",
              "direction": "in",
              "name": "indices_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Ranks and gathering parameters.",
              "direction": "in",
              "name": "params",
              "type": "const cmsis_nn_gather_params *"
            },
            {
              "description": "Output data buffer.",
              "direction": "out",
              "name": "output_data",
              "type": "float16_t *"
            },
            {
              "description": "Inferred output shape in leading-dimension order.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "ARM_CMSIS_NN_SUCCESS or ARM_CMSIS_NN_ARG_ERROR."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_gather_f16(\n    const float16_t *input_data,\n    const cmsis_nn_dims *input_dims,\n    const int32_t *indices_data,\n    const cmsis_nn_dims *indices_dims,\n    const cmsis_nn_gather_params *params,\n    float16_t *output_data,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 3866,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3866"
          },
          "summary": "Gather contiguous slices along an axis."
        },
        {
          "description": "Gather contiguous slices using coordinate tuples.\n\nData rank is 1..4 and indices rank is 1..4. The final indices dimension is the tuple width, which must be at least one. batch_dims is a TensorFlow-style extension (not a LiteRT builtin option): 0 <= batch_dims < indices_rank, batch_dims < params_rank, and batch_dims + tuple_width <= params_rank. Leading batch dimensions must match. The inferred output shape is indices_shape[:-1] + params_shape[batch_dims + tuple_width:]. Empty data with a nonempty index buffer is rejected.\n\nShapes use the first rank fields of `cmsis_nn_dims` in n, h, w, c order; unused fields are ignored. The inferred output rank must be 0..4, and output_dims must match its leading dimensions. A rank-0 output is one element. All dimension extents must be nonnegative. Input, index and output buffer byte counts must each fit INT32_MAX; this is a CORE capacity limit.\n\nAll metadata pointers are required. A NULL data, indices or output pointer is accepted only when that respective buffer has zero elements. Valid empty calls copy nothing. All supplied indices are checked, even for empty output. Coordinates must be nonnegative and below their corresponding axis extent. Invalid metadata or indices return ARG_ERROR without changing output.\n\nThis operation preserves all bits, including NaN payloads, signed zero and subnormals, independently of floating-point controls. Buffers must not overlap. No scratch buffer is required. Portable copies use existing MVE copy paths when enabled.",
          "examples": [],
          "id": "arm_gather_nd_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_gather_nd_f16",
          "params": [
            {
              "description": "Input data buffer.",
              "direction": "in",
              "name": "params_data",
              "type": "const float16_t *"
            },
            {
              "description": "Input shape in leading-dimension order.",
              "direction": "in",
              "name": "params_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Signed 32-bit indices.",
              "direction": "in",
              "name": "indices_data",
              "type": "const int32_t *"
            },
            {
              "description": "Indices shape in leading-dimension order.",
              "direction": "in",
              "name": "indices_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Ranks and gathering parameters.",
              "direction": "in",
              "name": "params",
              "type": "const cmsis_nn_gather_nd_params *"
            },
            {
              "description": "Output data buffer.",
              "direction": "out",
              "name": "output_data",
              "type": "float16_t *"
            },
            {
              "description": "Inferred output shape in leading-dimension order.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "ARM_CMSIS_NN_SUCCESS or ARM_CMSIS_NN_ARG_ERROR."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_gather_nd_f16(\n    const float16_t *params_data,\n    const cmsis_nn_dims *params_dims,\n    const int32_t *indices_data,\n    const cmsis_nn_dims *indices_dims,\n    const cmsis_nn_gather_nd_params *params,\n    float16_t *output_data,\n    const cmsis_nn_dims *output_dims\n)",
          "source": {
            "line": 3911,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3911"
          },
          "summary": "Gather contiguous slices using coordinate tuples."
        }
      ]
    }
  ],
  "name": "heliaCORE"
}
