{
  "$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": "NNSupport",
      "path": "heliaCORE.NNSupport",
      "submodules": [],
      "summary": "",
      "symbols": [
        {
          "description": "Transpose a floating-point tensor.",
          "examples": [],
          "id": "arm_transpose_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_transpose_f32",
          "params": [
            {
              "description": "Function context that may hold a temporary scratch buffer.",
              "direction": "inout",
              "name": "ctx",
              "type": "const cmsis_nn_context *"
            },
            {
              "description": "Transpose parameters, including permutation and layout information. num_dims must be in [1, 4] and perm must be a bijection over [0, num_dims - 1].",
              "direction": "in",
              "name": "params",
              "type": "const cmsis_nn_transpose_params_f32 *"
            },
            {
              "description": "Input tensor dimensions.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Pointer to the input tensor data.",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Output tensor dimensions. The first params->num_dims fields, taken in the order [N, H, W, C], must satisfy output[i] == input[perm[i]]; the function returns `ARM_CMSIS_NN_ARG_ERROR` and writes nothing if they do not.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Pointer to the output tensor data.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_transpose_f32(\n    const cmsis_nn_context *ctx,\n    const cmsis_nn_transpose_params_f32 *params,\n    const cmsis_nn_dims *input_dims,\n    const float32_t *input,\n    const cmsis_nn_dims *output_dims,\n    float32_t *output\n)",
          "source": {
            "line": 1135,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1135"
          },
          "summary": "Transpose a floating-point tensor."
        },
        {
          "description": "Concatenate tensors along the X axis.\n\nCall once per input tensor: `offset_x` selects where the input is stored along the X axis of the output tensor and must be advanced by `input_x` after each call. The output tensor must have the same height, channels and batch size as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f32_x",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f32_x",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            },
            {
              "description": "Width of the output tensor.",
              "direction": "in",
              "name": "output_x",
              "type": "int32_t"
            },
            {
              "description": "Offset on the X axis at which the input tensor is stored. Must be less than `output_x`.",
              "direction": "in",
              "name": "offset_x",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f32_x(\n    const float32_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float32_t *output,\n    int32_t output_x,\n    uint32_t offset_x\n)",
          "source": {
            "line": 1158,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1158"
          },
          "summary": "Concatenate tensors along the X axis."
        },
        {
          "description": "Concatenate tensors along the Y axis.\n\nCall once per input tensor: `offset_y` selects where the input is stored along the Y axis of the output tensor and must be advanced by `input_y` after each call. The output tensor must have the same width, channels and batch size as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f32_y",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f32_y",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            },
            {
              "description": "Height of the output tensor.",
              "direction": "in",
              "name": "output_y",
              "type": "int32_t"
            },
            {
              "description": "Offset on the Y axis at which the input tensor is stored. Must be less than `output_y`.",
              "direction": "in",
              "name": "offset_y",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f32_y(\n    const float32_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float32_t *output,\n    int32_t output_y,\n    uint32_t offset_y\n)",
          "source": {
            "line": 1183,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1183"
          },
          "summary": "Concatenate tensors along the Y axis."
        },
        {
          "description": "Concatenate tensors along the Z axis.\n\nCall once per input tensor: `offset_z` selects where the input is stored along the Z axis of the output tensor and must be advanced by `input_z` after each call. The output tensor must have the same width, height and batch size as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f32_z",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f32_z",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            },
            {
              "description": "Channels in the output tensor.",
              "direction": "in",
              "name": "output_z",
              "type": "int32_t"
            },
            {
              "description": "Offset on the Z axis at which the input tensor is stored. Must be less than `output_z`.",
              "direction": "in",
              "name": "offset_z",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f32_z(\n    const float32_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float32_t *output,\n    int32_t output_z,\n    uint32_t offset_z\n)",
          "source": {
            "line": 1208,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1208"
          },
          "summary": "Concatenate tensors along the Z axis."
        },
        {
          "description": "Concatenate tensors along the W axis.\n\nCall once per input tensor: `offset_w` selects where the input is stored along the W axis of the output tensor and must be advanced by `input_w` after each call. The output tensor must have the same width, height and channels as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f32_w",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f32_w",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            },
            {
              "description": "Offset on the W axis at which the input tensor is stored.",
              "direction": "in",
              "name": "offset_w",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f32_w(\n    const float32_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float32_t *output,\n    uint32_t offset_w\n)",
          "source": {
            "line": 1232,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1232"
          },
          "summary": "Concatenate tensors along the W axis."
        },
        {
          "description": "Concatenate float32 tensors of any rank along one axis.\n\nRank-agnostic sibling of the 4-D per-axis arm_concatenation_f32_{x,y,z,w} entry points: all inputs at once, any rank, any axis. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Input `s` has the output shape with `output_shape`[axis] replaced by `axis_sizes`[s]; the inputs are laid down in order along the axis. Inputs must not overlap the output. A dimension of 0 is accepted and copies nothing.",
          "examples": [],
          "id": "arm_concatenation_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f32",
          "params": [
            {
              "description": "Array of `num_inputs` pointers to the flattened (row-major) inputs.",
              "direction": "in",
              "name": "input_data",
              "type": "const float32_t *const *"
            },
            {
              "description": "Number of inputs (>= 1).",
              "direction": "in",
              "name": "num_inputs",
              "type": "int32_t"
            },
            {
              "description": "Array of length `num_inputs:` each input's extent along `axis`.",
              "direction": "in",
              "name": "axis_sizes",
              "type": "const int32_t *"
            },
            {
              "description": "Number of dimensions in `output_shape` (>= 1).",
              "direction": "in",
              "name": "output_dims",
              "type": "int32_t"
            },
            {
              "description": "Output shape; `output_shape`[axis] must equal the sum of `axis_sizes`.",
              "direction": "in",
              "name": "output_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Axis to concatenate along (0 <= axis < output_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the flattened output.",
              "direction": "out",
              "name": "output_data",
              "type": "float32_t *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (output untouched) on an invalid rank, axis, shape entry, size entry, size sum, NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_concatenation_f32(\n    const float32_t *const *input_data,\n    int32_t num_inputs,\n    const int32_t *axis_sizes,\n    int32_t output_dims,\n    const int32_t *output_shape,\n    int32_t axis,\n    float32_t *output_data\n)",
          "source": {
            "line": 1259,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1259"
          },
          "summary": "Concatenate float32 tensors of any rank along one axis."
        },
        {
          "description": "Split a float32 tensor of any rank into several tensors along one axis.\n\nInverse of arm_concatenation_f32; per-split lengths also cover SPLIT_V. Output `s` has the input shape with `input_shape`[axis] replaced by `split_dims`[s]. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Outputs must not overlap the input. A dimension of 0 is accepted and copies nothing.",
          "examples": [],
          "id": "arm_split_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_split_f32",
          "params": [
            {
              "description": "Pointer to the flattened (row-major) input.",
              "direction": "in",
              "name": "input_data",
              "type": "const float32_t *"
            },
            {
              "description": "Number of dimensions in `input_shape` (>= 1).",
              "direction": "in",
              "name": "input_dims",
              "type": "int32_t"
            },
            {
              "description": "Input shape; `input_shape`[axis] must equal the sum of `split_dims`.",
              "direction": "in",
              "name": "input_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Axis to split along (0 <= axis < input_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Number of outputs (>= 1).",
              "direction": "in",
              "name": "num_splits",
              "type": "int32_t"
            },
            {
              "description": "Array of length `num_splits:` each output's extent along `axis`.",
              "direction": "in",
              "name": "split_dims",
              "type": "const int32_t *"
            },
            {
              "description": "Array of `num_splits` pointers to the flattened outputs.",
              "direction": "out",
              "name": "output_data",
              "type": "float32_t *const *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (outputs untouched) on an invalid rank, axis, shape entry, split entry, split sum, NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_split_f32(\n    const float32_t *input_data,\n    int32_t input_dims,\n    const int32_t *input_shape,\n    int32_t axis,\n    int32_t num_splits,\n    const int32_t *split_dims,\n    float32_t *const *output_data\n)",
          "source": {
            "line": 1285,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1285"
          },
          "summary": "Split a float32 tensor of any rank into several tensors along one axis."
        },
        {
          "description": "Stack float32 tensors of equal shape along a new axis (TFLite PACK).\n\nThe output shape is `input_shape` with `num_inputs` inserted at `axis`; input `s` lands at index `s` of that axis. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Inputs must not overlap the output. Rank-0 inputs (`input_dims` == 0, `axis` == 0) stack into a vector.",
          "examples": [],
          "id": "arm_pack_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_pack_f32",
          "params": [
            {
              "description": "Array of `num_inputs` pointers to the flattened (row-major) inputs.",
              "direction": "in",
              "name": "input_data",
              "type": "const float32_t *const *"
            },
            {
              "description": "Number of inputs (>= 1).",
              "direction": "in",
              "name": "num_inputs",
              "type": "int32_t"
            },
            {
              "description": "Number of dimensions of each input (>= 0).",
              "direction": "in",
              "name": "input_dims",
              "type": "int32_t"
            },
            {
              "description": "Shape shared by every input (may be NULL when `input_dims` is 0).",
              "direction": "in",
              "name": "input_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Position of the new axis in the output (0 <= axis <= input_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the flattened output.",
              "direction": "out",
              "name": "output_data",
              "type": "float32_t *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (output untouched) on an invalid rank, axis, shape entry, NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_pack_f32(\n    const float32_t *const *input_data,\n    int32_t num_inputs,\n    int32_t input_dims,\n    const int32_t *input_shape,\n    int32_t axis,\n    float32_t *output_data\n)",
          "source": {
            "line": 1310,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1310"
          },
          "summary": "Stack float32 tensors of equal shape along a new axis (TFLite PACK)."
        },
        {
          "description": "Unstack a float32 tensor along one axis into `input_shape`[axis] tensors (TFLite UNPACK).\n\nInverse of arm_pack_f32: output `s` is the input with the axis fixed at index `s` and removed from the shape. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Outputs must not overlap the input.",
          "examples": [],
          "id": "arm_unpack_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_unpack_f32",
          "params": [
            {
              "description": "Pointer to the flattened (row-major) input.",
              "direction": "in",
              "name": "input_data",
              "type": "const float32_t *"
            },
            {
              "description": "Number of dimensions in `input_shape` (>= 1).",
              "direction": "in",
              "name": "input_dims",
              "type": "int32_t"
            },
            {
              "description": "Input shape; `input_shape`[axis] (>= 1) is the number of outputs.",
              "direction": "in",
              "name": "input_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Axis to unstack (0 <= axis < input_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Array of `input_shape`[axis] pointers to the flattened outputs.",
              "direction": "out",
              "name": "output_data",
              "type": "float32_t *const *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (outputs untouched) on an invalid rank, axis, shape entry, a zero-extent unstack axis (no outputs to produce), NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_unpack_f32(\n    const float32_t *input_data,\n    int32_t input_dims,\n    const int32_t *input_shape,\n    int32_t axis,\n    float32_t *const *output_data\n)",
          "source": {
            "line": 1334,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1334"
          },
          "summary": "Unstack a float32 tensor along one axis into inputshape[axis] tensors (TFLite UNPACK)."
        },
        {
          "description": "Apply batch normalization.\n\nComputes `output = input * scale[c] + bias[c]` for every element of channel `c`, with `scale` and `bias` holding the pre-folded per-channel factors.",
          "examples": [],
          "id": "arm_batch_norm_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_batch_norm_f32",
          "params": [
            {
              "description": "Pointer to the input tensor data. Format: [N, H, W, C].",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Pointer to the output tensor data, same shape as `input`.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            },
            {
              "description": "Per-channel scale, `input_dims->c` values.",
              "direction": "in",
              "name": "scale",
              "type": "const float32_t *"
            },
            {
              "description": "Per-channel bias, `input_dims->c` values.",
              "direction": "in",
              "name": "bias",
              "type": "const float32_t *"
            },
            {
              "description": "Input tensor dimensions. Every dimension must be positive.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Tensor layout selector. Must be `ARM_NN_LAYOUT_NHWC`.",
              "direction": "in",
              "name": "layout",
              "type": "arm_nn_tensor_layout"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_batch_norm_f32(\n    const float32_t *input,\n    float32_t *output,\n    const float32_t *scale,\n    const float32_t *bias,\n    const cmsis_nn_dims *input_dims,\n    arm_nn_tensor_layout layout\n)",
          "source": {
            "line": 1390,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1390"
          },
          "summary": "Apply batch normalization."
        },
        {
          "description": "Reshape by copying data without changing element order.",
          "examples": [],
          "id": "arm_reshape_f32",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_reshape_f32",
          "params": [
            {
              "description": "Pointer to the input tensor data.",
              "direction": "in",
              "name": "input",
              "type": "const float32_t *"
            },
            {
              "description": "Pointer to the output tensor data. Nothing is copied when it aliases `input`.",
              "direction": "out",
              "name": "output",
              "type": "float32_t *"
            },
            {
              "description": "Number of elements to copy.",
              "direction": "in",
              "name": "total_size",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_reshape_f32(const float32_t *input, float32_t *output, uint32_t total_size)",
          "source": {
            "line": 1404,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L1404"
          },
          "summary": "Reshape by copying data without changing element order."
        },
        {
          "description": "Transpose a floating-point tensor.",
          "examples": [],
          "id": "arm_transpose_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_transpose_f16",
          "params": [
            {
              "description": "Function context that may hold a temporary scratch buffer.",
              "direction": "inout",
              "name": "ctx",
              "type": "const cmsis_nn_context *"
            },
            {
              "description": "Transpose parameters, including permutation and layout information. num_dims must be in [1, 4] and perm must be a bijection over [0, num_dims - 1].",
              "direction": "in",
              "name": "params",
              "type": "const cmsis_nn_transpose_params_f16 *"
            },
            {
              "description": "Input tensor dimensions.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Pointer to the input tensor data.",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Output tensor dimensions. The first params->num_dims fields, taken in the order [N, H, W, C], must satisfy output[i] == input[perm[i]]; the function returns `ARM_CMSIS_NN_ARG_ERROR` and writes nothing if they do not.",
              "direction": "in",
              "name": "output_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Pointer to the output tensor data.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_transpose_f16(\n    const cmsis_nn_context *ctx,\n    const cmsis_nn_transpose_params_f16 *params,\n    const cmsis_nn_dims *input_dims,\n    const float16_t *input,\n    const cmsis_nn_dims *output_dims,\n    float16_t *output\n)",
          "source": {
            "line": 3161,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3161"
          },
          "summary": "Transpose a floating-point tensor."
        },
        {
          "description": "Concatenate tensors along the X axis.\n\nCall once per input tensor: `offset_x` selects where the input is stored along the X axis of the output tensor and must be advanced by `input_x` after each call. The output tensor must have the same height, channels and batch size as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f16_x",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f16_x",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            },
            {
              "description": "Width of the output tensor.",
              "direction": "in",
              "name": "output_x",
              "type": "int32_t"
            },
            {
              "description": "Offset on the X axis at which the input tensor is stored. Must be less than `output_x`.",
              "direction": "in",
              "name": "offset_x",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f16_x(\n    const float16_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float16_t *output,\n    int32_t output_x,\n    uint32_t offset_x\n)",
          "source": {
            "line": 3171,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3171"
          },
          "summary": "Concatenate tensors along the X axis."
        },
        {
          "description": "Concatenate tensors along the Y axis.\n\nCall once per input tensor: `offset_y` selects where the input is stored along the Y axis of the output tensor and must be advanced by `input_y` after each call. The output tensor must have the same width, channels and batch size as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f16_y",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f16_y",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            },
            {
              "description": "Height of the output tensor.",
              "direction": "in",
              "name": "output_y",
              "type": "int32_t"
            },
            {
              "description": "Offset on the Y axis at which the input tensor is stored. Must be less than `output_y`.",
              "direction": "in",
              "name": "offset_y",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f16_y(\n    const float16_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float16_t *output,\n    int32_t output_y,\n    uint32_t offset_y\n)",
          "source": {
            "line": 3183,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3183"
          },
          "summary": "Concatenate tensors along the Y axis."
        },
        {
          "description": "Concatenate tensors along the Z axis.\n\nCall once per input tensor: `offset_z` selects where the input is stored along the Z axis of the output tensor and must be advanced by `input_z` after each call. The output tensor must have the same width, height and batch size as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f16_z",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f16_z",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            },
            {
              "description": "Channels in the output tensor.",
              "direction": "in",
              "name": "output_z",
              "type": "int32_t"
            },
            {
              "description": "Offset on the Z axis at which the input tensor is stored. Must be less than `output_z`.",
              "direction": "in",
              "name": "offset_z",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f16_z(\n    const float16_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float16_t *output,\n    int32_t output_z,\n    uint32_t offset_z\n)",
          "source": {
            "line": 3195,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3195"
          },
          "summary": "Concatenate tensors along the Z axis."
        },
        {
          "description": "Concatenate tensors along the W axis.\n\nCall once per input tensor: `offset_w` selects where the input is stored along the W axis of the output tensor and must be advanced by `input_w` after each call. The output tensor must have the same width, height and channels as every input tensor.",
          "examples": [],
          "id": "arm_concatenation_f16_w",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f16_w",
          "params": [
            {
              "description": "Pointer to the input tensor. Must not overlap the output tensor.",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Width of the input tensor.",
              "direction": "in",
              "name": "input_x",
              "type": "int32_t"
            },
            {
              "description": "Height of the input tensor.",
              "direction": "in",
              "name": "input_y",
              "type": "int32_t"
            },
            {
              "description": "Channels in the input tensor.",
              "direction": "in",
              "name": "input_z",
              "type": "int32_t"
            },
            {
              "description": "Batch size in the input tensor.",
              "direction": "in",
              "name": "input_w",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the output tensor.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            },
            {
              "description": "Offset on the W axis at which the input tensor is stored.",
              "direction": "in",
              "name": "offset_w",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_concatenation_f16_w(\n    const float16_t *input,\n    int32_t input_x,\n    int32_t input_y,\n    int32_t input_z,\n    int32_t input_w,\n    float16_t *output,\n    uint32_t offset_w\n)",
          "source": {
            "line": 3207,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3207"
          },
          "summary": "Concatenate tensors along the W axis."
        },
        {
          "description": "Concatenate float32 tensors of any rank along one axis.\n\nRank-agnostic sibling of the 4-D per-axis arm_concatenation_f32_{x,y,z,w} entry points: all inputs at once, any rank, any axis. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Input `s` has the output shape with `output_shape`[axis] replaced by `axis_sizes`[s]; the inputs are laid down in order along the axis. Inputs must not overlap the output. A dimension of 0 is accepted and copies nothing.",
          "examples": [],
          "id": "arm_concatenation_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_concatenation_f16",
          "params": [
            {
              "description": "Array of `num_inputs` pointers to the flattened (row-major) inputs.",
              "direction": "in",
              "name": "input_data",
              "type": "const float16_t *const *"
            },
            {
              "description": "Number of inputs (>= 1).",
              "direction": "in",
              "name": "num_inputs",
              "type": "int32_t"
            },
            {
              "description": "Array of length `num_inputs:` each input's extent along `axis`.",
              "direction": "in",
              "name": "axis_sizes",
              "type": "const int32_t *"
            },
            {
              "description": "Number of dimensions in `output_shape` (>= 1).",
              "direction": "in",
              "name": "output_dims",
              "type": "int32_t"
            },
            {
              "description": "Output shape; `output_shape`[axis] must equal the sum of `axis_sizes`.",
              "direction": "in",
              "name": "output_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Axis to concatenate along (0 <= axis < output_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the flattened output.",
              "direction": "out",
              "name": "output_data",
              "type": "float16_t *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (output untouched) on an invalid rank, axis, shape entry, size entry, size sum, NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_concatenation_f16(\n    const float16_t *const *input_data,\n    int32_t num_inputs,\n    const int32_t *axis_sizes,\n    int32_t output_dims,\n    const int32_t *output_shape,\n    int32_t axis,\n    float16_t *output_data\n)",
          "source": {
            "line": 3218,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3218"
          },
          "summary": "Concatenate float32 tensors of any rank along one axis."
        },
        {
          "description": "Stack float32 tensors of equal shape along a new axis (TFLite PACK).\n\nThe output shape is `input_shape` with `num_inputs` inserted at `axis`; input `s` lands at index `s` of that axis. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Inputs must not overlap the output. Rank-0 inputs (`input_dims` == 0, `axis` == 0) stack into a vector.",
          "examples": [],
          "id": "arm_pack_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_pack_f16",
          "params": [
            {
              "description": "Array of `num_inputs` pointers to the flattened (row-major) inputs.",
              "direction": "in",
              "name": "input_data",
              "type": "const float16_t *const *"
            },
            {
              "description": "Number of inputs (>= 1).",
              "direction": "in",
              "name": "num_inputs",
              "type": "int32_t"
            },
            {
              "description": "Number of dimensions of each input (>= 0).",
              "direction": "in",
              "name": "input_dims",
              "type": "int32_t"
            },
            {
              "description": "Shape shared by every input (may be NULL when `input_dims` is 0).",
              "direction": "in",
              "name": "input_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Position of the new axis in the output (0 <= axis <= input_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Pointer to the flattened output.",
              "direction": "out",
              "name": "output_data",
              "type": "float16_t *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (output untouched) on an invalid rank, axis, shape entry, NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_pack_f16(\n    const float16_t *const *input_data,\n    int32_t num_inputs,\n    int32_t input_dims,\n    const int32_t *input_shape,\n    int32_t axis,\n    float16_t *output_data\n)",
          "source": {
            "line": 3229,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3229"
          },
          "summary": "Stack float32 tensors of equal shape along a new axis (TFLite PACK)."
        },
        {
          "description": "Unstack a float32 tensor along one axis into `input_shape`[axis] tensors (TFLite UNPACK).\n\nInverse of arm_pack_f32: output `s` is the input with the axis fixed at index `s` and removed from the shape. Bit copy, NaN/Inf/-0/subnormal payloads preserved. Outputs must not overlap the input.",
          "examples": [],
          "id": "arm_unpack_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_unpack_f16",
          "params": [
            {
              "description": "Pointer to the flattened (row-major) input.",
              "direction": "in",
              "name": "input_data",
              "type": "const float16_t *"
            },
            {
              "description": "Number of dimensions in `input_shape` (>= 1).",
              "direction": "in",
              "name": "input_dims",
              "type": "int32_t"
            },
            {
              "description": "Input shape; `input_shape`[axis] (>= 1) is the number of outputs.",
              "direction": "in",
              "name": "input_shape",
              "type": "const int32_t *"
            },
            {
              "description": "Axis to unstack (0 <= axis < input_dims).",
              "direction": "in",
              "name": "axis",
              "type": "int32_t"
            },
            {
              "description": "Array of `input_shape`[axis] pointers to the flattened outputs.",
              "direction": "out",
              "name": "output_data",
              "type": "float16_t *const *"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS`, or `ARM_CMSIS_NN_ARG_ERROR` (outputs untouched) on an invalid rank, axis, shape entry, a zero-extent unstack axis (no outputs to produce), NULL pointer or an element count above INT32_MAX."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_unpack_f16(\n    const float16_t *input_data,\n    int32_t input_dims,\n    const int32_t *input_shape,\n    int32_t axis,\n    float16_t *const *output_data\n)",
          "source": {
            "line": 3239,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3239"
          },
          "summary": "Unstack a float32 tensor along one axis into inputshape[axis] tensors (TFLite UNPACK)."
        },
        {
          "description": "Apply batch normalization.\n\nComputes `output = input * scale[c] + bias[c]` for every element of channel `c`, with `scale` and `bias` holding the pre-folded per-channel factors.",
          "examples": [],
          "id": "arm_batch_norm_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_batch_norm_f16",
          "params": [
            {
              "description": "Pointer to the input tensor data. Format: [N, H, W, C].",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Pointer to the output tensor data, same shape as `input`.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            },
            {
              "description": "Per-channel scale, `input_dims->c` values.",
              "direction": "in",
              "name": "scale",
              "type": "const float16_t *"
            },
            {
              "description": "Per-channel bias, `input_dims->c` values.",
              "direction": "in",
              "name": "bias",
              "type": "const float16_t *"
            },
            {
              "description": "Input tensor dimensions. Every dimension must be positive.",
              "direction": "in",
              "name": "input_dims",
              "type": "const cmsis_nn_dims *"
            },
            {
              "description": "Tensor layout selector. Must be `ARM_NN_LAYOUT_NHWC`.",
              "direction": "in",
              "name": "layout",
              "type": "arm_nn_tensor_layout"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments."
            }
          ],
          "signature": "arm_cmsis_nn_status arm_batch_norm_f16(\n    const float16_t *input,\n    float16_t *output,\n    const float16_t *scale,\n    const float16_t *bias,\n    const cmsis_nn_dims *input_dims,\n    arm_nn_tensor_layout layout\n)",
          "source": {
            "line": 3272,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3272"
          },
          "summary": "Apply batch normalization."
        },
        {
          "description": "Reshape by copying data without changing element order.",
          "examples": [],
          "id": "arm_reshape_f16",
          "kind": "function",
          "language": "c",
          "members": [],
          "name": "arm_reshape_f16",
          "params": [
            {
              "description": "Pointer to the input tensor data.",
              "direction": "in",
              "name": "input",
              "type": "const float16_t *"
            },
            {
              "description": "Pointer to the output tensor data. Nothing is copied when it aliases `input`.",
              "direction": "out",
              "name": "output",
              "type": "float16_t *"
            },
            {
              "description": "Number of elements to copy.",
              "direction": "in",
              "name": "total_size",
              "type": "uint32_t"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "void arm_reshape_f16(const float16_t *input, float16_t *output, uint32_t total_size)",
          "source": {
            "line": 3282,
            "path": "Include/arm_nnfunctions_flt.h",
            "url": "https://github.com/AmbiqAI/ns-cmsis-nn/blob/5f3fed9f21a57390cc7f00f77a37db8f5f110cb8/Include/arm_nnfunctions_flt.h#L3282"
          },
          "summary": "Reshape by copying data without changing element order."
        }
      ]
    }
  ],
  "name": "heliaCORE"
}
