{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "cf2246a7ad439fa38d57462118e7840e5497a685",
    "tool": "pyref",
    "version": "1.7.3"
  },
  "language": "python",
  "modules": [
    {
      "description": "",
      "name": "AotOperator",
      "path": "helia_aot.aot.operators.operator.AotOperator",
      "submodules": [],
      "summary": "",
      "symbols": [
        {
          "description": "Base class for the AOT lowering of a single AIR operator.\n\nOne instance wraps one ``AirOperator`` and drives it through the\nper-operator half of the conversion: ``resolve()`` validates the operator\nagainst the target platform and materializes any scratch or constant\ntensors, ``plan()`` reports what the memory planner must reserve, and\n``emit()`` renders the operator's C source. Subclasses implement those steps\nfor one ``TYPE`` and are registered into\n``RegistryContext.aot_operator_classes`` (see\n``register_default_aot_operators`` for the built-ins).\n\nThe upper-case class attributes below are the declarative contract the rest\nof the pipeline reads. ``AotMeta`` rejects reassignment of an upper-case\nname that a class declares in its own body, so a subclass that inherits\n``SUPPORTED_DTYPES`` without redeclaring it can still have it assigned at\nruntime.",
          "examples": [],
          "id": "helia_aot.aot.operators.operator.AotOperator",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "AIR operator type this class lowers, and its registry key.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.TYPE",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "TYPE",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "TYPE: AirOpType = AirOpType.OPERATOR",
              "source": {
                "line": 155,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L155"
              },
              "summary": ""
            },
            {
              "description": "Declared optimization contract (interning, static\nreordering, shared init); see ``OpCapability``.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.CAPABILITIES",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "CAPABILITIES",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CAPABILITIES: OpCapability = OpCapability.NONE",
              "source": {
                "line": 163,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L163"
              },
              "summary": ""
            },
            {
              "description": "Whether the float lowering dispatches to a\ngated ns-cmsis-nn float kernel.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.USES_CMSIS_FLOAT_KERNEL",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "USES_CMSIS_FLOAT_KERNEL",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "USES_CMSIS_FLOAT_KERNEL: bool = False",
              "source": {
                "line": 178,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L178"
              },
              "summary": ""
            },
            {
              "description": "Float dtypes that dependency applies to.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.CMSIS_FLOAT_KERNEL_DTYPES",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "CMSIS_FLOAT_KERNEL_DTYPES",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CMSIS_FLOAT_KERNEL_DTYPES: frozenset = frozenset({np.float16, np.float32})",
              "source": {
                "line": 184,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L184"
              },
              "summary": ""
            },
            {
              "description": "Minimum ns-cmsis-nn version the float\nlowering requires, as ``(major, minor, patch)``, or ``None`` for the\nmodule-wide floor.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.MIN_CMSIS_NN_VERSION_FLOAT",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "MIN_CMSIS_NN_VERSION_FLOAT",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "MIN_CMSIS_NN_VERSION_FLOAT: tuple[int, int, int] | None = None",
              "source": {
                "line": 197,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L197"
              },
              "summary": ""
            },
            {
              "description": "Declared ``cmsis_nn_context::buf`` contract; see\n``CtxBufUsage``.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.CTX_BUF_USAGE",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "CTX_BUF_USAGE",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CTX_BUF_USAGE: CtxBufUsage | None = None",
              "source": {
                "line": 206,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L206"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.CTX_BUF_BACKING_TENSOR_NAMES",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "CTX_BUF_BACKING_TENSOR_NAMES",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CTX_BUF_BACKING_TENSOR_NAMES: tuple[str, ...] = ()",
              "source": {
                "line": 215,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L215"
              },
              "summary": ""
            },
            {
              "description": "Tensor dtypes the operator accepts, or ``None`` when\nthe operator imposes no dtype gate of its own.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.SUPPORTED_DTYPES",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "SUPPORTED_DTYPES",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "SUPPORTED_DTYPES: tuple[type, ...] | None = None",
              "source": {
                "line": 232,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L232"
              },
              "summary": ""
            },
            {
              "description": "User-facing sentences describing the limits ``validate()``\nenforces.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.RESTRICTIONS",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "RESTRICTIONS",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "RESTRICTIONS: tuple[str, ...] = ()",
              "source": {
                "line": 243,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L243"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.kInputTensorIndex",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "kInputTensorIndex",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "kInputTensorIndex: int = 0",
              "source": {
                "line": 248,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L248"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.kOutputTensorIndex",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "kOutputTensorIndex",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "kOutputTensorIndex: int = 0",
              "source": {
                "line": 249,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L249"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.kWeightsTensorName",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "kWeightsTensorName",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "kWeightsTensorName: str = 'weights'",
              "source": {
                "line": 250,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L250"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.kMultiplierTensorName",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "kMultiplierTensorName",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "kMultiplierTensorName: str = 'multiplier'",
              "source": {
                "line": 251,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L251"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.kShiftTensorName",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "kShiftTensorName",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "kShiftTensorName: str = 'shift'",
              "source": {
                "line": 252,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L252"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.op",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "op",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "op: AirOperator = op",
              "source": {
                "line": 284,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L284"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.model",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "model",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "model: AirModel = model",
              "source": {
                "line": 285,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L285"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.platform",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "platform",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "platform: SocPlatform = platform",
              "source": {
                "line": 286,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L286"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.prefix",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "prefix",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "prefix: str = prefix",
              "source": {
                "line": 287,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L287"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.attributes",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "attributes",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "attributes: OperatorAttributes = OperatorAttributes(**attributes or {})",
              "source": {
                "line": 288,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L288"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.requested_attribute_keys",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "requested_attribute_keys",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "requested_attribute_keys: frozenset[str] = frozenset(attributes or {})",
              "source": {
                "line": 291,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L291"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.resolved_knobs",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "resolved_knobs",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "resolved_knobs: dict[str, str] = default_knob_values()",
              "source": {
                "line": 295,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L295"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.schedule",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "schedule",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "schedule: ScheduleMode = ScheduleMode.table",
              "source": {
                "line": 300,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L300"
              },
              "summary": ""
            },
            {
              "description": "Return the operator ID.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.id",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "id",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "id: str",
              "source": {
                "line": 345,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L345"
              },
              "summary": "Return the operator ID."
            },
            {
              "description": "Return the operator name.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.name",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "name",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "name: str",
              "source": {
                "line": 350,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L350"
              },
              "summary": "Return the operator name."
            },
            {
              "description": "Whether this operator's run code is placed in ITCM.\n\nTrue only when ``code_placement`` is ``ITCM`` and the target has ITCM;\nthe operator handler warns about requests that cannot be honored.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.code_in_itcm",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "code_in_itcm",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "code_in_itcm: bool",
              "source": {
                "line": 355,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L355"
              },
              "summary": "Whether this operator's run code is placed in ITCM."
            },
            {
              "description": "Name of the ``<prefix>_platform.h`` macro that places run code in ITCM.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.code_placement_macro",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "code_placement_macro",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "code_placement_macro: str",
              "source": {
                "line": 364,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L364"
              },
              "summary": "Name of the <prefix>platform.h macro that places run code in ITCM."
            },
            {
              "description": "Return the input tensors.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.input_tensors",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "input_tensors",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "input_tensors: list[AirTensor]",
              "source": {
                "line": 394,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L394"
              },
              "summary": "Return the input tensors."
            },
            {
              "description": "Return the output tensors.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.output_tensors",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "output_tensors",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "output_tensors: list[AirTensor]",
              "source": {
                "line": 399,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L399"
              },
              "summary": "Return the output tensors."
            },
            {
              "description": "Get all local tensors used by the operator.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.local_tensors",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "local_tensors",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "local_tensors: list[AirTensor]",
              "source": {
                "line": 404,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L404"
              },
              "summary": "Get all local tensors used by the operator."
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.QUANTIZED_FILTER_CHANNEL_AXIS",
              "kind": "constant",
              "language": "python",
              "members": [],
              "name": "QUANTIZED_FILTER_CHANNEL_AXIS",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "QUANTIZED_FILTER_CHANNEL_AXIS: int | None = None",
              "source": {
                "line": 641,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L641"
              },
              "summary": ""
            },
            {
              "description": "Whether this operator emits a per-instance ``_init`` function.\n\nOperators whose initialization is a no-op may opt out by returning\n``False``. When an operator opts out, it must not emit an ``_init``\nfunction/declaration in its templates, and the dispatch table records a\n``NULL`` init slot (the model init loop skips the call while preserving\nthe init callback contract). Defaults to ``True`` so existing operators\nkeep emitting their own init unchanged.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.has_init",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "has_init",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "has_init: bool",
              "source": {
                "line": 946,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L946"
              },
              "summary": "Whether this operator emits a per-instance init function."
            },
            {
              "description": "Return the operator's effective optimization capabilities.\n\nThe effective set is the declared :attr:`CAPABILITIES` widened by the\ncapabilities *implied* by the operator's runtime behavior, so the legacy\nseams remain the source of truth during migration and no operator has to\ndeclare a capability twice:\n\n- ``not self.has_init`` implies :attr:`OpCapability.STATELESS`.\n- A non-empty :meth:`shared_kernel_helpers` or\n  :meth:`shared_activation_helpers` implies\n  :attr:`OpCapability.DESCRIPTOR_DRIVEN` and\n  :attr:`OpCapability.SHARED_KERNEL`.\n\nBecause some seams are dtype-dependent (e.g. fully-connected only routes\nthrough a shared kernel for int8 per-channel quantization), this is an\ninstance property rather than a class constant: it reflects the concrete\nresolved operator. It performs no model mutation and does not change\nemitted code.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.capabilities",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "capabilities",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "capabilities: OpCapability",
              "source": {
                "line": 963,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L963"
              },
              "summary": "Return the operator's effective optimization capabilities."
            },
            {
              "description": "Return the direct shared-kernel call target for static scheduling.\n\nUnder ``static`` scheduling the model schedule can call a descriptor\ndriven operator's shared kernel helper directly, eliding the thin\nper-node ``_run`` thunk (the main ``.text`` reclaim described in RFC\n0003 Stage 4). This is only valid for operators whose ``_run`` body is\nexactly ``return helper(ctx, &desc);`` -- i.e. operators that route\nthrough a single shared *kernel* helper with the uniform\n``helper(ctx, const desc_t *)`` signature (``ADD``/``MUL``/per-channel\nint8 ``FULLY_CONNECTED``). Shared *activation* helpers marshal flattened\narguments and keep mutable file-scope state, so they are intentionally\nexcluded and keep their ``_run`` thunk.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.direct_dispatch",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "direct_dispatch",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "direct_dispatch: tuple[str, str] | None",
              "source": {
                "line": 995,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L995"
              },
              "summary": "Return the direct shared-kernel call target for static scheduling."
            },
            {
              "description": "Set the resolved optimization knob values before ``resolve()``.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.set_knobs",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "set_knobs",
              "params": [
                {
                  "description": "Knob name to resolved value, for every knob.",
                  "name": "values",
                  "type": "dict[str, str]"
                }
              ],
              "raises": [
                {
                  "description": "When a knob is missing or unknown, or a value is\n``auto`` or not one of the knob's values.",
                  "type": "ValueError"
                }
              ],
              "returns": [],
              "signature": "set_knobs(values: dict[str, str]) -> None",
              "source": {
                "line": 302,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L302"
              },
              "summary": "Set the resolved optimization knob values before resolve()."
            },
            {
              "description": "Whether a knob's alternatives would change this operator's code.\n\nOperators that implement a knob override this; the base operator has\nno knobs.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.knob_applicability",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "knob_applicability",
              "params": [
                {
                  "description": "The knob's name.",
                  "name": "name",
                  "type": "str"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "tuple[bool, str | None] | None: ``(applicable, reason when not)``,",
                  "type": "tuple[bool, str | None] | None"
                },
                {
                  "description": "or None when the knob does not exist for this operator.",
                  "type": "tuple[bool, str | None] | None"
                }
              ],
              "signature": "knob_applicability(name: str) -> tuple[bool, str | None] | None",
              "source": {
                "line": 319,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L319"
              },
              "summary": "Whether a knob's alternatives would change this operator's code."
            },
            {
              "description": "Choices that change numerics or speed but are not knobs yet.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.fixed_choices",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "fixed_choices",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "dict[str, tuple[str, FixedSetBy]]: Choice name to ``(value, set_by)``,",
                  "type": "dict[str, tuple[str, FixedSetBy]]"
                },
                {
                  "description": "where ``set_by`` is ``attribute``, ``default``, ``heuristic`` or",
                  "type": "dict[str, tuple[str, FixedSetBy]]"
                },
                {
                  "description": "``knob``.",
                  "type": "dict[str, tuple[str, FixedSetBy]]"
                }
              ],
              "signature": "fixed_choices() -> dict[str, tuple[str, FixedSetBy]]",
              "source": {
                "line": 334,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L334"
              },
              "summary": "Choices that change numerics or speed but are not knobs yet."
            },
            {
              "description": "Return ``self.op.options`` checked against the operator's options class.\n\n``AirOperator.options`` is typed as the ``AirOperatorOptions`` marker\nbase; each AOT operator knows its concrete class and reads through\nthis so field access is type-checked and a mismatch (a mis-registered\nparser, a hand-built graph) fails with a clear error.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.typed_options",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "typed_options",
              "params": [
                {
                  "description": "The ``AirXxxOptions`` class this operator expects.",
                  "name": "options_type",
                  "type": "type[_OptionsT]"
                }
              ],
              "raises": [
                {
                  "description": "If the operator carries options of a different class.",
                  "type": "TypeError"
                }
              ],
              "returns": [
                {
                  "description": "The options object, typed as ``options_type``.",
                  "type": "_OptionsT"
                }
              ],
              "signature": "typed_options(options_type: type[_OptionsT]) -> _OptionsT",
              "source": {
                "line": 368,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L368"
              },
              "summary": "Return self.op.options checked against the operator's options class."
            },
            {
              "description": "Numpy float scalar types present on this operator's IO tensors.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.float_io_dtypes",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "float_io_dtypes",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "set[type]: The subset of ``{np.float16, np.float32}`` referenced by",
                  "type": "set[type]"
                },
                {
                  "description": "the operator's input or output tensors.",
                  "type": "set[type]"
                }
              ],
              "signature": "float_io_dtypes() -> set[type]",
              "source": {
                "line": 408,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L408"
              },
              "summary": "Numpy float scalar types present on this operator's IO tensors."
            },
            {
              "description": "Float dtypes for which this operator needs the ns-cmsis-nn float API.\n\nA returned dtype means the emitted C references the float-only\n``arm_nnfunctions_flt.h`` API (a gated ``arm_*_f32`` / ``arm_*_f16``\nkernel or the ``float16_t`` / ``float32_t`` types it introduces) for\nthat precision, so the ns-cmsis-nn build must enable\n``ARM_NN_ENABLE_F32`` / ``ARM_NN_ENABLE_F16``.\n\nThe base implementation derives the set from\n:attr:`USES_CMSIS_FLOAT_KERNEL`: operators that dispatch to a gated\nfloat kernel advertise every float dtype on their IO; everything else\n(integer kernels, byte movers, portable conversions) advertises none.\nOperators with a per-instance dependency override this method.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.cmsis_float_dependencies",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "cmsis_float_dependencies",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "set[type]: Subset of ``{np.float16, np.float32}`` requiring the",
                  "type": "set[type]"
                },
                {
                  "description": "ns-cmsis-nn float API.",
                  "type": "set[type]"
                }
              ],
              "signature": "cmsis_float_dependencies() -> set[type]",
              "source": {
                "line": 422,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L422"
              },
              "summary": "Float dtypes for which this operator needs the ns-cmsis-nn float API."
            },
            {
              "description": "Minimum ns-cmsis-nn version this operator instance requires.\n\nThe base implementation applies :attr:`MIN_CMSIS_NN_VERSION_FLOAT`\nonly when the operator actually takes its float path, reusing the\nsame :meth:`cmsis_float_dependencies` contract that drives the float\nheader include and the ``ARM_NN_ENABLE_F32`` / ``ARM_NN_ENABLE_F16``\nbuild defines. An int8 ABS therefore imposes no floor of its own while\nan fp32 ABS does; a declaration only raises a module's requirement when\nit is above the repository-wide ``CMSIS_NN_VERSION``.\n\nOperators with an unconditional floor, or one that varies by\nsomething other than float dispatch, override this.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.cmsis_nn_version_requirement",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "cmsis_nn_version_requirement",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "tuple[int, int, int] | None: ``(major, minor, patch)``, or",
                  "type": "tuple[int, int, int] | None"
                },
                {
                  "description": "``None`` when the module-wide floor already suffices.",
                  "type": "tuple[int, int, int] | None"
                }
              ],
              "signature": "cmsis_nn_version_requirement() -> tuple[int, int, int] | None",
              "source": {
                "line": 445,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L445"
              },
              "summary": "Minimum ns-cmsis-nn version this operator instance requires."
            },
            {
              "description": "The ns-cmsis-nn function this operator calls, when it selects one kernel.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.kernel_entry",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "kernel_entry",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "str | None: The C function name, or None for an operator without a",
                  "type": "str | None"
                },
                {
                  "description": "single selected kernel.",
                  "type": "str | None"
                }
              ],
              "signature": "kernel_entry() -> str | None",
              "source": {
                "line": 473,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L473"
              },
              "summary": "The ns-cmsis-nn function this operator calls, when it selects one kernel."
            },
            {
              "description": "Get a local tensor by name.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.get_local_tensor",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_local_tensor",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_local_tensor(name: str) -> AirTensor",
              "source": {
                "line": 482,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L482"
              },
              "summary": "Get a local tensor by name."
            },
            {
              "description": "`staticmethod`\n\nReturn a tensor's quantization zero point, defaulting to 0.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.tensor_zero_point",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "tensor_zero_point",
              "params": [
                {
                  "description": "The tensor to inspect.",
                  "name": "tensor",
                  "type": "AirTensor"
                },
                {
                  "default": "0",
                  "description": "The zero-point index to read (per-tensor quant uses 0).",
                  "name": "index",
                  "type": "int"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "The integer zero point, or 0 when the tensor is unquantized.",
                  "type": "int"
                }
              ],
              "signature": "tensor_zero_point(tensor: AirTensor, index: int = 0) -> int",
              "source": {
                "line": 580,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L580"
              },
              "summary": "Return a tensor's quantization zero point, defaulting to 0."
            },
            {
              "description": "Promote an operator-local constant array into a model tensor.\n\nThis routes operator metadata (e.g. per-channel quantization tables)\nthrough the same machinery as ordinary constants: memory planning,\nduplicate-constant interning (storage dedup), cold/staged residency,\nand uniform tensor-pointer resolution. The tensor is registered under\n``op.named_tensors[name]`` so templates can reference it via\n``ctx->tensor_ptrs[...]`` like any other tensor.\n\nThe operation is idempotent: a previously interned tensor with the same\ndeterministic id is replaced.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.intern_constant_array",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "intern_constant_array",
              "params": [
                {
                  "description": "Local tensor name; also used to build the deterministic id.",
                  "name": "name",
                  "type": "str"
                },
                {
                  "description": "Array payload, stored as a contiguous copy.",
                  "name": "data",
                  "type": "np.ndarray"
                },
                {
                  "default": "AirTensorKind.CONSTANT",
                  "description": "Tensor kind/bucket. Defaults to ``CONSTANT``.",
                  "name": "role",
                  "type": "AirTensorKind"
                },
                {
                  "default": "None",
                  "description": "Optional alignment hint in bytes.",
                  "name": "alignment",
                  "type": "int | None"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "The id of the registered tensor.",
                  "name": "TensorId",
                  "type": "TensorId"
                }
              ],
              "signature": "intern_constant_array(\n    name: str,\n    data: np.ndarray,\n    *,\n    role: AirTensorKind = AirTensorKind.CONSTANT,\n    alignment: int | None = None,\n) -> TensorId",
              "source": {
                "line": 596,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L596"
              },
              "summary": "Promote an operator-local constant array into a model tensor."
            },
            {
              "description": "Validate the operator configuration.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.validate",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "validate",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "validate()",
              "source": {
                "line": 721,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L721"
              },
              "summary": "Validate the operator configuration."
            },
            {
              "description": "Public entry point—only runs once, even if called repeatedly.\n\nThis method validates the AIR operator and performs any model mutations needed.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.resolve",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "resolve",
              "params": [],
              "raises": [
                {
                  "description": "If the operator declares that a kernel reads through a\n``cmsis_nn_context`` buffer but allocated no backing for it\n(see :meth:`_assert_ctx_buf_backed`).",
                  "type": "ValueError"
                }
              ],
              "returns": [],
              "signature": "resolve()",
              "source": {
                "line": 776,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L776"
              },
              "summary": "Public entry point—only runs once, even if called repeatedly."
            },
            {
              "description": "Override this in subclasses to do the actual work.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.on_resolve",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "on_resolve",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "on_resolve()",
              "source": {
                "line": 790,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L790"
              },
              "summary": "Override this in subclasses to do the actual work."
            },
            {
              "description": "Whether this concrete operator's lowering dereferences ``ctx->buf``.\n\nOnly meaningful for operators declaring\n:attr:`CtxBufUsage.CONDITIONAL`, which MUST override this. Evaluate it\nagainst the same inputs the operator's scratch sizing uses (dtype,\noptions, platform capability) so the two can never disagree: the guard\nexists precisely to catch the case where sizing says \"0 bytes\" and the\ndispatched kernel says \"I read that buffer\".",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.ctx_buf_required",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "ctx_buf_required",
              "params": [],
              "raises": [
                {
                  "description": "If called on an operator that did not declare\n:attr:`CtxBufUsage.CONDITIONAL` and override this method.",
                  "type": "NotImplementedError"
                }
              ],
              "returns": [
                {
                  "description": "``True`` if at least one kernel this operator can dispatch reads or",
                  "type": "bool"
                },
                {
                  "description": "writes through ``ctx->buf``.",
                  "type": "bool"
                }
              ],
              "signature": "ctx_buf_required() -> bool",
              "source": {
                "line": 794,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L794"
              },
              "summary": "Whether this concrete operator's lowering dereferences ctx->buf."
            },
            {
              "description": "Operator planning step.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.plan",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "plan",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "plan()",
              "source": {
                "line": 941,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L941"
              },
              "summary": "Operator planning step."
            },
            {
              "description": "Return the shared operator-kernel helpers this operator requires.\n\nThis mirrors :meth:`shared_activation_helpers` but for general operator\nkernels (e.g. elementwise ``ADD``/``MUL`` or ``FULLY_CONNECTED``). An\noperator that routes its ``_run`` body through a shared runtime helper\n(instead of an inlined per-node call site) declares the helper\ndescriptors here so the code generator emits each distinct helper\nexactly once. Helpers are keyed by signature, so distinct operator\nvariants map to distinct helpers and never collide. The base\nimplementation requires no shared kernels.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.shared_kernel_helpers",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "shared_kernel_helpers",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "A list of :class:`KernelHelper` descriptors (see",
                  "type": "list[KernelHelper]"
                },
                {
                  "description": "mod:`helia_aot.aot.operators.kernel_runtime`). Empty for operators",
                  "type": "list[KernelHelper]"
                },
                {
                  "description": "that do not use a shared kernel helper.",
                  "type": "list[KernelHelper]"
                }
              ],
              "signature": "shared_kernel_helpers() -> list[KernelHelper]",
              "source": {
                "line": 1022,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L1022"
              },
              "summary": "Return the shared operator-kernel helpers this operator requires."
            },
            {
              "description": "Return the shared LUT-activation helpers this operator requires.\n\nOperators that emit their hot loop via a shared runtime helper (rather\nthan an inlined per-node body) declare the helper descriptors here so\nthe code generator can emit each distinct helper exactly once. The base\nimplementation requires no shared helpers.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.shared_activation_helpers",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "shared_activation_helpers",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "A list of helper descriptor dicts (see",
                  "type": "list[dict[str, object]]"
                },
                {
                  "description": "func:`helia_aot.aot.operators.activation_runtime.activation_lut_helper`).",
                  "type": "list[dict[str, object]]"
                },
                {
                  "description": "Empty for operators that do not use a shared activation helper.",
                  "type": "list[dict[str, object]]"
                }
              ],
              "signature": "shared_activation_helpers() -> list[dict[str, object]]",
              "source": {
                "line": 1042,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L1042"
              },
              "summary": "Return the shared LUT-activation helpers this operator requires."
            },
            {
              "description": "Compute the values for the operator source code template.\n\nArgs:",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.compute_values",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compute_values",
              "params": [],
              "raises": [],
              "returns": [
                {
                  "description": "dict[str, Any]: Dictionary of values for the operator template.",
                  "type": "dict[str, Any]"
                }
              ],
              "signature": "compute_values() -> dict[str, Any]",
              "source": {
                "line": 1058,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L1058"
              },
              "summary": "Compute the values for the operator source code template."
            },
            {
              "description": "Debug print the template values for the operator.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.print_info",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "print_info",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "print_info(verbose: int = 0)",
              "source": {
                "line": 1083,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L1083"
              },
              "summary": "Debug print the template values for the operator."
            },
            {
              "description": "Generate the source code for the operator.\n\nThis method should be overridden by subclasses.",
              "examples": [],
              "id": "helia_aot.aot.operators.operator.AotOperator.emit",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "emit",
              "params": [
                {
                  "description": "Path to save the generated source code.",
                  "name": "save_path",
                  "type": "Path"
                }
              ],
              "raises": [],
              "returns": [],
              "signature": "emit(save_path: Path)",
              "source": {
                "line": 1108,
                "path": "helia_aot/aot/operators/operator.py",
                "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L1108"
              },
              "summary": "Generate the source code for the operator."
            }
          ],
          "name": "AotOperator",
          "params": [
            {
              "description": "The AIR operator to wrap.",
              "name": "op",
              "type": "AirOperator"
            },
            {
              "description": "The AIR model.",
              "name": "model",
              "type": "AirModel"
            },
            {
              "description": "The target platform for code generation.",
              "name": "platform",
              "type": "SocPlatform"
            },
            {
              "default": "'aot'",
              "description": "Prefix for generated code files. Defaults to \"aot\".",
              "name": "prefix",
              "type": "str"
            },
            {
              "default": "None",
              "description": "Attributes for template values.",
              "name": "attributes",
              "type": "dict[str, Any] | None"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "AotOperator(\n    op: AirOperator,\n    model: AirModel,\n    platform: SocPlatform,\n    prefix: str = 'aot',\n    attributes: dict[str, Any] | None = None,\n)",
          "source": {
            "line": 119,
            "path": "helia_aot/aot/operators/operator.py",
            "url": "https://github.com/AmbiqAI/helia-aot/blob/cf2246a7ad439fa38d57462118e7840e5497a685/helia_aot/aot/operators/operator.py#L119"
          },
          "summary": "Base class for the AOT lowering of a single AIR operator."
        }
      ]
    }
  ],
  "name": "helia_aot"
}
