---
title: "ClikaRT::graph::DimDomain"
sidebar_label: "DimDomain"
description: "The extents one input dimension admits. A dimension the model declared with a fixed size, or one a compile pinned to a single value, is Fixed."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--struct">struct</span>

**Header:** `ClikaRT/graph/bench.h`

The extents one input dimension admits.

A dimension the model declared with a fixed size, or one a compile pinned to a single value, is `Fixed`. A dynamic dimension compiled with a recorded shape profile (an ONNX compile given `InputSpec` ranges or named-dim bindings) is `Range`: [`min`](./DimDomain.md#min) and [`max`](./DimDomain.md#max) are the smallest and largest extents over every profile, and [`opt`](./DimDomain.md#opt) is the extent the graph specializes to. A dynamic dimension with no recorded profile is `Free` and admits any non-negative extent. Ranges exist only for profiled ONNX compiles; a traced graph's dynamic dimensions are `Free`.

## Types

### enum Kind {#Kind}

<div class="api-signature">

`enum class` **`Kind`** `:` `std::int32_t`

</div>

How the admitted extents are described.

| Enumerator | Description |
| --- | --- |
| `Fixed` | exactly one extent ([`min`](./DimDomain.md#min)` == `[`opt`](./DimDomain.md#opt)` == `[`max`](./DimDomain.md#max)) |
| `Range` | every extent in `[`[`min`](./DimDomain.md#min)`, `[`max`](./DimDomain.md#max)`]`; [`opt`](./DimDomain.md#opt) is the specialized one |
| `Free` | any extent `>= 0`; [`min`](./DimDomain.md#min), [`opt`](./DimDomain.md#opt) and [`max`](./DimDomain.md#max) are -1 |

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 40

</div>

## Member functions

### admits() {#admits}

<div class="api-signature">

`bool` **`admits`**(`std::int64_t` `extent`) `const noexcept`

</div>

True when `extent` is admitted: `Fixed` admits `extent == `[`opt`](./DimDomain.md#opt) only, `Range` admits [`min`](./DimDomain.md#min)` <= extent <= `[`max`](./DimDomain.md#max), `Free` admits any `extent >= 0`.

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 53

</div>

## Data members

### kind {#kind}

<div class="api-signature">

[`Kind`](./DimDomain.md#Kind) **`kind`** `=` [`Kind::Free`](./DimDomain.md#Kind)

</div>

which description applies

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 45

</div>

### min {#min}

<div class="api-signature">

`std::int64_t` **`min`** `= -1`

</div>

smallest admitted extent (`Fixed`, `Range`), else -1

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 46

</div>

### opt {#opt}

<div class="api-signature">

`std::int64_t` **`opt`** `= -1`

</div>

the extent the compiled graph specializes to, else -1

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 47

</div>

### max {#max}

<div class="api-signature">

`std::int64_t` **`max`** `= -1`

</div>

largest admitted extent (`Fixed`, `Range`), else -1

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 48

</div>

### name {#name}

<div class="api-signature">

`std::string` **`name`**

</div>

the dimension's declared name (an ONNX `dim_param`), or ""

<div class="api-declared">

Declared in `ClikaRT/graph/bench.h`, line 49

</div>
