diff --git a/previews/PR363/404.html b/previews/PR363/404.html new file mode 100644 index 00000000..03555956 --- /dev/null +++ b/previews/PR363/404.html @@ -0,0 +1,25 @@ + + + + + + 404 | Reactant.jl + + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/previews/PR363/api/affine.html b/previews/PR363/api/affine.html new file mode 100644 index 00000000..88dc0f52 --- /dev/null +++ b/previews/PR363/api/affine.html @@ -0,0 +1,119 @@ + + + + + + Affine Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Affine Dialect

Refer to the official documentation for more details.

Reactant.MLIR.Dialects.affine.apply Method

apply

The affine.apply operation applies an affine mapping to a list of SSA values, yielding a single SSA value. The number of dimension and symbol arguments to affine.apply must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine mapping has to be one-dimensional, and so the affine.apply operation always returns one value. The input operands and result must all have ‘index’ type.

Example

mlir
#map10 = affine_map<(d0, d1) -> (d0 floordiv 8 + d1 floordiv 128)>
+...
+%1 = affine.apply #map10 (%s, %t)
+
+// Inline example.
+%2 = affine.apply affine_map<(i)[s0] -> (i+s0)> (%42)[%n]

source

Reactant.MLIR.Dialects.affine.delinearize_index Method

delinearize_index

The affine.delinearize_index operation takes a single index value and calculates the multi-index according to the given basis.

Example

%indices:3 = affine.delinearize_index %linear_index into (%c16, %c224, %c224) : index, index, index

In the above example, %indices:3 conceptually holds the following:

#map0 = affine_map<()[s0] -> (s0 floordiv 50176)>
+#map1 = affine_map<()[s0] -> ((s0 mod 50176) floordiv 224)>
+#map2 = affine_map<()[s0] -> (s0 mod 224)>
+%indices_0 = affine.apply #map0()[%linear_index]
+%indices_1 = affine.apply #map1()[%linear_index]
+%indices_2 = affine.apply #map2()[%linear_index]

source

Reactant.MLIR.Dialects.affine.for_ Method

for_

Syntax

operation   ::= `affine.for` ssa-id `=` lower-bound `to` upper-bound
+                (`step` integer-literal)? `{` op* `}`
+
+lower-bound ::= `max`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+upper-bound ::= `min`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+shorthand-bound ::= ssa-id | `-`? integer-literal

The affine.for operation represents an affine loop nest. It has one region containing its body. This region must contain one block that terminates with affine.yield. Note: when affine.for is printed in custom format, the terminator is omitted. The block has one argument of index type that represents the induction variable of the loop.

The affine.for operation executes its body a number of times iterating from a lower bound to an upper bound by a stride. The stride, represented by step, is a positive constant integer which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound.

The lower and upper bounds of a affine.for operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.

The affine mappings for the bounds may return multiple results, in which case the max/min keywords are required (for the lower/upper bound respectively), and the bound is the maximum/minimum of the returned values. There is no semantic ambiguity, but MLIR syntax requires the use of these keywords to make things more obvious to human readers.

Many upper and lower bounds are simple, so MLIR accepts two custom form syntaxes: the form that accepts a single 'ssa-id' (e.g. %N) is shorthand for applying that SSA value to a function that maps a single symbol to itself, e.g., ()[s]->(s)()[%N]. The integer literal form (e.g. -42) is shorthand for a nullary mapping function that returns the constant value (e.g. ()->(-42)()).

Example showing reverse iteration of the inner loop:

mlir
#map57 = affine_map<(d0)[s0] -> (s0 - d0 - 1)>
+
+func.func @simple_example(%A: memref<?x?xf32>, %B: memref<?x?xf32>) {
+  %N = dim %A, 0 : memref<?x?xf32>
+  affine.for %i = 0 to %N step 1 {
+    affine.for %j = 0 to %N {   // implicitly steps by 1
+      %0 = affine.apply #map57(%j)[%N]
+      %tmp = call @F1(%A, %i, %0) : (memref<?x?xf32>, index, index)->(f32)
+      call @F2(%tmp, %B, %i, %0) : (f32, memref<?x?xf32>, index, index)->()
+    }
+  }
+  return
+}

affine.for can also operate on loop-carried variables (iter_args) and return the final values after loop termination. The initial values of the variables are passed as additional SSA operands to the affine.for following the operands for the loop's lower and upper bounds. The operation's region has equivalent arguments for each variable representing the value of the variable at the current iteration.

The region must terminate with an affine.yield that passes all the current iteration variables to the next iteration, or to the affine.for's results if at the last iteration. For affine.for's that execute zero iterations, the initial values of the loop-carried variables (corresponding to the SSA operands) will be the op's results.

For example, to sum-reduce a memref:

mlir
func.func @reduce(%buffer: memref<1024xf32>) -> (f32) {
+  // Initial sum set to 0.
+  %sum_0 = arith.constant 0.0 : f32
+  // iter_args binds initial values to the loop's region arguments.
+  %sum = affine.for %i = 0 to 10 step 2
+      iter_args(%sum_iter = %sum_0) -> (f32) {
+    %t = affine.load %buffer[%i] : memref<1024xf32>
+    %sum_next = arith.addf %sum_iter, %t : f32
+    // Yield current iteration sum to next iteration %sum_iter or to %sum
+    // if final iteration.
+    affine.yield %sum_next : f32
+  }
+  return %sum : f32
+}
mlir
%res:2 = affine.for %i = 0 to 128 iter_args(%arg0 = %init0, %arg1 = %init1)
+           -> (index, index) {
+  %y0 = arith.addi %arg0, %c1 : index
+  %y1 = arith.addi %arg1, %c2 : index
+  affine.yield %y0, %y1 : index, index
+}

If the affine.for defines any values, a yield terminator must be explicitly present. The number and types of the "affine.for" results must match the initial values in the iter_args binding and the yield operands.

source

Reactant.MLIR.Dialects.affine.if_ Method

if_

Syntax

operation  ::= `affine.if` if-op-cond `{` op* `}` (`else` `{` op* `}`)?
+if-op-cond ::= integer-set-attr dim-and-symbol-use-list

The affine.if operation restricts execution to a subset of the loop iteration space defined by an integer set (a conjunction of affine constraints). A single affine.if may end with an optional else clause.

The condition of the affine.if is represented by an integer set (a conjunction of affine constraints), and the SSA values bound to the dimensions and symbols in the integer set. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.

The affine.if operation contains two regions for the "then" and "else" clauses. affine.if may return results that are defined in its regions. The values defined are determined by which execution path is taken. Each region of the affine.if must contain a single block with no arguments, and be terminated by affine.yield. If affine.if defines no values, the affine.yield can be left out, and will be inserted implicitly. Otherwise, it must be explicit. If no values are defined, the else block may be empty (i.e. contain no blocks).

Example

mlir
#set = affine_set<(d0, d1)[s0]: (d0 - 10 >= 0, s0 - d0 - 9 >= 0,
+                                 d1 - 10 >= 0, s0 - d1 - 9 >= 0)>
+func.func @reduced_domain_example(%A, %X, %N) : (memref<10xi32>, i32, i32) {
+  affine.for %i = 0 to %N {
+     affine.for %j = 0 to %N {
+       %0 = affine.apply #map42(%j)
+       %tmp = call @S1(%X, %i, %0)
+       affine.if #set(%i, %j)[%N] {
+          %1 = affine.apply #map43(%i, %j)
+          call @S2(%tmp, %A, %i, %1)
+       }
+    }
+  }
+  return
+}

Example with an explicit yield (initialization with edge padding):

mlir
#interior = affine_set<(i, j) : (i - 1 >= 0, j - 1 >= 0,  10 - i >= 0, 10 - j >= 0)> (%i, %j)
+func.func @pad_edges(%I : memref<10x10xf32>) -> (memref<12x12xf32) {
+  %O = alloc memref<12x12xf32>
+  affine.parallel (%i, %j) = (0, 0) to (12, 12) {
+    %1 = affine.if #interior (%i, %j) {
+      %2 = load %I[%i - 1, %j - 1] : memref<10x10xf32>
+      affine.yield %2
+    } else {
+      %2 = arith.constant 0.0 : f32
+      affine.yield %2 : f32
+    }
+    affine.store %1, %O[%i, %j] : memref<12x12xf32>
+  }
+  return %O
+}

source

Reactant.MLIR.Dialects.affine.load Method

load

Syntax

operation ::= ssa-id `=` `affine.load` ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type

The affine.load op reads an element from a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The output of affine.load is a new value with the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1:

mlir
%1 = affine.load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>

Example 2: Uses symbol keyword for symbols %n and %m.

mlir
%1 = affine.load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>

source

Reactant.MLIR.Dialects.affine.max Method

max

The affine.max operation computes the maximum value result from a multi-result affine map.

Example

mlir
%0 = affine.max (d0) -> (1000, d0 + 512) (%i0) : index

source

Reactant.MLIR.Dialects.affine.min Method

min

Syntax

operation ::= ssa-id `=` `affine.min` affine-map-attribute dim-and-symbol-use-list

The affine.min operation applies an affine mapping to a list of SSA values, and returns the minimum value of all result expressions. The number of dimension and symbol arguments to affine.min must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine.min operation always returns one value. The input operands and result must all have 'index' type.

Example

mlir
%0 = affine.min affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]

source

Reactant.MLIR.Dialects.affine.parallel Method

parallel

The affine.parallel operation represents a hyper-rectangular affine parallel band, defining zero or more SSA values for its induction variables. It has one region capturing the parallel band body. The induction variables are represented as arguments of this region. These SSA values always have type index, which is the size of the machine word. The strides, represented by steps, are positive constant integers which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound. The body region must contain exactly one block that terminates with affine.yield.

The lower and upper bounds of a parallel operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols. The list of expressions in each map is interpreted according to the respective bounds group attribute. If a single expression belongs to the group, then the result of this expression is taken as a lower(upper) bound of the corresponding loop induction variable. If multiple expressions belong to the group, then the lower(upper) bound is the max(min) of these values obtained from these expressions. The loop band has as many loops as elements in the group bounds attributes.

Each value yielded by affine.yield will be accumulated/reduced via one of the reduction methods defined in the AtomicRMWKind enum. The order of reduction is unspecified, and lowering may produce any valid ordering. Loops with a 0 trip count will produce as a result the identity value associated with each reduction (i.e. 0.0 for addf, 1.0 for mulf). Assign reductions for loops with a trip count != 1 produces undefined results.

Note: Calling AffineParallelOp::build will create the required region and block, and insert the required terminator if it is trivial (i.e. no values are yielded). Parsing will also create the required region, block, and terminator, even when they are missing from the textual representation.

Example (3x3 valid convolution):

mlir
func.func @conv_2d(%D : memref<100x100xf32>, %K : memref<3x3xf32>) -> (memref<98x98xf32>) {
+  %O = memref.alloc() : memref<98x98xf32>
+  affine.parallel (%x, %y) = (0, 0) to (98, 98) {
+    %0 = affine.parallel (%kx, %ky) = (0, 0) to (2, 2) reduce ("addf") -> f32 {
+      %1 = affine.load %D[%x + %kx, %y + %ky] : memref<100x100xf32>
+      %2 = affine.load %K[%kx, %ky] : memref<3x3xf32>
+      %3 = arith.mulf %1, %2 : f32
+      affine.yield %3 : f32
+    }
+    affine.store %0, %O[%x, %y] : memref<98x98xf32>
+  }
+  return %O : memref<98x98xf32>
+}

Example (tiling by potentially imperfectly dividing sizes):

mlir
affine.parallel (%ii, %jj) = (0, 0) to (%N, %M) step (32, 32) {
+  affine.parallel (%i, %j) = (%ii, %jj)
+                          to (min(%ii + 32, %N), min(%jj + 32, %M)) {
+    call @f(%i, %j) : (index, index) -> ()
+  }
+}

source

Reactant.MLIR.Dialects.affine.prefetch Method

prefetch

The affine.prefetch op prefetches data from a memref location described with an affine subscript similar to affine.load, and has three attributes: a read/write specifier, a locality hint, and a cache type specifier as shown below:

mlir
affine.prefetch %0[%i, %j + 5], read, locality<3>, data : memref<400x400xi32>

The read/write specifier is either 'read' or 'write', the locality hint specifier ranges from locality<0> (no locality) to locality<3> (extremely local keep in cache). The cache type specifier is either 'data' or 'instr' and specifies whether the prefetch is performed on data cache or on instruction cache.

source

Reactant.MLIR.Dialects.affine.store Method

store

Syntax

operation ::= `affine.store` ssa-use, ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type

The affine.store op writes an element to a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The affine.store op stores a new value which is the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1:

mlir
affine.store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>

Example 2: Uses symbol keyword for symbols %n and %m.

mlir
affine.store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>

source

Reactant.MLIR.Dialects.affine.vector_load Method

vector_load

The affine.vector_load is the vector counterpart of affine.load. It reads a slice from a MemRef, supplied as its first operand, into a vector of the same base elemental type. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the read within the memref. The shape of the return vector type determines the shape of the slice read from the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector loads will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1: 8-wide f32 vector load.

mlir
%1 = affine.vector_load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>

Example 2: 4-wide f32 vector load. Uses symbol keyword for symbols %n and %m.

mlir
%1 = affine.vector_load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>

Example 3: 2-dim f32 vector load.

mlir
%1 = affine.vector_load %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>

TODOs:

  • Add support for strided vector loads.

  • Consider adding a permutation map to permute the slice that is read from memory

(see vector.transfer_read).

source

Reactant.MLIR.Dialects.affine.vector_store Method

vector_store

The affine.vector_store is the vector counterpart of affine.store. It writes a vector, supplied as its first operand, into a slice within a MemRef of the same base elemental type, supplied as its second operand. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the write within the memref. The shape of th input vector determines the shape of the slice written to the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector stores will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1: 8-wide f32 vector store.

mlir
affine.vector_store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>

Example 2: 4-wide f32 vector store. Uses symbol keyword for symbols %n and %m.

mlir
affine.vector_store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>

Example 3: 2-dim f32 vector store.

mlir
affine.vector_store %v0, %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>

TODOs:

  • Add support for strided vector stores.

  • Consider adding a permutation map to permute the slice that is written to memory

(see vector.transfer_write).

source

Reactant.MLIR.Dialects.affine.yield Method

yield

The affine.yield yields zero or more SSA values from an affine op region and terminates the region. The semantics of how the values yielded are used is defined by the parent operation. If affine.yield has any operands, the operands must match the parent operation's results. If the parent operation defines no values, then the affine.yield may be left out in the custom syntax and the builders will insert one implicitly. Otherwise, it has to be present in the syntax to indicate which values are yielded.

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/api.html b/previews/PR363/api/api.html new file mode 100644 index 00000000..65af7ce2 --- /dev/null +++ b/previews/PR363/api/api.html @@ -0,0 +1,54 @@ + + + + + + Core Reactant API | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Core Reactant API

Compile API

Reactant.Compiler.@compile Macro
julia
@compile f(args...)

source

Reactant.Compiler.@jit Macro
julia
@jit f(args...)
+
+Run @compile f(args..) then immediately execute it

source

ReactantCore API

ReactantCore.@trace Macro
julia
@trace <expr>

Converts certain expressions like control flow into a Reactant friendly form. Importantly, if no traced value is found inside the expression, then there is no overhead.

Currently Supported

  • if conditions (with elseif and other niceties) (@trace if ...)

  • if statements with a preceeding assignment (@trace a = if ...) (note the positioning of the macro needs to be before the assignment and not before the if)

  • for statements with a single induction variable iterating over a syntactic StepRange of integers.

Special Considerations

  • Apply @trace only at the outermost if. Nested if statements will be automatically expanded into the correct form.

Extended Help

Caveats (Deviations from Core Julia Semantics)

New variables introduced

julia
@trace if x > 0
+    y = x + 1
+    p = 1
+else
+    y = x - 1
+end

In the outer scope p is not defined if x ≤ 0. However, for the traced version, it is defined and set to a dummy value.

Short Circuiting Operations

julia
@trace if x > 0 && z > 0
+    y = x + 1
+else
+    y = x - 1
+end

&& and || are short circuiting operations. In the traced version, we replace them with & and | respectively.

Type-Unstable Branches

julia
@trace if x > 0
+    y = 1.0f0
+else
+    y = 1.0
+end

This will not compile since y is a Float32 in one branch and a Float64 in the other. You need to ensure that all branches have the same type.

Another example is the following for loop which changes the type of x between iterations.

julia
x = ... # ConcreteRArray{Int64, 1}
+for i in 1f0:0.5f0:10f0
+    x = x .+ i # ConcreteRArray{Float32, 1}
+end

Certain Symbols are Reserved

Symbols like [😦😃, :nothing, :missing, :Inf, :Inf16, :Inf32, :Inf64, :Base, :Core] are not allowed as variables in @trace expressions. While certain cases might work but these are not guaranteed to work. For example, the following will not work:

julia
function fn(x)
+    nothing = sum(x)
+    @trace if nothing > 0
+        y = 1.0
+    else
+        y = 2.0
+    end
+    return y, nothing
+end

source

Inspect Generated HLO

Reactant.Compiler.@code_hlo Macro
julia
@code_hlo [optimize = ...] f(args...)

source


Internal Functionality

Private

These functions are not part of the public API and are subject to change at any time.

Reactant.Compiler.codegen_unflatten! Function
julia
codegen_unflatten!

Generate Julia code to wrap the XLA buffers back into the output result datatypes. The name is due to its similarity to the unflatten function in jax.tree_util.register_pytree_node.

source

Reactant.Compiler.codegen_flatten! Function
julia
codegen_flatten!

Generate Julia code to extract the XLA buffers from input arguments. The name is due to its similarity to the flatten function in jax.tree_util.register_pytree_node.

Arguments

  • linear_args: A list of arguments to be flattened.

Returns

  • flatten_names: A list of Symbols representing the names of the flattened arguments.

  • flatten_code: A list of Exprs to extract the XLA buffers from the input arguments.

Note

The linearized arguments do not directly refer to the are the arguments that have been flattened into a single list.

source

Reactant.Compiler.codegen_xla_call Function
julia
codegen_xla_call

Generate Julia code to call the XLA executable.

Arguments

  • exec: The XLA executable to call.

  • flatten_names: A list of Symbols representing the names of the flattened linear arguments.

  • donated_args_mask: A list of UInt8s representing whether the argument is donated.

  • nresults: The number of results to expect.

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/arith.html b/previews/PR363/api/arith.html new file mode 100644 index 00000000..6d2c5bc6 --- /dev/null +++ b/previews/PR363/api/arith.html @@ -0,0 +1,213 @@ + + + + + + Arithmetic Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Arithmetic Dialect

Refer to the official documentation for more details.

Reactant.MLIR.Dialects.arith.addf Method

addf

The addf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar addition.
+%a = arith.addf %b, %c : f64
+
+// SIMD vector addition, e.g. for Intel SSE.
+%f = arith.addf %g, %h : vector<4xf32>
+
+// Tensor addition.
+%x = arith.addf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

Reactant.MLIR.Dialects.arith.addi Method

addi

Performs N-bit addition on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the addition modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The addi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar addition.
+%a = arith.addi %b, %c : i64
+
+// Scalar addition with overflow flags.
+%a = arith.addi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise addition.
+%f = arith.addi %g, %h : vector<4xi32>
+
+// Tensor element-wise addition.
+%x = arith.addi %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.addui_extended Method

addui_extended

Performs (N+1)-bit addition on zero-extended operands. Returns two results: the N-bit sum (same type as both operands), and the overflow bit (boolean-like), where 1 indicates unsigned addition overflow, while 0 indicates no overflow.

Example

mlir
// Scalar addition.
+%sum, %overflow = arith.addui_extended %b, %c : i64, i1
+
+// Vector element-wise addition.
+%d:2 = arith.addui_extended %e, %f : vector<4xi32>, vector<4xi1>
+
+// Tensor element-wise addition.
+%x:2 = arith.addui_extended %y, %z : tensor<4x?xi8>, tensor<4x?xi1>

source

Reactant.MLIR.Dialects.arith.andi Method

andi

The andi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise and.
+%a = arith.andi %b, %c : i64
+
+// SIMD vector element-wise bitwise integer and.
+%f = arith.andi %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer and.
+%x = arith.andi %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.bitcast Method

bitcast

Bitcast an integer or floating point value to an integer or floating point value of equal bit width. When operating on vectors, casts elementwise.

Note that this implements a logical bitcast independent of target endianness. This allows constant folding without target information and is consitent with the bitcast constant folders in LLVM (see https://github.com/llvm/llvm-project/blob/18c19414eb/llvm/lib/IR/ConstantFold.cpp#L168) For targets where the source and target type have the same endianness (which is the standard), this cast will also change no bits at runtime, but it may still require an operation, for example if the machine has different floating point and integer register files. For targets that have a different endianness for the source and target types (e.g. float is big-endian and integer is little-endian) a proper lowering would add operations to swap the order of words in addition to the bitcast.

source

Reactant.MLIR.Dialects.arith.ceildivsi Method

ceildivsi

Signed integer division. Rounds towards positive infinity, i.e. 7 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.ceildivsi %b, %c : i64

source

Reactant.MLIR.Dialects.arith.ceildivui Method

ceildivui

Unsigned integer division. Rounds towards positive infinity. Treats the leading bit as the most significant, i.e. for i16 given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 1.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division.
+%a = arith.ceildivui %b, %c : i64

source

Reactant.MLIR.Dialects.arith.cmpf Method

cmpf

The cmpf operation compares its two operands according to the float comparison rules and the predicate specified by the respective attribute. The predicate defines the type of comparison: (un)orderedness, (in)equality and signed less/greater than (or equal to) as well as predicates that are always true or false. The operands must have the same type, and this type must be a float type, or a vector or tensor thereof. The result is an i1, or a vector/tensor thereof having the same shape as the inputs. Unlike cmpi, the operands are always treated as signed. The u prefix indicates unordered comparison, not unsigned comparison, so "une" means unordered or not equal. For the sake of readability by humans, custom assembly form for the operation uses a string-typed attribute for the predicate. The value of this attribute corresponds to lower-cased name of the predicate constant, e.g., "one" means "ordered not equal". The string representation of the attribute is merely a syntactic sugar and is converted to an integer attribute by the parser.

Example

mlir
%r1 = arith.cmpf oeq, %0, %1 : f32
+%r2 = arith.cmpf ult, %0, %1 : tensor<42x42xf64>
+%r3 = "arith.cmpf"(%0, %1) {predicate: 0} : (f8, f8) -> i1

source

Reactant.MLIR.Dialects.arith.cmpi Method

cmpi

The cmpi operation is a generic comparison for integer-like types. Its two arguments can be integers, vectors or tensors thereof as long as their types match. The operation produces an i1 for the former case, a vector or a tensor of i1 with the same shape as inputs in the other cases.

Its first argument is an attribute that defines which type of comparison is performed. The following comparisons are supported:

  • equal (mnemonic: "eq"; integer value: 0)

  • not equal (mnemonic: "ne"; integer value: 1)

  • signed less than (mnemonic: "slt"; integer value: 2)

  • signed less than or equal (mnemonic: "sle"; integer value: 3)

  • signed greater than (mnemonic: "sgt"; integer value: 4)

  • signed greater than or equal (mnemonic: "sge"; integer value: 5)

  • unsigned less than (mnemonic: "ult"; integer value: 6)

  • unsigned less than or equal (mnemonic: "ule"; integer value: 7)

  • unsigned greater than (mnemonic: "ugt"; integer value: 8)

  • unsigned greater than or equal (mnemonic: "uge"; integer value: 9)

The result is 1 if the comparison is true and 0 otherwise. For vector or tensor operands, the comparison is performed elementwise and the element of the result indicates whether the comparison is true for the operand elements with the same indices as those of the result.

Note: while the custom assembly form uses strings, the actual underlying attribute has integer type (or rather enum class in C++ code) as seen from the generic assembly form. String literals are used to improve readability of the IR by humans.

This operation only applies to integer-like operands, but not floats. The main reason being that comparison operations have diverging sets of attributes: integers require sign specification while floats require various floating point-related particularities, e.g., -ffast-math behavior, IEEE754 compliance, etc (rationale). The type of comparison is specified as attribute to avoid introducing ten similar operations, taking into account that they are often implemented using the same operation downstream (rationale). The separation between signed and unsigned order comparisons is necessary because of integers being signless. The comparison operation must know how to interpret values with the foremost bit being set: negatives in two's complement or large positives (rationale).

Example

mlir
// Custom form of scalar "signed less than" comparison.
+%x = arith.cmpi slt, %lhs, %rhs : i32
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 2 : i64} : (i32, i32) -> i1
+
+// Custom form of vector equality comparison.
+%x = arith.cmpi eq, %lhs, %rhs : vector<4xi64>
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 0 : i64}
+    : (vector<4xi64>, vector<4xi64>) -> vector<4xi1>

source

Reactant.MLIR.Dialects.arith.constant Method

constant

The constant operation produces an SSA value equal to some integer or floating-point constant specified by an attribute. This is the way MLIR forms simple integer and floating point constants.

Example

// Integer constant
+%1 = arith.constant 42 : i32
+
+// Equivalent generic form
+%1 = "arith.constant"() {value = 42 : i32} : () -> i32

source

Reactant.MLIR.Dialects.arith.divsi Method

divsi

Signed integer division. Rounds towards zero. Treats the leading bit as sign, i.e. 6 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.divsi %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divsi %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.divui Method

divui

Unsigned integer division. Rounds towards zero. Treats the leading bit as the most significant, i.e. for i16 given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 0.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division.
+%a = arith.divui %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divui %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.extf Method

extf

Cast a floating-point value to a larger floating-point-typed value. The destination type must to be strictly wider than the source type. When operating on vectors, casts elementwise.

source

Reactant.MLIR.Dialects.arith.extsi Method

extsi

The integer sign extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with copies of the most-significant bit of the input.

Example

mlir
%1 = arith.constant 5 : i3      // %1 is 0b101
+%2 = arith.extsi %1 : i3 to i6  // %2 is 0b111101
+%3 = arith.constant 2 : i3      // %3 is 0b010
+%4 = arith.extsi %3 : i3 to i6  // %4 is 0b000010
+
+%5 = arith.extsi %0 : vector<2 x i32> to vector<2 x i64>

source

Reactant.MLIR.Dialects.arith.extui Method

extui

The integer zero extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with zeros.

Example

mlir
  %1 = arith.constant 5 : i3      // %1 is 0b101
+  %2 = arith.extui %1 : i3 to i6  // %2 is 0b000101
+  %3 = arith.constant 2 : i3      // %3 is 0b010
+  %4 = arith.extui %3 : i3 to i6  // %4 is 0b000010
+
+  %5 = arith.extui %0 : vector<2 x i32> to vector<2 x i64>

source

Reactant.MLIR.Dialects.arith.floordivsi Method

floordivsi

Signed integer division. Rounds towards negative infinity, i.e. 5 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.floordivsi %b, %c : i64

source

Reactant.MLIR.Dialects.arith.fptosi Method

fptosi

Cast from a value interpreted as floating-point to the nearest (rounding towards zero) signed integer value. When operating on vectors, casts elementwise.

source

Reactant.MLIR.Dialects.arith.fptoui Method

fptoui

Cast from a value interpreted as floating-point to the nearest (rounding towards zero) unsigned integer value. When operating on vectors, casts elementwise.

source

Reactant.MLIR.Dialects.arith.index_cast Method

index_cast

Casts between scalar or vector integers and corresponding 'index' scalar or vectors. Index is an integer of platform-specific bit width. If casting to a wider integer, the value is sign-extended. If casting to a narrower integer, the value is truncated.

source

Reactant.MLIR.Dialects.arith.index_castui Method

index_castui

Casts between scalar or vector integers and corresponding 'index' scalar or vectors. Index is an integer of platform-specific bit width. If casting to a wider integer, the value is zero-extended. If casting to a narrower integer, the value is truncated.

source

Reactant.MLIR.Dialects.arith.maximumf Method

maximumf

Returns the maximum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.

Example

mlir
// Scalar floating-point maximum.
+%a = arith.maximumf %b, %c : f64

source

Reactant.MLIR.Dialects.arith.maxnumf Method

maxnumf

Returns the maximum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.

Example

mlir
// Scalar floating-point maximum.
+%a = arith.maxnumf %b, %c : f64

source

Reactant.MLIR.Dialects.arith.minimumf Method

minimumf

Returns the minimum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.

Example

mlir
// Scalar floating-point minimum.
+%a = arith.minimumf %b, %c : f64

source

Reactant.MLIR.Dialects.arith.minnumf Method

minnumf

Returns the minimum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.

Example

mlir
// Scalar floating-point minimum.
+%a = arith.minnumf %b, %c : f64

source

Reactant.MLIR.Dialects.arith.mulf Method

mulf

The mulf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar multiplication.
+%a = arith.mulf %b, %c : f64
+
+// SIMD pointwise vector multiplication, e.g. for Intel SSE.
+%f = arith.mulf %g, %h : vector<4xf32>
+
+// Tensor pointwise multiplication.
+%x = arith.mulf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

Reactant.MLIR.Dialects.arith.muli Method

muli

Performs N-bit multiplication on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the multiplication modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The muli operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar multiplication.
+%a = arith.muli %b, %c : i64
+
+// Scalar multiplication with overflow flags.
+%a = arith.muli %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise multiplication.
+%f = arith.muli %g, %h : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x = arith.muli %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.mulsi_extended Method

mulsi_extended

Performs (2*N)-bit multiplication on sign-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli with the same operands.

Example

mlir
// Scalar multiplication.
+%low, %high = arith.mulsi_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mulsi_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mulsi_extended %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.mului_extended Method

mului_extended

Performs (2*N)-bit multiplication on zero-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli with the same operands.

Example

mlir
// Scalar multiplication.
+%low, %high = arith.mului_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mului_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mului_extended %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.negf Method

negf

The negf operation computes the negation of a given value. It takes one operand and returns one result of the same type. This type may be a float scalar type, a vector whose element type is float, or a tensor of floats. It has no standard attributes.

Example

mlir
// Scalar negation value.
+%a = arith.negf %b : f64
+
+// SIMD vector element-wise negation value.
+%f = arith.negf %g : vector<4xf32>
+
+// Tensor element-wise negation value.
+%x = arith.negf %y : tensor<4x?xf8>

source

Reactant.MLIR.Dialects.arith.ori Method

ori

The ori operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise or.
+%a = arith.ori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer or.
+%f = arith.ori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer or.
+%x = arith.ori %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.remf Method

remf

Returns the floating point division remainder. The remainder has the same sign as the dividend (lhs operand).

source

Reactant.MLIR.Dialects.arith.remsi Method

remsi

Signed integer division remainder. Treats the leading bit as sign, i.e. 6 % -2 = 0.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar signed integer division remainder.
+%a = arith.remsi %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remsi %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.remui Method

remui

Unsigned integer division remainder. Treats the leading bit as the most significant, i.e. for i16, 6 % -2 = 6 % (2^16 - 2) = 6.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division remainder.
+%a = arith.remui %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remui %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.select Method

select

The arith.select operation chooses one value based on a binary condition supplied as its first operand.

If the value of the first operand (the condition) is 1, then the second operand is returned, and the third operand is ignored, even if it was poison.

If the value of the first operand (the condition) is 0, then the third operand is returned, and the second operand is ignored, even if it was poison.

If the value of the first operand (the condition) is poison, then the operation returns poison.

The operation applies to vectors and tensors elementwise given the shape of all operands is identical. The choice is made for each element individually based on the value at the same position as the element in the condition operand. If an i1 is provided as the condition, the entire vector or tensor is chosen.

Example

mlir
// Custom form of scalar selection.
+%x = arith.select %cond, %true, %false : i32
+
+// Generic form of the same operation.
+%x = "arith.select"(%cond, %true, %false) : (i1, i32, i32) -> i32
+
+// Element-wise vector selection.
+%vx = arith.select %vcond, %vtrue, %vfalse : vector<42xi1>, vector<42xf32>
+
+// Full vector selection.
+%vx = arith.select %cond, %vtrue, %vfalse : vector<42xf32>

source

Reactant.MLIR.Dialects.arith.shli Method

shli

The shli operation shifts the integer value of the first operand to the left by the integer value of the second operand. The second operand is interpreted as unsigned. The low order bits are filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
%1 = arith.constant 5 : i8  // %1 is 0b00000101
+%2 = arith.constant 3 : i8
+%3 = arith.shli %1, %2 : i8 // %3 is 0b00101000
+%4 = arith.shli %1, %2 overflow<nsw, nuw> : i8

source

Reactant.MLIR.Dialects.arith.shrsi Method

shrsi

The shrsi operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as signed, and the second operand is interpreter as unsigned. The high order bits in the output are filled with copies of the most-significant bit of the shifted value (which means that the sign of the value is preserved). If the value of the second operand is greater or equal than bitwidth of the first operand, then the operation returns poison.

Example

mlir
%1 = arith.constant 160 : i8               // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrsi %1, %2 : (i8, i8) -> i8   // %3 is 0b11110100
+%4 = arith.constant 96 : i8                   // %4 is 0b01100000
+%5 = arith.shrsi %4, %2 : (i8, i8) -> i8   // %5 is 0b00001100

source

Reactant.MLIR.Dialects.arith.shrui Method

shrui

The shrui operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as unsigned, and the second operand is interpreted as unsigned. The high order bits are always filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.

Example

mlir
%1 = arith.constant 160 : i8               // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrui %1, %2 : (i8, i8) -> i8   // %3 is 0b00010100

source

Reactant.MLIR.Dialects.arith.sitofp Method

sitofp

Cast from a value interpreted as a signed integer to the corresponding floating-point value. If the value cannot be exactly represented, it is rounded using the default rounding mode. When operating on vectors, casts elementwise.

source

Reactant.MLIR.Dialects.arith.subf Method

subf

The subf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar subtraction.
+%a = arith.subf %b, %c : f64
+
+// SIMD vector subtraction, e.g. for Intel SSE.
+%f = arith.subf %g, %h : vector<4xf32>
+
+// Tensor subtraction.
+%x = arith.subf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

Reactant.MLIR.Dialects.arith.subi Method

subi

Performs N-bit subtraction on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the subtraction modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The subi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar subtraction.
+%a = arith.subi %b, %c : i64
+
+// Scalar subtraction with overflow flags.
+%a = arith.subi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise subtraction.
+%f = arith.subi %g, %h : vector<4xi32>
+
+// Tensor element-wise subtraction.
+%x = arith.subi %y, %z : tensor<4x?xi8>

source

Reactant.MLIR.Dialects.arith.truncf Method

truncf

Truncate a floating-point value to a smaller floating-point-typed value. The destination type must be strictly narrower than the source type. If the value cannot be exactly represented, it is rounded using the provided rounding mode or the default one if no rounding mode is provided. When operating on vectors, casts elementwise.

source

Reactant.MLIR.Dialects.arith.trunci Method

trunci

The integer truncation operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be smaller than the input bit-width (N < M). The top-most (N - M) bits of the input are discarded.

Example

mlir
  %1 = arith.constant 21 : i5     // %1 is 0b10101
+  %2 = arith.trunci %1 : i5 to i4 // %2 is 0b0101
+  %3 = arith.trunci %1 : i5 to i3 // %3 is 0b101
+
+  %5 = arith.trunci %0 : vector<2 x i32> to vector<2 x i16>

source

Reactant.MLIR.Dialects.arith.uitofp Method

uitofp

Cast from a value interpreted as unsigned integer to the corresponding floating-point value. If the value cannot be exactly represented, it is rounded using the default rounding mode. When operating on vectors, casts elementwise.

source

Reactant.MLIR.Dialects.arith.xori Method

xori

The xori operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise xor.
+%a = arith.xori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer xor.
+%f = arith.xori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer xor.
+%x = arith.xori %y, %z : tensor<4x?xi8>

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/builtin.html b/previews/PR363/api/builtin.html new file mode 100644 index 00000000..1e8e3789 --- /dev/null +++ b/previews/PR363/api/builtin.html @@ -0,0 +1,45 @@ + + + + + + Builtin Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Builtin Dialect

Refer to the official documentation for more details.

Reactant.MLIR.Dialects.builtin.module_ Method

module_

A module represents a top-level container operation. It contains a single graph region containing a single block which can contain any operations and does not have a terminator. Operations within this region cannot implicitly capture values defined outside the module, i.e. Modules are IsolatedFromAbove. Modules have an optional symbol name which can be used to refer to them in operations.

Example

mlir
module {
+  func.func @foo()
+}

source

Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast Method

unrealized_conversion_cast

An unrealized_conversion_cast operation represents an unrealized conversion from one set of types to another, that is used to enable the inter-mixing of different type systems. This operation should not be attributed any special representational or execution semantics, and is generally only intended to be used to satisfy the temporary intermixing of type systems during the conversion of one type system to another.

This operation may produce results of arity 1-N, and accept as input operands of arity 0-N.

Example

mlir
// An unrealized 0-1 conversion. These types of conversions are useful in
+// cases where a type is removed from the type system, but not all uses have
+// been converted. For example, imagine we have a tuple type that is
+// expanded to its element types. If only some uses of an empty tuple type
+// instance are converted we still need an instance of the tuple type, but
+// have no inputs to the unrealized conversion.
+%result = unrealized_conversion_cast to !bar.tuple_type<>
+
+// An unrealized 1-1 conversion.
+%result1 = unrealized_conversion_cast %operand : !foo.type to !bar.lowered_type
+
+// An unrealized 1-N conversion.
+%results2:2 = unrealized_conversion_cast %tuple_operand : !foo.tuple_type<!foo.type, !foo.type> to !foo.type, !foo.type
+
+// An unrealized N-1 conversion.
+%result3 = unrealized_conversion_cast %operand, %operand : !foo.type, !foo.type to !bar.tuple_type<!foo.type, !foo.type>

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/chlo.html b/previews/PR363/api/chlo.html new file mode 100644 index 00000000..de627778 --- /dev/null +++ b/previews/PR363/api/chlo.html @@ -0,0 +1,28 @@ + + + + + + CHLO Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

CHLO Dialect

Refer to the official documentation for more details.

Reactant.MLIR.Dialects.chlo._asin_acos_kernel Method

_asin_acos_kernel

Returns AsinAcosKernel(operand) element-wise.

If w = _asin_acos_kernel(z) w' = _asin_acos_kernel(I * z) then asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real)) acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real))

This op is used as an intermediate value in decompositions and should never be constructed directly by frameworks or consumed by backends.

source

Reactant.MLIR.Dialects.chlo.acos Method

acos

Returns Acos(operand) element-wise.

$

\acos(x) = 2 * \atan(\sqrt(1 - x^2) / (1 + x)) if x != -1 = pi if x == -1 $

source

Reactant.MLIR.Dialects.chlo.acosh Method

acosh

Returns Acosh(operand) element-wise.

$

\acosh(x) = log(x + sqrt(x^2 - 1)) if x >= -1 \acosh(x) = nan if x < -1 $

source

Reactant.MLIR.Dialects.chlo.asin Method

asin

Returns Asin(operand) element-wise.

$

\asin(x) = 2 * atan(x / (1 + sqrt(1 - x^2))) $

source

Reactant.MLIR.Dialects.chlo.asinh Method

asinh

Returns Asinh(operand) element-wise.

$

\asinh(x) = log(x + sqrt(x^2 + 1)) $

source

Reactant.MLIR.Dialects.chlo.atan Method

atan

Returns Atan(operand) element-wise.

$

\atan(x) = \atan2(x, 1) $

source

Reactant.MLIR.Dialects.chlo.atanh Method

atanh

Returns Atanh(operand) element-wise.

$

\atanh(x) = 0.5 * log((1 + x) / (1 - x)) if abs(x) <= 1 = nan otherwise $

source

Reactant.MLIR.Dialects.chlo.bessel_i1e Method

bessel_i1e

Returns bessel_i1e(operand) element-wise.

source

Reactant.MLIR.Dialects.chlo.broadcast_add Method

broadcast_add

Returns lhs + rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_and Method

broadcast_and

Returns logical_and(lhs, rhs) element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_atan2 Method

broadcast_atan2

Returns atan2(lhs/rhs) element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_compare Method

broadcast_compare

Compares lhs and rhs elementwise according to comparison_direction and compare_type. If unspecified, compare_type is FLOAT for float element types, SIGNED for signed element types and UNSIGNED for unsigned element types.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_comparison_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_complex Method

broadcast_complex

Performs element-wise conversion of a pair of real and imaginary values to a complex value.

source

Reactant.MLIR.Dialects.chlo.broadcast_divide Method

broadcast_divide

Returns lhs / rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_maximum Method

broadcast_maximum

Returns max(lhs, rhs) element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_minimum Method

broadcast_minimum

Returns min(lhs, rhs) element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_multiply Method

broadcast_multiply

Returns lhs * rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_next_after Method

broadcast_next_after

Returns the next representable value of lhs in the direction of rhs, element-wise. It can also return a subnormal number.

Equivalent to the C++ std::nextafter function.

source

Reactant.MLIR.Dialects.chlo.broadcast_or Method

broadcast_or

Returns logical_or(lhs, rhs) element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_polygamma Method

broadcast_polygamma

Returns Polygamma(operand, operand) element-wise.

source

Reactant.MLIR.Dialects.chlo.broadcast_power Method

broadcast_power

Returns lhs ^ rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_remainder Method

broadcast_remainder

Returns lhs % rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_select Method

broadcast_select

Constructs an output array from elements of two input arrays, based on the values of a predicate array.

See https://www.tensorflow.org/xla/operation_semantics#select

source

Reactant.MLIR.Dialects.chlo.broadcast_shift_left Method

broadcast_shift_left

Returns lhs << rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic Method

broadcast_shift_right_arithmetic

Returns lhs >> rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical Method

broadcast_shift_right_logical

Returns lhs >> rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_subtract Method

broadcast_subtract

Returns lhs - rhs element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_xor Method

broadcast_xor

Returns logical_xor(lhs, rhs) element-wise.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations.

source

Reactant.MLIR.Dialects.chlo.broadcast_zeta Method

broadcast_zeta

Returns Zeta(operand, operand) element-wise.

$

(\zeta(x, q) = \sum_{n=0}^{\infty} (q + n)^{-x}) $

source

Reactant.MLIR.Dialects.chlo.conj Method

conj

Returns Conj(operand) element-wise.

$

\conj(x) = (\real(x), \neg(\imag(x))) $

source

Reactant.MLIR.Dialects.chlo.constant Method

constant

Represents a constant value.

source

Reactant.MLIR.Dialects.chlo.constant_like Method

constant_like

Returns a splat constant of the same shape as the operand.

source

Reactant.MLIR.Dialects.chlo.cosh Method

cosh

Returns Cosh(operand) element-wise.

$

\cosh(x) = (e^x + e^-x) / 2 $

source

Reactant.MLIR.Dialects.chlo.digamma Method

digamma

Returns Digamma(operand) element-wise.

source

Reactant.MLIR.Dialects.chlo.erf Method

erf

Computes the Gauss error function of x element-wise.

erf(x) = erf_impl(x) if |x| < 1 = 1 - erfc_impl(x) otherwise

source

Reactant.MLIR.Dialects.chlo.erf_inv Method

erf_inv

Returns ErfInv(operand) element-wise.

source

Reactant.MLIR.Dialects.chlo.erfc Method

erfc

Computes an approximation of the error function complement (1 - erf(x)).

erfc(x) = erfc_impl(x) if |x| > 1 = 1 - erf_impl(x) otherwise

source

Reactant.MLIR.Dialects.chlo.is_inf Method

is_inf

Returns if a value is +/-inf element-wise.

source

Reactant.MLIR.Dialects.chlo.is_neg_inf Method

is_neg_inf

Returns if a value is -inf element-wise.

source

Reactant.MLIR.Dialects.chlo.is_pos_inf Method

is_pos_inf

Returns if a value is +inf element-wise.

source

Reactant.MLIR.Dialects.chlo.lgamma Method

lgamma

Returns Lgamma(operand) element-wise.

source

Reactant.MLIR.Dialects.chlo.next_after Method

next_after

Returns the next representable value of x in the direction of y, element-wise. It can also return a subnormal number.

Equivalent to the C++ std::nextafter function.

source

Reactant.MLIR.Dialects.chlo.polygamma Method

polygamma

Returns Polygamma(operand, operand) element-wise.

source

Reactant.MLIR.Dialects.chlo.sinh Method

sinh

Returns Sinh(operand) element-wise.

$

\sinh(x) = (e^x - e^-x) / 2 if |x| < 1 = e^(x + log(1/2)) - e^(-x + log(1/2)) otherwise. $

source

Reactant.MLIR.Dialects.chlo.tan Method

tan

Returns Tan(operand) element-wise.

$

\tan(x) = \sin(x) / \cos(x) $

source

Reactant.MLIR.Dialects.chlo.top_k Method

top_k

If the input is a vector (rank-1), finds the k largest entries in the vector and outputs their values and indices as vectors. Thus values[j] is the j-th largest entry in input, and its index is indices[j].

For matrices (resp. higher rank input), computes the top k entries in each row (resp. vector along the last dimension). Thus,

values.shape = indices.shape = input.shape[:-1] + [k]

If two elements are equal, the lower-index element appears first.

source

Reactant.MLIR.Dialects.chlo.zeta Method

zeta

Returns Zeta(operand, operand) element-wise.

$

(\zeta(x, q) = \sum_{n=0}^{\infty} (q + n)^{-x}) $

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/enzyme.html b/previews/PR363/api/enzyme.html new file mode 100644 index 00000000..7f1a5e8f --- /dev/null +++ b/previews/PR363/api/enzyme.html @@ -0,0 +1,28 @@ + + + + + + Enzyme Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/previews/PR363/api/func.html b/previews/PR363/api/func.html new file mode 100644 index 00000000..cf016ff9 --- /dev/null +++ b/previews/PR363/api/func.html @@ -0,0 +1,53 @@ + + + + + + Func Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Func Dialect

Refer to the official documentation for more details.

Reactant.MLIR.Dialects.func.call Method

call

The func.call operation represents a direct call to a function that is within the same symbol scope as the call. The operands and result types of the call must match the specified function type. The callee is encoded as a symbol reference attribute named "callee".

Example

mlir
%2 = func.call @my_add(%0, %1) : (f32, f32) -> f32

source

Reactant.MLIR.Dialects.func.call_indirect Method

call_indirect

The func.call_indirect operation represents an indirect call to a value of function type. The operands and result types of the call must match the specified function type.

Function values can be created with the func.constant operation.

Example

mlir
%func = func.constant @my_func : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
+%result = func.call_indirect %func(%0, %1) : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>

source

Reactant.MLIR.Dialects.func.constant Method

constant

The func.constant operation produces an SSA value from a symbol reference to a func.func operation

Example

mlir
// Reference to function @myfn.
+%2 = func.constant @myfn : (tensor<16xf32>, f32) -> tensor<16xf32>
+
+// Equivalent generic forms
+%2 = "func.constant"() { value = @myfn } : () -> ((tensor<16xf32>, f32) -> tensor<16xf32>)

MLIR does not allow direct references to functions in SSA operands because the compiler is multithreaded, and disallowing SSA values to directly reference a function simplifies this (rationale).

source

Reactant.MLIR.Dialects.func.func_ Method

func_

Operations within the function cannot implicitly capture values defined outside of the function, i.e. Functions are IsolatedFromAbove. All external references must use function arguments or attributes that establish a symbolic connection (e.g. symbols referenced by name via a string attribute like SymbolRefAttr). An external function declaration (used when referring to a function declared in some other module) has no body. While the MLIR textual form provides a nice inline syntax for function arguments, they are internally represented as “block arguments” to the first block in the region.

Only dialect attribute names may be specified in the attribute dictionaries for function arguments, results, or the function itself.

Example

mlir
// External function definitions.
+func.func private @abort()
+func.func private @scribble(i32, i64, memref<? x 128 x f32, #layout_map0>) -> f64
+
+// A function that returns its argument twice:
+func.func @count(%x: i64) -> (i64, i64)
+  attributes {fruit = "banana"} {
+  return %x, %x: i64, i64
+}
+
+// A function with an argument attribute
+func.func private @example_fn_arg(%x: i32 {swift.self = unit})
+
+// A function with a result attribute
+func.func private @example_fn_result() -> (f64 {dialectName.attrName = 0 : i64})
+
+// A function with an attribute
+func.func private @example_fn_attr() attributes {dialectName.attrName = false}

source

Reactant.MLIR.Dialects.func.return_ Method

return_

The func.return operation represents a return operation within a function. The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the function that contains the operation.

Example

mlir
func.func @foo() : (i32, f8) {
+  ...
+  return %0, %1 : i32, f8
+}

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/mlirc.html b/previews/PR363/api/mlirc.html new file mode 100644 index 00000000..5e3bbdd9 --- /dev/null +++ b/previews/PR363/api/mlirc.html @@ -0,0 +1,36 @@ + + + + + + Higher level API | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Higher level API

Core.Bool Method
julia
Bool(attr)

Returns the value stored in the given bool attribute.

source

Core.Float64 Method
julia
Float64(attr)

Returns the value stored in the given floating point attribute, interpreting the value as double.

source

Core.Int64 Method
julia
Int64(attr)

Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.

source

Core.String Method
julia
String(attr)

Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.

source

Core.String Method
julia
String(ident)

Gets the string value of the identifier.

source

Core.UInt64 Method
julia
UInt64(attr)

Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.

source

Reactant.MLIR.IR.AffineMap Method
julia
AffineMap(ndims, nsymbols, affineExprs; context=context())

Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.

source

Reactant.MLIR.IR.AffineMap Method
julia
AffineMap(ndims, nsymbols; context=context())

Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.

source

Reactant.MLIR.IR.AffineMap Method
julia
AffineMap(attr)

Returns the affine map wrapped in the given affine map attribute.

source

Reactant.MLIR.IR.AffineMap Method
julia
AffineMap(; context=context())

Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(str; context=context())

Creates a string attribute in the given context containing the given string.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(value; context=context())

Creates a bool attribute in the given context with the given value.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(elements; context=context())

Creates a dictionary attribute containing the given list of elements in the provided context.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(affineMap)

Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(type, str)

Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(type)

Creates a type attribute wrapping the given type in the same context as the type.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(float; context=context(), location=Location(), check=false)

Creates a floating point attribute in the given context with the given double value and double-precision FP semantics. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(complex; context=context(), location=Location(), check=false)

Creates a complex attribute in the given context with the given complex value and double-precision FP semantics.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(elements; context=context())

Creates an array element containing the given list of elements in the given context.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute()

Returns an empty attribute.

source

Reactant.MLIR.IR.Attribute Method
julia
Attribute(int)

Creates an integer attribute of the given type with the given integer value.

source

Reactant.MLIR.IR.Block Method
julia
Block(args, locs)

Creates a new empty block with the given argument types and transfers ownership to the caller.

source

Reactant.MLIR.IR.BlockIterator Type
julia
BlockIterator(region::Region)

Iterates over all blocks in the given region.

source

Reactant.MLIR.IR.Context Method
julia
Context()

Creates an MLIR context and transfers its ownership to the caller.

source

Reactant.MLIR.IR.ExecutionEngine Type
julia
ExecutionEngine(op, optLevel, sharedlibs = [])

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

source

Reactant.MLIR.IR.Identifier Method
julia
Identifier(context, str)

Gets an identifier with the given string value.

source

Reactant.MLIR.IR.IntegerSet Method
julia
IntegerSet(ndims, nsymbols, constraints, eqflags; context=context())

Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqflags is 1) or inequalities (eqflags is 0). Both constraints and eqflags need to be arrays of the same length.

source

Reactant.MLIR.IR.IntegerSet Method
julia
Integerset(ndims, nsymbols; context=context())

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

source

Reactant.MLIR.IR.LogicalResult Type
julia
LogicalResult

A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of LogicalResult must only be inspected using the associated functions.

source

Reactant.MLIR.IR.Module Type
julia
Module(location=Location())

Creates a new, empty module and transfers ownership to the caller.

source

Reactant.MLIR.IR.NamedAttribute Method
julia
NamedAttribute(name, attr)

Associates an attribute with the name. Takes ownership of neither.

source

Reactant.MLIR.IR.OpPassManager Method
julia
OpPassManager(opPassManager, operationName)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.

source

Reactant.MLIR.IR.OpPassManager Method
julia
OpPassManager(passManager, operationName)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

source

Reactant.MLIR.IR.OpPassManager Method
julia
OpPassManager(passManager)

Cast a top-level PassManager to a generic OpPassManager.

source

Reactant.MLIR.IR.Operation Method
julia
Operation(module)

Views the module as a generic operation.

source

Reactant.MLIR.IR.OperationIterator Type
julia
OperationIterator(block::Block)

Iterates over all operations for the given block.

source

Reactant.MLIR.IR.PassManager Method
julia
PassManager(anchorOp; context=context())

Create a new top-level PassManager anchored on anchorOp.

source

Reactant.MLIR.IR.PassManager Method
julia
PassManager(; context=context())

Create a new top-level PassManager.

source

Reactant.MLIR.IR.Region Method
julia
Region()

Creates a new empty region and transfers ownership to the caller.

source

Reactant.MLIR.IR.RegionIterator Type
julia
RegionIterator(::Operation)

Iterates over all sub-regions for the given operation.

source

Reactant.MLIR.IR.SymbolTable Method
julia
mlirSymbolTableCreate(operation)

Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.

source

Reactant.MLIR.IR.Type Method
julia
Type(attr)

Returns the type stored in the given type attribute.

source

Reactant.MLIR.IR.Type Method
julia
Type(T::Core.Type{<:Integer}; context=context()

Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(T::Core.Type{<:Signed}; context=context()

Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(T::Core.Type{<:Unsigned}; context=context()

Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(T::Core.Type{Bool}; context=context()

Creates a 1-bit signless integer type in the context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(::Core.Type{Float16}; context=context())

Creates an f16 type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(Core.Type{Float32}; context=context())

Creates an f32 type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(Core.Type{Float64}; context=context())

Creates a f64 type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(::Core.Type{Nothing}; context=context())

Creates a None type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(elements; context=context())
+Type(::Core.Type{<:Tuple{T...}}; context=context())

Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.

source

Reactant.MLIR.IR.Type Method
julia
Type(Complex{T}) where {T}

Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.

source

Base.:* Method
julia
*(lhs, rhs)

Creates an affine mul expression with 'lhs' and 'rhs'.

source

Base.:+ Method
julia
+(lhs, rhs)

Creates an affine add expression with 'lhs' and 'rhs'.

source

Base.:== Method
julia
==(a, b)

Returns true if the two affine expressions are equal.

source

Base.:== Method
julia
==(a, b)

Checks if two affine maps are equal.

source

Base.:== Method
julia
==(a1, a2)

Checks if two attributes are equal.

source

Base.:== Method
julia
==(block, other)

Checks whether two blocks handles point to the same block. This does not perform deep comparison.

source

Base.:== Method
julia
==(ident, other)

Checks whether two identifiers are the same.

source

Base.:== Method
julia
==(s1, s2)

Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

source

Base.:== Method
julia
==(region, other)

Checks whether two region handles point to the same region. This does not perform deep comparison.

source

Base.:== Method
julia
==(t1, t2)

Checks if two types are equal.

source

Base.:== Method
julia
==(typeID1, typeID2)

Checks if two type ids are equal.

source

Base.:== Method
julia
==(value1, value2)

Returns 1 if two values are equal, 0 otherwise.

source

Base.cld Method
julia
cld(lhs, rhs)

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

source

Base.copy Method
julia
copy(op)

Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.

source

Base.div Method
julia
div(lhs, rhs)
+÷(lhs, rhs)
+fld(lhs, rhs)

Creates an affine floordiv expression with 'lhs' and 'rhs'.

source

Base.fill Method
julia
fill(attr, shapedType)

Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).

source

Base.gcd Method
julia
gcd(affineExpr)

Returns the greatest known integral divisor of this affine expression. The result is always positive.

source

Base.hash Method
julia
hash(typeID)

Returns the hash value of the type id.

source

Base.insert! Method
julia
insert!(block, index, operation)

Takes an operation owned by the caller and inserts it as index to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.

source

Base.insert! Method
julia
insert!(region, index, block)

Takes a block owned by the caller and inserts it at index to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.

source

Base.isempty Method
julia
isempty(affineMap)

Checks whether the given affine map is an empty affine map.

source

Base.isperm Method
julia
isperm(affineMap)

Checks whether the given affine map represents a symbol-less permutation map.

source

Base.mod Method
julia
mod(lhs, rhs)

Creates an affine mod expression with 'lhs' and 'rhs'.

source

Base.ndims Method
julia
ndims(affineMap)

Returns the number of dimensions of the given affine map.

source

Base.ndims Method
julia
ndims(set)

Returns the number of dimensions in the given set.

source

Base.ndims Method
julia
ndims(type)

Returns the rank of the given ranked shaped type.

source

Base.parse Method
julia
parse(passManager, pipeline)

Parse a textual MLIR pass pipeline and add it to the provided OpPassManager.

source

Base.parse Method
julia
parse(::Core.Type{Attribute}, str; context=context())

Parses an attribute. The attribute is owned by the context.

source

Base.parse Method
julia
parse(::Type{Module}, module; context=context())

Parses a module from the string and transfers ownership to the caller.

source

Base.parse Method
julia
parse(type; context=context())

Parses a type. The type is owned by the context.

source

Base.push! Method
julia
push!(block, operation)

Takes an operation owned by the caller and appends it to the block.

source

Base.push! Method
julia
push!(region, block)

Takes a block owned by the caller and appends it to the given region.

source

Base.push! Method
julia
push!(symboltable, operation)

Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.

source

Base.replace Method
julia
mlirAffineMapReplace(affineMap, expression => replacement, numResultDims, numResultSyms)

Apply AffineExpr::replace(map) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.

source

Base.replace Method
julia
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

source

Base.reshape Method
julia
Base.reshape(attr, shapedType)

Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.

source

Base.size Method
julia
size(type, i)

Returns the i-th dimension of the given ranked shaped type.

source

Base.write Method
julia
write(fileName, jit)

Dump as an object in fileName.

source

Reactant.MLIR.IR.AffineDimensionExpr Method
julia
AffineDimensionExpr(position; context=context)

Creates an affine dimension expression with 'position' in the context.

source

Reactant.MLIR.IR.BFloat16Type Method

BFloat16Type(; context=context())

Creates a bf16 type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.ConstantAffineMap Method
julia
ConstantAffineMap(val; context=context())

Creates a single constant result affine map in the context. The affine map is owned by the context.

source

Reactant.MLIR.IR.ConstantExpr Method
julia
ConstantExpr(constant::Int; context=context())

Creates an affine constant expression with 'constant' in the context.

source

Reactant.MLIR.IR.DenseElementsAttribute Method
julia
DenseElementsAttribute(array::AbstractArray)

Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.

source

Reactant.MLIR.IR.DenseElementsAttribute Method
julia
DenseElementsAttribute(array::AbstractArray{String})

Creates a dense elements attribute with the given shaped type from string elements.

source

Reactant.MLIR.IR.DenseElementsAttribute Method
julia
DenseElementsAttribute(shapedType, elements)

Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.

source

Reactant.MLIR.IR.FlatSymbolRefAttribute Method
julia
FlatSymbolRefAttribute(ctx, symbol)

Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.

source

Reactant.MLIR.IR.Float8E4M3FN Method
julia
Float8E4M3FN(; context=context())

Creates an f8E4M3FN type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.Float8E5M2 Method
julia
Float8E5M2(; context=context())

Creates an f8E5M2 type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.FunctionType Method
julia
FunctionType(inputs, results; context=context())

Creates a function type, mapping a list of input types to result types.

source

Reactant.MLIR.IR.IdentityAffineMap Method
julia
IdentityAffineMap(ndims; context=context())

Creates an affine map with 'ndims' identity in the context. The affine map is owned by the context.

source

Reactant.MLIR.IR.IndexType Method
julia
IndexType(; context=context())

Creates an index type in the given context. The type is owned by the context.

source

Reactant.MLIR.IR.MemRefType Method
julia
MemRefType(elementType, rank, shape, layout, memorySpace; location=Location(), check=false)

Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.MemRefType Method
julia
MemRefType(elementType, rank, shape, memorySpace; location=Location(), check=false)

Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.MemRefType Method
julia
MemRefType(elementType, memorySpace)

Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.MinorIdentityAffineMap Method
julia
MinorIdentityAffineMap(ndims, nresults; context=context())

Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.

source

Reactant.MLIR.IR.OpaqueAttribute Method
julia
OpaqueAttribute(dialectNamespace, dataLength, data, type; context=context())

Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).

source

Reactant.MLIR.IR.OpaqueType Method
julia
OpaqueType(dialectNamespace, typeData; context=context())

Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).

source

Reactant.MLIR.IR.PermutationAffineMap Method
julia
PermutationAffineMap(permutation; context=context())

Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0] is a valid permutation. [2,0] or [1,1,2] is an invalid invalid permutation). The affine map is owned by the context.

source

Reactant.MLIR.IR.SymbolExpr Method
julia
SymbolExpr(position; context=context())

Creates an affine symbol expression with 'position' in the context.

source

Reactant.MLIR.IR.SymbolRefAttribute Method
julia
SymbolRefAttribute(symbol, references; context=context())

Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.

source

Reactant.MLIR.IR.TensorType Function
julia
TensorType(shape, elementType, encoding=Attribute(); location=Location(), check=false)

Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull to this parameter. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.TensorType Method
julia
TensorType(elementType)

Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.UnitAttribute Method
julia
UnitAttribute(; context=context())

Creates a unit attribute in the given context.

source

Reactant.MLIR.IR.VectorType Method
julia
VectorType(rank, shape, elementType; location=Location(), check=false)

Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

Reactant.MLIR.IR.add_owned_pass! Method
julia
add_owned_pass!(opPassManager, pass)

Add a pass and transfer ownership to the provided OpPassManager. If the pass is not a generic operation pass or matching the type of the provided OpPassManager, a new OpPassManager is implicitly nested under the provided OpPassManager.

source

Reactant.MLIR.IR.add_owned_pass! Method
julia
add_owned_pass!(passManager, pass)

Add a pass and transfer ownership to the provided top-level PassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

source

Reactant.MLIR.IR.add_pipeline! Method
julia
add_pipeline!(passManager, pipelineElements, callback, userData)

Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

Reactant.MLIR.IR.affinemap Method
julia
affinemap(type)

Returns the affine map of the given MemRef type.

source

Reactant.MLIR.IR.argument Method
julia
argument(block, i)

Returns i-th argument of the block.

source

Reactant.MLIR.IR.attr! Method
julia
attr!(op, name, attr)

Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise.

source

Reactant.MLIR.IR.attr Method
julia
attr(op, name)

Returns an attribute attached to the operation given its name.

source

Reactant.MLIR.IR.attr Method
julia
attr(op, i)

Return i-th attribute of the operation.

source

Reactant.MLIR.IR.bitwidth Method
julia
bitwidth(type)

Returns the bitwidth of an integer type.

source

Reactant.MLIR.IR.block Method
julia
block(op)

Gets the block that owns this operation, returning null if the operation is not owned.

source

Reactant.MLIR.IR.block_arg_num Method
julia
block_arg_num(value)

Returns the position of the value in the argument list of its block.

source

Reactant.MLIR.IR.block_owner Method
julia
block_owner(value)

Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.

source

Reactant.MLIR.IR.body Method
julia
body(module)

Gets the body of the module, i.e. the only block it contains.

source

Reactant.MLIR.IR.compose Method
julia
compose(affineExpr, affineMap)

Composes the given map with the given expression.

source

Reactant.MLIR.IR.constraint Method
julia
mlirIntegerSetGetConstraint(set, i)

Returns i-th constraint of the set.

source

Reactant.MLIR.IR.context Method
julia
context(affineExpr)

Gets the context that owns the affine expression.

source

Reactant.MLIR.IR.context Method
julia
context(affineMap)

Gets the context that the given affine map was created with.

source

Reactant.MLIR.IR.context Method
julia
context(attribute)

Gets the context that an attribute was created with.

source

Reactant.MLIR.IR.context Method
julia
context(ident)

Returns the context associated with this identifier

source

Reactant.MLIR.IR.context Method
julia
context(set)

Gets the context in which the given integer set lives.

source

Reactant.MLIR.IR.context Method
julia
context(module)

Gets the context that a module was created with.

source

Reactant.MLIR.IR.context Method
julia
context(op)

Gets the context this operation is associated with.

source

Reactant.MLIR.IR.context Method
julia
context(type)

Gets the context that a type was created with.

source

Reactant.MLIR.IR.data Method
julia
data(attr)

Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.IR.data Method
julia
mlirOpaqueTypeGetData(type)

Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.

source

Reactant.MLIR.IR.delete! Method
julia
delete!(symboltable, operation)

Removes the given operation from the symbol table and erases it.

source

Reactant.MLIR.IR.dynsize Method
julia
dynsize()

Returns the value indicating a dynamic size in a shaped type. Prefer isdynsize to direct comparisons with this value.

source

Reactant.MLIR.IR.dynstrideoroffset Method
julia
mlirShapedTypeGetDynamicStrideOrOffset()

Returns the value indicating a dynamic stride or offset in a shaped type. Prefer isdynstrideoroffset to direct comparisons with this value.

source

Reactant.MLIR.IR.enable_ir_printing! Method
julia
enable_ir_printing!(passManager)

Enable mlir-print-ir-after-all.

source

Reactant.MLIR.IR.enable_verifier! Function
julia
enable_verifier!(passManager, enable)

Enable / disable verify-each.

source

Reactant.MLIR.IR.encoding Method
julia
encoding(type)

Gets the 'encoding' attribute from the ranked tensor type, returning a nothing if none.

source

Reactant.MLIR.IR.failure Method
julia
failure()

Creates a logical result representing a failure.

source

Reactant.MLIR.IR.first_block Method
julia
first_block(region)

Gets the first block in the region.

source

Reactant.MLIR.IR.first_op Method
julia
first_op(block)

Returns the first operation in the block or nothing if empty.

source

Reactant.MLIR.IR.first_use Method
julia
first_use(value)

Returns an OpOperand representing the first use of the value, or a nothing if there are no uses.

source

Reactant.MLIR.IR.flatsymbol Method
julia
flatsymbol(attr)

Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.IR.hasrank Method
julia
hasrank(type)

Checks whether the given shaped type is ranked.

source

Reactant.MLIR.IR.hasstaticshape Method
julia
hasstaticshape(type)

Checks whether the given shaped type has a static shape.

source

Reactant.MLIR.IR.input Method
julia
input(type, i)

Returns the i-th input type.

source

Reactant.MLIR.IR.insert_after! Method
julia
insert_after!(block, reference, operation)

Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.

source

Reactant.MLIR.IR.insert_after! Method
julia
insert_after!(region, reference, block)

Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.

source

Reactant.MLIR.IR.insert_before! Method
julia
insert_before!(block, reference, operation)

Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.

source

Reactant.MLIR.IR.insert_before! Method
julia
insert_before!(region, reference, block)

Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.

source

Reactant.MLIR.IR.is_block_arg Method
julia
is_block_arg(value)

Returns 1 if the value is a block argument, 0 otherwise.

source

Reactant.MLIR.IR.is_op_res Method
julia
is_op_res(value)

Returns 1 if the value is an operation result, 0 otherwise.

source

Reactant.MLIR.IR.is_pure_affine Method
julia
is_pure_affine(affineExpr)

Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

source

Reactant.MLIR.IR.is_registered Method
julia
is_registered(name; context=context())

Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.

source

Reactant.MLIR.IR.is_symbolic_or_constant Method
julia
is_symbolic_or_constant(affineExpr)

Checks whether the given affine expression is made out of only symbols and constants.

source

Reactant.MLIR.IR.isadd Method
julia
isadd(affineExpr)

Checks whether the given affine expression is an add expression.

source

Reactant.MLIR.IR.isaffinemap Method
julia
isaffinemap(attr)

Checks whether the given attribute is an affine map attribute.

source

Reactant.MLIR.IR.isarray Method
julia
isarray(attr)

Checks whether the given attribute is an array attribute.

source

Reactant.MLIR.IR.isbf16 Method
julia
isbf16(type)

Checks whether the given type is a bf16 type.

source

Reactant.MLIR.IR.isbinary Method
julia
isbinary(affineExpr)

Checks whether the given affine expression is binary.

source

Reactant.MLIR.IR.isbool Method
julia
isbool(attr)

Checks whether the given attribute is a bool attribute.

source

Reactant.MLIR.IR.isceildiv Method
julia
isceildiv(affineExpr)

Checks whether the given affine expression is an ceildiv expression.

source

Reactant.MLIR.IR.iscomplex Method
julia
iscomplex(type)

Checks whether the given type is a Complex type.

source

Reactant.MLIR.IR.isconstantexpr Method
julia
isconstantexpr(affineExpr)

Checks whether the given affine expression is a constant expression.

source

Reactant.MLIR.IR.isconstrainteq Method
julia
mlirIntegerSetIsConstraintEq(set, i)

Returns true of the i-th constraint of the set is an equality constraint, false otherwise.

source

Reactant.MLIR.IR.isdenseelements Method
julia
isdenseelements(attr)

Checks whether the given attribute is a dense elements attribute.

source

Reactant.MLIR.IR.isdict Method
julia
isdict(attr)

Checks whether the given attribute is a dictionary attribute.

source

Reactant.MLIR.IR.isdimexpr Method
julia
isdimexpr(affineExpr)

Checks whether the given affine expression is a dimension expression.

source

Reactant.MLIR.IR.isdyndim Method
julia
isdyndim(type, i)

Checks wither the i-th dimension of the given shaped type is dynamic.

source

Reactant.MLIR.IR.isdynsize Method
julia
isdynsize(size)

Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.

source

Reactant.MLIR.IR.isdynstrideoroffset Method
julia
mlirShapedTypeIsDynamicStrideOrOffset(val)

Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.

source

Reactant.MLIR.IR.iselements Method
julia
iselements(attr)

Checks whether the given attribute is an elements attribute.

source

Reactant.MLIR.IR.isempty Method
julia
isempty(set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

source

Reactant.MLIR.IR.isf16 Method
julia
isf16(type)

Checks whether the given type is an f16 type.

source

Reactant.MLIR.IR.isf32 Method
julia
isf32(type)

Checks whether the given type is an f32 type.

source

Reactant.MLIR.IR.isf64 Method
julia
isf64(type)

Checks whether the given type is an f64 type.

source

Reactant.MLIR.IR.isf8e4m3fn Method
julia
isf8e4m3fn(type)

Checks whether the given type is an f8E4M3FN type.

source

Reactant.MLIR.IR.isf8e5m2 Method
julia
isf8e5m2(type)

Checks whether the given type is an f8E5M2 type.

source

Reactant.MLIR.IR.isfailure Method
julia
isfailure(res)

Checks if the given logical result represents a failure.

source

Reactant.MLIR.IR.isflatsymbolref Method
julia
isflatsymbolref(attr)

Checks whether the given attribute is a flat symbol reference attribute.

source

Reactant.MLIR.IR.isfloat Method
julia
isfloat(attr)

Checks whether the given attribute is a floating point attribute.

source

Reactant.MLIR.IR.isfloordiv Method
julia
isfloordiv(affineExpr)

Checks whether the given affine expression is an floordiv expression.

source

Reactant.MLIR.IR.isfunction Method
julia
isfunction(type)

Checks whether the given type is a function type.

source

Reactant.MLIR.IR.isfunctionofdimexpr Method
julia
isfunctionofdimexpr(affineExpr, position)

Checks whether the given affine expression involves AffineDimExpr 'position'.

source

Reactant.MLIR.IR.isidentity Method
julia
isidentity(affineMap)

Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.

source

Reactant.MLIR.IR.isindex Method
julia
isindex(type)

Checks whether the given type is an index type.

source

Reactant.MLIR.IR.isinteger Method
julia
isinteger(attr)

Checks whether the given attribute is an integer attribute.

source

Reactant.MLIR.IR.isinteger Method
julia
isinteger(type)

Checks whether the given type is an integer type.

source

Reactant.MLIR.IR.isintegerset Method
julia
isintegerset(attr)

Checks whether the given attribute is an integer set attribute.

source

Reactant.MLIR.IR.ismemref Method
julia
ismemref(type)

Checks whether the given type is a MemRef type.

source

Reactant.MLIR.IR.isminoridentity Method
julia
isminoridentity(affineMap)

Checks whether the given affine map is a minor identity affine map.

source

Reactant.MLIR.IR.ismod Method
julia
ismod(affineExpr)

Checks whether the given affine expression is an mod expression.

source

Reactant.MLIR.IR.ismul Method
julia
ismul(affineExpr)

Checks whether the given affine expression is an mul expression.

source

Reactant.MLIR.IR.ismultipleof Method
julia
ismultipleof(affineExpr, factor)

Checks whether the given affine expression is a multiple of 'factor'.

source

Reactant.MLIR.IR.isnone Method
julia
mlirTypeIsANone(type)

Checks whether the given type is a None type.

source

Reactant.MLIR.IR.isopaque Method
julia
isopaque(attr)

Checks whether the given attribute is an opaque attribute.

source

Reactant.MLIR.IR.isopaque Method
julia
isopaque(type)

Checks whether the given type is an opaque type.

source

Reactant.MLIR.IR.isprojperm Method
julia
isprojperm(affineMap)

Checks whether the given affine map represents a subset of a symbol-less permutation map.

source

Reactant.MLIR.IR.isrankedtensor Method
julia
isrankedtensor(type)

Checks whether the given type is a ranked tensor type.

source

Reactant.MLIR.IR.isshaped Method
julia
isshaped(type)

Checks whether the given type is a Shaped type.

source

Reactant.MLIR.IR.issigned Method
julia
issigned(type)

Checks whether the given integer type is signed.

source

Reactant.MLIR.IR.issignless Method
julia
issignless(type)

Checks whether the given integer type is signless.

source

Reactant.MLIR.IR.issingleconstant Method
julia
issingleconstant(affineMap)

Checks whether the given affine map is a single result constant affine map.

source

Reactant.MLIR.IR.issparseelements Method
julia
issparseelements(attr)

Checks whether the given attribute is a sparse elements attribute.

source

Reactant.MLIR.IR.issplat Method
julia
issplat(attr)

Checks whether the given dense elements attribute contains a single replicated value (splat).

source

Reactant.MLIR.IR.isstring Method
julia
isstring(attr)

Checks whether the given attribute is a string attribute.

source

Reactant.MLIR.IR.issuccess Method
julia
issuccess(res)

Checks if the given logical result represents a success.

source

Reactant.MLIR.IR.issymbolexpr Method
julia
issymbolexpr(affineExpr)

Checks whether the given affine expression is a symbol expression.

source

Reactant.MLIR.IR.issymbolref Method
julia
issymbolref(attr)

Checks whether the given attribute is a symbol reference attribute.

source

Reactant.MLIR.IR.istensor Method
julia
istensor(type)

Checks whether the given type is a Tensor type.

source

Reactant.MLIR.IR.istuple Method
julia
istuple(type)

Checks whether the given type is a tuple type.

source

Reactant.MLIR.IR.istype Method
julia
istype(attr)

Checks whether the given attribute is a type attribute.

source

Reactant.MLIR.IR.isunit Method
julia
isunit(attr)

Checks whether the given attribute is a unit attribute.

source

Reactant.MLIR.IR.isunrankedmemref Method
julia
mlirTypeIsAUnrankedMemRef(type)

Checks whether the given type is an UnrankedMemRef type.

source

Reactant.MLIR.IR.isunrankedtensor Method
julia
isunrankedtensor(type)

Checks whether the given type is an unranked tensor type.

source

Reactant.MLIR.IR.isunsigned Method
julia
isunsigned(type)

Checks whether the given integer type is unsigned.

source

Reactant.MLIR.IR.isvector Method
julia
isvector(type)

Checks whether the given type is a Vector type.

source

Reactant.MLIR.IR.layout Method
julia
layout(type)

Returns the layout of the given MemRef type.

source

Reactant.MLIR.IR.leafref Method
julia
leafref(attr)

Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.IR.lhs Method
julia
lhs(affineExpr)

Returns the left hand side affine expression of the given affine binary operation expression.

source

Reactant.MLIR.IR.location Method
julia
location(op)

Gets the location of the operation.

source

Reactant.MLIR.IR.lookup Method
julia
lookup(jit, name)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

source

Reactant.MLIR.IR.lookup Method
julia
lookup(symboltable, name)

Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.

source

Reactant.MLIR.IR.majorsubmap Method
julia
majorsubmap(affineMap, nresults)

Returns the affine map consisting of the most major nresults results. Returns the null AffineMap if the nresults is equal to zero. Returns the affineMap if nresults is greater or equals to number of results of the given affine map.

source

Reactant.MLIR.IR.memspace Method
julia
mlirMemRefTypeGetMemorySpace(type)

Returns the memory space of the given MemRef type.

source

Reactant.MLIR.IR.minorsubmap Method
julia
minorsubmap(affineMap, nresults)

Returns the affine map consisting of the most minor nresults results. Returns the null AffineMap if the nresults is equal to zero. Returns the affineMap if nresults is greater or equals to number of results of the given affine map.

source

Reactant.MLIR.IR.move_after! Method
julia
move_after!(op, other)

Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

Reactant.MLIR.IR.move_before! Method
julia
move_before!(op, other)

Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

Reactant.MLIR.IR.name Method
julia
name(op)

Gets the name of the operation as an identifier.

source

Reactant.MLIR.IR.namespace Method
julia
mlirOpaqueAttrGetDialectNamespace(attr)

Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.

source

Reactant.MLIR.IR.namespace Method
julia
mlirOpaqueTypeGetDialectNamespace(type)

Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.

source

Reactant.MLIR.IR.nargs Method
julia
nargs(block)

Returns the number of arguments of the block.

source

Reactant.MLIR.IR.nattrs Method
julia
nattrs(op)

Returns the number of attributes attached to the operation.

source

Reactant.MLIR.IR.nconstraints Method
julia
nconstraints(set)

Returns the number of constraints (equalities + inequalities) in the given set.

source

Reactant.MLIR.IR.nequalities Method
julia
nequalities(set)

Returns the number of equalities in the given set.

source

Reactant.MLIR.IR.next Method
julia
next(block)

Returns the block immediately following the given block in its parent region or nothing if last.

source

Reactant.MLIR.IR.next Method
julia
next(opOperand)

Returns an op operand representing the next use of the value, or nothing if there is no next use.

source

Reactant.MLIR.IR.ninequalities Method
julia
ninequalities(set)

Returns the number of inequalities in the given set.

source

Reactant.MLIR.IR.ninputs Method
julia
ninputs(affineMap)

Returns the number of inputs (dimensions + symbols) of the given affine map.

source

Reactant.MLIR.IR.ninputs Method
julia
ninputs(set)

Returns the number of inputs (dimensions + symbols) in the given set.

source

Reactant.MLIR.IR.ninputs Method
julia
ninputs(type)

Returns the number of input types.

source

Reactant.MLIR.IR.nnestedrefs Method
julia
nnestedrefs(attr)

Returns the number of references nested in the given symbol reference attribute.

source

Reactant.MLIR.IR.noperands Method
julia
noperands(op)

Returns the number of operands of the operation.

source

Reactant.MLIR.IR.nregions Method
julia
nregions(op)

Returns the number of regions attached to the given operation.

source

Reactant.MLIR.IR.nresults Method
julia
nresults(affineMap)

Returns the number of results of the given affine map.

source

Reactant.MLIR.IR.nresults Method
julia
nresults(op)

Returns the number of results of the operation.

source

Reactant.MLIR.IR.nresults Method
julia
nresults(type)

Returns the number of result types.

source

Reactant.MLIR.IR.nsuccessors Method
julia
nsuccessors(op)

Returns the number of successor blocks of the operation.

source

Reactant.MLIR.IR.nsymbols Method
julia
nsymbols(affineMap)

Returns the number of symbols of the given affine map.

source

Reactant.MLIR.IR.nsymbols Method
julia
nsymbols(set)

Returns the number of symbols in the given set.

source

Reactant.MLIR.IR.op_owner Method
julia
op_owner(value)

Returns an operation that produced this value as its result. Asserts if the value is not an op result.

source

Reactant.MLIR.IR.op_res_num Method
julia
op_res_num(value)

Returns the position of the value in the list of results of the operation that produced it.

source

Reactant.MLIR.IR.operand Function
julia
operand(op, i)

Returns i-th operand of the operation.

source

Reactant.MLIR.IR.operand! Method
julia
operand!(op, i, value)

Sets the i-th operand of the operation.

source

Reactant.MLIR.IR.operandindex Method
julia
operandindex(opOperand)

Returns the operand number of an op operand.

source

Reactant.MLIR.IR.owner Method
julia
owner(opOperand)

Returns the owner operation of an op operand.

source

Reactant.MLIR.IR.parent_op Method
julia
parent_op(block)

Returns the closest surrounding operation that contains this block.

source

Reactant.MLIR.IR.parent_op Method
julia
parent_op(op)

Gets the operation that owns this operation, returning null if the operation is not owned.

source

Reactant.MLIR.IR.parent_region Method
julia
parent_region(block)

Returns the region that contains this block.

source

Reactant.MLIR.IR.position Method
julia
position(affineExpr)

Returns the position of the given affine dimension expression, affine symbol expression or ...

source

Reactant.MLIR.IR.push_argument! Method
julia
push_argument!(block, type; location=Location())

Appends an argument of the specified type to the block. Returns the newly added argument.

source

Reactant.MLIR.IR.region Method
julia
region(op, i)

Returns i-th region attached to the operation.

source

Reactant.MLIR.IR.result Function
julia
result(op, i)

Returns i-th result of the operation.

source

Reactant.MLIR.IR.result Function
julia
result(type, i)

Returns the i-th result type.

source

Reactant.MLIR.IR.result Method
julia
result(affineMap, pos)

Returns the result at the given position.

source

Reactant.MLIR.IR.result Method
julia
result(affineMap)

Returns the constant result of the given affine map. The function asserts that the map has a single constant result.

source

Reactant.MLIR.IR.rhs Method
julia
rhs(affineExpr)

Returns the right hand side affine expression of the given affine binary operation expression.

source

Reactant.MLIR.IR.rmattr! Method
julia
rmattr!(op, name)

Removes an attribute by name. Returns false if the attribute was not found and true if removed.

source

Reactant.MLIR.IR.rmfromparent! Method
julia
rmfromparent!(op)

Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.

source

Reactant.MLIR.IR.rootref Method
julia
rootref(attr)

Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.IR.run! Method
julia
run!(passManager, module)

Run the provided passManager on the given module.

source

Reactant.MLIR.IR.submap Method
julia
submap(affineMap, positions)

Returns the affine map consisting of the positions subset.

source

Reactant.MLIR.IR.success Method
julia
success()

Creates a logical result representing a success.

source

Reactant.MLIR.IR.successor Method
julia
successor(op, i)

Returns i-th successor of the operation.

source

Reactant.MLIR.IR.terminator Method
julia
terminator(block)

Returns the terminator operation in the block or nothing if no terminator.

source

Reactant.MLIR.IR.type! Method
julia
set_type!(value, type)

Sets the type of the block argument to the given type.

source

Reactant.MLIR.IR.type Method
julia
type(attribute)

Gets the type of this attribute.

source

Reactant.MLIR.IR.type Method
julia
type(value)

Returns the type of the value.

source

Reactant.MLIR.IR.typeid Method
julia
typeid(attribute)

Gets the type id of the attribute.

source

Reactant.MLIR.IR.typeid Method
julia
typeid(op)

Gets the type id of the operation. Returns null if the operation does not have a registered operation description.

source

Reactant.MLIR.IR.typeid Method
julia
typeid(type)

Gets the type ID of the type.

source

Reactant.MLIR.IR.value Method
julia
value(affineExpr)

Returns the value of the given affine constant expression.

source

Reactant.MLIR.IR.verify Method
julia
verify(op)

Verify the operation and return true if it passes, false if it fails.

source

Reactant.MLIR.IR.verifyall Method
julia
verifyall(operation; debug=false)

Prints the operations which could not be verified.

source

Reactant.MLIR.IR.@affinemap Macro
julia
@affinemap (d1, d2, d3, ...)[s1, s2, ...] -> (d0 + d1, ...)

Returns an affine map from the provided Julia expression. On the right hand side are allowed the following function calls:

  • +, *, ÷, %, fld, cld

The rhs can only contains dimensions and symbols present on the left hand side or integer literals.

julia
julia> using Reactant.MLIR: IR
+
+julia> IR.context!(IR.Context()) do
+           IR.@affinemap (d1, d2)[s0] -> (d1 + s0, d2 % 10)
+       end
+MLIR.IR.AffineMap(#= (d0, d1)[s0] -> (d0 + s0, d1 mod 10) =#)

source

MLIR C API

Reactant.MLIR.API.LLVMAttributeRef Type

Used to represent an attributes.

See also

llvm::Attribute

source

Reactant.MLIR.API.LLVMBasicBlockRef Type

Represents a basic block of instructions in LLVM IR.

This models llvm::BasicBlock.

source

Reactant.MLIR.API.LLVMBinaryRef Type

See also

llvm::object::Binary

source

Reactant.MLIR.API.LLVMBool Type

LLVMCSupportTypes Types and Enumerations

@{

source

Reactant.MLIR.API.LLVMBuilderRef Type

Represents an LLVM basic block builder.

This models llvm::IRBuilder.

source

Reactant.MLIR.API.LLVMComdatRef Type

See also

llvm::Comdat

source

Reactant.MLIR.API.LLVMContextRef Type

The top-level container for all LLVM global data. See the LLVMContext class.

source

Reactant.MLIR.API.LLVMDIBuilderRef Type

Represents an LLVM debug info builder.

This models llvm::DIBuilder.

source

Reactant.MLIR.API.LLVMDbgRecordRef Type

See also

llvm::DbgRecord

source

Reactant.MLIR.API.LLVMDiagnosticInfoRef Type

See also

llvm::DiagnosticInfo

source

Reactant.MLIR.API.LLVMJITEventListenerRef Type

See also

llvm::JITEventListener

source

Reactant.MLIR.API.LLVMMemoryBufferRef Type

Used to pass regions of memory through LLVM interfaces.

See also

llvm::MemoryBuffer

source

Reactant.MLIR.API.LLVMMetadataRef Type

Represents an LLVM Metadata.

This models llvm::Metadata.

source

Reactant.MLIR.API.LLVMModuleFlagEntry Type

See also

llvm::Module::ModuleFlagEntry

source

Reactant.MLIR.API.LLVMModuleProviderRef Type

Interface used to provide a module to JIT or interpreter. This is now just a synonym for llvm::Module, but we have to keep using the different type to keep binary compatibility.

source

Reactant.MLIR.API.LLVMModuleRef Type

The top-level container for all other LLVM Intermediate Representation (IR) objects.

See also

llvm::Module

source

Reactant.MLIR.API.LLVMNamedMDNodeRef Type

Represents an LLVM Named Metadata Node.

This models llvm::NamedMDNode.

source

Reactant.MLIR.API.LLVMOperandBundleRef Type

See also

llvm::OperandBundleDef

source

Reactant.MLIR.API.LLVMPassManagerRef Type

See also

llvm::PassManagerBase

source

Reactant.MLIR.API.LLVMTypeRef Type

Each value in the LLVM IR has a type, an LLVMTypeRef.

See also

llvm::Type

source

Reactant.MLIR.API.LLVMUseRef Type

Used to get the users and usees of a Value.

See also

llvm::Use

source

Reactant.MLIR.API.LLVMValueMetadataEntry Type

Represents an entry in a Global Object's metadata attachments.

This models std::pair<unsigned, MDNode *>

source

Reactant.MLIR.API.LLVMValueRef Type

Represents an individual value in LLVM IR.

This models llvm::Value.

source

Reactant.MLIR.API.MlirDiagnostic Type
julia
MlirDiagnostic

An opaque reference to a diagnostic, always owned by the diagnostics engine (context). Must not be stored outside of the diagnostic handler.

source

Reactant.MLIR.API.MlirDiagnosticHandler Type

Diagnostic handler type. Accepts a reference to a diagnostic, which is only guaranteed to be live during the call. The handler is passed the userData that was provided when the handler was attached to a context. If the handler processed the diagnostic completely, it is expected to return success. Otherwise, it is expected to return failure to indicate that other handlers should attempt to process the diagnostic.

source

Reactant.MLIR.API.MlirDiagnosticHandlerID Type

Opaque identifier of a diagnostic handler, useful to detach a handler.

source

Reactant.MLIR.API.MlirDiagnosticSeverity Type
julia
MlirDiagnosticSeverity

Severity of a diagnostic.

source

Reactant.MLIR.API.MlirExternalPassCallbacks Type
julia
MlirExternalPassCallbacks

Structure of external MlirPass callbacks. All callbacks are required to be set unless otherwise specified.

FieldNote
constructThis callback is called from the pass is created. This is analogous to a C++ pass constructor.
destructThis callback is called when the pass is destroyed This is analogous to a C++ pass destructor.
initializeThis callback is optional. The callback is called before the pass is run, allowing a chance to initialize any complex state necessary for running the pass. See Pass::initialize(MLIRContext *).
cloneThis callback is called when the pass is cloned. See Pass::clonePass().
runThis callback is called when the pass is run. See Pass::runOnOperation().

source

Reactant.MLIR.API.MlirLlvmThreadPool Type
julia
MlirLlvmThreadPool

Re-export llvm::ThreadPool so as to avoid including the LLVM C API directly.

source

Reactant.MLIR.API.MlirLogicalResult Type
julia
MlirLogicalResult

A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of MlirLogicalResult must only be inspected using the associated functions.

source

Reactant.MLIR.API.MlirNamedAttribute Type
julia
MlirNamedAttribute

Named MLIR attribute.

A named attribute is essentially a (name, attribute) pair where the name is a string.

source

Reactant.MLIR.API.MlirOperationState Type
julia
MlirOperationState

An auxiliary class for constructing operations.

This class contains all the information necessary to construct the operation. It owns the MlirRegions it has pointers to and does not own anything else. By default, the state can be constructed from a name and location, the latter being also used to access the context, and has no other components. These components can be added progressively until the operation is constructed. Users are not expected to rely on the internals of this class and should use mlirOperationState* functions instead.

source

Reactant.MLIR.API.MlirOperationWalkCallback Type

Operation walker type. The handler is passed an (opaque) reference to an operation and a pointer to a userData.

source

Reactant.MLIR.API.MlirShapedTypeComponentsCallback Type

These callbacks are used to return multiple shaped type components from functions while transferring ownership to the caller. The first argument is the has rank boolean followed by the the rank and a pointer to the shape (if applicable). The next argument is the element type, then the attribute. The last argument is an opaque pointer forwarded to the callback by the caller. This callback will be called potentially multiple times for each shaped type components.

source

Reactant.MLIR.API.MlirSparseTensorLevelType Type

Dimension level types (and properties) that define sparse tensors. See the documentation in SparseTensorAttrDefs.td for their meaning.

These correspond to SparseTensorEncodingAttr::LevelType in the C++ API. If updating, keep them in sync and update the static_assert in the impl file.

source

Reactant.MLIR.API.MlirStringCallback Type

A callback for returning string references.

This function is called back by the functions that need to return a reference to the portion of the string with the following arguments: - an MlirStringRef representing the current portion of the string - a pointer to user data forwarded from the printing call.

source

Reactant.MLIR.API.MlirStringRef Type
julia
MlirStringRef

A pointer to a sized fragment of a string, not necessarily null-terminated. Does not own the underlying string. This is equivalent to llvm::StringRef.

FieldNote
dataPointer to the first symbol.
lengthLength of the fragment.

source

Reactant.MLIR.API.MlirTypesCallback Type

These callbacks are used to return multiple types from functions while transferring ownership to the caller. The first argument is the number of consecutive elements pointed to by the second argument. The third argument is an opaque pointer forwarded to the callback by the caller.

source

Reactant.MLIR.API.MlirWalkOrder Type
julia
MlirWalkOrder

Traversal order for operation walk.

source

Reactant.MLIR.API.MlirWalkResult Type
julia
MlirWalkResult

Operation walk result.

source

Reactant.MLIR.API.LLVMAddSymbol Method
julia
LLVMAddSymbol(symbolName, symbolValue)

This functions permanently adds the symbol symbolName with the value symbolValue. These symbols are searched before any libraries.

See also

sys::DynamicLibrary::AddSymbol()

source

Reactant.MLIR.API.LLVMLoadLibraryPermanently Method
julia
LLVMLoadLibraryPermanently(Filename)

This function permanently loads the dynamic library at the given path. It is safe to call this function multiple times for the same library.

See also

sys::DynamicLibrary::LoadLibraryPermanently()

source

Reactant.MLIR.API.LLVMParseCommandLineOptions Method
julia
LLVMParseCommandLineOptions(argc, argv, Overview)

This function parses the given arguments using the LLVM command line parser. Note that the only stable thing about this function is its signature; you cannot rely on any particular set of command line arguments being interpreted the same way across LLVM versions.

See also

llvm:🆑:ParseCommandLineOptions()

source

Reactant.MLIR.API.LLVMSearchForAddressOfSymbol Method
julia
LLVMSearchForAddressOfSymbol(symbolName)

This function will search through all previously loaded dynamic libraries for the symbol symbolName. If it is found, the address of that symbol is returned. If not, null is returned.

See also

sys::DynamicLibrary::SearchForAddressOfSymbol()

source

Reactant.MLIR.API.mlirAffineAddExprGet Method
julia
mlirAffineAddExprGet(lhs, rhs)

Creates an affine add expression with 'lhs' and 'rhs'.

source

Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS Method
julia
mlirAffineBinaryOpExprGetLHS(affineExpr)

Returns the left hand side affine expression of the given affine binary operation expression.

source

Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS Method
julia
mlirAffineBinaryOpExprGetRHS(affineExpr)

Returns the right hand side affine expression of the given affine binary operation expression.

source

Reactant.MLIR.API.mlirAffineCeilDivExprGet Method
julia
mlirAffineCeilDivExprGet(lhs, rhs)

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

source

Reactant.MLIR.API.mlirAffineConstantExprGet Method
julia
mlirAffineConstantExprGet(ctx, constant)

Creates an affine constant expression with 'constant' in the context.

source

Reactant.MLIR.API.mlirAffineConstantExprGetValue Method
julia
mlirAffineConstantExprGetValue(affineExpr)

Returns the value of the given affine constant expression.

source

Reactant.MLIR.API.mlirAffineDimExprGet Method
julia
mlirAffineDimExprGet(ctx, position)

Creates an affine dimension expression with 'position' in the context.

source

Reactant.MLIR.API.mlirAffineDimExprGetPosition Method
julia
mlirAffineDimExprGetPosition(affineExpr)

Returns the position of the given affine dimension expression.

source

Reactant.MLIR.API.mlirAffineExprCompose Method
julia
mlirAffineExprCompose(affineExpr, affineMap)

Composes the given map with the given expression.

source

Reactant.MLIR.API.mlirAffineExprDump Method
julia
mlirAffineExprDump(affineExpr)

Prints the affine expression to the standard error stream.

source

Reactant.MLIR.API.mlirAffineExprEqual Method
julia
mlirAffineExprEqual(lhs, rhs)

Returns true if the two affine expressions are equal.

source

Reactant.MLIR.API.mlirAffineExprGetContext Method
julia
mlirAffineExprGetContext(affineExpr)

Gets the context that owns the affine expression.

source

Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor Method
julia
mlirAffineExprGetLargestKnownDivisor(affineExpr)

Returns the greatest known integral divisor of this affine expression. The result is always positive.

source

Reactant.MLIR.API.mlirAffineExprIsAAdd Method
julia
mlirAffineExprIsAAdd(affineExpr)

Checks whether the given affine expression is an add expression.

source

Reactant.MLIR.API.mlirAffineExprIsABinary Method
julia
mlirAffineExprIsABinary(affineExpr)

Checks whether the given affine expression is binary.

source

Reactant.MLIR.API.mlirAffineExprIsACeilDiv Method
julia
mlirAffineExprIsACeilDiv(affineExpr)

Checks whether the given affine expression is an ceildiv expression.

source

Reactant.MLIR.API.mlirAffineExprIsAConstant Method
julia
mlirAffineExprIsAConstant(affineExpr)

Checks whether the given affine expression is a constant expression.

source

Reactant.MLIR.API.mlirAffineExprIsADim Method
julia
mlirAffineExprIsADim(affineExpr)

Checks whether the given affine expression is a dimension expression.

source

Reactant.MLIR.API.mlirAffineExprIsAFloorDiv Method
julia
mlirAffineExprIsAFloorDiv(affineExpr)

Checks whether the given affine expression is an floordiv expression.

source

Reactant.MLIR.API.mlirAffineExprIsAMod Method
julia
mlirAffineExprIsAMod(affineExpr)

Checks whether the given affine expression is an mod expression.

source

Reactant.MLIR.API.mlirAffineExprIsAMul Method
julia
mlirAffineExprIsAMul(affineExpr)

Checks whether the given affine expression is an mul expression.

source

Reactant.MLIR.API.mlirAffineExprIsASymbol Method
julia
mlirAffineExprIsASymbol(affineExpr)

Checks whether the given affine expression is a symbol expression.

source

Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim Method
julia
mlirAffineExprIsFunctionOfDim(affineExpr, position)

Checks whether the given affine expression involves AffineDimExpr 'position'.

source

Reactant.MLIR.API.mlirAffineExprIsMultipleOf Method
julia
mlirAffineExprIsMultipleOf(affineExpr, factor)

Checks whether the given affine expression is a multiple of 'factor'.

source

Reactant.MLIR.API.mlirAffineExprIsNull Method
julia
mlirAffineExprIsNull(affineExpr)

Returns true if the given affine expression is a null expression. Note constant zero is not a null expression.

source

Reactant.MLIR.API.mlirAffineExprIsPureAffine Method
julia
mlirAffineExprIsPureAffine(affineExpr)

Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

source

Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant Method
julia
mlirAffineExprIsSymbolicOrConstant(affineExpr)

Checks whether the given affine expression is made out of only symbols and constants.

source

Reactant.MLIR.API.mlirAffineExprPrint Method
julia
mlirAffineExprPrint(affineExpr, callback, userData)

Prints an affine expression by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirAffineFloorDivExprGet Method
julia
mlirAffineFloorDivExprGet(lhs, rhs)

Creates an affine floordiv expression with 'lhs' and 'rhs'.

source

Reactant.MLIR.API.mlirAffineMapAttrGet Method
julia
mlirAffineMapAttrGet(map)

Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.

source

Reactant.MLIR.API.mlirAffineMapAttrGetTypeID Method
julia
mlirAffineMapAttrGetTypeID()

Returns the typeID of an AffineMap attribute.

source

Reactant.MLIR.API.mlirAffineMapAttrGetValue Method
julia
mlirAffineMapAttrGetValue(attr)

Returns the affine map wrapped in the given affine map attribute.

source

Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols Method
julia
mlirAffineMapCompressUnusedSymbols(affineMaps, size, result, populateResult)

Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps. Asserts that all maps in affineMaps are normalized to the same number of dims and symbols. Takes a callback populateResult to fill the res container with value m at entry idx. This allows returning without worrying about ownership considerations.

source

Reactant.MLIR.API.mlirAffineMapConstantGet Method
julia
mlirAffineMapConstantGet(ctx, val)

Creates a single constant result affine map in the context. The affine map is owned by the context.

source

Reactant.MLIR.API.mlirAffineMapDump Method
julia
mlirAffineMapDump(affineMap)

Prints the affine map to the standard error stream.

source

Reactant.MLIR.API.mlirAffineMapEmptyGet Method
julia
mlirAffineMapEmptyGet(ctx)

Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.

source

Reactant.MLIR.API.mlirAffineMapEqual Method
julia
mlirAffineMapEqual(a1, a2)

Checks if two affine maps are equal.

source

Reactant.MLIR.API.mlirAffineMapGet Method
julia
mlirAffineMapGet(ctx, dimCount, symbolCount, nAffineExprs, affineExprs)

Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.

source

Reactant.MLIR.API.mlirAffineMapGetContext Method
julia
mlirAffineMapGetContext(affineMap)

Gets the context that the given affine map was created with

source

Reactant.MLIR.API.mlirAffineMapGetMajorSubMap Method
julia
mlirAffineMapGetMajorSubMap(affineMap, numResults)

Returns the affine map consisting of the most major numResults results. Returns the null AffineMap if the numResults is equal to zero. Returns the affineMap if numResults is greater or equals to number of results of the given affine map.

source

Reactant.MLIR.API.mlirAffineMapGetMinorSubMap Method
julia
mlirAffineMapGetMinorSubMap(affineMap, numResults)

Returns the affine map consisting of the most minor numResults results. Returns the null AffineMap if the numResults is equal to zero. Returns the affineMap if numResults is greater or equals to number of results of the given affine map.

source

Reactant.MLIR.API.mlirAffineMapGetNumDims Method
julia
mlirAffineMapGetNumDims(affineMap)

Returns the number of dimensions of the given affine map.

source

Reactant.MLIR.API.mlirAffineMapGetNumInputs Method
julia
mlirAffineMapGetNumInputs(affineMap)

Returns the number of inputs (dimensions + symbols) of the given affine map.

source

Reactant.MLIR.API.mlirAffineMapGetNumResults Method
julia
mlirAffineMapGetNumResults(affineMap)

Returns the number of results of the given affine map.

source

Reactant.MLIR.API.mlirAffineMapGetNumSymbols Method
julia
mlirAffineMapGetNumSymbols(affineMap)

Returns the number of symbols of the given affine map.

source

Reactant.MLIR.API.mlirAffineMapGetResult Method
julia
mlirAffineMapGetResult(affineMap, pos)

Returns the result at the given position.

source

Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult Method
julia
mlirAffineMapGetSingleConstantResult(affineMap)

Returns the constant result of the given affine map. The function asserts that the map has a single constant result.

source

Reactant.MLIR.API.mlirAffineMapGetSubMap Method
julia
mlirAffineMapGetSubMap(affineMap, size, resultPos)

Returns the affine map consisting of the resultPos subset.

source

Reactant.MLIR.API.mlirAffineMapIsEmpty Method
julia
mlirAffineMapIsEmpty(affineMap)

Checks whether the given affine map is an empty affine map.

source

Reactant.MLIR.API.mlirAffineMapIsIdentity Method
julia
mlirAffineMapIsIdentity(affineMap)

Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.

source

Reactant.MLIR.API.mlirAffineMapIsMinorIdentity Method
julia
mlirAffineMapIsMinorIdentity(affineMap)

Checks whether the given affine map is a minor identity affine map.

source

Reactant.MLIR.API.mlirAffineMapIsNull Method
julia
mlirAffineMapIsNull(affineMap)

Checks whether an affine map is null.

source

Reactant.MLIR.API.mlirAffineMapIsPermutation Method
julia
mlirAffineMapIsPermutation(affineMap)

Checks whether the given affine map represents a symbol-less permutation map.

source

Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation Method
julia
mlirAffineMapIsProjectedPermutation(affineMap)

Checks whether the given affine map represents a subset of a symbol-less permutation map.

source

Reactant.MLIR.API.mlirAffineMapIsSingleConstant Method
julia
mlirAffineMapIsSingleConstant(affineMap)

Checks whether the given affine map is a single result constant affine map.

source

Reactant.MLIR.API.mlirAffineMapMinorIdentityGet Method
julia
mlirAffineMapMinorIdentityGet(ctx, dims, results)

Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.

source

Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet Method
julia
mlirAffineMapMultiDimIdentityGet(ctx, numDims)

Creates an affine map with 'numDims' identity in the context. The affine map is owned by the context.

source

Reactant.MLIR.API.mlirAffineMapPermutationGet Method
julia
mlirAffineMapPermutationGet(ctx, size, permutation)

Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0] is a valid permutation. [2,0] or [1,1,2] is an invalid permutation.) The affine map is owned by the context.

source

Reactant.MLIR.API.mlirAffineMapPrint Method
julia
mlirAffineMapPrint(affineMap, callback, userData)

Prints an affine map by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirAffineMapReplace Method
julia
mlirAffineMapReplace(affineMap, expression, replacement, numResultDims, numResultSyms)

Apply AffineExpr::replace(map) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.

source

Reactant.MLIR.API.mlirAffineMapZeroResultGet Method
julia
mlirAffineMapZeroResultGet(ctx, dimCount, symbolCount)

Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.

source

Reactant.MLIR.API.mlirAffineModExprGet Method
julia
mlirAffineModExprGet(lhs, rhs)

Creates an affine mod expression with 'lhs' and 'rhs'.

source

Reactant.MLIR.API.mlirAffineMulExprGet Method
julia
mlirAffineMulExprGet(lhs, rhs)

Creates an affine mul expression with 'lhs' and 'rhs'.

source

Reactant.MLIR.API.mlirAffineSymbolExprGet Method
julia
mlirAffineSymbolExprGet(ctx, position)

Creates an affine symbol expression with 'position' in the context.

source

Reactant.MLIR.API.mlirAffineSymbolExprGetPosition Method
julia
mlirAffineSymbolExprGetPosition(affineExpr)

Returns the position of the given affine symbol expression.

source

Reactant.MLIR.API.mlirAnyQuantizedTypeGet Method
julia
mlirAnyQuantizedTypeGet(flags, storageType, expressedType, storageTypeMin, storageTypeMax)

Creates an instance of AnyQuantizedType with the given parameters in the same context as storageType and returns it. The instance is owned by the context.

source

Reactant.MLIR.API.mlirArrayAttrGet Method
julia
mlirArrayAttrGet(ctx, numElements, elements)

Creates an array element containing the given list of elements in the given context.

source

Reactant.MLIR.API.mlirArrayAttrGetElement Method
julia
mlirArrayAttrGetElement(attr, pos)

Returns pos-th element stored in the given array attribute.

source

Reactant.MLIR.API.mlirArrayAttrGetNumElements Method
julia
mlirArrayAttrGetNumElements(attr)

Returns the number of elements stored in the given array attribute.

source

Reactant.MLIR.API.mlirArrayAttrGetTypeID Method
julia
mlirArrayAttrGetTypeID()

Returns the typeID of an Array attribute.

source

Reactant.MLIR.API.mlirAsmStateCreateForOperation Method
julia
mlirAsmStateCreateForOperation(op, flags)

Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state. Must be freed with a call to mlirAsmStateDestroy().

source

Reactant.MLIR.API.mlirAsmStateCreateForValue Method
julia
mlirAsmStateCreateForValue(value, flags)

Creates new AsmState from value. Must be freed with a call to mlirAsmStateDestroy().

source

Reactant.MLIR.API.mlirAsmStateDestroy Method
julia
mlirAsmStateDestroy(state)

Destroys printing flags created with mlirAsmStateCreate.

source

Reactant.MLIR.API.mlirAttributeDump Method
julia
mlirAttributeDump(attr)

Prints the attribute to the standard error stream.

source

Reactant.MLIR.API.mlirAttributeEqual Method
julia
mlirAttributeEqual(a1, a2)

Checks if two attributes are equal.

source

Reactant.MLIR.API.mlirAttributeGetContext Method
julia
mlirAttributeGetContext(attribute)

Gets the context that an attribute was created with.

source

Reactant.MLIR.API.mlirAttributeGetDialect Method
julia
mlirAttributeGetDialect(attribute)

Gets the dialect of the attribute.

source

Reactant.MLIR.API.mlirAttributeGetNull Method
julia
mlirAttributeGetNull()

Returns an empty attribute.

source

Reactant.MLIR.API.mlirAttributeGetType Method
julia
mlirAttributeGetType(attribute)

Gets the type of this attribute.

source

Reactant.MLIR.API.mlirAttributeGetTypeID Method
julia
mlirAttributeGetTypeID(attribute)

Gets the type id of the attribute.

source

Reactant.MLIR.API.mlirAttributeIsAAffineMap Method
julia
mlirAttributeIsAAffineMap(attr)

Checks whether the given attribute is an affine map attribute.

source

Reactant.MLIR.API.mlirAttributeIsAArray Method
julia
mlirAttributeIsAArray(attr)

Checks whether the given attribute is an array attribute.

source

Reactant.MLIR.API.mlirAttributeIsABool Method
julia
mlirAttributeIsABool(attr)

Checks whether the given attribute is a bool attribute.

source

Reactant.MLIR.API.mlirAttributeIsADenseBoolArray Method
julia
mlirAttributeIsADenseBoolArray(attr)

Checks whether the given attribute is a dense array attribute.

source

Reactant.MLIR.API.mlirAttributeIsADenseElements Method
julia
mlirAttributeIsADenseElements(attr)

Checks whether the given attribute is a dense elements attribute.

source

Reactant.MLIR.API.mlirAttributeIsADictionary Method
julia
mlirAttributeIsADictionary(attr)

Checks whether the given attribute is a dictionary attribute.

source

Reactant.MLIR.API.mlirAttributeIsAElements Method
julia
mlirAttributeIsAElements(attr)

Checks whether the given attribute is an elements attribute.

source

Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef Method
julia
mlirAttributeIsAFlatSymbolRef(attr)

Checks whether the given attribute is a flat symbol reference attribute.

source

Reactant.MLIR.API.mlirAttributeIsAFloat Method
julia
mlirAttributeIsAFloat(attr)

Checks whether the given attribute is a floating point attribute.

source

Reactant.MLIR.API.mlirAttributeIsAInteger Method
julia
mlirAttributeIsAInteger(attr)

Checks whether the given attribute is an integer attribute.

source

Reactant.MLIR.API.mlirAttributeIsAIntegerSet Method
julia
mlirAttributeIsAIntegerSet(attr)

Checks whether the given attribute is an integer set attribute.

source

Reactant.MLIR.API.mlirAttributeIsAOpaque Method
julia
mlirAttributeIsAOpaque(attr)

Checks whether the given attribute is an opaque attribute.

source

Reactant.MLIR.API.mlirAttributeIsASparseElements Method
julia
mlirAttributeIsASparseElements(attr)

Checks whether the given attribute is a sparse elements attribute.

source

Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr Method
julia
mlirAttributeIsASparseTensorEncodingAttr(attr)

Checks whether the given attribute is a sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirAttributeIsAString Method
julia
mlirAttributeIsAString(attr)

Checks whether the given attribute is a string attribute.

source

Reactant.MLIR.API.mlirAttributeIsASymbolRef Method
julia
mlirAttributeIsASymbolRef(attr)

Checks whether the given attribute is a symbol reference attribute.

source

Reactant.MLIR.API.mlirAttributeIsAType Method
julia
mlirAttributeIsAType(attr)

Checks whether the given attribute is a type attribute.

source

Reactant.MLIR.API.mlirAttributeIsAUnit Method
julia
mlirAttributeIsAUnit(attr)

Checks whether the given attribute is a unit attribute.

source

Reactant.MLIR.API.mlirAttributeIsNull Method
julia
mlirAttributeIsNull(attr)

Checks whether an attribute is null.

source

Reactant.MLIR.API.mlirAttributeParseGet Method
julia
mlirAttributeParseGet(context, attr)

Parses an attribute. The attribute is owned by the context.

source

Reactant.MLIR.API.mlirAttributePrint Method
julia
mlirAttributePrint(attr, callback, userData)

Prints an attribute by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirBF16TypeGet Method
julia
mlirBF16TypeGet(ctx)

Creates a bf16 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirBFloat16TypeGetTypeID Method
julia
mlirBFloat16TypeGetTypeID()

Returns the typeID of an BFloat16 type.

source

Reactant.MLIR.API.mlirBlockAddArgument Method
julia
mlirBlockAddArgument(block, type, loc)

Appends an argument of the specified type to the block. Returns the newly added argument.

source

Reactant.MLIR.API.mlirBlockAppendOwnedOperation Method
julia
mlirBlockAppendOwnedOperation(block, operation)

Takes an operation owned by the caller and appends it to the block.

source

Reactant.MLIR.API.mlirBlockArgumentGetArgNumber Method
julia
mlirBlockArgumentGetArgNumber(value)

Returns the position of the value in the argument list of its block.

source

Reactant.MLIR.API.mlirBlockArgumentGetOwner Method
julia
mlirBlockArgumentGetOwner(value)

Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.

source

Reactant.MLIR.API.mlirBlockArgumentSetType Method
julia
mlirBlockArgumentSetType(value, type)

Sets the type of the block argument to the given type.

source

Reactant.MLIR.API.mlirBlockCreate Method
julia
mlirBlockCreate(nArgs, args, locs)

Creates a new empty block with the given argument types and transfers ownership to the caller.

source

Reactant.MLIR.API.mlirBlockDestroy Method
julia
mlirBlockDestroy(block)

Takes a block owned by the caller and destroys it.

source

Reactant.MLIR.API.mlirBlockDetach Method
julia
mlirBlockDetach(block)

Detach a block from the owning region and assume ownership.

source

Reactant.MLIR.API.mlirBlockEqual Method
julia
mlirBlockEqual(block, other)

Checks whether two blocks handles point to the same block. This does not perform deep comparison.

source

Reactant.MLIR.API.mlirBlockEraseArgument Method
julia
mlirBlockEraseArgument(block, index)

Erase the argument at 'index' and remove it from the argument list.

source

Reactant.MLIR.API.mlirBlockGetArgument Method
julia
mlirBlockGetArgument(block, pos)

Returns pos-th argument of the block.

source

Reactant.MLIR.API.mlirBlockGetFirstOperation Method
julia
mlirBlockGetFirstOperation(block)

Returns the first operation in the block.

source

Reactant.MLIR.API.mlirBlockGetNextInRegion Method
julia
mlirBlockGetNextInRegion(block)

Returns the block immediately following the given block in its parent region.

source

Reactant.MLIR.API.mlirBlockGetNumArguments Method
julia
mlirBlockGetNumArguments(block)

Returns the number of arguments of the block.

source

Reactant.MLIR.API.mlirBlockGetParentOperation Method
julia
mlirBlockGetParentOperation(arg1)

Returns the closest surrounding operation that contains this block.

source

Reactant.MLIR.API.mlirBlockGetParentRegion Method
julia
mlirBlockGetParentRegion(block)

Returns the region that contains this block.

source

Reactant.MLIR.API.mlirBlockGetTerminator Method
julia
mlirBlockGetTerminator(block)

Returns the terminator operation in the block or null if no terminator.

source

Reactant.MLIR.API.mlirBlockInsertArgument Method
julia
mlirBlockInsertArgument(block, pos, type, loc)

Inserts an argument of the specified type at a specified index to the block. Returns the newly added argument.

source

Reactant.MLIR.API.mlirBlockInsertOwnedOperation Method
julia
mlirBlockInsertOwnedOperation(block, pos, operation)

Takes an operation owned by the caller and inserts it as pos to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.

source

Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter Method
julia
mlirBlockInsertOwnedOperationAfter(block, reference, operation)

Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.

source

Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore Method
julia
mlirBlockInsertOwnedOperationBefore(block, reference, operation)

Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.

source

Reactant.MLIR.API.mlirBlockIsNull Method
julia
mlirBlockIsNull(block)

Checks whether a block is null.

source

Reactant.MLIR.API.mlirBlockPrint Method
julia
mlirBlockPrint(block, callback, userData)

Prints a block by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirBoolAttrGet Method
julia
mlirBoolAttrGet(ctx, value)

Creates a bool attribute in the given context with the given value.

source

Reactant.MLIR.API.mlirBoolAttrGetValue Method
julia
mlirBoolAttrGetValue(attr)

Returns the value stored in the given bool attribute.

source

Reactant.MLIR.API.mlirBytecodeWriterConfigCreate Method
julia
mlirBytecodeWriterConfigCreate()

Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirBytecodeWriterConfigDestroy().

source

Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion Method
julia
mlirBytecodeWriterConfigDesiredEmitVersion(flags, version)

Sets the version to emit in the writer config.

source

Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy Method
julia
mlirBytecodeWriterConfigDestroy(config)

Destroys printing flags created with mlirBytecodeWriterConfigCreate.

source

Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet Method
julia
mlirCalibratedQuantizedTypeGet(expressedType, min, max)

Creates an instance of CalibratedQuantizedType with the given parameters in the same context as expressedType and returns it. The instance is owned by the context.

source

Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax Method
julia
mlirCalibratedQuantizedTypeGetMax(type)

Returns the max value of the given calibrated quantized type.

source

Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin Method
julia
mlirCalibratedQuantizedTypeGetMin(type)

Returns the min value of the given calibrated quantized type.

source

Reactant.MLIR.API.mlirComplexTypeGet Method
julia
mlirComplexTypeGet(elementType)

Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.

source

Reactant.MLIR.API.mlirComplexTypeGetElementType Method
julia
mlirComplexTypeGetElementType(type)

Returns the element type of the given complex type.

source

Reactant.MLIR.API.mlirComplexTypeGetTypeID Method
julia
mlirComplexTypeGetTypeID()

Returns the typeID of an Complex type.

source

Reactant.MLIR.API.mlirContextAppendDialectRegistry Method
julia
mlirContextAppendDialectRegistry(ctx, registry)

Append the contents of the given dialect registry to the registry associated with the context.

source

Reactant.MLIR.API.mlirContextAttachDiagnosticHandler Method
julia
mlirContextAttachDiagnosticHandler(context, handler, userData, deleteUserData)

Attaches the diagnostic handler to the context. Handlers are invoked in the reverse order of attachment until one of them processes the diagnostic completely. When a handler is invoked it is passed the userData that was provided when it was attached. If non-NULL, deleteUserData is called once the system no longer needs to call the handler (for instance after the handler is detached or the context is destroyed). Returns an identifier that can be used to detach the handler.

source

Reactant.MLIR.API.mlirContextCreate Method
julia
mlirContextCreate()

Creates an MLIR context and transfers its ownership to the caller. This sets the default multithreading option (enabled).

source

Reactant.MLIR.API.mlirContextCreateWithRegistry Method
julia
mlirContextCreateWithRegistry(registry, threadingEnabled)

Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry.

source

Reactant.MLIR.API.mlirContextCreateWithThreading Method
julia
mlirContextCreateWithThreading(threadingEnabled)

Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller.

source

Reactant.MLIR.API.mlirContextDestroy Method
julia
mlirContextDestroy(context)

Takes an MLIR context owned by the caller and destroys it.

source

Reactant.MLIR.API.mlirContextDetachDiagnosticHandler Method
julia
mlirContextDetachDiagnosticHandler(context, id)

Detaches an attached diagnostic handler from the context given its identifier.

source

Reactant.MLIR.API.mlirContextEnableMultithreading Method
julia
mlirContextEnableMultithreading(context, enable)

Set threading mode (must be set to false to mlir-print-ir-after-all).

source

Reactant.MLIR.API.mlirContextEqual Method
julia
mlirContextEqual(ctx1, ctx2)

Checks if two contexts are equal.

source

Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects Method
julia
mlirContextGetAllowUnregisteredDialects(context)

Returns whether the context allows unregistered dialects.

source

Reactant.MLIR.API.mlirContextGetNumLoadedDialects Method
julia
mlirContextGetNumLoadedDialects(context)

Returns the number of dialects loaded by the context.

source

Reactant.MLIR.API.mlirContextGetNumRegisteredDialects Method
julia
mlirContextGetNumRegisteredDialects(context)

Returns the number of dialects registered with the given context. A registered dialect will be loaded if needed by the parser.

source

Reactant.MLIR.API.mlirContextGetOrLoadDialect Method
julia
mlirContextGetOrLoadDialect(context, name)

Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary. If the dialect is not registered with the context, returns null. Use mlirContextLoad<Name>Dialect to load an unregistered dialect.

source

Reactant.MLIR.API.mlirContextIsNull Method
julia
mlirContextIsNull(context)

Checks whether a context is null.

source

Reactant.MLIR.API.mlirContextIsRegisteredOperation Method
julia
mlirContextIsRegisteredOperation(context, name)

Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.

source

Reactant.MLIR.API.mlirContextLoadAllAvailableDialects Method
julia
mlirContextLoadAllAvailableDialects(context)

Eagerly loads all available dialects registered with a context, making them available for use for IR construction.

source

Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects Method
julia
mlirContextSetAllowUnregisteredDialects(context, allow)

Sets whether unregistered dialects are allowed in this context.

source

Reactant.MLIR.API.mlirContextSetThreadPool Method
julia
mlirContextSetThreadPool(context, threadPool)

Sets the thread pool of the context explicitly, enabling multithreading in the process. This API should be used to avoid re-creating thread pools in long-running applications that perform multiple compilations, see the C++ documentation for MLIRContext for details.

source

Reactant.MLIR.API.mlirCreateExternalPass Method
julia
mlirCreateExternalPass(passID, name, argument, description, opName, nDependentDialects, dependentDialects, callbacks, userData)

Creates an external MlirPass that calls the supplied callbacks using the supplied userData. If opName is empty, the pass is a generic operation pass. Otherwise it is an operation pass specific to the specified pass name.

source

Reactant.MLIR.API.mlirDenseArrayGetNumElements Method
julia
mlirDenseArrayGetNumElements(attr)

Get the size of a dense array.

source

Reactant.MLIR.API.mlirDenseBoolArrayGet Method
julia
mlirDenseBoolArrayGet(ctx, size, values)

Create a dense array attribute with the given elements.

source

Reactant.MLIR.API.mlirDenseBoolArrayGetElement Method
julia
mlirDenseBoolArrayGetElement(attr, pos)

Get an element of a dense array.

source

Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue Method
julia
mlirDenseBoolResourceElementsAttrGetValue(attr, pos)

Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense resource elements attribute.

source

Reactant.MLIR.API.mlirDenseElementsAttrBoolGet Method
julia
mlirDenseElementsAttrBoolGet(shapedType, numElements, elements)

Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.

source

Reactant.MLIR.API.mlirDenseElementsAttrGet Method
julia
mlirDenseElementsAttrGet(shapedType, numElements, elements)

Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.

source

Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue Method
julia
mlirDenseElementsAttrGetBoolValue(attr, pos)

Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense elements attribute.

source

Reactant.MLIR.API.mlirDenseElementsAttrGetRawData Method
julia
mlirDenseElementsAttrGetRawData(attr)

Returns the raw data of the given dense elements attribute.

source

Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue Method
julia
mlirDenseElementsAttrGetSplatValue(attr)

Returns the single replicated value (splat) of a specific type contained by the given dense elements attribute.

source

Reactant.MLIR.API.mlirDenseElementsAttrIsSplat Method
julia
mlirDenseElementsAttrIsSplat(attr)

Checks whether the given dense elements attribute contains a single replicated value (splat).

source

Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet Method
julia
mlirDenseElementsAttrRawBufferGet(shapedType, rawBufferSize, rawBuffer)

Creates a dense elements attribute with the given Shaped type and elements populated from a packed, row-major opaque buffer of contents.

The format of the raw buffer is a densely packed array of values that can be bitcast to the storage format of the element type specified. Types that are not byte aligned will be: - For bitwidth > 1: Rounded up to the next byte. - For bitwidth = 1: Packed into 8bit bytes with bits corresponding to the linear order of the shape type from MSB to LSB, padded to on the right.

A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255) will be interpreted as a splat. User code should be prepared for additional, conformant patterns to be identified as splats in the future.

source

Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet Method
julia
mlirDenseElementsAttrReshapeGet(attr, shapedType)

Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.

source

Reactant.MLIR.API.mlirDenseElementsAttrSplatGet Method
julia
mlirDenseElementsAttrSplatGet(shapedType, element)

Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).

source

Reactant.MLIR.API.mlirDenseElementsAttrStringGet Method
julia
mlirDenseElementsAttrStringGet(shapedType, numElements, strs)

Creates a dense elements attribute with the given shaped type from string elements.

source

Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID Method
julia
mlirDenseIntOrFPElementsAttrGetTypeID()

Returns the typeID of an DenseIntOrFPElements attribute.

source

Reactant.MLIR.API.mlirDiagnosticGetLocation Method
julia
mlirDiagnosticGetLocation(diagnostic)

Returns the location at which the diagnostic is reported.

source

Reactant.MLIR.API.mlirDiagnosticGetNote Method
julia
mlirDiagnosticGetNote(diagnostic, pos)

Returns pos-th note attached to the diagnostic. Expects pos to be a valid zero-based index into the list of notes.

source

Reactant.MLIR.API.mlirDiagnosticGetNumNotes Method
julia
mlirDiagnosticGetNumNotes(diagnostic)

Returns the number of notes attached to the diagnostic.

source

Reactant.MLIR.API.mlirDiagnosticGetSeverity Method
julia
mlirDiagnosticGetSeverity(diagnostic)

Returns the severity of the diagnostic.

source

Reactant.MLIR.API.mlirDiagnosticPrint Method
julia
mlirDiagnosticPrint(diagnostic, callback, userData)

Prints a diagnostic using the provided callback.

source

Reactant.MLIR.API.mlirDialectEqual Method
julia
mlirDialectEqual(dialect1, dialect2)

Checks if two dialects that belong to the same context are equal. Dialects from different contexts will not compare equal.

source

Reactant.MLIR.API.mlirDialectGetContext Method
julia
mlirDialectGetContext(dialect)

Returns the context that owns the dialect.

source

Reactant.MLIR.API.mlirDialectGetNamespace Method
julia
mlirDialectGetNamespace(dialect)

Returns the namespace of the given dialect.

source

Reactant.MLIR.API.mlirDialectHandleGetNamespace Method
julia
mlirDialectHandleGetNamespace(arg1)

Returns the namespace associated with the provided dialect handle.

source

Reactant.MLIR.API.mlirDialectHandleInsertDialect Method
julia
mlirDialectHandleInsertDialect(arg1, arg2)

Inserts the dialect associated with the provided dialect handle into the provided dialect registry

source

Reactant.MLIR.API.mlirDialectHandleLoadDialect Method
julia
mlirDialectHandleLoadDialect(arg1, arg2)

Loads the dialect associated with the provided dialect handle.

source

Reactant.MLIR.API.mlirDialectHandleRegisterDialect Method
julia
mlirDialectHandleRegisterDialect(arg1, arg2)

Registers the dialect associated with the provided dialect handle.

source

Reactant.MLIR.API.mlirDialectIsNull Method
julia
mlirDialectIsNull(dialect)

Checks if the dialect is null.

source

Reactant.MLIR.API.mlirDialectRegistryCreate Method
julia
mlirDialectRegistryCreate()

Creates a dialect registry and transfers its ownership to the caller.

source

Reactant.MLIR.API.mlirDialectRegistryDestroy Method
julia
mlirDialectRegistryDestroy(registry)

Takes a dialect registry owned by the caller and destroys it.

source

Reactant.MLIR.API.mlirDialectRegistryIsNull Method
julia
mlirDialectRegistryIsNull(registry)

Checks if the dialect registry is null.

source

Reactant.MLIR.API.mlirDictionaryAttrGet Method
julia
mlirDictionaryAttrGet(ctx, numElements, elements)

Creates a dictionary attribute containing the given list of elements in the provided context.

source

Reactant.MLIR.API.mlirDictionaryAttrGetElement Method
julia
mlirDictionaryAttrGetElement(attr, pos)

Returns pos-th element of the given dictionary attribute.

source

Reactant.MLIR.API.mlirDictionaryAttrGetElementByName Method
julia
mlirDictionaryAttrGetElementByName(attr, name)

Returns the dictionary attribute element with the given name or NULL if the given name does not exist in the dictionary.

source

Reactant.MLIR.API.mlirDictionaryAttrGetNumElements Method
julia
mlirDictionaryAttrGetNumElements(attr)

Returns the number of attributes contained in a dictionary attribute.

source

Reactant.MLIR.API.mlirDictionaryAttrGetTypeID Method
julia
mlirDictionaryAttrGetTypeID()

Returns the typeID of a Dictionary attribute.

source

Reactant.MLIR.API.mlirDisctinctAttrCreate Method
julia
mlirDisctinctAttrCreate(referencedAttr)

Creates a DisctinctAttr with the referenced attribute.

source

Reactant.MLIR.API.mlirElementsAttrGetNumElements Method
julia
mlirElementsAttrGetNumElements(attr)

Gets the total number of elements in the given elements attribute. In order to iterate over the attribute, obtain its type, which must be a statically shaped type and use its sizes to build a multi-dimensional index.

source

Reactant.MLIR.API.mlirElementsAttrGetValue Method
julia
mlirElementsAttrGetValue(attr, rank, idxs)

Returns the element at the given rank-dimensional index.

source

Reactant.MLIR.API.mlirElementsAttrIsValidIndex Method
julia
mlirElementsAttrIsValidIndex(attr, rank, idxs)

Checks whether the given rank-dimensional index is valid in the given elements attribute.

source

Reactant.MLIR.API.mlirEmitError Method
julia
mlirEmitError(location, message)

Emits an error at the given location through the diagnostics engine. Used for testing purposes.

source

Reactant.MLIR.API.mlirEnableGlobalDebug Method
julia
mlirEnableGlobalDebug(enable)

Sets the global debugging flag.

source

Reactant.MLIR.API.mlirExecutionEngineCreate Method
julia
mlirExecutionEngineCreate(op, optLevel, numPaths, sharedLibPaths, enableObjectDump)

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

source

Reactant.MLIR.API.mlirExecutionEngineDestroy Method
julia
mlirExecutionEngineDestroy(jit)

Destroy an ExecutionEngine instance.

source

Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile Method
julia
mlirExecutionEngineDumpToObjectFile(jit, fileName)

Dump as an object in fileName.

source

Reactant.MLIR.API.mlirExecutionEngineInvokePacked Method
julia
mlirExecutionEngineInvokePacked(jit, name, arguments)

Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers. The function must have been tagged with the llvm.emit\_c\_interface attribute. Returns a failure if the execution fails for any reason (the function name can't be resolved for instance).

source

Reactant.MLIR.API.mlirExecutionEngineIsNull Method
julia
mlirExecutionEngineIsNull(jit)

Checks whether an execution engine is null.

source

Reactant.MLIR.API.mlirExecutionEngineLookup Method
julia
mlirExecutionEngineLookup(jit, name)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

source

Reactant.MLIR.API.mlirExecutionEngineLookupPacked Method
julia
mlirExecutionEngineLookupPacked(jit, name)

Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up.

source

Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol Method
julia
mlirExecutionEngineRegisterSymbol(jit, name, sym)

Register a symbol with the jit: this symbol will be accessible to the jitted code.

source

Reactant.MLIR.API.mlirExternalPassSignalFailure Method
julia
mlirExternalPassSignalFailure(pass)

This signals that the pass has failed. This is only valid to call during the run callback of MlirExternalPassCallbacks. See Pass::signalPassFailure().

source

Reactant.MLIR.API.mlirF16TypeGet Method
julia
mlirF16TypeGet(ctx)

Creates an f16 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirF32TypeGet Method
julia
mlirF32TypeGet(ctx)

Creates an f32 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirF64TypeGet Method
julia
mlirF64TypeGet(ctx)

Creates a f64 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFlatSymbolRefAttrGet Method
julia
mlirFlatSymbolRefAttrGet(ctx, symbol)

Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.

source

Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue Method
julia
mlirFlatSymbolRefAttrGetValue(attr)

Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.API.mlirFloat16TypeGetTypeID Method
julia
mlirFloat16TypeGetTypeID()

Returns the typeID of an Float16 type.

source

Reactant.MLIR.API.mlirFloat32TypeGetTypeID Method
julia
mlirFloat32TypeGetTypeID()

Returns the typeID of an Float32 type.

source

Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet Method
julia
mlirFloat4E2M1FNTypeGet(ctx)

Creates an f4E2M1FN type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID Method
julia
mlirFloat4E2M1FNTypeGetTypeID()

Returns the typeID of an Float4E2M1FN type.

source

Reactant.MLIR.API.mlirFloat64TypeGetTypeID Method
julia
mlirFloat64TypeGetTypeID()

Returns the typeID of an Float64 type.

source

Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet Method
julia
mlirFloat6E2M3FNTypeGet(ctx)

Creates an f6E2M3FN type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID Method
julia
mlirFloat6E2M3FNTypeGetTypeID()

Returns the typeID of an Float6E2M3FN type.

source

Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet Method
julia
mlirFloat6E3M2FNTypeGet(ctx)

Creates an f6E3M2FN type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID Method
julia
mlirFloat6E3M2FNTypeGetTypeID()

Returns the typeID of an Float6E3M2FN type.

source

Reactant.MLIR.API.mlirFloat8E3M4TypeGet Method
julia
mlirFloat8E3M4TypeGet(ctx)

Creates an f8E3M4 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID Method
julia
mlirFloat8E3M4TypeGetTypeID()

Returns the typeID of an Float8E3M4 type.

source

Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet Method
julia
mlirFloat8E4M3B11FNUZTypeGet(ctx)

Creates an f8E4M3B11FNUZ type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID Method
julia
mlirFloat8E4M3B11FNUZTypeGetTypeID()

Returns the typeID of an Float8E4M3B11FNUZ type.

source

Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet Method
julia
mlirFloat8E4M3FNTypeGet(ctx)

Creates an f8E4M3FN type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID Method
julia
mlirFloat8E4M3FNTypeGetTypeID()

Returns the typeID of an Float8E4M3FN type.

source

Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet Method
julia
mlirFloat8E4M3FNUZTypeGet(ctx)

Creates an f8E4M3FNUZ type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID Method
julia
mlirFloat8E4M3FNUZTypeGetTypeID()

Returns the typeID of an Float8E4M3FNUZ type.

source

Reactant.MLIR.API.mlirFloat8E4M3TypeGet Method
julia
mlirFloat8E4M3TypeGet(ctx)

Creates an f8E4M3 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID Method
julia
mlirFloat8E4M3TypeGetTypeID()

Returns the typeID of an Float8E4M3 type.

source

Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet Method
julia
mlirFloat8E5M2FNUZTypeGet(ctx)

Creates an f8E5M2FNUZ type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID Method
julia
mlirFloat8E5M2FNUZTypeGetTypeID()

Returns the typeID of an Float8E5M2FNUZ type.

source

Reactant.MLIR.API.mlirFloat8E5M2TypeGet Method
julia
mlirFloat8E5M2TypeGet(ctx)

Creates an f8E5M2 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID Method
julia
mlirFloat8E5M2TypeGetTypeID()

Returns the typeID of an Float8E5M2 type.

source

Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet Method
julia
mlirFloat8E8M0FNUTypeGet(ctx)

Creates an f8E8M0FNU type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID Method
julia
mlirFloat8E8M0FNUTypeGetTypeID()

Returns the typeID of an Float8E8M0FNU type.

source

Reactant.MLIR.API.mlirFloatAttrDoubleGet Method
julia
mlirFloatAttrDoubleGet(ctx, type, value)

Creates a floating point attribute in the given context with the given double value and double-precision FP semantics.

source

Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked Method
julia
mlirFloatAttrDoubleGetChecked(loc, type, value)

Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a construction of a FloatAttr, returns a null MlirAttribute.

source

Reactant.MLIR.API.mlirFloatAttrGetTypeID Method
julia
mlirFloatAttrGetTypeID()

Returns the typeID of a Float attribute.

source

Reactant.MLIR.API.mlirFloatAttrGetValueDouble Method
julia
mlirFloatAttrGetValueDouble(attr)

Returns the value stored in the given floating point attribute, interpreting the value as double.

source

Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID Method
julia
mlirFloatTF32TypeGetTypeID()

Returns the typeID of a TF32 type.

source

Reactant.MLIR.API.mlirFloatTypeGetWidth Method
julia
mlirFloatTypeGetWidth(type)

Returns the bitwidth of a floating-point type.

source

Reactant.MLIR.API.mlirFreezeRewritePattern Method
julia
mlirFreezeRewritePattern(op)

FrozenRewritePatternSet API

source

Reactant.MLIR.API.mlirFuncSetArgAttr Method
julia
mlirFuncSetArgAttr(op, pos, name, attr)

Sets the argument attribute 'name' of an argument at index 'pos'. Asserts that the operation is a FuncOp.

source

Reactant.MLIR.API.mlirFunctionTypeGet Method
julia
mlirFunctionTypeGet(ctx, numInputs, inputs, numResults, results)

Creates a function type, mapping a list of input types to result types.

source

Reactant.MLIR.API.mlirFunctionTypeGetInput Method
julia
mlirFunctionTypeGetInput(type, pos)

Returns the pos-th input type.

source

Reactant.MLIR.API.mlirFunctionTypeGetNumInputs Method
julia
mlirFunctionTypeGetNumInputs(type)

Returns the number of input types.

source

Reactant.MLIR.API.mlirFunctionTypeGetNumResults Method
julia
mlirFunctionTypeGetNumResults(type)

Returns the number of result types.

source

Reactant.MLIR.API.mlirFunctionTypeGetResult Method
julia
mlirFunctionTypeGetResult(type, pos)

Returns the pos-th result type.

source

Reactant.MLIR.API.mlirFunctionTypeGetTypeID Method
julia
mlirFunctionTypeGetTypeID()

Returns the typeID of an Function type.

source

Reactant.MLIR.API.mlirIRRewriterCreate Method
julia
mlirIRRewriterCreate(context)

Create an IRRewriter and transfer ownership to the caller.

source

Reactant.MLIR.API.mlirIRRewriterCreateFromOp Method
julia
mlirIRRewriterCreateFromOp(op)

Create an IRRewriter and transfer ownership to the caller. Additionally set the insertion point before the operation.

source

Reactant.MLIR.API.mlirIRRewriterDestroy Method
julia
mlirIRRewriterDestroy(rewriter)

Takes an IRRewriter owned by the caller and destroys it. It is the responsibility of the user to only pass an IRRewriter class.

source

Reactant.MLIR.API.mlirIdentifierEqual Method
julia
mlirIdentifierEqual(ident, other)

Checks whether two identifiers are the same.

source

Reactant.MLIR.API.mlirIdentifierGet Method
julia
mlirIdentifierGet(context, str)

Gets an identifier with the given string value.

source

Reactant.MLIR.API.mlirIdentifierGetContext Method
julia
mlirIdentifierGetContext(arg1)

Returns the context associated with this identifier

source

Reactant.MLIR.API.mlirIdentifierStr Method
julia
mlirIdentifierStr(ident)

Gets the string value of the identifier.

source

Reactant.MLIR.API.mlirIndexTypeGet Method
julia
mlirIndexTypeGet(ctx)

Creates an index type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirIndexTypeGetTypeID Method
julia
mlirIndexTypeGetTypeID()

Returns the typeID of an Index type.

source

Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes Method
julia
mlirInferShapedTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)

Infers the return shaped type components of the operation. Calls callback with the types of inferred arguments on success. Returns failure otherwise.

source

Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID Method
julia
mlirInferShapedTypeOpInterfaceTypeID()

Returns the interface TypeID of the InferShapedTypeOpInterface.

source

Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes Method
julia
mlirInferTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)

Infers the return types of the operation identified by its canonical given the arguments that will be supplied to its generic builder. Calls callback with the types of inferred arguments, potentially several times, on success. Returns failure otherwise.

source

Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID Method
julia
mlirInferTypeOpInterfaceTypeID()

Returns the interface TypeID of the InferTypeOpInterface.

source

Reactant.MLIR.API.mlirIntegerAttrGet Method
julia
mlirIntegerAttrGet(type, value)

Creates an integer attribute of the given type with the given integer value.

source

Reactant.MLIR.API.mlirIntegerAttrGetTypeID Method
julia
mlirIntegerAttrGetTypeID()

Returns the typeID of an Integer attribute.

source

Reactant.MLIR.API.mlirIntegerAttrGetValueInt Method
julia
mlirIntegerAttrGetValueInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of signless type and fits into a signed 64-bit integer.

source

Reactant.MLIR.API.mlirIntegerAttrGetValueSInt Method
julia
mlirIntegerAttrGetValueSInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.

source

Reactant.MLIR.API.mlirIntegerAttrGetValueUInt Method
julia
mlirIntegerAttrGetValueUInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.

source

Reactant.MLIR.API.mlirIntegerSetAttrGet Method
julia
mlirIntegerSetAttrGet(set)

Creates an integer set attribute wrapping the given set. The attribute belongs to the same context as the integer set.

source

Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID Method
julia
mlirIntegerSetAttrGetTypeID()

Returns the typeID of an IntegerSet attribute.

source

Reactant.MLIR.API.mlirIntegerSetAttrGetValue Method
julia
mlirIntegerSetAttrGetValue(attr)

Returns the integer set wrapped in the given integer set attribute.

source

Reactant.MLIR.API.mlirIntegerSetDump Method
julia
mlirIntegerSetDump(set)

Prints an integer set to the standard error stream.

source

Reactant.MLIR.API.mlirIntegerSetEmptyGet Method
julia
mlirIntegerSetEmptyGet(context, numDims, numSymbols)

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

source

Reactant.MLIR.API.mlirIntegerSetEqual Method
julia
mlirIntegerSetEqual(s1, s2)

Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

source

Reactant.MLIR.API.mlirIntegerSetGet Method
julia
mlirIntegerSetGet(context, numDims, numSymbols, numConstraints, constraints, eqFlags)

Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqFlags is 1) or inequalities (eqFlags is 0). Both constraints and eqFlags are expected to point to at least numConstraint consecutive values.

source

Reactant.MLIR.API.mlirIntegerSetGetConstraint Method
julia
mlirIntegerSetGetConstraint(set, pos)

Returns pos-th constraint of the set.

source

Reactant.MLIR.API.mlirIntegerSetGetContext Method
julia
mlirIntegerSetGetContext(set)

Gets the context in which the given integer set lives.

source

Reactant.MLIR.API.mlirIntegerSetGetNumConstraints Method
julia
mlirIntegerSetGetNumConstraints(set)

Returns the number of constraints (equalities + inequalities) in the given set.

source

Reactant.MLIR.API.mlirIntegerSetGetNumDims Method
julia
mlirIntegerSetGetNumDims(set)

Returns the number of dimensions in the given set.

source

Reactant.MLIR.API.mlirIntegerSetGetNumEqualities Method
julia
mlirIntegerSetGetNumEqualities(set)

Returns the number of equalities in the given set.

source

Reactant.MLIR.API.mlirIntegerSetGetNumInequalities Method
julia
mlirIntegerSetGetNumInequalities(set)

Returns the number of inequalities in the given set.

source

Reactant.MLIR.API.mlirIntegerSetGetNumInputs Method
julia
mlirIntegerSetGetNumInputs(set)

Returns the number of inputs (dimensions + symbols) in the given set.

source

Reactant.MLIR.API.mlirIntegerSetGetNumSymbols Method
julia
mlirIntegerSetGetNumSymbols(set)

Returns the number of symbols in the given set.

source

Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty Method
julia
mlirIntegerSetIsCanonicalEmpty(set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

source

Reactant.MLIR.API.mlirIntegerSetIsConstraintEq Method
julia
mlirIntegerSetIsConstraintEq(set, pos)

Returns true of the pos-th constraint of the set is an equality constraint, false otherwise.

source

Reactant.MLIR.API.mlirIntegerSetIsNull Method
julia
mlirIntegerSetIsNull(set)

Checks whether an integer set is a null object.

source

Reactant.MLIR.API.mlirIntegerSetPrint Method
julia
mlirIntegerSetPrint(set, callback, userData)

Prints an integer set by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirIntegerSetReplaceGet Method
julia
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

source

Reactant.MLIR.API.mlirIntegerTypeGet Method
julia
mlirIntegerTypeGet(ctx, bitwidth)

Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.

source

Reactant.MLIR.API.mlirIntegerTypeGetTypeID Method
julia
mlirIntegerTypeGetTypeID()

Returns the typeID of an Integer type.

source

Reactant.MLIR.API.mlirIntegerTypeGetWidth Method
julia
mlirIntegerTypeGetWidth(type)

Returns the bitwidth of an integer type.

source

Reactant.MLIR.API.mlirIntegerTypeIsSigned Method
julia
mlirIntegerTypeIsSigned(type)

Checks whether the given integer type is signed.

source

Reactant.MLIR.API.mlirIntegerTypeIsSignless Method
julia
mlirIntegerTypeIsSignless(type)

Checks whether the given integer type is signless.

source

Reactant.MLIR.API.mlirIntegerTypeIsUnsigned Method
julia
mlirIntegerTypeIsUnsigned(type)

Checks whether the given integer type is unsigned.

source

Reactant.MLIR.API.mlirIntegerTypeSignedGet Method
julia
mlirIntegerTypeSignedGet(ctx, bitwidth)

Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.

source

Reactant.MLIR.API.mlirIntegerTypeUnsignedGet Method
julia
mlirIntegerTypeUnsignedGet(ctx, bitwidth)

Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.

source

Reactant.MLIR.API.mlirIsCurrentDebugType Method
julia
mlirIsCurrentDebugType(type)

Checks if type is set as the current debug type.

source

Reactant.MLIR.API.mlirIsGlobalDebugEnabled Method
julia
mlirIsGlobalDebugEnabled()

Retuns true if the global debugging flag is set, false otherwise.

source

Reactant.MLIR.API.mlirLLVMArrayTypeGet Method
julia
mlirLLVMArrayTypeGet(elementType, numElements)

Creates an llvm.array type.

source

Reactant.MLIR.API.mlirLLVMCConvAttrGet Method
julia
mlirLLVMCConvAttrGet(ctx, cconv)

Creates a LLVM CConv attribute.

source

Reactant.MLIR.API.mlirLLVMComdatAttrGet Method
julia
mlirLLVMComdatAttrGet(ctx, comdat)

Creates a LLVM Comdat attribute.

source

Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet Method
julia
mlirLLVMDIAnnotationAttrGet(ctx, name, value)

Creates a LLVM DIAnnotation attribute.

source

Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet Method
julia
mlirLLVMDIBasicTypeAttrGet(ctx, tag, name, sizeInBits, encoding)

Creates a LLVM DIBasicType attribute.

source

Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet Method
julia
mlirLLVMDICompileUnitAttrGet(ctx, id, sourceLanguage, file, producer, isOptimized, emissionKind, nameTableKind)

Creates a LLVM DICompileUnit attribute.

source

Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet Method
julia
mlirLLVMDICompositeTypeAttrGet(ctx, recId, isRecSelf, tag, name, file, line, scope, baseType, flags, sizeInBits, alignInBits, nElements, elements, dataLocation, rank, allocated, associated)

Creates a LLVM DICompositeType attribute.

source

Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf Method
julia
mlirLLVMDICompositeTypeAttrGetRecSelf(recId)

Creates a self-referencing LLVM DICompositeType attribute.

source

Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet Method
julia
mlirLLVMDIDerivedTypeAttrGet(ctx, tag, name, baseType, sizeInBits, alignInBits, offsetInBits, dwarfAddressSpace, extraData)

Creates a LLVM DIDerivedType attribute. Note that dwarfAddressSpace is an optional field, where MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL indicates null and non-negative values indicate a value present.

source

Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType Method
julia
mlirLLVMDIDerivedTypeAttrGetBaseType(diDerivedType)

Gets the base type from a LLVM DIDerivedType attribute.

source

Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet Method
julia
mlirLLVMDIExpressionAttrGet(ctx, nOperations, operations)

Creates a LLVM DIExpression attribute.

source

Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet Method
julia
mlirLLVMDIExpressionElemAttrGet(ctx, opcode, nArguments, arguments)

Creates a LLVM DIExpressionElem attribute.

source

Reactant.MLIR.API.mlirLLVMDIFileAttrGet Method
julia
mlirLLVMDIFileAttrGet(ctx, name, directory)

Creates a LLVM DIFileAttr attribute.

source

Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet Method
julia
mlirLLVMDIFlagsAttrGet(ctx, value)

Creates a LLVM DIFlags attribute.

source

Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet Method
julia
mlirLLVMDIImportedEntityAttrGet(ctx, tag, scope, entity, file, line, name, nElements, elements)

Creates a LLVM DIImportedEntityAttr attribute.

source

Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet Method
julia
mlirLLVMDILexicalBlockAttrGet(ctx, scope, file, line, column)

Creates a LLVM DILexicalBlock attribute.

source

Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet Method
julia
mlirLLVMDILexicalBlockFileAttrGet(ctx, scope, file, discriminator)

Creates a LLVM DILexicalBlockFile attribute.

source

Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet Method
julia
mlirLLVMDILocalVariableAttrGet(ctx, scope, name, diFile, line, arg, alignInBits, diType, flags)

Creates a LLVM DILocalVariableAttr attribute.

source

Reactant.MLIR.API.mlirLLVMDIModuleAttrGet Method
julia
mlirLLVMDIModuleAttrGet(ctx, file, scope, name, configMacros, includePath, apinotes, line, isDecl)

Creates a LLVM DIModuleAttr attribute.

source

Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope Method
julia
mlirLLVMDIModuleAttrGetScope(diModule)

Gets the scope of this DIModuleAttr.

source

Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet Method
julia
mlirLLVMDINullTypeAttrGet(ctx)

Creates a LLVM DINullType attribute.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet Method
julia
mlirLLVMDISubprogramAttrGet(ctx, recId, isRecSelf, id, compileUnit, scope, name, linkageName, file, line, scopeLine, subprogramFlags, type, nRetainedNodes, retainedNodes, nAnnotations, annotations)

Creates a LLVM DISubprogramAttr attribute.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit Method
julia
mlirLLVMDISubprogramAttrGetCompileUnit(diSubprogram)

Gets the compile unit from this DISubprogram.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile Method
julia
mlirLLVMDISubprogramAttrGetFile(diSubprogram)

Gets the file from this DISubprogramAttr.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine Method
julia
mlirLLVMDISubprogramAttrGetLine(diSubprogram)

Gets the line from this DISubprogramAttr.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf Method
julia
mlirLLVMDISubprogramAttrGetRecSelf(recId)

Creates a self-referencing LLVM DISubprogramAttr attribute.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope Method
julia
mlirLLVMDISubprogramAttrGetScope(diSubprogram)

Gets the scope from this DISubprogramAttr.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine Method
julia
mlirLLVMDISubprogramAttrGetScopeLine(diSubprogram)

Gets the scope line from this DISubprogram.

source

Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType Method
julia
mlirLLVMDISubprogramAttrGetType(diSubprogram)

Gets the type from this DISubprogramAttr.

source

Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet Method
julia
mlirLLVMDISubroutineTypeAttrGet(ctx, callingConvention, nTypes, types)

Creates a LLVM DISubroutineTypeAttr attribute.

source

Reactant.MLIR.API.mlirLLVMFunctionTypeGet Method
julia
mlirLLVMFunctionTypeGet(resultType, nArgumentTypes, argumentTypes, isVarArg)

Creates an llvm.func type.

source

Reactant.MLIR.API.mlirLLVMLinkageAttrGet Method
julia
mlirLLVMLinkageAttrGet(ctx, linkage)

Creates a LLVM Linkage attribute.

source

Reactant.MLIR.API.mlirLLVMPointerTypeGet Method
julia
mlirLLVMPointerTypeGet(ctx, addressSpace)

Creates an llvm.ptr type.

source

Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace Method
julia
mlirLLVMPointerTypeGetAddressSpace(pointerType)

Returns address space of llvm.ptr

source

Reactant.MLIR.API.mlirLLVMStructTypeGetElementType Method
julia
mlirLLVMStructTypeGetElementType(type, position)

Returns the positions-th field of the struct. Asserts if the struct is opaque, not yet initialized or if the position is out of range.

source

Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier Method
julia
mlirLLVMStructTypeGetIdentifier(type)

Returns the identifier of the identified struct. Asserts that the struct is identified, i.e., not literal.

source

Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes Method
julia
mlirLLVMStructTypeGetNumElementTypes(type)

Returns the number of fields in the struct. Asserts if the struct is opaque or not yet initialized.

source

Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet Method
julia
mlirLLVMStructTypeIdentifiedGet(ctx, name)

Creates an LLVM identified struct type with no body. If a struct type with this name already exists in the context, returns that type. Use mlirLLVMStructTypeIdentifiedNewGet to create a fresh struct type, potentially renaming it. The body should be set separatelty by calling mlirLLVMStructTypeSetBody, if it isn't set already.

source

Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet Method
julia
mlirLLVMStructTypeIdentifiedNewGet(ctx, name, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM identified struct type with no body and a name starting with the given prefix. If a struct with the exact name as the given prefix already exists, appends an unspecified suffix to the name so that the name is unique in context.

source

Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral Method
julia
mlirLLVMStructTypeIsLiteral(type)

Returns true if the type is a literal (unnamed) LLVM struct type.

source

Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque Method
julia
mlirLLVMStructTypeIsOpaque(type)

Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).

source

Reactant.MLIR.API.mlirLLVMStructTypeIsPacked Method
julia
mlirLLVMStructTypeIsPacked(type)

Returns true if the struct is packed.

source

Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet Method
julia
mlirLLVMStructTypeLiteralGet(ctx, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM literal (unnamed) struct type. This may assert if the fields have types not compatible with the LLVM dialect. For a graceful failure, use the checked version.

source

Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked Method
julia
mlirLLVMStructTypeLiteralGetChecked(loc, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM literal (unnamed) struct type if possible. Emits a diagnostic at the given location and returns null otherwise.

source

Reactant.MLIR.API.mlirLLVMStructTypeSetBody Method
julia
mlirLLVMStructTypeSetBody(structType, nFieldTypes, fieldTypes, isPacked)

Sets the body of the identified struct if it hasn't been set yet. Returns whether the operation was successful.

source

Reactant.MLIR.API.mlirLLVMVoidTypeGet Method
julia
mlirLLVMVoidTypeGet(ctx)

Creates an llmv.void type.

source

Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion Method
julia
mlirLinalgFillBuiltinNamedOpRegion(mlirOp)

Apply the special region builder for the builtin named Linalg op. Assert that mlirOp is a builtin named Linalg op.

source

Reactant.MLIR.API.mlirLlvmThreadPoolCreate Method
julia
mlirLlvmThreadPoolCreate()

Create an LLVM thread pool. This is reexported here to avoid directly pulling in the LLVM headers directly.

source

Reactant.MLIR.API.mlirLlvmThreadPoolDestroy Method
julia
mlirLlvmThreadPoolDestroy(pool)

Destroy an LLVM thread pool.

source

Reactant.MLIR.API.mlirLoadIRDLDialects Method
julia
mlirLoadIRDLDialects(_module)

Loads all IRDL dialects in the provided module, registering the dialects in the module's associated context.

source

Reactant.MLIR.API.mlirLocationCallSiteGet Method
julia
mlirLocationCallSiteGet(callee, caller)

Creates a call site location with a callee and a caller.

source

Reactant.MLIR.API.mlirLocationEqual Method
julia
mlirLocationEqual(l1, l2)

Checks if two locations are equal.

source

Reactant.MLIR.API.mlirLocationFileLineColGet Method
julia
mlirLocationFileLineColGet(context, filename, line, col)

Creates an File/Line/Column location owned by the given context.

source

Reactant.MLIR.API.mlirLocationFromAttribute Method
julia
mlirLocationFromAttribute(attribute)

Creates a location from a location attribute.

source

Reactant.MLIR.API.mlirLocationFusedGet Method
julia
mlirLocationFusedGet(ctx, nLocations, locations, metadata)

Creates a fused location with an array of locations and metadata.

source

Reactant.MLIR.API.mlirLocationGetAttribute Method
julia
mlirLocationGetAttribute(location)

Returns the underlying location attribute of this location.

source

Reactant.MLIR.API.mlirLocationGetContext Method
julia
mlirLocationGetContext(location)

Gets the context that a location was created with.

source

Reactant.MLIR.API.mlirLocationIsNull Method
julia
mlirLocationIsNull(location)

Checks if the location is null.

source

Reactant.MLIR.API.mlirLocationNameGet Method
julia
mlirLocationNameGet(context, name, childLoc)

Creates a name location owned by the given context. Providing null location for childLoc is allowed and if childLoc is null location, then the behavior is the same as having unknown child location.

source

Reactant.MLIR.API.mlirLocationPrint Method
julia
mlirLocationPrint(location, callback, userData)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirLocationUnknownGet Method
julia
mlirLocationUnknownGet(context)

Creates a location with unknown position owned by the given context.

source

Reactant.MLIR.API.mlirLogicalResultFailure Method
julia
mlirLogicalResultFailure()

Creates a logical result representing a failure.

source

Reactant.MLIR.API.mlirLogicalResultIsFailure Method
julia
mlirLogicalResultIsFailure(res)

Checks if the given logical result represents a failure.

source

Reactant.MLIR.API.mlirLogicalResultIsSuccess Method
julia
mlirLogicalResultIsSuccess(res)

Checks if the given logical result represents a success.

source

Reactant.MLIR.API.mlirLogicalResultSuccess Method
julia
mlirLogicalResultSuccess()

Creates a logical result representing a success.

source

Reactant.MLIR.API.mlirMemRefTypeContiguousGet Method
julia
mlirMemRefTypeContiguousGet(elementType, rank, shape, memorySpace)

Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context.

source

Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked Method
julia
mlirMemRefTypeContiguousGetChecked(loc, elementType, rank, shape, memorySpace)

Same as "mlirMemRefTypeContiguousGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirMemRefTypeGet Method
julia
mlirMemRefTypeGet(elementType, rank, shape, layout, memorySpace)

Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context.

source

Reactant.MLIR.API.mlirMemRefTypeGetAffineMap Method
julia
mlirMemRefTypeGetAffineMap(type)

Returns the affine map of the given MemRef type.

source

Reactant.MLIR.API.mlirMemRefTypeGetChecked Method
julia
mlirMemRefTypeGetChecked(loc, elementType, rank, shape, layout, memorySpace)

Same as "mlirMemRefTypeGet" but returns a nullptr-wrapping MlirType o illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirMemRefTypeGetLayout Method
julia
mlirMemRefTypeGetLayout(type)

Returns the layout of the given MemRef type.

source

Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace Method
julia
mlirMemRefTypeGetMemorySpace(type)

Returns the memory space of the given MemRef type.

source

Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset Method
julia
mlirMemRefTypeGetStridesAndOffset(type, strides, offset)

Returns the strides of the MemRef if the layout map is in strided form. Both strides and offset are out params. strides must point to pre-allocated memory of length equal to the rank of the memref.

source

Reactant.MLIR.API.mlirMemRefTypeGetTypeID Method
julia
mlirMemRefTypeGetTypeID()

Returns the typeID of an MemRef type.

source

Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone Method
julia
mlirMergeSymbolsIntoFromClone(target, other)

Merge the symbols from other into target, potentially renaming them to avoid conflicts. Private symbols may be renamed during the merge, public symbols must have at most one declaration. A name conflict in public symbols is reported as an error before returning a failure.

Note that this clones the other operation unlike the C++ counterpart that takes ownership.

source

Reactant.MLIR.API.mlirModuleCreateEmpty Method
julia
mlirModuleCreateEmpty(location)

Creates a new, empty module and transfers ownership to the caller.

source

Reactant.MLIR.API.mlirModuleCreateParse Method
julia
mlirModuleCreateParse(context, _module)

Parses a module from the string and transfers ownership to the caller.

source

Reactant.MLIR.API.mlirModuleDestroy Method
julia
mlirModuleDestroy(_module)

Takes a module owned by the caller and deletes it.

source

Reactant.MLIR.API.mlirModuleFromOperation Method
julia
mlirModuleFromOperation(op)

Views the generic operation as a module. The returned module is null when the input operation was not a ModuleOp.

source

Reactant.MLIR.API.mlirModuleGetBody Method
julia
mlirModuleGetBody(_module)

Gets the body of the module, i.e. the only block it contains.

source

Reactant.MLIR.API.mlirModuleGetContext Method
julia
mlirModuleGetContext(_module)

Gets the context that a module was created with.

source

Reactant.MLIR.API.mlirModuleGetOperation Method
julia
mlirModuleGetOperation(_module)

Views the module as a generic operation.

source

Reactant.MLIR.API.mlirModuleIsNull Method
julia
mlirModuleIsNull(_module)

Checks whether a module is null.

source

Reactant.MLIR.API.mlirNamedAttributeGet Method
julia
mlirNamedAttributeGet(name, attr)

Associates an attribute with the name. Takes ownership of neither.

source

Reactant.MLIR.API.mlirNoneTypeGet Method
julia
mlirNoneTypeGet(ctx)

Creates a None type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirNoneTypeGetTypeID Method
julia
mlirNoneTypeGetTypeID()

Returns the typeID of an None type.

source

Reactant.MLIR.API.mlirOpOperandGetNextUse Method
julia
mlirOpOperandGetNextUse(opOperand)

Returns an op operand representing the next use of the value, or a null op operand if there is no next use.

source

Reactant.MLIR.API.mlirOpOperandGetOperandNumber Method
julia
mlirOpOperandGetOperandNumber(opOperand)

Returns the operand number of an op operand.

source

Reactant.MLIR.API.mlirOpOperandGetOwner Method
julia
mlirOpOperandGetOwner(opOperand)

Returns the owner operation of an op operand.

source

Reactant.MLIR.API.mlirOpOperandGetValue Method
julia
mlirOpOperandGetValue(opOperand)

Returns the value of an op operand.

source

Reactant.MLIR.API.mlirOpOperandIsNull Method
julia
mlirOpOperandIsNull(opOperand)

Returns whether the op operand is null.

source

Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass Method
julia
mlirOpPassManagerAddOwnedPass(passManager, pass)

Add a pass and transfer ownership to the provided mlirOpPassManager. If the pass is not a generic operation pass or matching the type of the provided PassManager, a new OpPassManager is implicitly nested under the provided PassManager.

source

Reactant.MLIR.API.mlirOpPassManagerAddPipeline Method
julia
mlirOpPassManagerAddPipeline(passManager, pipelineElements, callback, userData)

Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder Method
julia
mlirOpPassManagerGetNestedUnder(passManager, operationName)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.

source

Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified Method
julia
mlirOpPrintingFlagsAssumeVerified(flags)

Do not verify the operation when using custom operation printers.

source

Reactant.MLIR.API.mlirOpPrintingFlagsCreate Method
julia
mlirOpPrintingFlagsCreate()

Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirOpPrintingFlagsDestroy().

source

Reactant.MLIR.API.mlirOpPrintingFlagsDestroy Method
julia
mlirOpPrintingFlagsDestroy(flags)

Destroys printing flags created with mlirOpPrintingFlagsCreate.

source

Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs Method
julia
mlirOpPrintingFlagsElideLargeElementsAttrs(flags, largeElementLimit)

Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data. The largeElementLimit is used to configure what is considered to be a "large" ElementsAttr by providing an upper limit to the number of elements.

source

Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString Method
julia
mlirOpPrintingFlagsElideLargeResourceString(flags, largeResourceLimit)

Enables the elision of large resources strings by omitting them from the dialect_resources section. The largeResourceLimit is used to configure what is considered to be a "large" resource by providing an upper limit to the string size.

source

Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo Method
julia
mlirOpPrintingFlagsEnableDebugInfo(flags, enable, prettyForm)

Enable or disable printing of debug information (based on enable). If 'prettyForm' is set to true, debug information is printed in a more readable 'pretty' form. Note: The IR generated with 'prettyForm' is not parsable.

source

Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm Method
julia
mlirOpPrintingFlagsPrintGenericOpForm(flags)

Always print operations in the generic form.

source

Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions Method
julia
mlirOpPrintingFlagsSkipRegions(flags)

Skip printing regions.

source

Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope Method
julia
mlirOpPrintingFlagsUseLocalScope(flags)

Use local scope when printing the operation. This allows for using the printer in a more localized and thread-safe setting, but may not necessarily be identical to what the IR will look like when dumping the full module.

source

Reactant.MLIR.API.mlirOpResultGetOwner Method
julia
mlirOpResultGetOwner(value)

Returns an operation that produced this value as its result. Asserts if the value is not an op result.

source

Reactant.MLIR.API.mlirOpResultGetResultNumber Method
julia
mlirOpResultGetResultNumber(value)

Returns the position of the value in the list of results of the operation that produced it.

source

Reactant.MLIR.API.mlirOpaqueAttrGet Method
julia
mlirOpaqueAttrGet(ctx, dialectNamespace, dataLength, data, type)

Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).

source

Reactant.MLIR.API.mlirOpaqueAttrGetData Method
julia
mlirOpaqueAttrGetData(attr)

Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace Method
julia
mlirOpaqueAttrGetDialectNamespace(attr)

Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.

source

Reactant.MLIR.API.mlirOpaqueAttrGetTypeID Method
julia
mlirOpaqueAttrGetTypeID()

Returns the typeID of an Opaque attribute.

source

Reactant.MLIR.API.mlirOpaqueTypeGet Method
julia
mlirOpaqueTypeGet(ctx, dialectNamespace, typeData)

Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).

source

Reactant.MLIR.API.mlirOpaqueTypeGetData Method
julia
mlirOpaqueTypeGetData(type)

Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.

source

Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace Method
julia
mlirOpaqueTypeGetDialectNamespace(type)

Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.

source

Reactant.MLIR.API.mlirOpaqueTypeGetTypeID Method
julia
mlirOpaqueTypeGetTypeID()

Returns the typeID of an Opaque type.

source

Reactant.MLIR.API.mlirOperationClone Method
julia
mlirOperationClone(op)

Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.

source

Reactant.MLIR.API.mlirOperationCreate Method
julia
mlirOperationCreate(state)

Creates an operation and transfers ownership to the caller. Note that caller owned child objects are transferred in this call and must not be further used. Particularly, this applies to any regions added to the state (the implementation may invalidate any such pointers).

This call can fail under the following conditions, in which case, it will return a null operation and emit diagnostics: - Result type inference is enabled and cannot be performed.

source

Reactant.MLIR.API.mlirOperationCreateParse Method
julia
mlirOperationCreateParse(context, sourceStr, sourceName)

Parses an operation, giving ownership to the caller. If parsing fails a null operation will be returned, and an error diagnostic emitted.

sourceStr may be either the text assembly format, or binary bytecode format. sourceName is used as the file name of the source; any IR without locations will get a FileLineColLoc location with sourceName as the file name.

source

Reactant.MLIR.API.mlirOperationDestroy Method
julia
mlirOperationDestroy(op)

Takes an operation owned by the caller and destroys it.

source

Reactant.MLIR.API.mlirOperationDump Method
julia
mlirOperationDump(op)

Prints an operation to stderr.

source

Reactant.MLIR.API.mlirOperationEqual Method
julia
mlirOperationEqual(op, other)

Checks whether two operation handles point to the same operation. This does not perform deep comparison.

source

Reactant.MLIR.API.mlirOperationGetAttribute Method
julia
mlirOperationGetAttribute(op, pos)

Return pos-th attribute of the operation. Deprecated, please use mlirOperationGetInherentAttribute or mlirOperationGetDiscardableAttribute.

source

Reactant.MLIR.API.mlirOperationGetAttributeByName Method
julia
mlirOperationGetAttributeByName(op, name)

Returns an attribute attached to the operation given its name. Deprecated, please use mlirOperationGetInherentAttributeByName or mlirOperationGetDiscardableAttributeByName.

source

Reactant.MLIR.API.mlirOperationGetBlock Method
julia
mlirOperationGetBlock(op)

Gets the block that owns this operation, returning null if the operation is not owned.

source

Reactant.MLIR.API.mlirOperationGetContext Method
julia
mlirOperationGetContext(op)

Gets the context this operation is associated with

source

Reactant.MLIR.API.mlirOperationGetDiscardableAttribute Method
julia
mlirOperationGetDiscardableAttribute(op, pos)

Return pos-th discardable attribute of the operation.

source

Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName Method
julia
mlirOperationGetDiscardableAttributeByName(op, name)

Returns a discardable attribute attached to the operation given its name.

source

Reactant.MLIR.API.mlirOperationGetFirstRegion Method
julia
mlirOperationGetFirstRegion(op)

Returns first region attached to the operation.

source

Reactant.MLIR.API.mlirOperationGetInherentAttributeByName Method
julia
mlirOperationGetInherentAttributeByName(op, name)

Returns an inherent attribute attached to the operation given its name.

source

Reactant.MLIR.API.mlirOperationGetLocation Method
julia
mlirOperationGetLocation(op)

Gets the location of the operation.

source

Reactant.MLIR.API.mlirOperationGetName Method
julia
mlirOperationGetName(op)

Gets the name of the operation as an identifier.

source

Reactant.MLIR.API.mlirOperationGetNextInBlock Method
julia
mlirOperationGetNextInBlock(op)

Returns an operation immediately following the given operation it its enclosing block.

source

Reactant.MLIR.API.mlirOperationGetNumAttributes Method
julia
mlirOperationGetNumAttributes(op)

Returns the number of attributes attached to the operation. Deprecated, please use mlirOperationGetNumInherentAttributes or mlirOperationGetNumDiscardableAttributes.

source

Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes Method
julia
mlirOperationGetNumDiscardableAttributes(op)

Returns the number of discardable attributes attached to the operation.

source

Reactant.MLIR.API.mlirOperationGetNumOperands Method
julia
mlirOperationGetNumOperands(op)

Returns the number of operands of the operation.

source

Reactant.MLIR.API.mlirOperationGetNumRegions Method
julia
mlirOperationGetNumRegions(op)

Returns the number of regions attached to the given operation.

source

Reactant.MLIR.API.mlirOperationGetNumResults Method
julia
mlirOperationGetNumResults(op)

Returns the number of results of the operation.

source

Reactant.MLIR.API.mlirOperationGetNumSuccessors Method
julia
mlirOperationGetNumSuccessors(op)

Returns the number of successor blocks of the operation.

source

Reactant.MLIR.API.mlirOperationGetOperand Method
julia
mlirOperationGetOperand(op, pos)

Returns pos-th operand of the operation.

source

Reactant.MLIR.API.mlirOperationGetParentOperation Method
julia
mlirOperationGetParentOperation(op)

Gets the operation that owns this operation, returning null if the operation is not owned.

source

Reactant.MLIR.API.mlirOperationGetRegion Method
julia
mlirOperationGetRegion(op, pos)

Returns pos-th region attached to the operation.

source

Reactant.MLIR.API.mlirOperationGetResult Method
julia
mlirOperationGetResult(op, pos)

Returns pos-th result of the operation.

source

Reactant.MLIR.API.mlirOperationGetSuccessor Method
julia
mlirOperationGetSuccessor(op, pos)

Returns pos-th successor of the operation.

source

Reactant.MLIR.API.mlirOperationGetTypeID Method
julia
mlirOperationGetTypeID(op)

Gets the type id of the operation. Returns null if the operation does not have a registered operation description.

source

Reactant.MLIR.API.mlirOperationHasInherentAttributeByName Method
julia
mlirOperationHasInherentAttributeByName(op, name)

Returns true if this operation defines an inherent attribute with this name. Note: the attribute can be optional, so mlirOperationGetInherentAttributeByName can still return a null attribute.

source

Reactant.MLIR.API.mlirOperationImplementsInterface Method
julia
mlirOperationImplementsInterface(operation, interfaceTypeID)

Returns true if the given operation implements an interface identified by its TypeID.

source

Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic Method
julia
mlirOperationImplementsInterfaceStatic(operationName, context, interfaceTypeID)

Returns true if the operation identified by its canonical string name implements the interface identified by its TypeID in the given context. Note that interfaces may be attached to operations in some contexts and not others.

source

Reactant.MLIR.API.mlirOperationIsNull Method
julia
mlirOperationIsNull(op)

Checks whether the underlying operation is null.

source

Reactant.MLIR.API.mlirOperationMoveAfter Method
julia
mlirOperationMoveAfter(op, other)

Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

Reactant.MLIR.API.mlirOperationMoveBefore Method
julia
mlirOperationMoveBefore(op, other)

Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

Reactant.MLIR.API.mlirOperationPrint Method
julia
mlirOperationPrint(op, callback, userData)

Prints an operation by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirOperationPrintWithFlags Method
julia
mlirOperationPrintWithFlags(op, flags, callback, userData)

Same as mlirOperationPrint but accepts flags controlling the printing behavior.

source

Reactant.MLIR.API.mlirOperationPrintWithState Method
julia
mlirOperationPrintWithState(op, state, callback, userData)

Same as mlirOperationPrint but accepts AsmState controlling the printing behavior as well as caching computed names.

source

Reactant.MLIR.API.mlirOperationRemoveAttributeByName Method
julia
mlirOperationRemoveAttributeByName(op, name)

Removes an attribute by name. Returns false if the attribute was not found and true if removed. Deprecated, please use mlirOperationRemoveInherentAttributeByName or mlirOperationRemoveDiscardableAttributeByName.

source

Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName Method
julia
mlirOperationRemoveDiscardableAttributeByName(op, name)

Removes a discardable attribute by name. Returns false if the attribute was not found and true if removed.

source

Reactant.MLIR.API.mlirOperationRemoveFromParent Method
julia
mlirOperationRemoveFromParent(op)

Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.

source

Reactant.MLIR.API.mlirOperationSetAttributeByName Method
julia
mlirOperationSetAttributeByName(op, name, attr)

Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise. Deprecated, please use mlirOperationSetInherentAttributeByName or mlirOperationSetDiscardableAttributeByName.

source

Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName Method
julia
mlirOperationSetDiscardableAttributeByName(op, name, attr)

Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise. The new attr Attribute is not allowed to be null, use mlirOperationRemoveDiscardableAttributeByName to remove an Attribute instead.

source

Reactant.MLIR.API.mlirOperationSetInherentAttributeByName Method
julia
mlirOperationSetInherentAttributeByName(op, name, attr)

Sets an inherent attribute by name, replacing the existing if it exists. This has no effect if "name" does not match an inherent attribute.

source

Reactant.MLIR.API.mlirOperationSetOperand Method
julia
mlirOperationSetOperand(op, pos, newValue)

Sets the pos-th operand of the operation.

source

Reactant.MLIR.API.mlirOperationSetOperands Method
julia
mlirOperationSetOperands(op, nOperands, operands)

Replaces the operands of the operation.

source

Reactant.MLIR.API.mlirOperationSetSuccessor Method
julia
mlirOperationSetSuccessor(op, pos, block)

Set pos-th successor of the operation.

source

Reactant.MLIR.API.mlirOperationStateAddResults Method
julia
mlirOperationStateAddResults(state, n, results)

Adds a list of components to the operation state.

source

Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference Method
julia
mlirOperationStateEnableResultTypeInference(state)

Enables result type inference for the operation under construction. If enabled, then the caller must not have called mlirOperationStateAddResults(). Note that if enabled, the mlirOperationCreate() call is failable: it will return a null operation on inference failure and will emit diagnostics.

source

Reactant.MLIR.API.mlirOperationStateGet Method
julia
mlirOperationStateGet(name, loc)

Constructs an operation state from a name and a location.

source

Reactant.MLIR.API.mlirOperationVerify Method
julia
mlirOperationVerify(op)

Verify the operation and return true if it passes, false if it fails.

source

Reactant.MLIR.API.mlirOperationWalk Method
julia
mlirOperationWalk(op, callback, userData, walkOrder)

Walks operation op in walkOrder and calls callback on that operation. *userData is passed to the callback as well and can be used to tunnel some context or other data into the callback.

source

Reactant.MLIR.API.mlirOperationWriteBytecode Method
julia
mlirOperationWriteBytecode(op, callback, userData)

Same as mlirOperationPrint but writing the bytecode format.

source

Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig Method
julia
mlirOperationWriteBytecodeWithConfig(op, config, callback, userData)

Same as mlirOperationWriteBytecode but with writer config and returns failure only if desired bytecode could not be honored.

source

Reactant.MLIR.API.mlirParsePassPipeline Method
julia
mlirParsePassPipeline(passManager, pipeline, callback, userData)

Parse a textual MLIR pass pipeline and assign it to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

Reactant.MLIR.API.mlirPassManagerAddOwnedPass Method
julia
mlirPassManagerAddOwnedPass(passManager, pass)

Add a pass and transfer ownership to the provided top-level mlirPassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

source

Reactant.MLIR.API.mlirPassManagerCreate Method
julia
mlirPassManagerCreate(ctx)

Create a new top-level PassManager with the default anchor.

source

Reactant.MLIR.API.mlirPassManagerCreateOnOperation Method
julia
mlirPassManagerCreateOnOperation(ctx, anchorOp)

Create a new top-level PassManager anchored on anchorOp.

source

Reactant.MLIR.API.mlirPassManagerDestroy Method
julia
mlirPassManagerDestroy(passManager)

Destroy the provided PassManager.

source

Reactant.MLIR.API.mlirPassManagerEnableIRPrinting Method
julia
mlirPassManagerEnableIRPrinting(passManager, printBeforeAll, printAfterAll, printModuleScope, printAfterOnlyOnChange, printAfterOnlyOnFailure)

Enable IR printing.

source

Reactant.MLIR.API.mlirPassManagerEnableVerifier Method
julia
mlirPassManagerEnableVerifier(passManager, enable)

Enable / disable verify-each.

source

Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager Method
julia
mlirPassManagerGetAsOpPassManager(passManager)

Cast a top-level PassManager to a generic OpPassManager.

source

Reactant.MLIR.API.mlirPassManagerGetNestedUnder Method
julia
mlirPassManagerGetNestedUnder(passManager, operationName)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

source

Reactant.MLIR.API.mlirPassManagerIsNull Method
julia
mlirPassManagerIsNull(passManager)

Checks if a PassManager is null.

source

Reactant.MLIR.API.mlirPassManagerRunOnOp Method
julia
mlirPassManagerRunOnOp(passManager, op)

Run the provided passManager on the given op.

source

Reactant.MLIR.API.mlirPrintPassPipeline Method
julia
mlirPrintPassPipeline(passManager, callback, userData)

Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType Method
julia
mlirQuantizedTypeCastExpressedToStorageType(type, candidate)

Casts from a type based on the expressed type of the given quantized type to equivalent type based on storage type of the same quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType Method
julia
mlirQuantizedTypeCastFromExpressedType(type, candidate)

Casts from a type based on the expressed type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.

source

Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType Method
julia
mlirQuantizedTypeCastFromStorageType(type, candidate)

Casts from a type based on the storage type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.

source

Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType Method
julia
mlirQuantizedTypeCastToExpressedType(type)

Casts from a type based on a quantized type to a corresponding typed based on the expressed type. Returns a null type if the cast is not valid.

source

Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType Method
julia
mlirQuantizedTypeCastToStorageType(type)

Casts from a type based on a quantized type to a corresponding typed based on the storage type. Returns a null type if the cast is not valid.

source

Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger Method
julia
mlirQuantizedTypeGetDefaultMaximumForInteger(isSigned, integralWidth)

Returns the maximum possible value stored by a quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger Method
julia
mlirQuantizedTypeGetDefaultMinimumForInteger(isSigned, integralWidth)

Returns the minimum possible value stored by a quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType Method
julia
mlirQuantizedTypeGetExpressedType(type)

Gets the original type approximated by the given quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeGetFlags Method
julia
mlirQuantizedTypeGetFlags(type)

Gets the flags associated with the given quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType Method
julia
mlirQuantizedTypeGetQuantizedElementType(type)

Returns the element type of the given quantized type as another quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag Method
julia
mlirQuantizedTypeGetSignedFlag()

Returns the bit flag used to indicate signedness of a quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeGetStorageType Method
julia
mlirQuantizedTypeGetStorageType(type)

Returns the underlying type used to store the values.

source

Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth Method
julia
mlirQuantizedTypeGetStorageTypeIntegralWidth(type)

Returns the integral bitwidth that the storage type of the given quantized type can represent exactly.

source

Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax Method
julia
mlirQuantizedTypeGetStorageTypeMax(type)

Returns the maximum value that the storage type of the given quantized type can take.

source

Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin Method
julia
mlirQuantizedTypeGetStorageTypeMin(type)

Returns the minimum value that the storage type of the given quantized type can take.

source

Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType Method
julia
mlirQuantizedTypeIsCompatibleExpressedType(type, candidate)

Returns true if the candidate type is compatible with the given quantized type.

source

Reactant.MLIR.API.mlirQuantizedTypeIsSigned Method
julia
mlirQuantizedTypeIsSigned(type)

Returns true if the given type is signed, false otherwise.

source

Reactant.MLIR.API.mlirRankedTensorTypeGet Method
julia
mlirRankedTensorTypeGet(rank, shape, elementType, encoding)

Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull() to this parameter.

source

Reactant.MLIR.API.mlirRankedTensorTypeGetChecked Method
julia
mlirRankedTensorTypeGetChecked(loc, rank, shape, elementType, encoding)

Same as "mlirRankedTensorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding Method
julia
mlirRankedTensorTypeGetEncoding(type)

Gets the 'encoding' attribute from the ranked tensor type, returning a null attribute if none.

source

Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID Method
julia
mlirRankedTensorTypeGetTypeID()

Returns the typeID of an RankedTensor type.

source

Reactant.MLIR.API.mlirRegionAppendOwnedBlock Method
julia
mlirRegionAppendOwnedBlock(region, block)

Takes a block owned by the caller and appends it to the given region.

source

Reactant.MLIR.API.mlirRegionCreate Method
julia
mlirRegionCreate()

Creates a new empty region and transfers ownership to the caller.

source

Reactant.MLIR.API.mlirRegionDestroy Method
julia
mlirRegionDestroy(region)

Takes a region owned by the caller and destroys it.

source

Reactant.MLIR.API.mlirRegionEqual Method
julia
mlirRegionEqual(region, other)

Checks whether two region handles point to the same region. This does not perform deep comparison.

source

Reactant.MLIR.API.mlirRegionGetFirstBlock Method
julia
mlirRegionGetFirstBlock(region)

Gets the first block in the region.

source

Reactant.MLIR.API.mlirRegionGetNextInOperation Method
julia
mlirRegionGetNextInOperation(region)

Returns the region immediately following the given region in its parent operation.

source

Reactant.MLIR.API.mlirRegionInsertOwnedBlock Method
julia
mlirRegionInsertOwnedBlock(region, pos, block)

Takes a block owned by the caller and inserts it at pos to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.

source

Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter Method
julia
mlirRegionInsertOwnedBlockAfter(region, reference, block)

Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.

source

Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore Method
julia
mlirRegionInsertOwnedBlockBefore(region, reference, block)

Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.

source

Reactant.MLIR.API.mlirRegionIsNull Method
julia
mlirRegionIsNull(region)

Checks whether a region is null.

source

Reactant.MLIR.API.mlirRegionTakeBody Method
julia
mlirRegionTakeBody(target, source)

Moves the entire content of the source region to the target region.

source

Reactant.MLIR.API.mlirRegisterAllDialects Method
julia
mlirRegisterAllDialects(registry)

Appends all upstream dialects and extensions to the dialect registry.

source

Reactant.MLIR.API.mlirRegisterAllLLVMTranslations Method
julia
mlirRegisterAllLLVMTranslations(context)

Register all translations to LLVM IR for dialects that can support it.

source

Reactant.MLIR.API.mlirRegisterAllPasses Method
julia
mlirRegisterAllPasses()

Register all compiler passes of MLIR.

source

Reactant.MLIR.API.mlirRewriterBaseCancelOpModification Method
julia
mlirRewriterBaseCancelOpModification(rewriter, op)

This method cancels a pending in-place modification. This can only be called on operations that were provided to a call to startOpModification.

source

Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint Method
julia
mlirRewriterBaseClearInsertionPoint(rewriter)

Reset the insertion point to no location. Creating an operation without a set insertion point is an error, but this can still be useful when the current insertion point a builder refers to is being removed.

source

Reactant.MLIR.API.mlirRewriterBaseClone Method
julia
mlirRewriterBaseClone(rewriter, op)

Creates a deep copy of the specified operation.

source

Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore Method
julia
mlirRewriterBaseCloneRegionBefore(rewriter, region, before)

Clone the blocks that belong to "region" before the given position in another region "parent".

source

Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions Method
julia
mlirRewriterBaseCloneWithoutRegions(rewriter, op)

Creates a deep copy of this operation but keep the operation regions empty.

source

Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore Method
julia
mlirRewriterBaseCreateBlockBefore(rewriter, insertBefore, nArgTypes, argTypes, locations)

Add new block with 'argTypes' arguments and set the insertion point to the end of it. The block is placed before 'insertBefore'. locs contains the locations of the inserted arguments, and should match the size of argTypes.

source

Reactant.MLIR.API.mlirRewriterBaseEraseBlock Method
julia
mlirRewriterBaseEraseBlock(rewriter, block)

Erases a block along with all operations inside it.

source

Reactant.MLIR.API.mlirRewriterBaseEraseOp Method
julia
mlirRewriterBaseEraseOp(rewriter, op)

Erases an operation that is known to have no uses.

source

Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification Method
julia
mlirRewriterBaseFinalizeOpModification(rewriter, op)

This method is used to signal the end of an in-place modification of the given operation. This can only be called on operations that were provided to a call to startOpModification.

source

Reactant.MLIR.API.mlirRewriterBaseGetBlock Method
julia
mlirRewriterBaseGetBlock(rewriter)

Returns the current block of the rewriter.

source

Reactant.MLIR.API.mlirRewriterBaseGetContext Method
julia
mlirRewriterBaseGetContext(rewriter)

Get the MLIR context referenced by the rewriter.

source

Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock Method
julia
mlirRewriterBaseGetInsertionBlock(rewriter)

Return the block the current insertion point belongs to. Note that the insertion point is not necessarily the end of the block.

source

Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore Method
julia
mlirRewriterBaseInlineBlockBefore(rewriter, source, op, nArgValues, argValues)

Inline the operations of block 'source' before the operation 'op'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The source block must have no successors. Otherwise, the resulting IR would have unreachable operations.

source

Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore Method
julia
mlirRewriterBaseInlineRegionBefore(rewriter, region, before)

Move the blocks that belong to "region" before the given position in another region "parent". The two regions must be different. The caller is responsible for creating or updating the operation transferring flow of control to the region and passing it the correct block arguments.

source

Reactant.MLIR.API.mlirRewriterBaseInsert Method
julia
mlirRewriterBaseInsert(rewriter, op)

Insert the given operation at the current insertion point and return it.

source

Reactant.MLIR.API.mlirRewriterBaseMergeBlocks Method
julia
mlirRewriterBaseMergeBlocks(rewriter, source, dest, nArgValues, argValues)

Inline the operations of block 'source' into the end of block 'dest'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The dest block must have no successors. Otherwise, the resulting IR would have unreachable operation.

source

Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore Method
julia
mlirRewriterBaseMoveBlockBefore(rewriter, block, existingBlock)

Unlink this block and insert it right before existingBlock.

source

Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter Method
julia
mlirRewriterBaseMoveOpAfter(rewriter, op, existingOp)

Unlink this operation from its current block and insert it right after existingOp which may be in the same or another block in the same function.

source

Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore Method
julia
mlirRewriterBaseMoveOpBefore(rewriter, op, existingOp)

Unlink this operation from its current block and insert it right before existingOp which may be in the same or another block in the same function.

source

Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation Method
julia
mlirRewriterBaseReplaceAllOpUsesWithOperation(rewriter, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

source

Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange Method
julia
mlirRewriterBaseReplaceAllOpUsesWithValueRange(rewriter, from, nTo, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

source

Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept Method
julia
mlirRewriterBaseReplaceAllUsesExcept(rewriter, from, to, exceptedUser)

Find uses of from and replace them with to except if the user is exceptedUser. Also notify the listener about every in-place op modification (for every use that was replaced).

source

Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith Method
julia
mlirRewriterBaseReplaceAllUsesWith(rewriter, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced).

source

Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith Method
julia
mlirRewriterBaseReplaceAllValueRangeUsesWith(rewriter, nValues, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced).

source

Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock Method
julia
mlirRewriterBaseReplaceOpUsesWithinBlock(rewriter, op, nNewValues, newValues, block)

Find uses of from within block and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced). The optional allUsesReplaced flag is set to "true" if all uses were replaced.

source

Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation Method
julia
mlirRewriterBaseReplaceOpWithOperation(rewriter, op, newOp)

Replace the results of the given (original) operation with the specified new op (replacement). The result types of the two ops must match. The original op is erased.

source

Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues Method
julia
mlirRewriterBaseReplaceOpWithValues(rewriter, op, nValues, values)

Replace the results of the given (original) operation with the specified list of values (replacements). The result types of the given op and the replacements must match. The original op is erased.

source

Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter Method
julia
mlirRewriterBaseSetInsertionPointAfter(rewriter, op)

Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.

source

Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue Method
julia
mlirRewriterBaseSetInsertionPointAfterValue(rewriter, value)

Sets the insertion point to the node after the specified value. If value has a defining operation, sets the insertion point to the node after such defining operation. This will cause subsequent insertions to go right after it. Otherwise, value is a BlockArgument. Sets the insertion point to the start of its block.

source

Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore Method
julia
mlirRewriterBaseSetInsertionPointBefore(rewriter, op)

Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.

source

Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd Method
julia
mlirRewriterBaseSetInsertionPointToEnd(rewriter, block)

Sets the insertion point to the end of the specified block.

source

Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart Method
julia
mlirRewriterBaseSetInsertionPointToStart(rewriter, block)

Sets the insertion point to the start of the specified block.

source

Reactant.MLIR.API.mlirRewriterBaseStartOpModification Method
julia
mlirRewriterBaseStartOpModification(rewriter, op)

This method is used to notify the rewriter that an in-place operation modification is about to happen. A call to this function must be followed by a call to either finalizeOpModification or cancelOpModification. This is a minor efficiency win (it avoids creating a new operation and removing the old one) but also often allows simpler code in the client.

source

Reactant.MLIR.API.mlirSetGlobalDebugType Method
julia
mlirSetGlobalDebugType(type)

Sets the current debug type, similarly to -debug-only=type in the command-line tools. Note that global debug should be enabled for any output to be produced.

source

Reactant.MLIR.API.mlirSetGlobalDebugTypes Method
julia
mlirSetGlobalDebugTypes(types, n)

Sets multiple current debug types, similarly to `-debug-only=type1,type2" in the command-line tools. Note that global debug should be enabled for any output to be produced.

source

Reactant.MLIR.API.mlirShapedTypeGetDimSize Method
julia
mlirShapedTypeGetDimSize(type, dim)

Returns the dim-th dimension of the given ranked shaped type.

source

Reactant.MLIR.API.mlirShapedTypeGetDynamicSize Method
julia
mlirShapedTypeGetDynamicSize()

Returns the value indicating a dynamic size in a shaped type. Prefer mlirShapedTypeIsDynamicSize to direct comparisons with this value.

source

Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset Method
julia
mlirShapedTypeGetDynamicStrideOrOffset()

Returns the value indicating a dynamic stride or offset in a shaped type. Prefer mlirShapedTypeGetDynamicStrideOrOffset to direct comparisons with this value.

source

Reactant.MLIR.API.mlirShapedTypeGetElementType Method
julia
mlirShapedTypeGetElementType(type)

Returns the element type of the shaped type.

source

Reactant.MLIR.API.mlirShapedTypeGetRank Method
julia
mlirShapedTypeGetRank(type)

Returns the rank of the given ranked shaped type.

source

Reactant.MLIR.API.mlirShapedTypeHasRank Method
julia
mlirShapedTypeHasRank(type)

Checks whether the given shaped type is ranked.

source

Reactant.MLIR.API.mlirShapedTypeHasStaticShape Method
julia
mlirShapedTypeHasStaticShape(type)

Checks whether the given shaped type has a static shape.

source

Reactant.MLIR.API.mlirShapedTypeIsDynamicDim Method
julia
mlirShapedTypeIsDynamicDim(type, dim)

Checks wither the dim-th dimension of the given shaped type is dynamic.

source

Reactant.MLIR.API.mlirShapedTypeIsDynamicSize Method
julia
mlirShapedTypeIsDynamicSize(size)

Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.

source

Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset Method
julia
mlirShapedTypeIsDynamicStrideOrOffset(val)

Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.

source

Reactant.MLIR.API.mlirSparseElementsAttrGetIndices Method
julia
mlirSparseElementsAttrGetIndices(attr)

Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the given sparse elements attribute.

source

Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID Method
julia
mlirSparseElementsAttrGetTypeID()

Returns the typeID of a SparseElements attribute.

source

Reactant.MLIR.API.mlirSparseElementsAttrGetValues Method
julia
mlirSparseElementsAttrGetValues(attr)

Returns the dense elements attribute containing the non-null elements in the given sparse elements attribute.

source

Reactant.MLIR.API.mlirSparseElementsAttribute Method
julia
mlirSparseElementsAttribute(shapedType, denseIndices, denseValues)

Creates a sparse elements attribute of the given shape from a list of indices and a list of associated values. Both lists are expected to be dense elements attributes with the same number of elements. The list of indices is expected to contain 64-bit integers. The attribute is created in the same context as the type.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet Method
julia
mlirSparseTensorEncodingAttrGet(ctx, lvlRank, lvlTypes, dimToLvl, lvlTodim, posWidth, crdWidth, explicitVal, implicitVal)

Creates a sparse\_tensor.encoding attribute with the given parameters.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth Method
julia
mlirSparseTensorEncodingAttrGetCrdWidth(attr)

Returns the coordinate bitwidth of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl Method
julia
mlirSparseTensorEncodingAttrGetDimToLvl(attr)

Returns the dimension-to-level mapping of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal Method
julia
mlirSparseTensorEncodingAttrGetExplicitVal(attr)

Returns the explicit value of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal Method
julia
mlirSparseTensorEncodingAttrGetImplicitVal(attr)

Returns the implicit value of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt Method
julia
mlirSparseTensorEncodingAttrGetLvlFmt(attr, lvl)

Returns a specified level-format of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim Method
julia
mlirSparseTensorEncodingAttrGetLvlToDim(attr)

Returns the level-to-dimension mapping of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType Method
julia
mlirSparseTensorEncodingAttrGetLvlType(attr, lvl)

Returns a specified level-type of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth Method
julia
mlirSparseTensorEncodingAttrGetPosWidth(attr)

Returns the position bitwidth of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank Method
julia
mlirSparseTensorEncodingGetLvlRank(attr)

Returns the level-rank of the sparse\_tensor.encoding attribute.

source

Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID Method
julia
mlirStridedLayoutAttrGetTypeID()

Returns the typeID of a StridedLayout attribute.

source

Reactant.MLIR.API.mlirStringAttrGet Method
julia
mlirStringAttrGet(ctx, str)

Creates a string attribute in the given context containing the given string.

source

Reactant.MLIR.API.mlirStringAttrGetTypeID Method
julia
mlirStringAttrGetTypeID()

Returns the typeID of a String attribute.

source

Reactant.MLIR.API.mlirStringAttrGetValue Method
julia
mlirStringAttrGetValue(attr)

Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.API.mlirStringAttrTypedGet Method
julia
mlirStringAttrTypedGet(type, str)

Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.

source

Reactant.MLIR.API.mlirStringRefCreate Method
julia
mlirStringRefCreate(str, length)

Constructs a string reference from the pointer and length. The pointer need not reference to a null-terminated string.

source

Reactant.MLIR.API.mlirStringRefCreateFromCString Method
julia
mlirStringRefCreateFromCString(str)

Constructs a string reference from a null-terminated C string. Prefer mlirStringRefCreate if the length of the string is known.

source

Reactant.MLIR.API.mlirStringRefEqual Method
julia
mlirStringRefEqual(string, other)

Returns true if two string references are equal, false otherwise.

source

Reactant.MLIR.API.mlirSymbolRefAttrGet Method
julia
mlirSymbolRefAttrGet(ctx, symbol, numReferences, references)

Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.

source

Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference Method
julia
mlirSymbolRefAttrGetLeafReference(attr)

Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference Method
julia
mlirSymbolRefAttrGetNestedReference(attr, pos)

Returns pos-th reference nested in the given symbol reference attribute.

source

Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences Method
julia
mlirSymbolRefAttrGetNumNestedReferences(attr)

Returns the number of references nested in the given symbol reference attribute.

source

Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference Method
julia
mlirSymbolRefAttrGetRootReference(attr)

Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.

source

Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID Method
julia
mlirSymbolRefAttrGetTypeID()

Returns the typeID of an SymbolRef attribute.

source

Reactant.MLIR.API.mlirSymbolTableCreate Method
julia
mlirSymbolTableCreate(operation)

Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.

source

Reactant.MLIR.API.mlirSymbolTableDestroy Method
julia
mlirSymbolTableDestroy(symbolTable)

Destroys the symbol table created with mlirSymbolTableCreate. This does not affect the operations in the table.

source

Reactant.MLIR.API.mlirSymbolTableErase Method
julia
mlirSymbolTableErase(symbolTable, operation)

Removes the given operation from the symbol table and erases it.

source

Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName Method
julia
mlirSymbolTableGetSymbolAttributeName()

Returns the name of the attribute used to store symbol names compatible with symbol tables.

source

Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName Method
julia
mlirSymbolTableGetVisibilityAttributeName()

Returns the name of the attribute used to store symbol visibility.

source

Reactant.MLIR.API.mlirSymbolTableInsert Method
julia
mlirSymbolTableInsert(symbolTable, operation)

Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.

source

Reactant.MLIR.API.mlirSymbolTableIsNull Method
julia
mlirSymbolTableIsNull(symbolTable)

Returns true if the symbol table is null.

source

Reactant.MLIR.API.mlirSymbolTableLookup Method
julia
mlirSymbolTableLookup(symbolTable, name)

Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.

source

Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses Method
julia
mlirSymbolTableReplaceAllSymbolUses(oldSymbol, newSymbol, from)

Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'. This does not traverse into nested symbol tables. Will fail atomically if there are any unknown operations that may be potential symbol tables.

source

Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables Method
julia
mlirSymbolTableWalkSymbolTables(from, allSymUsesVisible, callback, userData)

Walks all symbol table operations nested within, and including, op. For each symbol table operation, the provided callback is invoked with the op and a boolean signifying if the symbols within that symbol table can be treated as if all uses within the IR are visible to the caller. allSymUsesVisible identifies whether all of the symbol uses of symbols within op are visible.

source

Reactant.MLIR.API.mlirTF32TypeGet Method
julia
mlirTF32TypeGet(ctx)

Creates a TF32 type in the given context. The type is owned by the context.

source

Reactant.MLIR.API.mlirTransformApplyNamedSequence Method
julia
mlirTransformApplyNamedSequence(payload, transformRoot, transformModule, transformOptions)

Applies the transformation script starting at the given transform root operation to the given payload operation. The module containing the transform root as well as the transform options should be provided. The transform operation must implement TransformOpInterface and the module must be a ModuleOp. Returns the status of the application.

source

Reactant.MLIR.API.mlirTransformOptionsCreate Method
julia
mlirTransformOptionsCreate()

Creates a default-initialized transform options object.

source

Reactant.MLIR.API.mlirTransformOptionsDestroy Method
julia
mlirTransformOptionsDestroy(transformOptions)

Destroys a transform options object previously created by mlirTransformOptionsCreate.

source

Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks Method
julia
mlirTransformOptionsEnableExpensiveChecks(transformOptions, enable)

Enables or disables expensive checks in transform options.

source

Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp Method
julia
mlirTransformOptionsEnforceSingleTopLevelTransformOp(transformOptions, enable)

Enables or disables the enforcement of the top-level transform op being single in transform options.

source

Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp Method
julia
mlirTransformOptionsGetEnforceSingleTopLevelTransformOp(transformOptions)

Returns true if the enforcement of the top-level transform op being single is enabled in transform options.

source

Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled Method
julia
mlirTransformOptionsGetExpensiveChecksEnabled(transformOptions)

Returns true if expensive checks are enabled in transform options.

source

Reactant.MLIR.API.mlirTranslateModuleToLLVMIR Method
julia
mlirTranslateModuleToLLVMIR(_module, context)

Translate operation that satisfies LLVM dialect module requirements into an LLVM IR module living in the given context. This translates operations from any dilalect that has a registered implementation of LLVMTranslationDialectInterface.

Returns

the generated LLVM IR Module from the translated MLIR module, it is owned by the caller.

source

Reactant.MLIR.API.mlirTupleTypeGet Method
julia
mlirTupleTypeGet(ctx, numElements, elements)

Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.

source

Reactant.MLIR.API.mlirTupleTypeGetNumTypes Method
julia
mlirTupleTypeGetNumTypes(type)

Returns the number of types contained in a tuple.

source

Reactant.MLIR.API.mlirTupleTypeGetType Method
julia
mlirTupleTypeGetType(type, pos)

Returns the pos-th type in the tuple type.

source

Reactant.MLIR.API.mlirTupleTypeGetTypeID Method
julia
mlirTupleTypeGetTypeID()

Returns the typeID of an Tuple type.

source

Reactant.MLIR.API.mlirTypeAttrGet Method
julia
mlirTypeAttrGet(type)

Creates a type attribute wrapping the given type in the same context as the type.

source

Reactant.MLIR.API.mlirTypeAttrGetTypeID Method
julia
mlirTypeAttrGetTypeID()

Returns the typeID of a Type attribute.

source

Reactant.MLIR.API.mlirTypeAttrGetValue Method
julia
mlirTypeAttrGetValue(attr)

Returns the type stored in the given type attribute.

source

Reactant.MLIR.API.mlirTypeDump Method
julia
mlirTypeDump(type)

Prints the type to the standard error stream.

source

Reactant.MLIR.API.mlirTypeEqual Method
julia
mlirTypeEqual(t1, t2)

Checks if two types are equal.

source

Reactant.MLIR.API.mlirTypeGetContext Method
julia
mlirTypeGetContext(type)

Gets the context that a type was created with.

source

Reactant.MLIR.API.mlirTypeGetDialect Method
julia
mlirTypeGetDialect(type)

Gets the dialect a type belongs to.

source

Reactant.MLIR.API.mlirTypeGetTypeID Method
julia
mlirTypeGetTypeID(type)

Gets the type ID of the type.

source

Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID Method
julia
mlirTypeIDAllocatorAllocateTypeID(allocator)

Allocates a type id that is valid for the lifetime of the allocator

source

Reactant.MLIR.API.mlirTypeIDAllocatorCreate Method
julia
mlirTypeIDAllocatorCreate()

Creates a type id allocator for dynamic type id creation

source

Reactant.MLIR.API.mlirTypeIDAllocatorDestroy Method
julia
mlirTypeIDAllocatorDestroy(allocator)

Deallocates the allocator and all allocated type ids

source

Reactant.MLIR.API.mlirTypeIDCreate Method
julia
mlirTypeIDCreate(ptr)

ptr must be 8 byte aligned and unique to a type valid for the duration of the returned type id's usage

source

Reactant.MLIR.API.mlirTypeIDEqual Method
julia
mlirTypeIDEqual(typeID1, typeID2)

Checks if two type ids are equal.

source

Reactant.MLIR.API.mlirTypeIDHashValue Method
julia
mlirTypeIDHashValue(typeID)

Returns the hash value of the type id.

source

Reactant.MLIR.API.mlirTypeIDIsNull Method
julia
mlirTypeIDIsNull(typeID)

Checks whether a type id is null.

source

Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType Method
julia
mlirTypeIsAAnyQuantizedType(type)

Returns true if the given type is an AnyQuantizedType.

source

Reactant.MLIR.API.mlirTypeIsABF16 Method
julia
mlirTypeIsABF16(type)

Checks whether the given type is a bf16 type.

source

Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType Method
julia
mlirTypeIsACalibratedQuantizedType(type)

Returns true if the given type is a CalibratedQuantizedType.

source

Reactant.MLIR.API.mlirTypeIsAComplex Method
julia
mlirTypeIsAComplex(type)

Checks whether the given type is a Complex type.

source

Reactant.MLIR.API.mlirTypeIsAF16 Method
julia
mlirTypeIsAF16(type)

Checks whether the given type is an f16 type.

source

Reactant.MLIR.API.mlirTypeIsAF32 Method
julia
mlirTypeIsAF32(type)

Checks whether the given type is an f32 type.

source

Reactant.MLIR.API.mlirTypeIsAF64 Method
julia
mlirTypeIsAF64(type)

Checks whether the given type is an f64 type.

source

Reactant.MLIR.API.mlirTypeIsAFloat Method
julia
mlirTypeIsAFloat(type)

Checks whether the given type is a floating-point type.

source

Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN Method
julia
mlirTypeIsAFloat4E2M1FN(type)

Checks whether the given type is an f4E2M1FN type.

source

Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN Method
julia
mlirTypeIsAFloat6E2M3FN(type)

Checks whether the given type is an f6E2M3FN type.

source

Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN Method
julia
mlirTypeIsAFloat6E3M2FN(type)

Checks whether the given type is an f6E3M2FN type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E3M4 Method
julia
mlirTypeIsAFloat8E3M4(type)

Checks whether the given type is an f8E3M4 type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E4M3 Method
julia
mlirTypeIsAFloat8E4M3(type)

Checks whether the given type is an f8E4M3 type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ Method
julia
mlirTypeIsAFloat8E4M3B11FNUZ(type)

Checks whether the given type is an f8E4M3B11FNUZ type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN Method
julia
mlirTypeIsAFloat8E4M3FN(type)

Checks whether the given type is an f8E4M3FN type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ Method
julia
mlirTypeIsAFloat8E4M3FNUZ(type)

Checks whether the given type is an f8E4M3FNUZ type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E5M2 Method
julia
mlirTypeIsAFloat8E5M2(type)

Checks whether the given type is an f8E5M2 type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ Method
julia
mlirTypeIsAFloat8E5M2FNUZ(type)

Checks whether the given type is an f8E5M2FNUZ type.

source

Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU Method
julia
mlirTypeIsAFloat8E8M0FNU(type)

Checks whether the given type is an f8E8M0FNU type.

source

Reactant.MLIR.API.mlirTypeIsAFunction Method
julia
mlirTypeIsAFunction(type)

Checks whether the given type is a function type.

source

Reactant.MLIR.API.mlirTypeIsAIndex Method
julia
mlirTypeIsAIndex(type)

Checks whether the given type is an index type.

source

Reactant.MLIR.API.mlirTypeIsAInteger Method
julia
mlirTypeIsAInteger(type)

Checks whether the given type is an integer type.

source

Reactant.MLIR.API.mlirTypeIsALLVMPointerType Method
julia
mlirTypeIsALLVMPointerType(type)

Returns true if the type is an LLVM dialect pointer type.

source

Reactant.MLIR.API.mlirTypeIsALLVMStructType Method
julia
mlirTypeIsALLVMStructType(type)

Returns true if the type is an LLVM dialect struct type.

source

Reactant.MLIR.API.mlirTypeIsAMemRef Method
julia
mlirTypeIsAMemRef(type)

Checks whether the given type is a MemRef type.

source

Reactant.MLIR.API.mlirTypeIsANone Method
julia
mlirTypeIsANone(type)

Checks whether the given type is a None type.

source

Reactant.MLIR.API.mlirTypeIsAOpaque Method
julia
mlirTypeIsAOpaque(type)

Checks whether the given type is an opaque type.

source

Reactant.MLIR.API.mlirTypeIsAQuantizedType Method
julia
mlirTypeIsAQuantizedType(type)

Returns true if the given type is a quantization dialect type.

source

Reactant.MLIR.API.mlirTypeIsARankedTensor Method
julia
mlirTypeIsARankedTensor(type)

Checks whether the given type is a ranked tensor type.

source

Reactant.MLIR.API.mlirTypeIsAShaped Method
julia
mlirTypeIsAShaped(type)

Checks whether the given type is a Shaped type.

source

Reactant.MLIR.API.mlirTypeIsATF32 Method
julia
mlirTypeIsATF32(type)

Checks whether the given type is an TF32 type.

source

Reactant.MLIR.API.mlirTypeIsATensor Method
julia
mlirTypeIsATensor(type)

Checks whether the given type is a Tensor type.

source

Reactant.MLIR.API.mlirTypeIsATuple Method
julia
mlirTypeIsATuple(type)

Checks whether the given type is a tuple type.

source

Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType Method
julia
mlirTypeIsAUniformQuantizedPerAxisType(type)

Returns true if the given type is a UniformQuantizedPerAxisType.

source

Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType Method
julia
mlirTypeIsAUniformQuantizedType(type)

Returns true if the given type is a UniformQuantizedType.

source

Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef Method
julia
mlirTypeIsAUnrankedMemRef(type)

Checks whether the given type is an UnrankedMemRef type.

source

Reactant.MLIR.API.mlirTypeIsAUnrankedTensor Method
julia
mlirTypeIsAUnrankedTensor(type)

Checks whether the given type is an unranked tensor type.

source

Reactant.MLIR.API.mlirTypeIsAVector Method
julia
mlirTypeIsAVector(type)

Checks whether the given type is a Vector type.

source

Reactant.MLIR.API.mlirTypeIsNull Method
julia
mlirTypeIsNull(type)

Checks whether a type is null.

source

Reactant.MLIR.API.mlirTypeParseGet Method
julia
mlirTypeParseGet(context, type)

Parses a type. The type is owned by the context.

source

Reactant.MLIR.API.mlirTypePrint Method
julia
mlirTypePrint(type, callback, userData)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet Method
julia
mlirUniformQuantizedPerAxisTypeGet(flags, storageType, expressedType, nDims, scales, zeroPoints, quantizedDimension, storageTypeMin, storageTypeMax)

Creates an instance of UniformQuantizedPerAxisType with the given parameters in the same context as storageType and returns it. scales and zeroPoints point to nDims number of elements. The instance is owned by the context.

source

Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims Method
julia
mlirUniformQuantizedPerAxisTypeGetNumDims(type)

Returns the number of axes in the given quantized per-axis type.

source

Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension Method
julia
mlirUniformQuantizedPerAxisTypeGetQuantizedDimension(type)

Returns the index of the quantized dimension in the given quantized per-axis type.

source

Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale Method
julia
mlirUniformQuantizedPerAxisTypeGetScale(type, pos)

Returns pos-th scale of the given quantized per-axis type.

source

Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint Method
julia
mlirUniformQuantizedPerAxisTypeGetZeroPoint(type, pos)

Returns pos-th zero point of the given quantized per-axis type.

source

Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint Method
julia
mlirUniformQuantizedPerAxisTypeIsFixedPoint(type)

Returns true if the given uniform quantized per-axis type is fixed-point.

source

Reactant.MLIR.API.mlirUniformQuantizedTypeGet Method
julia
mlirUniformQuantizedTypeGet(flags, storageType, expressedType, scale, zeroPoint, storageTypeMin, storageTypeMax)

Creates an instance of UniformQuantizedType with the given parameters in the same context as storageType and returns it. The instance is owned by the context.

source

Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale Method
julia
mlirUniformQuantizedTypeGetScale(type)

Returns the scale of the given uniform quantized type.

source

Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint Method
julia
mlirUniformQuantizedTypeGetZeroPoint(type)

Returns the zero point of the given uniform quantized type.

source

Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint Method
julia
mlirUniformQuantizedTypeIsFixedPoint(type)

Returns true if the given uniform quantized type is fixed-point.

source

Reactant.MLIR.API.mlirUnitAttrGet Method
julia
mlirUnitAttrGet(ctx)

Creates a unit attribute in the given context.

source

Reactant.MLIR.API.mlirUnitAttrGetTypeID Method
julia
mlirUnitAttrGetTypeID()

Returns the typeID of a Unit attribute.

source

Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet Method
julia
mlirUnmanagedDenseResourceElementsAttrGet(shapedType, name, data, dataLength, dataAlignment, dataIsMutable, deleter, userData)

Unlike the typed accessors below, constructs the attribute with a raw data buffer and no type/alignment checking. Use a more strongly typed accessor if possible. If dataIsMutable is false, then an immutable AsmResourceBlob will be created and that passed data contents will be treated as const. If the deleter is non NULL, then it will be called when the data buffer can no longer be accessed (passing userData to it).

source

Reactant.MLIR.API.mlirUnrankedMemRefTypeGet Method
julia
mlirUnrankedMemRefTypeGet(elementType, memorySpace)

Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type.

source

Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked Method
julia
mlirUnrankedMemRefTypeGetChecked(loc, elementType, memorySpace)

Same as "mlirUnrankedMemRefTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID Method
julia
mlirUnrankedMemRefTypeGetTypeID()

Returns the typeID of an UnrankedMemRef type.

source

Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace Method
julia
mlirUnrankedMemrefGetMemorySpace(type)

Returns the memory spcae of the given Unranked MemRef type.

source

Reactant.MLIR.API.mlirUnrankedTensorTypeGet Method
julia
mlirUnrankedTensorTypeGet(elementType)

Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context.

source

Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked Method
julia
mlirUnrankedTensorTypeGetChecked(loc, elementType)

Same as "mlirUnrankedTensorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID Method
julia
mlirUnrankedTensorTypeGetTypeID()

Returns the typeID of an UnrankedTensor type.

source

Reactant.MLIR.API.mlirValueDump Method
julia
mlirValueDump(value)

Prints the value to the standard error stream.

source

Reactant.MLIR.API.mlirValueEqual Method
julia
mlirValueEqual(value1, value2)

Returns 1 if two values are equal, 0 otherwise.

source

Reactant.MLIR.API.mlirValueGetFirstUse Method
julia
mlirValueGetFirstUse(value)

Returns an op operand representing the first use of the value, or a null op operand if there are no uses.

source

Reactant.MLIR.API.mlirValueGetType Method
julia
mlirValueGetType(value)

Returns the type of the value.

source

Reactant.MLIR.API.mlirValueIsABlockArgument Method
julia
mlirValueIsABlockArgument(value)

Returns 1 if the value is a block argument, 0 otherwise.

source

Reactant.MLIR.API.mlirValueIsAOpResult Method
julia
mlirValueIsAOpResult(value)

Returns 1 if the value is an operation result, 0 otherwise.

source

Reactant.MLIR.API.mlirValueIsNull Method
julia
mlirValueIsNull(value)

Returns whether the value is null.

source

Reactant.MLIR.API.mlirValuePrint Method
julia
mlirValuePrint(value, callback, userData)

Prints a value by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

Reactant.MLIR.API.mlirValuePrintAsOperand Method
julia
mlirValuePrintAsOperand(value, state, callback, userData)

Prints a value as an operand (i.e., the ValueID).

source

Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith Method
julia
mlirValueReplaceAllUsesOfWith(of, with)

Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead. When this returns there are zero uses of 'of'.

source

Reactant.MLIR.API.mlirValueSetType Method
julia
mlirValueSetType(value, type)

Set the type of the value.

source

Reactant.MLIR.API.mlirVectorTypeGet Method
julia
mlirVectorTypeGet(rank, shape, elementType)

Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context.

source

Reactant.MLIR.API.mlirVectorTypeGetChecked Method
julia
mlirVectorTypeGetChecked(loc, rank, shape, elementType)

Same as "mlirVectorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirVectorTypeGetScalable Method
julia
mlirVectorTypeGetScalable(rank, shape, scalable, elementType)

Creates a scalable vector type with the shape identified by its rank and dimensions. A subset of dimensions may be marked as scalable via the corresponding flag list, which is expected to have as many entries as the rank of the vector. The vector is created in the same context as the element type.

source

Reactant.MLIR.API.mlirVectorTypeGetScalableChecked Method
julia
mlirVectorTypeGetScalableChecked(loc, rank, shape, scalable, elementType)

Same as "mlirVectorTypeGetScalable" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

Reactant.MLIR.API.mlirVectorTypeGetTypeID Method
julia
mlirVectorTypeGetTypeID()

Returns the typeID of an Vector type.

source

Reactant.MLIR.API.mlirVectorTypeIsDimScalable Method
julia
mlirVectorTypeIsDimScalable(type, dim)

Checks whether the "dim"-th dimension of the given vector is scalable.

source

Reactant.MLIR.API.mlirVectorTypeIsScalable Method
julia
mlirVectorTypeIsScalable(type)

Checks whether the given vector type is scalable, i.e., has at least one scalable dimension.

source

Other Functions

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/ops.html b/previews/PR363/api/ops.html new file mode 100644 index 00000000..0ccfd684 --- /dev/null +++ b/previews/PR363/api/ops.html @@ -0,0 +1,42 @@ + + + + + + Reactant.Ops API | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Reactant.Ops API

Reactant.Ops module provides a high-level API to construct MLIR operations without having to directly interact with the different dialects.

Currently we haven't documented all the functions in Reactant.Ops.

Reactant.Ops.hlo_call Method
julia
Ops.hlo_call(mlir_code::String, args::Vararg{AnyTracedRArray}...; func_name::String="main") -> NTuple{N, AnyTracedRArray}

Given a MLIR module given as a string, calls the function identified by the func_name keyword parameter (default "main") with the provided arguments and return a tuple for each result of the call.

julia
julia> Reactant.@jit(
+          Ops.hlo_call(
+              """
+              module {
+                func.func @main(%arg0: tensor<3xf32>, %arg1: tensor<3xf32>) -> tensor<3xf32> {
+                  %0 = stablehlo.add %arg0, %arg1 : tensor<3xf32>
+                  return %0 : tensor<3xf32>
+                }
+              }
+              """,
+              Reactant.to_rarray(Float32[1, 2, 3]),
+              Reactant.to_rarray(Float32[1, 2, 3]),
+          )
+       )
+(ConcreteRArray{Float32, 1}(Float32[2.0, 4.0, 6.0]),)

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/stablehlo.html b/previews/PR363/api/stablehlo.html new file mode 100644 index 00000000..2e5fe479 --- /dev/null +++ b/previews/PR363/api/stablehlo.html @@ -0,0 +1,240 @@ + + + + + + StableHLO Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

StableHLO Dialect

Refer to the official documentation for more details.

Reactant.MLIR.Dialects.stablehlo.abs Method

abs

Performs element-wise abs operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs

Example

mlir
%result = stablehlo.abs %operand : tensor<3xi32>

source

Reactant.MLIR.Dialects.stablehlo.add Method

add

Performs element-wise addition of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add

Example

mlir
%result = stablehlo.add %lhs, %rhs : tensor<2x2xi32>

source

Reactant.MLIR.Dialects.stablehlo.after_all Method

after_all

Ensures that the operations producing the inputs are executed before any operations that depend on result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all

Example

mlir
%result = stablehlo.after_all %input0, %input1 : !stablehlo.token

source

Reactant.MLIR.Dialects.stablehlo.all_gather Method

all_gather

Within each process group in the process grid, concatenates the values of the operand tensor from each process along all_gather_dim and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather

Example

mlir
%result:2 = "stablehlo.all_gather"(%operand0, %operand1) {
+  all_gather_dim = 1 : i64,
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> (tensor<2x4xi64>, tensor<2x4xi64>)

source

Reactant.MLIR.Dialects.stablehlo.all_reduce Method

all_reduce

Within each process group in the process grid, applies a reduction function computation to the values of the operand tensor from each process and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce

Example

mlir
%result:2 = "stablehlo.all_reduce"(%operand0, %operand0) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+  %0 = "stablehlo.add"(%arg0, %arg1) : (tensor<i64>, tensor<i64>) -> tensor<i64>
+  "stablehlo.return"(%0) : (tensor<i64>) -> ()
+}) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<4xi64>, tensor<4xi64>) -> (tensor<4xi64>, tensor<4xi64>)

source

Reactant.MLIR.Dialects.stablehlo.all_to_all Method

all_to_all

Within each process group in the process grid, splits the values of the operand tensor along split_dimension into parts, scatters the split parts between the processes, concatenates the scattered parts along concat_dimension and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all

Example

mlir
%result:2 = "stablehlo.all_to_all"(%operand1, %operand2) {
+  split_dimension = 1 : i64,
+  concat_dimension = 0 : i64,
+  split_count = 2 : i64,
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<2x4xi64>, tensor<2x4xi64>) -> (tensor<4x2xi64>, tensor<4x2xi64>)

source

Reactant.MLIR.Dialects.stablehlo.and Method

and

Performs element-wise AND of two tensors lhs and rhs and produces a result tensor

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and

Example

mlir
%result = stablehlo.and %lhs, %rhs : tensor<2x2xi32>

source

Reactant.MLIR.Dialects.stablehlo.atan2 Method

atan2

Performs element-wise atan2 operation on lhs and rhs tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2

Example

mlir
%result = stablehlo.atan2 %lhs, %rhs : tensor<3xf64>

source

Reactant.MLIR.Dialects.stablehlo.batch_norm_grad Method

batch_norm_grad

Computes gradients of several inputs of BatchNormTrainingOp backpropagating from grad_output, and produces grad_operand, grad_scale and grad_offset tensors.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad

Example

mlir
%grad_operand, %grad_scale, %grad_offset =
+"stablehlo.batch_norm_grad"(%operand, %scale, %mean, %variance, %grad_output) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>,
+     tensor<2x2x2xf64>) -> (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)

source

Reactant.MLIR.Dialects.stablehlo.batch_norm_inference Method

batch_norm_inference

Normalizes the operand tensor across all dimensions except for the feature_index dimension and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference

Example

mlir
%result = "stablehlo.batch_norm_inference"(%operand, %scale, %offset, %mean, %variance) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>) -> tensor<2x2x2xf64>

source

Reactant.MLIR.Dialects.stablehlo.batch_norm_training Method

batch_norm_training

Computes mean and variance across batch and spatial dimensions and normalizes the operand tensor, for each feature in the feature_index dimension and produces output, batch_mean and batch_var tensors.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training

Example

mlir
%output, %batch_mean, %batch_var = "stablehlo.batch_norm_training"(%operand, %scale, %offset) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>) ->
+    (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)

source

Reactant.MLIR.Dialects.stablehlo.bitcast_convert Method

bitcast_convert

Performs a bitcast operation on operand tensor and produces a result tensor where the bits of the entire operand tensor are reinterpreted using the type of the result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert

Example

mlir
%result = stablehlo.bitcast_convert %operand : (tensor<f64>) -> tensor<4xf16>

source

Reactant.MLIR.Dialects.stablehlo.broadcast Method

broadcast

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as XLA's Broadcast: https://www.tensorflow.org/xla/operation_semantics#broadcast

Example

mlir
%result = stablehlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>

source

Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim Method

broadcast_in_dim

Expands the dimensions and/or rank of an input tensor by duplicating the data in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim

Example

mlir
%result = stablehlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>

source

Reactant.MLIR.Dialects.stablehlo.case Method

case

Produces the output from executing exactly one function from branches depending on the value of index.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case

Example

mlir
%result0, %result1 = "stablehlo.case"(%index) ({
+  stablehlo.return %result_branch0, %result_branch0 : tensor<2xi64>, tensor<2xi64>
+}, {
+  stablehlo.return %result_branch1, %result_branch1 : tensor<2xi64>, tensor<2xi64>
+}) : (tensor<i32>) -> (tensor<2xi64>, tensor<2xi64>)

source

Reactant.MLIR.Dialects.stablehlo.cbrt Method

cbrt

Performs element-wise cubic root operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt

Example

mlir
%result = stablehlo.cbrt %operand : tensor<4xf64>

source

Reactant.MLIR.Dialects.stablehlo.ceil Method

ceil

Performs element-wise ceil of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil

Example

mlir
%result = stablehlo.ceil %operand : tensor<5xf32>

source

Reactant.MLIR.Dialects.stablehlo.cholesky Method

cholesky

Computes the Cholesky decomposition of a batch of matrices.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky

Example

mlir
%result = stablehlo.cholesky %a, lower = true : tensor<3x3xf64>

source

Reactant.MLIR.Dialects.stablehlo.clamp Method

clamp

Clamps every element of the operand tensor between a minimum and maximum value and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp

Example

mlir
%result = stablehlo.clamp %min, %operand, %max : tensor<3xi32>

source

Reactant.MLIR.Dialects.stablehlo.collective_broadcast Method

collective_broadcast

Within each process group in the process grid, send the value of the operand tensor from the source process to the target processes and produce a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast

Example

mlir
%result = "stablehlo.collective_broadcast"(%operand) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<1x2xi64>) -> tensor<1x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.collective_permute Method

collective_permute

Within each process group in the process grid, sends the value of the operand tensor from the source process to the target process and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute

Example

mlir
%result = "stablehlo.collective_permute"(%operand) {
+  source_target_pairs = dense<[[0, 1], [1, 2]]> : tensor<2x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>) -> tensor<2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.compare Method

compare

Performs element-wise comparison of lhs and rhs tensors according to comparison_direction and compare_type, and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare

Example

mlir
%result = stablehlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>

source

Reactant.MLIR.Dialects.stablehlo.complex Method

complex

Performs element-wise conversion to a complex value from a pair of real and imaginary values, lhs and rhs, and produces a result tensor. See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex

Example

mlir
%result = stablehlo.complex %lhs, %rhs : tensor<2xcomplex<f64>>

source

Reactant.MLIR.Dialects.stablehlo.composite Method

composite

Encapsulates an operation made up (composed) of other StableHLO operations, taking inputs and composite_attributes and producing results. The semantics of the op are implemented by the decomposition attribute. The composite op can be replaced with its decomposition without changing program semantics. In cases where inlining the decomposition does not provide the same op semantics, prefer using custom_call.

The version field (defaults to 0) is used to denote when a composite's semantics change.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composite

Example

mlir
%results = stablehlo.composite "my.op" %input0, %input1 {
+  composite_attributes = {
+    my_attribute = "my_value"
+  },
+  decomposition = @my_op,
+  version = 1 : i32
+} : (tensor<f32>, tensor<f32>) -> tensor<f32>

source

Reactant.MLIR.Dialects.stablehlo.concatenate Method

concatenate

Concatenates a variadic number of tensors in inputs along dimension dimension in the same order as the given arguments and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate

Example

mlir
%result = stablehlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.constant Method

constant

Produces an output tensor from a constant value.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant

Example

mlir
%output = stablehlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>

source

Reactant.MLIR.Dialects.stablehlo.convert Method

convert

Performs an element-wise conversion from one element type to another on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert

Example

mlir
%result = stablehlo.convert %operand : (tensor<3xi64>) -> tensor<3xcomplex<f64>>

source

Reactant.MLIR.Dialects.stablehlo.convolution Method

convolution

Computes dot products between windows of lhs and slices of rhs and produces result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution

Example

mlir
%result = stablehlo.convolution(%lhs, %rhs)
+  dim_numbers = [b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f],
+  window = {
+    stride = [4, 4],
+    pad = [[0, 0], [0, 0]],
+    lhs_dilate = [2, 2],
+    rhs_dilate = [1, 1],
+    reverse = [0, 0]
+  } {
+    feature_group_count = 1 : i64,
+    batch_group_count = 1 : i64,
+    precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+  } :
+(tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>) -> tensor<1x2x2x1xi64>

source

Reactant.MLIR.Dialects.stablehlo.cosine Method

cosine

Performs element-wise cosine operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine

Example

mlir
%result = stablehlo.cosine %operand : tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.count_leading_zeros Method

count_leading_zeros

Performs element-wise count of the number of leading zero bits in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeros

Example

mlir
%result = stablehlo.count_leading_zeros %operand : tensor<2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.create_token Method

create_token

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as AfterAllOp with 0 inputs: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all

Example

mlir
%output = stablehlo.create_token : !stablehlo.token

source

Reactant.MLIR.Dialects.stablehlo.cross_replica_sum Method

cross_replica_sum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as AllReduceOp with channel_id = 0, use_global_device_ids = false and computation implementing addition: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce

Example

mlir
%result = "stablehlo.cross-replica-sum"(%operand) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<4xf32>) -> tensor<4xf32>

source

Reactant.MLIR.Dialects.stablehlo.custom_call Method

custom_call

Encapsulates an implementation-defined operation call_target_name that takes inputs and called_computations and produces results.

Depending on the API version there are two ways to pass extra bits of static information to the external function:

  1. Use API_VERSION_TYPED_FFI which allows passing a dictionary attribute.

  2. Use a previous API version with a StringAttr to encode backend config.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call

Example

mlir
%results = stablehlo.custom_call @foo(%input0) {
+  backend_config = {bar = 42 : i32},
+  api_version = 4 : i32,
+  called_computations = [@foo]
+} : (tensor<f64>) -> tensor<f64>

source

Reactant.MLIR.Dialects.stablehlo.divide Method

divide

Performs element-wise division of dividend lhs and divisor rhs tensors and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide

Example

mlir
%result = stablehlo.divide %lhs, %rhs : tensor<4xf32>

source

Reactant.MLIR.Dialects.stablehlo.dot Method

dot

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot

Example

mlir
%0 = stablehlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>

source

Reactant.MLIR.Dialects.stablehlo.dot_general Method

dot_general

Computes dot products between slices of lhs and slices of rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general

Example

mlir
%result = stablehlo.dot_general %lhs, %rhs,
+  batching_dims = [0] x [0],
+  contracting_dims = [2] x [1],
+  precision = [DEFAULT, DEFAULT],
+  algorithm = <lhs_precision_type = tf32, rhs_precision_type = tf32, accumulation_type = f32, lhs_component_count = 1, rhs_component_count = 1, num_primitive_operations = 1, allow_imprecise_accumulation = false>
+  : (tensor<2x2x2xi64>, tensor<2x2x2xi64>) -> tensor<2x2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim Method

dynamic_broadcast_in_dim

This operation is functionally identical to broadcast_in_dim op, but the result shape is specified dynamically via output_dimensions.

It also accepts optional attributes to express static knowledge about the expanding behavior of dimensions. If not specified, all dimensions are assumed to be possibly expanding. The sets of dimensions that are known to be expanding and the set of dimensions that are known to be non-expanding must be disjoint and they must be a subset of the operand's dimensions.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_broadcast_in_dim

Example

mlir
%operand = stablehlo.constant dense<[[1, 2, 3]]> : tensor<1x3xi64>
+%output_dimensions = stablehlo.constant dense<[2, 3, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_broadcast_in_dim"(%operand, %output_dimensions) {
+  broadcast_dimensions = array<i64: 2, 1>,
+  known_expanding_dimensions = array<i64: 0>,
+  known_nonexpanding_dimensions = array<i64: 1>
+} : (tensor<1x3xi64>, tensor<3xi64>) -> tensor<2x3x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_conv Method

dynamic_conv

This operation is functionally identical to convolution op, but the padding is specified dynamically via padding.

Example

mlir
%padding = stablehlo.constant dense<2> : tensor<2x2xi64>
+%result = "stablehlo.dynamic_conv"(%lhs, %rhs, %padding) {
+  window_strides = array<i64: 4, 4>,
+  lhs_dilation = array<i64: 2, 2>,
+  rhs_dilation = array<i64: 1, 1>,
+  window_reversal = array<i1: false, false>,
+  dimension_numbers = #stablehlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
+  batch_group_count = 1 : i64,
+  feature_group_count = 1 : i64,
+  precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+} : (tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>, tensor<2x2xi64>) -> tensor<1x2x2x1xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_gather Method

dynamic_gather

This operation is functionally identical to gather op, with the slice_sizes specified dynamically as an operand.

Example

mlir
%slice_sizes = stablehlo.constant dense<[1, 2, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_gather"(%operand, %start_indices, %slice_sizes) {
+  dimension_numbers = #stablehlo.gather<
+    offset_dims = [2, 3],
+    collapsed_slice_dims = [0],
+    start_index_map = [0, 2],
+    index_vector_dim = 2>,
+  indices_are_sorted = false
+} : (tensor<3x4x2xi64>, tensor<2x3x2xi64>, tensor<3xi64>) -> tensor<2x3x2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_iota Method

dynamic_iota

This operation is functionally identical to iota op, but the result shape is specified dynamically via output_shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_iota

Example

mlir
%output_shape = stablehlo.constant dense<[4, 5]> : tensor<2xi64>
+%0 = stablehlo.dynamic_iota %output_shape, dim = 0 : (tensor<2xi64>) -> tensor<4x5xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_pad Method

dynamic_pad

This operation is functionally identical to pad https://github.com/openxla/stablehlo/pull/2306#discussion_r1595669709 op, but with edge_padding_low,edge_padding_highandinterior_padding specified dynamically as values.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_pad

Example

mlir
%edge_padding_low = stablehlo.constant dense<[0, 1]> : tensor<2xi32>
+%edge_padding_high = stablehlo.constant dense<[2, 1]> : tensor<2xi32>
+%interior_padding = stablehlo.constant dense<[1, 2]> : tensor<2xi32>
+%result = stablehlo.dynamic_pad %operand, %padding_value,
+            %edge_padding_low, %edge_padding_high, %interior_padding
+            : (tensor<2x3xi64>, tensor<i64>, tensor<2xi64>, tensor<2xi64>, tensor<2xi64>) -> tensor<5x9xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_reshape Method

dynamic_reshape

This operation is functionally identical to reshape op, but the result shape is specified dynamically via output_shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_reshape

Example

mlir
%output_shape = stablehlo.constant dense<[3, 2]> : tensor<2xi64>
+%result = stablehlo.dynamic_reshape %operand, %output_shape : (tensor<2x3xi64>, tensor<2xi64>) -> tensor<3x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_slice Method

dynamic_slice

Extracts a slice from the operand using dynamically-computed starting indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice

Example

mlir
%result = stablehlo.dynamic_slice %operand, %start_indices0, %start_indices1, sizes = [2, 2]
+  : (tensor<4x4xi32>, tensor<i64>, tensor<i64>) -> tensor<2x2xi32>

source

Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice Method

dynamic_update_slice

Produces a result tensor which is equal to the operand tensor except that the slice starting at start_indices is updated with the values in update.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_update_slice

Example

mlir
%result = stablehlo.dynamic_update_slice %operand, %update, %start_indices0, %start_indices1
+  : (tensor<4x4xi32>, tensor<2x2xi32>, tensor<i64>, tensor<i64>) -> tensor<4x4xi32>

source

Reactant.MLIR.Dialects.stablehlo.einsum Method

einsum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum

Example

mlir
%result = "stablehlo.einsum"(%lhs, %rhs) {
+  einsum_config = "ab,bc->ac"
+} : (tensor<4x16xf32>, tensor<16x4xf32>) -> tensor<4x4xf32>

source

Reactant.MLIR.Dialects.stablehlo.exponential Method

exponential

Performs element-wise exponential operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential

Example

mlir
%result = stablehlo.exponential %operand : tensor<2x2xf64>

source

Reactant.MLIR.Dialects.stablehlo.exponential_minus_one Method

exponential_minus_one

Performs element-wise exponential minus one operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential_minus_one

Example

mlir
%result = stablehlo.exponential_minus_one %operand : tensor<2xf64>

source

Reactant.MLIR.Dialects.stablehlo.fft Method

fft

Performs the forward and inverse Fourier transforms for real and complex inputs/outputs.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#fft

Example

mlir
%result = stablehlo.fft %operand, type = FFT, length = [4] : (tensor<4xcomplex<f32>>) -> tensor<4xcomplex<f32>>

source

Reactant.MLIR.Dialects.stablehlo.floor Method

floor

Performs element-wise floor of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#floor

Example

mlir
%result = stablehlo.floor %operand : tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.gather Method

gather

Gathers slices from operand tensor from offsets specified in start_indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather

Example

mlir
%result = "stablehlo.gather"(%operand, %start_indices) {
+  dimension_numbers = #stablehlo.gather<
+    offset_dims = [3, 4],
+    collapsed_slice_dims = [1],
+    operand_batching_dims = [0],
+    start_indices_batching_dims = [1],
+    start_index_map = [2, 1],
+    index_vector_dim = 3>,
+  slice_sizes = array<i64: 1, 1, 2, 2>,
+  indices_are_sorted = false
+} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>) -> tensor<2x2x3x2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.get_dimension_size Method

get_dimension_size

Produces the size of the given dimension of the operand.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size

Example

mlir
%result = stablehlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xi64>) -> tensor<i32>

source

Reactant.MLIR.Dialects.stablehlo.get_tuple_element Method

get_tuple_element

Extracts element at index position of the operand tuple and produces a result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_tuple_element

Example

mlir
%result = stablehlo.get_tuple_element %operand[0] : (tuple<tensor<2xf64>, tuple<tensor<i64>>>) -> tensor<2xf64>

source

Reactant.MLIR.Dialects.stablehlo.if_ Method

if_

Produces the output from executing exactly one branch from true_branch or false_branch depending on the value of pred.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if

Example

%result = "stablehlo.if"(%pred) ({ "stablehlo.return"(%result_true_branch) : (tensor<i32>) -> () }, { "stablehlo.return"(%result_false_branch) : (tensor<i32>) -> () }) : (tensor<i1>) -> tensor<i32>

source

Reactant.MLIR.Dialects.stablehlo.imag Method

imag

Extracts the imaginary part, element-wise, from the operand and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#imag

Example

mlir
%result = stablehlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.infeed Method

infeed

Reads data from the infeed and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#infeed

Example

mlir
%results0:2 = "stablehlo.infeed"(%token) :
+    (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)

source

Reactant.MLIR.Dialects.stablehlo.iota Method

iota

Fills an output tensor with values in increasing order starting from zero along the iota_dimension dimension.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota

Example

mlir
%output = stablehlo.iota dim = 0 : tensor<4x5xi32>

source

Reactant.MLIR.Dialects.stablehlo.is_finite Method

is_finite

Performs element-wise check whether the value in x is finite (i.e. is neither +Inf, -Inf, nor NaN) and produces a y tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#is_finite

Example

mlir
%y = stablehlo.is_finite %x : (tensor<7xf64>) -> tensor<7xi1>

source

Reactant.MLIR.Dialects.stablehlo.log Method

log

Performs element-wise logarithm operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log

Example

mlir
%result = stablehlo.log %operand : tensor<2x2xf64>

source

Reactant.MLIR.Dialects.stablehlo.log_plus_one Method

log_plus_one

Performs element-wise logarithm plus one operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log_plus_one

Example

mlir
%result = stablehlo.log_plus_one %operand : tensor<5xf64>

source

Reactant.MLIR.Dialects.stablehlo.logistic Method

logistic

Performs element-wise logistic operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#logistic

Example

mlir
%result = stablehlo.logistic %operand : tensor<2x2xf64>

source

Reactant.MLIR.Dialects.stablehlo.map Method

map

Applies a map function computation to inputs along the dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#map

Example

mlir
%result = "stablehlo.map"(%input0, %input1) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.multiply %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  dimensions = array<i64: 0, 1>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> tensor<2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.maximum Method

maximum

Performs element-wise max operation on tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#maximum

Example

mlir
%result = stablehlo.maximum %lhs, %rhs : tensor<4xf32>

source

Reactant.MLIR.Dialects.stablehlo.minimum Method

minimum

Performs element-wise min operation on tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#minimum

Example

mlir
%result = stablehlo.minimum %lhs, %rhs : tensor<4xf32>

source

Reactant.MLIR.Dialects.stablehlo.multiply Method

multiply

Performs element-wise product of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#multiply

Example

mlir
%result = stablehlo.multiply %lhs, %rhs : tensor<2xi32>

source

Reactant.MLIR.Dialects.stablehlo.negate Method

negate

Performs element-wise negation of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#negate

Example

mlir
%result = stablehlo.negate %operand : tensor<2x3xi32>

source

Reactant.MLIR.Dialects.stablehlo.not Method

not

Performs element-wise NOT of tensor operand of type integer and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#not

Example

mlir
%result = stablehlo.not %operand : tensor<5x3x1xi1>

source

Reactant.MLIR.Dialects.stablehlo.optimization_barrier Method

optimization_barrier

Ensures that the operations that produce the operand are executed before any operations that depend on the result and prevents compiler transformations from moving operations across the barrier. Other than that, the operation is an identity, i.e. result = operand.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#optimization_barrier

Example

mlir
%result0, %result1 = stablehlo.optimization_barrier %operand0, %operand1 : tensor<f32>, tensor<f32>

source

Reactant.MLIR.Dialects.stablehlo.or Method

or

Performs element-wise OR of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#or

Example

mlir
%result = stablehlo.or %lhs, %rhs : tensor<2xi1>

source

Reactant.MLIR.Dialects.stablehlo.outfeed Method

outfeed

Writes inputs to the outfeed and produces a result token.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed

Example

mlir
%result = "stablehlo.outfeed"(%input0, %token) :
+    (tensor<2x2x2xi64>, !stablehlo.token) -> !stablehlo.token

source

Reactant.MLIR.Dialects.stablehlo.pad Method

pad

Expands operand by padding around the tensor as well as between the elements of the tensor with the given padding_value.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#pad

Example

mlir
%0 = stablehlo.pad %arg0, %arg1, low = [0, 1], high = [2, 1], interior = [1, 2]
+  : (tensor<2x3xi32>, tensor<i32>) -> tensor<5x9xi32>

source

Reactant.MLIR.Dialects.stablehlo.partition_id Method

partition_id

Produces partition_id of the current process.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#partition_id

Example

mlir
%result = stablehlo.partition_id : tensor<ui32>

source

Reactant.MLIR.Dialects.stablehlo.popcnt Method

popcnt

Performs element-wise count of the number of bits set in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#popcnt

Example

mlir
%result = stablehlo.popcnt %operand : tensor<4xi64>

source

Reactant.MLIR.Dialects.stablehlo.power Method

power

Performs element-wise exponentiation of lhs tensor by rhs tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#power

Example

mlir
%result = stablehlo.power %lhs, %rhs : tensor<6xf64>

source

Reactant.MLIR.Dialects.stablehlo.real Method

real

Extracts the real part, element-wise, from the operand and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#real

Example

mlir
%result = stablehlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice Method

real_dynamic_slice

This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.

Informally, this operation does the same thing as SliceOp except that start_indices, limit_indices and strides are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice

Example

mlir
%result = stablehlo.real_dynamic_slice %operand,
+            %start_indices, %limit_indices, %strides
+       : (tensor<256x?xf32>, tensor<2xindex>, tensor<2xindex>, tensor<2xindex>) -> tensor<256x?xf32>

source

Reactant.MLIR.Dialects.stablehlo.recv Method

recv

Receives data from a channel with channel_id and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv

Example

mlir
%results:2 = "stablehlo.recv"(%token) {
+  channel_handle = #stablehlo.channel_handle<handle = 1, type = 3>,
+  is_host_transfer = true
+} : (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)

source

Reactant.MLIR.Dialects.stablehlo.reduce Method

reduce

Applies a reduction function body to inputs and init_values along the dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce

Example

mlir
%result = "stablehlo.reduce"(%input, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  dimensions = array<i64: 1>
+} : (tensor<1x6xi64>, tensor<i64>) -> tensor<1xi64>

source

Reactant.MLIR.Dialects.stablehlo.reduce_precision Method

reduce_precision

Performs element-wise conversion of operand to another floating-point type that uses exponent_bits and mantissa_bits and back to the original floating-point type and produces an output tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_precision

Example

mlir
%output = stablehlo.reduce_precision %operand, format = e5m10 : tensor<6xf64>

source

Reactant.MLIR.Dialects.stablehlo.reduce_scatter Method

reduce_scatter

Within each process group in the process grid, performs reduction, using computations, over the values of the operand tensor from each process, splits the reduction result along scatter_dimension into parts, and scatters the split parts between the processes to produce the result.

See:
+https://github.com/openxla/stablehlo/blob/main/docs/spec#reduce_scatter
+
+Example:
+```mlir
+%result = "stablehlo.reduce_scatter"(%operand) ({

^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension = 1 : i64, replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>, channel_handle = #stablehlo.channel_handle<handle = 0, type = 0> } : (tensor<2x4xi64>) -> tensor<2x2xi64> ```

source

Reactant.MLIR.Dialects.stablehlo.reduce_window Method

reduce_window

Applies a reduction function body to windows of inputs and init_values and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window

Example

mlir
%result = "stablehlo.reduce_window"(%input, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  window_dimensions = array<i64: 2, 1>,
+  window_strides = array<i64: 4, 1>,
+  base_dilations = array<i64: 2, 1>,
+  window_dilations = array<i64: 3, 1>,
+  padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<3x2xi64>, tensor<i64>) -> tensor<2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.remainder Method

remainder

Performs element-wise remainder of dividend lhs and divisor rhs tensors and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#remainder

Example

mlir
%result = stablehlo.remainder %lhs, %rhs : tensor<4xi64>

source

Reactant.MLIR.Dialects.stablehlo.replica_id Method

replica_id

Produces replica_id of the current process.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#replica_id

Example

mlir
%result = stablehlo.replica_id : tensor<ui32>

source

Reactant.MLIR.Dialects.stablehlo.reshape Method

reshape

Performs reshape of operand tensor to a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape

Example

mlir
%result = stablehlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>

source

Reactant.MLIR.Dialects.stablehlo.reverse Method

reverse

Reverses the order of elements in the operand along the specified dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse

Example

mlir
%result = stablehlo.reverse %operand, dims = [1] : tensor<3x2xi32>

source

Reactant.MLIR.Dialects.stablehlo.rng Method

rng

Generates random numbers using the rng_distribution algorithm and produces a result tensor of a given shape shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng

Example

mlir
%result = stablehlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>

source

Reactant.MLIR.Dialects.stablehlo.rng_bit_generator Method

rng_bit_generator

Returns an output filled with uniform random data and an updated output state output_state given an initial state initial_state using the pseudorandom number generator algorithm rng_algorithm.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng_bit_generator

Example

mlir
%output_state, %output = stablehlo.rng_bit_generator %initial_state, algorithm = THREE_FRY : (tensor<2xui64>) -> (tensor<2xui64>, tensor<2x2xui64>)

source

Reactant.MLIR.Dialects.stablehlo.round_nearest_afz Method

round_nearest_afz

Performs element-wise rounding towards the nearest integer, breaking ties away from zero, on the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_afz

Example

mlir
%result = stablehlo.round_nearest_afz %operand : tensor<5xf64>

source

Reactant.MLIR.Dialects.stablehlo.round_nearest_even Method

round_nearest_even

Performs element-wise rounding towards the nearest integer, breaking ties towards the even integer, on the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_even

Example

mlir
%result = stablehlo.round_nearest_even %operand : tensor<5xf64>

source

Reactant.MLIR.Dialects.stablehlo.rsqrt Method

rsqrt

Performs element-wise reciprocal square root operation on operand tensor and produces a result tensor, implementing the rSqrt operation from the IEEE-754 specification.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rsqrt

Example

mlir
%result = stablehlo.rsqrt %operand : tensor<2x2xf32>

source

Reactant.MLIR.Dialects.stablehlo.scatter Method

scatter

Produces results tensors which are equal to inputs tensors except that several slices specified by scatter_indices are updated with the values updates using update_computation.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#scatter

Example: mlir %result = "stablehlo.scatter"(%input, %scatter_indices, %update) ({ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension_numbers = #stablehlo.scatter< update_window_dims = [3, 4], inserted_window_dims = [1], input_batching_dims = [0], scatter_indices_batching_dims = [1], scatter_dims_to_operand_dims = [2, 1], index_vector_dim = 3>, indices_are_sorted = false, unique_indices = false } : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>, tensor<2x2x3x2x2xi64>) -> tensor<2x3x4x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.select Method

select

Produces a result tensor where each element is selected from on_true or on_false tensor based on the value of the corresponding element of pred.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select

Example

mlir
%result = stablehlo.select %pred, %on_true, %on_false : tensor<2x2xi1>, tensor<2x2xi32>

source

Reactant.MLIR.Dialects.stablehlo.select_and_scatter Method

select_and_scatter

Scatters the values from the source tensor using scatter based on the outcome of reduce_window of the input tensor using select and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter

Example

mlir
%result = "stablehlo.select_and_scatter"(%operand, %source, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.compare GE, %arg0, %arg1 : (tensor<i64>, tensor<i64>) -> tensor<i1>
+    stablehlo.return %0 : tensor<i1>
+}, {
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  window_dimensions = dense<[3, 1]> : tensor<2xi64>,
+  window_strides = dense<[2, 1]> : tensor<2xi64>,
+  padding = dense<[[0, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<4x2xi64>, tensor<2x2xi64>, tensor<i64>) -> tensor<4x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.send Method

send

Sends inputs to a channel channel_id and produces a result token.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send

Example

mlir
%result = "stablehlo.send"(%operand, %token) {
+  channel_handle = #stablehlo.channel_handle<handle = 1, type = 2>,
+  is_host_transfer = true
+} : (tensor<2x2xi64>, !stablehlo.token) -> !stablehlo.token

source

Reactant.MLIR.Dialects.stablehlo.set_dimension_size Method

set_dimension_size

This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.

Informally, this operation does the same thing as XLA's SetDimensionSize: https://www.tensorflow.org/xla/operation_semantics#setdimensionsize

Example

mlir
%0 = stablehlo.set_dimension_size %arg0, %arg1, dim = 1 : (tensor<4x2xf32>, tensor<i32>) -> tensor<4x2xf32>

source

Reactant.MLIR.Dialects.stablehlo.shift_left Method

shift_left

Performs element-wise left-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_left

Example

mlir
%result = stablehlo.shift_left %lhs, %rhs : tensor<3xi64>

source

Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic Method

shift_right_arithmetic

Performs element-wise arithmetic right-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_arithmetic

Example

mlir
%result = stablehlo.shift_right_arithmetic %lhs, %rhs : tensor<3xi64>

source

Reactant.MLIR.Dialects.stablehlo.shift_right_logical Method

shift_right_logical

Performs element-wise logical right-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_logical

Example

mlir
%result = stablehlo.shift_right_logical %lhs, %rhs : tensor<3xi64>

source

Reactant.MLIR.Dialects.stablehlo.sign Method

sign

Returns the sign of the operand element-wise and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sign

Example

mlir
%result = stablehlo.sign %operand : tensor<5xf64>

source

Reactant.MLIR.Dialects.stablehlo.sine Method

sine

Performs element-wise sine operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sine

Example

mlir
%result = stablehlo.sine %operand : tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.slice Method

slice

Extracts a slice from the operand using statically-computed starting indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice

Example

mlir
%result = stablehlo.slice %operand [1:3, 4:8:2]
+   : (tensor<3x8xi64>) -> tensor<2x2xi64>
+
+// Same in generic form: the `1:3` above is mapped to the first entry in
+// `start_indices` and `limit_indices`, while `strides` is implicitly 1.
+// The `4:8:2` above is parsed into the second entry of `start_indices`,
+// `limit_indices` and `strides` respectively.
+%result = "stablehlo.slice" (%operand) {
+  start_indices = array<i64: 1, 4>,
+  limit_indices = array<i64: 3, 8>,
+  strides = array<i64: 1, 2>
+} : (tensor<3x8xi64>) -> tensor<2x2xi64>

source

Reactant.MLIR.Dialects.stablehlo.sort Method

sort

Sorts a variadic number of tensors in inputs together, according to a custom comparator, along the given dimension and produces a variadic number of tensors as results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort

Example

mlir

+
+[source](https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/StableHLO.jl#L4195-L4215)
+
+</details>
+
+<details class='jldocstring custom-block' >
+<summary><a id='Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}' href='#Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}'><span class="jlbinding">Reactant.MLIR.Dialects.stablehlo.sqrt</span></a> <Badge type="info" class="jlObjectType jlMethod" text="Method" /></summary>
+
+
+
+`sqrt`
+
+Performs element-wise square root operation on `operand` tensor and produces a `result` tensor.
+
+See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sqrt
+
+**Example**
+
+```mlir
+%result = stablehlo.sqrt %operand : tensor<2x2xf32>

source

Reactant.MLIR.Dialects.stablehlo.subtract Method

subtract

Performs element-wise subtraction of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#subtract

Example

mlir
%result = stablehlo.subtract %lhs, %rhs : tensor<2xi32>

source

Reactant.MLIR.Dialects.stablehlo.tan Method

tan

Performs element-wise tangent operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tan

Example

mlir
%result = stablehlo.tan %operand : tensor<2x2xf64>

source

Reactant.MLIR.Dialects.stablehlo.tanh Method

tanh

Performs element-wise hyperbolic tangent operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tanh

Example

mlir
%result = stablehlo.tanh %operand : tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.torch_index_select Method

torch_index_select

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html.

The batch_dims attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.

Example

mlir
%result = "stablehlo.torch_index_select"(%operand, %index) {
+  dim = 2 : i64,
+  batch_dims = 1 : i64
+} : (tensor<8x128x3072x64xf32>, tensor<8x16x1024xi32>) -> tensor<8x128x16x1024x64xf32>

source

Reactant.MLIR.Dialects.stablehlo.transpose Method

transpose

Permutes the dimensions of operand tensor using permutation and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose

Example

mlir
%0 = stablehlo.transpose %arg0, dims = [2, 1, 0] : (tensor<1x2x3xi32>) -> tensor<3x2x1xi32>

source

Reactant.MLIR.Dialects.stablehlo.triangular_solve Method

triangular_solve

Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve

Example

mlir
%result = "stablehlo.triangular_solve"(%a, %b) {
+  left_side = true,
+  lower = true,
+  unit_diagonal = false,
+  transpose_a = #stablehlo<transpose NO_TRANSPOSE>
+} : (tensor<3x3xf32>, tensor<3x3xf32>) -> tensor<3x3xf32>

source

Reactant.MLIR.Dialects.stablehlo.tuple Method

tuple

Produces a result tuple from values val.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tuple

Example

mlir
%result = stablehlo.tuple %val0, %val1 : tuple<tensor<2xf64>, tuple<tensor<i64>>>

source

Reactant.MLIR.Dialects.stablehlo.unary_einsum Method

unary_einsum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum

Example

mlir
%result = "stablehlo.unary_einsum"(%operand) {
+  einsum_config = "ab->a"
+} : (tensor<4x16xf32>) -> tensor<4xf32>

source

Reactant.MLIR.Dialects.stablehlo.uniform_dequantize Method

uniform_dequantize

Performs element-wise conversion of quantized tensor operand to a floating-point tensor result according to the quantization parameters defined by the operand type.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_dequantize

Example

mlir
%result = stablehlo.uniform_dequantize %operand : (tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>) -> tensor<2xf32>

source

Reactant.MLIR.Dialects.stablehlo.uniform_quantize Method

uniform_quantize

Performs element-wise conversion of floating-point tensor or quantized tensor operand to a quantized tensor result according to the quantization parameters defined by the result type.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_quantize

Example

mlir
%result = stablehlo.uniform_quantize %operand : (tensor<2xf32>) -> tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>

source

Reactant.MLIR.Dialects.stablehlo.while_ Method

while_

Produces the output from executing body function 0 or more times while the cond function outputs true.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while

Example

mlir
%results0, %results1 = stablehlo.while(%arg0 = %init_i, %arg1 = %init_sum) : tensor<i64>, tensor<i64>
+cond {
+  %cond = stablehlo.compare LT, %arg0, %ten : (tensor<i64>, tensor<i64>) -> tensor<i1>
+  stablehlo.return %cond : tensor<i1>
+} do {
+  %new_sum = stablehlo.add %arg1, %one : tensor<i64>
+  %new_i = stablehlo.add %arg0, %one : tensor<i64>
+  stablehlo.return %new_i, %new_sum : tensor<i64>, tensor<i64>
+}

source

Reactant.MLIR.Dialects.stablehlo.xor Method

xor

Performs element-wise XOR of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#xor

Example

mlir
%result = stablehlo.xor %lhs, %rhs : tensor<2xi32>

source

+ + + + \ No newline at end of file diff --git a/previews/PR363/api/vhlo.html b/previews/PR363/api/vhlo.html new file mode 100644 index 00000000..718c1baa --- /dev/null +++ b/previews/PR363/api/vhlo.html @@ -0,0 +1,28 @@ + + + + + + VHLO Dialect | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/previews/PR363/api/xla.html b/previews/PR363/api/xla.html new file mode 100644 index 00000000..f6b0973d --- /dev/null +++ b/previews/PR363/api/xla.html @@ -0,0 +1,28 @@ + + + + + + XLA | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/previews/PR363/assets/api_affine.md.5iiZk8SU.js b/previews/PR363/assets/api_affine.md.5iiZk8SU.js new file mode 100644 index 00000000..8381284c --- /dev/null +++ b/previews/PR363/assets/api_affine.md.5iiZk8SU.js @@ -0,0 +1,92 @@ +import{_ as l,c as o,j as a,a as s,G as t,a2 as i,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const A=JSON.parse('{"title":"Affine Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/affine.md","filePath":"api/affine.md","lastUpdated":null}'),d={name:"api/affine.md"},c={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"};function j(M,e,L,w,T,V){const n=p("Badge");return r(),o("div",null,[e[41]||(e[41]=a("h1",{id:"Affine-Dialect",tabindex:"-1"},[s("Affine Dialect "),a("a",{class:"header-anchor",href:"#Affine-Dialect","aria-label":'Permalink to "Affine Dialect {#Affine-Dialect}"'},"​")],-1)),e[42]||(e[42]=a("p",null,[s("Refer to the "),a("a",{href:"https://mlir.llvm.org/docs/Dialects/Affine/",target:"_blank",rel:"noreferrer"},"official documentation"),s(" for more details.")],-1)),a("details",c,[a("summary",null,[e[0]||(e[0]=a("a",{id:"Reactant.MLIR.Dialects.affine.apply-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.apply-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.apply")],-1)),e[1]||(e[1]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=i(`

apply

The affine.apply operation applies an affine mapping to a list of SSA values, yielding a single SSA value. The number of dimension and symbol arguments to affine.apply must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine mapping has to be one-dimensional, and so the affine.apply operation always returns one value. The input operands and result must all have ‘index’ type.

Example

mlir
#map10 = affine_map<(d0, d1) -> (d0 floordiv 8 + d1 floordiv 128)>
+...
+%1 = affine.apply #map10 (%s, %t)
+
+// Inline example.
+%2 = affine.apply affine_map<(i)[s0] -> (i+s0)> (%42)[%n]

source

`,5))]),a("details",f,[a("summary",null,[e[3]||(e[3]=a("a",{id:"Reactant.MLIR.Dialects.affine.delinearize_index-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.delinearize_index-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.delinearize_index")],-1)),e[4]||(e[4]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=i(`

delinearize_index

The affine.delinearize_index operation takes a single index value and calculates the multi-index according to the given basis.

Example

%indices:3 = affine.delinearize_index %linear_index into (%c16, %c224, %c224) : index, index, index

In the above example, %indices:3 conceptually holds the following:

#map0 = affine_map<()[s0] -> (s0 floordiv 50176)>
+#map1 = affine_map<()[s0] -> ((s0 mod 50176) floordiv 224)>
+#map2 = affine_map<()[s0] -> (s0 mod 224)>
+%indices_0 = affine.apply #map0()[%linear_index]
+%indices_1 = affine.apply #map1()[%linear_index]
+%indices_2 = affine.apply #map2()[%linear_index]

source

`,7))]),a("details",m,[a("summary",null,[e[6]||(e[6]=a("a",{id:"Reactant.MLIR.Dialects.affine.for_-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.for_-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.for_")],-1)),e[7]||(e[7]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[8]||(e[8]=i(`

for_

Syntax

operation   ::= \`affine.for\` ssa-id \`=\` lower-bound \`to\` upper-bound
+                (\`step\` integer-literal)? \`{\` op* \`}\`
+
+lower-bound ::= \`max\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+upper-bound ::= \`min\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+shorthand-bound ::= ssa-id | \`-\`? integer-literal

The affine.for operation represents an affine loop nest. It has one region containing its body. This region must contain one block that terminates with affine.yield. Note: when affine.for is printed in custom format, the terminator is omitted. The block has one argument of index type that represents the induction variable of the loop.

The affine.for operation executes its body a number of times iterating from a lower bound to an upper bound by a stride. The stride, represented by step, is a positive constant integer which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound.

The lower and upper bounds of a affine.for operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.

The affine mappings for the bounds may return multiple results, in which case the max/min keywords are required (for the lower/upper bound respectively), and the bound is the maximum/minimum of the returned values. There is no semantic ambiguity, but MLIR syntax requires the use of these keywords to make things more obvious to human readers.

Many upper and lower bounds are simple, so MLIR accepts two custom form syntaxes: the form that accepts a single 'ssa-id' (e.g. %N) is shorthand for applying that SSA value to a function that maps a single symbol to itself, e.g., ()[s]->(s)()[%N]. The integer literal form (e.g. -42) is shorthand for a nullary mapping function that returns the constant value (e.g. ()->(-42)()).

Example showing reverse iteration of the inner loop:

mlir
#map57 = affine_map<(d0)[s0] -> (s0 - d0 - 1)>
+
+func.func @simple_example(%A: memref<?x?xf32>, %B: memref<?x?xf32>) {
+  %N = dim %A, 0 : memref<?x?xf32>
+  affine.for %i = 0 to %N step 1 {
+    affine.for %j = 0 to %N {   // implicitly steps by 1
+      %0 = affine.apply #map57(%j)[%N]
+      %tmp = call @F1(%A, %i, %0) : (memref<?x?xf32>, index, index)->(f32)
+      call @F2(%tmp, %B, %i, %0) : (f32, memref<?x?xf32>, index, index)->()
+    }
+  }
+  return
+}

affine.for can also operate on loop-carried variables (iter_args) and return the final values after loop termination. The initial values of the variables are passed as additional SSA operands to the affine.for following the operands for the loop's lower and upper bounds. The operation's region has equivalent arguments for each variable representing the value of the variable at the current iteration.

The region must terminate with an affine.yield that passes all the current iteration variables to the next iteration, or to the affine.for's results if at the last iteration. For affine.for's that execute zero iterations, the initial values of the loop-carried variables (corresponding to the SSA operands) will be the op's results.

For example, to sum-reduce a memref:

mlir
func.func @reduce(%buffer: memref<1024xf32>) -> (f32) {
+  // Initial sum set to 0.
+  %sum_0 = arith.constant 0.0 : f32
+  // iter_args binds initial values to the loop's region arguments.
+  %sum = affine.for %i = 0 to 10 step 2
+      iter_args(%sum_iter = %sum_0) -> (f32) {
+    %t = affine.load %buffer[%i] : memref<1024xf32>
+    %sum_next = arith.addf %sum_iter, %t : f32
+    // Yield current iteration sum to next iteration %sum_iter or to %sum
+    // if final iteration.
+    affine.yield %sum_next : f32
+  }
+  return %sum : f32
+}
mlir
%res:2 = affine.for %i = 0 to 128 iter_args(%arg0 = %init0, %arg1 = %init1)
+           -> (index, index) {
+  %y0 = arith.addi %arg0, %c1 : index
+  %y1 = arith.addi %arg1, %c2 : index
+  affine.yield %y0, %y1 : index, index
+}

If the affine.for defines any values, a yield terminator must be explicitly present. The number and types of the "affine.for" results must match the initial values in the iter_args binding and the yield operands.

source

`,17))]),a("details",u,[a("summary",null,[e[9]||(e[9]=a("a",{id:"Reactant.MLIR.Dialects.affine.if_-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.if_-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.if_")],-1)),e[10]||(e[10]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[11]||(e[11]=i(`

if_

Syntax

operation  ::= \`affine.if\` if-op-cond \`{\` op* \`}\` (\`else\` \`{\` op* \`}\`)?
+if-op-cond ::= integer-set-attr dim-and-symbol-use-list

The affine.if operation restricts execution to a subset of the loop iteration space defined by an integer set (a conjunction of affine constraints). A single affine.if may end with an optional else clause.

The condition of the affine.if is represented by an integer set (a conjunction of affine constraints), and the SSA values bound to the dimensions and symbols in the integer set. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.

The affine.if operation contains two regions for the "then" and "else" clauses. affine.if may return results that are defined in its regions. The values defined are determined by which execution path is taken. Each region of the affine.if must contain a single block with no arguments, and be terminated by affine.yield. If affine.if defines no values, the affine.yield can be left out, and will be inserted implicitly. Otherwise, it must be explicit. If no values are defined, the else block may be empty (i.e. contain no blocks).

Example

mlir
#set = affine_set<(d0, d1)[s0]: (d0 - 10 >= 0, s0 - d0 - 9 >= 0,
+                                 d1 - 10 >= 0, s0 - d1 - 9 >= 0)>
+func.func @reduced_domain_example(%A, %X, %N) : (memref<10xi32>, i32, i32) {
+  affine.for %i = 0 to %N {
+     affine.for %j = 0 to %N {
+       %0 = affine.apply #map42(%j)
+       %tmp = call @S1(%X, %i, %0)
+       affine.if #set(%i, %j)[%N] {
+          %1 = affine.apply #map43(%i, %j)
+          call @S2(%tmp, %A, %i, %1)
+       }
+    }
+  }
+  return
+}

Example with an explicit yield (initialization with edge padding):

mlir
#interior = affine_set<(i, j) : (i - 1 >= 0, j - 1 >= 0,  10 - i >= 0, 10 - j >= 0)> (%i, %j)
+func.func @pad_edges(%I : memref<10x10xf32>) -> (memref<12x12xf32) {
+  %O = alloc memref<12x12xf32>
+  affine.parallel (%i, %j) = (0, 0) to (12, 12) {
+    %1 = affine.if #interior (%i, %j) {
+      %2 = load %I[%i - 1, %j - 1] : memref<10x10xf32>
+      affine.yield %2
+    } else {
+      %2 = arith.constant 0.0 : f32
+      affine.yield %2 : f32
+    }
+    affine.store %1, %O[%i, %j] : memref<12x12xf32>
+  }
+  return %O
+}

source

`,11))]),a("details",h,[a("summary",null,[e[12]||(e[12]=a("a",{id:"Reactant.MLIR.Dialects.affine.load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.load")],-1)),e[13]||(e[13]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[14]||(e[14]=i('

load

Syntax

operation ::= ssa-id `=` `affine.load` ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type

The affine.load op reads an element from a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The output of affine.load is a new value with the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1:

mlir
%1 = affine.load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>

Example 2: Uses symbol keyword for symbols %n and %m.

mlir
%1 = affine.load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>

source

',9))]),a("details",g,[a("summary",null,[e[15]||(e[15]=a("a",{id:"Reactant.MLIR.Dialects.affine.max-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.max-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.max")],-1)),e[16]||(e[16]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[17]||(e[17]=i('

max

The affine.max operation computes the maximum value result from a multi-result affine map.

Example

mlir
%0 = affine.max (d0) -> (1000, d0 + 512) (%i0) : index

source

',5))]),a("details",b,[a("summary",null,[e[18]||(e[18]=a("a",{id:"Reactant.MLIR.Dialects.affine.min-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.min-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.min")],-1)),e[19]||(e[19]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[20]||(e[20]=i('

min

Syntax

operation ::= ssa-id `=` `affine.min` affine-map-attribute dim-and-symbol-use-list

The affine.min operation applies an affine mapping to a list of SSA values, and returns the minimum value of all result expressions. The number of dimension and symbol arguments to affine.min must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine.min operation always returns one value. The input operands and result must all have 'index' type.

Example

mlir
%0 = affine.min affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]

source

',7))]),a("details",y,[a("summary",null,[e[21]||(e[21]=a("a",{id:"Reactant.MLIR.Dialects.affine.parallel-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.parallel-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.parallel")],-1)),e[22]||(e[22]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[23]||(e[23]=i(`

parallel

The affine.parallel operation represents a hyper-rectangular affine parallel band, defining zero or more SSA values for its induction variables. It has one region capturing the parallel band body. The induction variables are represented as arguments of this region. These SSA values always have type index, which is the size of the machine word. The strides, represented by steps, are positive constant integers which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound. The body region must contain exactly one block that terminates with affine.yield.

The lower and upper bounds of a parallel operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols. The list of expressions in each map is interpreted according to the respective bounds group attribute. If a single expression belongs to the group, then the result of this expression is taken as a lower(upper) bound of the corresponding loop induction variable. If multiple expressions belong to the group, then the lower(upper) bound is the max(min) of these values obtained from these expressions. The loop band has as many loops as elements in the group bounds attributes.

Each value yielded by affine.yield will be accumulated/reduced via one of the reduction methods defined in the AtomicRMWKind enum. The order of reduction is unspecified, and lowering may produce any valid ordering. Loops with a 0 trip count will produce as a result the identity value associated with each reduction (i.e. 0.0 for addf, 1.0 for mulf). Assign reductions for loops with a trip count != 1 produces undefined results.

Note: Calling AffineParallelOp::build will create the required region and block, and insert the required terminator if it is trivial (i.e. no values are yielded). Parsing will also create the required region, block, and terminator, even when they are missing from the textual representation.

Example (3x3 valid convolution):

mlir
func.func @conv_2d(%D : memref<100x100xf32>, %K : memref<3x3xf32>) -> (memref<98x98xf32>) {
+  %O = memref.alloc() : memref<98x98xf32>
+  affine.parallel (%x, %y) = (0, 0) to (98, 98) {
+    %0 = affine.parallel (%kx, %ky) = (0, 0) to (2, 2) reduce ("addf") -> f32 {
+      %1 = affine.load %D[%x + %kx, %y + %ky] : memref<100x100xf32>
+      %2 = affine.load %K[%kx, %ky] : memref<3x3xf32>
+      %3 = arith.mulf %1, %2 : f32
+      affine.yield %3 : f32
+    }
+    affine.store %0, %O[%x, %y] : memref<98x98xf32>
+  }
+  return %O : memref<98x98xf32>
+}

Example (tiling by potentially imperfectly dividing sizes):

mlir
affine.parallel (%ii, %jj) = (0, 0) to (%N, %M) step (32, 32) {
+  affine.parallel (%i, %j) = (%ii, %jj)
+                          to (min(%ii + 32, %N), min(%jj + 32, %M)) {
+    call @f(%i, %j) : (index, index) -> ()
+  }
+}

source

`,10))]),a("details",v,[a("summary",null,[e[24]||(e[24]=a("a",{id:"Reactant.MLIR.Dialects.affine.prefetch-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.prefetch-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.prefetch")],-1)),e[25]||(e[25]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[26]||(e[26]=i('

prefetch

The affine.prefetch op prefetches data from a memref location described with an affine subscript similar to affine.load, and has three attributes: a read/write specifier, a locality hint, and a cache type specifier as shown below:

mlir
affine.prefetch %0[%i, %j + 5], read, locality<3>, data : memref<400x400xi32>

The read/write specifier is either 'read' or 'write', the locality hint specifier ranges from locality<0> (no locality) to locality<3> (extremely local keep in cache). The cache type specifier is either 'data' or 'instr' and specifies whether the prefetch is performed on data cache or on instruction cache.

source

',5))]),a("details",R,[a("summary",null,[e[27]||(e[27]=a("a",{id:"Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.store")],-1)),e[28]||(e[28]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=i('

store

Syntax

operation ::= `affine.store` ssa-use, ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type

The affine.store op writes an element to a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The affine.store op stores a new value which is the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1:

mlir
affine.store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>

Example 2: Uses symbol keyword for symbols %n and %m.

mlir
affine.store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>

source

',9))]),a("details",x,[a("summary",null,[e[30]||(e[30]=a("a",{id:"Reactant.MLIR.Dialects.affine.vector_load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.vector_load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.vector_load")],-1)),e[31]||(e[31]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[32]||(e[32]=i('

vector_load

The affine.vector_load is the vector counterpart of affine.load. It reads a slice from a MemRef, supplied as its first operand, into a vector of the same base elemental type. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the read within the memref. The shape of the return vector type determines the shape of the slice read from the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector loads will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1: 8-wide f32 vector load.

mlir
%1 = affine.vector_load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>

Example 2: 4-wide f32 vector load. Uses symbol keyword for symbols %n and %m.

mlir
%1 = affine.vector_load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>

Example 3: 2-dim f32 vector load.

mlir
%1 = affine.vector_load %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>

TODOs:

(see vector.transfer_read).

source

',12))]),a("details",I,[a("summary",null,[e[33]||(e[33]=a("a",{id:"Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.vector_store")],-1)),e[34]||(e[34]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=i('

vector_store

The affine.vector_store is the vector counterpart of affine.store. It writes a vector, supplied as its first operand, into a slice within a MemRef of the same base elemental type, supplied as its second operand. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the write within the memref. The shape of th input vector determines the shape of the slice written to the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector stores will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1: 8-wide f32 vector store.

mlir
affine.vector_store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>

Example 2: 4-wide f32 vector store. Uses symbol keyword for symbols %n and %m.

mlir
affine.vector_store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>

Example 3: 2-dim f32 vector store.

mlir
affine.vector_store %v0, %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>

TODOs:

(see vector.transfer_write).

source

',12))]),a("details",k,[a("summary",null,[e[36]||(e[36]=a("a",{id:"Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.yield")],-1)),e[37]||(e[37]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=a("p",null,[a("code",null,"yield")],-1)),e[39]||(e[39]=a("p",null,[s("The "),a("code",null,"affine.yield"),s(" yields zero or more SSA values from an affine op region and terminates the region. The semantics of how the values yielded are used is defined by the parent operation. If "),a("code",null,"affine.yield"),s(" has any operands, the operands must match the parent operation's results. If the parent operation defines no values, then the "),a("code",null,"affine.yield"),s(" may be left out in the custom syntax and the builders will insert one implicitly. Otherwise, it has to be present in the syntax to indicate which values are yielded.")],-1)),e[40]||(e[40]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Affine.jl#L808-L820",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const C=l(d,[["render",j]]);export{A as __pageData,C as default}; diff --git a/previews/PR363/assets/api_affine.md.5iiZk8SU.lean.js b/previews/PR363/assets/api_affine.md.5iiZk8SU.lean.js new file mode 100644 index 00000000..8381284c --- /dev/null +++ b/previews/PR363/assets/api_affine.md.5iiZk8SU.lean.js @@ -0,0 +1,92 @@ +import{_ as l,c as o,j as a,a as s,G as t,a2 as i,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const A=JSON.parse('{"title":"Affine Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/affine.md","filePath":"api/affine.md","lastUpdated":null}'),d={name:"api/affine.md"},c={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"};function j(M,e,L,w,T,V){const n=p("Badge");return r(),o("div",null,[e[41]||(e[41]=a("h1",{id:"Affine-Dialect",tabindex:"-1"},[s("Affine Dialect "),a("a",{class:"header-anchor",href:"#Affine-Dialect","aria-label":'Permalink to "Affine Dialect {#Affine-Dialect}"'},"​")],-1)),e[42]||(e[42]=a("p",null,[s("Refer to the "),a("a",{href:"https://mlir.llvm.org/docs/Dialects/Affine/",target:"_blank",rel:"noreferrer"},"official documentation"),s(" for more details.")],-1)),a("details",c,[a("summary",null,[e[0]||(e[0]=a("a",{id:"Reactant.MLIR.Dialects.affine.apply-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.apply-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.apply")],-1)),e[1]||(e[1]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=i(`

apply

The affine.apply operation applies an affine mapping to a list of SSA values, yielding a single SSA value. The number of dimension and symbol arguments to affine.apply must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine mapping has to be one-dimensional, and so the affine.apply operation always returns one value. The input operands and result must all have ‘index’ type.

Example

mlir
#map10 = affine_map<(d0, d1) -> (d0 floordiv 8 + d1 floordiv 128)>
+...
+%1 = affine.apply #map10 (%s, %t)
+
+// Inline example.
+%2 = affine.apply affine_map<(i)[s0] -> (i+s0)> (%42)[%n]

source

`,5))]),a("details",f,[a("summary",null,[e[3]||(e[3]=a("a",{id:"Reactant.MLIR.Dialects.affine.delinearize_index-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.delinearize_index-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.delinearize_index")],-1)),e[4]||(e[4]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=i(`

delinearize_index

The affine.delinearize_index operation takes a single index value and calculates the multi-index according to the given basis.

Example

%indices:3 = affine.delinearize_index %linear_index into (%c16, %c224, %c224) : index, index, index

In the above example, %indices:3 conceptually holds the following:

#map0 = affine_map<()[s0] -> (s0 floordiv 50176)>
+#map1 = affine_map<()[s0] -> ((s0 mod 50176) floordiv 224)>
+#map2 = affine_map<()[s0] -> (s0 mod 224)>
+%indices_0 = affine.apply #map0()[%linear_index]
+%indices_1 = affine.apply #map1()[%linear_index]
+%indices_2 = affine.apply #map2()[%linear_index]

source

`,7))]),a("details",m,[a("summary",null,[e[6]||(e[6]=a("a",{id:"Reactant.MLIR.Dialects.affine.for_-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.for_-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.for_")],-1)),e[7]||(e[7]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[8]||(e[8]=i(`

for_

Syntax

operation   ::= \`affine.for\` ssa-id \`=\` lower-bound \`to\` upper-bound
+                (\`step\` integer-literal)? \`{\` op* \`}\`
+
+lower-bound ::= \`max\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+upper-bound ::= \`min\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+shorthand-bound ::= ssa-id | \`-\`? integer-literal

The affine.for operation represents an affine loop nest. It has one region containing its body. This region must contain one block that terminates with affine.yield. Note: when affine.for is printed in custom format, the terminator is omitted. The block has one argument of index type that represents the induction variable of the loop.

The affine.for operation executes its body a number of times iterating from a lower bound to an upper bound by a stride. The stride, represented by step, is a positive constant integer which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound.

The lower and upper bounds of a affine.for operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.

The affine mappings for the bounds may return multiple results, in which case the max/min keywords are required (for the lower/upper bound respectively), and the bound is the maximum/minimum of the returned values. There is no semantic ambiguity, but MLIR syntax requires the use of these keywords to make things more obvious to human readers.

Many upper and lower bounds are simple, so MLIR accepts two custom form syntaxes: the form that accepts a single 'ssa-id' (e.g. %N) is shorthand for applying that SSA value to a function that maps a single symbol to itself, e.g., ()[s]->(s)()[%N]. The integer literal form (e.g. -42) is shorthand for a nullary mapping function that returns the constant value (e.g. ()->(-42)()).

Example showing reverse iteration of the inner loop:

mlir
#map57 = affine_map<(d0)[s0] -> (s0 - d0 - 1)>
+
+func.func @simple_example(%A: memref<?x?xf32>, %B: memref<?x?xf32>) {
+  %N = dim %A, 0 : memref<?x?xf32>
+  affine.for %i = 0 to %N step 1 {
+    affine.for %j = 0 to %N {   // implicitly steps by 1
+      %0 = affine.apply #map57(%j)[%N]
+      %tmp = call @F1(%A, %i, %0) : (memref<?x?xf32>, index, index)->(f32)
+      call @F2(%tmp, %B, %i, %0) : (f32, memref<?x?xf32>, index, index)->()
+    }
+  }
+  return
+}

affine.for can also operate on loop-carried variables (iter_args) and return the final values after loop termination. The initial values of the variables are passed as additional SSA operands to the affine.for following the operands for the loop's lower and upper bounds. The operation's region has equivalent arguments for each variable representing the value of the variable at the current iteration.

The region must terminate with an affine.yield that passes all the current iteration variables to the next iteration, or to the affine.for's results if at the last iteration. For affine.for's that execute zero iterations, the initial values of the loop-carried variables (corresponding to the SSA operands) will be the op's results.

For example, to sum-reduce a memref:

mlir
func.func @reduce(%buffer: memref<1024xf32>) -> (f32) {
+  // Initial sum set to 0.
+  %sum_0 = arith.constant 0.0 : f32
+  // iter_args binds initial values to the loop's region arguments.
+  %sum = affine.for %i = 0 to 10 step 2
+      iter_args(%sum_iter = %sum_0) -> (f32) {
+    %t = affine.load %buffer[%i] : memref<1024xf32>
+    %sum_next = arith.addf %sum_iter, %t : f32
+    // Yield current iteration sum to next iteration %sum_iter or to %sum
+    // if final iteration.
+    affine.yield %sum_next : f32
+  }
+  return %sum : f32
+}
mlir
%res:2 = affine.for %i = 0 to 128 iter_args(%arg0 = %init0, %arg1 = %init1)
+           -> (index, index) {
+  %y0 = arith.addi %arg0, %c1 : index
+  %y1 = arith.addi %arg1, %c2 : index
+  affine.yield %y0, %y1 : index, index
+}

If the affine.for defines any values, a yield terminator must be explicitly present. The number and types of the "affine.for" results must match the initial values in the iter_args binding and the yield operands.

source

`,17))]),a("details",u,[a("summary",null,[e[9]||(e[9]=a("a",{id:"Reactant.MLIR.Dialects.affine.if_-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.if_-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.if_")],-1)),e[10]||(e[10]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[11]||(e[11]=i(`

if_

Syntax

operation  ::= \`affine.if\` if-op-cond \`{\` op* \`}\` (\`else\` \`{\` op* \`}\`)?
+if-op-cond ::= integer-set-attr dim-and-symbol-use-list

The affine.if operation restricts execution to a subset of the loop iteration space defined by an integer set (a conjunction of affine constraints). A single affine.if may end with an optional else clause.

The condition of the affine.if is represented by an integer set (a conjunction of affine constraints), and the SSA values bound to the dimensions and symbols in the integer set. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.

The affine.if operation contains two regions for the "then" and "else" clauses. affine.if may return results that are defined in its regions. The values defined are determined by which execution path is taken. Each region of the affine.if must contain a single block with no arguments, and be terminated by affine.yield. If affine.if defines no values, the affine.yield can be left out, and will be inserted implicitly. Otherwise, it must be explicit. If no values are defined, the else block may be empty (i.e. contain no blocks).

Example

mlir
#set = affine_set<(d0, d1)[s0]: (d0 - 10 >= 0, s0 - d0 - 9 >= 0,
+                                 d1 - 10 >= 0, s0 - d1 - 9 >= 0)>
+func.func @reduced_domain_example(%A, %X, %N) : (memref<10xi32>, i32, i32) {
+  affine.for %i = 0 to %N {
+     affine.for %j = 0 to %N {
+       %0 = affine.apply #map42(%j)
+       %tmp = call @S1(%X, %i, %0)
+       affine.if #set(%i, %j)[%N] {
+          %1 = affine.apply #map43(%i, %j)
+          call @S2(%tmp, %A, %i, %1)
+       }
+    }
+  }
+  return
+}

Example with an explicit yield (initialization with edge padding):

mlir
#interior = affine_set<(i, j) : (i - 1 >= 0, j - 1 >= 0,  10 - i >= 0, 10 - j >= 0)> (%i, %j)
+func.func @pad_edges(%I : memref<10x10xf32>) -> (memref<12x12xf32) {
+  %O = alloc memref<12x12xf32>
+  affine.parallel (%i, %j) = (0, 0) to (12, 12) {
+    %1 = affine.if #interior (%i, %j) {
+      %2 = load %I[%i - 1, %j - 1] : memref<10x10xf32>
+      affine.yield %2
+    } else {
+      %2 = arith.constant 0.0 : f32
+      affine.yield %2 : f32
+    }
+    affine.store %1, %O[%i, %j] : memref<12x12xf32>
+  }
+  return %O
+}

source

`,11))]),a("details",h,[a("summary",null,[e[12]||(e[12]=a("a",{id:"Reactant.MLIR.Dialects.affine.load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.load")],-1)),e[13]||(e[13]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[14]||(e[14]=i('

load

Syntax

operation ::= ssa-id `=` `affine.load` ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type

The affine.load op reads an element from a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The output of affine.load is a new value with the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1:

mlir
%1 = affine.load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>

Example 2: Uses symbol keyword for symbols %n and %m.

mlir
%1 = affine.load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>

source

',9))]),a("details",g,[a("summary",null,[e[15]||(e[15]=a("a",{id:"Reactant.MLIR.Dialects.affine.max-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.max-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.max")],-1)),e[16]||(e[16]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[17]||(e[17]=i('

max

The affine.max operation computes the maximum value result from a multi-result affine map.

Example

mlir
%0 = affine.max (d0) -> (1000, d0 + 512) (%i0) : index

source

',5))]),a("details",b,[a("summary",null,[e[18]||(e[18]=a("a",{id:"Reactant.MLIR.Dialects.affine.min-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.min-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.min")],-1)),e[19]||(e[19]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[20]||(e[20]=i('

min

Syntax

operation ::= ssa-id `=` `affine.min` affine-map-attribute dim-and-symbol-use-list

The affine.min operation applies an affine mapping to a list of SSA values, and returns the minimum value of all result expressions. The number of dimension and symbol arguments to affine.min must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine.min operation always returns one value. The input operands and result must all have 'index' type.

Example

mlir
%0 = affine.min affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]

source

',7))]),a("details",y,[a("summary",null,[e[21]||(e[21]=a("a",{id:"Reactant.MLIR.Dialects.affine.parallel-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.parallel-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.parallel")],-1)),e[22]||(e[22]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[23]||(e[23]=i(`

parallel

The affine.parallel operation represents a hyper-rectangular affine parallel band, defining zero or more SSA values for its induction variables. It has one region capturing the parallel band body. The induction variables are represented as arguments of this region. These SSA values always have type index, which is the size of the machine word. The strides, represented by steps, are positive constant integers which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound. The body region must contain exactly one block that terminates with affine.yield.

The lower and upper bounds of a parallel operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols. The list of expressions in each map is interpreted according to the respective bounds group attribute. If a single expression belongs to the group, then the result of this expression is taken as a lower(upper) bound of the corresponding loop induction variable. If multiple expressions belong to the group, then the lower(upper) bound is the max(min) of these values obtained from these expressions. The loop band has as many loops as elements in the group bounds attributes.

Each value yielded by affine.yield will be accumulated/reduced via one of the reduction methods defined in the AtomicRMWKind enum. The order of reduction is unspecified, and lowering may produce any valid ordering. Loops with a 0 trip count will produce as a result the identity value associated with each reduction (i.e. 0.0 for addf, 1.0 for mulf). Assign reductions for loops with a trip count != 1 produces undefined results.

Note: Calling AffineParallelOp::build will create the required region and block, and insert the required terminator if it is trivial (i.e. no values are yielded). Parsing will also create the required region, block, and terminator, even when they are missing from the textual representation.

Example (3x3 valid convolution):

mlir
func.func @conv_2d(%D : memref<100x100xf32>, %K : memref<3x3xf32>) -> (memref<98x98xf32>) {
+  %O = memref.alloc() : memref<98x98xf32>
+  affine.parallel (%x, %y) = (0, 0) to (98, 98) {
+    %0 = affine.parallel (%kx, %ky) = (0, 0) to (2, 2) reduce ("addf") -> f32 {
+      %1 = affine.load %D[%x + %kx, %y + %ky] : memref<100x100xf32>
+      %2 = affine.load %K[%kx, %ky] : memref<3x3xf32>
+      %3 = arith.mulf %1, %2 : f32
+      affine.yield %3 : f32
+    }
+    affine.store %0, %O[%x, %y] : memref<98x98xf32>
+  }
+  return %O : memref<98x98xf32>
+}

Example (tiling by potentially imperfectly dividing sizes):

mlir
affine.parallel (%ii, %jj) = (0, 0) to (%N, %M) step (32, 32) {
+  affine.parallel (%i, %j) = (%ii, %jj)
+                          to (min(%ii + 32, %N), min(%jj + 32, %M)) {
+    call @f(%i, %j) : (index, index) -> ()
+  }
+}

source

`,10))]),a("details",v,[a("summary",null,[e[24]||(e[24]=a("a",{id:"Reactant.MLIR.Dialects.affine.prefetch-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.prefetch-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.prefetch")],-1)),e[25]||(e[25]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[26]||(e[26]=i('

prefetch

The affine.prefetch op prefetches data from a memref location described with an affine subscript similar to affine.load, and has three attributes: a read/write specifier, a locality hint, and a cache type specifier as shown below:

mlir
affine.prefetch %0[%i, %j + 5], read, locality<3>, data : memref<400x400xi32>

The read/write specifier is either 'read' or 'write', the locality hint specifier ranges from locality<0> (no locality) to locality<3> (extremely local keep in cache). The cache type specifier is either 'data' or 'instr' and specifies whether the prefetch is performed on data cache or on instruction cache.

source

',5))]),a("details",R,[a("summary",null,[e[27]||(e[27]=a("a",{id:"Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.store")],-1)),e[28]||(e[28]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=i('

store

Syntax

operation ::= `affine.store` ssa-use, ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type

The affine.store op writes an element to a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The affine.store op stores a new value which is the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1:

mlir
affine.store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>

Example 2: Uses symbol keyword for symbols %n and %m.

mlir
affine.store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>

source

',9))]),a("details",x,[a("summary",null,[e[30]||(e[30]=a("a",{id:"Reactant.MLIR.Dialects.affine.vector_load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.vector_load-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.vector_load")],-1)),e[31]||(e[31]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[32]||(e[32]=i('

vector_load

The affine.vector_load is the vector counterpart of affine.load. It reads a slice from a MemRef, supplied as its first operand, into a vector of the same base elemental type. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the read within the memref. The shape of the return vector type determines the shape of the slice read from the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector loads will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1: 8-wide f32 vector load.

mlir
%1 = affine.vector_load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>

Example 2: 4-wide f32 vector load. Uses symbol keyword for symbols %n and %m.

mlir
%1 = affine.vector_load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>

Example 3: 2-dim f32 vector load.

mlir
%1 = affine.vector_load %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>

TODOs:

(see vector.transfer_read).

source

',12))]),a("details",I,[a("summary",null,[e[33]||(e[33]=a("a",{id:"Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.vector_store")],-1)),e[34]||(e[34]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=i('

vector_store

The affine.vector_store is the vector counterpart of affine.store. It writes a vector, supplied as its first operand, into a slice within a MemRef of the same base elemental type, supplied as its second operand. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the write within the memref. The shape of th input vector determines the shape of the slice written to the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector stores will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol can be used to indicate SSA identifiers which are symbolic.

Example 1: 8-wide f32 vector store.

mlir
affine.vector_store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>

Example 2: 4-wide f32 vector store. Uses symbol keyword for symbols %n and %m.

mlir
affine.vector_store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>

Example 3: 2-dim f32 vector store.

mlir
affine.vector_store %v0, %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>

TODOs:

(see vector.transfer_write).

source

',12))]),a("details",k,[a("summary",null,[e[36]||(e[36]=a("a",{id:"Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.yield")],-1)),e[37]||(e[37]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=a("p",null,[a("code",null,"yield")],-1)),e[39]||(e[39]=a("p",null,[s("The "),a("code",null,"affine.yield"),s(" yields zero or more SSA values from an affine op region and terminates the region. The semantics of how the values yielded are used is defined by the parent operation. If "),a("code",null,"affine.yield"),s(" has any operands, the operands must match the parent operation's results. If the parent operation defines no values, then the "),a("code",null,"affine.yield"),s(" may be left out in the custom syntax and the builders will insert one implicitly. Otherwise, it has to be present in the syntax to indicate which values are yielded.")],-1)),e[40]||(e[40]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Affine.jl#L808-L820",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const C=l(d,[["render",j]]);export{A as __pageData,C as default}; diff --git a/previews/PR363/assets/api_api.md.CxfFeNTq.js b/previews/PR363/assets/api_api.md.CxfFeNTq.js new file mode 100644 index 00000000..f851d2bf --- /dev/null +++ b/previews/PR363/assets/api_api.md.CxfFeNTq.js @@ -0,0 +1,27 @@ +import{_ as l,c as p,j as i,a,G as t,a2 as n,B as h,o}from"./chunks/framework.2yyKLD8d.js";const j=JSON.parse('{"title":"Core Reactant API","description":"","frontmatter":{},"headers":[],"relativePath":"api/api.md","filePath":"api/api.md","lastUpdated":null}'),r={name:"api/api.md"},d={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},c={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"};function E(b,s,f,C,F,A){const e=h("Badge");return o(),p("div",null,[s[21]||(s[21]=i("h1",{id:"Core-Reactant-API",tabindex:"-1"},[a("Core Reactant API "),i("a",{class:"header-anchor",href:"#Core-Reactant-API","aria-label":'Permalink to "Core Reactant API {#Core-Reactant-API}"'},"​")],-1)),s[22]||(s[22]=i("h2",{id:"Compile-API",tabindex:"-1"},[a("Compile API "),i("a",{class:"header-anchor",href:"#Compile-API","aria-label":'Permalink to "Compile API {#Compile-API}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Reactant.Compiler.@compile",href:"#Reactant.Compiler.@compile"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@compile")],-1)),s[1]||(s[1]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[2]||(s[2]=n('
julia
@compile f(args...)

source

',2))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Reactant.Compiler.@jit",href:"#Reactant.Compiler.@jit"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@jit")],-1)),s[4]||(s[4]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[5]||(s[5]=n(`
julia
@jit f(args...)
+
+Run @compile f(args..) then immediately execute it

source

`,2))]),s[23]||(s[23]=i("h2",{id:"ReactantCore-API",tabindex:"-1"},[a("ReactantCore API "),i("a",{class:"header-anchor",href:"#ReactantCore-API","aria-label":'Permalink to "ReactantCore API {#ReactantCore-API}"'},"​")],-1)),i("details",c,[i("summary",null,[s[6]||(s[6]=i("a",{id:"ReactantCore.@trace",href:"#ReactantCore.@trace"},[i("span",{class:"jlbinding"},"ReactantCore.@trace")],-1)),s[7]||(s[7]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[8]||(s[8]=n(`
julia
@trace <expr>

Converts certain expressions like control flow into a Reactant friendly form. Importantly, if no traced value is found inside the expression, then there is no overhead.

Currently Supported

Special Considerations

Extended Help

Caveats (Deviations from Core Julia Semantics)

New variables introduced

julia
@trace if x > 0
+    y = x + 1
+    p = 1
+else
+    y = x - 1
+end

In the outer scope p is not defined if x ≤ 0. However, for the traced version, it is defined and set to a dummy value.

Short Circuiting Operations

julia
@trace if x > 0 && z > 0
+    y = x + 1
+else
+    y = x - 1
+end

&& and || are short circuiting operations. In the traced version, we replace them with & and | respectively.

Type-Unstable Branches

julia
@trace if x > 0
+    y = 1.0f0
+else
+    y = 1.0
+end

This will not compile since y is a Float32 in one branch and a Float64 in the other. You need to ensure that all branches have the same type.

Another example is the following for loop which changes the type of x between iterations.

julia
x = ... # ConcreteRArray{Int64, 1}
+for i in 1f0:0.5f0:10f0
+    x = x .+ i # ConcreteRArray{Float32, 1}
+end

Certain Symbols are Reserved

Symbols like [😦😃, :nothing, :missing, :Inf, :Inf16, :Inf32, :Inf64, :Base, :Core] are not allowed as variables in @trace expressions. While certain cases might work but these are not guaranteed to work. For example, the following will not work:

julia
function fn(x)
+    nothing = sum(x)
+    @trace if nothing > 0
+        y = 1.0
+    else
+        y = 2.0
+    end
+    return y, nothing
+end

source

`,23))]),s[24]||(s[24]=i("h2",{id:"Inspect-Generated-HLO",tabindex:"-1"},[a("Inspect Generated HLO "),i("a",{class:"header-anchor",href:"#Inspect-Generated-HLO","aria-label":'Permalink to "Inspect Generated HLO {#Inspect-Generated-HLO}"'},"​")],-1)),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Reactant.Compiler.@code_hlo",href:"#Reactant.Compiler.@code_hlo"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@code_hlo")],-1)),s[10]||(s[10]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[11]||(s[11]=n('
julia
@code_hlo [optimize = ...] f(args...)

source

',2))]),s[25]||(s[25]=i("br",null,null,-1)),s[26]||(s[26]=i("h1",{id:"Internal-Functionality",tabindex:"-1"},[a("Internal Functionality "),i("a",{class:"header-anchor",href:"#Internal-Functionality","aria-label":'Permalink to "Internal Functionality {#Internal-Functionality}"'},"​")],-1)),s[27]||(s[27]=i("div",{class:"danger custom-block"},[i("p",{class:"custom-block-title"},"Private"),i("p",null,"These functions are not part of the public API and are subject to change at any time.")],-1)),i("details",y,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Reactant.Compiler.codegen_unflatten!",href:"#Reactant.Compiler.codegen_unflatten!"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_unflatten!")],-1)),s[13]||(s[13]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=n('
julia
codegen_unflatten!

Generate Julia code to wrap the XLA buffers back into the output result datatypes. The name is due to its similarity to the unflatten function in jax.tree_util.register_pytree_node.

source

',3))]),i("details",u,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Reactant.Compiler.codegen_flatten!",href:"#Reactant.Compiler.codegen_flatten!"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_flatten!")],-1)),s[16]||(s[16]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=n('
julia
codegen_flatten!

Generate Julia code to extract the XLA buffers from input arguments. The name is due to its similarity to the flatten function in jax.tree_util.register_pytree_node.

Arguments

Returns

Note

The linearized arguments do not directly refer to the are the arguments that have been flattened into a single list.

source

',9))]),i("details",m,[i("summary",null,[s[18]||(s[18]=i("a",{id:"Reactant.Compiler.codegen_xla_call",href:"#Reactant.Compiler.codegen_xla_call"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_xla_call")],-1)),s[19]||(s[19]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=n('
julia
codegen_xla_call

Generate Julia code to call the XLA executable.

Arguments

source

',5))])])}const D=l(r,[["render",E]]);export{j as __pageData,D as default}; diff --git a/previews/PR363/assets/api_api.md.CxfFeNTq.lean.js b/previews/PR363/assets/api_api.md.CxfFeNTq.lean.js new file mode 100644 index 00000000..f851d2bf --- /dev/null +++ b/previews/PR363/assets/api_api.md.CxfFeNTq.lean.js @@ -0,0 +1,27 @@ +import{_ as l,c as p,j as i,a,G as t,a2 as n,B as h,o}from"./chunks/framework.2yyKLD8d.js";const j=JSON.parse('{"title":"Core Reactant API","description":"","frontmatter":{},"headers":[],"relativePath":"api/api.md","filePath":"api/api.md","lastUpdated":null}'),r={name:"api/api.md"},d={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},c={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"};function E(b,s,f,C,F,A){const e=h("Badge");return o(),p("div",null,[s[21]||(s[21]=i("h1",{id:"Core-Reactant-API",tabindex:"-1"},[a("Core Reactant API "),i("a",{class:"header-anchor",href:"#Core-Reactant-API","aria-label":'Permalink to "Core Reactant API {#Core-Reactant-API}"'},"​")],-1)),s[22]||(s[22]=i("h2",{id:"Compile-API",tabindex:"-1"},[a("Compile API "),i("a",{class:"header-anchor",href:"#Compile-API","aria-label":'Permalink to "Compile API {#Compile-API}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Reactant.Compiler.@compile",href:"#Reactant.Compiler.@compile"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@compile")],-1)),s[1]||(s[1]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[2]||(s[2]=n('
julia
@compile f(args...)

source

',2))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Reactant.Compiler.@jit",href:"#Reactant.Compiler.@jit"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@jit")],-1)),s[4]||(s[4]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[5]||(s[5]=n(`
julia
@jit f(args...)
+
+Run @compile f(args..) then immediately execute it

source

`,2))]),s[23]||(s[23]=i("h2",{id:"ReactantCore-API",tabindex:"-1"},[a("ReactantCore API "),i("a",{class:"header-anchor",href:"#ReactantCore-API","aria-label":'Permalink to "ReactantCore API {#ReactantCore-API}"'},"​")],-1)),i("details",c,[i("summary",null,[s[6]||(s[6]=i("a",{id:"ReactantCore.@trace",href:"#ReactantCore.@trace"},[i("span",{class:"jlbinding"},"ReactantCore.@trace")],-1)),s[7]||(s[7]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[8]||(s[8]=n(`
julia
@trace <expr>

Converts certain expressions like control flow into a Reactant friendly form. Importantly, if no traced value is found inside the expression, then there is no overhead.

Currently Supported

Special Considerations

Extended Help

Caveats (Deviations from Core Julia Semantics)

New variables introduced

julia
@trace if x > 0
+    y = x + 1
+    p = 1
+else
+    y = x - 1
+end

In the outer scope p is not defined if x ≤ 0. However, for the traced version, it is defined and set to a dummy value.

Short Circuiting Operations

julia
@trace if x > 0 && z > 0
+    y = x + 1
+else
+    y = x - 1
+end

&& and || are short circuiting operations. In the traced version, we replace them with & and | respectively.

Type-Unstable Branches

julia
@trace if x > 0
+    y = 1.0f0
+else
+    y = 1.0
+end

This will not compile since y is a Float32 in one branch and a Float64 in the other. You need to ensure that all branches have the same type.

Another example is the following for loop which changes the type of x between iterations.

julia
x = ... # ConcreteRArray{Int64, 1}
+for i in 1f0:0.5f0:10f0
+    x = x .+ i # ConcreteRArray{Float32, 1}
+end

Certain Symbols are Reserved

Symbols like [😦😃, :nothing, :missing, :Inf, :Inf16, :Inf32, :Inf64, :Base, :Core] are not allowed as variables in @trace expressions. While certain cases might work but these are not guaranteed to work. For example, the following will not work:

julia
function fn(x)
+    nothing = sum(x)
+    @trace if nothing > 0
+        y = 1.0
+    else
+        y = 2.0
+    end
+    return y, nothing
+end

source

`,23))]),s[24]||(s[24]=i("h2",{id:"Inspect-Generated-HLO",tabindex:"-1"},[a("Inspect Generated HLO "),i("a",{class:"header-anchor",href:"#Inspect-Generated-HLO","aria-label":'Permalink to "Inspect Generated HLO {#Inspect-Generated-HLO}"'},"​")],-1)),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Reactant.Compiler.@code_hlo",href:"#Reactant.Compiler.@code_hlo"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@code_hlo")],-1)),s[10]||(s[10]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[11]||(s[11]=n('
julia
@code_hlo [optimize = ...] f(args...)

source

',2))]),s[25]||(s[25]=i("br",null,null,-1)),s[26]||(s[26]=i("h1",{id:"Internal-Functionality",tabindex:"-1"},[a("Internal Functionality "),i("a",{class:"header-anchor",href:"#Internal-Functionality","aria-label":'Permalink to "Internal Functionality {#Internal-Functionality}"'},"​")],-1)),s[27]||(s[27]=i("div",{class:"danger custom-block"},[i("p",{class:"custom-block-title"},"Private"),i("p",null,"These functions are not part of the public API and are subject to change at any time.")],-1)),i("details",y,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Reactant.Compiler.codegen_unflatten!",href:"#Reactant.Compiler.codegen_unflatten!"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_unflatten!")],-1)),s[13]||(s[13]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=n('
julia
codegen_unflatten!

Generate Julia code to wrap the XLA buffers back into the output result datatypes. The name is due to its similarity to the unflatten function in jax.tree_util.register_pytree_node.

source

',3))]),i("details",u,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Reactant.Compiler.codegen_flatten!",href:"#Reactant.Compiler.codegen_flatten!"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_flatten!")],-1)),s[16]||(s[16]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=n('
julia
codegen_flatten!

Generate Julia code to extract the XLA buffers from input arguments. The name is due to its similarity to the flatten function in jax.tree_util.register_pytree_node.

Arguments

Returns

Note

The linearized arguments do not directly refer to the are the arguments that have been flattened into a single list.

source

',9))]),i("details",m,[i("summary",null,[s[18]||(s[18]=i("a",{id:"Reactant.Compiler.codegen_xla_call",href:"#Reactant.Compiler.codegen_xla_call"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_xla_call")],-1)),s[19]||(s[19]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=n('
julia
codegen_xla_call

Generate Julia code to call the XLA executable.

Arguments

source

',5))])])}const D=l(r,[["render",E]]);export{j as __pageData,D as default}; diff --git a/previews/PR363/assets/api_arith.md.DbkUJ4WC.js b/previews/PR363/assets/api_arith.md.DbkUJ4WC.js new file mode 100644 index 00000000..8abe164c --- /dev/null +++ b/previews/PR363/assets/api_arith.md.DbkUJ4WC.js @@ -0,0 +1,186 @@ +import{_ as l,c as o,j as a,a as t,G as n,a2 as i,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const pe=JSON.parse('{"title":"Arithmetic Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/arith.md","filePath":"api/arith.md","lastUpdated":null}'),c={name:"api/arith.md"},d={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"};function ae(te,e,se,ne,ie,le){const s=p("Badge");return r(),o("div",null,[e[153]||(e[153]=a("h1",{id:"Arithmetic-Dialect",tabindex:"-1"},[t("Arithmetic Dialect "),a("a",{class:"header-anchor",href:"#Arithmetic-Dialect","aria-label":'Permalink to "Arithmetic Dialect {#Arithmetic-Dialect}"'},"​")],-1)),e[154]||(e[154]=a("p",null,[t("Refer to the "),a("a",{href:"https://mlir.llvm.org/docs/Dialects/ArithOps/",target:"_blank",rel:"noreferrer"},"official documentation"),t(" for more details.")],-1)),a("details",d,[a("summary",null,[e[0]||(e[0]=a("a",{id:"Reactant.MLIR.Dialects.arith.addf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addf")],-1)),e[1]||(e[1]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=i(`

addf

The addf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar addition.
+%a = arith.addf %b, %c : f64
+
+// SIMD vector addition, e.g. for Intel SSE.
+%f = arith.addf %g, %h : vector<4xf32>
+
+// Tensor addition.
+%x = arith.addf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

`,6))]),a("details",u,[a("summary",null,[e[3]||(e[3]=a("a",{id:"Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addi")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=i(`

addi

Performs N-bit addition on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the addition modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The addi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar addition.
+%a = arith.addi %b, %c : i64
+
+// Scalar addition with overflow flags.
+%a = arith.addi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise addition.
+%f = arith.addi %g, %h : vector<4xi32>
+
+// Tensor element-wise addition.
+%x = arith.addi %y, %z : tensor<4x?xi8>

source

`,7))]),a("details",h,[a("summary",null,[e[6]||(e[6]=a("a",{id:"Reactant.MLIR.Dialects.arith.addui_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addui_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addui_extended")],-1)),e[7]||(e[7]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[8]||(e[8]=i(`

addui_extended

Performs (N+1)-bit addition on zero-extended operands. Returns two results: the N-bit sum (same type as both operands), and the overflow bit (boolean-like), where 1 indicates unsigned addition overflow, while 0 indicates no overflow.

Example

mlir
// Scalar addition.
+%sum, %overflow = arith.addui_extended %b, %c : i64, i1
+
+// Vector element-wise addition.
+%d:2 = arith.addui_extended %e, %f : vector<4xi32>, vector<4xi1>
+
+// Tensor element-wise addition.
+%x:2 = arith.addui_extended %y, %z : tensor<4x?xi8>, tensor<4x?xi1>

source

`,5))]),a("details",m,[a("summary",null,[e[9]||(e[9]=a("a",{id:"Reactant.MLIR.Dialects.arith.andi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.andi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.andi")],-1)),e[10]||(e[10]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[11]||(e[11]=i(`

andi

The andi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise and.
+%a = arith.andi %b, %c : i64
+
+// SIMD vector element-wise bitwise integer and.
+%f = arith.andi %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer and.
+%x = arith.andi %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",g,[a("summary",null,[e[12]||(e[12]=a("a",{id:"Reactant.MLIR.Dialects.arith.bitcast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.bitcast-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.bitcast")],-1)),e[13]||(e[13]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[14]||(e[14]=a("p",null,[a("code",null,"bitcast")],-1)),e[15]||(e[15]=a("p",null,"Bitcast an integer or floating point value to an integer or floating point value of equal bit width. When operating on vectors, casts elementwise.",-1)),e[16]||(e[16]=a("p",null,[t("Note that this implements a logical bitcast independent of target endianness. This allows constant folding without target information and is consitent with the bitcast constant folders in LLVM (see "),a("a",{href:"https://github.com/llvm/llvm-project/blob/18c19414eb/llvm/lib/IR/ConstantFold.cpp#L168",target:"_blank",rel:"noreferrer"},"https://github.com/llvm/llvm-project/blob/18c19414eb/llvm/lib/IR/ConstantFold.cpp#L168"),t(") For targets where the source and target type have the same endianness (which is the standard), this cast will also change no bits at runtime, but it may still require an operation, for example if the machine has different floating point and integer register files. For targets that have a different endianness for the source and target types (e.g. float is big-endian and integer is little-endian) a proper lowering would add operations to swap the order of words in addition to the bitcast.")],-1)),e[17]||(e[17]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L214-L231",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",f,[a("summary",null,[e[18]||(e[18]=a("a",{id:"Reactant.MLIR.Dialects.arith.ceildivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.ceildivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.ceildivsi")],-1)),e[19]||(e[19]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[20]||(e[20]=i(`

ceildivsi

Signed integer division. Rounds towards positive infinity, i.e. 7 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.ceildivsi %b, %c : i64

source

`,6))]),a("details",b,[a("summary",null,[e[21]||(e[21]=a("a",{id:"Reactant.MLIR.Dialects.arith.ceildivui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.ceildivui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.ceildivui")],-1)),e[22]||(e[22]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[23]||(e[23]=i(`

ceildivui

Unsigned integer division. Rounds towards positive infinity. Treats the leading bit as the most significant, i.e. for i16 given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 1.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division.
+%a = arith.ceildivui %b, %c : i64

source

`,6))]),a("details",R,[a("summary",null,[e[24]||(e[24]=a("a",{id:"Reactant.MLIR.Dialects.arith.cmpf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.cmpf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.cmpf")],-1)),e[25]||(e[25]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[26]||(e[26]=i(`

cmpf

The cmpf operation compares its two operands according to the float comparison rules and the predicate specified by the respective attribute. The predicate defines the type of comparison: (un)orderedness, (in)equality and signed less/greater than (or equal to) as well as predicates that are always true or false. The operands must have the same type, and this type must be a float type, or a vector or tensor thereof. The result is an i1, or a vector/tensor thereof having the same shape as the inputs. Unlike cmpi, the operands are always treated as signed. The u prefix indicates unordered comparison, not unsigned comparison, so "une" means unordered or not equal. For the sake of readability by humans, custom assembly form for the operation uses a string-typed attribute for the predicate. The value of this attribute corresponds to lower-cased name of the predicate constant, e.g., "one" means "ordered not equal". The string representation of the attribute is merely a syntactic sugar and is converted to an integer attribute by the parser.

Example

mlir
%r1 = arith.cmpf oeq, %0, %1 : f32
+%r2 = arith.cmpf ult, %0, %1 : tensor<42x42xf64>
+%r3 = "arith.cmpf"(%0, %1) {predicate: 0} : (f8, f8) -> i1

source

`,5))]),a("details",v,[a("summary",null,[e[27]||(e[27]=a("a",{id:"Reactant.MLIR.Dialects.arith.cmpi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.cmpi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.cmpi")],-1)),e[28]||(e[28]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=i(`

cmpi

The cmpi operation is a generic comparison for integer-like types. Its two arguments can be integers, vectors or tensors thereof as long as their types match. The operation produces an i1 for the former case, a vector or a tensor of i1 with the same shape as inputs in the other cases.

Its first argument is an attribute that defines which type of comparison is performed. The following comparisons are supported:

The result is 1 if the comparison is true and 0 otherwise. For vector or tensor operands, the comparison is performed elementwise and the element of the result indicates whether the comparison is true for the operand elements with the same indices as those of the result.

Note: while the custom assembly form uses strings, the actual underlying attribute has integer type (or rather enum class in C++ code) as seen from the generic assembly form. String literals are used to improve readability of the IR by humans.

This operation only applies to integer-like operands, but not floats. The main reason being that comparison operations have diverging sets of attributes: integers require sign specification while floats require various floating point-related particularities, e.g., -ffast-math behavior, IEEE754 compliance, etc (rationale). The type of comparison is specified as attribute to avoid introducing ten similar operations, taking into account that they are often implemented using the same operation downstream (rationale). The separation between signed and unsigned order comparisons is necessary because of integers being signless. The comparison operation must know how to interpret values with the foremost bit being set: negatives in two's complement or large positives (rationale).

Example

mlir
// Custom form of scalar "signed less than" comparison.
+%x = arith.cmpi slt, %lhs, %rhs : i32
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 2 : i64} : (i32, i32) -> i1
+
+// Custom form of vector equality comparison.
+%x = arith.cmpi eq, %lhs, %rhs : vector<4xi64>
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 0 : i64}
+    : (vector<4xi64>, vector<4xi64>) -> vector<4xi1>

source

`,10))]),a("details",I,[a("summary",null,[e[30]||(e[30]=a("a",{id:"Reactant.MLIR.Dialects.arith.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.arith.constant-Tuple{}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.constant")],-1)),e[31]||(e[31]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[32]||(e[32]=i(`

constant

The constant operation produces an SSA value equal to some integer or floating-point constant specified by an attribute. This is the way MLIR forms simple integer and floating point constants.

Example

// Integer constant
+%1 = arith.constant 42 : i32
+
+// Equivalent generic form
+%1 = "arith.constant"() {value = 42 : i32} : () -> i32

source

`,5))]),a("details",y,[a("summary",null,[e[33]||(e[33]=a("a",{id:"Reactant.MLIR.Dialects.arith.divsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.divsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.divsi")],-1)),e[34]||(e[34]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=i(`

divsi

Signed integer division. Rounds towards zero. Treats the leading bit as sign, i.e. 6 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.divsi %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divsi %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",M,[a("summary",null,[e[36]||(e[36]=a("a",{id:"Reactant.MLIR.Dialects.arith.divui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.divui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.divui")],-1)),e[37]||(e[37]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=i(`

divui

Unsigned integer division. Rounds towards zero. Treats the leading bit as the most significant, i.e. for i16 given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 0.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division.
+%a = arith.divui %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divui %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",L,[a("summary",null,[e[39]||(e[39]=a("a",{id:"Reactant.MLIR.Dialects.arith.extf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.extf-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.extf")],-1)),e[40]||(e[40]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[41]||(e[41]=a("p",null,[a("code",null,"extf")],-1)),e[42]||(e[42]=a("p",null,"Cast a floating-point value to a larger floating-point-typed value. The destination type must to be strictly wider than the source type. When operating on vectors, casts elementwise.",-1)),e[43]||(e[43]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L632-L638",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",j,[a("summary",null,[e[44]||(e[44]=a("a",{id:"Reactant.MLIR.Dialects.arith.extsi-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.extsi-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.extsi")],-1)),e[45]||(e[45]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[46]||(e[46]=i(`

extsi

The integer sign extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with copies of the most-significant bit of the input.

Example

mlir
%1 = arith.constant 5 : i3      // %1 is 0b101
+%2 = arith.extsi %1 : i3 to i6  // %2 is 0b111101
+%3 = arith.constant 2 : i3      // %3 is 0b010
+%4 = arith.extsi %3 : i3 to i6  // %4 is 0b000010
+
+%5 = arith.extsi %0 : vector<2 x i32> to vector<2 x i64>

source

`,5))]),a("details",x,[a("summary",null,[e[47]||(e[47]=a("a",{id:"Reactant.MLIR.Dialects.arith.extui-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.extui-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.extui")],-1)),e[48]||(e[48]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[49]||(e[49]=i(`

extui

The integer zero extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with zeros.

Example

mlir
  %1 = arith.constant 5 : i3      // %1 is 0b101
+  %2 = arith.extui %1 : i3 to i6  // %2 is 0b000101
+  %3 = arith.constant 2 : i3      // %3 is 0b010
+  %4 = arith.extui %3 : i3 to i6  // %4 is 0b000010
+
+  %5 = arith.extui %0 : vector<2 x i32> to vector<2 x i64>

source

`,5))]),a("details",D,[a("summary",null,[e[50]||(e[50]=a("a",{id:"Reactant.MLIR.Dialects.arith.floordivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.floordivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.floordivsi")],-1)),e[51]||(e[51]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[52]||(e[52]=i(`

floordivsi

Signed integer division. Rounds towards negative infinity, i.e. 5 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.floordivsi %b, %c : i64

source

`,6))]),a("details",T,[a("summary",null,[e[53]||(e[53]=a("a",{id:"Reactant.MLIR.Dialects.arith.fptosi-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.fptosi-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.fptosi")],-1)),e[54]||(e[54]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[55]||(e[55]=a("p",null,[a("code",null,"fptosi")],-1)),e[56]||(e[56]=a("p",null,"Cast from a value interpreted as floating-point to the nearest (rounding towards zero) signed integer value. When operating on vectors, casts elementwise.",-1)),e[57]||(e[57]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L736-L742",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",w,[a("summary",null,[e[58]||(e[58]=a("a",{id:"Reactant.MLIR.Dialects.arith.fptoui-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.fptoui-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.fptoui")],-1)),e[59]||(e[59]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[60]||(e[60]=a("p",null,[a("code",null,"fptoui")],-1)),e[61]||(e[61]=a("p",null,"Cast from a value interpreted as floating-point to the nearest (rounding towards zero) unsigned integer value. When operating on vectors, casts elementwise.",-1)),e[62]||(e[62]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L762-L768",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",k,[a("summary",null,[e[63]||(e[63]=a("a",{id:"Reactant.MLIR.Dialects.arith.index_cast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.index_cast-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.index_cast")],-1)),e[64]||(e[64]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[65]||(e[65]=a("p",null,[a("code",null,"index_cast")],-1)),e[66]||(e[66]=a("p",null,"Casts between scalar or vector integers and corresponding 'index' scalar or vectors. Index is an integer of platform-specific bit width. If casting to a wider integer, the value is sign-extended. If casting to a narrower integer, the value is truncated.",-1)),e[67]||(e[67]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L828-L835",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",V,[a("summary",null,[e[68]||(e[68]=a("a",{id:"Reactant.MLIR.Dialects.arith.index_castui-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.index_castui-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.index_castui")],-1)),e[69]||(e[69]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[70]||(e[70]=a("p",null,[a("code",null,"index_castui")],-1)),e[71]||(e[71]=a("p",null,"Casts between scalar or vector integers and corresponding 'index' scalar or vectors. Index is an integer of platform-specific bit width. If casting to a wider integer, the value is zero-extended. If casting to a narrower integer, the value is truncated.",-1)),e[72]||(e[72]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L855-L862",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",A,[a("summary",null,[e[73]||(e[73]=a("a",{id:"Reactant.MLIR.Dialects.arith.maximumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.maximumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.maximumf")],-1)),e[74]||(e[74]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[75]||(e[75]=i(`

maximumf

Returns the maximum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.

Example

mlir
// Scalar floating-point maximum.
+%a = arith.maximumf %b, %c : f64

source

`,5))]),a("details",E,[a("summary",null,[e[76]||(e[76]=a("a",{id:"Reactant.MLIR.Dialects.arith.maxnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.maxnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.maxnumf")],-1)),e[77]||(e[77]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[78]||(e[78]=i(`

maxnumf

Returns the maximum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.

Example

mlir
// Scalar floating-point maximum.
+%a = arith.maxnumf %b, %c : f64

source

`,5))]),a("details",q,[a("summary",null,[e[79]||(e[79]=a("a",{id:"Reactant.MLIR.Dialects.arith.minimumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.minimumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.minimumf")],-1)),e[80]||(e[80]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[81]||(e[81]=i(`

minimumf

Returns the minimum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.

Example

mlir
// Scalar floating-point minimum.
+%a = arith.minimumf %b, %c : f64

source

`,5))]),a("details",z,[a("summary",null,[e[82]||(e[82]=a("a",{id:"Reactant.MLIR.Dialects.arith.minnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.minnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.minnumf")],-1)),e[83]||(e[83]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[84]||(e[84]=i(`

minnumf

Returns the minimum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.

Example

mlir
// Scalar floating-point minimum.
+%a = arith.minnumf %b, %c : f64

source

`,5))]),a("details",C,[a("summary",null,[e[85]||(e[85]=a("a",{id:"Reactant.MLIR.Dialects.arith.mulf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.mulf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.mulf")],-1)),e[86]||(e[86]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[87]||(e[87]=i(`

mulf

The mulf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar multiplication.
+%a = arith.mulf %b, %c : f64
+
+// SIMD pointwise vector multiplication, e.g. for Intel SSE.
+%f = arith.mulf %g, %h : vector<4xf32>
+
+// Tensor pointwise multiplication.
+%x = arith.mulf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

`,6))]),a("details",S,[a("summary",null,[e[88]||(e[88]=a("a",{id:"Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.muli")],-1)),e[89]||(e[89]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[90]||(e[90]=i(`

muli

Performs N-bit multiplication on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the multiplication modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The muli operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar multiplication.
+%a = arith.muli %b, %c : i64
+
+// Scalar multiplication with overflow flags.
+%a = arith.muli %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise multiplication.
+%f = arith.muli %g, %h : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x = arith.muli %y, %z : tensor<4x?xi8>

source

`,7))]),a("details",O,[a("summary",null,[e[91]||(e[91]=a("a",{id:"Reactant.MLIR.Dialects.arith.mulsi_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.mulsi_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.mulsi_extended")],-1)),e[92]||(e[92]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[93]||(e[93]=i(`

mulsi_extended

Performs (2*N)-bit multiplication on sign-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli with the same operands.

Example

mlir
// Scalar multiplication.
+%low, %high = arith.mulsi_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mulsi_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mulsi_extended %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",N,[a("summary",null,[e[94]||(e[94]=a("a",{id:"Reactant.MLIR.Dialects.arith.mului_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.mului_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.mului_extended")],-1)),e[95]||(e[95]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[96]||(e[96]=i(`

mului_extended

Performs (2*N)-bit multiplication on zero-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli with the same operands.

Example

mlir
// Scalar multiplication.
+%low, %high = arith.mului_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mului_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mului_extended %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",W,[a("summary",null,[e[97]||(e[97]=a("a",{id:"Reactant.MLIR.Dialects.arith.negf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.negf-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.negf")],-1)),e[98]||(e[98]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[99]||(e[99]=i(`

negf

The negf operation computes the negation of a given value. It takes one operand and returns one result of the same type. This type may be a float scalar type, a vector whose element type is float, or a tensor of floats. It has no standard attributes.

Example

mlir
// Scalar negation value.
+%a = arith.negf %b : f64
+
+// SIMD vector element-wise negation value.
+%f = arith.negf %g : vector<4xf32>
+
+// Tensor element-wise negation value.
+%x = arith.negf %y : tensor<4x?xf8>

source

`,5))]),a("details",B,[a("summary",null,[e[100]||(e[100]=a("a",{id:"Reactant.MLIR.Dialects.arith.ori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.ori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.ori")],-1)),e[101]||(e[101]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[102]||(e[102]=i(`

ori

The ori operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise or.
+%a = arith.ori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer or.
+%f = arith.ori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer or.
+%x = arith.ori %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",P,[a("summary",null,[e[103]||(e[103]=a("a",{id:"Reactant.MLIR.Dialects.arith.remf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.remf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.remf")],-1)),e[104]||(e[104]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[105]||(e[105]=a("p",null,[a("code",null,"remf")],-1)),e[106]||(e[106]=a("p",null,"Returns the floating point division remainder. The remainder has the same sign as the dividend (lhs operand).",-1)),e[107]||(e[107]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1431-L1436",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",U,[a("summary",null,[e[108]||(e[108]=a("a",{id:"Reactant.MLIR.Dialects.arith.remsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.remsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.remsi")],-1)),e[109]||(e[109]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[110]||(e[110]=i(`

remsi

Signed integer division remainder. Treats the leading bit as sign, i.e. 6 % -2 = 0.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar signed integer division remainder.
+%a = arith.remsi %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remsi %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",F,[a("summary",null,[e[111]||(e[111]=a("a",{id:"Reactant.MLIR.Dialects.arith.remui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.remui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.remui")],-1)),e[112]||(e[112]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[113]||(e[113]=i(`

remui

Unsigned integer division remainder. Treats the leading bit as the most significant, i.e. for i16, 6 % -2 = 6 % (2^16 - 2) = 6.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division remainder.
+%a = arith.remui %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remui %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",G,[a("summary",null,[e[114]||(e[114]=a("a",{id:"Reactant.MLIR.Dialects.arith.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.select")],-1)),e[115]||(e[115]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[116]||(e[116]=i(`

select

The arith.select operation chooses one value based on a binary condition supplied as its first operand.

If the value of the first operand (the condition) is 1, then the second operand is returned, and the third operand is ignored, even if it was poison.

If the value of the first operand (the condition) is 0, then the third operand is returned, and the second operand is ignored, even if it was poison.

If the value of the first operand (the condition) is poison, then the operation returns poison.

The operation applies to vectors and tensors elementwise given the shape of all operands is identical. The choice is made for each element individually based on the value at the same position as the element in the condition operand. If an i1 is provided as the condition, the entire vector or tensor is chosen.

Example

mlir
// Custom form of scalar selection.
+%x = arith.select %cond, %true, %false : i32
+
+// Generic form of the same operation.
+%x = "arith.select"(%cond, %true, %false) : (i1, i32, i32) -> i32
+
+// Element-wise vector selection.
+%vx = arith.select %vcond, %vtrue, %vfalse : vector<42xi1>, vector<42xf32>
+
+// Full vector selection.
+%vx = arith.select %cond, %vtrue, %vfalse : vector<42xf32>

source

`,9))]),a("details",$,[a("summary",null,[e[117]||(e[117]=a("a",{id:"Reactant.MLIR.Dialects.arith.shli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.shli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.shli")],-1)),e[118]||(e[118]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[119]||(e[119]=i(`

shli

The shli operation shifts the integer value of the first operand to the left by the integer value of the second operand. The second operand is interpreted as unsigned. The low order bits are filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
%1 = arith.constant 5 : i8  // %1 is 0b00000101
+%2 = arith.constant 3 : i8
+%3 = arith.shli %1, %2 : i8 // %3 is 0b00101000
+%4 = arith.shli %1, %2 overflow<nsw, nuw> : i8

source

`,6))]),a("details",J,[a("summary",null,[e[120]||(e[120]=a("a",{id:"Reactant.MLIR.Dialects.arith.shrsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.shrsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.shrsi")],-1)),e[121]||(e[121]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[122]||(e[122]=i(`

shrsi

The shrsi operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as signed, and the second operand is interpreter as unsigned. The high order bits in the output are filled with copies of the most-significant bit of the shifted value (which means that the sign of the value is preserved). If the value of the second operand is greater or equal than bitwidth of the first operand, then the operation returns poison.

Example

mlir
%1 = arith.constant 160 : i8               // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrsi %1, %2 : (i8, i8) -> i8   // %3 is 0b11110100
+%4 = arith.constant 96 : i8                   // %4 is 0b01100000
+%5 = arith.shrsi %4, %2 : (i8, i8) -> i8   // %5 is 0b00001100

source

`,5))]),a("details",H,[a("summary",null,[e[123]||(e[123]=a("a",{id:"Reactant.MLIR.Dialects.arith.shrui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.shrui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.shrui")],-1)),e[124]||(e[124]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[125]||(e[125]=i(`

shrui

The shrui operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as unsigned, and the second operand is interpreted as unsigned. The high order bits are always filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.

Example

mlir
%1 = arith.constant 160 : i8               // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrui %1, %2 : (i8, i8) -> i8   // %3 is 0b00010100

source

`,5))]),a("details",K,[a("summary",null,[e[126]||(e[126]=a("a",{id:"Reactant.MLIR.Dialects.arith.sitofp-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.sitofp-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.sitofp")],-1)),e[127]||(e[127]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[128]||(e[128]=a("p",null,[a("code",null,"sitofp")],-1)),e[129]||(e[129]=a("p",null,"Cast from a value interpreted as a signed integer to the corresponding floating-point value. If the value cannot be exactly represented, it is rounded using the default rounding mode. When operating on vectors, casts elementwise.",-1)),e[130]||(e[130]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1554-L1561",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",Q,[a("summary",null,[e[131]||(e[131]=a("a",{id:"Reactant.MLIR.Dialects.arith.subf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.subf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.subf")],-1)),e[132]||(e[132]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[133]||(e[133]=i(`

subf

The subf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar subtraction.
+%a = arith.subf %b, %c : f64
+
+// SIMD vector subtraction, e.g. for Intel SSE.
+%f = arith.subf %g, %h : vector<4xf32>
+
+// Tensor subtraction.
+%x = arith.subf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

`,6))]),a("details",X,[a("summary",null,[e[134]||(e[134]=a("a",{id:"Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.subi")],-1)),e[135]||(e[135]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[136]||(e[136]=i(`

subi

Performs N-bit subtraction on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the subtraction modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The subi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar subtraction.
+%a = arith.subi %b, %c : i64
+
+// Scalar subtraction with overflow flags.
+%a = arith.subi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise subtraction.
+%f = arith.subi %g, %h : vector<4xi32>
+
+// Tensor element-wise subtraction.
+%x = arith.subi %y, %z : tensor<4x?xi8>

source

`,7))]),a("details",Y,[a("summary",null,[e[137]||(e[137]=a("a",{id:"Reactant.MLIR.Dialects.arith.truncf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.truncf-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.truncf")],-1)),e[138]||(e[138]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[139]||(e[139]=a("p",null,[a("code",null,"truncf")],-1)),e[140]||(e[140]=a("p",null,"Truncate a floating-point value to a smaller floating-point-typed value. The destination type must be strictly narrower than the source type. If the value cannot be exactly represented, it is rounded using the provided rounding mode or the default one if no rounding mode is provided. When operating on vectors, casts elementwise.",-1)),e[141]||(e[141]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1827-L1835",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",Z,[a("summary",null,[e[142]||(e[142]=a("a",{id:"Reactant.MLIR.Dialects.arith.trunci-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.trunci-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.trunci")],-1)),e[143]||(e[143]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[144]||(e[144]=i(`

trunci

The integer truncation operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be smaller than the input bit-width (N < M). The top-most (N - M) bits of the input are discarded.

Example

mlir
  %1 = arith.constant 21 : i5     // %1 is 0b10101
+  %2 = arith.trunci %1 : i5 to i4 // %2 is 0b0101
+  %3 = arith.trunci %1 : i5 to i3 // %3 is 0b101
+
+  %5 = arith.trunci %0 : vector<2 x i32> to vector<2 x i16>

source

`,5))]),a("details",_,[a("summary",null,[e[145]||(e[145]=a("a",{id:"Reactant.MLIR.Dialects.arith.uitofp-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.uitofp-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.uitofp")],-1)),e[146]||(e[146]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[147]||(e[147]=a("p",null,[a("code",null,"uitofp")],-1)),e[148]||(e[148]=a("p",null,"Cast from a value interpreted as unsigned integer to the corresponding floating-point value. If the value cannot be exactly represented, it is rounded using the default rounding mode. When operating on vectors, casts elementwise.",-1)),e[149]||(e[149]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1897-L1904",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",ee,[a("summary",null,[e[150]||(e[150]=a("a",{id:"Reactant.MLIR.Dialects.arith.xori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.xori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.xori")],-1)),e[151]||(e[151]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[152]||(e[152]=i(`

xori

The xori operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise xor.
+%a = arith.xori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer xor.
+%f = arith.xori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer xor.
+%x = arith.xori %y, %z : tensor<4x?xi8>

source

`,5))])])}const re=l(c,[["render",ae]]);export{pe as __pageData,re as default}; diff --git a/previews/PR363/assets/api_arith.md.DbkUJ4WC.lean.js b/previews/PR363/assets/api_arith.md.DbkUJ4WC.lean.js new file mode 100644 index 00000000..8abe164c --- /dev/null +++ b/previews/PR363/assets/api_arith.md.DbkUJ4WC.lean.js @@ -0,0 +1,186 @@ +import{_ as l,c as o,j as a,a as t,G as n,a2 as i,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const pe=JSON.parse('{"title":"Arithmetic Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/arith.md","filePath":"api/arith.md","lastUpdated":null}'),c={name:"api/arith.md"},d={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"};function ae(te,e,se,ne,ie,le){const s=p("Badge");return r(),o("div",null,[e[153]||(e[153]=a("h1",{id:"Arithmetic-Dialect",tabindex:"-1"},[t("Arithmetic Dialect "),a("a",{class:"header-anchor",href:"#Arithmetic-Dialect","aria-label":'Permalink to "Arithmetic Dialect {#Arithmetic-Dialect}"'},"​")],-1)),e[154]||(e[154]=a("p",null,[t("Refer to the "),a("a",{href:"https://mlir.llvm.org/docs/Dialects/ArithOps/",target:"_blank",rel:"noreferrer"},"official documentation"),t(" for more details.")],-1)),a("details",d,[a("summary",null,[e[0]||(e[0]=a("a",{id:"Reactant.MLIR.Dialects.arith.addf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addf")],-1)),e[1]||(e[1]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=i(`

addf

The addf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar addition.
+%a = arith.addf %b, %c : f64
+
+// SIMD vector addition, e.g. for Intel SSE.
+%f = arith.addf %g, %h : vector<4xf32>
+
+// Tensor addition.
+%x = arith.addf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

`,6))]),a("details",u,[a("summary",null,[e[3]||(e[3]=a("a",{id:"Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addi")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=i(`

addi

Performs N-bit addition on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the addition modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The addi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar addition.
+%a = arith.addi %b, %c : i64
+
+// Scalar addition with overflow flags.
+%a = arith.addi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise addition.
+%f = arith.addi %g, %h : vector<4xi32>
+
+// Tensor element-wise addition.
+%x = arith.addi %y, %z : tensor<4x?xi8>

source

`,7))]),a("details",h,[a("summary",null,[e[6]||(e[6]=a("a",{id:"Reactant.MLIR.Dialects.arith.addui_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addui_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addui_extended")],-1)),e[7]||(e[7]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[8]||(e[8]=i(`

addui_extended

Performs (N+1)-bit addition on zero-extended operands. Returns two results: the N-bit sum (same type as both operands), and the overflow bit (boolean-like), where 1 indicates unsigned addition overflow, while 0 indicates no overflow.

Example

mlir
// Scalar addition.
+%sum, %overflow = arith.addui_extended %b, %c : i64, i1
+
+// Vector element-wise addition.
+%d:2 = arith.addui_extended %e, %f : vector<4xi32>, vector<4xi1>
+
+// Tensor element-wise addition.
+%x:2 = arith.addui_extended %y, %z : tensor<4x?xi8>, tensor<4x?xi1>

source

`,5))]),a("details",m,[a("summary",null,[e[9]||(e[9]=a("a",{id:"Reactant.MLIR.Dialects.arith.andi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.andi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.andi")],-1)),e[10]||(e[10]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[11]||(e[11]=i(`

andi

The andi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise and.
+%a = arith.andi %b, %c : i64
+
+// SIMD vector element-wise bitwise integer and.
+%f = arith.andi %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer and.
+%x = arith.andi %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",g,[a("summary",null,[e[12]||(e[12]=a("a",{id:"Reactant.MLIR.Dialects.arith.bitcast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.bitcast-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.bitcast")],-1)),e[13]||(e[13]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[14]||(e[14]=a("p",null,[a("code",null,"bitcast")],-1)),e[15]||(e[15]=a("p",null,"Bitcast an integer or floating point value to an integer or floating point value of equal bit width. When operating on vectors, casts elementwise.",-1)),e[16]||(e[16]=a("p",null,[t("Note that this implements a logical bitcast independent of target endianness. This allows constant folding without target information and is consitent with the bitcast constant folders in LLVM (see "),a("a",{href:"https://github.com/llvm/llvm-project/blob/18c19414eb/llvm/lib/IR/ConstantFold.cpp#L168",target:"_blank",rel:"noreferrer"},"https://github.com/llvm/llvm-project/blob/18c19414eb/llvm/lib/IR/ConstantFold.cpp#L168"),t(") For targets where the source and target type have the same endianness (which is the standard), this cast will also change no bits at runtime, but it may still require an operation, for example if the machine has different floating point and integer register files. For targets that have a different endianness for the source and target types (e.g. float is big-endian and integer is little-endian) a proper lowering would add operations to swap the order of words in addition to the bitcast.")],-1)),e[17]||(e[17]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L214-L231",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",f,[a("summary",null,[e[18]||(e[18]=a("a",{id:"Reactant.MLIR.Dialects.arith.ceildivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.ceildivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.ceildivsi")],-1)),e[19]||(e[19]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[20]||(e[20]=i(`

ceildivsi

Signed integer division. Rounds towards positive infinity, i.e. 7 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.ceildivsi %b, %c : i64

source

`,6))]),a("details",b,[a("summary",null,[e[21]||(e[21]=a("a",{id:"Reactant.MLIR.Dialects.arith.ceildivui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.ceildivui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.ceildivui")],-1)),e[22]||(e[22]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[23]||(e[23]=i(`

ceildivui

Unsigned integer division. Rounds towards positive infinity. Treats the leading bit as the most significant, i.e. for i16 given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 1.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division.
+%a = arith.ceildivui %b, %c : i64

source

`,6))]),a("details",R,[a("summary",null,[e[24]||(e[24]=a("a",{id:"Reactant.MLIR.Dialects.arith.cmpf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.cmpf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.cmpf")],-1)),e[25]||(e[25]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[26]||(e[26]=i(`

cmpf

The cmpf operation compares its two operands according to the float comparison rules and the predicate specified by the respective attribute. The predicate defines the type of comparison: (un)orderedness, (in)equality and signed less/greater than (or equal to) as well as predicates that are always true or false. The operands must have the same type, and this type must be a float type, or a vector or tensor thereof. The result is an i1, or a vector/tensor thereof having the same shape as the inputs. Unlike cmpi, the operands are always treated as signed. The u prefix indicates unordered comparison, not unsigned comparison, so "une" means unordered or not equal. For the sake of readability by humans, custom assembly form for the operation uses a string-typed attribute for the predicate. The value of this attribute corresponds to lower-cased name of the predicate constant, e.g., "one" means "ordered not equal". The string representation of the attribute is merely a syntactic sugar and is converted to an integer attribute by the parser.

Example

mlir
%r1 = arith.cmpf oeq, %0, %1 : f32
+%r2 = arith.cmpf ult, %0, %1 : tensor<42x42xf64>
+%r3 = "arith.cmpf"(%0, %1) {predicate: 0} : (f8, f8) -> i1

source

`,5))]),a("details",v,[a("summary",null,[e[27]||(e[27]=a("a",{id:"Reactant.MLIR.Dialects.arith.cmpi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.cmpi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.cmpi")],-1)),e[28]||(e[28]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=i(`

cmpi

The cmpi operation is a generic comparison for integer-like types. Its two arguments can be integers, vectors or tensors thereof as long as their types match. The operation produces an i1 for the former case, a vector or a tensor of i1 with the same shape as inputs in the other cases.

Its first argument is an attribute that defines which type of comparison is performed. The following comparisons are supported:

The result is 1 if the comparison is true and 0 otherwise. For vector or tensor operands, the comparison is performed elementwise and the element of the result indicates whether the comparison is true for the operand elements with the same indices as those of the result.

Note: while the custom assembly form uses strings, the actual underlying attribute has integer type (or rather enum class in C++ code) as seen from the generic assembly form. String literals are used to improve readability of the IR by humans.

This operation only applies to integer-like operands, but not floats. The main reason being that comparison operations have diverging sets of attributes: integers require sign specification while floats require various floating point-related particularities, e.g., -ffast-math behavior, IEEE754 compliance, etc (rationale). The type of comparison is specified as attribute to avoid introducing ten similar operations, taking into account that they are often implemented using the same operation downstream (rationale). The separation between signed and unsigned order comparisons is necessary because of integers being signless. The comparison operation must know how to interpret values with the foremost bit being set: negatives in two's complement or large positives (rationale).

Example

mlir
// Custom form of scalar "signed less than" comparison.
+%x = arith.cmpi slt, %lhs, %rhs : i32
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 2 : i64} : (i32, i32) -> i1
+
+// Custom form of vector equality comparison.
+%x = arith.cmpi eq, %lhs, %rhs : vector<4xi64>
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 0 : i64}
+    : (vector<4xi64>, vector<4xi64>) -> vector<4xi1>

source

`,10))]),a("details",I,[a("summary",null,[e[30]||(e[30]=a("a",{id:"Reactant.MLIR.Dialects.arith.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.arith.constant-Tuple{}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.constant")],-1)),e[31]||(e[31]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[32]||(e[32]=i(`

constant

The constant operation produces an SSA value equal to some integer or floating-point constant specified by an attribute. This is the way MLIR forms simple integer and floating point constants.

Example

// Integer constant
+%1 = arith.constant 42 : i32
+
+// Equivalent generic form
+%1 = "arith.constant"() {value = 42 : i32} : () -> i32

source

`,5))]),a("details",y,[a("summary",null,[e[33]||(e[33]=a("a",{id:"Reactant.MLIR.Dialects.arith.divsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.divsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.divsi")],-1)),e[34]||(e[34]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=i(`

divsi

Signed integer division. Rounds towards zero. Treats the leading bit as sign, i.e. 6 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.divsi %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divsi %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",M,[a("summary",null,[e[36]||(e[36]=a("a",{id:"Reactant.MLIR.Dialects.arith.divui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.divui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.divui")],-1)),e[37]||(e[37]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=i(`

divui

Unsigned integer division. Rounds towards zero. Treats the leading bit as the most significant, i.e. for i16 given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 0.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division.
+%a = arith.divui %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divui %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",L,[a("summary",null,[e[39]||(e[39]=a("a",{id:"Reactant.MLIR.Dialects.arith.extf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.extf-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.extf")],-1)),e[40]||(e[40]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[41]||(e[41]=a("p",null,[a("code",null,"extf")],-1)),e[42]||(e[42]=a("p",null,"Cast a floating-point value to a larger floating-point-typed value. The destination type must to be strictly wider than the source type. When operating on vectors, casts elementwise.",-1)),e[43]||(e[43]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L632-L638",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",j,[a("summary",null,[e[44]||(e[44]=a("a",{id:"Reactant.MLIR.Dialects.arith.extsi-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.extsi-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.extsi")],-1)),e[45]||(e[45]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[46]||(e[46]=i(`

extsi

The integer sign extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with copies of the most-significant bit of the input.

Example

mlir
%1 = arith.constant 5 : i3      // %1 is 0b101
+%2 = arith.extsi %1 : i3 to i6  // %2 is 0b111101
+%3 = arith.constant 2 : i3      // %3 is 0b010
+%4 = arith.extsi %3 : i3 to i6  // %4 is 0b000010
+
+%5 = arith.extsi %0 : vector<2 x i32> to vector<2 x i64>

source

`,5))]),a("details",x,[a("summary",null,[e[47]||(e[47]=a("a",{id:"Reactant.MLIR.Dialects.arith.extui-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.extui-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.extui")],-1)),e[48]||(e[48]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[49]||(e[49]=i(`

extui

The integer zero extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with zeros.

Example

mlir
  %1 = arith.constant 5 : i3      // %1 is 0b101
+  %2 = arith.extui %1 : i3 to i6  // %2 is 0b000101
+  %3 = arith.constant 2 : i3      // %3 is 0b010
+  %4 = arith.extui %3 : i3 to i6  // %4 is 0b000010
+
+  %5 = arith.extui %0 : vector<2 x i32> to vector<2 x i64>

source

`,5))]),a("details",D,[a("summary",null,[e[50]||(e[50]=a("a",{id:"Reactant.MLIR.Dialects.arith.floordivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.floordivsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.floordivsi")],-1)),e[51]||(e[51]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[52]||(e[52]=i(`

floordivsi

Signed integer division. Rounds towards negative infinity, i.e. 5 / -2 = -3.

Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.

Example

mlir
// Scalar signed integer division.
+%a = arith.floordivsi %b, %c : i64

source

`,6))]),a("details",T,[a("summary",null,[e[53]||(e[53]=a("a",{id:"Reactant.MLIR.Dialects.arith.fptosi-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.fptosi-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.fptosi")],-1)),e[54]||(e[54]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[55]||(e[55]=a("p",null,[a("code",null,"fptosi")],-1)),e[56]||(e[56]=a("p",null,"Cast from a value interpreted as floating-point to the nearest (rounding towards zero) signed integer value. When operating on vectors, casts elementwise.",-1)),e[57]||(e[57]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L736-L742",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",w,[a("summary",null,[e[58]||(e[58]=a("a",{id:"Reactant.MLIR.Dialects.arith.fptoui-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.fptoui-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.fptoui")],-1)),e[59]||(e[59]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[60]||(e[60]=a("p",null,[a("code",null,"fptoui")],-1)),e[61]||(e[61]=a("p",null,"Cast from a value interpreted as floating-point to the nearest (rounding towards zero) unsigned integer value. When operating on vectors, casts elementwise.",-1)),e[62]||(e[62]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L762-L768",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",k,[a("summary",null,[e[63]||(e[63]=a("a",{id:"Reactant.MLIR.Dialects.arith.index_cast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.index_cast-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.index_cast")],-1)),e[64]||(e[64]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[65]||(e[65]=a("p",null,[a("code",null,"index_cast")],-1)),e[66]||(e[66]=a("p",null,"Casts between scalar or vector integers and corresponding 'index' scalar or vectors. Index is an integer of platform-specific bit width. If casting to a wider integer, the value is sign-extended. If casting to a narrower integer, the value is truncated.",-1)),e[67]||(e[67]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L828-L835",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",V,[a("summary",null,[e[68]||(e[68]=a("a",{id:"Reactant.MLIR.Dialects.arith.index_castui-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.index_castui-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.index_castui")],-1)),e[69]||(e[69]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[70]||(e[70]=a("p",null,[a("code",null,"index_castui")],-1)),e[71]||(e[71]=a("p",null,"Casts between scalar or vector integers and corresponding 'index' scalar or vectors. Index is an integer of platform-specific bit width. If casting to a wider integer, the value is zero-extended. If casting to a narrower integer, the value is truncated.",-1)),e[72]||(e[72]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L855-L862",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",A,[a("summary",null,[e[73]||(e[73]=a("a",{id:"Reactant.MLIR.Dialects.arith.maximumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.maximumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.maximumf")],-1)),e[74]||(e[74]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[75]||(e[75]=i(`

maximumf

Returns the maximum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.

Example

mlir
// Scalar floating-point maximum.
+%a = arith.maximumf %b, %c : f64

source

`,5))]),a("details",E,[a("summary",null,[e[76]||(e[76]=a("a",{id:"Reactant.MLIR.Dialects.arith.maxnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.maxnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.maxnumf")],-1)),e[77]||(e[77]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[78]||(e[78]=i(`

maxnumf

Returns the maximum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.

Example

mlir
// Scalar floating-point maximum.
+%a = arith.maxnumf %b, %c : f64

source

`,5))]),a("details",q,[a("summary",null,[e[79]||(e[79]=a("a",{id:"Reactant.MLIR.Dialects.arith.minimumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.minimumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.minimumf")],-1)),e[80]||(e[80]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[81]||(e[81]=i(`

minimumf

Returns the minimum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.

Example

mlir
// Scalar floating-point minimum.
+%a = arith.minimumf %b, %c : f64

source

`,5))]),a("details",z,[a("summary",null,[e[82]||(e[82]=a("a",{id:"Reactant.MLIR.Dialects.arith.minnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.minnumf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.minnumf")],-1)),e[83]||(e[83]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[84]||(e[84]=i(`

minnumf

Returns the minimum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.

Example

mlir
// Scalar floating-point minimum.
+%a = arith.minnumf %b, %c : f64

source

`,5))]),a("details",C,[a("summary",null,[e[85]||(e[85]=a("a",{id:"Reactant.MLIR.Dialects.arith.mulf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.mulf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.mulf")],-1)),e[86]||(e[86]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[87]||(e[87]=i(`

mulf

The mulf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar multiplication.
+%a = arith.mulf %b, %c : f64
+
+// SIMD pointwise vector multiplication, e.g. for Intel SSE.
+%f = arith.mulf %g, %h : vector<4xf32>
+
+// Tensor pointwise multiplication.
+%x = arith.mulf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

`,6))]),a("details",S,[a("summary",null,[e[88]||(e[88]=a("a",{id:"Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.muli")],-1)),e[89]||(e[89]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[90]||(e[90]=i(`

muli

Performs N-bit multiplication on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the multiplication modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The muli operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar multiplication.
+%a = arith.muli %b, %c : i64
+
+// Scalar multiplication with overflow flags.
+%a = arith.muli %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise multiplication.
+%f = arith.muli %g, %h : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x = arith.muli %y, %z : tensor<4x?xi8>

source

`,7))]),a("details",O,[a("summary",null,[e[91]||(e[91]=a("a",{id:"Reactant.MLIR.Dialects.arith.mulsi_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.mulsi_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.mulsi_extended")],-1)),e[92]||(e[92]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[93]||(e[93]=i(`

mulsi_extended

Performs (2*N)-bit multiplication on sign-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli with the same operands.

Example

mlir
// Scalar multiplication.
+%low, %high = arith.mulsi_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mulsi_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mulsi_extended %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",N,[a("summary",null,[e[94]||(e[94]=a("a",{id:"Reactant.MLIR.Dialects.arith.mului_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.mului_extended-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.mului_extended")],-1)),e[95]||(e[95]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[96]||(e[96]=i(`

mului_extended

Performs (2*N)-bit multiplication on zero-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli with the same operands.

Example

mlir
// Scalar multiplication.
+%low, %high = arith.mului_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mului_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mului_extended %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",W,[a("summary",null,[e[97]||(e[97]=a("a",{id:"Reactant.MLIR.Dialects.arith.negf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.negf-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.negf")],-1)),e[98]||(e[98]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[99]||(e[99]=i(`

negf

The negf operation computes the negation of a given value. It takes one operand and returns one result of the same type. This type may be a float scalar type, a vector whose element type is float, or a tensor of floats. It has no standard attributes.

Example

mlir
// Scalar negation value.
+%a = arith.negf %b : f64
+
+// SIMD vector element-wise negation value.
+%f = arith.negf %g : vector<4xf32>
+
+// Tensor element-wise negation value.
+%x = arith.negf %y : tensor<4x?xf8>

source

`,5))]),a("details",B,[a("summary",null,[e[100]||(e[100]=a("a",{id:"Reactant.MLIR.Dialects.arith.ori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.ori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.ori")],-1)),e[101]||(e[101]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[102]||(e[102]=i(`

ori

The ori operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise or.
+%a = arith.ori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer or.
+%f = arith.ori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer or.
+%x = arith.ori %y, %z : tensor<4x?xi8>

source

`,5))]),a("details",P,[a("summary",null,[e[103]||(e[103]=a("a",{id:"Reactant.MLIR.Dialects.arith.remf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.remf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.remf")],-1)),e[104]||(e[104]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[105]||(e[105]=a("p",null,[a("code",null,"remf")],-1)),e[106]||(e[106]=a("p",null,"Returns the floating point division remainder. The remainder has the same sign as the dividend (lhs operand).",-1)),e[107]||(e[107]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1431-L1436",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",U,[a("summary",null,[e[108]||(e[108]=a("a",{id:"Reactant.MLIR.Dialects.arith.remsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.remsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.remsi")],-1)),e[109]||(e[109]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[110]||(e[110]=i(`

remsi

Signed integer division remainder. Treats the leading bit as sign, i.e. 6 % -2 = 0.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar signed integer division remainder.
+%a = arith.remsi %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remsi %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",F,[a("summary",null,[e[111]||(e[111]=a("a",{id:"Reactant.MLIR.Dialects.arith.remui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.remui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.remui")],-1)),e[112]||(e[112]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[113]||(e[113]=i(`

remui

Unsigned integer division remainder. Treats the leading bit as the most significant, i.e. for i16, 6 % -2 = 6 % (2^16 - 2) = 6.

Division by zero is undefined behavior. When applied to vector and tensor values, the behavior is undefined if any elements are divided by zero.

Example

mlir
// Scalar unsigned integer division remainder.
+%a = arith.remui %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remui %y, %z : tensor<4x?xi8>

source

`,6))]),a("details",G,[a("summary",null,[e[114]||(e[114]=a("a",{id:"Reactant.MLIR.Dialects.arith.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.select")],-1)),e[115]||(e[115]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[116]||(e[116]=i(`

select

The arith.select operation chooses one value based on a binary condition supplied as its first operand.

If the value of the first operand (the condition) is 1, then the second operand is returned, and the third operand is ignored, even if it was poison.

If the value of the first operand (the condition) is 0, then the third operand is returned, and the second operand is ignored, even if it was poison.

If the value of the first operand (the condition) is poison, then the operation returns poison.

The operation applies to vectors and tensors elementwise given the shape of all operands is identical. The choice is made for each element individually based on the value at the same position as the element in the condition operand. If an i1 is provided as the condition, the entire vector or tensor is chosen.

Example

mlir
// Custom form of scalar selection.
+%x = arith.select %cond, %true, %false : i32
+
+// Generic form of the same operation.
+%x = "arith.select"(%cond, %true, %false) : (i1, i32, i32) -> i32
+
+// Element-wise vector selection.
+%vx = arith.select %vcond, %vtrue, %vfalse : vector<42xi1>, vector<42xf32>
+
+// Full vector selection.
+%vx = arith.select %cond, %vtrue, %vfalse : vector<42xf32>

source

`,9))]),a("details",$,[a("summary",null,[e[117]||(e[117]=a("a",{id:"Reactant.MLIR.Dialects.arith.shli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.shli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.shli")],-1)),e[118]||(e[118]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[119]||(e[119]=i(`

shli

The shli operation shifts the integer value of the first operand to the left by the integer value of the second operand. The second operand is interpreted as unsigned. The low order bits are filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
%1 = arith.constant 5 : i8  // %1 is 0b00000101
+%2 = arith.constant 3 : i8
+%3 = arith.shli %1, %2 : i8 // %3 is 0b00101000
+%4 = arith.shli %1, %2 overflow<nsw, nuw> : i8

source

`,6))]),a("details",J,[a("summary",null,[e[120]||(e[120]=a("a",{id:"Reactant.MLIR.Dialects.arith.shrsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.shrsi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.shrsi")],-1)),e[121]||(e[121]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[122]||(e[122]=i(`

shrsi

The shrsi operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as signed, and the second operand is interpreter as unsigned. The high order bits in the output are filled with copies of the most-significant bit of the shifted value (which means that the sign of the value is preserved). If the value of the second operand is greater or equal than bitwidth of the first operand, then the operation returns poison.

Example

mlir
%1 = arith.constant 160 : i8               // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrsi %1, %2 : (i8, i8) -> i8   // %3 is 0b11110100
+%4 = arith.constant 96 : i8                   // %4 is 0b01100000
+%5 = arith.shrsi %4, %2 : (i8, i8) -> i8   // %5 is 0b00001100

source

`,5))]),a("details",H,[a("summary",null,[e[123]||(e[123]=a("a",{id:"Reactant.MLIR.Dialects.arith.shrui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.shrui-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.shrui")],-1)),e[124]||(e[124]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[125]||(e[125]=i(`

shrui

The shrui operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as unsigned, and the second operand is interpreted as unsigned. The high order bits are always filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.

Example

mlir
%1 = arith.constant 160 : i8               // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrui %1, %2 : (i8, i8) -> i8   // %3 is 0b00010100

source

`,5))]),a("details",K,[a("summary",null,[e[126]||(e[126]=a("a",{id:"Reactant.MLIR.Dialects.arith.sitofp-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.sitofp-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.sitofp")],-1)),e[127]||(e[127]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[128]||(e[128]=a("p",null,[a("code",null,"sitofp")],-1)),e[129]||(e[129]=a("p",null,"Cast from a value interpreted as a signed integer to the corresponding floating-point value. If the value cannot be exactly represented, it is rounded using the default rounding mode. When operating on vectors, casts elementwise.",-1)),e[130]||(e[130]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1554-L1561",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",Q,[a("summary",null,[e[131]||(e[131]=a("a",{id:"Reactant.MLIR.Dialects.arith.subf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.subf-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.subf")],-1)),e[132]||(e[132]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[133]||(e[133]=i(`

subf

The subf operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.

Example

mlir
// Scalar subtraction.
+%a = arith.subf %b, %c : f64
+
+// SIMD vector subtraction, e.g. for Intel SSE.
+%f = arith.subf %g, %h : vector<4xf32>
+
+// Tensor subtraction.
+%x = arith.subf %y, %z : tensor<4x?xbf16>

TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.

source

`,6))]),a("details",X,[a("summary",null,[e[134]||(e[134]=a("a",{id:"Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.subi")],-1)),e[135]||(e[135]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[136]||(e[136]=i(`

subi

Performs N-bit subtraction on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the subtraction modulo 2^n, where n is the bitwidth. Because arith integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.

The subi operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.

This op supports nuw/nsw overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw and/or nsw flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.

Example

mlir
// Scalar subtraction.
+%a = arith.subi %b, %c : i64
+
+// Scalar subtraction with overflow flags.
+%a = arith.subi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise subtraction.
+%f = arith.subi %g, %h : vector<4xi32>
+
+// Tensor element-wise subtraction.
+%x = arith.subi %y, %z : tensor<4x?xi8>

source

`,7))]),a("details",Y,[a("summary",null,[e[137]||(e[137]=a("a",{id:"Reactant.MLIR.Dialects.arith.truncf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.truncf-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.truncf")],-1)),e[138]||(e[138]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[139]||(e[139]=a("p",null,[a("code",null,"truncf")],-1)),e[140]||(e[140]=a("p",null,"Truncate a floating-point value to a smaller floating-point-typed value. The destination type must be strictly narrower than the source type. If the value cannot be exactly represented, it is rounded using the provided rounding mode or the default one if no rounding mode is provided. When operating on vectors, casts elementwise.",-1)),e[141]||(e[141]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1827-L1835",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",Z,[a("summary",null,[e[142]||(e[142]=a("a",{id:"Reactant.MLIR.Dialects.arith.trunci-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.trunci-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.trunci")],-1)),e[143]||(e[143]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[144]||(e[144]=i(`

trunci

The integer truncation operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be smaller than the input bit-width (N < M). The top-most (N - M) bits of the input are discarded.

Example

mlir
  %1 = arith.constant 21 : i5     // %1 is 0b10101
+  %2 = arith.trunci %1 : i5 to i4 // %2 is 0b0101
+  %3 = arith.trunci %1 : i5 to i3 // %3 is 0b101
+
+  %5 = arith.trunci %0 : vector<2 x i32> to vector<2 x i16>

source

`,5))]),a("details",_,[a("summary",null,[e[145]||(e[145]=a("a",{id:"Reactant.MLIR.Dialects.arith.uitofp-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.uitofp-Tuple{Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.uitofp")],-1)),e[146]||(e[146]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[147]||(e[147]=a("p",null,[a("code",null,"uitofp")],-1)),e[148]||(e[148]=a("p",null,"Cast from a value interpreted as unsigned integer to the corresponding floating-point value. If the value cannot be exactly represented, it is rounded using the default rounding mode. When operating on vectors, casts elementwise.",-1)),e[149]||(e[149]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Arith.jl#L1897-L1904",target:"_blank",rel:"noreferrer"},"source")],-1))]),a("details",ee,[a("summary",null,[e[150]||(e[150]=a("a",{id:"Reactant.MLIR.Dialects.arith.xori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.xori-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.xori")],-1)),e[151]||(e[151]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[152]||(e[152]=i(`

xori

The xori operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.

Example

mlir
// Scalar integer bitwise xor.
+%a = arith.xori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer xor.
+%f = arith.xori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer xor.
+%x = arith.xori %y, %z : tensor<4x?xi8>

source

`,5))])])}const re=l(c,[["render",ae]]);export{pe as __pageData,re as default}; diff --git a/previews/PR363/assets/api_builtin.md.XATQzjrL.js b/previews/PR363/assets/api_builtin.md.XATQzjrL.js new file mode 100644 index 00000000..ee5779bc --- /dev/null +++ b/previews/PR363/assets/api_builtin.md.XATQzjrL.js @@ -0,0 +1,18 @@ +import{_ as i,c as l,j as n,a,G as t,a2 as o,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const _=JSON.parse('{"title":"Builtin Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/builtin.md","filePath":"api/builtin.md","lastUpdated":null}'),c={name:"api/builtin.md"},d={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"};function m(f,e,b,h,y,g){const s=p("Badge");return r(),l("div",null,[e[6]||(e[6]=n("h1",{id:"Builtin-Dialect",tabindex:"-1"},[a("Builtin Dialect "),n("a",{class:"header-anchor",href:"#Builtin-Dialect","aria-label":'Permalink to "Builtin Dialect {#Builtin-Dialect}"'},"​")],-1)),e[7]||(e[7]=n("p",null,[a("Refer to the "),n("a",{href:"https://mlir.llvm.org/docs/Dialects/Builtin/",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),n("details",d,[n("summary",null,[e[0]||(e[0]=n("a",{id:"Reactant.MLIR.Dialects.builtin.module_-Tuple{}",href:"#Reactant.MLIR.Dialects.builtin.module_-Tuple{}"},[n("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.builtin.module_")],-1)),e[1]||(e[1]=a()),t(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=o(`

module_

A module represents a top-level container operation. It contains a single graph region containing a single block which can contain any operations and does not have a terminator. Operations within this region cannot implicitly capture values defined outside the module, i.e. Modules are IsolatedFromAbove. Modules have an optional symbol name which can be used to refer to them in operations.

Example

mlir
module {
+  func.func @foo()
+}

source

`,5))]),n("details",u,[n("summary",null,[e[3]||(e[3]=n("a",{id:"Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[n("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast")],-1)),e[4]||(e[4]=a()),t(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=o(`

unrealized_conversion_cast

An unrealized_conversion_cast operation represents an unrealized conversion from one set of types to another, that is used to enable the inter-mixing of different type systems. This operation should not be attributed any special representational or execution semantics, and is generally only intended to be used to satisfy the temporary intermixing of type systems during the conversion of one type system to another.

This operation may produce results of arity 1-N, and accept as input operands of arity 0-N.

Example

mlir
// An unrealized 0-1 conversion. These types of conversions are useful in
+// cases where a type is removed from the type system, but not all uses have
+// been converted. For example, imagine we have a tuple type that is
+// expanded to its element types. If only some uses of an empty tuple type
+// instance are converted we still need an instance of the tuple type, but
+// have no inputs to the unrealized conversion.
+%result = unrealized_conversion_cast to !bar.tuple_type<>
+
+// An unrealized 1-1 conversion.
+%result1 = unrealized_conversion_cast %operand : !foo.type to !bar.lowered_type
+
+// An unrealized 1-N conversion.
+%results2:2 = unrealized_conversion_cast %tuple_operand : !foo.tuple_type<!foo.type, !foo.type> to !foo.type, !foo.type
+
+// An unrealized N-1 conversion.
+%result3 = unrealized_conversion_cast %operand, %operand : !foo.type, !foo.type to !bar.tuple_type<!foo.type, !foo.type>

source

`,6))])])}const R=i(c,[["render",m]]);export{_ as __pageData,R as default}; diff --git a/previews/PR363/assets/api_builtin.md.XATQzjrL.lean.js b/previews/PR363/assets/api_builtin.md.XATQzjrL.lean.js new file mode 100644 index 00000000..ee5779bc --- /dev/null +++ b/previews/PR363/assets/api_builtin.md.XATQzjrL.lean.js @@ -0,0 +1,18 @@ +import{_ as i,c as l,j as n,a,G as t,a2 as o,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const _=JSON.parse('{"title":"Builtin Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/builtin.md","filePath":"api/builtin.md","lastUpdated":null}'),c={name:"api/builtin.md"},d={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"};function m(f,e,b,h,y,g){const s=p("Badge");return r(),l("div",null,[e[6]||(e[6]=n("h1",{id:"Builtin-Dialect",tabindex:"-1"},[a("Builtin Dialect "),n("a",{class:"header-anchor",href:"#Builtin-Dialect","aria-label":'Permalink to "Builtin Dialect {#Builtin-Dialect}"'},"​")],-1)),e[7]||(e[7]=n("p",null,[a("Refer to the "),n("a",{href:"https://mlir.llvm.org/docs/Dialects/Builtin/",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),n("details",d,[n("summary",null,[e[0]||(e[0]=n("a",{id:"Reactant.MLIR.Dialects.builtin.module_-Tuple{}",href:"#Reactant.MLIR.Dialects.builtin.module_-Tuple{}"},[n("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.builtin.module_")],-1)),e[1]||(e[1]=a()),t(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=o(`

module_

A module represents a top-level container operation. It contains a single graph region containing a single block which can contain any operations and does not have a terminator. Operations within this region cannot implicitly capture values defined outside the module, i.e. Modules are IsolatedFromAbove. Modules have an optional symbol name which can be used to refer to them in operations.

Example

mlir
module {
+  func.func @foo()
+}

source

`,5))]),n("details",u,[n("summary",null,[e[3]||(e[3]=n("a",{id:"Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[n("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.builtin.unrealized_conversion_cast")],-1)),e[4]||(e[4]=a()),t(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=o(`

unrealized_conversion_cast

An unrealized_conversion_cast operation represents an unrealized conversion from one set of types to another, that is used to enable the inter-mixing of different type systems. This operation should not be attributed any special representational or execution semantics, and is generally only intended to be used to satisfy the temporary intermixing of type systems during the conversion of one type system to another.

This operation may produce results of arity 1-N, and accept as input operands of arity 0-N.

Example

mlir
// An unrealized 0-1 conversion. These types of conversions are useful in
+// cases where a type is removed from the type system, but not all uses have
+// been converted. For example, imagine we have a tuple type that is
+// expanded to its element types. If only some uses of an empty tuple type
+// instance are converted we still need an instance of the tuple type, but
+// have no inputs to the unrealized conversion.
+%result = unrealized_conversion_cast to !bar.tuple_type<>
+
+// An unrealized 1-1 conversion.
+%result1 = unrealized_conversion_cast %operand : !foo.type to !bar.lowered_type
+
+// An unrealized 1-N conversion.
+%results2:2 = unrealized_conversion_cast %tuple_operand : !foo.tuple_type<!foo.type, !foo.type> to !foo.type, !foo.type
+
+// An unrealized N-1 conversion.
+%result3 = unrealized_conversion_cast %operand, %operand : !foo.type, !foo.type to !bar.tuple_type<!foo.type, !foo.type>

source

`,6))])])}const R=i(c,[["render",m]]);export{_ as __pageData,R as default}; diff --git a/previews/PR363/assets/api_chlo.md.CTmmK6a-.js b/previews/PR363/assets/api_chlo.md.CTmmK6a-.js new file mode 100644 index 00000000..890c9f99 --- /dev/null +++ b/previews/PR363/assets/api_chlo.md.CTmmK6a-.js @@ -0,0 +1 @@ +import{_ as o,c as r,j as l,a as e,G as n,a2 as s,B as i,o as u}from"./chunks/framework.2yyKLD8d.js";const Rt=JSON.parse('{"title":"CHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/chlo.md","filePath":"api/chlo.md","lastUpdated":null}'),d={name:"api/chlo.md"},R={class:"jldocstring custom-block"},p={class:"jldocstring custom-block"},c={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"};function nt(st,t,ot,rt,it,ut){const a=i("Badge");return u(),r("div",null,[t[277]||(t[277]=l("h1",{id:"CHLO-Dialect",tabindex:"-1"},[e("CHLO Dialect "),l("a",{class:"header-anchor",href:"#CHLO-Dialect","aria-label":'Permalink to "CHLO Dialect {#CHLO-Dialect}"'},"​")],-1)),t[278]||(t[278]=l("p",null,[e("Refer to the "),l("a",{href:"https://github.com/openxla/xla/tree/main/xla/mlir_hlo#hlo-client-dialect-chlo",target:"_blank",rel:"noreferrer"},"official documentation"),e(" for more details.")],-1)),l("details",R,[l("summary",null,[t[0]||(t[0]=l("a",{id:"Reactant.MLIR.Dialects.chlo._asin_acos_kernel-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo._asin_acos_kernel-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo._asin_acos_kernel")],-1)),t[1]||(t[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=l("p",null,[l("code",null,"_asin_acos_kernel")],-1)),t[3]||(t[3]=l("p",null,[e("Returns "),l("code",null,"AsinAcosKernel(operand)"),e(" element-wise.")],-1)),t[4]||(t[4]=l("p",null,"If w = _asin_acos_kernel(z) w' = _asin_acos_kernel(I * z) then asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real)) acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real))",-1)),t[5]||(t[5]=l("p",null,"This op is used as an intermediate value in decompositions and should never be constructed directly by frameworks or consumed by backends.",-1)),t[6]||(t[6]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L76-L93",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",p,[l("summary",null,[t[7]||(t[7]=l("a",{id:"Reactant.MLIR.Dialects.chlo.acos-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.acos-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.acos")],-1)),t[8]||(t[8]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[9]||(t[9]=l("p",null,[l("code",null,"acos")],-1)),t[10]||(t[10]=l("p",null,[e("Returns "),l("code",null,"Acos(operand)"),e(" element-wise.")],-1)),t[11]||(t[11]=l("p",null,"$",-1)),t[12]||(t[12]=l("p",null,"\\acos(x) = 2 * \\atan(\\sqrt(1 - x^2) / (1 + x)) if x != -1 = pi if x == -1 $",-1)),t[13]||(t[13]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L16-L25",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",c,[l("summary",null,[t[14]||(t[14]=l("a",{id:"Reactant.MLIR.Dialects.chlo.acosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.acosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.acosh")],-1)),t[15]||(t[15]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[16]||(t[16]=l("p",null,[l("code",null,"acosh")],-1)),t[17]||(t[17]=l("p",null,[e("Returns "),l("code",null,"Acosh(operand)"),e(" element-wise.")],-1)),t[18]||(t[18]=l("p",null,"$",-1)),t[19]||(t[19]=l("p",null,"\\acosh(x) = log(x + sqrt(x^2 - 1)) if x >= -1 \\acosh(x) = nan if x < -1 $",-1)),t[20]||(t[20]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L46-L55",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",m,[l("summary",null,[t[21]||(t[21]=l("a",{id:"Reactant.MLIR.Dialects.chlo.asin-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.asin-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.asin")],-1)),t[22]||(t[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l("p",null,[l("code",null,"asin")],-1)),t[24]||(t[24]=l("p",null,[e("Returns "),l("code",null,"Asin(operand)"),e(" element-wise.")],-1)),t[25]||(t[25]=l("p",null,"$",-1)),t[26]||(t[26]=l("p",null,"\\asin(x) = 2 * atan(x / (1 + sqrt(1 - x^2))) $",-1)),t[27]||(t[27]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L116-L124",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",f,[l("summary",null,[t[28]||(t[28]=l("a",{id:"Reactant.MLIR.Dialects.chlo.asinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.asinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.asinh")],-1)),t[29]||(t[29]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[30]||(t[30]=l("p",null,[l("code",null,"asinh")],-1)),t[31]||(t[31]=l("p",null,[e("Returns "),l("code",null,"Asinh(operand)"),e(" element-wise.")],-1)),t[32]||(t[32]=l("p",null,"$",-1)),t[33]||(t[33]=l("p",null,"\\asinh(x) = log(x + sqrt(x^2 + 1)) $",-1)),t[34]||(t[34]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L145-L153",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",b,[l("summary",null,[t[35]||(t[35]=l("a",{id:"Reactant.MLIR.Dialects.chlo.atan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.atan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.atan")],-1)),t[36]||(t[36]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[37]||(t[37]=l("p",null,[l("code",null,"atan")],-1)),t[38]||(t[38]=l("p",null,[e("Returns "),l("code",null,"Atan(operand)"),e(" element-wise.")],-1)),t[39]||(t[39]=l("p",null,"$",-1)),t[40]||(t[40]=l("p",null,"\\atan(x) = \\atan2(x, 1) $",-1)),t[41]||(t[41]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L174-L182",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",I,[l("summary",null,[t[42]||(t[42]=l("a",{id:"Reactant.MLIR.Dialects.chlo.atanh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.atanh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.atanh")],-1)),t[43]||(t[43]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l("p",null,[l("code",null,"atanh")],-1)),t[45]||(t[45]=l("p",null,[e("Returns "),l("code",null,"Atanh(operand)"),e(" element-wise.")],-1)),t[46]||(t[46]=l("p",null,"$",-1)),t[47]||(t[47]=l("p",null,"\\atanh(x) = 0.5 * log((1 + x) / (1 - x)) if abs(x) <= 1 = nan otherwise $",-1)),t[48]||(t[48]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L203-L212",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",L,[l("summary",null,[t[49]||(t[49]=l("a",{id:"Reactant.MLIR.Dialects.chlo.bessel_i1e-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.bessel_i1e-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.bessel_i1e")],-1)),t[50]||(t[50]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[51]||(t[51]=l("p",null,[l("code",null,"bessel_i1e")],-1)),t[52]||(t[52]=l("p",null,[e("Returns "),l("code",null,"bessel_i1e(operand)"),e(" element-wise.")],-1)),t[53]||(t[53]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L233-L237",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",M,[l("summary",null,[t[54]||(t[54]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_add")],-1)),t[55]||(t[55]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l("p",null,[l("code",null,"broadcast_add")],-1)),t[57]||(t[57]=l("p",null,[e("Returns "),l("code",null,"lhs + rhs"),e(" element-wise.")],-1)),t[58]||(t[58]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[59]||(t[59]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L260-L267",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",j,[l("summary",null,[t[60]||(t[60]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_and")],-1)),t[61]||(t[61]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l("p",null,[l("code",null,"broadcast_and")],-1)),t[63]||(t[63]=l("p",null,[e("Returns "),l("code",null,"logical_and(lhs, rhs)"),e(" element-wise.")],-1)),t[64]||(t[64]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[65]||(t[65]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L296-L303",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",g,[l("summary",null,[t[66]||(t[66]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_atan2")],-1)),t[67]||(t[67]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[68]||(t[68]=l("p",null,[l("code",null,"broadcast_atan2")],-1)),t[69]||(t[69]=l("p",null,[e("Returns "),l("code",null,"atan2(lhs/rhs)"),e(" element-wise.")],-1)),t[70]||(t[70]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[71]||(t[71]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L332-L339",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",y,[l("summary",null,[t[72]||(t[72]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_compare")],-1)),t[73]||(t[73]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[74]||(t[74]=s('

broadcast_compare

Compares lhs and rhs elementwise according to comparison_direction and compare_type. If unspecified, compare_type is FLOAT for float element types, SIGNED for signed element types and UNSIGNED for unsigned element types.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_comparison_operations.

source

',4))]),l("details",D,[l("summary",null,[t[75]||(t[75]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_complex")],-1)),t[76]||(t[76]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[77]||(t[77]=l("p",null,[l("code",null,"broadcast_complex")],-1)),t[78]||(t[78]=l("p",null,"Performs element-wise conversion of a pair of real and imaginary values to a complex value.",-1)),t[79]||(t[79]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L413-L418",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",w,[l("summary",null,[t[80]||(t[80]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_divide")],-1)),t[81]||(t[81]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[82]||(t[82]=l("p",null,[l("code",null,"broadcast_divide")],-1)),t[83]||(t[83]=l("p",null,[e("Returns "),l("code",null,"lhs / rhs"),e(" element-wise.")],-1)),t[84]||(t[84]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[85]||(t[85]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L447-L454",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",x,[l("summary",null,[t[86]||(t[86]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_maximum")],-1)),t[87]||(t[87]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[88]||(t[88]=l("p",null,[l("code",null,"broadcast_maximum")],-1)),t[89]||(t[89]=l("p",null,[e("Returns "),l("code",null,"max(lhs, rhs)"),e(" element-wise.")],-1)),t[90]||(t[90]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[91]||(t[91]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L483-L490",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",T,[l("summary",null,[t[92]||(t[92]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_minimum")],-1)),t[93]||(t[93]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[94]||(t[94]=l("p",null,[l("code",null,"broadcast_minimum")],-1)),t[95]||(t[95]=l("p",null,[e("Returns "),l("code",null,"min(lhs, rhs)"),e(" element-wise.")],-1)),t[96]||(t[96]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[97]||(t[97]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L519-L526",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",h,[l("summary",null,[t[98]||(t[98]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_multiply")],-1)),t[99]||(t[99]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[100]||(t[100]=l("p",null,[l("code",null,"broadcast_multiply")],-1)),t[101]||(t[101]=l("p",null,[e("Returns "),l("code",null,"lhs * rhs"),e(" element-wise.")],-1)),t[102]||(t[102]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[103]||(t[103]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L555-L562",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",V,[l("summary",null,[t[104]||(t[104]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_next_after")],-1)),t[105]||(t[105]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[106]||(t[106]=l("p",null,[l("code",null,"broadcast_next_after")],-1)),t[107]||(t[107]=l("p",null,[e("Returns the next representable value of "),l("code",null,"lhs"),e(" in the direction of "),l("code",null,"rhs"),e(", element-wise. It can also return a subnormal number.")],-1)),t[108]||(t[108]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[109]||(t[109]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L591-L598",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",k,[l("summary",null,[t[110]||(t[110]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_or")],-1)),t[111]||(t[111]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[112]||(t[112]=l("p",null,[l("code",null,"broadcast_or")],-1)),t[113]||(t[113]=l("p",null,[e("Returns "),l("code",null,"logical_or(lhs, rhs)"),e(" element-wise.")],-1)),t[114]||(t[114]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[115]||(t[115]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L627-L634",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",O,[l("summary",null,[t[116]||(t[116]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_polygamma")],-1)),t[117]||(t[117]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[118]||(t[118]=l("p",null,[l("code",null,"broadcast_polygamma")],-1)),t[119]||(t[119]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[120]||(t[120]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L663-L667",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",z,[l("summary",null,[t[121]||(t[121]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_power")],-1)),t[122]||(t[122]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[123]||(t[123]=l("p",null,[l("code",null,"broadcast_power")],-1)),t[124]||(t[124]=l("p",null,[e("Returns "),l("code",null,"lhs ^ rhs"),e(" element-wise.")],-1)),t[125]||(t[125]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[126]||(t[126]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L696-L703",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",C,[l("summary",null,[t[127]||(t[127]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_remainder")],-1)),t[128]||(t[128]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[129]||(t[129]=l("p",null,[l("code",null,"broadcast_remainder")],-1)),t[130]||(t[130]=l("p",null,[e("Returns "),l("code",null,"lhs % rhs"),e(" element-wise.")],-1)),t[131]||(t[131]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[132]||(t[132]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L732-L739",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",A,[l("summary",null,[t[133]||(t[133]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_select")],-1)),t[134]||(t[134]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[135]||(t[135]=l("p",null,[l("code",null,"broadcast_select")],-1)),t[136]||(t[136]=l("p",null,"Constructs an output array from elements of two input arrays, based on the values of a predicate array.",-1)),t[137]||(t[137]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#select",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#select")],-1)),t[138]||(t[138]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L768-L775",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",E,[l("summary",null,[t[139]||(t[139]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_left")],-1)),t[140]||(t[140]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[141]||(t[141]=l("p",null,[l("code",null,"broadcast_shift_left")],-1)),t[142]||(t[142]=l("p",null,[e("Returns "),l("code",null,"lhs << rhs"),e(" element-wise.")],-1)),t[143]||(t[143]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[144]||(t[144]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L802-L809",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",H,[l("summary",null,[t[145]||(t[145]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic")],-1)),t[146]||(t[146]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[147]||(t[147]=l("p",null,[l("code",null,"broadcast_shift_right_arithmetic")],-1)),t[148]||(t[148]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[149]||(t[149]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[150]||(t[150]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L838-L845",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",v,[l("summary",null,[t[151]||(t[151]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical")],-1)),t[152]||(t[152]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[153]||(t[153]=l("p",null,[l("code",null,"broadcast_shift_right_logical")],-1)),t[154]||(t[154]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[155]||(t[155]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[156]||(t[156]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L874-L881",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",$,[l("summary",null,[t[157]||(t[157]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_subtract")],-1)),t[158]||(t[158]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[159]||(t[159]=l("p",null,[l("code",null,"broadcast_subtract")],-1)),t[160]||(t[160]=l("p",null,[e("Returns "),l("code",null,"lhs - rhs"),e(" element-wise.")],-1)),t[161]||(t[161]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[162]||(t[162]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L910-L917",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",S,[l("summary",null,[t[163]||(t[163]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_xor")],-1)),t[164]||(t[164]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[165]||(t[165]=l("p",null,[l("code",null,"broadcast_xor")],-1)),t[166]||(t[166]=l("p",null,[e("Returns "),l("code",null,"logical_xor(lhs, rhs)"),e(" element-wise.")],-1)),t[167]||(t[167]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[168]||(t[168]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L946-L953",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",q,[l("summary",null,[t[169]||(t[169]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_zeta")],-1)),t[170]||(t[170]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[171]||(t[171]=l("p",null,[l("code",null,"broadcast_zeta")],-1)),t[172]||(t[172]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[173]||(t[173]=l("p",null,"$",-1)),t[174]||(t[174]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[175]||(t[175]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L982-L990",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",N,[l("summary",null,[t[176]||(t[176]=l("a",{id:"Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.conj")],-1)),t[177]||(t[177]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[178]||(t[178]=l("p",null,[l("code",null,"conj")],-1)),t[179]||(t[179]=l("p",null,[e("Returns "),l("code",null,"Conj(operand)"),e(" element-wise.")],-1)),t[180]||(t[180]=l("p",null,"$",-1)),t[181]||(t[181]=l("p",null,"\\conj(x) = (\\real(x), \\neg(\\imag(x))) $",-1)),t[182]||(t[182]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1019-L1027",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",B,[l("summary",null,[t[183]||(t[183]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.chlo.constant-Tuple{}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant")],-1)),t[184]||(t[184]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l("p",null,[l("code",null,"constant")],-1)),t[186]||(t[186]=l("p",null,"Represents a constant value.",-1)),t[187]||(t[187]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1075-L1079",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",P,[l("summary",null,[t[188]||(t[188]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant_like")],-1)),t[189]||(t[189]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[190]||(t[190]=l("p",null,[l("code",null,"constant_like")],-1)),t[191]||(t[191]=l("p",null,"Returns a splat constant of the same shape as the operand.",-1)),t[192]||(t[192]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1048-L1052",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",G,[l("summary",null,[t[193]||(t[193]=l("a",{id:"Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.cosh")],-1)),t[194]||(t[194]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[195]||(t[195]=l("p",null,[l("code",null,"cosh")],-1)),t[196]||(t[196]=l("p",null,[e("Returns "),l("code",null,"Cosh(operand)"),e(" element-wise.")],-1)),t[197]||(t[197]=l("p",null,"$",-1)),t[198]||(t[198]=l("p",null,"\\cosh(x) = (e^x + e^-x) / 2 $",-1)),t[199]||(t[199]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1100-L1108",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",F,[l("summary",null,[t[200]||(t[200]=l("a",{id:"Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.digamma")],-1)),t[201]||(t[201]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[202]||(t[202]=l("p",null,[l("code",null,"digamma")],-1)),t[203]||(t[203]=l("p",null,[e("Returns "),l("code",null,"Digamma(operand)"),e(" element-wise.")],-1)),t[204]||(t[204]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1129-L1133",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",U,[l("summary",null,[t[205]||(t[205]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf")],-1)),t[206]||(t[206]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[207]||(t[207]=l("p",null,[l("code",null,"erf")],-1)),t[208]||(t[208]=l("p",null,[e("Computes the Gauss error function of "),l("code",null,"x"),e(" element-wise.")],-1)),t[209]||(t[209]=l("p",null,"erf(x) = erf_impl(x) if |x| < 1 = 1 - erfc_impl(x) otherwise",-1)),t[210]||(t[210]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1183-L1190",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Z,[l("summary",null,[t[211]||(t[211]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf_inv")],-1)),t[212]||(t[212]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[213]||(t[213]=l("p",null,[l("code",null,"erf_inv")],-1)),t[214]||(t[214]=l("p",null,[e("Returns "),l("code",null,"ErfInv(operand)"),e(" element-wise.")],-1)),t[215]||(t[215]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1156-L1160",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",J,[l("summary",null,[t[216]||(t[216]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erfc")],-1)),t[217]||(t[217]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[218]||(t[218]=l("p",null,[l("code",null,"erfc")],-1)),t[219]||(t[219]=l("p",null,"Computes an approximation of the error function complement (1 - erf(x)).",-1)),t[220]||(t[220]=l("p",null,"erfc(x) = erfc_impl(x) if |x| > 1 = 1 - erf_impl(x) otherwise",-1)),t[221]||(t[221]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1211-L1218",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",K,[l("summary",null,[t[222]||(t[222]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_inf")],-1)),t[223]||(t[223]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l("p",null,[l("code",null,"is_inf")],-1)),t[225]||(t[225]=l("p",null,"Returns if a value is +/-inf element-wise.",-1)),t[226]||(t[226]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1239-L1243",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Q,[l("summary",null,[t[227]||(t[227]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_neg_inf")],-1)),t[228]||(t[228]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[229]||(t[229]=l("p",null,[l("code",null,"is_neg_inf")],-1)),t[230]||(t[230]=l("p",null,"Returns if a value is -inf element-wise.",-1)),t[231]||(t[231]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1264-L1268",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",W,[l("summary",null,[t[232]||(t[232]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_pos_inf")],-1)),t[233]||(t[233]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[234]||(t[234]=l("p",null,[l("code",null,"is_pos_inf")],-1)),t[235]||(t[235]=l("p",null,"Returns if a value is +inf element-wise.",-1)),t[236]||(t[236]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1291-L1295",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",X,[l("summary",null,[t[237]||(t[237]=l("a",{id:"Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.lgamma")],-1)),t[238]||(t[238]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[239]||(t[239]=l("p",null,[l("code",null,"lgamma")],-1)),t[240]||(t[240]=l("p",null,[e("Returns "),l("code",null,"Lgamma(operand)"),e(" element-wise.")],-1)),t[241]||(t[241]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1318-L1322",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Y,[l("summary",null,[t[242]||(t[242]=l("a",{id:"Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.next_after")],-1)),t[243]||(t[243]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[244]||(t[244]=l("p",null,[l("code",null,"next_after")],-1)),t[245]||(t[245]=l("p",null,[e("Returns the next representable value of "),l("code",null,"x"),e(" in the direction of "),l("code",null,"y"),e(", element-wise. It can also return a subnormal number.")],-1)),t[246]||(t[246]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[247]||(t[247]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1343-L1350",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",_,[l("summary",null,[t[248]||(t[248]=l("a",{id:"Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.polygamma")],-1)),t[249]||(t[249]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[250]||(t[250]=l("p",null,[l("code",null,"polygamma")],-1)),t[251]||(t[251]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[252]||(t[252]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1373-L1377",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",tt,[l("summary",null,[t[253]||(t[253]=l("a",{id:"Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.sinh")],-1)),t[254]||(t[254]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[255]||(t[255]=l("p",null,[l("code",null,"sinh")],-1)),t[256]||(t[256]=l("p",null,[e("Returns "),l("code",null,"Sinh(operand)"),e(" element-wise.")],-1)),t[257]||(t[257]=l("p",null,"$",-1)),t[258]||(t[258]=l("p",null,"\\sinh(x) = (e^x - e^-x) / 2 if |x| < 1 = e^(x + log(1/2)) - e^(-x + log(1/2)) otherwise. $",-1)),t[259]||(t[259]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1400-L1409",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",lt,[l("summary",null,[t[260]||(t[260]=l("a",{id:"Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.tan")],-1)),t[261]||(t[261]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[262]||(t[262]=l("p",null,[l("code",null,"tan")],-1)),t[263]||(t[263]=l("p",null,[e("Returns "),l("code",null,"Tan(operand)"),e(" element-wise.")],-1)),t[264]||(t[264]=l("p",null,"$",-1)),t[265]||(t[265]=l("p",null,"\\tan(x) = \\sin(x) / \\cos(x) $",-1)),t[266]||(t[266]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1430-L1438",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",et,[l("summary",null,[t[267]||(t[267]=l("a",{id:"Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.top_k")],-1)),t[268]||(t[268]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[269]||(t[269]=s('

top_k

If the input is a vector (rank-1), finds the k largest entries in the vector and outputs their values and indices as vectors. Thus values[j] is the j-th largest entry in input, and its index is indices[j].

For matrices (resp. higher rank input), computes the top k entries in each row (resp. vector along the last dimension). Thus,

values.shape = indices.shape = input.shape[:-1] + [k]

If two elements are equal, the lower-index element appears first.

source

',6))]),l("details",at,[l("summary",null,[t[270]||(t[270]=l("a",{id:"Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.zeta")],-1)),t[271]||(t[271]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[272]||(t[272]=l("p",null,[l("code",null,"zeta")],-1)),t[273]||(t[273]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[274]||(t[274]=l("p",null,"$",-1)),t[275]||(t[275]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[276]||(t[276]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1500-L1508",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const pt=o(d,[["render",nt]]);export{Rt as __pageData,pt as default}; diff --git a/previews/PR363/assets/api_chlo.md.CTmmK6a-.lean.js b/previews/PR363/assets/api_chlo.md.CTmmK6a-.lean.js new file mode 100644 index 00000000..890c9f99 --- /dev/null +++ b/previews/PR363/assets/api_chlo.md.CTmmK6a-.lean.js @@ -0,0 +1 @@ +import{_ as o,c as r,j as l,a as e,G as n,a2 as s,B as i,o as u}from"./chunks/framework.2yyKLD8d.js";const Rt=JSON.parse('{"title":"CHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/chlo.md","filePath":"api/chlo.md","lastUpdated":null}'),d={name:"api/chlo.md"},R={class:"jldocstring custom-block"},p={class:"jldocstring custom-block"},c={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"};function nt(st,t,ot,rt,it,ut){const a=i("Badge");return u(),r("div",null,[t[277]||(t[277]=l("h1",{id:"CHLO-Dialect",tabindex:"-1"},[e("CHLO Dialect "),l("a",{class:"header-anchor",href:"#CHLO-Dialect","aria-label":'Permalink to "CHLO Dialect {#CHLO-Dialect}"'},"​")],-1)),t[278]||(t[278]=l("p",null,[e("Refer to the "),l("a",{href:"https://github.com/openxla/xla/tree/main/xla/mlir_hlo#hlo-client-dialect-chlo",target:"_blank",rel:"noreferrer"},"official documentation"),e(" for more details.")],-1)),l("details",R,[l("summary",null,[t[0]||(t[0]=l("a",{id:"Reactant.MLIR.Dialects.chlo._asin_acos_kernel-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo._asin_acos_kernel-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo._asin_acos_kernel")],-1)),t[1]||(t[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=l("p",null,[l("code",null,"_asin_acos_kernel")],-1)),t[3]||(t[3]=l("p",null,[e("Returns "),l("code",null,"AsinAcosKernel(operand)"),e(" element-wise.")],-1)),t[4]||(t[4]=l("p",null,"If w = _asin_acos_kernel(z) w' = _asin_acos_kernel(I * z) then asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real)) acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real))",-1)),t[5]||(t[5]=l("p",null,"This op is used as an intermediate value in decompositions and should never be constructed directly by frameworks or consumed by backends.",-1)),t[6]||(t[6]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L76-L93",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",p,[l("summary",null,[t[7]||(t[7]=l("a",{id:"Reactant.MLIR.Dialects.chlo.acos-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.acos-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.acos")],-1)),t[8]||(t[8]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[9]||(t[9]=l("p",null,[l("code",null,"acos")],-1)),t[10]||(t[10]=l("p",null,[e("Returns "),l("code",null,"Acos(operand)"),e(" element-wise.")],-1)),t[11]||(t[11]=l("p",null,"$",-1)),t[12]||(t[12]=l("p",null,"\\acos(x) = 2 * \\atan(\\sqrt(1 - x^2) / (1 + x)) if x != -1 = pi if x == -1 $",-1)),t[13]||(t[13]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L16-L25",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",c,[l("summary",null,[t[14]||(t[14]=l("a",{id:"Reactant.MLIR.Dialects.chlo.acosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.acosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.acosh")],-1)),t[15]||(t[15]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[16]||(t[16]=l("p",null,[l("code",null,"acosh")],-1)),t[17]||(t[17]=l("p",null,[e("Returns "),l("code",null,"Acosh(operand)"),e(" element-wise.")],-1)),t[18]||(t[18]=l("p",null,"$",-1)),t[19]||(t[19]=l("p",null,"\\acosh(x) = log(x + sqrt(x^2 - 1)) if x >= -1 \\acosh(x) = nan if x < -1 $",-1)),t[20]||(t[20]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L46-L55",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",m,[l("summary",null,[t[21]||(t[21]=l("a",{id:"Reactant.MLIR.Dialects.chlo.asin-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.asin-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.asin")],-1)),t[22]||(t[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l("p",null,[l("code",null,"asin")],-1)),t[24]||(t[24]=l("p",null,[e("Returns "),l("code",null,"Asin(operand)"),e(" element-wise.")],-1)),t[25]||(t[25]=l("p",null,"$",-1)),t[26]||(t[26]=l("p",null,"\\asin(x) = 2 * atan(x / (1 + sqrt(1 - x^2))) $",-1)),t[27]||(t[27]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L116-L124",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",f,[l("summary",null,[t[28]||(t[28]=l("a",{id:"Reactant.MLIR.Dialects.chlo.asinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.asinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.asinh")],-1)),t[29]||(t[29]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[30]||(t[30]=l("p",null,[l("code",null,"asinh")],-1)),t[31]||(t[31]=l("p",null,[e("Returns "),l("code",null,"Asinh(operand)"),e(" element-wise.")],-1)),t[32]||(t[32]=l("p",null,"$",-1)),t[33]||(t[33]=l("p",null,"\\asinh(x) = log(x + sqrt(x^2 + 1)) $",-1)),t[34]||(t[34]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L145-L153",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",b,[l("summary",null,[t[35]||(t[35]=l("a",{id:"Reactant.MLIR.Dialects.chlo.atan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.atan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.atan")],-1)),t[36]||(t[36]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[37]||(t[37]=l("p",null,[l("code",null,"atan")],-1)),t[38]||(t[38]=l("p",null,[e("Returns "),l("code",null,"Atan(operand)"),e(" element-wise.")],-1)),t[39]||(t[39]=l("p",null,"$",-1)),t[40]||(t[40]=l("p",null,"\\atan(x) = \\atan2(x, 1) $",-1)),t[41]||(t[41]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L174-L182",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",I,[l("summary",null,[t[42]||(t[42]=l("a",{id:"Reactant.MLIR.Dialects.chlo.atanh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.atanh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.atanh")],-1)),t[43]||(t[43]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l("p",null,[l("code",null,"atanh")],-1)),t[45]||(t[45]=l("p",null,[e("Returns "),l("code",null,"Atanh(operand)"),e(" element-wise.")],-1)),t[46]||(t[46]=l("p",null,"$",-1)),t[47]||(t[47]=l("p",null,"\\atanh(x) = 0.5 * log((1 + x) / (1 - x)) if abs(x) <= 1 = nan otherwise $",-1)),t[48]||(t[48]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L203-L212",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",L,[l("summary",null,[t[49]||(t[49]=l("a",{id:"Reactant.MLIR.Dialects.chlo.bessel_i1e-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.bessel_i1e-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.bessel_i1e")],-1)),t[50]||(t[50]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[51]||(t[51]=l("p",null,[l("code",null,"bessel_i1e")],-1)),t[52]||(t[52]=l("p",null,[e("Returns "),l("code",null,"bessel_i1e(operand)"),e(" element-wise.")],-1)),t[53]||(t[53]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L233-L237",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",M,[l("summary",null,[t[54]||(t[54]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_add")],-1)),t[55]||(t[55]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l("p",null,[l("code",null,"broadcast_add")],-1)),t[57]||(t[57]=l("p",null,[e("Returns "),l("code",null,"lhs + rhs"),e(" element-wise.")],-1)),t[58]||(t[58]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[59]||(t[59]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L260-L267",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",j,[l("summary",null,[t[60]||(t[60]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_and")],-1)),t[61]||(t[61]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l("p",null,[l("code",null,"broadcast_and")],-1)),t[63]||(t[63]=l("p",null,[e("Returns "),l("code",null,"logical_and(lhs, rhs)"),e(" element-wise.")],-1)),t[64]||(t[64]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[65]||(t[65]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L296-L303",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",g,[l("summary",null,[t[66]||(t[66]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_atan2")],-1)),t[67]||(t[67]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[68]||(t[68]=l("p",null,[l("code",null,"broadcast_atan2")],-1)),t[69]||(t[69]=l("p",null,[e("Returns "),l("code",null,"atan2(lhs/rhs)"),e(" element-wise.")],-1)),t[70]||(t[70]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[71]||(t[71]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L332-L339",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",y,[l("summary",null,[t[72]||(t[72]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_compare")],-1)),t[73]||(t[73]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[74]||(t[74]=s('

broadcast_compare

Compares lhs and rhs elementwise according to comparison_direction and compare_type. If unspecified, compare_type is FLOAT for float element types, SIGNED for signed element types and UNSIGNED for unsigned element types.

See https://www.tensorflow.org/xla/operation_semantics#element-wise_comparison_operations.

source

',4))]),l("details",D,[l("summary",null,[t[75]||(t[75]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_complex")],-1)),t[76]||(t[76]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[77]||(t[77]=l("p",null,[l("code",null,"broadcast_complex")],-1)),t[78]||(t[78]=l("p",null,"Performs element-wise conversion of a pair of real and imaginary values to a complex value.",-1)),t[79]||(t[79]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L413-L418",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",w,[l("summary",null,[t[80]||(t[80]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_divide")],-1)),t[81]||(t[81]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[82]||(t[82]=l("p",null,[l("code",null,"broadcast_divide")],-1)),t[83]||(t[83]=l("p",null,[e("Returns "),l("code",null,"lhs / rhs"),e(" element-wise.")],-1)),t[84]||(t[84]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[85]||(t[85]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L447-L454",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",x,[l("summary",null,[t[86]||(t[86]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_maximum")],-1)),t[87]||(t[87]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[88]||(t[88]=l("p",null,[l("code",null,"broadcast_maximum")],-1)),t[89]||(t[89]=l("p",null,[e("Returns "),l("code",null,"max(lhs, rhs)"),e(" element-wise.")],-1)),t[90]||(t[90]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[91]||(t[91]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L483-L490",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",T,[l("summary",null,[t[92]||(t[92]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_minimum")],-1)),t[93]||(t[93]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[94]||(t[94]=l("p",null,[l("code",null,"broadcast_minimum")],-1)),t[95]||(t[95]=l("p",null,[e("Returns "),l("code",null,"min(lhs, rhs)"),e(" element-wise.")],-1)),t[96]||(t[96]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[97]||(t[97]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L519-L526",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",h,[l("summary",null,[t[98]||(t[98]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_multiply")],-1)),t[99]||(t[99]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[100]||(t[100]=l("p",null,[l("code",null,"broadcast_multiply")],-1)),t[101]||(t[101]=l("p",null,[e("Returns "),l("code",null,"lhs * rhs"),e(" element-wise.")],-1)),t[102]||(t[102]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[103]||(t[103]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L555-L562",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",V,[l("summary",null,[t[104]||(t[104]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_next_after")],-1)),t[105]||(t[105]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[106]||(t[106]=l("p",null,[l("code",null,"broadcast_next_after")],-1)),t[107]||(t[107]=l("p",null,[e("Returns the next representable value of "),l("code",null,"lhs"),e(" in the direction of "),l("code",null,"rhs"),e(", element-wise. It can also return a subnormal number.")],-1)),t[108]||(t[108]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[109]||(t[109]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L591-L598",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",k,[l("summary",null,[t[110]||(t[110]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_or")],-1)),t[111]||(t[111]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[112]||(t[112]=l("p",null,[l("code",null,"broadcast_or")],-1)),t[113]||(t[113]=l("p",null,[e("Returns "),l("code",null,"logical_or(lhs, rhs)"),e(" element-wise.")],-1)),t[114]||(t[114]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[115]||(t[115]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L627-L634",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",O,[l("summary",null,[t[116]||(t[116]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_polygamma")],-1)),t[117]||(t[117]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[118]||(t[118]=l("p",null,[l("code",null,"broadcast_polygamma")],-1)),t[119]||(t[119]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[120]||(t[120]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L663-L667",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",z,[l("summary",null,[t[121]||(t[121]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_power")],-1)),t[122]||(t[122]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[123]||(t[123]=l("p",null,[l("code",null,"broadcast_power")],-1)),t[124]||(t[124]=l("p",null,[e("Returns "),l("code",null,"lhs ^ rhs"),e(" element-wise.")],-1)),t[125]||(t[125]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[126]||(t[126]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L696-L703",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",C,[l("summary",null,[t[127]||(t[127]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_remainder")],-1)),t[128]||(t[128]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[129]||(t[129]=l("p",null,[l("code",null,"broadcast_remainder")],-1)),t[130]||(t[130]=l("p",null,[e("Returns "),l("code",null,"lhs % rhs"),e(" element-wise.")],-1)),t[131]||(t[131]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[132]||(t[132]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L732-L739",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",A,[l("summary",null,[t[133]||(t[133]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_select")],-1)),t[134]||(t[134]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[135]||(t[135]=l("p",null,[l("code",null,"broadcast_select")],-1)),t[136]||(t[136]=l("p",null,"Constructs an output array from elements of two input arrays, based on the values of a predicate array.",-1)),t[137]||(t[137]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#select",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#select")],-1)),t[138]||(t[138]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L768-L775",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",E,[l("summary",null,[t[139]||(t[139]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_left")],-1)),t[140]||(t[140]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[141]||(t[141]=l("p",null,[l("code",null,"broadcast_shift_left")],-1)),t[142]||(t[142]=l("p",null,[e("Returns "),l("code",null,"lhs << rhs"),e(" element-wise.")],-1)),t[143]||(t[143]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[144]||(t[144]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L802-L809",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",H,[l("summary",null,[t[145]||(t[145]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic")],-1)),t[146]||(t[146]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[147]||(t[147]=l("p",null,[l("code",null,"broadcast_shift_right_arithmetic")],-1)),t[148]||(t[148]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[149]||(t[149]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[150]||(t[150]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L838-L845",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",v,[l("summary",null,[t[151]||(t[151]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical")],-1)),t[152]||(t[152]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[153]||(t[153]=l("p",null,[l("code",null,"broadcast_shift_right_logical")],-1)),t[154]||(t[154]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[155]||(t[155]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[156]||(t[156]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L874-L881",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",$,[l("summary",null,[t[157]||(t[157]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_subtract")],-1)),t[158]||(t[158]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[159]||(t[159]=l("p",null,[l("code",null,"broadcast_subtract")],-1)),t[160]||(t[160]=l("p",null,[e("Returns "),l("code",null,"lhs - rhs"),e(" element-wise.")],-1)),t[161]||(t[161]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[162]||(t[162]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L910-L917",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",S,[l("summary",null,[t[163]||(t[163]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_xor")],-1)),t[164]||(t[164]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[165]||(t[165]=l("p",null,[l("code",null,"broadcast_xor")],-1)),t[166]||(t[166]=l("p",null,[e("Returns "),l("code",null,"logical_xor(lhs, rhs)"),e(" element-wise.")],-1)),t[167]||(t[167]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[168]||(t[168]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L946-L953",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",q,[l("summary",null,[t[169]||(t[169]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_zeta")],-1)),t[170]||(t[170]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[171]||(t[171]=l("p",null,[l("code",null,"broadcast_zeta")],-1)),t[172]||(t[172]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[173]||(t[173]=l("p",null,"$",-1)),t[174]||(t[174]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[175]||(t[175]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L982-L990",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",N,[l("summary",null,[t[176]||(t[176]=l("a",{id:"Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.conj")],-1)),t[177]||(t[177]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[178]||(t[178]=l("p",null,[l("code",null,"conj")],-1)),t[179]||(t[179]=l("p",null,[e("Returns "),l("code",null,"Conj(operand)"),e(" element-wise.")],-1)),t[180]||(t[180]=l("p",null,"$",-1)),t[181]||(t[181]=l("p",null,"\\conj(x) = (\\real(x), \\neg(\\imag(x))) $",-1)),t[182]||(t[182]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1019-L1027",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",B,[l("summary",null,[t[183]||(t[183]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.chlo.constant-Tuple{}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant")],-1)),t[184]||(t[184]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l("p",null,[l("code",null,"constant")],-1)),t[186]||(t[186]=l("p",null,"Represents a constant value.",-1)),t[187]||(t[187]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1075-L1079",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",P,[l("summary",null,[t[188]||(t[188]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant_like")],-1)),t[189]||(t[189]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[190]||(t[190]=l("p",null,[l("code",null,"constant_like")],-1)),t[191]||(t[191]=l("p",null,"Returns a splat constant of the same shape as the operand.",-1)),t[192]||(t[192]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1048-L1052",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",G,[l("summary",null,[t[193]||(t[193]=l("a",{id:"Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.cosh")],-1)),t[194]||(t[194]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[195]||(t[195]=l("p",null,[l("code",null,"cosh")],-1)),t[196]||(t[196]=l("p",null,[e("Returns "),l("code",null,"Cosh(operand)"),e(" element-wise.")],-1)),t[197]||(t[197]=l("p",null,"$",-1)),t[198]||(t[198]=l("p",null,"\\cosh(x) = (e^x + e^-x) / 2 $",-1)),t[199]||(t[199]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1100-L1108",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",F,[l("summary",null,[t[200]||(t[200]=l("a",{id:"Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.digamma")],-1)),t[201]||(t[201]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[202]||(t[202]=l("p",null,[l("code",null,"digamma")],-1)),t[203]||(t[203]=l("p",null,[e("Returns "),l("code",null,"Digamma(operand)"),e(" element-wise.")],-1)),t[204]||(t[204]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1129-L1133",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",U,[l("summary",null,[t[205]||(t[205]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf")],-1)),t[206]||(t[206]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[207]||(t[207]=l("p",null,[l("code",null,"erf")],-1)),t[208]||(t[208]=l("p",null,[e("Computes the Gauss error function of "),l("code",null,"x"),e(" element-wise.")],-1)),t[209]||(t[209]=l("p",null,"erf(x) = erf_impl(x) if |x| < 1 = 1 - erfc_impl(x) otherwise",-1)),t[210]||(t[210]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1183-L1190",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Z,[l("summary",null,[t[211]||(t[211]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf_inv")],-1)),t[212]||(t[212]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[213]||(t[213]=l("p",null,[l("code",null,"erf_inv")],-1)),t[214]||(t[214]=l("p",null,[e("Returns "),l("code",null,"ErfInv(operand)"),e(" element-wise.")],-1)),t[215]||(t[215]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1156-L1160",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",J,[l("summary",null,[t[216]||(t[216]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erfc")],-1)),t[217]||(t[217]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[218]||(t[218]=l("p",null,[l("code",null,"erfc")],-1)),t[219]||(t[219]=l("p",null,"Computes an approximation of the error function complement (1 - erf(x)).",-1)),t[220]||(t[220]=l("p",null,"erfc(x) = erfc_impl(x) if |x| > 1 = 1 - erf_impl(x) otherwise",-1)),t[221]||(t[221]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1211-L1218",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",K,[l("summary",null,[t[222]||(t[222]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_inf")],-1)),t[223]||(t[223]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l("p",null,[l("code",null,"is_inf")],-1)),t[225]||(t[225]=l("p",null,"Returns if a value is +/-inf element-wise.",-1)),t[226]||(t[226]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1239-L1243",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Q,[l("summary",null,[t[227]||(t[227]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_neg_inf")],-1)),t[228]||(t[228]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[229]||(t[229]=l("p",null,[l("code",null,"is_neg_inf")],-1)),t[230]||(t[230]=l("p",null,"Returns if a value is -inf element-wise.",-1)),t[231]||(t[231]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1264-L1268",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",W,[l("summary",null,[t[232]||(t[232]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_pos_inf")],-1)),t[233]||(t[233]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[234]||(t[234]=l("p",null,[l("code",null,"is_pos_inf")],-1)),t[235]||(t[235]=l("p",null,"Returns if a value is +inf element-wise.",-1)),t[236]||(t[236]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1291-L1295",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",X,[l("summary",null,[t[237]||(t[237]=l("a",{id:"Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.lgamma")],-1)),t[238]||(t[238]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[239]||(t[239]=l("p",null,[l("code",null,"lgamma")],-1)),t[240]||(t[240]=l("p",null,[e("Returns "),l("code",null,"Lgamma(operand)"),e(" element-wise.")],-1)),t[241]||(t[241]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1318-L1322",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Y,[l("summary",null,[t[242]||(t[242]=l("a",{id:"Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.next_after")],-1)),t[243]||(t[243]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[244]||(t[244]=l("p",null,[l("code",null,"next_after")],-1)),t[245]||(t[245]=l("p",null,[e("Returns the next representable value of "),l("code",null,"x"),e(" in the direction of "),l("code",null,"y"),e(", element-wise. It can also return a subnormal number.")],-1)),t[246]||(t[246]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[247]||(t[247]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1343-L1350",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",_,[l("summary",null,[t[248]||(t[248]=l("a",{id:"Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.polygamma")],-1)),t[249]||(t[249]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[250]||(t[250]=l("p",null,[l("code",null,"polygamma")],-1)),t[251]||(t[251]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[252]||(t[252]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1373-L1377",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",tt,[l("summary",null,[t[253]||(t[253]=l("a",{id:"Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.sinh")],-1)),t[254]||(t[254]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[255]||(t[255]=l("p",null,[l("code",null,"sinh")],-1)),t[256]||(t[256]=l("p",null,[e("Returns "),l("code",null,"Sinh(operand)"),e(" element-wise.")],-1)),t[257]||(t[257]=l("p",null,"$",-1)),t[258]||(t[258]=l("p",null,"\\sinh(x) = (e^x - e^-x) / 2 if |x| < 1 = e^(x + log(1/2)) - e^(-x + log(1/2)) otherwise. $",-1)),t[259]||(t[259]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1400-L1409",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",lt,[l("summary",null,[t[260]||(t[260]=l("a",{id:"Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.tan")],-1)),t[261]||(t[261]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[262]||(t[262]=l("p",null,[l("code",null,"tan")],-1)),t[263]||(t[263]=l("p",null,[e("Returns "),l("code",null,"Tan(operand)"),e(" element-wise.")],-1)),t[264]||(t[264]=l("p",null,"$",-1)),t[265]||(t[265]=l("p",null,"\\tan(x) = \\sin(x) / \\cos(x) $",-1)),t[266]||(t[266]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1430-L1438",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",et,[l("summary",null,[t[267]||(t[267]=l("a",{id:"Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.top_k")],-1)),t[268]||(t[268]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[269]||(t[269]=s('

top_k

If the input is a vector (rank-1), finds the k largest entries in the vector and outputs their values and indices as vectors. Thus values[j] is the j-th largest entry in input, and its index is indices[j].

For matrices (resp. higher rank input), computes the top k entries in each row (resp. vector along the last dimension). Thus,

values.shape = indices.shape = input.shape[:-1] + [k]

If two elements are equal, the lower-index element appears first.

source

',6))]),l("details",at,[l("summary",null,[t[270]||(t[270]=l("a",{id:"Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.zeta")],-1)),t[271]||(t[271]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[272]||(t[272]=l("p",null,[l("code",null,"zeta")],-1)),t[273]||(t[273]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[274]||(t[274]=l("p",null,"$",-1)),t[275]||(t[275]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[276]||(t[276]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1500-L1508",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const pt=o(d,[["render",nt]]);export{Rt as __pageData,pt as default}; diff --git a/previews/PR363/assets/api_enzyme.md.C8cSUFJK.js b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.js new file mode 100644 index 00000000..b4cc968c --- /dev/null +++ b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.js @@ -0,0 +1 @@ +import{_ as l,c as o,j as t,a,G as s,B as r,o as d}from"./chunks/framework.2yyKLD8d.js";const R=JSON.parse('{"title":"Enzyme Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/enzyme.md","filePath":"api/enzyme.md","lastUpdated":null}'),i={name:"api/enzyme.md"},c={class:"jldocstring custom-block"};function m(p,e,u,y,f,z){const n=r("Badge");return d(),o("div",null,[e[5]||(e[5]=t("h1",{id:"Enzyme-Dialect",tabindex:"-1"},[a("Enzyme Dialect "),t("a",{class:"header-anchor",href:"#Enzyme-Dialect","aria-label":'Permalink to "Enzyme Dialect {#Enzyme-Dialect}"'},"​")],-1)),t("details",c,[t("summary",null,[e[0]||(e[0]=t("a",{id:"Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.enzyme.addTo")],-1)),e[1]||(e[1]=a()),s(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=t("p",null,[t("code",null,"addTo")],-1)),e[3]||(e[3]=t("p",null,"TODO",-1)),e[4]||(e[4]=t("p",null,[t("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Enzyme.jl#L16-L20",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const b=l(i,[["render",m]]);export{R as __pageData,b as default}; diff --git a/previews/PR363/assets/api_enzyme.md.C8cSUFJK.lean.js b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.lean.js new file mode 100644 index 00000000..b4cc968c --- /dev/null +++ b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.lean.js @@ -0,0 +1 @@ +import{_ as l,c as o,j as t,a,G as s,B as r,o as d}from"./chunks/framework.2yyKLD8d.js";const R=JSON.parse('{"title":"Enzyme Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/enzyme.md","filePath":"api/enzyme.md","lastUpdated":null}'),i={name:"api/enzyme.md"},c={class:"jldocstring custom-block"};function m(p,e,u,y,f,z){const n=r("Badge");return d(),o("div",null,[e[5]||(e[5]=t("h1",{id:"Enzyme-Dialect",tabindex:"-1"},[a("Enzyme Dialect "),t("a",{class:"header-anchor",href:"#Enzyme-Dialect","aria-label":'Permalink to "Enzyme Dialect {#Enzyme-Dialect}"'},"​")],-1)),t("details",c,[t("summary",null,[e[0]||(e[0]=t("a",{id:"Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.enzyme.addTo")],-1)),e[1]||(e[1]=a()),s(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=t("p",null,[t("code",null,"addTo")],-1)),e[3]||(e[3]=t("p",null,"TODO",-1)),e[4]||(e[4]=t("p",null,[t("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Enzyme.jl#L16-L20",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const b=l(i,[["render",m]]);export{R as __pageData,b as default}; diff --git a/previews/PR363/assets/api_func.md.BwGv464S.js b/previews/PR363/assets/api_func.md.BwGv464S.js new file mode 100644 index 00000000..5d05fa50 --- /dev/null +++ b/previews/PR363/assets/api_func.md.BwGv464S.js @@ -0,0 +1,26 @@ +import{_ as c,c as i,j as e,a,G as s,a2 as l,B as o,o as p}from"./chunks/framework.2yyKLD8d.js";const L=JSON.parse('{"title":"Func Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/func.md","filePath":"api/func.md","lastUpdated":null}'),r={name:"api/func.md"},u={class:"jldocstring custom-block"},d={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"};function g(h,n,R,y,v,x){const t=o("Badge");return p(),i("div",null,[n[15]||(n[15]=e("h1",{id:"Func-Dialect",tabindex:"-1"},[a("Func Dialect "),e("a",{class:"header-anchor",href:"#Func-Dialect","aria-label":'Permalink to "Func Dialect {#Func-Dialect}"'},"​")],-1)),n[16]||(n[16]=e("p",null,[a("Refer to the "),e("a",{href:"https://mlir.llvm.org/docs/Dialects/Func/",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),e("details",u,[e("summary",null,[n[0]||(n[0]=e("a",{id:"Reactant.MLIR.Dialects.func.call-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.call-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.call")],-1)),n[1]||(n[1]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[2]||(n[2]=l('

call

The func.call operation represents a direct call to a function that is within the same symbol scope as the call. The operands and result types of the call must match the specified function type. The callee is encoded as a symbol reference attribute named "callee".

Example

mlir
%2 = func.call @my_add(%0, %1) : (f32, f32) -> f32

source

',5))]),e("details",d,[e("summary",null,[n[3]||(n[3]=e("a",{id:"Reactant.MLIR.Dialects.func.call_indirect-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.call_indirect-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.call_indirect")],-1)),n[4]||(n[4]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[5]||(n[5]=l(`

call_indirect

The func.call_indirect operation represents an indirect call to a value of function type. The operands and result types of the call must match the specified function type.

Function values can be created with the func.constant operation.

Example

mlir
%func = func.constant @my_func : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
+%result = func.call_indirect %func(%0, %1) : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>

source

`,6))]),e("details",f,[e("summary",null,[n[6]||(n[6]=e("a",{id:"Reactant.MLIR.Dialects.func.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.func.constant-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.constant")],-1)),n[7]||(n[7]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[8]||(n[8]=l(`

constant

The func.constant operation produces an SSA value from a symbol reference to a func.func operation

Example

mlir
// Reference to function @myfn.
+%2 = func.constant @myfn : (tensor<16xf32>, f32) -> tensor<16xf32>
+
+// Equivalent generic forms
+%2 = "func.constant"() { value = @myfn } : () -> ((tensor<16xf32>, f32) -> tensor<16xf32>)

MLIR does not allow direct references to functions in SSA operands because the compiler is multithreaded, and disallowing SSA values to directly reference a function simplifies this (rationale).

source

`,6))]),e("details",m,[e("summary",null,[n[9]||(n[9]=e("a",{id:"Reactant.MLIR.Dialects.func.func_-Tuple{}",href:"#Reactant.MLIR.Dialects.func.func_-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.func_")],-1)),n[10]||(n[10]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[11]||(n[11]=l(`

func_

Operations within the function cannot implicitly capture values defined outside of the function, i.e. Functions are IsolatedFromAbove. All external references must use function arguments or attributes that establish a symbolic connection (e.g. symbols referenced by name via a string attribute like SymbolRefAttr). An external function declaration (used when referring to a function declared in some other module) has no body. While the MLIR textual form provides a nice inline syntax for function arguments, they are internally represented as “block arguments” to the first block in the region.

Only dialect attribute names may be specified in the attribute dictionaries for function arguments, results, or the function itself.

Example

mlir
// External function definitions.
+func.func private @abort()
+func.func private @scribble(i32, i64, memref<? x 128 x f32, #layout_map0>) -> f64
+
+// A function that returns its argument twice:
+func.func @count(%x: i64) -> (i64, i64)
+  attributes {fruit = "banana"} {
+  return %x, %x: i64, i64
+}
+
+// A function with an argument attribute
+func.func private @example_fn_arg(%x: i32 {swift.self = unit})
+
+// A function with a result attribute
+func.func private @example_fn_result() -> (f64 {dialectName.attrName = 0 : i64})
+
+// A function with an attribute
+func.func private @example_fn_attr() attributes {dialectName.attrName = false}

source

`,6))]),e("details",b,[e("summary",null,[n[12]||(n[12]=e("a",{id:"Reactant.MLIR.Dialects.func.return_-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.return_-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.return_")],-1)),n[13]||(n[13]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[14]||(n[14]=l(`

return_

The func.return operation represents a return operation within a function. The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the function that contains the operation.

Example

mlir
func.func @foo() : (i32, f8) {
+  ...
+  return %0, %1 : i32, f8
+}

source

`,5))])])}const M=c(r,[["render",g]]);export{L as __pageData,M as default}; diff --git a/previews/PR363/assets/api_func.md.BwGv464S.lean.js b/previews/PR363/assets/api_func.md.BwGv464S.lean.js new file mode 100644 index 00000000..5d05fa50 --- /dev/null +++ b/previews/PR363/assets/api_func.md.BwGv464S.lean.js @@ -0,0 +1,26 @@ +import{_ as c,c as i,j as e,a,G as s,a2 as l,B as o,o as p}from"./chunks/framework.2yyKLD8d.js";const L=JSON.parse('{"title":"Func Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/func.md","filePath":"api/func.md","lastUpdated":null}'),r={name:"api/func.md"},u={class:"jldocstring custom-block"},d={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"};function g(h,n,R,y,v,x){const t=o("Badge");return p(),i("div",null,[n[15]||(n[15]=e("h1",{id:"Func-Dialect",tabindex:"-1"},[a("Func Dialect "),e("a",{class:"header-anchor",href:"#Func-Dialect","aria-label":'Permalink to "Func Dialect {#Func-Dialect}"'},"​")],-1)),n[16]||(n[16]=e("p",null,[a("Refer to the "),e("a",{href:"https://mlir.llvm.org/docs/Dialects/Func/",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),e("details",u,[e("summary",null,[n[0]||(n[0]=e("a",{id:"Reactant.MLIR.Dialects.func.call-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.call-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.call")],-1)),n[1]||(n[1]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[2]||(n[2]=l('

call

The func.call operation represents a direct call to a function that is within the same symbol scope as the call. The operands and result types of the call must match the specified function type. The callee is encoded as a symbol reference attribute named "callee".

Example

mlir
%2 = func.call @my_add(%0, %1) : (f32, f32) -> f32

source

',5))]),e("details",d,[e("summary",null,[n[3]||(n[3]=e("a",{id:"Reactant.MLIR.Dialects.func.call_indirect-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.call_indirect-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.call_indirect")],-1)),n[4]||(n[4]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[5]||(n[5]=l(`

call_indirect

The func.call_indirect operation represents an indirect call to a value of function type. The operands and result types of the call must match the specified function type.

Function values can be created with the func.constant operation.

Example

mlir
%func = func.constant @my_func : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
+%result = func.call_indirect %func(%0, %1) : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>

source

`,6))]),e("details",f,[e("summary",null,[n[6]||(n[6]=e("a",{id:"Reactant.MLIR.Dialects.func.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.func.constant-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.constant")],-1)),n[7]||(n[7]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[8]||(n[8]=l(`

constant

The func.constant operation produces an SSA value from a symbol reference to a func.func operation

Example

mlir
// Reference to function @myfn.
+%2 = func.constant @myfn : (tensor<16xf32>, f32) -> tensor<16xf32>
+
+// Equivalent generic forms
+%2 = "func.constant"() { value = @myfn } : () -> ((tensor<16xf32>, f32) -> tensor<16xf32>)

MLIR does not allow direct references to functions in SSA operands because the compiler is multithreaded, and disallowing SSA values to directly reference a function simplifies this (rationale).

source

`,6))]),e("details",m,[e("summary",null,[n[9]||(n[9]=e("a",{id:"Reactant.MLIR.Dialects.func.func_-Tuple{}",href:"#Reactant.MLIR.Dialects.func.func_-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.func_")],-1)),n[10]||(n[10]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[11]||(n[11]=l(`

func_

Operations within the function cannot implicitly capture values defined outside of the function, i.e. Functions are IsolatedFromAbove. All external references must use function arguments or attributes that establish a symbolic connection (e.g. symbols referenced by name via a string attribute like SymbolRefAttr). An external function declaration (used when referring to a function declared in some other module) has no body. While the MLIR textual form provides a nice inline syntax for function arguments, they are internally represented as “block arguments” to the first block in the region.

Only dialect attribute names may be specified in the attribute dictionaries for function arguments, results, or the function itself.

Example

mlir
// External function definitions.
+func.func private @abort()
+func.func private @scribble(i32, i64, memref<? x 128 x f32, #layout_map0>) -> f64
+
+// A function that returns its argument twice:
+func.func @count(%x: i64) -> (i64, i64)
+  attributes {fruit = "banana"} {
+  return %x, %x: i64, i64
+}
+
+// A function with an argument attribute
+func.func private @example_fn_arg(%x: i32 {swift.self = unit})
+
+// A function with a result attribute
+func.func private @example_fn_result() -> (f64 {dialectName.attrName = 0 : i64})
+
+// A function with an attribute
+func.func private @example_fn_attr() attributes {dialectName.attrName = false}

source

`,6))]),e("details",b,[e("summary",null,[n[12]||(n[12]=e("a",{id:"Reactant.MLIR.Dialects.func.return_-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.return_-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.return_")],-1)),n[13]||(n[13]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[14]||(n[14]=l(`

return_

The func.return operation represents a return operation within a function. The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the function that contains the operation.

Example

mlir
func.func @foo() : (i32, f8) {
+  ...
+  return %0, %1 : i32, f8
+}

source

`,5))])])}const M=c(r,[["render",g]]);export{L as __pageData,M as default}; diff --git a/previews/PR363/assets/api_mlirc.md.DTBPo4z4.js b/previews/PR363/assets/api_mlirc.md.DTBPo4z4.js new file mode 100644 index 00000000..c9cbb574 --- /dev/null +++ b/previews/PR363/assets/api_mlirc.md.DTBPo4z4.js @@ -0,0 +1,9 @@ +import{_ as n,c as p,j as e,a as s,G as i,a2 as l,B as r,o}from"./chunks/framework.2yyKLD8d.js";const Bk=JSON.parse('{"title":"Higher level API","description":"","frontmatter":{},"headers":[],"relativePath":"api/mlirc.md","filePath":"api/mlirc.md","lastUpdated":null}'),d={name:"api/mlirc.md"},c={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},st={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"},it={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},nt={class:"jldocstring custom-block"},pt={class:"jldocstring custom-block"},rt={class:"jldocstring custom-block"},ot={class:"jldocstring custom-block"},dt={class:"jldocstring custom-block"},ct={class:"jldocstring custom-block"},ht={class:"jldocstring custom-block"},ut={class:"jldocstring custom-block"},bt={class:"jldocstring custom-block"},gt={class:"jldocstring custom-block"},yt={class:"jldocstring custom-block"},mt={class:"jldocstring custom-block"},kt={class:"jldocstring custom-block"},ft={class:"jldocstring custom-block"},Rt={class:"jldocstring custom-block"},It={class:"jldocstring custom-block"},jt={class:"jldocstring custom-block"},Mt={class:"jldocstring custom-block"},At={class:"jldocstring custom-block"},Lt={class:"jldocstring custom-block"},Et={class:"jldocstring custom-block"},vt={class:"jldocstring custom-block"},Tt={class:"jldocstring custom-block"},Ct={class:"jldocstring custom-block"},xt={class:"jldocstring custom-block"},Ft={class:"jldocstring custom-block"},Pt={class:"jldocstring custom-block"},Dt={class:"jldocstring custom-block"},Ot={class:"jldocstring custom-block"},Bt={class:"jldocstring custom-block"},Gt={class:"jldocstring custom-block"},zt={class:"jldocstring custom-block"},wt={class:"jldocstring custom-block"},St={class:"jldocstring custom-block"},Nt={class:"jldocstring custom-block"},Vt={class:"jldocstring custom-block"},qt={class:"jldocstring custom-block"},Ut={class:"jldocstring custom-block"},Qt={class:"jldocstring custom-block"},Wt={class:"jldocstring custom-block"},Ht={class:"jldocstring custom-block"},Zt={class:"jldocstring custom-block"},Jt={class:"jldocstring custom-block"},Kt={class:"jldocstring custom-block"},$t={class:"jldocstring custom-block"},Xt={class:"jldocstring custom-block"},Yt={class:"jldocstring custom-block"},_t={class:"jldocstring custom-block"},te={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"},se={class:"jldocstring custom-block"},ae={class:"jldocstring custom-block"},ie={class:"jldocstring custom-block"},le={class:"jldocstring custom-block"},ne={class:"jldocstring custom-block"},pe={class:"jldocstring custom-block"},re={class:"jldocstring custom-block"},oe={class:"jldocstring custom-block"},de={class:"jldocstring custom-block"},ce={class:"jldocstring custom-block"},he={class:"jldocstring custom-block"},ue={class:"jldocstring custom-block"},be={class:"jldocstring custom-block"},ge={class:"jldocstring custom-block"},ye={class:"jldocstring custom-block"},me={class:"jldocstring custom-block"},ke={class:"jldocstring custom-block"},fe={class:"jldocstring custom-block"},Re={class:"jldocstring custom-block"},Ie={class:"jldocstring custom-block"},je={class:"jldocstring custom-block"},Me={class:"jldocstring custom-block"},Ae={class:"jldocstring custom-block"},Le={class:"jldocstring custom-block"},Ee={class:"jldocstring custom-block"},ve={class:"jldocstring custom-block"},Te={class:"jldocstring custom-block"},Ce={class:"jldocstring custom-block"},xe={class:"jldocstring custom-block"},Fe={class:"jldocstring custom-block"},Pe={class:"jldocstring custom-block"},De={class:"jldocstring custom-block"},Oe={class:"jldocstring custom-block"},Be={class:"jldocstring custom-block"},Ge={class:"jldocstring custom-block"},ze={class:"jldocstring custom-block"},we={class:"jldocstring custom-block"},Se={class:"jldocstring custom-block"},Ne={class:"jldocstring custom-block"},Ve={class:"jldocstring custom-block"},qe={class:"jldocstring custom-block"},Ue={class:"jldocstring custom-block"},Qe={class:"jldocstring custom-block"},We={class:"jldocstring custom-block"},He={class:"jldocstring custom-block"},Ze={class:"jldocstring custom-block"},Je={class:"jldocstring custom-block"},Ke={class:"jldocstring custom-block"},$e={class:"jldocstring custom-block"},Xe={class:"jldocstring custom-block"},Ye={class:"jldocstring custom-block"},_e={class:"jldocstring custom-block"},ts={class:"jldocstring custom-block"},es={class:"jldocstring custom-block"},ss={class:"jldocstring custom-block"},as={class:"jldocstring custom-block"},is={class:"jldocstring custom-block"},ls={class:"jldocstring custom-block"},ns={class:"jldocstring custom-block"},ps={class:"jldocstring custom-block"},rs={class:"jldocstring custom-block"},os={class:"jldocstring custom-block"},ds={class:"jldocstring custom-block"},cs={class:"jldocstring custom-block"},hs={class:"jldocstring custom-block"},us={class:"jldocstring custom-block"},bs={class:"jldocstring custom-block"},gs={class:"jldocstring custom-block"},ys={class:"jldocstring custom-block"},ms={class:"jldocstring custom-block"},ks={class:"jldocstring custom-block"},fs={class:"jldocstring custom-block"},Rs={class:"jldocstring custom-block"},Is={class:"jldocstring custom-block"},js={class:"jldocstring custom-block"},Ms={class:"jldocstring custom-block"},As={class:"jldocstring custom-block"},Ls={class:"jldocstring custom-block"},Es={class:"jldocstring custom-block"},vs={class:"jldocstring custom-block"},Ts={class:"jldocstring custom-block"},Cs={class:"jldocstring custom-block"},xs={class:"jldocstring custom-block"},Fs={class:"jldocstring custom-block"},Ps={class:"jldocstring custom-block"},Ds={class:"jldocstring custom-block"},Os={class:"jldocstring custom-block"},Bs={class:"jldocstring custom-block"},Gs={class:"jldocstring custom-block"},zs={class:"jldocstring custom-block"},ws={class:"jldocstring custom-block"},Ss={class:"jldocstring custom-block"},Ns={class:"jldocstring custom-block"},Vs={class:"jldocstring custom-block"},qs={class:"jldocstring custom-block"},Us={class:"jldocstring custom-block"},Qs={class:"jldocstring custom-block"},Ws={class:"jldocstring custom-block"},Hs={class:"jldocstring custom-block"},Zs={class:"jldocstring custom-block"},Js={class:"jldocstring custom-block"},Ks={class:"jldocstring custom-block"},$s={class:"jldocstring custom-block"},Xs={class:"jldocstring custom-block"},Ys={class:"jldocstring custom-block"},_s={class:"jldocstring custom-block"},ta={class:"jldocstring custom-block"},ea={class:"jldocstring custom-block"},sa={class:"jldocstring custom-block"},aa={class:"jldocstring custom-block"},ia={class:"jldocstring custom-block"},la={class:"jldocstring custom-block"},na={class:"jldocstring custom-block"},pa={class:"jldocstring custom-block"},ra={class:"jldocstring custom-block"},oa={class:"jldocstring custom-block"},da={class:"jldocstring custom-block"},ca={class:"jldocstring custom-block"},ha={class:"jldocstring custom-block"},ua={class:"jldocstring custom-block"},ba={class:"jldocstring custom-block"},ga={class:"jldocstring custom-block"},ya={class:"jldocstring custom-block"},ma={class:"jldocstring custom-block"},ka={class:"jldocstring custom-block"},fa={class:"jldocstring custom-block"},Ra={class:"jldocstring custom-block"},Ia={class:"jldocstring custom-block"},ja={class:"jldocstring custom-block"},Ma={class:"jldocstring custom-block"},Aa={class:"jldocstring custom-block"},La={class:"jldocstring custom-block"},Ea={class:"jldocstring custom-block"},va={class:"jldocstring custom-block"},Ta={class:"jldocstring custom-block"},Ca={class:"jldocstring custom-block"},xa={class:"jldocstring custom-block"},Fa={class:"jldocstring custom-block"},Pa={class:"jldocstring custom-block"},Da={class:"jldocstring custom-block"},Oa={class:"jldocstring custom-block"},Ba={class:"jldocstring custom-block"},Ga={class:"jldocstring custom-block"},za={class:"jldocstring custom-block"},wa={class:"jldocstring custom-block"},Sa={class:"jldocstring custom-block"},Na={class:"jldocstring custom-block"},Va={class:"jldocstring custom-block"},qa={class:"jldocstring custom-block"},Ua={class:"jldocstring custom-block"},Qa={class:"jldocstring custom-block"},Wa={class:"jldocstring custom-block"},Ha={class:"jldocstring custom-block"},Za={class:"jldocstring custom-block"},Ja={class:"jldocstring custom-block"},Ka={class:"jldocstring custom-block"},$a={class:"jldocstring custom-block"},Xa={class:"jldocstring custom-block"},Ya={class:"jldocstring custom-block"},_a={class:"jldocstring custom-block"},ti={class:"jldocstring custom-block"},ei={class:"jldocstring custom-block"},si={class:"jldocstring custom-block"},ai={class:"jldocstring custom-block"},ii={class:"jldocstring custom-block"},li={class:"jldocstring custom-block"},ni={class:"jldocstring custom-block"},pi={class:"jldocstring custom-block"},ri={class:"jldocstring custom-block"},oi={class:"jldocstring custom-block"},di={class:"jldocstring custom-block"},ci={class:"jldocstring custom-block"},hi={class:"jldocstring custom-block"},ui={class:"jldocstring custom-block"},bi={class:"jldocstring custom-block"},gi={class:"jldocstring custom-block"},yi={class:"jldocstring custom-block"},mi={class:"jldocstring custom-block"},ki={class:"jldocstring custom-block"},fi={class:"jldocstring custom-block"},Ri={class:"jldocstring custom-block"},Ii={class:"jldocstring custom-block"},ji={class:"jldocstring custom-block"},Mi={class:"jldocstring custom-block"},Ai={class:"jldocstring custom-block"},Li={class:"jldocstring custom-block"},Ei={class:"jldocstring custom-block"},vi={class:"jldocstring custom-block"},Ti={class:"jldocstring custom-block"},Ci={class:"jldocstring custom-block"},xi={class:"jldocstring custom-block"},Fi={class:"jldocstring custom-block"},Pi={class:"jldocstring custom-block"},Di={class:"jldocstring custom-block"},Oi={class:"jldocstring custom-block"},Bi={class:"jldocstring custom-block"},Gi={class:"jldocstring custom-block"},zi={class:"jldocstring custom-block"},wi={class:"jldocstring custom-block"},Si={class:"jldocstring custom-block"},Ni={class:"jldocstring custom-block"},Vi={class:"jldocstring custom-block"},qi={class:"jldocstring custom-block"},Ui={class:"jldocstring custom-block"},Qi={class:"jldocstring custom-block"},Wi={class:"jldocstring custom-block"},Hi={class:"jldocstring custom-block"},Zi={class:"jldocstring custom-block"},Ji={class:"jldocstring custom-block"},Ki={class:"jldocstring custom-block"},$i={class:"jldocstring custom-block"},Xi={class:"jldocstring custom-block"},Yi={class:"jldocstring custom-block"},_i={class:"jldocstring custom-block"},tl={class:"jldocstring custom-block"},el={class:"jldocstring custom-block"},sl={class:"jldocstring custom-block"},al={class:"jldocstring custom-block"},il={class:"jldocstring custom-block"},ll={class:"jldocstring custom-block"},nl={class:"jldocstring custom-block"},pl={class:"jldocstring custom-block"},rl={class:"jldocstring custom-block"},ol={class:"jldocstring custom-block"},dl={class:"jldocstring custom-block"},cl={class:"jldocstring custom-block"},hl={class:"jldocstring custom-block"},ul={class:"jldocstring custom-block"},bl={class:"jldocstring custom-block"},gl={class:"jldocstring custom-block"},yl={class:"jldocstring custom-block"},ml={class:"jldocstring custom-block"},kl={class:"jldocstring custom-block"},fl={class:"jldocstring custom-block"},Rl={class:"jldocstring custom-block"},Il={class:"jldocstring custom-block"},jl={class:"jldocstring custom-block"},Ml={class:"jldocstring custom-block"},Al={class:"jldocstring custom-block"},Ll={class:"jldocstring custom-block"},El={class:"jldocstring custom-block"},vl={class:"jldocstring custom-block"},Tl={class:"jldocstring custom-block"},Cl={class:"jldocstring custom-block"},xl={class:"jldocstring custom-block"},Fl={class:"jldocstring custom-block"},Pl={class:"jldocstring custom-block"},Dl={class:"jldocstring custom-block"},Ol={class:"jldocstring custom-block"},Bl={class:"jldocstring custom-block"},Gl={class:"jldocstring custom-block"},zl={class:"jldocstring custom-block"},wl={class:"jldocstring custom-block"},Sl={class:"jldocstring custom-block"},Nl={class:"jldocstring custom-block"},Vl={class:"jldocstring custom-block"},ql={class:"jldocstring custom-block"},Ul={class:"jldocstring custom-block"},Ql={class:"jldocstring custom-block"},Wl={class:"jldocstring custom-block"},Hl={class:"jldocstring custom-block"},Zl={class:"jldocstring custom-block"},Jl={class:"jldocstring custom-block"},Kl={class:"jldocstring custom-block"},$l={class:"jldocstring custom-block"},Xl={class:"jldocstring custom-block"},Yl={class:"jldocstring custom-block"},_l={class:"jldocstring custom-block"},tn={class:"jldocstring custom-block"},en={class:"jldocstring custom-block"},sn={class:"jldocstring custom-block"},an={class:"jldocstring custom-block"},ln={class:"jldocstring custom-block"},nn={class:"jldocstring custom-block"},pn={class:"jldocstring custom-block"},rn={class:"jldocstring custom-block"},on={class:"jldocstring custom-block"},dn={class:"jldocstring custom-block"},cn={class:"jldocstring custom-block"},hn={class:"jldocstring custom-block"},un={class:"jldocstring custom-block"},bn={class:"jldocstring custom-block"},gn={class:"jldocstring custom-block"},yn={class:"jldocstring custom-block"},mn={class:"jldocstring custom-block"},kn={class:"jldocstring custom-block"},fn={class:"jldocstring custom-block"},Rn={class:"jldocstring custom-block"},In={class:"jldocstring custom-block"},jn={class:"jldocstring custom-block"},Mn={class:"jldocstring custom-block"},An={class:"jldocstring custom-block"},Ln={class:"jldocstring custom-block"},En={class:"jldocstring custom-block"},vn={class:"jldocstring custom-block"},Tn={class:"jldocstring custom-block"},Cn={class:"jldocstring custom-block"},xn={class:"jldocstring custom-block"},Fn={class:"jldocstring custom-block"},Pn={class:"jldocstring custom-block"},Dn={class:"jldocstring custom-block"},On={class:"jldocstring custom-block"},Bn={class:"jldocstring custom-block"},Gn={class:"jldocstring custom-block"},zn={class:"jldocstring custom-block"},wn={class:"jldocstring custom-block"},Sn={class:"jldocstring custom-block"},Nn={class:"jldocstring custom-block"},Vn={class:"jldocstring custom-block"},qn={class:"jldocstring custom-block"},Un={class:"jldocstring custom-block"},Qn={class:"jldocstring custom-block"},Wn={class:"jldocstring custom-block"},Hn={class:"jldocstring custom-block"},Zn={class:"jldocstring custom-block"},Jn={class:"jldocstring custom-block"},Kn={class:"jldocstring custom-block"},$n={class:"jldocstring custom-block"},Xn={class:"jldocstring custom-block"},Yn={class:"jldocstring custom-block"},_n={class:"jldocstring custom-block"},tp={class:"jldocstring custom-block"},ep={class:"jldocstring custom-block"},sp={class:"jldocstring custom-block"},ap={class:"jldocstring custom-block"},ip={class:"jldocstring custom-block"},lp={class:"jldocstring custom-block"},np={class:"jldocstring custom-block"},pp={class:"jldocstring custom-block"},rp={class:"jldocstring custom-block"},op={class:"jldocstring custom-block"},dp={class:"jldocstring custom-block"},cp={class:"jldocstring custom-block"},hp={class:"jldocstring custom-block"},up={class:"jldocstring custom-block"},bp={class:"jldocstring custom-block"},gp={class:"jldocstring custom-block"},yp={class:"jldocstring custom-block"},mp={class:"jldocstring custom-block"},kp={class:"jldocstring custom-block"},fp={class:"jldocstring custom-block"},Rp={class:"jldocstring custom-block"},Ip={class:"jldocstring custom-block"},jp={class:"jldocstring custom-block"},Mp={class:"jldocstring custom-block"},Ap={class:"jldocstring custom-block"},Lp={class:"jldocstring custom-block"},Ep={class:"jldocstring custom-block"},vp={class:"jldocstring custom-block"},Tp={class:"jldocstring custom-block"},Cp={class:"jldocstring custom-block"},xp={class:"jldocstring custom-block"},Fp={class:"jldocstring custom-block"},Pp={class:"jldocstring custom-block"},Dp={class:"jldocstring custom-block"},Op={class:"jldocstring custom-block"},Bp={class:"jldocstring custom-block"},Gp={class:"jldocstring custom-block"},zp={class:"jldocstring custom-block"},wp={class:"jldocstring custom-block"},Sp={class:"jldocstring custom-block"},Np={class:"jldocstring custom-block"},Vp={class:"jldocstring custom-block"},qp={class:"jldocstring custom-block"},Up={class:"jldocstring custom-block"},Qp={class:"jldocstring custom-block"},Wp={class:"jldocstring custom-block"},Hp={class:"jldocstring custom-block"},Zp={class:"jldocstring custom-block"},Jp={class:"jldocstring custom-block"},Kp={class:"jldocstring custom-block"},$p={class:"jldocstring custom-block"},Xp={class:"jldocstring custom-block"},Yp={class:"jldocstring custom-block"},_p={class:"jldocstring custom-block"},tr={class:"jldocstring custom-block"},er={class:"jldocstring custom-block"},sr={class:"jldocstring custom-block"},ar={class:"jldocstring custom-block"},ir={class:"jldocstring custom-block"},lr={class:"jldocstring custom-block"},nr={class:"jldocstring custom-block"},pr={class:"jldocstring custom-block"},rr={class:"jldocstring custom-block"},or={class:"jldocstring custom-block"},dr={class:"jldocstring custom-block"},cr={class:"jldocstring custom-block"},hr={class:"jldocstring custom-block"},ur={class:"jldocstring custom-block"},br={class:"jldocstring custom-block"},gr={class:"jldocstring custom-block"},yr={class:"jldocstring custom-block"},mr={class:"jldocstring custom-block"},kr={class:"jldocstring custom-block"},fr={class:"jldocstring custom-block"},Rr={class:"jldocstring custom-block"},Ir={class:"jldocstring custom-block"},jr={class:"jldocstring custom-block"},Mr={class:"jldocstring custom-block"},Ar={class:"jldocstring custom-block"},Lr={class:"jldocstring custom-block"},Er={class:"jldocstring custom-block"},vr={class:"jldocstring custom-block"},Tr={class:"jldocstring custom-block"},Cr={class:"jldocstring custom-block"},xr={class:"jldocstring custom-block"},Fr={class:"jldocstring custom-block"},Pr={class:"jldocstring custom-block"},Dr={class:"jldocstring custom-block"},Or={class:"jldocstring custom-block"},Br={class:"jldocstring custom-block"},Gr={class:"jldocstring custom-block"},zr={class:"jldocstring custom-block"},wr={class:"jldocstring custom-block"},Sr={class:"jldocstring custom-block"},Nr={class:"jldocstring custom-block"},Vr={class:"jldocstring custom-block"},qr={class:"jldocstring custom-block"},Ur={class:"jldocstring custom-block"},Qr={class:"jldocstring custom-block"},Wr={class:"jldocstring custom-block"},Hr={class:"jldocstring custom-block"},Zr={class:"jldocstring custom-block"},Jr={class:"jldocstring custom-block"},Kr={class:"jldocstring custom-block"},$r={class:"jldocstring custom-block"},Xr={class:"jldocstring custom-block"},Yr={class:"jldocstring custom-block"},_r={class:"jldocstring custom-block"},to={class:"jldocstring custom-block"},eo={class:"jldocstring custom-block"},so={class:"jldocstring custom-block"},ao={class:"jldocstring custom-block"},io={class:"jldocstring custom-block"},lo={class:"jldocstring custom-block"},no={class:"jldocstring custom-block"},po={class:"jldocstring custom-block"},ro={class:"jldocstring custom-block"},oo={class:"jldocstring custom-block"},co={class:"jldocstring custom-block"},ho={class:"jldocstring custom-block"},uo={class:"jldocstring custom-block"},bo={class:"jldocstring custom-block"},go={class:"jldocstring custom-block"},yo={class:"jldocstring custom-block"},mo={class:"jldocstring custom-block"},ko={class:"jldocstring custom-block"},fo={class:"jldocstring custom-block"},Ro={class:"jldocstring custom-block"},Io={class:"jldocstring custom-block"},jo={class:"jldocstring custom-block"},Mo={class:"jldocstring custom-block"},Ao={class:"jldocstring custom-block"},Lo={class:"jldocstring custom-block"},Eo={class:"jldocstring custom-block"},vo={class:"jldocstring custom-block"},To={class:"jldocstring custom-block"},Co={class:"jldocstring custom-block"},xo={class:"jldocstring custom-block"},Fo={class:"jldocstring custom-block"},Po={class:"jldocstring custom-block"},Do={class:"jldocstring custom-block"},Oo={class:"jldocstring custom-block"},Bo={class:"jldocstring custom-block"},Go={class:"jldocstring custom-block"},zo={class:"jldocstring custom-block"},wo={class:"jldocstring custom-block"},So={class:"jldocstring custom-block"},No={class:"jldocstring custom-block"},Vo={class:"jldocstring custom-block"},qo={class:"jldocstring custom-block"},Uo={class:"jldocstring custom-block"},Qo={class:"jldocstring custom-block"},Wo={class:"jldocstring custom-block"},Ho={class:"jldocstring custom-block"},Zo={class:"jldocstring custom-block"},Jo={class:"jldocstring custom-block"},Ko={class:"jldocstring custom-block"},$o={class:"jldocstring custom-block"},Xo={class:"jldocstring custom-block"},Yo={class:"jldocstring custom-block"},_o={class:"jldocstring custom-block"},td={class:"jldocstring custom-block"},ed={class:"jldocstring custom-block"},sd={class:"jldocstring custom-block"},ad={class:"jldocstring custom-block"},id={class:"jldocstring custom-block"},ld={class:"jldocstring custom-block"},nd={class:"jldocstring custom-block"},pd={class:"jldocstring custom-block"},rd={class:"jldocstring custom-block"},od={class:"jldocstring custom-block"},dd={class:"jldocstring custom-block"},cd={class:"jldocstring custom-block"},hd={class:"jldocstring custom-block"},ud={class:"jldocstring custom-block"},bd={class:"jldocstring custom-block"},gd={class:"jldocstring custom-block"},yd={class:"jldocstring custom-block"},md={class:"jldocstring custom-block"},kd={class:"jldocstring custom-block"},fd={class:"jldocstring custom-block"},Rd={class:"jldocstring custom-block"},Id={class:"jldocstring custom-block"},jd={class:"jldocstring custom-block"},Md={class:"jldocstring custom-block"},Ad={class:"jldocstring custom-block"},Ld={class:"jldocstring custom-block"},Ed={class:"jldocstring custom-block"},vd={class:"jldocstring custom-block"},Td={class:"jldocstring custom-block"},Cd={class:"jldocstring custom-block"},xd={class:"jldocstring custom-block"},Fd={class:"jldocstring custom-block"},Pd={class:"jldocstring custom-block"},Dd={class:"jldocstring custom-block"},Od={class:"jldocstring custom-block"},Bd={class:"jldocstring custom-block"},Gd={class:"jldocstring custom-block"},zd={class:"jldocstring custom-block"},wd={class:"jldocstring custom-block"},Sd={class:"jldocstring custom-block"},Nd={class:"jldocstring custom-block"},Vd={class:"jldocstring custom-block"},qd={class:"jldocstring custom-block"},Ud={class:"jldocstring custom-block"},Qd={class:"jldocstring custom-block"},Wd={class:"jldocstring custom-block"},Hd={class:"jldocstring custom-block"},Zd={class:"jldocstring custom-block"},Jd={class:"jldocstring custom-block"},Kd={class:"jldocstring custom-block"},$d={class:"jldocstring custom-block"},Xd={class:"jldocstring custom-block"},Yd={class:"jldocstring custom-block"},_d={class:"jldocstring custom-block"},tc={class:"jldocstring custom-block"},ec={class:"jldocstring custom-block"},sc={class:"jldocstring custom-block"},ac={class:"jldocstring custom-block"},ic={class:"jldocstring custom-block"},lc={class:"jldocstring custom-block"},nc={class:"jldocstring custom-block"},pc={class:"jldocstring custom-block"},rc={class:"jldocstring custom-block"},oc={class:"jldocstring custom-block"},dc={class:"jldocstring custom-block"},cc={class:"jldocstring custom-block"},hc={class:"jldocstring custom-block"},uc={class:"jldocstring custom-block"},bc={class:"jldocstring custom-block"},gc={class:"jldocstring custom-block"},yc={class:"jldocstring custom-block"},mc={class:"jldocstring custom-block"},kc={class:"jldocstring custom-block"},fc={class:"jldocstring custom-block"},Rc={class:"jldocstring custom-block"},Ic={class:"jldocstring custom-block"},jc={class:"jldocstring custom-block"},Mc={class:"jldocstring custom-block"},Ac={class:"jldocstring custom-block"},Lc={class:"jldocstring custom-block"},Ec={class:"jldocstring custom-block"},vc={class:"jldocstring custom-block"},Tc={class:"jldocstring custom-block"},Cc={class:"jldocstring custom-block"},xc={class:"jldocstring custom-block"},Fc={class:"jldocstring custom-block"},Pc={class:"jldocstring custom-block"},Dc={class:"jldocstring custom-block"},Oc={class:"jldocstring custom-block"},Bc={class:"jldocstring custom-block"},Gc={class:"jldocstring custom-block"},zc={class:"jldocstring custom-block"},wc={class:"jldocstring custom-block"},Sc={class:"jldocstring custom-block"},Nc={class:"jldocstring custom-block"},Vc={class:"jldocstring custom-block"},qc={class:"jldocstring custom-block"},Uc={class:"jldocstring custom-block"},Qc={class:"jldocstring custom-block"},Wc={class:"jldocstring custom-block"},Hc={class:"jldocstring custom-block"},Zc={class:"jldocstring custom-block"},Jc={class:"jldocstring custom-block"},Kc={class:"jldocstring custom-block"},$c={class:"jldocstring custom-block"},Xc={class:"jldocstring custom-block"},Yc={class:"jldocstring custom-block"},_c={class:"jldocstring custom-block"},th={class:"jldocstring custom-block"},eh={class:"jldocstring custom-block"},sh={class:"jldocstring custom-block"},ah={class:"jldocstring custom-block"},ih={class:"jldocstring custom-block"},lh={class:"jldocstring custom-block"},nh={class:"jldocstring custom-block"},ph={class:"jldocstring custom-block"},rh={class:"jldocstring custom-block"},oh={class:"jldocstring custom-block"},dh={class:"jldocstring custom-block"},ch={class:"jldocstring custom-block"},hh={class:"jldocstring custom-block"},uh={class:"jldocstring custom-block"},bh={class:"jldocstring custom-block"},gh={class:"jldocstring custom-block"},yh={class:"jldocstring custom-block"},mh={class:"jldocstring custom-block"},kh={class:"jldocstring custom-block"},fh={class:"jldocstring custom-block"},Rh={class:"jldocstring custom-block"},Ih={class:"jldocstring custom-block"},jh={class:"jldocstring custom-block"},Mh={class:"jldocstring custom-block"},Ah={class:"jldocstring custom-block"},Lh={class:"jldocstring custom-block"},Eh={class:"jldocstring custom-block"},vh={class:"jldocstring custom-block"},Th={class:"jldocstring custom-block"},Ch={class:"jldocstring custom-block"},xh={class:"jldocstring custom-block"},Fh={class:"jldocstring custom-block"},Ph={class:"jldocstring custom-block"},Dh={class:"jldocstring custom-block"},Oh={class:"jldocstring custom-block"},Bh={class:"jldocstring custom-block"},Gh={class:"jldocstring custom-block"},zh={class:"jldocstring custom-block"},wh={class:"jldocstring custom-block"},Sh={class:"jldocstring custom-block"},Nh={class:"jldocstring custom-block"},Vh={class:"jldocstring custom-block"},qh={class:"jldocstring custom-block"},Uh={class:"jldocstring custom-block"},Qh={class:"jldocstring custom-block"},Wh={class:"jldocstring custom-block"},Hh={class:"jldocstring custom-block"},Zh={class:"jldocstring custom-block"},Jh={class:"jldocstring custom-block"},Kh={class:"jldocstring custom-block"},$h={class:"jldocstring custom-block"},Xh={class:"jldocstring custom-block"},Yh={class:"jldocstring custom-block"},_h={class:"jldocstring custom-block"},tu={class:"jldocstring custom-block"},eu={class:"jldocstring custom-block"},su={class:"jldocstring custom-block"},au={class:"jldocstring custom-block"},iu={class:"jldocstring custom-block"},lu={class:"jldocstring custom-block"},nu={class:"jldocstring custom-block"},pu={class:"jldocstring custom-block"},ru={class:"jldocstring custom-block"},ou={class:"jldocstring custom-block"},du={class:"jldocstring custom-block"},cu={class:"jldocstring custom-block"},hu={class:"jldocstring custom-block"},uu={class:"jldocstring custom-block"},bu={class:"jldocstring custom-block"},gu={class:"jldocstring custom-block"},yu={class:"jldocstring custom-block"},mu={class:"jldocstring custom-block"},ku={class:"jldocstring custom-block"},fu={class:"jldocstring custom-block"},Ru={class:"jldocstring custom-block"},Iu={class:"jldocstring custom-block"},ju={class:"jldocstring custom-block"},Mu={class:"jldocstring custom-block"},Au={class:"jldocstring custom-block"},Lu={class:"jldocstring custom-block"},Eu={class:"jldocstring custom-block"},vu={class:"jldocstring custom-block"},Tu={class:"jldocstring custom-block"},Cu={class:"jldocstring custom-block"},xu={class:"jldocstring custom-block"},Fu={class:"jldocstring custom-block"},Pu={class:"jldocstring custom-block"},Du={class:"jldocstring custom-block"},Ou={class:"jldocstring custom-block"},Bu={class:"jldocstring custom-block"},Gu={class:"jldocstring custom-block"},zu={class:"jldocstring custom-block"},wu={class:"jldocstring custom-block"},Su={class:"jldocstring custom-block"},Nu={class:"jldocstring custom-block"},Vu={class:"jldocstring custom-block"},qu={class:"jldocstring custom-block"},Uu={class:"jldocstring custom-block"},Qu={class:"jldocstring custom-block"},Wu={class:"jldocstring custom-block"},Hu={class:"jldocstring custom-block"},Zu={class:"jldocstring custom-block"},Ju={class:"jldocstring custom-block"},Ku={class:"jldocstring custom-block"},$u={class:"jldocstring custom-block"},Xu={class:"jldocstring custom-block"},Yu={class:"jldocstring custom-block"},_u={class:"jldocstring custom-block"},tb={class:"jldocstring custom-block"},eb={class:"jldocstring custom-block"},sb={class:"jldocstring custom-block"},ab={class:"jldocstring custom-block"},ib={class:"jldocstring custom-block"},lb={class:"jldocstring custom-block"},nb={class:"jldocstring custom-block"},pb={class:"jldocstring custom-block"},rb={class:"jldocstring custom-block"},ob={class:"jldocstring custom-block"},db={class:"jldocstring custom-block"},cb={class:"jldocstring custom-block"},hb={class:"jldocstring custom-block"},ub={class:"jldocstring custom-block"},bb={class:"jldocstring custom-block"},gb={class:"jldocstring custom-block"},yb={class:"jldocstring custom-block"},mb={class:"jldocstring custom-block"},kb={class:"jldocstring custom-block"},fb={class:"jldocstring custom-block"},Rb={class:"jldocstring custom-block"},Ib={class:"jldocstring custom-block"},jb={class:"jldocstring custom-block"},Mb={class:"jldocstring custom-block"},Ab={class:"jldocstring custom-block"},Lb={class:"jldocstring custom-block"},Eb={class:"jldocstring custom-block"},vb={class:"jldocstring custom-block"},Tb={class:"jldocstring custom-block"},Cb={class:"jldocstring custom-block"},xb={class:"jldocstring custom-block"},Fb={class:"jldocstring custom-block"},Pb={class:"jldocstring custom-block"},Db={class:"jldocstring custom-block"},Ob={class:"jldocstring custom-block"},Bb={class:"jldocstring custom-block"},Gb={class:"jldocstring custom-block"},zb={class:"jldocstring custom-block"},wb={class:"jldocstring custom-block"},Sb={class:"jldocstring custom-block"},Nb={class:"jldocstring custom-block"},Vb={class:"jldocstring custom-block"},qb={class:"jldocstring custom-block"},Ub={class:"jldocstring custom-block"},Qb={class:"jldocstring custom-block"},Wb={class:"jldocstring custom-block"},Hb={class:"jldocstring custom-block"},Zb={class:"jldocstring custom-block"},Jb={class:"jldocstring custom-block"},Kb={class:"jldocstring custom-block"},$b={class:"jldocstring custom-block"},Xb={class:"jldocstring custom-block"},Yb={class:"jldocstring custom-block"},_b={class:"jldocstring custom-block"},tg={class:"jldocstring custom-block"},eg={class:"jldocstring custom-block"},sg={class:"jldocstring custom-block"},ag={class:"jldocstring custom-block"},ig={class:"jldocstring custom-block"},lg={class:"jldocstring custom-block"},ng={class:"jldocstring custom-block"},pg={class:"jldocstring custom-block"},rg={class:"jldocstring custom-block"},og={class:"jldocstring custom-block"},dg={class:"jldocstring custom-block"},cg={class:"jldocstring custom-block"},hg={class:"jldocstring custom-block"},ug={class:"jldocstring custom-block"},bg={class:"jldocstring custom-block"},gg={class:"jldocstring custom-block"},yg={class:"jldocstring custom-block"},mg={class:"jldocstring custom-block"},kg={class:"jldocstring custom-block"},fg={class:"jldocstring custom-block"},Rg={class:"jldocstring custom-block"},Ig={class:"jldocstring custom-block"},jg={class:"jldocstring custom-block"},Mg={class:"jldocstring custom-block"},Ag={class:"jldocstring custom-block"},Lg={class:"jldocstring custom-block"},Eg={class:"jldocstring custom-block"},vg={class:"jldocstring custom-block"},Tg={class:"jldocstring custom-block"},Cg={class:"jldocstring custom-block"},xg={class:"jldocstring custom-block"},Fg={class:"jldocstring custom-block"},Pg={class:"jldocstring custom-block"},Dg={class:"jldocstring custom-block"},Og={class:"jldocstring custom-block"},Bg={class:"jldocstring custom-block"},Gg={class:"jldocstring custom-block"},zg={class:"jldocstring custom-block"},wg={class:"jldocstring custom-block"},Sg={class:"jldocstring custom-block"},Ng={class:"jldocstring custom-block"},Vg={class:"jldocstring custom-block"},qg={class:"jldocstring custom-block"},Ug={class:"jldocstring custom-block"},Qg={class:"jldocstring custom-block"},Wg={class:"jldocstring custom-block"},Hg={class:"jldocstring custom-block"},Zg={class:"jldocstring custom-block"},Jg={class:"jldocstring custom-block"},Kg={class:"jldocstring custom-block"},$g={class:"jldocstring custom-block"},Xg={class:"jldocstring custom-block"},Yg={class:"jldocstring custom-block"},_g={class:"jldocstring custom-block"},ty={class:"jldocstring custom-block"},ey={class:"jldocstring custom-block"},sy={class:"jldocstring custom-block"},ay={class:"jldocstring custom-block"},iy={class:"jldocstring custom-block"},ly={class:"jldocstring custom-block"},ny={class:"jldocstring custom-block"},py={class:"jldocstring custom-block"},ry={class:"jldocstring custom-block"},oy={class:"jldocstring custom-block"},dy={class:"jldocstring custom-block"},cy={class:"jldocstring custom-block"},hy={class:"jldocstring custom-block"},uy={class:"jldocstring custom-block"},by={class:"jldocstring custom-block"},gy={class:"jldocstring custom-block"},yy={class:"jldocstring custom-block"},my={class:"jldocstring custom-block"},ky={class:"jldocstring custom-block"},fy={class:"jldocstring custom-block"},Ry={class:"jldocstring custom-block"},Iy={class:"jldocstring custom-block"},jy={class:"jldocstring custom-block"},My={class:"jldocstring custom-block"},Ay={class:"jldocstring custom-block"},Ly={class:"jldocstring custom-block"},Ey={class:"jldocstring custom-block"},vy={class:"jldocstring custom-block"},Ty={class:"jldocstring custom-block"},Cy={class:"jldocstring custom-block"},xy={class:"jldocstring custom-block"},Fy={class:"jldocstring custom-block"},Py={class:"jldocstring custom-block"},Dy={class:"jldocstring custom-block"},Oy={class:"jldocstring custom-block"},By={class:"jldocstring custom-block"},Gy={class:"jldocstring custom-block"},zy={class:"jldocstring custom-block"},wy={class:"jldocstring custom-block"},Sy={class:"jldocstring custom-block"},Ny={class:"jldocstring custom-block"},Vy={class:"jldocstring custom-block"},qy={class:"jldocstring custom-block"},Uy={class:"jldocstring custom-block"},Qy={class:"jldocstring custom-block"},Wy={class:"jldocstring custom-block"},Hy={class:"jldocstring custom-block"},Zy={class:"jldocstring custom-block"},Jy={class:"jldocstring custom-block"},Ky={class:"jldocstring custom-block"},$y={class:"jldocstring custom-block"},Xy={class:"jldocstring custom-block"},Yy={class:"jldocstring custom-block"},_y={class:"jldocstring custom-block"},tm={class:"jldocstring custom-block"},em={class:"jldocstring custom-block"},sm={class:"jldocstring custom-block"},am={class:"jldocstring custom-block"},im={class:"jldocstring custom-block"},lm={class:"jldocstring custom-block"},nm={class:"jldocstring custom-block"},pm={class:"jldocstring custom-block"},rm={class:"jldocstring custom-block"},om={class:"jldocstring custom-block"},dm={class:"jldocstring custom-block"},cm={class:"jldocstring custom-block"},hm={class:"jldocstring custom-block"},um={class:"jldocstring custom-block"},bm={class:"jldocstring custom-block"},gm={class:"jldocstring custom-block"},ym={class:"jldocstring custom-block"},mm={class:"jldocstring custom-block"},km={class:"jldocstring custom-block"},fm={class:"jldocstring custom-block"},Rm={class:"jldocstring custom-block"},Im={class:"jldocstring custom-block"},jm={class:"jldocstring custom-block"},Mm={class:"jldocstring custom-block"},Am={class:"jldocstring custom-block"},Lm={class:"jldocstring custom-block"},Em={class:"jldocstring custom-block"},vm={class:"jldocstring custom-block"},Tm={class:"jldocstring custom-block"},Cm={class:"jldocstring custom-block"},xm={class:"jldocstring custom-block"},Fm={class:"jldocstring custom-block"},Pm={class:"jldocstring custom-block"},Dm={class:"jldocstring custom-block"},Om={class:"jldocstring custom-block"},Bm={class:"jldocstring custom-block"},Gm={class:"jldocstring custom-block"},zm={class:"jldocstring custom-block"},wm={class:"jldocstring custom-block"},Sm={class:"jldocstring custom-block"},Nm={class:"jldocstring custom-block"},Vm={class:"jldocstring custom-block"},qm={class:"jldocstring custom-block"},Um={class:"jldocstring custom-block"},Qm={class:"jldocstring custom-block"},Wm={class:"jldocstring custom-block"},Hm={class:"jldocstring custom-block"},Zm={class:"jldocstring custom-block"},Jm={class:"jldocstring custom-block"},Km={class:"jldocstring custom-block"},$m={class:"jldocstring custom-block"},Xm={class:"jldocstring custom-block"},Ym={class:"jldocstring custom-block"},_m={class:"jldocstring custom-block"},tk={class:"jldocstring custom-block"},ek={class:"jldocstring custom-block"},sk={class:"jldocstring custom-block"},ak={class:"jldocstring custom-block"},ik={class:"jldocstring custom-block"},lk={class:"jldocstring custom-block"},nk={class:"jldocstring custom-block"},pk={class:"jldocstring custom-block"},rk={class:"jldocstring custom-block"},ok={class:"jldocstring custom-block"},dk={class:"jldocstring custom-block"},ck={class:"jldocstring custom-block"},hk={class:"jldocstring custom-block"},uk={class:"jldocstring custom-block"},bk={class:"jldocstring custom-block"},gk={class:"jldocstring custom-block"},yk={class:"jldocstring custom-block"},mk={class:"jldocstring custom-block"},kk={class:"jldocstring custom-block"},fk={class:"jldocstring custom-block"},Rk={class:"jldocstring custom-block"},Ik={class:"jldocstring custom-block"},jk={class:"jldocstring custom-block"},Mk={class:"jldocstring custom-block"},Ak={class:"jldocstring custom-block"},Lk={class:"jldocstring custom-block"},Ek={class:"jldocstring custom-block"},vk={class:"jldocstring custom-block"};function Tk(Ck,t,xk,Fk,Pk,Dk){const a=r("Badge");return o(),p("div",null,[t[3183]||(t[3183]=e("h1",{id:"Higher-level-API",tabindex:"-1"},[s("Higher level API "),e("a",{class:"header-anchor",href:"#Higher-level-API","aria-label":'Permalink to "Higher level API {#Higher-level-API}"'},"​")],-1)),e("details",c,[e("summary",null,[t[0]||(t[0]=e("a",{id:"Core.Bool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Bool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Bool")],-1)),t[1]||(t[1]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=l('
julia
Bool(attr)

Returns the value stored in the given bool attribute.

source

',3))]),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Float64")],-1)),t[4]||(t[4]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[5]||(t[5]=l('
julia
Float64(attr)

Returns the value stored in the given floating point attribute, interpreting the value as double.

source

',3))]),e("details",u,[e("summary",null,[t[6]||(t[6]=e("a",{id:"Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Int64")],-1)),t[7]||(t[7]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[8]||(t[8]=l('
julia
Int64(attr)

Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.

source

',3))]),e("details",b,[e("summary",null,[t[9]||(t[9]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[10]||(t[10]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[11]||(t[11]=l('
julia
String(attr)

Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",g,[e("summary",null,[t[12]||(t[12]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[13]||(t[13]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[14]||(t[14]=l('
julia
String(ident)

Gets the string value of the identifier.

source

',3))]),e("details",y,[e("summary",null,[t[15]||(t[15]=e("a",{id:"Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.UInt64")],-1)),t[16]||(t[16]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[17]||(t[17]=l('
julia
UInt64(attr)

Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.

source

',3))]),e("details",m,[e("summary",null,[t[18]||(t[18]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[19]||(t[19]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[20]||(t[20]=l('
julia
AffineMap(ndims, nsymbols, affineExprs; context=context())

Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.

source

',3))]),e("details",k,[e("summary",null,[t[21]||(t[21]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[22]||(t[22]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l('
julia
AffineMap(ndims, nsymbols; context=context())

Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",f,[e("summary",null,[t[24]||(t[24]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[25]||(t[25]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[26]||(t[26]=l('
julia
AffineMap(attr)

Returns the affine map wrapped in the given affine map attribute.

source

',3))]),e("details",R,[e("summary",null,[t[27]||(t[27]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[28]||(t[28]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[29]||(t[29]=l('
julia
AffineMap(; context=context())

Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",I,[e("summary",null,[t[30]||(t[30]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[31]||(t[31]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[32]||(t[32]=l('
julia
Attribute(str; context=context())

Creates a string attribute in the given context containing the given string.

source

',3))]),e("details",j,[e("summary",null,[t[33]||(t[33]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Bool}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Bool}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[34]||(t[34]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[35]||(t[35]=l('
julia
Attribute(value; context=context())

Creates a bool attribute in the given context with the given value.

source

',3))]),e("details",M,[e("summary",null,[t[36]||(t[36]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Dict}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Dict}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[37]||(t[37]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[38]||(t[38]=l('
julia
Attribute(elements; context=context())

Creates a dictionary attribute containing the given list of elements in the provided context.

source

',3))]),e("details",A,[e("summary",null,[t[39]||(t[39]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[40]||(t[40]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[41]||(t[41]=l('
julia
Attribute(affineMap)

Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.

source

',3))]),e("details",L,[e("summary",null,[t[42]||(t[42]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[43]||(t[43]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l('
julia
Attribute(type, str)

Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.

source

',3))]),e("details",E,[e("summary",null,[t[45]||(t[45]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[46]||(t[46]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[47]||(t[47]=l('
julia
Attribute(type)

Creates a type attribute wrapping the given type in the same context as the type.

source

',3))]),e("details",v,[e("summary",null,[t[48]||(t[48]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat",href:"#Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[49]||(t[49]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[50]||(t[50]=l('
julia
Attribute(float; context=context(), location=Location(), check=false)

Creates a floating point attribute in the given context with the given double value and double-precision FP semantics. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",T,[e("summary",null,[t[51]||(t[51]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{T} where T<:Complex",href:"#Reactant.MLIR.IR.Attribute-Tuple{T} where T<:Complex"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[52]||(t[52]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[53]||(t[53]=l('
julia
Attribute(complex; context=context(), location=Location(), check=false)

Creates a complex attribute in the given context with the given complex value and double-precision FP semantics.

source

',3))]),e("details",C,[e("summary",null,[t[54]||(t[54]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[55]||(t[55]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l('
julia
Attribute(elements; context=context())

Creates an array element containing the given list of elements in the given context.

source

',3))]),e("details",x,[e("summary",null,[t[57]||(t[57]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{}",href:"#Reactant.MLIR.IR.Attribute-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[58]||(t[58]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[59]||(t[59]=l('
julia
Attribute()

Returns an empty attribute.

source

',3))]),e("details",F,[e("summary",null,[t[60]||(t[60]=e("a",{id:"Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer",href:"#Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[61]||(t[61]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l('
julia
Attribute(int)

Creates an integer attribute of the given type with the given integer value.

source

',3))]),e("details",P,[e("summary",null,[t[63]||(t[63]=e("a",{id:"Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}",href:"#Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Block")],-1)),t[64]||(t[64]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[65]||(t[65]=l('
julia
Block(args, locs)

Creates a new empty block with the given argument types and transfers ownership to the caller.

source

',3))]),e("details",D,[e("summary",null,[t[66]||(t[66]=e("a",{id:"Reactant.MLIR.IR.BlockIterator",href:"#Reactant.MLIR.IR.BlockIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BlockIterator")],-1)),t[67]||(t[67]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[68]||(t[68]=l('
julia
BlockIterator(region::Region)

Iterates over all blocks in the given region.

source

',3))]),e("details",O,[e("summary",null,[t[69]||(t[69]=e("a",{id:"Reactant.MLIR.IR.Context-Tuple{}",href:"#Reactant.MLIR.IR.Context-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Context")],-1)),t[70]||(t[70]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[71]||(t[71]=l('
julia
Context()

Creates an MLIR context and transfers its ownership to the caller.

source

',3))]),e("details",B,[e("summary",null,[t[72]||(t[72]=e("a",{id:"Reactant.MLIR.IR.ExecutionEngine",href:"#Reactant.MLIR.IR.ExecutionEngine"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ExecutionEngine")],-1)),t[73]||(t[73]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[74]||(t[74]=l('
julia
ExecutionEngine(op, optLevel, sharedlibs = [])

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

source

',3))]),e("details",G,[e("summary",null,[t[75]||(t[75]=e("a",{id:"Reactant.MLIR.IR.Identifier-Tuple{String}",href:"#Reactant.MLIR.IR.Identifier-Tuple{String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Identifier")],-1)),t[76]||(t[76]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[77]||(t[77]=l('
julia
Identifier(context, str)

Gets an identifier with the given string value.

source

',3))]),e("details",z,[e("summary",null,[t[78]||(t[78]=e("a",{id:"Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}",href:"#Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IntegerSet")],-1)),t[79]||(t[79]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[80]||(t[80]=l('
julia
IntegerSet(ndims, nsymbols, constraints, eqflags; context=context())

Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqflags is 1) or inequalities (eqflags is 0). Both constraints and eqflags need to be arrays of the same length.

source

',3))]),e("details",w,[e("summary",null,[t[81]||(t[81]=e("a",{id:"Reactant.MLIR.IR.IntegerSet-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.IntegerSet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IntegerSet")],-1)),t[82]||(t[82]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[83]||(t[83]=l('
julia
Integerset(ndims, nsymbols; context=context())

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

source

',3))]),e("details",S,[e("summary",null,[t[84]||(t[84]=e("a",{id:"Reactant.MLIR.IR.LogicalResult",href:"#Reactant.MLIR.IR.LogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.LogicalResult")],-1)),t[85]||(t[85]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[86]||(t[86]=l('
julia
LogicalResult

A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of LogicalResult must only be inspected using the associated functions.

source

',3))]),e("details",N,[e("summary",null,[t[87]||(t[87]=e("a",{id:"Reactant.MLIR.IR.Module",href:"#Reactant.MLIR.IR.Module"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Module")],-1)),t[88]||(t[88]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[89]||(t[89]=l('
julia
Module(location=Location())

Creates a new, empty module and transfers ownership to the caller.

source

',3))]),e("details",V,[e("summary",null,[t[90]||(t[90]=e("a",{id:"Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.NamedAttribute")],-1)),t[91]||(t[91]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[92]||(t[92]=l('
julia
NamedAttribute(name, attr)

Associates an attribute with the name. Takes ownership of neither.

source

',3))]),e("details",q,[e("summary",null,[t[93]||(t[93]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[94]||(t[94]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[95]||(t[95]=l('
julia
OpPassManager(opPassManager, operationName)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.

source

',3))]),e("details",U,[e("summary",null,[t[96]||(t[96]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager, Any}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[97]||(t[97]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[98]||(t[98]=l('
julia
OpPassManager(passManager, operationName)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

source

',3))]),e("details",Q,[e("summary",null,[t[99]||(t[99]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[100]||(t[100]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[101]||(t[101]=l('
julia
OpPassManager(passManager)

Cast a top-level PassManager to a generic OpPassManager.

source

',3))]),e("details",W,[e("summary",null,[t[102]||(t[102]=e("a",{id:"Reactant.MLIR.IR.Operation-Tuple{Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.Operation-Tuple{Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Operation")],-1)),t[103]||(t[103]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[104]||(t[104]=l('
julia
Operation(module)

Views the module as a generic operation.

source

',3))]),e("details",H,[e("summary",null,[t[105]||(t[105]=e("a",{id:"Reactant.MLIR.IR.OperationIterator",href:"#Reactant.MLIR.IR.OperationIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OperationIterator")],-1)),t[106]||(t[106]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[107]||(t[107]=l('
julia
OperationIterator(block::Block)

Iterates over all operations for the given block.

source

',3))]),e("details",Z,[e("summary",null,[t[108]||(t[108]=e("a",{id:"Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PassManager")],-1)),t[109]||(t[109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[110]||(t[110]=l('
julia
PassManager(anchorOp; context=context())

Create a new top-level PassManager anchored on anchorOp.

source

',3))]),e("details",J,[e("summary",null,[t[111]||(t[111]=e("a",{id:"Reactant.MLIR.IR.PassManager-Tuple{}",href:"#Reactant.MLIR.IR.PassManager-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PassManager")],-1)),t[112]||(t[112]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[113]||(t[113]=l('
julia
PassManager(; context=context())

Create a new top-level PassManager.

source

',3))]),e("details",K,[e("summary",null,[t[114]||(t[114]=e("a",{id:"Reactant.MLIR.IR.Region-Tuple{}",href:"#Reactant.MLIR.IR.Region-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Region")],-1)),t[115]||(t[115]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[116]||(t[116]=l('
julia
Region()

Creates a new empty region and transfers ownership to the caller.

source

',3))]),e("details",$,[e("summary",null,[t[117]||(t[117]=e("a",{id:"Reactant.MLIR.IR.RegionIterator",href:"#Reactant.MLIR.IR.RegionIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.RegionIterator")],-1)),t[118]||(t[118]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[119]||(t[119]=l('
julia
RegionIterator(::Operation)

Iterates over all sub-regions for the given operation.

source

',3))]),e("details",X,[e("summary",null,[t[120]||(t[120]=e("a",{id:"Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolTable")],-1)),t[121]||(t[121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[122]||(t[122]=l('
julia
mlirSymbolTableCreate(operation)

Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.

source

',3))]),e("details",Y,[e("summary",null,[t[123]||(t[123]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[124]||(t[124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[125]||(t[125]=l('
julia
Type(attr)

Returns the type stored in the given type attribute.

source

',3))]),e("details",_,[e("summary",null,[t[126]||(t[126]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[127]||(t[127]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[128]||(t[128]=l('
julia
Type(T::Core.Type{<:Integer}; context=context()

Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",tt,[e("summary",null,[t[129]||(t[129]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[130]||(t[130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[131]||(t[131]=l('
julia
Type(T::Core.Type{<:Signed}; context=context()

Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",et,[e("summary",null,[t[132]||(t[132]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[133]||(t[133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[134]||(t[134]=l('
julia
Type(T::Core.Type{<:Unsigned}; context=context()

Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",st,[e("summary",null,[t[135]||(t[135]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Bool}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[136]||(t[136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[137]||(t[137]=l('
julia
Type(T::Core.Type{Bool}; context=context()

Creates a 1-bit signless integer type in the context. The type is owned by the context.

source

',3))]),e("details",at,[e("summary",null,[t[138]||(t[138]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float16}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float16}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[139]||(t[139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[140]||(t[140]=l('
julia
Type(::Core.Type{Float16}; context=context())

Creates an f16 type in the given context. The type is owned by the context.

source

',3))]),e("details",it,[e("summary",null,[t[141]||(t[141]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float32}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float32}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[142]||(t[142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[143]||(t[143]=l('
julia
Type(Core.Type{Float32}; context=context())

Creates an f32 type in the given context. The type is owned by the context.

source

',3))]),e("details",lt,[e("summary",null,[t[144]||(t[144]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float64}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float64}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[145]||(t[145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[146]||(t[146]=l('
julia
Type(Core.Type{Float64}; context=context())

Creates a f64 type in the given context. The type is owned by the context.

source

',3))]),e("details",nt,[e("summary",null,[t[147]||(t[147]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[148]||(t[148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[149]||(t[149]=l('
julia
Type(::Core.Type{Nothing}; context=context())

Creates a None type in the given context. The type is owned by the context.

source

',3))]),e("details",pt,[e("summary",null,[t[150]||(t[150]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}",href:"#Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[151]||(t[151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[152]||(t[152]=l(`
julia
Type(elements; context=context())
+Type(::Core.Type{<:Tuple{T...}}; context=context())

Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.

source

`,3))]),e("details",rt,[e("summary",null,[t[153]||(t[153]=e("a",{id:"Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T",href:"#Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[154]||(t[154]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[155]||(t[155]=l('
julia
Type(Complex{T}) where {T}

Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",ot,[e("summary",null,[t[156]||(t[156]=e("a",{id:"Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:*")],-1)),t[157]||(t[157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[158]||(t[158]=l('
julia
*(lhs, rhs)

Creates an affine mul expression with 'lhs' and 'rhs'.

source

',3))]),e("details",dt,[e("summary",null,[t[159]||(t[159]=e("a",{id:"Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:+")],-1)),t[160]||(t[160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[161]||(t[161]=l('
julia
+(lhs, rhs)

Creates an affine add expression with 'lhs' and 'rhs'.

source

',3))]),e("details",ct,[e("summary",null,[t[162]||(t[162]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[163]||(t[163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[164]||(t[164]=l('
julia
==(a, b)

Returns true if the two affine expressions are equal.

source

',3))]),e("details",ht,[e("summary",null,[t[165]||(t[165]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.AffineMap, Reactant.MLIR.IR.AffineMap}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.AffineMap, Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[166]||(t[166]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[167]||(t[167]=l('
julia
==(a, b)

Checks if two affine maps are equal.

source

',3))]),e("details",ut,[e("summary",null,[t[168]||(t[168]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[169]||(t[169]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[170]||(t[170]=l('
julia
==(a1, a2)

Checks if two attributes are equal.

source

',3))]),e("details",bt,[e("summary",null,[t[171]||(t[171]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[172]||(t[172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[173]||(t[173]=l('
julia
==(block, other)

Checks whether two blocks handles point to the same block. This does not perform deep comparison.

source

',3))]),e("details",gt,[e("summary",null,[t[174]||(t[174]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[175]||(t[175]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[176]||(t[176]=l('
julia
==(ident, other)

Checks whether two identifiers are the same.

source

',3))]),e("details",yt,[e("summary",null,[t[177]||(t[177]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[178]||(t[178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[179]||(t[179]=l('
julia
==(s1, s2)

Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

source

',3))]),e("details",mt,[e("summary",null,[t[180]||(t[180]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[181]||(t[181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[182]||(t[182]=l('
julia
==(region, other)

Checks whether two region handles point to the same region. This does not perform deep comparison.

source

',3))]),e("details",kt,[e("summary",null,[t[183]||(t[183]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[184]||(t[184]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l('
julia
==(t1, t2)

Checks if two types are equal.

source

',3))]),e("details",ft,[e("summary",null,[t[186]||(t[186]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[187]||(t[187]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[188]||(t[188]=l('
julia
==(typeID1, typeID2)

Checks if two type ids are equal.

source

',3))]),e("details",Rt,[e("summary",null,[t[189]||(t[189]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[190]||(t[190]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[191]||(t[191]=l('
julia
==(value1, value2)

Returns 1 if two values are equal, 0 otherwise.

source

',3))]),e("details",It,[e("summary",null,[t[192]||(t[192]=e("a",{id:"Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.cld")],-1)),t[193]||(t[193]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[194]||(t[194]=l('
julia
cld(lhs, rhs)

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

source

',3))]),e("details",jt,[e("summary",null,[t[195]||(t[195]=e("a",{id:"Base.copy-Tuple{Reactant.MLIR.IR.Operation}",href:"#Base.copy-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),t[196]||(t[196]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[197]||(t[197]=l('
julia
copy(op)

Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.

source

',3))]),e("details",Mt,[e("summary",null,[t[198]||(t[198]=e("a",{id:"Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.div")],-1)),t[199]||(t[199]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[200]||(t[200]=l(`
julia
div(lhs, rhs)
+÷(lhs, rhs)
+fld(lhs, rhs)

Creates an affine floordiv expression with 'lhs' and 'rhs'.

source

`,3))]),e("details",At,[e("summary",null,[t[201]||(t[201]=e("a",{id:"Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}",href:"#Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.fill")],-1)),t[202]||(t[202]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[203]||(t[203]=l('
julia
fill(attr, shapedType)

Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).

source

',3))]),e("details",Lt,[e("summary",null,[t[204]||(t[204]=e("a",{id:"Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.gcd")],-1)),t[205]||(t[205]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[206]||(t[206]=l('
julia
gcd(affineExpr)

Returns the greatest known integral divisor of this affine expression. The result is always positive.

source

',3))]),e("details",Et,[e("summary",null,[t[207]||(t[207]=e("a",{id:"Base.hash-Tuple{Reactant.MLIR.IR.TypeID}",href:"#Base.hash-Tuple{Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.hash")],-1)),t[208]||(t[208]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[209]||(t[209]=l('
julia
hash(typeID)

Returns the hash value of the type id.

source

',3))]),e("details",vt,[e("summary",null,[t[210]||(t[210]=e("a",{id:"Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}",href:"#Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.insert!")],-1)),t[211]||(t[211]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[212]||(t[212]=l('
julia
insert!(block, index, operation)

Takes an operation owned by the caller and inserts it as index to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.

source

',3))]),e("details",Tt,[e("summary",null,[t[213]||(t[213]=e("a",{id:"Base.insert!-Tuple{Reactant.MLIR.IR.Region, Any, Reactant.MLIR.IR.Block}",href:"#Base.insert!-Tuple{Reactant.MLIR.IR.Region, Any, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.insert!")],-1)),t[214]||(t[214]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[215]||(t[215]=l('
julia
insert!(region, index, block)

Takes a block owned by the caller and inserts it at index to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.

source

',3))]),e("details",Ct,[e("summary",null,[t[216]||(t[216]=e("a",{id:"Base.isempty-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.isempty-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.isempty")],-1)),t[217]||(t[217]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[218]||(t[218]=l('
julia
isempty(affineMap)

Checks whether the given affine map is an empty affine map.

source

',3))]),e("details",xt,[e("summary",null,[t[219]||(t[219]=e("a",{id:"Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.isperm")],-1)),t[220]||(t[220]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[221]||(t[221]=l('
julia
isperm(affineMap)

Checks whether the given affine map represents a symbol-less permutation map.

source

',3))]),e("details",Ft,[e("summary",null,[t[222]||(t[222]=e("a",{id:"Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.mod")],-1)),t[223]||(t[223]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l('
julia
mod(lhs, rhs)

Creates an affine mod expression with 'lhs' and 'rhs'.

source

',3))]),e("details",Pt,[e("summary",null,[t[225]||(t[225]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[226]||(t[226]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[227]||(t[227]=l('
julia
ndims(affineMap)

Returns the number of dimensions of the given affine map.

source

',3))]),e("details",Dt,[e("summary",null,[t[228]||(t[228]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[229]||(t[229]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[230]||(t[230]=l('
julia
ndims(set)

Returns the number of dimensions in the given set.

source

',3))]),e("details",Ot,[e("summary",null,[t[231]||(t[231]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.Type}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[232]||(t[232]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[233]||(t[233]=l('
julia
ndims(type)

Returns the rank of the given ranked shaped type.

source

',3))]),e("details",Bt,[e("summary",null,[t[234]||(t[234]=e("a",{id:"Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}",href:"#Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[235]||(t[235]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[236]||(t[236]=l('
julia
parse(passManager, pipeline)

Parse a textual MLIR pass pipeline and add it to the provided OpPassManager.

source

',3))]),e("details",Gt,[e("summary",null,[t[237]||(t[237]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Attribute}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Attribute}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[238]||(t[238]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[239]||(t[239]=l('
julia
parse(::Core.Type{Attribute}, str; context=context())

Parses an attribute. The attribute is owned by the context.

source

',3))]),e("details",zt,[e("summary",null,[t[240]||(t[240]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[241]||(t[241]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[242]||(t[242]=l('
julia
parse(::Type{Module}, module; context=context())

Parses a module from the string and transfers ownership to the caller.

source

',3))]),e("details",wt,[e("summary",null,[t[243]||(t[243]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[244]||(t[244]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[245]||(t[245]=l('
julia
parse(type; context=context())

Parses a type. The type is owned by the context.

source

',3))]),e("details",St,[e("summary",null,[t[246]||(t[246]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[247]||(t[247]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[248]||(t[248]=l('
julia
push!(block, operation)

Takes an operation owned by the caller and appends it to the block.

source

',3))]),e("details",Nt,[e("summary",null,[t[249]||(t[249]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[250]||(t[250]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[251]||(t[251]=l('
julia
push!(region, block)

Takes a block owned by the caller and appends it to the given region.

source

',3))]),e("details",Vt,[e("summary",null,[t[252]||(t[252]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[253]||(t[253]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[254]||(t[254]=l('
julia
push!(symboltable, operation)

Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.

source

',3))]),e("details",qt,[e("summary",null,[t[255]||(t[255]=e("a",{id:"Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}",href:"#Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}"},[e("span",{class:"jlbinding"},"Base.replace")],-1)),t[256]||(t[256]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[257]||(t[257]=l('
julia
mlirAffineMapReplace(affineMap, expression => replacement, numResultDims, numResultSyms)

Apply AffineExpr::replace(map) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.

source

',3))]),e("details",Ut,[e("summary",null,[t[258]||(t[258]=e("a",{id:"Base.replace-Tuple{Reactant.MLIR.IR.IntegerSet, Any, Any}",href:"#Base.replace-Tuple{Reactant.MLIR.IR.IntegerSet, Any, Any}"},[e("span",{class:"jlbinding"},"Base.replace")],-1)),t[259]||(t[259]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[260]||(t[260]=l('
julia
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

source

',3))]),e("details",Qt,[e("summary",null,[t[261]||(t[261]=e("a",{id:"Base.reshape-Tuple{Reactant.MLIR.IR.Attribute, Any}",href:"#Base.reshape-Tuple{Reactant.MLIR.IR.Attribute, Any}"},[e("span",{class:"jlbinding"},"Base.reshape")],-1)),t[262]||(t[262]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[263]||(t[263]=l('
julia
Base.reshape(attr, shapedType)

Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.

source

',3))]),e("details",Wt,[e("summary",null,[t[264]||(t[264]=e("a",{id:"Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),t[265]||(t[265]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[266]||(t[266]=l('
julia
size(type, i)

Returns the i-th dimension of the given ranked shaped type.

source

',3))]),e("details",Ht,[e("summary",null,[t[267]||(t[267]=e("a",{id:"Base.write-Tuple{String, Reactant.MLIR.IR.ExecutionEngine}",href:"#Base.write-Tuple{String, Reactant.MLIR.IR.ExecutionEngine}"},[e("span",{class:"jlbinding"},"Base.write")],-1)),t[268]||(t[268]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[269]||(t[269]=l('
julia
write(fileName, jit)

Dump as an object in fileName.

source

',3))]),e("details",Zt,[e("summary",null,[t[270]||(t[270]=e("a",{id:"Reactant.MLIR.IR.AffineDimensionExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.AffineDimensionExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineDimensionExpr")],-1)),t[271]||(t[271]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[272]||(t[272]=l('
julia
AffineDimensionExpr(position; context=context)

Creates an affine dimension expression with 'position' in the context.

source

',3))]),e("details",Jt,[e("summary",null,[t[273]||(t[273]=e("a",{id:"Reactant.MLIR.IR.BFloat16Type-Tuple{}",href:"#Reactant.MLIR.IR.BFloat16Type-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BFloat16Type")],-1)),t[274]||(t[274]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[275]||(t[275]=e("p",null,"BFloat16Type(; context=context())",-1)),t[276]||(t[276]=e("p",null,"Creates a bf16 type in the given context. The type is owned by the context.",-1)),t[277]||(t[277]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/IR/Type.jl#L157-L161",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Kt,[e("summary",null,[t[278]||(t[278]=e("a",{id:"Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantAffineMap")],-1)),t[279]||(t[279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[280]||(t[280]=l('
julia
ConstantAffineMap(val; context=context())

Creates a single constant result affine map in the context. The affine map is owned by the context.

source

',3))]),e("details",$t,[e("summary",null,[t[281]||(t[281]=e("a",{id:"Reactant.MLIR.IR.ConstantExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantExpr")],-1)),t[282]||(t[282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[283]||(t[283]=l('
julia
ConstantExpr(constant::Int; context=context())

Creates an affine constant expression with 'constant' in the context.

source

',3))]),e("details",Xt,[e("summary",null,[t[284]||(t[284]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[285]||(t[285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[286]||(t[286]=l('
julia
DenseElementsAttribute(array::AbstractArray)

Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.

source

',3))]),e("details",Yt,[e("summary",null,[t[287]||(t[287]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[288]||(t[288]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[289]||(t[289]=l('
julia
DenseElementsAttribute(array::AbstractArray{String})

Creates a dense elements attribute with the given shaped type from string elements.

source

',3))]),e("details",_t,[e("summary",null,[t[290]||(t[290]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[291]||(t[291]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[292]||(t[292]=l('
julia
DenseElementsAttribute(shapedType, elements)

Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.

source

',3))]),e("details",te,[e("summary",null,[t[293]||(t[293]=e("a",{id:"Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}",href:"#Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FlatSymbolRefAttribute")],-1)),t[294]||(t[294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[295]||(t[295]=l('
julia
FlatSymbolRefAttribute(ctx, symbol)

Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.

source

',3))]),e("details",ee,[e("summary",null,[t[296]||(t[296]=e("a",{id:"Reactant.MLIR.IR.Float8E4M3FN-Tuple{}",href:"#Reactant.MLIR.IR.Float8E4M3FN-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E4M3FN")],-1)),t[297]||(t[297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[298]||(t[298]=l('
julia
Float8E4M3FN(; context=context())

Creates an f8E4M3FN type in the given context. The type is owned by the context.

source

',3))]),e("details",se,[e("summary",null,[t[299]||(t[299]=e("a",{id:"Reactant.MLIR.IR.Float8E5M2-Tuple{}",href:"#Reactant.MLIR.IR.Float8E5M2-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E5M2")],-1)),t[300]||(t[300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[301]||(t[301]=l('
julia
Float8E5M2(; context=context())

Creates an f8E5M2 type in the given context. The type is owned by the context.

source

',3))]),e("details",ae,[e("summary",null,[t[302]||(t[302]=e("a",{id:"Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FunctionType")],-1)),t[303]||(t[303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[304]||(t[304]=l('
julia
FunctionType(inputs, results; context=context())

Creates a function type, mapping a list of input types to result types.

source

',3))]),e("details",ie,[e("summary",null,[t[305]||(t[305]=e("a",{id:"Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IdentityAffineMap")],-1)),t[306]||(t[306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[307]||(t[307]=l('
julia
IdentityAffineMap(ndims; context=context())

Creates an affine map with 'ndims' identity in the context. The affine map is owned by the context.

source

',3))]),e("details",le,[e("summary",null,[t[308]||(t[308]=e("a",{id:"Reactant.MLIR.IR.IndexType-Tuple{}",href:"#Reactant.MLIR.IR.IndexType-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IndexType")],-1)),t[309]||(t[309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[310]||(t[310]=l('
julia
IndexType(; context=context())

Creates an index type in the given context. The type is owned by the context.

source

',3))]),e("details",ne,[e("summary",null,[t[311]||(t[311]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[312]||(t[312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[313]||(t[313]=l('
julia
MemRefType(elementType, rank, shape, layout, memorySpace; location=Location(), check=false)

Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",pe,[e("summary",null,[t[314]||(t[314]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[315]||(t[315]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[316]||(t[316]=l('
julia
MemRefType(elementType, rank, shape, memorySpace; location=Location(), check=false)

Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",re,[e("summary",null,[t[317]||(t[317]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[318]||(t[318]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[319]||(t[319]=l('
julia
MemRefType(elementType, memorySpace)

Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",oe,[e("summary",null,[t[320]||(t[320]=e("a",{id:"Reactant.MLIR.IR.MinorIdentityAffineMap-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.MinorIdentityAffineMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MinorIdentityAffineMap")],-1)),t[321]||(t[321]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[322]||(t[322]=l('
julia
MinorIdentityAffineMap(ndims, nresults; context=context())

Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",de,[e("summary",null,[t[323]||(t[323]=e("a",{id:"Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueAttribute")],-1)),t[324]||(t[324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[325]||(t[325]=l('
julia
OpaqueAttribute(dialectNamespace, dataLength, data, type; context=context())

Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",ce,[e("summary",null,[t[326]||(t[326]=e("a",{id:"Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueType")],-1)),t[327]||(t[327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[328]||(t[328]=l('
julia
OpaqueType(dialectNamespace, typeData; context=context())

Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",he,[e("summary",null,[t[329]||(t[329]=e("a",{id:"Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PermutationAffineMap")],-1)),t[330]||(t[330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[331]||(t[331]=l('
julia
PermutationAffineMap(permutation; context=context())

Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0] is a valid permutation. [2,0] or [1,1,2] is an invalid invalid permutation). The affine map is owned by the context.

source

',3))]),e("details",ue,[e("summary",null,[t[332]||(t[332]=e("a",{id:"Reactant.MLIR.IR.SymbolExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.SymbolExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolExpr")],-1)),t[333]||(t[333]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[334]||(t[334]=l('
julia
SymbolExpr(position; context=context())

Creates an affine symbol expression with 'position' in the context.

source

',3))]),e("details",be,[e("summary",null,[t[335]||(t[335]=e("a",{id:"Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolRefAttribute")],-1)),t[336]||(t[336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[337]||(t[337]=l('
julia
SymbolRefAttribute(symbol, references; context=context())

Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.

source

',3))]),e("details",ge,[e("summary",null,[t[338]||(t[338]=e("a",{id:"Reactant.MLIR.IR.TensorType",href:"#Reactant.MLIR.IR.TensorType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.TensorType")],-1)),t[339]||(t[339]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[340]||(t[340]=l('
julia
TensorType(shape, elementType, encoding=Attribute(); location=Location(), check=false)

Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull to this parameter. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",ye,[e("summary",null,[t[341]||(t[341]=e("a",{id:"Reactant.MLIR.IR.TensorType-Tuple{Any}",href:"#Reactant.MLIR.IR.TensorType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.TensorType")],-1)),t[342]||(t[342]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[343]||(t[343]=l('
julia
TensorType(elementType)

Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",me,[e("summary",null,[t[344]||(t[344]=e("a",{id:"Reactant.MLIR.IR.UnitAttribute-Tuple{}",href:"#Reactant.MLIR.IR.UnitAttribute-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.UnitAttribute")],-1)),t[345]||(t[345]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[346]||(t[346]=l('
julia
UnitAttribute(; context=context())

Creates a unit attribute in the given context.

source

',3))]),e("details",ke,[e("summary",null,[t[347]||(t[347]=e("a",{id:"Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.VectorType")],-1)),t[348]||(t[348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[349]||(t[349]=l('
julia
VectorType(rank, shape, elementType; location=Location(), check=false)

Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",fe,[e("summary",null,[t[350]||(t[350]=e("a",{id:"Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.add_owned_pass!")],-1)),t[351]||(t[351]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[352]||(t[352]=l('
julia
add_owned_pass!(opPassManager, pass)

Add a pass and transfer ownership to the provided OpPassManager. If the pass is not a generic operation pass or matching the type of the provided OpPassManager, a new OpPassManager is implicitly nested under the provided OpPassManager.

source

',3))]),e("details",Re,[e("summary",null,[t[353]||(t[353]=e("a",{id:"Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.PassManager, Any}",href:"#Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.PassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.add_owned_pass!")],-1)),t[354]||(t[354]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[355]||(t[355]=l('
julia
add_owned_pass!(passManager, pass)

Add a pass and transfer ownership to the provided top-level PassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

source

',3))]),e("details",Ie,[e("summary",null,[t[356]||(t[356]=e("a",{id:"Reactant.MLIR.IR.add_pipeline!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.add_pipeline!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.add_pipeline!")],-1)),t[357]||(t[357]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[358]||(t[358]=l('
julia
add_pipeline!(passManager, pipelineElements, callback, userData)

Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

',3))]),e("details",je,[e("summary",null,[t[359]||(t[359]=e("a",{id:"Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.affinemap")],-1)),t[360]||(t[360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[361]||(t[361]=l('
julia
affinemap(type)

Returns the affine map of the given MemRef type.

source

',3))]),e("details",Me,[e("summary",null,[t[362]||(t[362]=e("a",{id:"Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.argument")],-1)),t[363]||(t[363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[364]||(t[364]=l('
julia
argument(block, i)

Returns i-th argument of the block.

source

',3))]),e("details",Ae,[e("summary",null,[t[365]||(t[365]=e("a",{id:"Reactant.MLIR.IR.attr!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}",href:"#Reactant.MLIR.IR.attr!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr!")],-1)),t[366]||(t[366]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[367]||(t[367]=l('
julia
attr!(op, name, attr)

Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise.

source

',3))]),e("details",Le,[e("summary",null,[t[368]||(t[368]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[369]||(t[369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[370]||(t[370]=l('
julia
attr(op, name)

Returns an attribute attached to the operation given its name.

source

',3))]),e("details",Ee,[e("summary",null,[t[371]||(t[371]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[372]||(t[372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[373]||(t[373]=l('
julia
attr(op, i)

Return i-th attribute of the operation.

source

',3))]),e("details",ve,[e("summary",null,[t[374]||(t[374]=e("a",{id:"Reactant.MLIR.IR.bitwidth-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.bitwidth-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.bitwidth")],-1)),t[375]||(t[375]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[376]||(t[376]=l('
julia
bitwidth(type)

Returns the bitwidth of an integer type.

source

',3))]),e("details",Te,[e("summary",null,[t[377]||(t[377]=e("a",{id:"Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block")],-1)),t[378]||(t[378]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[379]||(t[379]=l('
julia
block(op)

Gets the block that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",Ce,[e("summary",null,[t[380]||(t[380]=e("a",{id:"Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_arg_num")],-1)),t[381]||(t[381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[382]||(t[382]=l('
julia
block_arg_num(value)

Returns the position of the value in the argument list of its block.

source

',3))]),e("details",xe,[e("summary",null,[t[383]||(t[383]=e("a",{id:"Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_owner")],-1)),t[384]||(t[384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[385]||(t[385]=l('
julia
block_owner(value)

Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.

source

',3))]),e("details",Fe,[e("summary",null,[t[386]||(t[386]=e("a",{id:"Reactant.MLIR.IR.body-Tuple{Any}",href:"#Reactant.MLIR.IR.body-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.body")],-1)),t[387]||(t[387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[388]||(t[388]=l('
julia
body(module)

Gets the body of the module, i.e. the only block it contains.

source

',3))]),e("details",Pe,[e("summary",null,[t[389]||(t[389]=e("a",{id:"Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.compose")],-1)),t[390]||(t[390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[391]||(t[391]=l('
julia
compose(affineExpr, affineMap)

Composes the given map with the given expression.

source

',3))]),e("details",De,[e("summary",null,[t[392]||(t[392]=e("a",{id:"Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.constraint")],-1)),t[393]||(t[393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[394]||(t[394]=l('
julia
mlirIntegerSetGetConstraint(set, i)

Returns i-th constraint of the set.

source

',3))]),e("details",Oe,[e("summary",null,[t[395]||(t[395]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[396]||(t[396]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[397]||(t[397]=l('
julia
context(affineExpr)

Gets the context that owns the affine expression.

source

',3))]),e("details",Be,[e("summary",null,[t[398]||(t[398]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[399]||(t[399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[400]||(t[400]=l('
julia
context(affineMap)

Gets the context that the given affine map was created with.

source

',3))]),e("details",Ge,[e("summary",null,[t[401]||(t[401]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[402]||(t[402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[403]||(t[403]=l('
julia
context(attribute)

Gets the context that an attribute was created with.

source

',3))]),e("details",ze,[e("summary",null,[t[404]||(t[404]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[405]||(t[405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[406]||(t[406]=l('
julia
context(ident)

Returns the context associated with this identifier

source

',3))]),e("details",we,[e("summary",null,[t[407]||(t[407]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[408]||(t[408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[409]||(t[409]=l('
julia
context(set)

Gets the context in which the given integer set lives.

source

',3))]),e("details",Se,[e("summary",null,[t[410]||(t[410]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[411]||(t[411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[412]||(t[412]=l('
julia
context(module)

Gets the context that a module was created with.

source

',3))]),e("details",Ne,[e("summary",null,[t[413]||(t[413]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[414]||(t[414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[415]||(t[415]=l('
julia
context(op)

Gets the context this operation is associated with.

source

',3))]),e("details",Ve,[e("summary",null,[t[416]||(t[416]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[417]||(t[417]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[418]||(t[418]=l('
julia
context(type)

Gets the context that a type was created with.

source

',3))]),e("details",qe,[e("summary",null,[t[419]||(t[419]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[420]||(t[420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[421]||(t[421]=l('
julia
data(attr)

Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Ue,[e("summary",null,[t[422]||(t[422]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[423]||(t[423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[424]||(t[424]=l('
julia
mlirOpaqueTypeGetData(type)

Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.

source

',3))]),e("details",Qe,[e("summary",null,[t[425]||(t[425]=e("a",{id:"Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.delete!")],-1)),t[426]||(t[426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[427]||(t[427]=l('
julia
delete!(symboltable, operation)

Removes the given operation from the symbol table and erases it.

source

',3))]),e("details",We,[e("summary",null,[t[428]||(t[428]=e("a",{id:"Reactant.MLIR.IR.dynsize-Tuple{}",href:"#Reactant.MLIR.IR.dynsize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.dynsize")],-1)),t[429]||(t[429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[430]||(t[430]=l('
julia
dynsize()

Returns the value indicating a dynamic size in a shaped type. Prefer isdynsize to direct comparisons with this value.

source

',3))]),e("details",He,[e("summary",null,[t[431]||(t[431]=e("a",{id:"Reactant.MLIR.IR.dynstrideoroffset-Tuple{}",href:"#Reactant.MLIR.IR.dynstrideoroffset-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.dynstrideoroffset")],-1)),t[432]||(t[432]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[433]||(t[433]=l('
julia
mlirShapedTypeGetDynamicStrideOrOffset()

Returns the value indicating a dynamic stride or offset in a shaped type. Prefer isdynstrideoroffset to direct comparisons with this value.

source

',3))]),e("details",Ze,[e("summary",null,[t[434]||(t[434]=e("a",{id:"Reactant.MLIR.IR.enable_ir_printing!-Tuple{Any}",href:"#Reactant.MLIR.IR.enable_ir_printing!-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.enable_ir_printing!")],-1)),t[435]||(t[435]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[436]||(t[436]=l('
julia
enable_ir_printing!(passManager)

Enable mlir-print-ir-after-all.

source

',3))]),e("details",Je,[e("summary",null,[t[437]||(t[437]=e("a",{id:"Reactant.MLIR.IR.enable_verifier!",href:"#Reactant.MLIR.IR.enable_verifier!"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.enable_verifier!")],-1)),t[438]||(t[438]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[439]||(t[439]=l('
julia
enable_verifier!(passManager, enable)

Enable / disable verify-each.

source

',3))]),e("details",Ke,[e("summary",null,[t[440]||(t[440]=e("a",{id:"Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.encoding")],-1)),t[441]||(t[441]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[442]||(t[442]=l('
julia
encoding(type)

Gets the 'encoding' attribute from the ranked tensor type, returning a nothing if none.

source

',3))]),e("details",$e,[e("summary",null,[t[443]||(t[443]=e("a",{id:"Reactant.MLIR.IR.failure-Tuple{}",href:"#Reactant.MLIR.IR.failure-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.failure")],-1)),t[444]||(t[444]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[445]||(t[445]=l('
julia
failure()

Creates a logical result representing a failure.

source

',3))]),e("details",Xe,[e("summary",null,[t[446]||(t[446]=e("a",{id:"Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}",href:"#Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_block")],-1)),t[447]||(t[447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[448]||(t[448]=l('
julia
first_block(region)

Gets the first block in the region.

source

',3))]),e("details",Ye,[e("summary",null,[t[449]||(t[449]=e("a",{id:"Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_op")],-1)),t[450]||(t[450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[451]||(t[451]=l('
julia
first_op(block)

Returns the first operation in the block or nothing if empty.

source

',3))]),e("details",_e,[e("summary",null,[t[452]||(t[452]=e("a",{id:"Reactant.MLIR.IR.first_use-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.first_use-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_use")],-1)),t[453]||(t[453]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[454]||(t[454]=l('
julia
first_use(value)

Returns an OpOperand representing the first use of the value, or a nothing if there are no uses.

source

',3))]),e("details",ts,[e("summary",null,[t[455]||(t[455]=e("a",{id:"Reactant.MLIR.IR.flatsymbol-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.flatsymbol-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.flatsymbol")],-1)),t[456]||(t[456]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[457]||(t[457]=l('
julia
flatsymbol(attr)

Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",es,[e("summary",null,[t[458]||(t[458]=e("a",{id:"Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasrank")],-1)),t[459]||(t[459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[460]||(t[460]=l('
julia
hasrank(type)

Checks whether the given shaped type is ranked.

source

',3))]),e("details",ss,[e("summary",null,[t[461]||(t[461]=e("a",{id:"Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasstaticshape")],-1)),t[462]||(t[462]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[463]||(t[463]=l('
julia
hasstaticshape(type)

Checks whether the given shaped type has a static shape.

source

',3))]),e("details",as,[e("summary",null,[t[464]||(t[464]=e("a",{id:"Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}",href:"#Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.input")],-1)),t[465]||(t[465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[466]||(t[466]=l('
julia
input(type, i)

Returns the i-th input type.

source

',3))]),e("details",is,[e("summary",null,[t[467]||(t[467]=e("a",{id:"Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_after!")],-1)),t[468]||(t[468]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[469]||(t[469]=l('
julia
insert_after!(block, reference, operation)

Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",ls,[e("summary",null,[t[470]||(t[470]=e("a",{id:"Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_after!")],-1)),t[471]||(t[471]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[472]||(t[472]=l('
julia
insert_after!(region, reference, block)

Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.

source

',3))]),e("details",ns,[e("summary",null,[t[473]||(t[473]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[474]||(t[474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[475]||(t[475]=l('
julia
insert_before!(block, reference, operation)

Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",ps,[e("summary",null,[t[476]||(t[476]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[477]||(t[477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[478]||(t[478]=l('
julia
insert_before!(region, reference, block)

Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.

source

',3))]),e("details",rs,[e("summary",null,[t[479]||(t[479]=e("a",{id:"Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_block_arg")],-1)),t[480]||(t[480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[481]||(t[481]=l('
julia
is_block_arg(value)

Returns 1 if the value is a block argument, 0 otherwise.

source

',3))]),e("details",os,[e("summary",null,[t[482]||(t[482]=e("a",{id:"Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_op_res")],-1)),t[483]||(t[483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[484]||(t[484]=l('
julia
is_op_res(value)

Returns 1 if the value is an operation result, 0 otherwise.

source

',3))]),e("details",ds,[e("summary",null,[t[485]||(t[485]=e("a",{id:"Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_pure_affine")],-1)),t[486]||(t[486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[487]||(t[487]=l('
julia
is_pure_affine(affineExpr)

Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

source

',3))]),e("details",cs,[e("summary",null,[t[488]||(t[488]=e("a",{id:"Reactant.MLIR.IR.is_registered-Tuple{Any}",href:"#Reactant.MLIR.IR.is_registered-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_registered")],-1)),t[489]||(t[489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[490]||(t[490]=l('
julia
is_registered(name; context=context())

Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.

source

',3))]),e("details",hs,[e("summary",null,[t[491]||(t[491]=e("a",{id:"Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_symbolic_or_constant")],-1)),t[492]||(t[492]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[493]||(t[493]=l('
julia
is_symbolic_or_constant(affineExpr)

Checks whether the given affine expression is made out of only symbols and constants.

source

',3))]),e("details",us,[e("summary",null,[t[494]||(t[494]=e("a",{id:"Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isadd")],-1)),t[495]||(t[495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[496]||(t[496]=l('
julia
isadd(affineExpr)

Checks whether the given affine expression is an add expression.

source

',3))]),e("details",bs,[e("summary",null,[t[497]||(t[497]=e("a",{id:"Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isaffinemap")],-1)),t[498]||(t[498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[499]||(t[499]=l('
julia
isaffinemap(attr)

Checks whether the given attribute is an affine map attribute.

source

',3))]),e("details",gs,[e("summary",null,[t[500]||(t[500]=e("a",{id:"Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isarray")],-1)),t[501]||(t[501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[502]||(t[502]=l('
julia
isarray(attr)

Checks whether the given attribute is an array attribute.

source

',3))]),e("details",ys,[e("summary",null,[t[503]||(t[503]=e("a",{id:"Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbf16")],-1)),t[504]||(t[504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[505]||(t[505]=l('
julia
isbf16(type)

Checks whether the given type is a bf16 type.

source

',3))]),e("details",ms,[e("summary",null,[t[506]||(t[506]=e("a",{id:"Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbinary")],-1)),t[507]||(t[507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[508]||(t[508]=l('
julia
isbinary(affineExpr)

Checks whether the given affine expression is binary.

source

',3))]),e("details",ks,[e("summary",null,[t[509]||(t[509]=e("a",{id:"Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbool")],-1)),t[510]||(t[510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[511]||(t[511]=l('
julia
isbool(attr)

Checks whether the given attribute is a bool attribute.

source

',3))]),e("details",fs,[e("summary",null,[t[512]||(t[512]=e("a",{id:"Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isceildiv")],-1)),t[513]||(t[513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[514]||(t[514]=l('
julia
isceildiv(affineExpr)

Checks whether the given affine expression is an ceildiv expression.

source

',3))]),e("details",Rs,[e("summary",null,[t[515]||(t[515]=e("a",{id:"Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iscomplex")],-1)),t[516]||(t[516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[517]||(t[517]=l('
julia
iscomplex(type)

Checks whether the given type is a Complex type.

source

',3))]),e("details",Is,[e("summary",null,[t[518]||(t[518]=e("a",{id:"Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstantexpr")],-1)),t[519]||(t[519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[520]||(t[520]=l('
julia
isconstantexpr(affineExpr)

Checks whether the given affine expression is a constant expression.

source

',3))]),e("details",js,[e("summary",null,[t[521]||(t[521]=e("a",{id:"Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstrainteq")],-1)),t[522]||(t[522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[523]||(t[523]=l('
julia
mlirIntegerSetIsConstraintEq(set, i)

Returns true of the i-th constraint of the set is an equality constraint, false otherwise.

source

',3))]),e("details",Ms,[e("summary",null,[t[524]||(t[524]=e("a",{id:"Reactant.MLIR.IR.isdenseelements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isdenseelements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdenseelements")],-1)),t[525]||(t[525]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[526]||(t[526]=l('
julia
isdenseelements(attr)

Checks whether the given attribute is a dense elements attribute.

source

',3))]),e("details",As,[e("summary",null,[t[527]||(t[527]=e("a",{id:"Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdict")],-1)),t[528]||(t[528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[529]||(t[529]=l('
julia
isdict(attr)

Checks whether the given attribute is a dictionary attribute.

source

',3))]),e("details",Ls,[e("summary",null,[t[530]||(t[530]=e("a",{id:"Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdimexpr")],-1)),t[531]||(t[531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[532]||(t[532]=l('
julia
isdimexpr(affineExpr)

Checks whether the given affine expression is a dimension expression.

source

',3))]),e("details",Es,[e("summary",null,[t[533]||(t[533]=e("a",{id:"Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdyndim")],-1)),t[534]||(t[534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[535]||(t[535]=l('
julia
isdyndim(type, i)

Checks wither the i-th dimension of the given shaped type is dynamic.

source

',3))]),e("details",vs,[e("summary",null,[t[536]||(t[536]=e("a",{id:"Reactant.MLIR.IR.isdynsize-Tuple{Any}",href:"#Reactant.MLIR.IR.isdynsize-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdynsize")],-1)),t[537]||(t[537]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[538]||(t[538]=l('
julia
isdynsize(size)

Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.

source

',3))]),e("details",Ts,[e("summary",null,[t[539]||(t[539]=e("a",{id:"Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}",href:"#Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdynstrideoroffset")],-1)),t[540]||(t[540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[541]||(t[541]=l('
julia
mlirShapedTypeIsDynamicStrideOrOffset(val)

Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.

source

',3))]),e("details",Cs,[e("summary",null,[t[542]||(t[542]=e("a",{id:"Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iselements")],-1)),t[543]||(t[543]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[544]||(t[544]=l('
julia
iselements(attr)

Checks whether the given attribute is an elements attribute.

source

',3))]),e("details",xs,[e("summary",null,[t[545]||(t[545]=e("a",{id:"Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isempty")],-1)),t[546]||(t[546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[547]||(t[547]=l('
julia
isempty(set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

source

',3))]),e("details",Fs,[e("summary",null,[t[548]||(t[548]=e("a",{id:"Reactant.MLIR.IR.isf16-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf16-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf16")],-1)),t[549]||(t[549]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[550]||(t[550]=l('
julia
isf16(type)

Checks whether the given type is an f16 type.

source

',3))]),e("details",Ps,[e("summary",null,[t[551]||(t[551]=e("a",{id:"Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf32")],-1)),t[552]||(t[552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[553]||(t[553]=l('
julia
isf32(type)

Checks whether the given type is an f32 type.

source

',3))]),e("details",Ds,[e("summary",null,[t[554]||(t[554]=e("a",{id:"Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf64")],-1)),t[555]||(t[555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[556]||(t[556]=l('
julia
isf64(type)

Checks whether the given type is an f64 type.

source

',3))]),e("details",Os,[e("summary",null,[t[557]||(t[557]=e("a",{id:"Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e4m3fn")],-1)),t[558]||(t[558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[559]||(t[559]=l('
julia
isf8e4m3fn(type)

Checks whether the given type is an f8E4M3FN type.

source

',3))]),e("details",Bs,[e("summary",null,[t[560]||(t[560]=e("a",{id:"Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e5m2")],-1)),t[561]||(t[561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[562]||(t[562]=l('
julia
isf8e5m2(type)

Checks whether the given type is an f8E5M2 type.

source

',3))]),e("details",Gs,[e("summary",null,[t[563]||(t[563]=e("a",{id:"Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfailure")],-1)),t[564]||(t[564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[565]||(t[565]=l('
julia
isfailure(res)

Checks if the given logical result represents a failure.

source

',3))]),e("details",zs,[e("summary",null,[t[566]||(t[566]=e("a",{id:"Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isflatsymbolref")],-1)),t[567]||(t[567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[568]||(t[568]=l('
julia
isflatsymbolref(attr)

Checks whether the given attribute is a flat symbol reference attribute.

source

',3))]),e("details",ws,[e("summary",null,[t[569]||(t[569]=e("a",{id:"Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloat")],-1)),t[570]||(t[570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[571]||(t[571]=l('
julia
isfloat(attr)

Checks whether the given attribute is a floating point attribute.

source

',3))]),e("details",Ss,[e("summary",null,[t[572]||(t[572]=e("a",{id:"Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloordiv")],-1)),t[573]||(t[573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[574]||(t[574]=l('
julia
isfloordiv(affineExpr)

Checks whether the given affine expression is an floordiv expression.

source

',3))]),e("details",Ns,[e("summary",null,[t[575]||(t[575]=e("a",{id:"Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunction")],-1)),t[576]||(t[576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[577]||(t[577]=l('
julia
isfunction(type)

Checks whether the given type is a function type.

source

',3))]),e("details",Vs,[e("summary",null,[t[578]||(t[578]=e("a",{id:"Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunctionofdimexpr")],-1)),t[579]||(t[579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[580]||(t[580]=l('
julia
isfunctionofdimexpr(affineExpr, position)

Checks whether the given affine expression involves AffineDimExpr 'position'.

source

',3))]),e("details",qs,[e("summary",null,[t[581]||(t[581]=e("a",{id:"Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isidentity")],-1)),t[582]||(t[582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[583]||(t[583]=l('
julia
isidentity(affineMap)

Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",Us,[e("summary",null,[t[584]||(t[584]=e("a",{id:"Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isindex")],-1)),t[585]||(t[585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[586]||(t[586]=l('
julia
isindex(type)

Checks whether the given type is an index type.

source

',3))]),e("details",Qs,[e("summary",null,[t[587]||(t[587]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[588]||(t[588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[589]||(t[589]=l('
julia
isinteger(attr)

Checks whether the given attribute is an integer attribute.

source

',3))]),e("details",Ws,[e("summary",null,[t[590]||(t[590]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[591]||(t[591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[592]||(t[592]=l('
julia
isinteger(type)

Checks whether the given type is an integer type.

source

',3))]),e("details",Hs,[e("summary",null,[t[593]||(t[593]=e("a",{id:"Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isintegerset")],-1)),t[594]||(t[594]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[595]||(t[595]=l('
julia
isintegerset(attr)

Checks whether the given attribute is an integer set attribute.

source

',3))]),e("details",Zs,[e("summary",null,[t[596]||(t[596]=e("a",{id:"Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismemref")],-1)),t[597]||(t[597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[598]||(t[598]=l('
julia
ismemref(type)

Checks whether the given type is a MemRef type.

source

',3))]),e("details",Js,[e("summary",null,[t[599]||(t[599]=e("a",{id:"Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isminoridentity")],-1)),t[600]||(t[600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[601]||(t[601]=l('
julia
isminoridentity(affineMap)

Checks whether the given affine map is a minor identity affine map.

source

',3))]),e("details",Ks,[e("summary",null,[t[602]||(t[602]=e("a",{id:"Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismod")],-1)),t[603]||(t[603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[604]||(t[604]=l('
julia
ismod(affineExpr)

Checks whether the given affine expression is an mod expression.

source

',3))]),e("details",$s,[e("summary",null,[t[605]||(t[605]=e("a",{id:"Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismul")],-1)),t[606]||(t[606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[607]||(t[607]=l('
julia
ismul(affineExpr)

Checks whether the given affine expression is an mul expression.

source

',3))]),e("details",Xs,[e("summary",null,[t[608]||(t[608]=e("a",{id:"Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismultipleof")],-1)),t[609]||(t[609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[610]||(t[610]=l('
julia
ismultipleof(affineExpr, factor)

Checks whether the given affine expression is a multiple of 'factor'.

source

',3))]),e("details",Ys,[e("summary",null,[t[611]||(t[611]=e("a",{id:"Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isnone")],-1)),t[612]||(t[612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[613]||(t[613]=l('
julia
mlirTypeIsANone(type)

Checks whether the given type is a None type.

source

',3))]),e("details",_s,[e("summary",null,[t[614]||(t[614]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[615]||(t[615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[616]||(t[616]=l('
julia
isopaque(attr)

Checks whether the given attribute is an opaque attribute.

source

',3))]),e("details",ta,[e("summary",null,[t[617]||(t[617]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[618]||(t[618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[619]||(t[619]=l('
julia
isopaque(type)

Checks whether the given type is an opaque type.

source

',3))]),e("details",ea,[e("summary",null,[t[620]||(t[620]=e("a",{id:"Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isprojperm")],-1)),t[621]||(t[621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[622]||(t[622]=l('
julia
isprojperm(affineMap)

Checks whether the given affine map represents a subset of a symbol-less permutation map.

source

',3))]),e("details",sa,[e("summary",null,[t[623]||(t[623]=e("a",{id:"Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isrankedtensor")],-1)),t[624]||(t[624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[625]||(t[625]=l('
julia
isrankedtensor(type)

Checks whether the given type is a ranked tensor type.

source

',3))]),e("details",aa,[e("summary",null,[t[626]||(t[626]=e("a",{id:"Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isshaped")],-1)),t[627]||(t[627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[628]||(t[628]=l('
julia
isshaped(type)

Checks whether the given type is a Shaped type.

source

',3))]),e("details",ia,[e("summary",null,[t[629]||(t[629]=e("a",{id:"Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issigned")],-1)),t[630]||(t[630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[631]||(t[631]=l('
julia
issigned(type)

Checks whether the given integer type is signed.

source

',3))]),e("details",la,[e("summary",null,[t[632]||(t[632]=e("a",{id:"Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issignless")],-1)),t[633]||(t[633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[634]||(t[634]=l('
julia
issignless(type)

Checks whether the given integer type is signless.

source

',3))]),e("details",na,[e("summary",null,[t[635]||(t[635]=e("a",{id:"Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issingleconstant")],-1)),t[636]||(t[636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[637]||(t[637]=l('
julia
issingleconstant(affineMap)

Checks whether the given affine map is a single result constant affine map.

source

',3))]),e("details",pa,[e("summary",null,[t[638]||(t[638]=e("a",{id:"Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issparseelements")],-1)),t[639]||(t[639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[640]||(t[640]=l('
julia
issparseelements(attr)

Checks whether the given attribute is a sparse elements attribute.

source

',3))]),e("details",ra,[e("summary",null,[t[641]||(t[641]=e("a",{id:"Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issplat")],-1)),t[642]||(t[642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[643]||(t[643]=l('
julia
issplat(attr)

Checks whether the given dense elements attribute contains a single replicated value (splat).

source

',3))]),e("details",oa,[e("summary",null,[t[644]||(t[644]=e("a",{id:"Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isstring")],-1)),t[645]||(t[645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[646]||(t[646]=l('
julia
isstring(attr)

Checks whether the given attribute is a string attribute.

source

',3))]),e("details",da,[e("summary",null,[t[647]||(t[647]=e("a",{id:"Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issuccess")],-1)),t[648]||(t[648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[649]||(t[649]=l('
julia
issuccess(res)

Checks if the given logical result represents a success.

source

',3))]),e("details",ca,[e("summary",null,[t[650]||(t[650]=e("a",{id:"Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolexpr")],-1)),t[651]||(t[651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[652]||(t[652]=l('
julia
issymbolexpr(affineExpr)

Checks whether the given affine expression is a symbol expression.

source

',3))]),e("details",ha,[e("summary",null,[t[653]||(t[653]=e("a",{id:"Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolref")],-1)),t[654]||(t[654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[655]||(t[655]=l('
julia
issymbolref(attr)

Checks whether the given attribute is a symbol reference attribute.

source

',3))]),e("details",ua,[e("summary",null,[t[656]||(t[656]=e("a",{id:"Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istensor")],-1)),t[657]||(t[657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[658]||(t[658]=l('
julia
istensor(type)

Checks whether the given type is a Tensor type.

source

',3))]),e("details",ba,[e("summary",null,[t[659]||(t[659]=e("a",{id:"Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istuple")],-1)),t[660]||(t[660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[661]||(t[661]=l('
julia
istuple(type)

Checks whether the given type is a tuple type.

source

',3))]),e("details",ga,[e("summary",null,[t[662]||(t[662]=e("a",{id:"Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istype")],-1)),t[663]||(t[663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[664]||(t[664]=l('
julia
istype(attr)

Checks whether the given attribute is a type attribute.

source

',3))]),e("details",ya,[e("summary",null,[t[665]||(t[665]=e("a",{id:"Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunit")],-1)),t[666]||(t[666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[667]||(t[667]=l('
julia
isunit(attr)

Checks whether the given attribute is a unit attribute.

source

',3))]),e("details",ma,[e("summary",null,[t[668]||(t[668]=e("a",{id:"Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedmemref")],-1)),t[669]||(t[669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[670]||(t[670]=l('
julia
mlirTypeIsAUnrankedMemRef(type)

Checks whether the given type is an UnrankedMemRef type.

source

',3))]),e("details",ka,[e("summary",null,[t[671]||(t[671]=e("a",{id:"Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedtensor")],-1)),t[672]||(t[672]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[673]||(t[673]=l('
julia
isunrankedtensor(type)

Checks whether the given type is an unranked tensor type.

source

',3))]),e("details",fa,[e("summary",null,[t[674]||(t[674]=e("a",{id:"Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunsigned")],-1)),t[675]||(t[675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[676]||(t[676]=l('
julia
isunsigned(type)

Checks whether the given integer type is unsigned.

source

',3))]),e("details",Ra,[e("summary",null,[t[677]||(t[677]=e("a",{id:"Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isvector")],-1)),t[678]||(t[678]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[679]||(t[679]=l('
julia
isvector(type)

Checks whether the given type is a Vector type.

source

',3))]),e("details",Ia,[e("summary",null,[t[680]||(t[680]=e("a",{id:"Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.layout")],-1)),t[681]||(t[681]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[682]||(t[682]=l('
julia
layout(type)

Returns the layout of the given MemRef type.

source

',3))]),e("details",ja,[e("summary",null,[t[683]||(t[683]=e("a",{id:"Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.leafref")],-1)),t[684]||(t[684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[685]||(t[685]=l('
julia
leafref(attr)

Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Ma,[e("summary",null,[t[686]||(t[686]=e("a",{id:"Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lhs")],-1)),t[687]||(t[687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[688]||(t[688]=l('
julia
lhs(affineExpr)

Returns the left hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",Aa,[e("summary",null,[t[689]||(t[689]=e("a",{id:"Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.location")],-1)),t[690]||(t[690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[691]||(t[691]=l('
julia
location(op)

Gets the location of the operation.

source

',3))]),e("details",La,[e("summary",null,[t[692]||(t[692]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[693]||(t[693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[694]||(t[694]=l('
julia
lookup(jit, name)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

source

',3))]),e("details",Ea,[e("summary",null,[t[695]||(t[695]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[696]||(t[696]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[697]||(t[697]=l('
julia
lookup(symboltable, name)

Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.

source

',3))]),e("details",va,[e("summary",null,[t[698]||(t[698]=e("a",{id:"Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.majorsubmap")],-1)),t[699]||(t[699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[700]||(t[700]=l('
julia
majorsubmap(affineMap, nresults)

Returns the affine map consisting of the most major nresults results. Returns the null AffineMap if the nresults is equal to zero. Returns the affineMap if nresults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",Ta,[e("summary",null,[t[701]||(t[701]=e("a",{id:"Reactant.MLIR.IR.memspace-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.memspace-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.memspace")],-1)),t[702]||(t[702]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[703]||(t[703]=l('
julia
mlirMemRefTypeGetMemorySpace(type)

Returns the memory space of the given MemRef type.

source

',3))]),e("details",Ca,[e("summary",null,[t[704]||(t[704]=e("a",{id:"Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.minorsubmap")],-1)),t[705]||(t[705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[706]||(t[706]=l('
julia
minorsubmap(affineMap, nresults)

Returns the affine map consisting of the most minor nresults results. Returns the null AffineMap if the nresults is equal to zero. Returns the affineMap if nresults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",xa,[e("summary",null,[t[707]||(t[707]=e("a",{id:"Reactant.MLIR.IR.move_after!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.move_after!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.move_after!")],-1)),t[708]||(t[708]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[709]||(t[709]=l('
julia
move_after!(op, other)

Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",Fa,[e("summary",null,[t[710]||(t[710]=e("a",{id:"Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.move_before!")],-1)),t[711]||(t[711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[712]||(t[712]=l('
julia
move_before!(op, other)

Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",Pa,[e("summary",null,[t[713]||(t[713]=e("a",{id:"Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.name")],-1)),t[714]||(t[714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[715]||(t[715]=l('
julia
name(op)

Gets the name of the operation as an identifier.

source

',3))]),e("details",Da,[e("summary",null,[t[716]||(t[716]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[717]||(t[717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[718]||(t[718]=l('
julia
mlirOpaqueAttrGetDialectNamespace(attr)

Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.

source

',3))]),e("details",Oa,[e("summary",null,[t[719]||(t[719]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[720]||(t[720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[721]||(t[721]=l('
julia
mlirOpaqueTypeGetDialectNamespace(type)

Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.

source

',3))]),e("details",Ba,[e("summary",null,[t[722]||(t[722]=e("a",{id:"Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nargs")],-1)),t[723]||(t[723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[724]||(t[724]=l('
julia
nargs(block)

Returns the number of arguments of the block.

source

',3))]),e("details",Ga,[e("summary",null,[t[725]||(t[725]=e("a",{id:"Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nattrs")],-1)),t[726]||(t[726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[727]||(t[727]=l('
julia
nattrs(op)

Returns the number of attributes attached to the operation.

source

',3))]),e("details",za,[e("summary",null,[t[728]||(t[728]=e("a",{id:"Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nconstraints")],-1)),t[729]||(t[729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[730]||(t[730]=l('
julia
nconstraints(set)

Returns the number of constraints (equalities + inequalities) in the given set.

source

',3))]),e("details",wa,[e("summary",null,[t[731]||(t[731]=e("a",{id:"Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nequalities")],-1)),t[732]||(t[732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[733]||(t[733]=l('
julia
nequalities(set)

Returns the number of equalities in the given set.

source

',3))]),e("details",Sa,[e("summary",null,[t[734]||(t[734]=e("a",{id:"Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.next")],-1)),t[735]||(t[735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[736]||(t[736]=l('
julia
next(block)

Returns the block immediately following the given block in its parent region or nothing if last.

source

',3))]),e("details",Na,[e("summary",null,[t[737]||(t[737]=e("a",{id:"Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.next")],-1)),t[738]||(t[738]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[739]||(t[739]=l('
julia
next(opOperand)

Returns an op operand representing the next use of the value, or nothing if there is no next use.

source

',3))]),e("details",Va,[e("summary",null,[t[740]||(t[740]=e("a",{id:"Reactant.MLIR.IR.ninequalities-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.ninequalities-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninequalities")],-1)),t[741]||(t[741]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[742]||(t[742]=l('
julia
ninequalities(set)

Returns the number of inequalities in the given set.

source

',3))]),e("details",qa,[e("summary",null,[t[743]||(t[743]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[744]||(t[744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[745]||(t[745]=l('
julia
ninputs(affineMap)

Returns the number of inputs (dimensions + symbols) of the given affine map.

source

',3))]),e("details",Ua,[e("summary",null,[t[746]||(t[746]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[747]||(t[747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[748]||(t[748]=l('
julia
ninputs(set)

Returns the number of inputs (dimensions + symbols) in the given set.

source

',3))]),e("details",Qa,[e("summary",null,[t[749]||(t[749]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[750]||(t[750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[751]||(t[751]=l('
julia
ninputs(type)

Returns the number of input types.

source

',3))]),e("details",Wa,[e("summary",null,[t[752]||(t[752]=e("a",{id:"Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nnestedrefs")],-1)),t[753]||(t[753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[754]||(t[754]=l('
julia
nnestedrefs(attr)

Returns the number of references nested in the given symbol reference attribute.

source

',3))]),e("details",Ha,[e("summary",null,[t[755]||(t[755]=e("a",{id:"Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.noperands")],-1)),t[756]||(t[756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[757]||(t[757]=l('
julia
noperands(op)

Returns the number of operands of the operation.

source

',3))]),e("details",Za,[e("summary",null,[t[758]||(t[758]=e("a",{id:"Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nregions")],-1)),t[759]||(t[759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[760]||(t[760]=l('
julia
nregions(op)

Returns the number of regions attached to the given operation.

source

',3))]),e("details",Ja,[e("summary",null,[t[761]||(t[761]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[762]||(t[762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[763]||(t[763]=l('
julia
nresults(affineMap)

Returns the number of results of the given affine map.

source

',3))]),e("details",Ka,[e("summary",null,[t[764]||(t[764]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[765]||(t[765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[766]||(t[766]=l('
julia
nresults(op)

Returns the number of results of the operation.

source

',3))]),e("details",$a,[e("summary",null,[t[767]||(t[767]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[768]||(t[768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[769]||(t[769]=l('
julia
nresults(type)

Returns the number of result types.

source

',3))]),e("details",Xa,[e("summary",null,[t[770]||(t[770]=e("a",{id:"Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsuccessors")],-1)),t[771]||(t[771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[772]||(t[772]=l('
julia
nsuccessors(op)

Returns the number of successor blocks of the operation.

source

',3))]),e("details",Ya,[e("summary",null,[t[773]||(t[773]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[774]||(t[774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[775]||(t[775]=l('
julia
nsymbols(affineMap)

Returns the number of symbols of the given affine map.

source

',3))]),e("details",_a,[e("summary",null,[t[776]||(t[776]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[777]||(t[777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[778]||(t[778]=l('
julia
nsymbols(set)

Returns the number of symbols in the given set.

source

',3))]),e("details",ti,[e("summary",null,[t[779]||(t[779]=e("a",{id:"Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_owner")],-1)),t[780]||(t[780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[781]||(t[781]=l('
julia
op_owner(value)

Returns an operation that produced this value as its result. Asserts if the value is not an op result.

source

',3))]),e("details",ei,[e("summary",null,[t[782]||(t[782]=e("a",{id:"Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_res_num")],-1)),t[783]||(t[783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[784]||(t[784]=l('
julia
op_res_num(value)

Returns the position of the value in the list of results of the operation that produced it.

source

',3))]),e("details",si,[e("summary",null,[t[785]||(t[785]=e("a",{id:"Reactant.MLIR.IR.operand",href:"#Reactant.MLIR.IR.operand"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operand")],-1)),t[786]||(t[786]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[787]||(t[787]=l('
julia
operand(op, i)

Returns i-th operand of the operation.

source

',3))]),e("details",ai,[e("summary",null,[t[788]||(t[788]=e("a",{id:"Reactant.MLIR.IR.operand!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}",href:"#Reactant.MLIR.IR.operand!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operand!")],-1)),t[789]||(t[789]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[790]||(t[790]=l('
julia
operand!(op, i, value)

Sets the i-th operand of the operation.

source

',3))]),e("details",ii,[e("summary",null,[t[791]||(t[791]=e("a",{id:"Reactant.MLIR.IR.operandindex-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.operandindex-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operandindex")],-1)),t[792]||(t[792]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[793]||(t[793]=l('
julia
operandindex(opOperand)

Returns the operand number of an op operand.

source

',3))]),e("details",li,[e("summary",null,[t[794]||(t[794]=e("a",{id:"Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.owner")],-1)),t[795]||(t[795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[796]||(t[796]=l('
julia
owner(opOperand)

Returns the owner operation of an op operand.

source

',3))]),e("details",ni,[e("summary",null,[t[797]||(t[797]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[798]||(t[798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[799]||(t[799]=l('
julia
parent_op(block)

Returns the closest surrounding operation that contains this block.

source

',3))]),e("details",pi,[e("summary",null,[t[800]||(t[800]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[801]||(t[801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[802]||(t[802]=l('
julia
parent_op(op)

Gets the operation that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",ri,[e("summary",null,[t[803]||(t[803]=e("a",{id:"Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_region")],-1)),t[804]||(t[804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[805]||(t[805]=l('
julia
parent_region(block)

Returns the region that contains this block.

source

',3))]),e("details",oi,[e("summary",null,[t[806]||(t[806]=e("a",{id:"Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.position")],-1)),t[807]||(t[807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[808]||(t[808]=l('
julia
position(affineExpr)

Returns the position of the given affine dimension expression, affine symbol expression or ...

source

',3))]),e("details",di,[e("summary",null,[t[809]||(t[809]=e("a",{id:"Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.push_argument!")],-1)),t[810]||(t[810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[811]||(t[811]=l('
julia
push_argument!(block, type; location=Location())

Appends an argument of the specified type to the block. Returns the newly added argument.

source

',3))]),e("details",ci,[e("summary",null,[t[812]||(t[812]=e("a",{id:"Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.region")],-1)),t[813]||(t[813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[814]||(t[814]=l('
julia
region(op, i)

Returns i-th region attached to the operation.

source

',3))]),e("details",hi,[e("summary",null,[t[815]||(t[815]=e("a",{id:"Reactant.MLIR.IR.result",href:"#Reactant.MLIR.IR.result"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[816]||(t[816]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[817]||(t[817]=l('
julia
result(op, i)

Returns i-th result of the operation.

source

',3))]),e("details",ui,[e("summary",null,[t[818]||(t[818]=e("a",{id:"Reactant.MLIR.IR.result-2",href:"#Reactant.MLIR.IR.result-2"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[819]||(t[819]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[820]||(t[820]=l('
julia
result(type, i)

Returns the i-th result type.

source

',3))]),e("details",bi,[e("summary",null,[t[821]||(t[821]=e("a",{id:"Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[822]||(t[822]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[823]||(t[823]=l('
julia
result(affineMap, pos)

Returns the result at the given position.

source

',3))]),e("details",gi,[e("summary",null,[t[824]||(t[824]=e("a",{id:"Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[825]||(t[825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[826]||(t[826]=l('
julia
result(affineMap)

Returns the constant result of the given affine map. The function asserts that the map has a single constant result.

source

',3))]),e("details",yi,[e("summary",null,[t[827]||(t[827]=e("a",{id:"Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rhs")],-1)),t[828]||(t[828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[829]||(t[829]=l('
julia
rhs(affineExpr)

Returns the right hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",mi,[e("summary",null,[t[830]||(t[830]=e("a",{id:"Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmattr!")],-1)),t[831]||(t[831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[832]||(t[832]=l('
julia
rmattr!(op, name)

Removes an attribute by name. Returns false if the attribute was not found and true if removed.

source

',3))]),e("details",ki,[e("summary",null,[t[833]||(t[833]=e("a",{id:"Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmfromparent!")],-1)),t[834]||(t[834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[835]||(t[835]=l('
julia
rmfromparent!(op)

Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.

source

',3))]),e("details",fi,[e("summary",null,[t[836]||(t[836]=e("a",{id:"Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rootref")],-1)),t[837]||(t[837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[838]||(t[838]=l('
julia
rootref(attr)

Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Ri,[e("summary",null,[t[839]||(t[839]=e("a",{id:"Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.run!")],-1)),t[840]||(t[840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[841]||(t[841]=l('
julia
run!(passManager, module)

Run the provided passManager on the given module.

source

',3))]),e("details",Ii,[e("summary",null,[t[842]||(t[842]=e("a",{id:"Reactant.MLIR.IR.submap-Tuple{Reactant.MLIR.IR.AffineMap, Vector{Int64}}",href:"#Reactant.MLIR.IR.submap-Tuple{Reactant.MLIR.IR.AffineMap, Vector{Int64}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.submap")],-1)),t[843]||(t[843]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[844]||(t[844]=l('
julia
submap(affineMap, positions)

Returns the affine map consisting of the positions subset.

source

',3))]),e("details",ji,[e("summary",null,[t[845]||(t[845]=e("a",{id:"Reactant.MLIR.IR.success-Tuple{}",href:"#Reactant.MLIR.IR.success-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.success")],-1)),t[846]||(t[846]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[847]||(t[847]=l('
julia
success()

Creates a logical result representing a success.

source

',3))]),e("details",Mi,[e("summary",null,[t[848]||(t[848]=e("a",{id:"Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.successor")],-1)),t[849]||(t[849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[850]||(t[850]=l('
julia
successor(op, i)

Returns i-th successor of the operation.

source

',3))]),e("details",Ai,[e("summary",null,[t[851]||(t[851]=e("a",{id:"Reactant.MLIR.IR.terminator-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.terminator-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.terminator")],-1)),t[852]||(t[852]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[853]||(t[853]=l('
julia
terminator(block)

Returns the terminator operation in the block or nothing if no terminator.

source

',3))]),e("details",Li,[e("summary",null,[t[854]||(t[854]=e("a",{id:"Reactant.MLIR.IR.type!-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.type!-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type!")],-1)),t[855]||(t[855]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[856]||(t[856]=l('
julia
set_type!(value, type)

Sets the type of the block argument to the given type.

source

',3))]),e("details",Ei,[e("summary",null,[t[857]||(t[857]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[858]||(t[858]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[859]||(t[859]=l('
julia
type(attribute)

Gets the type of this attribute.

source

',3))]),e("details",vi,[e("summary",null,[t[860]||(t[860]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[861]||(t[861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[862]||(t[862]=l('
julia
type(value)

Returns the type of the value.

source

',3))]),e("details",Ti,[e("summary",null,[t[863]||(t[863]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[864]||(t[864]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[865]||(t[865]=l('
julia
typeid(attribute)

Gets the type id of the attribute.

source

',3))]),e("details",Ci,[e("summary",null,[t[866]||(t[866]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[867]||(t[867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[868]||(t[868]=l('
julia
typeid(op)

Gets the type id of the operation. Returns null if the operation does not have a registered operation description.

source

',3))]),e("details",xi,[e("summary",null,[t[869]||(t[869]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[870]||(t[870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[871]||(t[871]=l('
julia
typeid(type)

Gets the type ID of the type.

source

',3))]),e("details",Fi,[e("summary",null,[t[872]||(t[872]=e("a",{id:"Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.value")],-1)),t[873]||(t[873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[874]||(t[874]=l('
julia
value(affineExpr)

Returns the value of the given affine constant expression.

source

',3))]),e("details",Pi,[e("summary",null,[t[875]||(t[875]=e("a",{id:"Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verify")],-1)),t[876]||(t[876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[877]||(t[877]=l('
julia
verify(op)

Verify the operation and return true if it passes, false if it fails.

source

',3))]),e("details",Di,[e("summary",null,[t[878]||(t[878]=e("a",{id:"Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verifyall")],-1)),t[879]||(t[879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[880]||(t[880]=l('
julia
verifyall(operation; debug=false)

Prints the operations which could not be verified.

source

',3))]),e("details",Oi,[e("summary",null,[t[881]||(t[881]=e("a",{id:"Reactant.MLIR.IR.@affinemap-Tuple{Any}",href:"#Reactant.MLIR.IR.@affinemap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.@affinemap")],-1)),t[882]||(t[882]=s()),i(a,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),t[883]||(t[883]=l(`
julia
@affinemap (d1, d2, d3, ...)[s1, s2, ...] -> (d0 + d1, ...)

Returns an affine map from the provided Julia expression. On the right hand side are allowed the following function calls:

The rhs can only contains dimensions and symbols present on the left hand side or integer literals.

julia
julia> using Reactant.MLIR: IR
+
+julia> IR.context!(IR.Context()) do
+           IR.@affinemap (d1, d2)[s0] -> (d1 + s0, d2 % 10)
+       end
+MLIR.IR.AffineMap(#= (d0, d1)[s0] -> (d0 + s0, d1 mod 10) =#)

source

`,6))]),t[3184]||(t[3184]=e("h1",{id:"MLIR-C-API",tabindex:"-1"},[s("MLIR C API "),e("a",{class:"header-anchor",href:"#MLIR-C-API","aria-label":'Permalink to "MLIR C API {#MLIR-C-API}"'},"​")],-1)),e("details",Bi,[e("summary",null,[t[884]||(t[884]=e("a",{id:"Reactant.MLIR.API.LLVMAttributeRef",href:"#Reactant.MLIR.API.LLVMAttributeRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMAttributeRef")],-1)),t[885]||(t[885]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[886]||(t[886]=e("p",null,"Used to represent an attributes.",-1)),t[887]||(t[887]=e("p",null,[e("strong",null,"See also")],-1)),t[888]||(t[888]=e("p",null,"llvm::Attribute",-1)),t[889]||(t[889]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9761-L9766",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Gi,[e("summary",null,[t[890]||(t[890]=e("a",{id:"Reactant.MLIR.API.LLVMBasicBlockRef",href:"#Reactant.MLIR.API.LLVMBasicBlockRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBasicBlockRef")],-1)),t[891]||(t[891]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[892]||(t[892]=e("p",null,"Represents a basic block of instructions in LLVM IR.",-1)),t[893]||(t[893]=e("p",null,"This models llvm::BasicBlock.",-1)),t[894]||(t[894]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9674-L9678",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",zi,[e("summary",null,[t[895]||(t[895]=e("a",{id:"Reactant.MLIR.API.LLVMBinaryRef",href:"#Reactant.MLIR.API.LLVMBinaryRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBinaryRef")],-1)),t[896]||(t[896]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[897]||(t[897]=e("p",null,[e("strong",null,"See also")],-1)),t[898]||(t[898]=e("p",null,"llvm::object::Binary",-1)),t[899]||(t[899]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9803-L9806",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",wi,[e("summary",null,[t[900]||(t[900]=e("a",{id:"Reactant.MLIR.API.LLVMBool",href:"#Reactant.MLIR.API.LLVMBool"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBool")],-1)),t[901]||(t[901]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[902]||(t[902]=e("p",null,[e("code",null,"LLVMCSupportTypes Types and Enumerations")],-1)),t[903]||(t[903]=e("p",null,"@{",-1)),t[904]||(t[904]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9619-L9623",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Si,[e("summary",null,[t[905]||(t[905]=e("a",{id:"Reactant.MLIR.API.LLVMBuilderRef",href:"#Reactant.MLIR.API.LLVMBuilderRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBuilderRef")],-1)),t[906]||(t[906]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[907]||(t[907]=e("p",null,"Represents an LLVM basic block builder.",-1)),t[908]||(t[908]=e("p",null,"This models llvm::IRBuilder.",-1)),t[909]||(t[909]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9710-L9714",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ni,[e("summary",null,[t[910]||(t[910]=e("a",{id:"Reactant.MLIR.API.LLVMComdatRef",href:"#Reactant.MLIR.API.LLVMComdatRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMComdatRef")],-1)),t[911]||(t[911]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[912]||(t[912]=e("p",null,[e("strong",null,"See also")],-1)),t[913]||(t[913]=e("p",null,"llvm::Comdat",-1)),t[914]||(t[914]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9779-L9782",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Vi,[e("summary",null,[t[915]||(t[915]=e("a",{id:"Reactant.MLIR.API.LLVMContextRef",href:"#Reactant.MLIR.API.LLVMContextRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMContextRef")],-1)),t[916]||(t[916]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[917]||(t[917]=e("p",null,"The top-level container for all LLVM global data. See the LLVMContext class.",-1)),t[918]||(t[918]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9638-L9640",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",qi,[e("summary",null,[t[919]||(t[919]=e("a",{id:"Reactant.MLIR.API.LLVMDIBuilderRef",href:"#Reactant.MLIR.API.LLVMDIBuilderRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMDIBuilderRef")],-1)),t[920]||(t[920]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[921]||(t[921]=e("p",null,"Represents an LLVM debug info builder.",-1)),t[922]||(t[922]=e("p",null,"This models llvm::DIBuilder.",-1)),t[923]||(t[923]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9719-L9723",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ui,[e("summary",null,[t[924]||(t[924]=e("a",{id:"Reactant.MLIR.API.LLVMDbgRecordRef",href:"#Reactant.MLIR.API.LLVMDbgRecordRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMDbgRecordRef")],-1)),t[925]||(t[925]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[926]||(t[926]=e("p",null,[e("strong",null,"See also")],-1)),t[927]||(t[927]=e("p",null,"llvm::DbgRecord",-1)),t[928]||(t[928]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9811-L9814",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Qi,[e("summary",null,[t[929]||(t[929]=e("a",{id:"Reactant.MLIR.API.LLVMDiagnosticInfoRef",href:"#Reactant.MLIR.API.LLVMDiagnosticInfoRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMDiagnosticInfoRef")],-1)),t[930]||(t[930]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[931]||(t[931]=e("p",null,[e("strong",null,"See also")],-1)),t[932]||(t[932]=e("p",null,"llvm::DiagnosticInfo",-1)),t[933]||(t[933]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9771-L9774",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Wi,[e("summary",null,[t[934]||(t[934]=e("a",{id:"Reactant.MLIR.API.LLVMJITEventListenerRef",href:"#Reactant.MLIR.API.LLVMJITEventListenerRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMJITEventListenerRef")],-1)),t[935]||(t[935]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[936]||(t[936]=e("p",null,[e("strong",null,"See also")],-1)),t[937]||(t[937]=e("p",null,"llvm::JITEventListener",-1)),t[938]||(t[938]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9795-L9798",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Hi,[e("summary",null,[t[939]||(t[939]=e("a",{id:"Reactant.MLIR.API.LLVMMemoryBufferRef",href:"#Reactant.MLIR.API.LLVMMemoryBufferRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMMemoryBufferRef")],-1)),t[940]||(t[940]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[941]||(t[941]=e("p",null,"Used to pass regions of memory through LLVM interfaces.",-1)),t[942]||(t[942]=e("p",null,[e("strong",null,"See also")],-1)),t[943]||(t[943]=e("p",null,"llvm::MemoryBuffer",-1)),t[944]||(t[944]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9628-L9633",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Zi,[e("summary",null,[t[945]||(t[945]=e("a",{id:"Reactant.MLIR.API.LLVMMetadataRef",href:"#Reactant.MLIR.API.LLVMMetadataRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMMetadataRef")],-1)),t[946]||(t[946]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[947]||(t[947]=e("p",null,"Represents an LLVM Metadata.",-1)),t[948]||(t[948]=e("p",null,"This models llvm::Metadata.",-1)),t[949]||(t[949]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9683-L9687",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ji,[e("summary",null,[t[950]||(t[950]=e("a",{id:"Reactant.MLIR.API.LLVMModuleFlagEntry",href:"#Reactant.MLIR.API.LLVMModuleFlagEntry"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMModuleFlagEntry")],-1)),t[951]||(t[951]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[952]||(t[952]=e("p",null,[e("strong",null,"See also")],-1)),t[953]||(t[953]=e("p",null,"llvm::Module::ModuleFlagEntry",-1)),t[954]||(t[954]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9787-L9790",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ki,[e("summary",null,[t[955]||(t[955]=e("a",{id:"Reactant.MLIR.API.LLVMModuleProviderRef",href:"#Reactant.MLIR.API.LLVMModuleProviderRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMModuleProviderRef")],-1)),t[956]||(t[956]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[957]||(t[957]=e("p",null,"Interface used to provide a module to JIT or interpreter. This is now just a synonym for llvm::Module, but we have to keep using the different type to keep binary compatibility.",-1)),t[958]||(t[958]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9728-L9730",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",$i,[e("summary",null,[t[959]||(t[959]=e("a",{id:"Reactant.MLIR.API.LLVMModuleRef",href:"#Reactant.MLIR.API.LLVMModuleRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMModuleRef")],-1)),t[960]||(t[960]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[961]||(t[961]=e("p",null,"The top-level container for all other LLVM Intermediate Representation (IR) objects.",-1)),t[962]||(t[962]=e("p",null,[e("strong",null,"See also")],-1)),t[963]||(t[963]=e("p",null,"llvm::Module",-1)),t[964]||(t[964]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9645-L9650",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Xi,[e("summary",null,[t[965]||(t[965]=e("a",{id:"Reactant.MLIR.API.LLVMNamedMDNodeRef",href:"#Reactant.MLIR.API.LLVMNamedMDNodeRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMNamedMDNodeRef")],-1)),t[966]||(t[966]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[967]||(t[967]=e("p",null,"Represents an LLVM Named Metadata Node.",-1)),t[968]||(t[968]=e("p",null,"This models llvm::NamedMDNode.",-1)),t[969]||(t[969]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9692-L9696",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Yi,[e("summary",null,[t[970]||(t[970]=e("a",{id:"Reactant.MLIR.API.LLVMOperandBundleRef",href:"#Reactant.MLIR.API.LLVMOperandBundleRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMOperandBundleRef")],-1)),t[971]||(t[971]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[972]||(t[972]=e("p",null,[e("strong",null,"See also")],-1)),t[973]||(t[973]=e("p",null,"llvm::OperandBundleDef",-1)),t[974]||(t[974]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9753-L9756",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",_i,[e("summary",null,[t[975]||(t[975]=e("a",{id:"Reactant.MLIR.API.LLVMPassManagerRef",href:"#Reactant.MLIR.API.LLVMPassManagerRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMPassManagerRef")],-1)),t[976]||(t[976]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[977]||(t[977]=e("p",null,[e("strong",null,"See also")],-1)),t[978]||(t[978]=e("p",null,"llvm::PassManagerBase",-1)),t[979]||(t[979]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9735-L9738",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",tl,[e("summary",null,[t[980]||(t[980]=e("a",{id:"Reactant.MLIR.API.LLVMTypeRef",href:"#Reactant.MLIR.API.LLVMTypeRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMTypeRef")],-1)),t[981]||(t[981]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[982]||(t[982]=e("p",null,[s("Each value in the LLVM IR has a type, an "),e("a",{href:"/Reactant.jl/previews/PR363/api/mlirc#Reactant.MLIR.API.LLVMTypeRef"},[e("code",null,"LLVMTypeRef")]),s(".")],-1)),t[983]||(t[983]=e("p",null,[e("strong",null,"See also")],-1)),t[984]||(t[984]=e("p",null,"llvm::Type",-1)),t[985]||(t[985]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9655-L9660",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",el,[e("summary",null,[t[986]||(t[986]=e("a",{id:"Reactant.MLIR.API.LLVMUseRef",href:"#Reactant.MLIR.API.LLVMUseRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMUseRef")],-1)),t[987]||(t[987]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[988]||(t[988]=e("p",null,"Used to get the users and usees of a Value.",-1)),t[989]||(t[989]=e("p",null,[e("strong",null,"See also")],-1)),t[990]||(t[990]=e("p",null,"llvm::Use",-1)),t[991]||(t[991]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9743-L9748",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",sl,[e("summary",null,[t[992]||(t[992]=e("a",{id:"Reactant.MLIR.API.LLVMValueMetadataEntry",href:"#Reactant.MLIR.API.LLVMValueMetadataEntry"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMValueMetadataEntry")],-1)),t[993]||(t[993]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[994]||(t[994]=e("p",null,"Represents an entry in a Global Object's metadata attachments.",-1)),t[995]||(t[995]=e("p",null,"This models std::pair",-1)),t[996]||(t[996]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9701-L9705",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",al,[e("summary",null,[t[997]||(t[997]=e("a",{id:"Reactant.MLIR.API.LLVMValueRef",href:"#Reactant.MLIR.API.LLVMValueRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMValueRef")],-1)),t[998]||(t[998]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[999]||(t[999]=e("p",null,"Represents an individual value in LLVM IR.",-1)),t[1e3]||(t[1e3]=e("p",null,"This models llvm::Value.",-1)),t[1001]||(t[1001]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9665-L9669",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",il,[e("summary",null,[t[1002]||(t[1002]=e("a",{id:"Reactant.MLIR.API.MlirDiagnostic",href:"#Reactant.MLIR.API.MlirDiagnostic"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnostic")],-1)),t[1003]||(t[1003]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1004]||(t[1004]=l('
julia
MlirDiagnostic

An opaque reference to a diagnostic, always owned by the diagnostics engine (context). Must not be stored outside of the diagnostic handler.

source

',3))]),e("details",ll,[e("summary",null,[t[1005]||(t[1005]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandler",href:"#Reactant.MLIR.API.MlirDiagnosticHandler"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandler")],-1)),t[1006]||(t[1006]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1007]||(t[1007]=e("p",null,[s("Diagnostic handler type. Accepts a reference to a diagnostic, which is only guaranteed to be live during the call. The handler is passed the "),e("code",null,"userData"),s(" that was provided when the handler was attached to a context. If the handler processed the diagnostic completely, it is expected to return success. Otherwise, it is expected to return failure to indicate that other handlers should attempt to process the diagnostic.")],-1)),t[1008]||(t[1008]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6718-L6720",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",nl,[e("summary",null,[t[1009]||(t[1009]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandlerID",href:"#Reactant.MLIR.API.MlirDiagnosticHandlerID"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandlerID")],-1)),t[1010]||(t[1010]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1011]||(t[1011]=e("p",null,"Opaque identifier of a diagnostic handler, useful to detach a handler.",-1)),t[1012]||(t[1012]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6712-L6714",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",pl,[e("summary",null,[t[1013]||(t[1013]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticSeverity",href:"#Reactant.MLIR.API.MlirDiagnosticSeverity"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticSeverity")],-1)),t[1014]||(t[1014]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1015]||(t[1015]=l('
julia
MlirDiagnosticSeverity

Severity of a diagnostic.

source

',3))]),e("details",rl,[e("summary",null,[t[1016]||(t[1016]=e("a",{id:"Reactant.MLIR.API.MlirExternalPassCallbacks",href:"#Reactant.MLIR.API.MlirExternalPassCallbacks"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirExternalPassCallbacks")],-1)),t[1017]||(t[1017]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1018]||(t[1018]=l('
julia
MlirExternalPassCallbacks

Structure of external MlirPass callbacks. All callbacks are required to be set unless otherwise specified.

FieldNote
constructThis callback is called from the pass is created. This is analogous to a C++ pass constructor.
destructThis callback is called when the pass is destroyed This is analogous to a C++ pass destructor.
initializeThis callback is optional. The callback is called before the pass is run, allowing a chance to initialize any complex state necessary for running the pass. See Pass::initialize(MLIRContext *).
cloneThis callback is called when the pass is cloned. See Pass::clonePass().
runThis callback is called when the pass is run. See Pass::runOnOperation().

source

',4))]),e("details",ol,[e("summary",null,[t[1019]||(t[1019]=e("a",{id:"Reactant.MLIR.API.MlirLlvmThreadPool",href:"#Reactant.MLIR.API.MlirLlvmThreadPool"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirLlvmThreadPool")],-1)),t[1020]||(t[1020]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1021]||(t[1021]=l('
julia
MlirLlvmThreadPool

Re-export llvm::ThreadPool so as to avoid including the LLVM C API directly.

source

',3))]),e("details",dl,[e("summary",null,[t[1022]||(t[1022]=e("a",{id:"Reactant.MLIR.API.MlirLogicalResult",href:"#Reactant.MLIR.API.MlirLogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirLogicalResult")],-1)),t[1023]||(t[1023]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1024]||(t[1024]=l('
julia
MlirLogicalResult

A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of MlirLogicalResult must only be inspected using the associated functions.

source

',3))]),e("details",cl,[e("summary",null,[t[1025]||(t[1025]=e("a",{id:"Reactant.MLIR.API.MlirNamedAttribute",href:"#Reactant.MLIR.API.MlirNamedAttribute"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirNamedAttribute")],-1)),t[1026]||(t[1026]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1027]||(t[1027]=l('
julia
MlirNamedAttribute

Named MLIR attribute.

A named attribute is essentially a (name, attribute) pair where the name is a string.

source

',4))]),e("details",hl,[e("summary",null,[t[1028]||(t[1028]=e("a",{id:"Reactant.MLIR.API.MlirOperationState",href:"#Reactant.MLIR.API.MlirOperationState"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationState")],-1)),t[1029]||(t[1029]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1030]||(t[1030]=l('
julia
MlirOperationState

An auxiliary class for constructing operations.

This class contains all the information necessary to construct the operation. It owns the MlirRegions it has pointers to and does not own anything else. By default, the state can be constructed from a name and location, the latter being also used to access the context, and has no other components. These components can be added progressively until the operation is constructed. Users are not expected to rely on the internals of this class and should use mlirOperationState* functions instead.

source

',4))]),e("details",ul,[e("summary",null,[t[1031]||(t[1031]=e("a",{id:"Reactant.MLIR.API.MlirOperationWalkCallback",href:"#Reactant.MLIR.API.MlirOperationWalkCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationWalkCallback")],-1)),t[1032]||(t[1032]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1033]||(t[1033]=e("p",null,[s("Operation walker type. The handler is passed an (opaque) reference to an operation and a pointer to a "),e("code",null,"userData"),s(".")],-1)),t[1034]||(t[1034]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L1495-L1497",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",bl,[e("summary",null,[t[1035]||(t[1035]=e("a",{id:"Reactant.MLIR.API.MlirShapedTypeComponentsCallback",href:"#Reactant.MLIR.API.MlirShapedTypeComponentsCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirShapedTypeComponentsCallback")],-1)),t[1036]||(t[1036]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1037]||(t[1037]=e("p",null,"These callbacks are used to return multiple shaped type components from functions while transferring ownership to the caller. The first argument is the has rank boolean followed by the the rank and a pointer to the shape (if applicable). The next argument is the element type, then the attribute. The last argument is an opaque pointer forwarded to the callback by the caller. This callback will be called potentially multiple times for each shaped type components.",-1)),t[1038]||(t[1038]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9100-L9102",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",gl,[e("summary",null,[t[1039]||(t[1039]=e("a",{id:"Reactant.MLIR.API.MlirSparseTensorLevelType",href:"#Reactant.MLIR.API.MlirSparseTensorLevelType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirSparseTensorLevelType")],-1)),t[1040]||(t[1040]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1041]||(t[1041]=e("p",null,"Dimension level types (and properties) that define sparse tensors. See the documentation in SparseTensorAttrDefs.td for their meaning.",-1)),t[1042]||(t[1042]=e("p",null,"These correspond to SparseTensorEncodingAttr::LevelType in the C++ API. If updating, keep them in sync and update the static_assert in the impl file.",-1)),t[1043]||(t[1043]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L8452-L8456",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",yl,[e("summary",null,[t[1044]||(t[1044]=e("a",{id:"Reactant.MLIR.API.MlirStringCallback",href:"#Reactant.MLIR.API.MlirStringCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringCallback")],-1)),t[1045]||(t[1045]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1046]||(t[1046]=e("p",null,"A callback for returning string references.",-1)),t[1047]||(t[1047]=e("p",null,[s("This function is called back by the functions that need to return a reference to the portion of the string with the following arguments: - an "),e("a",{href:"/Reactant.jl/previews/PR363/api/mlirc#Reactant.MLIR.API.MlirStringRef"},[e("code",null,"MlirStringRef")]),s(" representing the current portion of the string - a pointer to user data forwarded from the printing call.")],-1)),t[1048]||(t[1048]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L108-L112",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ml,[e("summary",null,[t[1049]||(t[1049]=e("a",{id:"Reactant.MLIR.API.MlirStringRef",href:"#Reactant.MLIR.API.MlirStringRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringRef")],-1)),t[1050]||(t[1050]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1051]||(t[1051]=l('
julia
MlirStringRef

A pointer to a sized fragment of a string, not necessarily null-terminated. Does not own the underlying string. This is equivalent to llvm::StringRef.

FieldNote
dataPointer to the first symbol.
lengthLength of the fragment.

source

',4))]),e("details",kl,[e("summary",null,[t[1052]||(t[1052]=e("a",{id:"Reactant.MLIR.API.MlirTypesCallback",href:"#Reactant.MLIR.API.MlirTypesCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirTypesCallback")],-1)),t[1053]||(t[1053]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1054]||(t[1054]=e("p",null,"These callbacks are used to return multiple types from functions while transferring ownership to the caller. The first argument is the number of consecutive elements pointed to by the second argument. The third argument is an opaque pointer forwarded to the callback by the caller.",-1)),t[1055]||(t[1055]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9052-L9054",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",fl,[e("summary",null,[t[1056]||(t[1056]=e("a",{id:"Reactant.MLIR.API.MlirWalkOrder",href:"#Reactant.MLIR.API.MlirWalkOrder"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirWalkOrder")],-1)),t[1057]||(t[1057]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1058]||(t[1058]=l('
julia
MlirWalkOrder

Traversal order for operation walk.

source

',3))]),e("details",Rl,[e("summary",null,[t[1059]||(t[1059]=e("a",{id:"Reactant.MLIR.API.MlirWalkResult",href:"#Reactant.MLIR.API.MlirWalkResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirWalkResult")],-1)),t[1060]||(t[1060]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1061]||(t[1061]=l('
julia
MlirWalkResult

Operation walk result.

source

',3))]),e("details",Il,[e("summary",null,[t[1062]||(t[1062]=e("a",{id:"Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}",href:"#Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMAddSymbol")],-1)),t[1063]||(t[1063]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1064]||(t[1064]=l('
julia
LLVMAddSymbol(symbolName, symbolValue)

This functions permanently adds the symbol symbolName with the value symbolValue. These symbols are searched before any libraries.

See also

sys::DynamicLibrary::AddSymbol()

source

',5))]),e("details",jl,[e("summary",null,[t[1065]||(t[1065]=e("a",{id:"Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMLoadLibraryPermanently")],-1)),t[1066]||(t[1066]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1067]||(t[1067]=l('
julia
LLVMLoadLibraryPermanently(Filename)

This function permanently loads the dynamic library at the given path. It is safe to call this function multiple times for the same library.

See also

sys::DynamicLibrary::LoadLibraryPermanently()

source

',5))]),e("details",Ml,[e("summary",null,[t[1068]||(t[1068]=e("a",{id:"Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMParseCommandLineOptions")],-1)),t[1069]||(t[1069]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1070]||(t[1070]=l('
julia
LLVMParseCommandLineOptions(argc, argv, Overview)

This function parses the given arguments using the LLVM command line parser. Note that the only stable thing about this function is its signature; you cannot rely on any particular set of command line arguments being interpreted the same way across LLVM versions.

See also

llvm:🆑:ParseCommandLineOptions()

source

',5))]),e("details",Al,[e("summary",null,[t[1071]||(t[1071]=e("a",{id:"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol")],-1)),t[1072]||(t[1072]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1073]||(t[1073]=l('
julia
LLVMSearchForAddressOfSymbol(symbolName)

This function will search through all previously loaded dynamic libraries for the symbol symbolName. If it is found, the address of that symbol is returned. If not, null is returned.

See also

sys::DynamicLibrary::SearchForAddressOfSymbol()

source

',5))]),e("details",Ll,[e("summary",null,[t[1074]||(t[1074]=e("a",{id:"Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineAddExprGet")],-1)),t[1075]||(t[1075]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1076]||(t[1076]=l('
julia
mlirAffineAddExprGet(lhs, rhs)

Creates an affine add expression with 'lhs' and 'rhs'.

source

',3))]),e("details",El,[e("summary",null,[t[1077]||(t[1077]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS")],-1)),t[1078]||(t[1078]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1079]||(t[1079]=l('
julia
mlirAffineBinaryOpExprGetLHS(affineExpr)

Returns the left hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",vl,[e("summary",null,[t[1080]||(t[1080]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS")],-1)),t[1081]||(t[1081]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1082]||(t[1082]=l('
julia
mlirAffineBinaryOpExprGetRHS(affineExpr)

Returns the right hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",Tl,[e("summary",null,[t[1083]||(t[1083]=e("a",{id:"Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineCeilDivExprGet")],-1)),t[1084]||(t[1084]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1085]||(t[1085]=l('
julia
mlirAffineCeilDivExprGet(lhs, rhs)

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

source

',3))]),e("details",Cl,[e("summary",null,[t[1086]||(t[1086]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGet")],-1)),t[1087]||(t[1087]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1088]||(t[1088]=l('
julia
mlirAffineConstantExprGet(ctx, constant)

Creates an affine constant expression with 'constant' in the context.

source

',3))]),e("details",xl,[e("summary",null,[t[1089]||(t[1089]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGetValue")],-1)),t[1090]||(t[1090]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1091]||(t[1091]=l('
julia
mlirAffineConstantExprGetValue(affineExpr)

Returns the value of the given affine constant expression.

source

',3))]),e("details",Fl,[e("summary",null,[t[1092]||(t[1092]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGet")],-1)),t[1093]||(t[1093]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1094]||(t[1094]=l('
julia
mlirAffineDimExprGet(ctx, position)

Creates an affine dimension expression with 'position' in the context.

source

',3))]),e("details",Pl,[e("summary",null,[t[1095]||(t[1095]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGetPosition")],-1)),t[1096]||(t[1096]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1097]||(t[1097]=l('
julia
mlirAffineDimExprGetPosition(affineExpr)

Returns the position of the given affine dimension expression.

source

',3))]),e("details",Dl,[e("summary",null,[t[1098]||(t[1098]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprCompose")],-1)),t[1099]||(t[1099]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1100]||(t[1100]=l('
julia
mlirAffineExprCompose(affineExpr, affineMap)

Composes the given map with the given expression.

source

',3))]),e("details",Ol,[e("summary",null,[t[1101]||(t[1101]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprDump")],-1)),t[1102]||(t[1102]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1103]||(t[1103]=l('
julia
mlirAffineExprDump(affineExpr)

Prints the affine expression to the standard error stream.

source

',3))]),e("details",Bl,[e("summary",null,[t[1104]||(t[1104]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprEqual")],-1)),t[1105]||(t[1105]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1106]||(t[1106]=l('
julia
mlirAffineExprEqual(lhs, rhs)

Returns true if the two affine expressions are equal.

source

',3))]),e("details",Gl,[e("summary",null,[t[1107]||(t[1107]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprGetContext")],-1)),t[1108]||(t[1108]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1109]||(t[1109]=l('
julia
mlirAffineExprGetContext(affineExpr)

Gets the context that owns the affine expression.

source

',3))]),e("details",zl,[e("summary",null,[t[1110]||(t[1110]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor")],-1)),t[1111]||(t[1111]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1112]||(t[1112]=l('
julia
mlirAffineExprGetLargestKnownDivisor(affineExpr)

Returns the greatest known integral divisor of this affine expression. The result is always positive.

source

',3))]),e("details",wl,[e("summary",null,[t[1113]||(t[1113]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAAdd")],-1)),t[1114]||(t[1114]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1115]||(t[1115]=l('
julia
mlirAffineExprIsAAdd(affineExpr)

Checks whether the given affine expression is an add expression.

source

',3))]),e("details",Sl,[e("summary",null,[t[1116]||(t[1116]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsABinary")],-1)),t[1117]||(t[1117]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1118]||(t[1118]=l('
julia
mlirAffineExprIsABinary(affineExpr)

Checks whether the given affine expression is binary.

source

',3))]),e("details",Nl,[e("summary",null,[t[1119]||(t[1119]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsACeilDiv")],-1)),t[1120]||(t[1120]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1121]||(t[1121]=l('
julia
mlirAffineExprIsACeilDiv(affineExpr)

Checks whether the given affine expression is an ceildiv expression.

source

',3))]),e("details",Vl,[e("summary",null,[t[1122]||(t[1122]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAConstant")],-1)),t[1123]||(t[1123]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1124]||(t[1124]=l('
julia
mlirAffineExprIsAConstant(affineExpr)

Checks whether the given affine expression is a constant expression.

source

',3))]),e("details",ql,[e("summary",null,[t[1125]||(t[1125]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsADim")],-1)),t[1126]||(t[1126]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1127]||(t[1127]=l('
julia
mlirAffineExprIsADim(affineExpr)

Checks whether the given affine expression is a dimension expression.

source

',3))]),e("details",Ul,[e("summary",null,[t[1128]||(t[1128]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv")],-1)),t[1129]||(t[1129]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1130]||(t[1130]=l('
julia
mlirAffineExprIsAFloorDiv(affineExpr)

Checks whether the given affine expression is an floordiv expression.

source

',3))]),e("details",Ql,[e("summary",null,[t[1131]||(t[1131]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMod")],-1)),t[1132]||(t[1132]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1133]||(t[1133]=l('
julia
mlirAffineExprIsAMod(affineExpr)

Checks whether the given affine expression is an mod expression.

source

',3))]),e("details",Wl,[e("summary",null,[t[1134]||(t[1134]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMul")],-1)),t[1135]||(t[1135]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1136]||(t[1136]=l('
julia
mlirAffineExprIsAMul(affineExpr)

Checks whether the given affine expression is an mul expression.

source

',3))]),e("details",Hl,[e("summary",null,[t[1137]||(t[1137]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsASymbol")],-1)),t[1138]||(t[1138]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1139]||(t[1139]=l('
julia
mlirAffineExprIsASymbol(affineExpr)

Checks whether the given affine expression is a symbol expression.

source

',3))]),e("details",Zl,[e("summary",null,[t[1140]||(t[1140]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim")],-1)),t[1141]||(t[1141]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1142]||(t[1142]=l('
julia
mlirAffineExprIsFunctionOfDim(affineExpr, position)

Checks whether the given affine expression involves AffineDimExpr 'position'.

source

',3))]),e("details",Jl,[e("summary",null,[t[1143]||(t[1143]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsMultipleOf")],-1)),t[1144]||(t[1144]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1145]||(t[1145]=l('
julia
mlirAffineExprIsMultipleOf(affineExpr, factor)

Checks whether the given affine expression is a multiple of 'factor'.

source

',3))]),e("details",Kl,[e("summary",null,[t[1146]||(t[1146]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsNull")],-1)),t[1147]||(t[1147]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1148]||(t[1148]=l('
julia
mlirAffineExprIsNull(affineExpr)

Returns true if the given affine expression is a null expression. Note constant zero is not a null expression.

source

',3))]),e("details",$l,[e("summary",null,[t[1149]||(t[1149]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsPureAffine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsPureAffine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsPureAffine")],-1)),t[1150]||(t[1150]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1151]||(t[1151]=l('
julia
mlirAffineExprIsPureAffine(affineExpr)

Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

source

',3))]),e("details",Xl,[e("summary",null,[t[1152]||(t[1152]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant")],-1)),t[1153]||(t[1153]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1154]||(t[1154]=l('
julia
mlirAffineExprIsSymbolicOrConstant(affineExpr)

Checks whether the given affine expression is made out of only symbols and constants.

source

',3))]),e("details",Yl,[e("summary",null,[t[1155]||(t[1155]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprPrint")],-1)),t[1156]||(t[1156]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1157]||(t[1157]=l('
julia
mlirAffineExprPrint(affineExpr, callback, userData)

Prints an affine expression by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",_l,[e("summary",null,[t[1158]||(t[1158]=e("a",{id:"Reactant.MLIR.API.mlirAffineFloorDivExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineFloorDivExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineFloorDivExprGet")],-1)),t[1159]||(t[1159]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1160]||(t[1160]=l('
julia
mlirAffineFloorDivExprGet(lhs, rhs)

Creates an affine floordiv expression with 'lhs' and 'rhs'.

source

',3))]),e("details",tn,[e("summary",null,[t[1161]||(t[1161]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGet")],-1)),t[1162]||(t[1162]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1163]||(t[1163]=l('
julia
mlirAffineMapAttrGet(map)

Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.

source

',3))]),e("details",en,[e("summary",null,[t[1164]||(t[1164]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID")],-1)),t[1165]||(t[1165]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1166]||(t[1166]=l('
julia
mlirAffineMapAttrGetTypeID()

Returns the typeID of an AffineMap attribute.

source

',3))]),e("details",sn,[e("summary",null,[t[1167]||(t[1167]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetValue")],-1)),t[1168]||(t[1168]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1169]||(t[1169]=l('
julia
mlirAffineMapAttrGetValue(attr)

Returns the affine map wrapped in the given affine map attribute.

source

',3))]),e("details",an,[e("summary",null,[t[1170]||(t[1170]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols")],-1)),t[1171]||(t[1171]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1172]||(t[1172]=l('
julia
mlirAffineMapCompressUnusedSymbols(affineMaps, size, result, populateResult)

Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps. Asserts that all maps in affineMaps are normalized to the same number of dims and symbols. Takes a callback populateResult to fill the res container with value m at entry idx. This allows returning without worrying about ownership considerations.

source

',3))]),e("details",ln,[e("summary",null,[t[1173]||(t[1173]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapConstantGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapConstantGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapConstantGet")],-1)),t[1174]||(t[1174]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1175]||(t[1175]=l('
julia
mlirAffineMapConstantGet(ctx, val)

Creates a single constant result affine map in the context. The affine map is owned by the context.

source

',3))]),e("details",nn,[e("summary",null,[t[1176]||(t[1176]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapDump")],-1)),t[1177]||(t[1177]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1178]||(t[1178]=l('
julia
mlirAffineMapDump(affineMap)

Prints the affine map to the standard error stream.

source

',3))]),e("details",pn,[e("summary",null,[t[1179]||(t[1179]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEmptyGet")],-1)),t[1180]||(t[1180]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1181]||(t[1181]=l('
julia
mlirAffineMapEmptyGet(ctx)

Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",rn,[e("summary",null,[t[1182]||(t[1182]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEqual")],-1)),t[1183]||(t[1183]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1184]||(t[1184]=l('
julia
mlirAffineMapEqual(a1, a2)

Checks if two affine maps are equal.

source

',3))]),e("details",on,[e("summary",null,[t[1185]||(t[1185]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGet")],-1)),t[1186]||(t[1186]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1187]||(t[1187]=l('
julia
mlirAffineMapGet(ctx, dimCount, symbolCount, nAffineExprs, affineExprs)

Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.

source

',3))]),e("details",dn,[e("summary",null,[t[1188]||(t[1188]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetContext")],-1)),t[1189]||(t[1189]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1190]||(t[1190]=l('
julia
mlirAffineMapGetContext(affineMap)

Gets the context that the given affine map was created with

source

',3))]),e("details",cn,[e("summary",null,[t[1191]||(t[1191]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap")],-1)),t[1192]||(t[1192]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1193]||(t[1193]=l('
julia
mlirAffineMapGetMajorSubMap(affineMap, numResults)

Returns the affine map consisting of the most major numResults results. Returns the null AffineMap if the numResults is equal to zero. Returns the affineMap if numResults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",hn,[e("summary",null,[t[1194]||(t[1194]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetMinorSubMap-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetMinorSubMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetMinorSubMap")],-1)),t[1195]||(t[1195]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1196]||(t[1196]=l('
julia
mlirAffineMapGetMinorSubMap(affineMap, numResults)

Returns the affine map consisting of the most minor numResults results. Returns the null AffineMap if the numResults is equal to zero. Returns the affineMap if numResults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",un,[e("summary",null,[t[1197]||(t[1197]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumDims")],-1)),t[1198]||(t[1198]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1199]||(t[1199]=l('
julia
mlirAffineMapGetNumDims(affineMap)

Returns the number of dimensions of the given affine map.

source

',3))]),e("details",bn,[e("summary",null,[t[1200]||(t[1200]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumInputs")],-1)),t[1201]||(t[1201]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1202]||(t[1202]=l('
julia
mlirAffineMapGetNumInputs(affineMap)

Returns the number of inputs (dimensions + symbols) of the given affine map.

source

',3))]),e("details",gn,[e("summary",null,[t[1203]||(t[1203]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumResults")],-1)),t[1204]||(t[1204]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1205]||(t[1205]=l('
julia
mlirAffineMapGetNumResults(affineMap)

Returns the number of results of the given affine map.

source

',3))]),e("details",yn,[e("summary",null,[t[1206]||(t[1206]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumSymbols")],-1)),t[1207]||(t[1207]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1208]||(t[1208]=l('
julia
mlirAffineMapGetNumSymbols(affineMap)

Returns the number of symbols of the given affine map.

source

',3))]),e("details",mn,[e("summary",null,[t[1209]||(t[1209]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetResult")],-1)),t[1210]||(t[1210]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1211]||(t[1211]=l('
julia
mlirAffineMapGetResult(affineMap, pos)

Returns the result at the given position.

source

',3))]),e("details",kn,[e("summary",null,[t[1212]||(t[1212]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult")],-1)),t[1213]||(t[1213]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1214]||(t[1214]=l('
julia
mlirAffineMapGetSingleConstantResult(affineMap)

Returns the constant result of the given affine map. The function asserts that the map has a single constant result.

source

',3))]),e("details",fn,[e("summary",null,[t[1215]||(t[1215]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSubMap")],-1)),t[1216]||(t[1216]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1217]||(t[1217]=l('
julia
mlirAffineMapGetSubMap(affineMap, size, resultPos)

Returns the affine map consisting of the resultPos subset.

source

',3))]),e("details",Rn,[e("summary",null,[t[1218]||(t[1218]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsEmpty")],-1)),t[1219]||(t[1219]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1220]||(t[1220]=l('
julia
mlirAffineMapIsEmpty(affineMap)

Checks whether the given affine map is an empty affine map.

source

',3))]),e("details",In,[e("summary",null,[t[1221]||(t[1221]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsIdentity")],-1)),t[1222]||(t[1222]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1223]||(t[1223]=l('
julia
mlirAffineMapIsIdentity(affineMap)

Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",jn,[e("summary",null,[t[1224]||(t[1224]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity")],-1)),t[1225]||(t[1225]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1226]||(t[1226]=l('
julia
mlirAffineMapIsMinorIdentity(affineMap)

Checks whether the given affine map is a minor identity affine map.

source

',3))]),e("details",Mn,[e("summary",null,[t[1227]||(t[1227]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsNull")],-1)),t[1228]||(t[1228]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1229]||(t[1229]=l('
julia
mlirAffineMapIsNull(affineMap)

Checks whether an affine map is null.

source

',3))]),e("details",An,[e("summary",null,[t[1230]||(t[1230]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsPermutation")],-1)),t[1231]||(t[1231]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1232]||(t[1232]=l('
julia
mlirAffineMapIsPermutation(affineMap)

Checks whether the given affine map represents a symbol-less permutation map.

source

',3))]),e("details",Ln,[e("summary",null,[t[1233]||(t[1233]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation")],-1)),t[1234]||(t[1234]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1235]||(t[1235]=l('
julia
mlirAffineMapIsProjectedPermutation(affineMap)

Checks whether the given affine map represents a subset of a symbol-less permutation map.

source

',3))]),e("details",En,[e("summary",null,[t[1236]||(t[1236]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsSingleConstant")],-1)),t[1237]||(t[1237]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1238]||(t[1238]=l('
julia
mlirAffineMapIsSingleConstant(affineMap)

Checks whether the given affine map is a single result constant affine map.

source

',3))]),e("details",vn,[e("summary",null,[t[1239]||(t[1239]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet")],-1)),t[1240]||(t[1240]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1241]||(t[1241]=l('
julia
mlirAffineMapMinorIdentityGet(ctx, dims, results)

Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",Tn,[e("summary",null,[t[1242]||(t[1242]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet")],-1)),t[1243]||(t[1243]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1244]||(t[1244]=l('
julia
mlirAffineMapMultiDimIdentityGet(ctx, numDims)

Creates an affine map with 'numDims' identity in the context. The affine map is owned by the context.

source

',3))]),e("details",Cn,[e("summary",null,[t[1245]||(t[1245]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapPermutationGet")],-1)),t[1246]||(t[1246]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1247]||(t[1247]=l('
julia
mlirAffineMapPermutationGet(ctx, size, permutation)

Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0] is a valid permutation. [2,0] or [1,1,2] is an invalid permutation.) The affine map is owned by the context.

source

',3))]),e("details",xn,[e("summary",null,[t[1248]||(t[1248]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapPrint")],-1)),t[1249]||(t[1249]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1250]||(t[1250]=l('
julia
mlirAffineMapPrint(affineMap, callback, userData)

Prints an affine map by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Fn,[e("summary",null,[t[1251]||(t[1251]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapReplace-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAffineMapReplace-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapReplace")],-1)),t[1252]||(t[1252]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1253]||(t[1253]=l('
julia
mlirAffineMapReplace(affineMap, expression, replacement, numResultDims, numResultSyms)

Apply AffineExpr::replace(map) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.

source

',3))]),e("details",Pn,[e("summary",null,[t[1254]||(t[1254]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapZeroResultGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapZeroResultGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapZeroResultGet")],-1)),t[1255]||(t[1255]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1256]||(t[1256]=l('
julia
mlirAffineMapZeroResultGet(ctx, dimCount, symbolCount)

Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",Dn,[e("summary",null,[t[1257]||(t[1257]=e("a",{id:"Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineModExprGet")],-1)),t[1258]||(t[1258]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1259]||(t[1259]=l('
julia
mlirAffineModExprGet(lhs, rhs)

Creates an affine mod expression with 'lhs' and 'rhs'.

source

',3))]),e("details",On,[e("summary",null,[t[1260]||(t[1260]=e("a",{id:"Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMulExprGet")],-1)),t[1261]||(t[1261]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1262]||(t[1262]=l('
julia
mlirAffineMulExprGet(lhs, rhs)

Creates an affine mul expression with 'lhs' and 'rhs'.

source

',3))]),e("details",Bn,[e("summary",null,[t[1263]||(t[1263]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGet")],-1)),t[1264]||(t[1264]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1265]||(t[1265]=l('
julia
mlirAffineSymbolExprGet(ctx, position)

Creates an affine symbol expression with 'position' in the context.

source

',3))]),e("details",Gn,[e("summary",null,[t[1266]||(t[1266]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition")],-1)),t[1267]||(t[1267]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1268]||(t[1268]=l('
julia
mlirAffineSymbolExprGetPosition(affineExpr)

Returns the position of the given affine symbol expression.

source

',3))]),e("details",zn,[e("summary",null,[t[1269]||(t[1269]=e("a",{id:"Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAnyQuantizedTypeGet")],-1)),t[1270]||(t[1270]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1271]||(t[1271]=l('
julia
mlirAnyQuantizedTypeGet(flags, storageType, expressedType, storageTypeMin, storageTypeMax)

Creates an instance of AnyQuantizedType with the given parameters in the same context as storageType and returns it. The instance is owned by the context.

source

',3))]),e("details",wn,[e("summary",null,[t[1272]||(t[1272]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGet")],-1)),t[1273]||(t[1273]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1274]||(t[1274]=l('
julia
mlirArrayAttrGet(ctx, numElements, elements)

Creates an array element containing the given list of elements in the given context.

source

',3))]),e("details",Sn,[e("summary",null,[t[1275]||(t[1275]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetElement")],-1)),t[1276]||(t[1276]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1277]||(t[1277]=l('
julia
mlirArrayAttrGetElement(attr, pos)

Returns pos-th element stored in the given array attribute.

source

',3))]),e("details",Nn,[e("summary",null,[t[1278]||(t[1278]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetNumElements")],-1)),t[1279]||(t[1279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1280]||(t[1280]=l('
julia
mlirArrayAttrGetNumElements(attr)

Returns the number of elements stored in the given array attribute.

source

',3))]),e("details",Vn,[e("summary",null,[t[1281]||(t[1281]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetTypeID")],-1)),t[1282]||(t[1282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1283]||(t[1283]=l('
julia
mlirArrayAttrGetTypeID()

Returns the typeID of an Array attribute.

source

',3))]),e("details",qn,[e("summary",null,[t[1284]||(t[1284]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateCreateForOperation")],-1)),t[1285]||(t[1285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1286]||(t[1286]=l('
julia
mlirAsmStateCreateForOperation(op, flags)

Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state. Must be freed with a call to mlirAsmStateDestroy().

source

',3))]),e("details",Un,[e("summary",null,[t[1287]||(t[1287]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateCreateForValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAsmStateCreateForValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateCreateForValue")],-1)),t[1288]||(t[1288]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1289]||(t[1289]=l('
julia
mlirAsmStateCreateForValue(value, flags)

Creates new AsmState from value. Must be freed with a call to mlirAsmStateDestroy().

source

',3))]),e("details",Qn,[e("summary",null,[t[1290]||(t[1290]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAsmStateDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateDestroy")],-1)),t[1291]||(t[1291]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1292]||(t[1292]=l('
julia
mlirAsmStateDestroy(state)

Destroys printing flags created with mlirAsmStateCreate.

source

',3))]),e("details",Wn,[e("summary",null,[t[1293]||(t[1293]=e("a",{id:"Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeDump")],-1)),t[1294]||(t[1294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1295]||(t[1295]=l('
julia
mlirAttributeDump(attr)

Prints the attribute to the standard error stream.

source

',3))]),e("details",Hn,[e("summary",null,[t[1296]||(t[1296]=e("a",{id:"Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeEqual")],-1)),t[1297]||(t[1297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1298]||(t[1298]=l('
julia
mlirAttributeEqual(a1, a2)

Checks if two attributes are equal.

source

',3))]),e("details",Zn,[e("summary",null,[t[1299]||(t[1299]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetContext")],-1)),t[1300]||(t[1300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1301]||(t[1301]=l('
julia
mlirAttributeGetContext(attribute)

Gets the context that an attribute was created with.

source

',3))]),e("details",Jn,[e("summary",null,[t[1302]||(t[1302]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetDialect")],-1)),t[1303]||(t[1303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1304]||(t[1304]=l('
julia
mlirAttributeGetDialect(attribute)

Gets the dialect of the attribute.

source

',3))]),e("details",Kn,[e("summary",null,[t[1305]||(t[1305]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}",href:"#Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetNull")],-1)),t[1306]||(t[1306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1307]||(t[1307]=l('
julia
mlirAttributeGetNull()

Returns an empty attribute.

source

',3))]),e("details",$n,[e("summary",null,[t[1308]||(t[1308]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetType")],-1)),t[1309]||(t[1309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1310]||(t[1310]=l('
julia
mlirAttributeGetType(attribute)

Gets the type of this attribute.

source

',3))]),e("details",Xn,[e("summary",null,[t[1311]||(t[1311]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetTypeID")],-1)),t[1312]||(t[1312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1313]||(t[1313]=l('
julia
mlirAttributeGetTypeID(attribute)

Gets the type id of the attribute.

source

',3))]),e("details",Yn,[e("summary",null,[t[1314]||(t[1314]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAAffineMap")],-1)),t[1315]||(t[1315]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1316]||(t[1316]=l('
julia
mlirAttributeIsAAffineMap(attr)

Checks whether the given attribute is an affine map attribute.

source

',3))]),e("details",_n,[e("summary",null,[t[1317]||(t[1317]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAArray")],-1)),t[1318]||(t[1318]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1319]||(t[1319]=l('
julia
mlirAttributeIsAArray(attr)

Checks whether the given attribute is an array attribute.

source

',3))]),e("details",tp,[e("summary",null,[t[1320]||(t[1320]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsABool")],-1)),t[1321]||(t[1321]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1322]||(t[1322]=l('
julia
mlirAttributeIsABool(attr)

Checks whether the given attribute is a bool attribute.

source

',3))]),e("details",ep,[e("summary",null,[t[1323]||(t[1323]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray")],-1)),t[1324]||(t[1324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1325]||(t[1325]=l('
julia
mlirAttributeIsADenseBoolArray(attr)

Checks whether the given attribute is a dense array attribute.

source

',3))]),e("details",sp,[e("summary",null,[t[1326]||(t[1326]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseElements")],-1)),t[1327]||(t[1327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1328]||(t[1328]=l('
julia
mlirAttributeIsADenseElements(attr)

Checks whether the given attribute is a dense elements attribute.

source

',3))]),e("details",ap,[e("summary",null,[t[1329]||(t[1329]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADictionary")],-1)),t[1330]||(t[1330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1331]||(t[1331]=l('
julia
mlirAttributeIsADictionary(attr)

Checks whether the given attribute is a dictionary attribute.

source

',3))]),e("details",ip,[e("summary",null,[t[1332]||(t[1332]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAElements")],-1)),t[1333]||(t[1333]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1334]||(t[1334]=l('
julia
mlirAttributeIsAElements(attr)

Checks whether the given attribute is an elements attribute.

source

',3))]),e("details",lp,[e("summary",null,[t[1335]||(t[1335]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef")],-1)),t[1336]||(t[1336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1337]||(t[1337]=l('
julia
mlirAttributeIsAFlatSymbolRef(attr)

Checks whether the given attribute is a flat symbol reference attribute.

source

',3))]),e("details",np,[e("summary",null,[t[1338]||(t[1338]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFloat")],-1)),t[1339]||(t[1339]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1340]||(t[1340]=l('
julia
mlirAttributeIsAFloat(attr)

Checks whether the given attribute is a floating point attribute.

source

',3))]),e("details",pp,[e("summary",null,[t[1341]||(t[1341]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAInteger")],-1)),t[1342]||(t[1342]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1343]||(t[1343]=l('
julia
mlirAttributeIsAInteger(attr)

Checks whether the given attribute is an integer attribute.

source

',3))]),e("details",rp,[e("summary",null,[t[1344]||(t[1344]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAIntegerSet")],-1)),t[1345]||(t[1345]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1346]||(t[1346]=l('
julia
mlirAttributeIsAIntegerSet(attr)

Checks whether the given attribute is an integer set attribute.

source

',3))]),e("details",op,[e("summary",null,[t[1347]||(t[1347]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAOpaque")],-1)),t[1348]||(t[1348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1349]||(t[1349]=l('
julia
mlirAttributeIsAOpaque(attr)

Checks whether the given attribute is an opaque attribute.

source

',3))]),e("details",dp,[e("summary",null,[t[1350]||(t[1350]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseElements")],-1)),t[1351]||(t[1351]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1352]||(t[1352]=l('
julia
mlirAttributeIsASparseElements(attr)

Checks whether the given attribute is a sparse elements attribute.

source

',3))]),e("details",cp,[e("summary",null,[t[1353]||(t[1353]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr")],-1)),t[1354]||(t[1354]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1355]||(t[1355]=l('
julia
mlirAttributeIsASparseTensorEncodingAttr(attr)

Checks whether the given attribute is a sparse\\_tensor.encoding attribute.

source

',3))]),e("details",hp,[e("summary",null,[t[1356]||(t[1356]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAString-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAString-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAString")],-1)),t[1357]||(t[1357]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1358]||(t[1358]=l('
julia
mlirAttributeIsAString(attr)

Checks whether the given attribute is a string attribute.

source

',3))]),e("details",up,[e("summary",null,[t[1359]||(t[1359]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASymbolRef")],-1)),t[1360]||(t[1360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1361]||(t[1361]=l('
julia
mlirAttributeIsASymbolRef(attr)

Checks whether the given attribute is a symbol reference attribute.

source

',3))]),e("details",bp,[e("summary",null,[t[1362]||(t[1362]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAType")],-1)),t[1363]||(t[1363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1364]||(t[1364]=l('
julia
mlirAttributeIsAType(attr)

Checks whether the given attribute is a type attribute.

source

',3))]),e("details",gp,[e("summary",null,[t[1365]||(t[1365]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAUnit")],-1)),t[1366]||(t[1366]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1367]||(t[1367]=l('
julia
mlirAttributeIsAUnit(attr)

Checks whether the given attribute is a unit attribute.

source

',3))]),e("details",yp,[e("summary",null,[t[1368]||(t[1368]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsNull")],-1)),t[1369]||(t[1369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1370]||(t[1370]=l('
julia
mlirAttributeIsNull(attr)

Checks whether an attribute is null.

source

',3))]),e("details",mp,[e("summary",null,[t[1371]||(t[1371]=e("a",{id:"Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeParseGet")],-1)),t[1372]||(t[1372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1373]||(t[1373]=l('
julia
mlirAttributeParseGet(context, attr)

Parses an attribute. The attribute is owned by the context.

source

',3))]),e("details",kp,[e("summary",null,[t[1374]||(t[1374]=e("a",{id:"Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributePrint")],-1)),t[1375]||(t[1375]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1376]||(t[1376]=l('
julia
mlirAttributePrint(attr, callback, userData)

Prints an attribute by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",fp,[e("summary",null,[t[1377]||(t[1377]=e("a",{id:"Reactant.MLIR.API.mlirBF16TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBF16TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBF16TypeGet")],-1)),t[1378]||(t[1378]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1379]||(t[1379]=l('
julia
mlirBF16TypeGet(ctx)

Creates a bf16 type in the given context. The type is owned by the context.

source

',3))]),e("details",Rp,[e("summary",null,[t[1380]||(t[1380]=e("a",{id:"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID")],-1)),t[1381]||(t[1381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1382]||(t[1382]=l('
julia
mlirBFloat16TypeGetTypeID()

Returns the typeID of an BFloat16 type.

source

',3))]),e("details",Ip,[e("summary",null,[t[1383]||(t[1383]=e("a",{id:"Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAddArgument")],-1)),t[1384]||(t[1384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1385]||(t[1385]=l('
julia
mlirBlockAddArgument(block, type, loc)

Appends an argument of the specified type to the block. Returns the newly added argument.

source

',3))]),e("details",jp,[e("summary",null,[t[1386]||(t[1386]=e("a",{id:"Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAppendOwnedOperation")],-1)),t[1387]||(t[1387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1388]||(t[1388]=l('
julia
mlirBlockAppendOwnedOperation(block, operation)

Takes an operation owned by the caller and appends it to the block.

source

',3))]),e("details",Mp,[e("summary",null,[t[1389]||(t[1389]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber")],-1)),t[1390]||(t[1390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1391]||(t[1391]=l('
julia
mlirBlockArgumentGetArgNumber(value)

Returns the position of the value in the argument list of its block.

source

',3))]),e("details",Ap,[e("summary",null,[t[1392]||(t[1392]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetOwner")],-1)),t[1393]||(t[1393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1394]||(t[1394]=l('
julia
mlirBlockArgumentGetOwner(value)

Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.

source

',3))]),e("details",Lp,[e("summary",null,[t[1395]||(t[1395]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentSetType")],-1)),t[1396]||(t[1396]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1397]||(t[1397]=l('
julia
mlirBlockArgumentSetType(value, type)

Sets the type of the block argument to the given type.

source

',3))]),e("details",Ep,[e("summary",null,[t[1398]||(t[1398]=e("a",{id:"Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockCreate")],-1)),t[1399]||(t[1399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1400]||(t[1400]=l('
julia
mlirBlockCreate(nArgs, args, locs)

Creates a new empty block with the given argument types and transfers ownership to the caller.

source

',3))]),e("details",vp,[e("summary",null,[t[1401]||(t[1401]=e("a",{id:"Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDestroy")],-1)),t[1402]||(t[1402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1403]||(t[1403]=l('
julia
mlirBlockDestroy(block)

Takes a block owned by the caller and destroys it.

source

',3))]),e("details",Tp,[e("summary",null,[t[1404]||(t[1404]=e("a",{id:"Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDetach")],-1)),t[1405]||(t[1405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1406]||(t[1406]=l('
julia
mlirBlockDetach(block)

Detach a block from the owning region and assume ownership.

source

',3))]),e("details",Cp,[e("summary",null,[t[1407]||(t[1407]=e("a",{id:"Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEqual")],-1)),t[1408]||(t[1408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1409]||(t[1409]=l('
julia
mlirBlockEqual(block, other)

Checks whether two blocks handles point to the same block. This does not perform deep comparison.

source

',3))]),e("details",xp,[e("summary",null,[t[1410]||(t[1410]=e("a",{id:"Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEraseArgument")],-1)),t[1411]||(t[1411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1412]||(t[1412]=l('
julia
mlirBlockEraseArgument(block, index)

Erase the argument at 'index' and remove it from the argument list.

source

',3))]),e("details",Fp,[e("summary",null,[t[1413]||(t[1413]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetArgument")],-1)),t[1414]||(t[1414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1415]||(t[1415]=l('
julia
mlirBlockGetArgument(block, pos)

Returns pos-th argument of the block.

source

',3))]),e("details",Pp,[e("summary",null,[t[1416]||(t[1416]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetFirstOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetFirstOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetFirstOperation")],-1)),t[1417]||(t[1417]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1418]||(t[1418]=l('
julia
mlirBlockGetFirstOperation(block)

Returns the first operation in the block.

source

',3))]),e("details",Dp,[e("summary",null,[t[1419]||(t[1419]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNextInRegion")],-1)),t[1420]||(t[1420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1421]||(t[1421]=l('
julia
mlirBlockGetNextInRegion(block)

Returns the block immediately following the given block in its parent region.

source

',3))]),e("details",Op,[e("summary",null,[t[1422]||(t[1422]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNumArguments")],-1)),t[1423]||(t[1423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1424]||(t[1424]=l('
julia
mlirBlockGetNumArguments(block)

Returns the number of arguments of the block.

source

',3))]),e("details",Bp,[e("summary",null,[t[1425]||(t[1425]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentOperation")],-1)),t[1426]||(t[1426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1427]||(t[1427]=l('
julia
mlirBlockGetParentOperation(arg1)

Returns the closest surrounding operation that contains this block.

source

',3))]),e("details",Gp,[e("summary",null,[t[1428]||(t[1428]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentRegion")],-1)),t[1429]||(t[1429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1430]||(t[1430]=l('
julia
mlirBlockGetParentRegion(block)

Returns the region that contains this block.

source

',3))]),e("details",zp,[e("summary",null,[t[1431]||(t[1431]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetTerminator")],-1)),t[1432]||(t[1432]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1433]||(t[1433]=l('
julia
mlirBlockGetTerminator(block)

Returns the terminator operation in the block or null if no terminator.

source

',3))]),e("details",wp,[e("summary",null,[t[1434]||(t[1434]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertArgument")],-1)),t[1435]||(t[1435]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1436]||(t[1436]=l('
julia
mlirBlockInsertArgument(block, pos, type, loc)

Inserts an argument of the specified type at a specified index to the block. Returns the newly added argument.

source

',3))]),e("details",Sp,[e("summary",null,[t[1437]||(t[1437]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperation")],-1)),t[1438]||(t[1438]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1439]||(t[1439]=l('
julia
mlirBlockInsertOwnedOperation(block, pos, operation)

Takes an operation owned by the caller and inserts it as pos to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.

source

',3))]),e("details",Np,[e("summary",null,[t[1440]||(t[1440]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter")],-1)),t[1441]||(t[1441]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1442]||(t[1442]=l('
julia
mlirBlockInsertOwnedOperationAfter(block, reference, operation)

Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",Vp,[e("summary",null,[t[1443]||(t[1443]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore")],-1)),t[1444]||(t[1444]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1445]||(t[1445]=l('
julia
mlirBlockInsertOwnedOperationBefore(block, reference, operation)

Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",qp,[e("summary",null,[t[1446]||(t[1446]=e("a",{id:"Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockIsNull")],-1)),t[1447]||(t[1447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1448]||(t[1448]=l('
julia
mlirBlockIsNull(block)

Checks whether a block is null.

source

',3))]),e("details",Up,[e("summary",null,[t[1449]||(t[1449]=e("a",{id:"Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockPrint")],-1)),t[1450]||(t[1450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1451]||(t[1451]=l('
julia
mlirBlockPrint(block, callback, userData)

Prints a block by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Qp,[e("summary",null,[t[1452]||(t[1452]=e("a",{id:"Reactant.MLIR.API.mlirBoolAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBoolAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBoolAttrGet")],-1)),t[1453]||(t[1453]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1454]||(t[1454]=l('
julia
mlirBoolAttrGet(ctx, value)

Creates a bool attribute in the given context with the given value.

source

',3))]),e("details",Wp,[e("summary",null,[t[1455]||(t[1455]=e("a",{id:"Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBoolAttrGetValue")],-1)),t[1456]||(t[1456]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1457]||(t[1457]=l('
julia
mlirBoolAttrGetValue(attr)

Returns the value stored in the given bool attribute.

source

',3))]),e("details",Hp,[e("summary",null,[t[1458]||(t[1458]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate")],-1)),t[1459]||(t[1459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1460]||(t[1460]=l('
julia
mlirBytecodeWriterConfigCreate()

Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirBytecodeWriterConfigDestroy().

source

',3))]),e("details",Zp,[e("summary",null,[t[1461]||(t[1461]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion")],-1)),t[1462]||(t[1462]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1463]||(t[1463]=l('
julia
mlirBytecodeWriterConfigDesiredEmitVersion(flags, version)

Sets the version to emit in the writer config.

source

',3))]),e("details",Jp,[e("summary",null,[t[1464]||(t[1464]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy")],-1)),t[1465]||(t[1465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1466]||(t[1466]=l('
julia
mlirBytecodeWriterConfigDestroy(config)

Destroys printing flags created with mlirBytecodeWriterConfigCreate.

source

',3))]),e("details",Kp,[e("summary",null,[t[1467]||(t[1467]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet")],-1)),t[1468]||(t[1468]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1469]||(t[1469]=l('
julia
mlirCalibratedQuantizedTypeGet(expressedType, min, max)

Creates an instance of CalibratedQuantizedType with the given parameters in the same context as expressedType and returns it. The instance is owned by the context.

source

',3))]),e("details",$p,[e("summary",null,[t[1470]||(t[1470]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax-Tuple{Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax")],-1)),t[1471]||(t[1471]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1472]||(t[1472]=l('
julia
mlirCalibratedQuantizedTypeGetMax(type)

Returns the max value of the given calibrated quantized type.

source

',3))]),e("details",Xp,[e("summary",null,[t[1473]||(t[1473]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin")],-1)),t[1474]||(t[1474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1475]||(t[1475]=l('
julia
mlirCalibratedQuantizedTypeGetMin(type)

Returns the min value of the given calibrated quantized type.

source

',3))]),e("details",Yp,[e("summary",null,[t[1476]||(t[1476]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGet")],-1)),t[1477]||(t[1477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1478]||(t[1478]=l('
julia
mlirComplexTypeGet(elementType)

Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",_p,[e("summary",null,[t[1479]||(t[1479]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetElementType")],-1)),t[1480]||(t[1480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1481]||(t[1481]=l('
julia
mlirComplexTypeGetElementType(type)

Returns the element type of the given complex type.

source

',3))]),e("details",tr,[e("summary",null,[t[1482]||(t[1482]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetTypeID")],-1)),t[1483]||(t[1483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1484]||(t[1484]=l('
julia
mlirComplexTypeGetTypeID()

Returns the typeID of an Complex type.

source

',3))]),e("details",er,[e("summary",null,[t[1485]||(t[1485]=e("a",{id:"Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAppendDialectRegistry")],-1)),t[1486]||(t[1486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1487]||(t[1487]=l('
julia
mlirContextAppendDialectRegistry(ctx, registry)

Append the contents of the given dialect registry to the registry associated with the context.

source

',3))]),e("details",sr,[e("summary",null,[t[1488]||(t[1488]=e("a",{id:"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler")],-1)),t[1489]||(t[1489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1490]||(t[1490]=l('
julia
mlirContextAttachDiagnosticHandler(context, handler, userData, deleteUserData)

Attaches the diagnostic handler to the context. Handlers are invoked in the reverse order of attachment until one of them processes the diagnostic completely. When a handler is invoked it is passed the userData that was provided when it was attached. If non-NULL, deleteUserData is called once the system no longer needs to call the handler (for instance after the handler is detached or the context is destroyed). Returns an identifier that can be used to detach the handler.

source

',3))]),e("details",ar,[e("summary",null,[t[1491]||(t[1491]=e("a",{id:"Reactant.MLIR.API.mlirContextCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirContextCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreate")],-1)),t[1492]||(t[1492]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1493]||(t[1493]=l('
julia
mlirContextCreate()

Creates an MLIR context and transfers its ownership to the caller. This sets the default multithreading option (enabled).

source

',3))]),e("details",ir,[e("summary",null,[t[1494]||(t[1494]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithRegistry")],-1)),t[1495]||(t[1495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1496]||(t[1496]=l('
julia
mlirContextCreateWithRegistry(registry, threadingEnabled)

Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry.

source

',3))]),e("details",lr,[e("summary",null,[t[1497]||(t[1497]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithThreading")],-1)),t[1498]||(t[1498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1499]||(t[1499]=l('
julia
mlirContextCreateWithThreading(threadingEnabled)

Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller.

source

',3))]),e("details",nr,[e("summary",null,[t[1500]||(t[1500]=e("a",{id:"Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDestroy")],-1)),t[1501]||(t[1501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1502]||(t[1502]=l('
julia
mlirContextDestroy(context)

Takes an MLIR context owned by the caller and destroys it.

source

',3))]),e("details",pr,[e("summary",null,[t[1503]||(t[1503]=e("a",{id:"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler")],-1)),t[1504]||(t[1504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1505]||(t[1505]=l('
julia
mlirContextDetachDiagnosticHandler(context, id)

Detaches an attached diagnostic handler from the context given its identifier.

source

',3))]),e("details",rr,[e("summary",null,[t[1506]||(t[1506]=e("a",{id:"Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEnableMultithreading")],-1)),t[1507]||(t[1507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1508]||(t[1508]=l('
julia
mlirContextEnableMultithreading(context, enable)

Set threading mode (must be set to false to mlir-print-ir-after-all).

source

',3))]),e("details",or,[e("summary",null,[t[1509]||(t[1509]=e("a",{id:"Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEqual")],-1)),t[1510]||(t[1510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1511]||(t[1511]=l('
julia
mlirContextEqual(ctx1, ctx2)

Checks if two contexts are equal.

source

',3))]),e("details",dr,[e("summary",null,[t[1512]||(t[1512]=e("a",{id:"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects")],-1)),t[1513]||(t[1513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1514]||(t[1514]=l('
julia
mlirContextGetAllowUnregisteredDialects(context)

Returns whether the context allows unregistered dialects.

source

',3))]),e("details",cr,[e("summary",null,[t[1515]||(t[1515]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumLoadedDialects")],-1)),t[1516]||(t[1516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1517]||(t[1517]=l('
julia
mlirContextGetNumLoadedDialects(context)

Returns the number of dialects loaded by the context.

source

',3))]),e("details",hr,[e("summary",null,[t[1518]||(t[1518]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects")],-1)),t[1519]||(t[1519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1520]||(t[1520]=l('
julia
mlirContextGetNumRegisteredDialects(context)

Returns the number of dialects registered with the given context. A registered dialect will be loaded if needed by the parser.

source

',3))]),e("details",ur,[e("summary",null,[t[1521]||(t[1521]=e("a",{id:"Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetOrLoadDialect")],-1)),t[1522]||(t[1522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1523]||(t[1523]=l('
julia
mlirContextGetOrLoadDialect(context, name)

Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary. If the dialect is not registered with the context, returns null. Use mlirContextLoad<Name>Dialect to load an unregistered dialect.

source

',3))]),e("details",br,[e("summary",null,[t[1524]||(t[1524]=e("a",{id:"Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsNull")],-1)),t[1525]||(t[1525]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1526]||(t[1526]=l('
julia
mlirContextIsNull(context)

Checks whether a context is null.

source

',3))]),e("details",gr,[e("summary",null,[t[1527]||(t[1527]=e("a",{id:"Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsRegisteredOperation")],-1)),t[1528]||(t[1528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1529]||(t[1529]=l('
julia
mlirContextIsRegisteredOperation(context, name)

Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.

source

',3))]),e("details",yr,[e("summary",null,[t[1530]||(t[1530]=e("a",{id:"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects")],-1)),t[1531]||(t[1531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1532]||(t[1532]=l('
julia
mlirContextLoadAllAvailableDialects(context)

Eagerly loads all available dialects registered with a context, making them available for use for IR construction.

source

',3))]),e("details",mr,[e("summary",null,[t[1533]||(t[1533]=e("a",{id:"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects")],-1)),t[1534]||(t[1534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1535]||(t[1535]=l('
julia
mlirContextSetAllowUnregisteredDialects(context, allow)

Sets whether unregistered dialects are allowed in this context.

source

',3))]),e("details",kr,[e("summary",null,[t[1536]||(t[1536]=e("a",{id:"Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetThreadPool")],-1)),t[1537]||(t[1537]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1538]||(t[1538]=l('
julia
mlirContextSetThreadPool(context, threadPool)

Sets the thread pool of the context explicitly, enabling multithreading in the process. This API should be used to avoid re-creating thread pools in long-running applications that perform multiple compilations, see the C++ documentation for MLIRContext for details.

source

',3))]),e("details",fr,[e("summary",null,[t[1539]||(t[1539]=e("a",{id:"Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCreateExternalPass")],-1)),t[1540]||(t[1540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1541]||(t[1541]=l('
julia
mlirCreateExternalPass(passID, name, argument, description, opName, nDependentDialects, dependentDialects, callbacks, userData)

Creates an external MlirPass that calls the supplied callbacks using the supplied userData. If opName is empty, the pass is a generic operation pass. Otherwise it is an operation pass specific to the specified pass name.

source

',3))]),e("details",Rr,[e("summary",null,[t[1542]||(t[1542]=e("a",{id:"Reactant.MLIR.API.mlirDenseArrayGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseArrayGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseArrayGetNumElements")],-1)),t[1543]||(t[1543]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1544]||(t[1544]=l('
julia
mlirDenseArrayGetNumElements(attr)

Get the size of a dense array.

source

',3))]),e("details",Ir,[e("summary",null,[t[1545]||(t[1545]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGet")],-1)),t[1546]||(t[1546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1547]||(t[1547]=l('
julia
mlirDenseBoolArrayGet(ctx, size, values)

Create a dense array attribute with the given elements.

source

',3))]),e("details",jr,[e("summary",null,[t[1548]||(t[1548]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGetElement")],-1)),t[1549]||(t[1549]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1550]||(t[1550]=l('
julia
mlirDenseBoolArrayGetElement(attr, pos)

Get an element of a dense array.

source

',3))]),e("details",Mr,[e("summary",null,[t[1551]||(t[1551]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue")],-1)),t[1552]||(t[1552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1553]||(t[1553]=l('
julia
mlirDenseBoolResourceElementsAttrGetValue(attr, pos)

Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense resource elements attribute.

source

',3))]),e("details",Ar,[e("summary",null,[t[1554]||(t[1554]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet")],-1)),t[1555]||(t[1555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1556]||(t[1556]=l('
julia
mlirDenseElementsAttrBoolGet(shapedType, numElements, elements)

Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.

source

',3))]),e("details",Lr,[e("summary",null,[t[1557]||(t[1557]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGet")],-1)),t[1558]||(t[1558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1559]||(t[1559]=l('
julia
mlirDenseElementsAttrGet(shapedType, numElements, elements)

Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.

source

',3))]),e("details",Er,[e("summary",null,[t[1560]||(t[1560]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue")],-1)),t[1561]||(t[1561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1562]||(t[1562]=l('
julia
mlirDenseElementsAttrGetBoolValue(attr, pos)

Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense elements attribute.

source

',3))]),e("details",vr,[e("summary",null,[t[1563]||(t[1563]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData")],-1)),t[1564]||(t[1564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1565]||(t[1565]=l('
julia
mlirDenseElementsAttrGetRawData(attr)

Returns the raw data of the given dense elements attribute.

source

',3))]),e("details",Tr,[e("summary",null,[t[1566]||(t[1566]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue")],-1)),t[1567]||(t[1567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1568]||(t[1568]=l('
julia
mlirDenseElementsAttrGetSplatValue(attr)

Returns the single replicated value (splat) of a specific type contained by the given dense elements attribute.

source

',3))]),e("details",Cr,[e("summary",null,[t[1569]||(t[1569]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat")],-1)),t[1570]||(t[1570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1571]||(t[1571]=l('
julia
mlirDenseElementsAttrIsSplat(attr)

Checks whether the given dense elements attribute contains a single replicated value (splat).

source

',3))]),e("details",xr,[e("summary",null,[t[1572]||(t[1572]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet")],-1)),t[1573]||(t[1573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1574]||(t[1574]=l('
julia
mlirDenseElementsAttrRawBufferGet(shapedType, rawBufferSize, rawBuffer)

Creates a dense elements attribute with the given Shaped type and elements populated from a packed, row-major opaque buffer of contents.

The format of the raw buffer is a densely packed array of values that can be bitcast to the storage format of the element type specified. Types that are not byte aligned will be: - For bitwidth > 1: Rounded up to the next byte. - For bitwidth = 1: Packed into 8bit bytes with bits corresponding to the linear order of the shape type from MSB to LSB, padded to on the right.

A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255) will be interpreted as a splat. User code should be prepared for additional, conformant patterns to be identified as splats in the future.

source

',5))]),e("details",Fr,[e("summary",null,[t[1575]||(t[1575]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet")],-1)),t[1576]||(t[1576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1577]||(t[1577]=l('
julia
mlirDenseElementsAttrReshapeGet(attr, shapedType)

Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.

source

',3))]),e("details",Pr,[e("summary",null,[t[1578]||(t[1578]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet")],-1)),t[1579]||(t[1579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1580]||(t[1580]=l('
julia
mlirDenseElementsAttrSplatGet(shapedType, element)

Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).

source

',3))]),e("details",Dr,[e("summary",null,[t[1581]||(t[1581]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrStringGet")],-1)),t[1582]||(t[1582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1583]||(t[1583]=l('
julia
mlirDenseElementsAttrStringGet(shapedType, numElements, strs)

Creates a dense elements attribute with the given shaped type from string elements.

source

',3))]),e("details",Or,[e("summary",null,[t[1584]||(t[1584]=e("a",{id:"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID")],-1)),t[1585]||(t[1585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1586]||(t[1586]=l('
julia
mlirDenseIntOrFPElementsAttrGetTypeID()

Returns the typeID of an DenseIntOrFPElements attribute.

source

',3))]),e("details",Br,[e("summary",null,[t[1587]||(t[1587]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetLocation")],-1)),t[1588]||(t[1588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1589]||(t[1589]=l('
julia
mlirDiagnosticGetLocation(diagnostic)

Returns the location at which the diagnostic is reported.

source

',3))]),e("details",Gr,[e("summary",null,[t[1590]||(t[1590]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetNote")],-1)),t[1591]||(t[1591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1592]||(t[1592]=l('
julia
mlirDiagnosticGetNote(diagnostic, pos)

Returns pos-th note attached to the diagnostic. Expects pos to be a valid zero-based index into the list of notes.

source

',3))]),e("details",zr,[e("summary",null,[t[1593]||(t[1593]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetNumNotes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetNumNotes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetNumNotes")],-1)),t[1594]||(t[1594]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1595]||(t[1595]=l('
julia
mlirDiagnosticGetNumNotes(diagnostic)

Returns the number of notes attached to the diagnostic.

source

',3))]),e("details",wr,[e("summary",null,[t[1596]||(t[1596]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetSeverity")],-1)),t[1597]||(t[1597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1598]||(t[1598]=l('
julia
mlirDiagnosticGetSeverity(diagnostic)

Returns the severity of the diagnostic.

source

',3))]),e("details",Sr,[e("summary",null,[t[1599]||(t[1599]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticPrint")],-1)),t[1600]||(t[1600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1601]||(t[1601]=l('
julia
mlirDiagnosticPrint(diagnostic, callback, userData)

Prints a diagnostic using the provided callback.

source

',3))]),e("details",Nr,[e("summary",null,[t[1602]||(t[1602]=e("a",{id:"Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectEqual")],-1)),t[1603]||(t[1603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1604]||(t[1604]=l('
julia
mlirDialectEqual(dialect1, dialect2)

Checks if two dialects that belong to the same context are equal. Dialects from different contexts will not compare equal.

source

',3))]),e("details",Vr,[e("summary",null,[t[1605]||(t[1605]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetContext")],-1)),t[1606]||(t[1606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1607]||(t[1607]=l('
julia
mlirDialectGetContext(dialect)

Returns the context that owns the dialect.

source

',3))]),e("details",qr,[e("summary",null,[t[1608]||(t[1608]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetNamespace")],-1)),t[1609]||(t[1609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1610]||(t[1610]=l('
julia
mlirDialectGetNamespace(dialect)

Returns the namespace of the given dialect.

source

',3))]),e("details",Ur,[e("summary",null,[t[1611]||(t[1611]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleGetNamespace")],-1)),t[1612]||(t[1612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1613]||(t[1613]=l('
julia
mlirDialectHandleGetNamespace(arg1)

Returns the namespace associated with the provided dialect handle.

source

',3))]),e("details",Qr,[e("summary",null,[t[1614]||(t[1614]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleInsertDialect")],-1)),t[1615]||(t[1615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1616]||(t[1616]=l('
julia
mlirDialectHandleInsertDialect(arg1, arg2)

Inserts the dialect associated with the provided dialect handle into the provided dialect registry

source

',3))]),e("details",Wr,[e("summary",null,[t[1617]||(t[1617]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleLoadDialect")],-1)),t[1618]||(t[1618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1619]||(t[1619]=l('
julia
mlirDialectHandleLoadDialect(arg1, arg2)

Loads the dialect associated with the provided dialect handle.

source

',3))]),e("details",Hr,[e("summary",null,[t[1620]||(t[1620]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleRegisterDialect")],-1)),t[1621]||(t[1621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1622]||(t[1622]=l('
julia
mlirDialectHandleRegisterDialect(arg1, arg2)

Registers the dialect associated with the provided dialect handle.

source

',3))]),e("details",Zr,[e("summary",null,[t[1623]||(t[1623]=e("a",{id:"Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectIsNull")],-1)),t[1624]||(t[1624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1625]||(t[1625]=l('
julia
mlirDialectIsNull(dialect)

Checks if the dialect is null.

source

',3))]),e("details",Jr,[e("summary",null,[t[1626]||(t[1626]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryCreate")],-1)),t[1627]||(t[1627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1628]||(t[1628]=l('
julia
mlirDialectRegistryCreate()

Creates a dialect registry and transfers its ownership to the caller.

source

',3))]),e("details",Kr,[e("summary",null,[t[1629]||(t[1629]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryDestroy")],-1)),t[1630]||(t[1630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1631]||(t[1631]=l('
julia
mlirDialectRegistryDestroy(registry)

Takes a dialect registry owned by the caller and destroys it.

source

',3))]),e("details",$r,[e("summary",null,[t[1632]||(t[1632]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryIsNull")],-1)),t[1633]||(t[1633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1634]||(t[1634]=l('
julia
mlirDialectRegistryIsNull(registry)

Checks if the dialect registry is null.

source

',3))]),e("details",Xr,[e("summary",null,[t[1635]||(t[1635]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGet")],-1)),t[1636]||(t[1636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1637]||(t[1637]=l('
julia
mlirDictionaryAttrGet(ctx, numElements, elements)

Creates a dictionary attribute containing the given list of elements in the provided context.

source

',3))]),e("details",Yr,[e("summary",null,[t[1638]||(t[1638]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElement")],-1)),t[1639]||(t[1639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1640]||(t[1640]=l('
julia
mlirDictionaryAttrGetElement(attr, pos)

Returns pos-th element of the given dictionary attribute.

source

',3))]),e("details",_r,[e("summary",null,[t[1641]||(t[1641]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName")],-1)),t[1642]||(t[1642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1643]||(t[1643]=l('
julia
mlirDictionaryAttrGetElementByName(attr, name)

Returns the dictionary attribute element with the given name or NULL if the given name does not exist in the dictionary.

source

',3))]),e("details",to,[e("summary",null,[t[1644]||(t[1644]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements")],-1)),t[1645]||(t[1645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1646]||(t[1646]=l('
julia
mlirDictionaryAttrGetNumElements(attr)

Returns the number of attributes contained in a dictionary attribute.

source

',3))]),e("details",eo,[e("summary",null,[t[1647]||(t[1647]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID")],-1)),t[1648]||(t[1648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1649]||(t[1649]=l('
julia
mlirDictionaryAttrGetTypeID()

Returns the typeID of a Dictionary attribute.

source

',3))]),e("details",so,[e("summary",null,[t[1650]||(t[1650]=e("a",{id:"Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDisctinctAttrCreate")],-1)),t[1651]||(t[1651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1652]||(t[1652]=l('
julia
mlirDisctinctAttrCreate(referencedAttr)

Creates a DisctinctAttr with the referenced attribute.

source

',3))]),e("details",ao,[e("summary",null,[t[1653]||(t[1653]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetNumElements")],-1)),t[1654]||(t[1654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1655]||(t[1655]=l('
julia
mlirElementsAttrGetNumElements(attr)

Gets the total number of elements in the given elements attribute. In order to iterate over the attribute, obtain its type, which must be a statically shaped type and use its sizes to build a multi-dimensional index.

source

',3))]),e("details",io,[e("summary",null,[t[1656]||(t[1656]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetValue")],-1)),t[1657]||(t[1657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1658]||(t[1658]=l('
julia
mlirElementsAttrGetValue(attr, rank, idxs)

Returns the element at the given rank-dimensional index.

source

',3))]),e("details",lo,[e("summary",null,[t[1659]||(t[1659]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrIsValidIndex")],-1)),t[1660]||(t[1660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1661]||(t[1661]=l('
julia
mlirElementsAttrIsValidIndex(attr, rank, idxs)

Checks whether the given rank-dimensional index is valid in the given elements attribute.

source

',3))]),e("details",no,[e("summary",null,[t[1662]||(t[1662]=e("a",{id:"Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEmitError")],-1)),t[1663]||(t[1663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1664]||(t[1664]=l('
julia
mlirEmitError(location, message)

Emits an error at the given location through the diagnostics engine. Used for testing purposes.

source

',3))]),e("details",po,[e("summary",null,[t[1665]||(t[1665]=e("a",{id:"Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}",href:"#Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEnableGlobalDebug")],-1)),t[1666]||(t[1666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1667]||(t[1667]=l('
julia
mlirEnableGlobalDebug(enable)

Sets the global debugging flag.

source

',3))]),e("details",ro,[e("summary",null,[t[1668]||(t[1668]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineCreate")],-1)),t[1669]||(t[1669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1670]||(t[1670]=l('
julia
mlirExecutionEngineCreate(op, optLevel, numPaths, sharedLibPaths, enableObjectDump)

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

source

',3))]),e("details",oo,[e("summary",null,[t[1671]||(t[1671]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineDestroy")],-1)),t[1672]||(t[1672]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1673]||(t[1673]=l('
julia
mlirExecutionEngineDestroy(jit)

Destroy an ExecutionEngine instance.

source

',3))]),e("details",co,[e("summary",null,[t[1674]||(t[1674]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile")],-1)),t[1675]||(t[1675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1676]||(t[1676]=l('
julia
mlirExecutionEngineDumpToObjectFile(jit, fileName)

Dump as an object in fileName.

source

',3))]),e("details",ho,[e("summary",null,[t[1677]||(t[1677]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineInvokePacked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineInvokePacked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineInvokePacked")],-1)),t[1678]||(t[1678]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1679]||(t[1679]=l('
julia
mlirExecutionEngineInvokePacked(jit, name, arguments)

Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers. The function must have been tagged with the llvm.emit\\_c\\_interface attribute. Returns a failure if the execution fails for any reason (the function name can't be resolved for instance).

source

',3))]),e("details",uo,[e("summary",null,[t[1680]||(t[1680]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineIsNull")],-1)),t[1681]||(t[1681]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1682]||(t[1682]=l('
julia
mlirExecutionEngineIsNull(jit)

Checks whether an execution engine is null.

source

',3))]),e("details",bo,[e("summary",null,[t[1683]||(t[1683]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookup")],-1)),t[1684]||(t[1684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1685]||(t[1685]=l('
julia
mlirExecutionEngineLookup(jit, name)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

source

',3))]),e("details",go,[e("summary",null,[t[1686]||(t[1686]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookupPacked")],-1)),t[1687]||(t[1687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1688]||(t[1688]=l('
julia
mlirExecutionEngineLookupPacked(jit, name)

Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up.

source

',3))]),e("details",yo,[e("summary",null,[t[1689]||(t[1689]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol")],-1)),t[1690]||(t[1690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1691]||(t[1691]=l('
julia
mlirExecutionEngineRegisterSymbol(jit, name, sym)

Register a symbol with the jit: this symbol will be accessible to the jitted code.

source

',3))]),e("details",mo,[e("summary",null,[t[1692]||(t[1692]=e("a",{id:"Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExternalPassSignalFailure")],-1)),t[1693]||(t[1693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1694]||(t[1694]=l('
julia
mlirExternalPassSignalFailure(pass)

This signals that the pass has failed. This is only valid to call during the run callback of MlirExternalPassCallbacks. See Pass::signalPassFailure().

source

',3))]),e("details",ko,[e("summary",null,[t[1695]||(t[1695]=e("a",{id:"Reactant.MLIR.API.mlirF16TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF16TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF16TypeGet")],-1)),t[1696]||(t[1696]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1697]||(t[1697]=l('
julia
mlirF16TypeGet(ctx)

Creates an f16 type in the given context. The type is owned by the context.

source

',3))]),e("details",fo,[e("summary",null,[t[1698]||(t[1698]=e("a",{id:"Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF32TypeGet")],-1)),t[1699]||(t[1699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1700]||(t[1700]=l('
julia
mlirF32TypeGet(ctx)

Creates an f32 type in the given context. The type is owned by the context.

source

',3))]),e("details",Ro,[e("summary",null,[t[1701]||(t[1701]=e("a",{id:"Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF64TypeGet")],-1)),t[1702]||(t[1702]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1703]||(t[1703]=l('
julia
mlirF64TypeGet(ctx)

Creates a f64 type in the given context. The type is owned by the context.

source

',3))]),e("details",Io,[e("summary",null,[t[1704]||(t[1704]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet")],-1)),t[1705]||(t[1705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1706]||(t[1706]=l('
julia
mlirFlatSymbolRefAttrGet(ctx, symbol)

Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.

source

',3))]),e("details",jo,[e("summary",null,[t[1707]||(t[1707]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue")],-1)),t[1708]||(t[1708]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1709]||(t[1709]=l('
julia
mlirFlatSymbolRefAttrGetValue(attr)

Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Mo,[e("summary",null,[t[1710]||(t[1710]=e("a",{id:"Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat16TypeGetTypeID")],-1)),t[1711]||(t[1711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1712]||(t[1712]=l('
julia
mlirFloat16TypeGetTypeID()

Returns the typeID of an Float16 type.

source

',3))]),e("details",Ao,[e("summary",null,[t[1713]||(t[1713]=e("a",{id:"Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat32TypeGetTypeID")],-1)),t[1714]||(t[1714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1715]||(t[1715]=l('
julia
mlirFloat32TypeGetTypeID()

Returns the typeID of an Float32 type.

source

',3))]),e("details",Lo,[e("summary",null,[t[1716]||(t[1716]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet")],-1)),t[1717]||(t[1717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1718]||(t[1718]=l('
julia
mlirFloat4E2M1FNTypeGet(ctx)

Creates an f4E2M1FN type in the given context. The type is owned by the context.

source

',3))]),e("details",Eo,[e("summary",null,[t[1719]||(t[1719]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID")],-1)),t[1720]||(t[1720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1721]||(t[1721]=l('
julia
mlirFloat4E2M1FNTypeGetTypeID()

Returns the typeID of an Float4E2M1FN type.

source

',3))]),e("details",vo,[e("summary",null,[t[1722]||(t[1722]=e("a",{id:"Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat64TypeGetTypeID")],-1)),t[1723]||(t[1723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1724]||(t[1724]=l('
julia
mlirFloat64TypeGetTypeID()

Returns the typeID of an Float64 type.

source

',3))]),e("details",To,[e("summary",null,[t[1725]||(t[1725]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet")],-1)),t[1726]||(t[1726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1727]||(t[1727]=l('
julia
mlirFloat6E2M3FNTypeGet(ctx)

Creates an f6E2M3FN type in the given context. The type is owned by the context.

source

',3))]),e("details",Co,[e("summary",null,[t[1728]||(t[1728]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID")],-1)),t[1729]||(t[1729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1730]||(t[1730]=l('
julia
mlirFloat6E2M3FNTypeGetTypeID()

Returns the typeID of an Float6E2M3FN type.

source

',3))]),e("details",xo,[e("summary",null,[t[1731]||(t[1731]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet")],-1)),t[1732]||(t[1732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1733]||(t[1733]=l('
julia
mlirFloat6E3M2FNTypeGet(ctx)

Creates an f6E3M2FN type in the given context. The type is owned by the context.

source

',3))]),e("details",Fo,[e("summary",null,[t[1734]||(t[1734]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID")],-1)),t[1735]||(t[1735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1736]||(t[1736]=l('
julia
mlirFloat6E3M2FNTypeGetTypeID()

Returns the typeID of an Float6E3M2FN type.

source

',3))]),e("details",Po,[e("summary",null,[t[1737]||(t[1737]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGet")],-1)),t[1738]||(t[1738]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1739]||(t[1739]=l('
julia
mlirFloat8E3M4TypeGet(ctx)

Creates an f8E3M4 type in the given context. The type is owned by the context.

source

',3))]),e("details",Do,[e("summary",null,[t[1740]||(t[1740]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID")],-1)),t[1741]||(t[1741]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1742]||(t[1742]=l('
julia
mlirFloat8E3M4TypeGetTypeID()

Returns the typeID of an Float8E3M4 type.

source

',3))]),e("details",Oo,[e("summary",null,[t[1743]||(t[1743]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet")],-1)),t[1744]||(t[1744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1745]||(t[1745]=l('
julia
mlirFloat8E4M3B11FNUZTypeGet(ctx)

Creates an f8E4M3B11FNUZ type in the given context. The type is owned by the context.

source

',3))]),e("details",Bo,[e("summary",null,[t[1746]||(t[1746]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID")],-1)),t[1747]||(t[1747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1748]||(t[1748]=l('
julia
mlirFloat8E4M3B11FNUZTypeGetTypeID()

Returns the typeID of an Float8E4M3B11FNUZ type.

source

',3))]),e("details",Go,[e("summary",null,[t[1749]||(t[1749]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet")],-1)),t[1750]||(t[1750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1751]||(t[1751]=l('
julia
mlirFloat8E4M3FNTypeGet(ctx)

Creates an f8E4M3FN type in the given context. The type is owned by the context.

source

',3))]),e("details",zo,[e("summary",null,[t[1752]||(t[1752]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID")],-1)),t[1753]||(t[1753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1754]||(t[1754]=l('
julia
mlirFloat8E4M3FNTypeGetTypeID()

Returns the typeID of an Float8E4M3FN type.

source

',3))]),e("details",wo,[e("summary",null,[t[1755]||(t[1755]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet")],-1)),t[1756]||(t[1756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1757]||(t[1757]=l('
julia
mlirFloat8E4M3FNUZTypeGet(ctx)

Creates an f8E4M3FNUZ type in the given context. The type is owned by the context.

source

',3))]),e("details",So,[e("summary",null,[t[1758]||(t[1758]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID")],-1)),t[1759]||(t[1759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1760]||(t[1760]=l('
julia
mlirFloat8E4M3FNUZTypeGetTypeID()

Returns the typeID of an Float8E4M3FNUZ type.

source

',3))]),e("details",No,[e("summary",null,[t[1761]||(t[1761]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGet")],-1)),t[1762]||(t[1762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1763]||(t[1763]=l('
julia
mlirFloat8E4M3TypeGet(ctx)

Creates an f8E4M3 type in the given context. The type is owned by the context.

source

',3))]),e("details",Vo,[e("summary",null,[t[1764]||(t[1764]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID")],-1)),t[1765]||(t[1765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1766]||(t[1766]=l('
julia
mlirFloat8E4M3TypeGetTypeID()

Returns the typeID of an Float8E4M3 type.

source

',3))]),e("details",qo,[e("summary",null,[t[1767]||(t[1767]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet")],-1)),t[1768]||(t[1768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1769]||(t[1769]=l('
julia
mlirFloat8E5M2FNUZTypeGet(ctx)

Creates an f8E5M2FNUZ type in the given context. The type is owned by the context.

source

',3))]),e("details",Uo,[e("summary",null,[t[1770]||(t[1770]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID")],-1)),t[1771]||(t[1771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1772]||(t[1772]=l('
julia
mlirFloat8E5M2FNUZTypeGetTypeID()

Returns the typeID of an Float8E5M2FNUZ type.

source

',3))]),e("details",Qo,[e("summary",null,[t[1773]||(t[1773]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGet")],-1)),t[1774]||(t[1774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1775]||(t[1775]=l('
julia
mlirFloat8E5M2TypeGet(ctx)

Creates an f8E5M2 type in the given context. The type is owned by the context.

source

',3))]),e("details",Wo,[e("summary",null,[t[1776]||(t[1776]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID")],-1)),t[1777]||(t[1777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1778]||(t[1778]=l('
julia
mlirFloat8E5M2TypeGetTypeID()

Returns the typeID of an Float8E5M2 type.

source

',3))]),e("details",Ho,[e("summary",null,[t[1779]||(t[1779]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet")],-1)),t[1780]||(t[1780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1781]||(t[1781]=l('
julia
mlirFloat8E8M0FNUTypeGet(ctx)

Creates an f8E8M0FNU type in the given context. The type is owned by the context.

source

',3))]),e("details",Zo,[e("summary",null,[t[1782]||(t[1782]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID")],-1)),t[1783]||(t[1783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1784]||(t[1784]=l('
julia
mlirFloat8E8M0FNUTypeGetTypeID()

Returns the typeID of an Float8E8M0FNU type.

source

',3))]),e("details",Jo,[e("summary",null,[t[1785]||(t[1785]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGet")],-1)),t[1786]||(t[1786]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1787]||(t[1787]=l('
julia
mlirFloatAttrDoubleGet(ctx, type, value)

Creates a floating point attribute in the given context with the given double value and double-precision FP semantics.

source

',3))]),e("details",Ko,[e("summary",null,[t[1788]||(t[1788]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked")],-1)),t[1789]||(t[1789]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1790]||(t[1790]=l('
julia
mlirFloatAttrDoubleGetChecked(loc, type, value)

Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a construction of a FloatAttr, returns a null MlirAttribute.

source

',3))]),e("details",$o,[e("summary",null,[t[1791]||(t[1791]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloatAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrGetTypeID")],-1)),t[1792]||(t[1792]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1793]||(t[1793]=l('
julia
mlirFloatAttrGetTypeID()

Returns the typeID of a Float attribute.

source

',3))]),e("details",Xo,[e("summary",null,[t[1794]||(t[1794]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrGetValueDouble")],-1)),t[1795]||(t[1795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1796]||(t[1796]=l('
julia
mlirFloatAttrGetValueDouble(attr)

Returns the value stored in the given floating point attribute, interpreting the value as double.

source

',3))]),e("details",Yo,[e("summary",null,[t[1797]||(t[1797]=e("a",{id:"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID")],-1)),t[1798]||(t[1798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1799]||(t[1799]=l('
julia
mlirFloatTF32TypeGetTypeID()

Returns the typeID of a TF32 type.

source

',3))]),e("details",_o,[e("summary",null,[t[1800]||(t[1800]=e("a",{id:"Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTypeGetWidth")],-1)),t[1801]||(t[1801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1802]||(t[1802]=l('
julia
mlirFloatTypeGetWidth(type)

Returns the bitwidth of a floating-point type.

source

',3))]),e("details",td,[e("summary",null,[t[1803]||(t[1803]=e("a",{id:"Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFreezeRewritePattern")],-1)),t[1804]||(t[1804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1805]||(t[1805]=l('
julia
mlirFreezeRewritePattern(op)

FrozenRewritePatternSet API

source

',3))]),e("details",ed,[e("summary",null,[t[1806]||(t[1806]=e("a",{id:"Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFuncSetArgAttr")],-1)),t[1807]||(t[1807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1808]||(t[1808]=l('
julia
mlirFuncSetArgAttr(op, pos, name, attr)

Sets the argument attribute 'name' of an argument at index 'pos'. Asserts that the operation is a FuncOp.

source

',3))]),e("details",sd,[e("summary",null,[t[1809]||(t[1809]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGet")],-1)),t[1810]||(t[1810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1811]||(t[1811]=l('
julia
mlirFunctionTypeGet(ctx, numInputs, inputs, numResults, results)

Creates a function type, mapping a list of input types to result types.

source

',3))]),e("details",ad,[e("summary",null,[t[1812]||(t[1812]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetInput")],-1)),t[1813]||(t[1813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1814]||(t[1814]=l('
julia
mlirFunctionTypeGetInput(type, pos)

Returns the pos-th input type.

source

',3))]),e("details",id,[e("summary",null,[t[1815]||(t[1815]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs")],-1)),t[1816]||(t[1816]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1817]||(t[1817]=l('
julia
mlirFunctionTypeGetNumInputs(type)

Returns the number of input types.

source

',3))]),e("details",ld,[e("summary",null,[t[1818]||(t[1818]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumResults")],-1)),t[1819]||(t[1819]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1820]||(t[1820]=l('
julia
mlirFunctionTypeGetNumResults(type)

Returns the number of result types.

source

',3))]),e("details",nd,[e("summary",null,[t[1821]||(t[1821]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetResult")],-1)),t[1822]||(t[1822]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1823]||(t[1823]=l('
julia
mlirFunctionTypeGetResult(type, pos)

Returns the pos-th result type.

source

',3))]),e("details",pd,[e("summary",null,[t[1824]||(t[1824]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetTypeID")],-1)),t[1825]||(t[1825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1826]||(t[1826]=l('
julia
mlirFunctionTypeGetTypeID()

Returns the typeID of an Function type.

source

',3))]),e("details",rd,[e("summary",null,[t[1827]||(t[1827]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreate")],-1)),t[1828]||(t[1828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1829]||(t[1829]=l('
julia
mlirIRRewriterCreate(context)

Create an IRRewriter and transfer ownership to the caller.

source

',3))]),e("details",od,[e("summary",null,[t[1830]||(t[1830]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreateFromOp")],-1)),t[1831]||(t[1831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1832]||(t[1832]=l('
julia
mlirIRRewriterCreateFromOp(op)

Create an IRRewriter and transfer ownership to the caller. Additionally set the insertion point before the operation.

source

',3))]),e("details",dd,[e("summary",null,[t[1833]||(t[1833]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterDestroy")],-1)),t[1834]||(t[1834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1835]||(t[1835]=l('
julia
mlirIRRewriterDestroy(rewriter)

Takes an IRRewriter owned by the caller and destroys it. It is the responsibility of the user to only pass an IRRewriter class.

source

',3))]),e("details",cd,[e("summary",null,[t[1836]||(t[1836]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierEqual")],-1)),t[1837]||(t[1837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1838]||(t[1838]=l('
julia
mlirIdentifierEqual(ident, other)

Checks whether two identifiers are the same.

source

',3))]),e("details",hd,[e("summary",null,[t[1839]||(t[1839]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGet")],-1)),t[1840]||(t[1840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1841]||(t[1841]=l('
julia
mlirIdentifierGet(context, str)

Gets an identifier with the given string value.

source

',3))]),e("details",ud,[e("summary",null,[t[1842]||(t[1842]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGetContext")],-1)),t[1843]||(t[1843]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1844]||(t[1844]=l('
julia
mlirIdentifierGetContext(arg1)

Returns the context associated with this identifier

source

',3))]),e("details",bd,[e("summary",null,[t[1845]||(t[1845]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierStr")],-1)),t[1846]||(t[1846]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1847]||(t[1847]=l('
julia
mlirIdentifierStr(ident)

Gets the string value of the identifier.

source

',3))]),e("details",gd,[e("summary",null,[t[1848]||(t[1848]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGet")],-1)),t[1849]||(t[1849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1850]||(t[1850]=l('
julia
mlirIndexTypeGet(ctx)

Creates an index type in the given context. The type is owned by the context.

source

',3))]),e("details",yd,[e("summary",null,[t[1851]||(t[1851]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGetTypeID")],-1)),t[1852]||(t[1852]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1853]||(t[1853]=l('
julia
mlirIndexTypeGetTypeID()

Returns the typeID of an Index type.

source

',3))]),e("details",md,[e("summary",null,[t[1854]||(t[1854]=e("a",{id:"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes")],-1)),t[1855]||(t[1855]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1856]||(t[1856]=l('
julia
mlirInferShapedTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)

Infers the return shaped type components of the operation. Calls callback with the types of inferred arguments on success. Returns failure otherwise.

source

',3))]),e("details",kd,[e("summary",null,[t[1857]||(t[1857]=e("a",{id:"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID")],-1)),t[1858]||(t[1858]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1859]||(t[1859]=l('
julia
mlirInferShapedTypeOpInterfaceTypeID()

Returns the interface TypeID of the InferShapedTypeOpInterface.

source

',3))]),e("details",fd,[e("summary",null,[t[1860]||(t[1860]=e("a",{id:"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes")],-1)),t[1861]||(t[1861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1862]||(t[1862]=l('
julia
mlirInferTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)

Infers the return types of the operation identified by its canonical given the arguments that will be supplied to its generic builder. Calls callback with the types of inferred arguments, potentially several times, on success. Returns failure otherwise.

source

',3))]),e("details",Rd,[e("summary",null,[t[1863]||(t[1863]=e("a",{id:"Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID")],-1)),t[1864]||(t[1864]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1865]||(t[1865]=l('
julia
mlirInferTypeOpInterfaceTypeID()

Returns the interface TypeID of the InferTypeOpInterface.

source

',3))]),e("details",Id,[e("summary",null,[t[1866]||(t[1866]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGet")],-1)),t[1867]||(t[1867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1868]||(t[1868]=l('
julia
mlirIntegerAttrGet(type, value)

Creates an integer attribute of the given type with the given integer value.

source

',3))]),e("details",jd,[e("summary",null,[t[1869]||(t[1869]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetTypeID")],-1)),t[1870]||(t[1870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1871]||(t[1871]=l('
julia
mlirIntegerAttrGetTypeID()

Returns the typeID of an Integer attribute.

source

',3))]),e("details",Md,[e("summary",null,[t[1872]||(t[1872]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueInt")],-1)),t[1873]||(t[1873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1874]||(t[1874]=l('
julia
mlirIntegerAttrGetValueInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of signless type and fits into a signed 64-bit integer.

source

',3))]),e("details",Ad,[e("summary",null,[t[1875]||(t[1875]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt")],-1)),t[1876]||(t[1876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1877]||(t[1877]=l('
julia
mlirIntegerAttrGetValueSInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.

source

',3))]),e("details",Ld,[e("summary",null,[t[1878]||(t[1878]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt")],-1)),t[1879]||(t[1879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1880]||(t[1880]=l('
julia
mlirIntegerAttrGetValueUInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.

source

',3))]),e("details",Ed,[e("summary",null,[t[1881]||(t[1881]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGet")],-1)),t[1882]||(t[1882]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1883]||(t[1883]=l('
julia
mlirIntegerSetAttrGet(set)

Creates an integer set attribute wrapping the given set. The attribute belongs to the same context as the integer set.

source

',3))]),e("details",vd,[e("summary",null,[t[1884]||(t[1884]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID")],-1)),t[1885]||(t[1885]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1886]||(t[1886]=l('
julia
mlirIntegerSetAttrGetTypeID()

Returns the typeID of an IntegerSet attribute.

source

',3))]),e("details",Td,[e("summary",null,[t[1887]||(t[1887]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetValue")],-1)),t[1888]||(t[1888]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1889]||(t[1889]=l('
julia
mlirIntegerSetAttrGetValue(attr)

Returns the integer set wrapped in the given integer set attribute.

source

',3))]),e("details",Cd,[e("summary",null,[t[1890]||(t[1890]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetDump")],-1)),t[1891]||(t[1891]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1892]||(t[1892]=l('
julia
mlirIntegerSetDump(set)

Prints an integer set to the standard error stream.

source

',3))]),e("details",xd,[e("summary",null,[t[1893]||(t[1893]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEmptyGet")],-1)),t[1894]||(t[1894]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1895]||(t[1895]=l('
julia
mlirIntegerSetEmptyGet(context, numDims, numSymbols)

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

source

',3))]),e("details",Fd,[e("summary",null,[t[1896]||(t[1896]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEqual")],-1)),t[1897]||(t[1897]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1898]||(t[1898]=l('
julia
mlirIntegerSetEqual(s1, s2)

Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

source

',3))]),e("details",Pd,[e("summary",null,[t[1899]||(t[1899]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGet")],-1)),t[1900]||(t[1900]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1901]||(t[1901]=l('
julia
mlirIntegerSetGet(context, numDims, numSymbols, numConstraints, constraints, eqFlags)

Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqFlags is 1) or inequalities (eqFlags is 0). Both constraints and eqFlags are expected to point to at least numConstraint consecutive values.

source

',3))]),e("details",Dd,[e("summary",null,[t[1902]||(t[1902]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetConstraint-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetConstraint-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetConstraint")],-1)),t[1903]||(t[1903]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1904]||(t[1904]=l('
julia
mlirIntegerSetGetConstraint(set, pos)

Returns pos-th constraint of the set.

source

',3))]),e("details",Od,[e("summary",null,[t[1905]||(t[1905]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetContext")],-1)),t[1906]||(t[1906]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1907]||(t[1907]=l('
julia
mlirIntegerSetGetContext(set)

Gets the context in which the given integer set lives.

source

',3))]),e("details",Bd,[e("summary",null,[t[1908]||(t[1908]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints")],-1)),t[1909]||(t[1909]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1910]||(t[1910]=l('
julia
mlirIntegerSetGetNumConstraints(set)

Returns the number of constraints (equalities + inequalities) in the given set.

source

',3))]),e("details",Gd,[e("summary",null,[t[1911]||(t[1911]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumDims")],-1)),t[1912]||(t[1912]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1913]||(t[1913]=l('
julia
mlirIntegerSetGetNumDims(set)

Returns the number of dimensions in the given set.

source

',3))]),e("details",zd,[e("summary",null,[t[1914]||(t[1914]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities")],-1)),t[1915]||(t[1915]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1916]||(t[1916]=l('
julia
mlirIntegerSetGetNumEqualities(set)

Returns the number of equalities in the given set.

source

',3))]),e("details",wd,[e("summary",null,[t[1917]||(t[1917]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities")],-1)),t[1918]||(t[1918]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1919]||(t[1919]=l('
julia
mlirIntegerSetGetNumInequalities(set)

Returns the number of inequalities in the given set.

source

',3))]),e("details",Sd,[e("summary",null,[t[1920]||(t[1920]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInputs")],-1)),t[1921]||(t[1921]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1922]||(t[1922]=l('
julia
mlirIntegerSetGetNumInputs(set)

Returns the number of inputs (dimensions + symbols) in the given set.

source

',3))]),e("details",Nd,[e("summary",null,[t[1923]||(t[1923]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols")],-1)),t[1924]||(t[1924]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1925]||(t[1925]=l('
julia
mlirIntegerSetGetNumSymbols(set)

Returns the number of symbols in the given set.

source

',3))]),e("details",Vd,[e("summary",null,[t[1926]||(t[1926]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty")],-1)),t[1927]||(t[1927]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1928]||(t[1928]=l('
julia
mlirIntegerSetIsCanonicalEmpty(set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

source

',3))]),e("details",qd,[e("summary",null,[t[1929]||(t[1929]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsConstraintEq-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsConstraintEq-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsConstraintEq")],-1)),t[1930]||(t[1930]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1931]||(t[1931]=l('
julia
mlirIntegerSetIsConstraintEq(set, pos)

Returns true of the pos-th constraint of the set is an equality constraint, false otherwise.

source

',3))]),e("details",Ud,[e("summary",null,[t[1932]||(t[1932]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsNull")],-1)),t[1933]||(t[1933]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1934]||(t[1934]=l('
julia
mlirIntegerSetIsNull(set)

Checks whether an integer set is a null object.

source

',3))]),e("details",Qd,[e("summary",null,[t[1935]||(t[1935]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetPrint")],-1)),t[1936]||(t[1936]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1937]||(t[1937]=l('
julia
mlirIntegerSetPrint(set, callback, userData)

Prints an integer set by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Wd,[e("summary",null,[t[1938]||(t[1938]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetReplaceGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetReplaceGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetReplaceGet")],-1)),t[1939]||(t[1939]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1940]||(t[1940]=l('
julia
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

source

',3))]),e("details",Hd,[e("summary",null,[t[1941]||(t[1941]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGet")],-1)),t[1942]||(t[1942]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1943]||(t[1943]=l('
julia
mlirIntegerTypeGet(ctx, bitwidth)

Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",Zd,[e("summary",null,[t[1944]||(t[1944]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetTypeID")],-1)),t[1945]||(t[1945]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1946]||(t[1946]=l('
julia
mlirIntegerTypeGetTypeID()

Returns the typeID of an Integer type.

source

',3))]),e("details",Jd,[e("summary",null,[t[1947]||(t[1947]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetWidth")],-1)),t[1948]||(t[1948]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1949]||(t[1949]=l('
julia
mlirIntegerTypeGetWidth(type)

Returns the bitwidth of an integer type.

source

',3))]),e("details",Kd,[e("summary",null,[t[1950]||(t[1950]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSigned")],-1)),t[1951]||(t[1951]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1952]||(t[1952]=l('
julia
mlirIntegerTypeIsSigned(type)

Checks whether the given integer type is signed.

source

',3))]),e("details",$d,[e("summary",null,[t[1953]||(t[1953]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSignless")],-1)),t[1954]||(t[1954]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1955]||(t[1955]=l('
julia
mlirIntegerTypeIsSignless(type)

Checks whether the given integer type is signless.

source

',3))]),e("details",Xd,[e("summary",null,[t[1956]||(t[1956]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned")],-1)),t[1957]||(t[1957]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1958]||(t[1958]=l('
julia
mlirIntegerTypeIsUnsigned(type)

Checks whether the given integer type is unsigned.

source

',3))]),e("details",Yd,[e("summary",null,[t[1959]||(t[1959]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeSignedGet")],-1)),t[1960]||(t[1960]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1961]||(t[1961]=l('
julia
mlirIntegerTypeSignedGet(ctx, bitwidth)

Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",_d,[e("summary",null,[t[1962]||(t[1962]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet")],-1)),t[1963]||(t[1963]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1964]||(t[1964]=l('
julia
mlirIntegerTypeUnsignedGet(ctx, bitwidth)

Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",tc,[e("summary",null,[t[1965]||(t[1965]=e("a",{id:"Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIsCurrentDebugType")],-1)),t[1966]||(t[1966]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1967]||(t[1967]=l('
julia
mlirIsCurrentDebugType(type)

Checks if type is set as the current debug type.

source

',3))]),e("details",ec,[e("summary",null,[t[1968]||(t[1968]=e("a",{id:"Reactant.MLIR.API.mlirIsGlobalDebugEnabled-Tuple{}",href:"#Reactant.MLIR.API.mlirIsGlobalDebugEnabled-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIsGlobalDebugEnabled")],-1)),t[1969]||(t[1969]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1970]||(t[1970]=l('
julia
mlirIsGlobalDebugEnabled()

Retuns true if the global debugging flag is set, false otherwise.

source

',3))]),e("details",sc,[e("summary",null,[t[1971]||(t[1971]=e("a",{id:"Reactant.MLIR.API.mlirLLVMArrayTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMArrayTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMArrayTypeGet")],-1)),t[1972]||(t[1972]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1973]||(t[1973]=l('
julia
mlirLLVMArrayTypeGet(elementType, numElements)

Creates an llvm.array type.

source

',3))]),e("details",ac,[e("summary",null,[t[1974]||(t[1974]=e("a",{id:"Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMCConvAttrGet")],-1)),t[1975]||(t[1975]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1976]||(t[1976]=l('
julia
mlirLLVMCConvAttrGet(ctx, cconv)

Creates a LLVM CConv attribute.

source

',3))]),e("details",ic,[e("summary",null,[t[1977]||(t[1977]=e("a",{id:"Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMComdatAttrGet")],-1)),t[1978]||(t[1978]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1979]||(t[1979]=l('
julia
mlirLLVMComdatAttrGet(ctx, comdat)

Creates a LLVM Comdat attribute.

source

',3))]),e("details",lc,[e("summary",null,[t[1980]||(t[1980]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet")],-1)),t[1981]||(t[1981]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1982]||(t[1982]=l('
julia
mlirLLVMDIAnnotationAttrGet(ctx, name, value)

Creates a LLVM DIAnnotation attribute.

source

',3))]),e("details",nc,[e("summary",null,[t[1983]||(t[1983]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet")],-1)),t[1984]||(t[1984]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1985]||(t[1985]=l('
julia
mlirLLVMDIBasicTypeAttrGet(ctx, tag, name, sizeInBits, encoding)

Creates a LLVM DIBasicType attribute.

source

',3))]),e("details",pc,[e("summary",null,[t[1986]||(t[1986]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet")],-1)),t[1987]||(t[1987]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1988]||(t[1988]=l('
julia
mlirLLVMDICompileUnitAttrGet(ctx, id, sourceLanguage, file, producer, isOptimized, emissionKind, nameTableKind)

Creates a LLVM DICompileUnit attribute.

source

',3))]),e("details",rc,[e("summary",null,[t[1989]||(t[1989]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet")],-1)),t[1990]||(t[1990]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1991]||(t[1991]=l('
julia
mlirLLVMDICompositeTypeAttrGet(ctx, recId, isRecSelf, tag, name, file, line, scope, baseType, flags, sizeInBits, alignInBits, nElements, elements, dataLocation, rank, allocated, associated)

Creates a LLVM DICompositeType attribute.

source

',3))]),e("details",oc,[e("summary",null,[t[1992]||(t[1992]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf")],-1)),t[1993]||(t[1993]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1994]||(t[1994]=l('
julia
mlirLLVMDICompositeTypeAttrGetRecSelf(recId)

Creates a self-referencing LLVM DICompositeType attribute.

source

',3))]),e("details",dc,[e("summary",null,[t[1995]||(t[1995]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet")],-1)),t[1996]||(t[1996]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1997]||(t[1997]=l('
julia
mlirLLVMDIDerivedTypeAttrGet(ctx, tag, name, baseType, sizeInBits, alignInBits, offsetInBits, dwarfAddressSpace, extraData)

Creates a LLVM DIDerivedType attribute. Note that dwarfAddressSpace is an optional field, where MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL indicates null and non-negative values indicate a value present.

source

',3))]),e("details",cc,[e("summary",null,[t[1998]||(t[1998]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType")],-1)),t[1999]||(t[1999]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2e3]||(t[2e3]=l('
julia
mlirLLVMDIDerivedTypeAttrGetBaseType(diDerivedType)

Gets the base type from a LLVM DIDerivedType attribute.

source

',3))]),e("details",hc,[e("summary",null,[t[2001]||(t[2001]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet")],-1)),t[2002]||(t[2002]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2003]||(t[2003]=l('
julia
mlirLLVMDIExpressionAttrGet(ctx, nOperations, operations)

Creates a LLVM DIExpression attribute.

source

',3))]),e("details",uc,[e("summary",null,[t[2004]||(t[2004]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet")],-1)),t[2005]||(t[2005]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2006]||(t[2006]=l('
julia
mlirLLVMDIExpressionElemAttrGet(ctx, opcode, nArguments, arguments)

Creates a LLVM DIExpressionElem attribute.

source

',3))]),e("details",bc,[e("summary",null,[t[2007]||(t[2007]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFileAttrGet")],-1)),t[2008]||(t[2008]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2009]||(t[2009]=l('
julia
mlirLLVMDIFileAttrGet(ctx, name, directory)

Creates a LLVM DIFileAttr attribute.

source

',3))]),e("details",gc,[e("summary",null,[t[2010]||(t[2010]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet")],-1)),t[2011]||(t[2011]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2012]||(t[2012]=l('
julia
mlirLLVMDIFlagsAttrGet(ctx, value)

Creates a LLVM DIFlags attribute.

source

',3))]),e("details",yc,[e("summary",null,[t[2013]||(t[2013]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet")],-1)),t[2014]||(t[2014]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2015]||(t[2015]=l('
julia
mlirLLVMDIImportedEntityAttrGet(ctx, tag, scope, entity, file, line, name, nElements, elements)

Creates a LLVM DIImportedEntityAttr attribute.

source

',3))]),e("details",mc,[e("summary",null,[t[2016]||(t[2016]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet")],-1)),t[2017]||(t[2017]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2018]||(t[2018]=l('
julia
mlirLLVMDILexicalBlockAttrGet(ctx, scope, file, line, column)

Creates a LLVM DILexicalBlock attribute.

source

',3))]),e("details",kc,[e("summary",null,[t[2019]||(t[2019]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet")],-1)),t[2020]||(t[2020]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2021]||(t[2021]=l('
julia
mlirLLVMDILexicalBlockFileAttrGet(ctx, scope, file, discriminator)

Creates a LLVM DILexicalBlockFile attribute.

source

',3))]),e("details",fc,[e("summary",null,[t[2022]||(t[2022]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet")],-1)),t[2023]||(t[2023]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2024]||(t[2024]=l('
julia
mlirLLVMDILocalVariableAttrGet(ctx, scope, name, diFile, line, arg, alignInBits, diType, flags)

Creates a LLVM DILocalVariableAttr attribute.

source

',3))]),e("details",Rc,[e("summary",null,[t[2025]||(t[2025]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet")],-1)),t[2026]||(t[2026]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2027]||(t[2027]=l('
julia
mlirLLVMDIModuleAttrGet(ctx, file, scope, name, configMacros, includePath, apinotes, line, isDecl)

Creates a LLVM DIModuleAttr attribute.

source

',3))]),e("details",Ic,[e("summary",null,[t[2028]||(t[2028]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope")],-1)),t[2029]||(t[2029]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2030]||(t[2030]=l('
julia
mlirLLVMDIModuleAttrGetScope(diModule)

Gets the scope of this DIModuleAttr.

source

',3))]),e("details",jc,[e("summary",null,[t[2031]||(t[2031]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet")],-1)),t[2032]||(t[2032]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2033]||(t[2033]=l('
julia
mlirLLVMDINullTypeAttrGet(ctx)

Creates a LLVM DINullType attribute.

source

',3))]),e("details",Mc,[e("summary",null,[t[2034]||(t[2034]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet")],-1)),t[2035]||(t[2035]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2036]||(t[2036]=l('
julia
mlirLLVMDISubprogramAttrGet(ctx, recId, isRecSelf, id, compileUnit, scope, name, linkageName, file, line, scopeLine, subprogramFlags, type, nRetainedNodes, retainedNodes, nAnnotations, annotations)

Creates a LLVM DISubprogramAttr attribute.

source

',3))]),e("details",Ac,[e("summary",null,[t[2037]||(t[2037]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit")],-1)),t[2038]||(t[2038]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2039]||(t[2039]=l('
julia
mlirLLVMDISubprogramAttrGetCompileUnit(diSubprogram)

Gets the compile unit from this DISubprogram.

source

',3))]),e("details",Lc,[e("summary",null,[t[2040]||(t[2040]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile")],-1)),t[2041]||(t[2041]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2042]||(t[2042]=l('
julia
mlirLLVMDISubprogramAttrGetFile(diSubprogram)

Gets the file from this DISubprogramAttr.

source

',3))]),e("details",Ec,[e("summary",null,[t[2043]||(t[2043]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine")],-1)),t[2044]||(t[2044]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2045]||(t[2045]=l('
julia
mlirLLVMDISubprogramAttrGetLine(diSubprogram)

Gets the line from this DISubprogramAttr.

source

',3))]),e("details",vc,[e("summary",null,[t[2046]||(t[2046]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf")],-1)),t[2047]||(t[2047]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2048]||(t[2048]=l('
julia
mlirLLVMDISubprogramAttrGetRecSelf(recId)

Creates a self-referencing LLVM DISubprogramAttr attribute.

source

',3))]),e("details",Tc,[e("summary",null,[t[2049]||(t[2049]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope")],-1)),t[2050]||(t[2050]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2051]||(t[2051]=l('
julia
mlirLLVMDISubprogramAttrGetScope(diSubprogram)

Gets the scope from this DISubprogramAttr.

source

',3))]),e("details",Cc,[e("summary",null,[t[2052]||(t[2052]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine")],-1)),t[2053]||(t[2053]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2054]||(t[2054]=l('
julia
mlirLLVMDISubprogramAttrGetScopeLine(diSubprogram)

Gets the scope line from this DISubprogram.

source

',3))]),e("details",xc,[e("summary",null,[t[2055]||(t[2055]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType")],-1)),t[2056]||(t[2056]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2057]||(t[2057]=l('
julia
mlirLLVMDISubprogramAttrGetType(diSubprogram)

Gets the type from this DISubprogramAttr.

source

',3))]),e("details",Fc,[e("summary",null,[t[2058]||(t[2058]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet")],-1)),t[2059]||(t[2059]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2060]||(t[2060]=l('
julia
mlirLLVMDISubroutineTypeAttrGet(ctx, callingConvention, nTypes, types)

Creates a LLVM DISubroutineTypeAttr attribute.

source

',3))]),e("details",Pc,[e("summary",null,[t[2061]||(t[2061]=e("a",{id:"Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMFunctionTypeGet")],-1)),t[2062]||(t[2062]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2063]||(t[2063]=l('
julia
mlirLLVMFunctionTypeGet(resultType, nArgumentTypes, argumentTypes, isVarArg)

Creates an llvm.func type.

source

',3))]),e("details",Dc,[e("summary",null,[t[2064]||(t[2064]=e("a",{id:"Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMLinkageAttrGet")],-1)),t[2065]||(t[2065]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2066]||(t[2066]=l('
julia
mlirLLVMLinkageAttrGet(ctx, linkage)

Creates a LLVM Linkage attribute.

source

',3))]),e("details",Oc,[e("summary",null,[t[2067]||(t[2067]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGet")],-1)),t[2068]||(t[2068]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2069]||(t[2069]=l('
julia
mlirLLVMPointerTypeGet(ctx, addressSpace)

Creates an llvm.ptr type.

source

',3))]),e("details",Bc,[e("summary",null,[t[2070]||(t[2070]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace")],-1)),t[2071]||(t[2071]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2072]||(t[2072]=l('
julia
mlirLLVMPointerTypeGetAddressSpace(pointerType)

Returns address space of llvm.ptr

source

',3))]),e("details",Gc,[e("summary",null,[t[2073]||(t[2073]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType")],-1)),t[2074]||(t[2074]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2075]||(t[2075]=l('
julia
mlirLLVMStructTypeGetElementType(type, position)

Returns the positions-th field of the struct. Asserts if the struct is opaque, not yet initialized or if the position is out of range.

source

',3))]),e("details",zc,[e("summary",null,[t[2076]||(t[2076]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier")],-1)),t[2077]||(t[2077]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2078]||(t[2078]=l('
julia
mlirLLVMStructTypeGetIdentifier(type)

Returns the identifier of the identified struct. Asserts that the struct is identified, i.e., not literal.

source

',3))]),e("details",wc,[e("summary",null,[t[2079]||(t[2079]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes")],-1)),t[2080]||(t[2080]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2081]||(t[2081]=l('
julia
mlirLLVMStructTypeGetNumElementTypes(type)

Returns the number of fields in the struct. Asserts if the struct is opaque or not yet initialized.

source

',3))]),e("details",Sc,[e("summary",null,[t[2082]||(t[2082]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet")],-1)),t[2083]||(t[2083]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2084]||(t[2084]=l('
julia
mlirLLVMStructTypeIdentifiedGet(ctx, name)

Creates an LLVM identified struct type with no body. If a struct type with this name already exists in the context, returns that type. Use mlirLLVMStructTypeIdentifiedNewGet to create a fresh struct type, potentially renaming it. The body should be set separatelty by calling mlirLLVMStructTypeSetBody, if it isn't set already.

source

',3))]),e("details",Nc,[e("summary",null,[t[2085]||(t[2085]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet")],-1)),t[2086]||(t[2086]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2087]||(t[2087]=l('
julia
mlirLLVMStructTypeIdentifiedNewGet(ctx, name, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM identified struct type with no body and a name starting with the given prefix. If a struct with the exact name as the given prefix already exists, appends an unspecified suffix to the name so that the name is unique in context.

source

',3))]),e("details",Vc,[e("summary",null,[t[2088]||(t[2088]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral")],-1)),t[2089]||(t[2089]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2090]||(t[2090]=l('
julia
mlirLLVMStructTypeIsLiteral(type)

Returns true if the type is a literal (unnamed) LLVM struct type.

source

',3))]),e("details",qc,[e("summary",null,[t[2091]||(t[2091]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque")],-1)),t[2092]||(t[2092]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2093]||(t[2093]=l('
julia
mlirLLVMStructTypeIsOpaque(type)

Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).

source

',3))]),e("details",Uc,[e("summary",null,[t[2094]||(t[2094]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsPacked-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsPacked-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsPacked")],-1)),t[2095]||(t[2095]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2096]||(t[2096]=l('
julia
mlirLLVMStructTypeIsPacked(type)

Returns true if the struct is packed.

source

',3))]),e("details",Qc,[e("summary",null,[t[2097]||(t[2097]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet")],-1)),t[2098]||(t[2098]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2099]||(t[2099]=l('
julia
mlirLLVMStructTypeLiteralGet(ctx, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM literal (unnamed) struct type. This may assert if the fields have types not compatible with the LLVM dialect. For a graceful failure, use the checked version.

source

',3))]),e("details",Wc,[e("summary",null,[t[2100]||(t[2100]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked")],-1)),t[2101]||(t[2101]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2102]||(t[2102]=l('
julia
mlirLLVMStructTypeLiteralGetChecked(loc, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM literal (unnamed) struct type if possible. Emits a diagnostic at the given location and returns null otherwise.

source

',3))]),e("details",Hc,[e("summary",null,[t[2103]||(t[2103]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeSetBody")],-1)),t[2104]||(t[2104]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2105]||(t[2105]=l('
julia
mlirLLVMStructTypeSetBody(structType, nFieldTypes, fieldTypes, isPacked)

Sets the body of the identified struct if it hasn't been set yet. Returns whether the operation was successful.

source

',3))]),e("details",Zc,[e("summary",null,[t[2106]||(t[2106]=e("a",{id:"Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMVoidTypeGet")],-1)),t[2107]||(t[2107]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2108]||(t[2108]=l('
julia
mlirLLVMVoidTypeGet(ctx)

Creates an llmv.void type.

source

',3))]),e("details",Jc,[e("summary",null,[t[2109]||(t[2109]=e("a",{id:"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion")],-1)),t[2110]||(t[2110]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2111]||(t[2111]=l('
julia
mlirLinalgFillBuiltinNamedOpRegion(mlirOp)

Apply the special region builder for the builtin named Linalg op. Assert that mlirOp is a builtin named Linalg op.

source

',3))]),e("details",Kc,[e("summary",null,[t[2112]||(t[2112]=e("a",{id:"Reactant.MLIR.API.mlirLlvmThreadPoolCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirLlvmThreadPoolCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLlvmThreadPoolCreate")],-1)),t[2113]||(t[2113]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2114]||(t[2114]=l('
julia
mlirLlvmThreadPoolCreate()

Create an LLVM thread pool. This is reexported here to avoid directly pulling in the LLVM headers directly.

source

',3))]),e("details",$c,[e("summary",null,[t[2115]||(t[2115]=e("a",{id:"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy")],-1)),t[2116]||(t[2116]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2117]||(t[2117]=l('
julia
mlirLlvmThreadPoolDestroy(pool)

Destroy an LLVM thread pool.

source

',3))]),e("details",Xc,[e("summary",null,[t[2118]||(t[2118]=e("a",{id:"Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLoadIRDLDialects")],-1)),t[2119]||(t[2119]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2120]||(t[2120]=l('
julia
mlirLoadIRDLDialects(_module)

Loads all IRDL dialects in the provided module, registering the dialects in the module's associated context.

source

',3))]),e("details",Yc,[e("summary",null,[t[2121]||(t[2121]=e("a",{id:"Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationCallSiteGet")],-1)),t[2122]||(t[2122]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2123]||(t[2123]=l('
julia
mlirLocationCallSiteGet(callee, caller)

Creates a call site location with a callee and a caller.

source

',3))]),e("details",_c,[e("summary",null,[t[2124]||(t[2124]=e("a",{id:"Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationEqual")],-1)),t[2125]||(t[2125]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2126]||(t[2126]=l('
julia
mlirLocationEqual(l1, l2)

Checks if two locations are equal.

source

',3))]),e("details",th,[e("summary",null,[t[2127]||(t[2127]=e("a",{id:"Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFileLineColGet")],-1)),t[2128]||(t[2128]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2129]||(t[2129]=l('
julia
mlirLocationFileLineColGet(context, filename, line, col)

Creates an File/Line/Column location owned by the given context.

source

',3))]),e("details",eh,[e("summary",null,[t[2130]||(t[2130]=e("a",{id:"Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFromAttribute")],-1)),t[2131]||(t[2131]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2132]||(t[2132]=l('
julia
mlirLocationFromAttribute(attribute)

Creates a location from a location attribute.

source

',3))]),e("details",sh,[e("summary",null,[t[2133]||(t[2133]=e("a",{id:"Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFusedGet")],-1)),t[2134]||(t[2134]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2135]||(t[2135]=l('
julia
mlirLocationFusedGet(ctx, nLocations, locations, metadata)

Creates a fused location with an array of locations and metadata.

source

',3))]),e("details",ah,[e("summary",null,[t[2136]||(t[2136]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetAttribute")],-1)),t[2137]||(t[2137]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2138]||(t[2138]=l('
julia
mlirLocationGetAttribute(location)

Returns the underlying location attribute of this location.

source

',3))]),e("details",ih,[e("summary",null,[t[2139]||(t[2139]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetContext")],-1)),t[2140]||(t[2140]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2141]||(t[2141]=l('
julia
mlirLocationGetContext(location)

Gets the context that a location was created with.

source

',3))]),e("details",lh,[e("summary",null,[t[2142]||(t[2142]=e("a",{id:"Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationIsNull")],-1)),t[2143]||(t[2143]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2144]||(t[2144]=l('
julia
mlirLocationIsNull(location)

Checks if the location is null.

source

',3))]),e("details",nh,[e("summary",null,[t[2145]||(t[2145]=e("a",{id:"Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationNameGet")],-1)),t[2146]||(t[2146]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2147]||(t[2147]=l('
julia
mlirLocationNameGet(context, name, childLoc)

Creates a name location owned by the given context. Providing null location for childLoc is allowed and if childLoc is null location, then the behavior is the same as having unknown child location.

source

',3))]),e("details",ph,[e("summary",null,[t[2148]||(t[2148]=e("a",{id:"Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationPrint")],-1)),t[2149]||(t[2149]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2150]||(t[2150]=l('
julia
mlirLocationPrint(location, callback, userData)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",rh,[e("summary",null,[t[2151]||(t[2151]=e("a",{id:"Reactant.MLIR.API.mlirLocationUnknownGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationUnknownGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationUnknownGet")],-1)),t[2152]||(t[2152]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2153]||(t[2153]=l('
julia
mlirLocationUnknownGet(context)

Creates a location with unknown position owned by the given context.

source

',3))]),e("details",oh,[e("summary",null,[t[2154]||(t[2154]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultFailure")],-1)),t[2155]||(t[2155]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2156]||(t[2156]=l('
julia
mlirLogicalResultFailure()

Creates a logical result representing a failure.

source

',3))]),e("details",dh,[e("summary",null,[t[2157]||(t[2157]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsFailure")],-1)),t[2158]||(t[2158]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2159]||(t[2159]=l('
julia
mlirLogicalResultIsFailure(res)

Checks if the given logical result represents a failure.

source

',3))]),e("details",ch,[e("summary",null,[t[2160]||(t[2160]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsSuccess")],-1)),t[2161]||(t[2161]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2162]||(t[2162]=l('
julia
mlirLogicalResultIsSuccess(res)

Checks if the given logical result represents a success.

source

',3))]),e("details",hh,[e("summary",null,[t[2163]||(t[2163]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultSuccess")],-1)),t[2164]||(t[2164]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2165]||(t[2165]=l('
julia
mlirLogicalResultSuccess()

Creates a logical result representing a success.

source

',3))]),e("details",uh,[e("summary",null,[t[2166]||(t[2166]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGet")],-1)),t[2167]||(t[2167]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2168]||(t[2168]=l('
julia
mlirMemRefTypeContiguousGet(elementType, rank, shape, memorySpace)

Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context.

source

',3))]),e("details",bh,[e("summary",null,[t[2169]||(t[2169]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked")],-1)),t[2170]||(t[2170]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2171]||(t[2171]=l('
julia
mlirMemRefTypeContiguousGetChecked(loc, elementType, rank, shape, memorySpace)

Same as "mlirMemRefTypeContiguousGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",gh,[e("summary",null,[t[2172]||(t[2172]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGet")],-1)),t[2173]||(t[2173]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2174]||(t[2174]=l('
julia
mlirMemRefTypeGet(elementType, rank, shape, layout, memorySpace)

Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context.

source

',3))]),e("details",yh,[e("summary",null,[t[2175]||(t[2175]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap")],-1)),t[2176]||(t[2176]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2177]||(t[2177]=l('
julia
mlirMemRefTypeGetAffineMap(type)

Returns the affine map of the given MemRef type.

source

',3))]),e("details",mh,[e("summary",null,[t[2178]||(t[2178]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetChecked")],-1)),t[2179]||(t[2179]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2180]||(t[2180]=l('
julia
mlirMemRefTypeGetChecked(loc, elementType, rank, shape, layout, memorySpace)

Same as "mlirMemRefTypeGet" but returns a nullptr-wrapping MlirType o illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",kh,[e("summary",null,[t[2181]||(t[2181]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetLayout-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetLayout-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetLayout")],-1)),t[2182]||(t[2182]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2183]||(t[2183]=l('
julia
mlirMemRefTypeGetLayout(type)

Returns the layout of the given MemRef type.

source

',3))]),e("details",fh,[e("summary",null,[t[2184]||(t[2184]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace")],-1)),t[2185]||(t[2185]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2186]||(t[2186]=l('
julia
mlirMemRefTypeGetMemorySpace(type)

Returns the memory space of the given MemRef type.

source

',3))]),e("details",Rh,[e("summary",null,[t[2187]||(t[2187]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset")],-1)),t[2188]||(t[2188]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2189]||(t[2189]=l('
julia
mlirMemRefTypeGetStridesAndOffset(type, strides, offset)

Returns the strides of the MemRef if the layout map is in strided form. Both strides and offset are out params. strides must point to pre-allocated memory of length equal to the rank of the memref.

source

',3))]),e("details",Ih,[e("summary",null,[t[2190]||(t[2190]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetTypeID")],-1)),t[2191]||(t[2191]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2192]||(t[2192]=l('
julia
mlirMemRefTypeGetTypeID()

Returns the typeID of an MemRef type.

source

',3))]),e("details",jh,[e("summary",null,[t[2193]||(t[2193]=e("a",{id:"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone")],-1)),t[2194]||(t[2194]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2195]||(t[2195]=l('
julia
mlirMergeSymbolsIntoFromClone(target, other)

Merge the symbols from other into target, potentially renaming them to avoid conflicts. Private symbols may be renamed during the merge, public symbols must have at most one declaration. A name conflict in public symbols is reported as an error before returning a failure.

Note that this clones the other operation unlike the C++ counterpart that takes ownership.

source

',4))]),e("details",Mh,[e("summary",null,[t[2196]||(t[2196]=e("a",{id:"Reactant.MLIR.API.mlirModuleCreateEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleCreateEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleCreateEmpty")],-1)),t[2197]||(t[2197]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2198]||(t[2198]=l('
julia
mlirModuleCreateEmpty(location)

Creates a new, empty module and transfers ownership to the caller.

source

',3))]),e("details",Ah,[e("summary",null,[t[2199]||(t[2199]=e("a",{id:"Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleCreateParse")],-1)),t[2200]||(t[2200]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2201]||(t[2201]=l('
julia
mlirModuleCreateParse(context, _module)

Parses a module from the string and transfers ownership to the caller.

source

',3))]),e("details",Lh,[e("summary",null,[t[2202]||(t[2202]=e("a",{id:"Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleDestroy")],-1)),t[2203]||(t[2203]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2204]||(t[2204]=l('
julia
mlirModuleDestroy(_module)

Takes a module owned by the caller and deletes it.

source

',3))]),e("details",Eh,[e("summary",null,[t[2205]||(t[2205]=e("a",{id:"Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleFromOperation")],-1)),t[2206]||(t[2206]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2207]||(t[2207]=l('
julia
mlirModuleFromOperation(op)

Views the generic operation as a module. The returned module is null when the input operation was not a ModuleOp.

source

',3))]),e("details",vh,[e("summary",null,[t[2208]||(t[2208]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetBody")],-1)),t[2209]||(t[2209]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2210]||(t[2210]=l('
julia
mlirModuleGetBody(_module)

Gets the body of the module, i.e. the only block it contains.

source

',3))]),e("details",Th,[e("summary",null,[t[2211]||(t[2211]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetContext")],-1)),t[2212]||(t[2212]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2213]||(t[2213]=l('
julia
mlirModuleGetContext(_module)

Gets the context that a module was created with.

source

',3))]),e("details",Ch,[e("summary",null,[t[2214]||(t[2214]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetOperation")],-1)),t[2215]||(t[2215]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2216]||(t[2216]=l('
julia
mlirModuleGetOperation(_module)

Views the module as a generic operation.

source

',3))]),e("details",xh,[e("summary",null,[t[2217]||(t[2217]=e("a",{id:"Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleIsNull")],-1)),t[2218]||(t[2218]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2219]||(t[2219]=l('
julia
mlirModuleIsNull(_module)

Checks whether a module is null.

source

',3))]),e("details",Fh,[e("summary",null,[t[2220]||(t[2220]=e("a",{id:"Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNamedAttributeGet")],-1)),t[2221]||(t[2221]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2222]||(t[2222]=l('
julia
mlirNamedAttributeGet(name, attr)

Associates an attribute with the name. Takes ownership of neither.

source

',3))]),e("details",Ph,[e("summary",null,[t[2223]||(t[2223]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGet")],-1)),t[2224]||(t[2224]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2225]||(t[2225]=l('
julia
mlirNoneTypeGet(ctx)

Creates a None type in the given context. The type is owned by the context.

source

',3))]),e("details",Dh,[e("summary",null,[t[2226]||(t[2226]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGetTypeID")],-1)),t[2227]||(t[2227]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2228]||(t[2228]=l('
julia
mlirNoneTypeGetTypeID()

Returns the typeID of an None type.

source

',3))]),e("details",Oh,[e("summary",null,[t[2229]||(t[2229]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetNextUse")],-1)),t[2230]||(t[2230]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2231]||(t[2231]=l('
julia
mlirOpOperandGetNextUse(opOperand)

Returns an op operand representing the next use of the value, or a null op operand if there is no next use.

source

',3))]),e("details",Bh,[e("summary",null,[t[2232]||(t[2232]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOperandNumber")],-1)),t[2233]||(t[2233]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2234]||(t[2234]=l('
julia
mlirOpOperandGetOperandNumber(opOperand)

Returns the operand number of an op operand.

source

',3))]),e("details",Gh,[e("summary",null,[t[2235]||(t[2235]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOwner")],-1)),t[2236]||(t[2236]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2237]||(t[2237]=l('
julia
mlirOpOperandGetOwner(opOperand)

Returns the owner operation of an op operand.

source

',3))]),e("details",zh,[e("summary",null,[t[2238]||(t[2238]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetValue")],-1)),t[2239]||(t[2239]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2240]||(t[2240]=l('
julia
mlirOpOperandGetValue(opOperand)

Returns the value of an op operand.

source

',3))]),e("details",wh,[e("summary",null,[t[2241]||(t[2241]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandIsNull")],-1)),t[2242]||(t[2242]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2243]||(t[2243]=l('
julia
mlirOpOperandIsNull(opOperand)

Returns whether the op operand is null.

source

',3))]),e("details",Sh,[e("summary",null,[t[2244]||(t[2244]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass")],-1)),t[2245]||(t[2245]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2246]||(t[2246]=l('
julia
mlirOpPassManagerAddOwnedPass(passManager, pass)

Add a pass and transfer ownership to the provided mlirOpPassManager. If the pass is not a generic operation pass or matching the type of the provided PassManager, a new OpPassManager is implicitly nested under the provided PassManager.

source

',3))]),e("details",Nh,[e("summary",null,[t[2247]||(t[2247]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddPipeline")],-1)),t[2248]||(t[2248]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2249]||(t[2249]=l('
julia
mlirOpPassManagerAddPipeline(passManager, pipelineElements, callback, userData)

Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

',3))]),e("details",Vh,[e("summary",null,[t[2250]||(t[2250]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder")],-1)),t[2251]||(t[2251]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2252]||(t[2252]=l('
julia
mlirOpPassManagerGetNestedUnder(passManager, operationName)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.

source

',3))]),e("details",qh,[e("summary",null,[t[2253]||(t[2253]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified")],-1)),t[2254]||(t[2254]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2255]||(t[2255]=l('
julia
mlirOpPrintingFlagsAssumeVerified(flags)

Do not verify the operation when using custom operation printers.

source

',3))]),e("details",Uh,[e("summary",null,[t[2256]||(t[2256]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsCreate")],-1)),t[2257]||(t[2257]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2258]||(t[2258]=l('
julia
mlirOpPrintingFlagsCreate()

Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirOpPrintingFlagsDestroy().

source

',3))]),e("details",Qh,[e("summary",null,[t[2259]||(t[2259]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsDestroy")],-1)),t[2260]||(t[2260]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2261]||(t[2261]=l('
julia
mlirOpPrintingFlagsDestroy(flags)

Destroys printing flags created with mlirOpPrintingFlagsCreate.

source

',3))]),e("details",Wh,[e("summary",null,[t[2262]||(t[2262]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs")],-1)),t[2263]||(t[2263]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2264]||(t[2264]=l('
julia
mlirOpPrintingFlagsElideLargeElementsAttrs(flags, largeElementLimit)

Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data. The largeElementLimit is used to configure what is considered to be a "large" ElementsAttr by providing an upper limit to the number of elements.

source

',3))]),e("details",Hh,[e("summary",null,[t[2265]||(t[2265]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString")],-1)),t[2266]||(t[2266]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2267]||(t[2267]=l('
julia
mlirOpPrintingFlagsElideLargeResourceString(flags, largeResourceLimit)

Enables the elision of large resources strings by omitting them from the dialect_resources section. The largeResourceLimit is used to configure what is considered to be a "large" resource by providing an upper limit to the string size.

source

',3))]),e("details",Zh,[e("summary",null,[t[2268]||(t[2268]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo")],-1)),t[2269]||(t[2269]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2270]||(t[2270]=l('
julia
mlirOpPrintingFlagsEnableDebugInfo(flags, enable, prettyForm)

Enable or disable printing of debug information (based on enable). If 'prettyForm' is set to true, debug information is printed in a more readable 'pretty' form. Note: The IR generated with 'prettyForm' is not parsable.

source

',3))]),e("details",Jh,[e("summary",null,[t[2271]||(t[2271]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm")],-1)),t[2272]||(t[2272]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2273]||(t[2273]=l('
julia
mlirOpPrintingFlagsPrintGenericOpForm(flags)

Always print operations in the generic form.

source

',3))]),e("details",Kh,[e("summary",null,[t[2274]||(t[2274]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions")],-1)),t[2275]||(t[2275]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2276]||(t[2276]=l('
julia
mlirOpPrintingFlagsSkipRegions(flags)

Skip printing regions.

source

',3))]),e("details",$h,[e("summary",null,[t[2277]||(t[2277]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope")],-1)),t[2278]||(t[2278]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2279]||(t[2279]=l('
julia
mlirOpPrintingFlagsUseLocalScope(flags)

Use local scope when printing the operation. This allows for using the printer in a more localized and thread-safe setting, but may not necessarily be identical to what the IR will look like when dumping the full module.

source

',3))]),e("details",Xh,[e("summary",null,[t[2280]||(t[2280]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetOwner")],-1)),t[2281]||(t[2281]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2282]||(t[2282]=l('
julia
mlirOpResultGetOwner(value)

Returns an operation that produced this value as its result. Asserts if the value is not an op result.

source

',3))]),e("details",Yh,[e("summary",null,[t[2283]||(t[2283]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetResultNumber")],-1)),t[2284]||(t[2284]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2285]||(t[2285]=l('
julia
mlirOpResultGetResultNumber(value)

Returns the position of the value in the list of results of the operation that produced it.

source

',3))]),e("details",_h,[e("summary",null,[t[2286]||(t[2286]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGet")],-1)),t[2287]||(t[2287]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2288]||(t[2288]=l('
julia
mlirOpaqueAttrGet(ctx, dialectNamespace, dataLength, data, type)

Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",tu,[e("summary",null,[t[2289]||(t[2289]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetData")],-1)),t[2290]||(t[2290]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2291]||(t[2291]=l('
julia
mlirOpaqueAttrGetData(attr)

Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",eu,[e("summary",null,[t[2292]||(t[2292]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace")],-1)),t[2293]||(t[2293]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2294]||(t[2294]=l('
julia
mlirOpaqueAttrGetDialectNamespace(attr)

Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.

source

',3))]),e("details",su,[e("summary",null,[t[2295]||(t[2295]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID")],-1)),t[2296]||(t[2296]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2297]||(t[2297]=l('
julia
mlirOpaqueAttrGetTypeID()

Returns the typeID of an Opaque attribute.

source

',3))]),e("details",au,[e("summary",null,[t[2298]||(t[2298]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGet")],-1)),t[2299]||(t[2299]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2300]||(t[2300]=l('
julia
mlirOpaqueTypeGet(ctx, dialectNamespace, typeData)

Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",iu,[e("summary",null,[t[2301]||(t[2301]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetData")],-1)),t[2302]||(t[2302]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2303]||(t[2303]=l('
julia
mlirOpaqueTypeGetData(type)

Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.

source

',3))]),e("details",lu,[e("summary",null,[t[2304]||(t[2304]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace")],-1)),t[2305]||(t[2305]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2306]||(t[2306]=l('
julia
mlirOpaqueTypeGetDialectNamespace(type)

Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.

source

',3))]),e("details",nu,[e("summary",null,[t[2307]||(t[2307]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID")],-1)),t[2308]||(t[2308]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2309]||(t[2309]=l('
julia
mlirOpaqueTypeGetTypeID()

Returns the typeID of an Opaque type.

source

',3))]),e("details",pu,[e("summary",null,[t[2310]||(t[2310]=e("a",{id:"Reactant.MLIR.API.mlirOperationClone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationClone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationClone")],-1)),t[2311]||(t[2311]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2312]||(t[2312]=l('
julia
mlirOperationClone(op)

Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.

source

',3))]),e("details",ru,[e("summary",null,[t[2313]||(t[2313]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreate")],-1)),t[2314]||(t[2314]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2315]||(t[2315]=l('
julia
mlirOperationCreate(state)

Creates an operation and transfers ownership to the caller. Note that caller owned child objects are transferred in this call and must not be further used. Particularly, this applies to any regions added to the state (the implementation may invalidate any such pointers).

This call can fail under the following conditions, in which case, it will return a null operation and emit diagnostics: - Result type inference is enabled and cannot be performed.

source

',4))]),e("details",ou,[e("summary",null,[t[2316]||(t[2316]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreateParse")],-1)),t[2317]||(t[2317]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2318]||(t[2318]=l('
julia
mlirOperationCreateParse(context, sourceStr, sourceName)

Parses an operation, giving ownership to the caller. If parsing fails a null operation will be returned, and an error diagnostic emitted.

sourceStr may be either the text assembly format, or binary bytecode format. sourceName is used as the file name of the source; any IR without locations will get a FileLineColLoc location with sourceName as the file name.

source

',4))]),e("details",du,[e("summary",null,[t[2319]||(t[2319]=e("a",{id:"Reactant.MLIR.API.mlirOperationDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationDestroy")],-1)),t[2320]||(t[2320]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2321]||(t[2321]=l('
julia
mlirOperationDestroy(op)

Takes an operation owned by the caller and destroys it.

source

',3))]),e("details",cu,[e("summary",null,[t[2322]||(t[2322]=e("a",{id:"Reactant.MLIR.API.mlirOperationDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationDump")],-1)),t[2323]||(t[2323]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2324]||(t[2324]=l('
julia
mlirOperationDump(op)

Prints an operation to stderr.

source

',3))]),e("details",hu,[e("summary",null,[t[2325]||(t[2325]=e("a",{id:"Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationEqual")],-1)),t[2326]||(t[2326]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2327]||(t[2327]=l('
julia
mlirOperationEqual(op, other)

Checks whether two operation handles point to the same operation. This does not perform deep comparison.

source

',3))]),e("details",uu,[e("summary",null,[t[2328]||(t[2328]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetAttribute")],-1)),t[2329]||(t[2329]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2330]||(t[2330]=l('
julia
mlirOperationGetAttribute(op, pos)

Return pos-th attribute of the operation. Deprecated, please use mlirOperationGetInherentAttribute or mlirOperationGetDiscardableAttribute.

source

',3))]),e("details",bu,[e("summary",null,[t[2331]||(t[2331]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetAttributeByName")],-1)),t[2332]||(t[2332]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2333]||(t[2333]=l('
julia
mlirOperationGetAttributeByName(op, name)

Returns an attribute attached to the operation given its name. Deprecated, please use mlirOperationGetInherentAttributeByName or mlirOperationGetDiscardableAttributeByName.

source

',3))]),e("details",gu,[e("summary",null,[t[2334]||(t[2334]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetBlock")],-1)),t[2335]||(t[2335]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2336]||(t[2336]=l('
julia
mlirOperationGetBlock(op)

Gets the block that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",yu,[e("summary",null,[t[2337]||(t[2337]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetContext")],-1)),t[2338]||(t[2338]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2339]||(t[2339]=l('
julia
mlirOperationGetContext(op)

Gets the context this operation is associated with

source

',3))]),e("details",mu,[e("summary",null,[t[2340]||(t[2340]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute")],-1)),t[2341]||(t[2341]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2342]||(t[2342]=l('
julia
mlirOperationGetDiscardableAttribute(op, pos)

Return pos-th discardable attribute of the operation.

source

',3))]),e("details",ku,[e("summary",null,[t[2343]||(t[2343]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName")],-1)),t[2344]||(t[2344]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2345]||(t[2345]=l('
julia
mlirOperationGetDiscardableAttributeByName(op, name)

Returns a discardable attribute attached to the operation given its name.

source

',3))]),e("details",fu,[e("summary",null,[t[2346]||(t[2346]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetFirstRegion")],-1)),t[2347]||(t[2347]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2348]||(t[2348]=l('
julia
mlirOperationGetFirstRegion(op)

Returns first region attached to the operation.

source

',3))]),e("details",Ru,[e("summary",null,[t[2349]||(t[2349]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName")],-1)),t[2350]||(t[2350]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2351]||(t[2351]=l('
julia
mlirOperationGetInherentAttributeByName(op, name)

Returns an inherent attribute attached to the operation given its name.

source

',3))]),e("details",Iu,[e("summary",null,[t[2352]||(t[2352]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetLocation")],-1)),t[2353]||(t[2353]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2354]||(t[2354]=l('
julia
mlirOperationGetLocation(op)

Gets the location of the operation.

source

',3))]),e("details",ju,[e("summary",null,[t[2355]||(t[2355]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetName")],-1)),t[2356]||(t[2356]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2357]||(t[2357]=l('
julia
mlirOperationGetName(op)

Gets the name of the operation as an identifier.

source

',3))]),e("details",Mu,[e("summary",null,[t[2358]||(t[2358]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNextInBlock")],-1)),t[2359]||(t[2359]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2360]||(t[2360]=l('
julia
mlirOperationGetNextInBlock(op)

Returns an operation immediately following the given operation it its enclosing block.

source

',3))]),e("details",Au,[e("summary",null,[t[2361]||(t[2361]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumAttributes")],-1)),t[2362]||(t[2362]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2363]||(t[2363]=l('
julia
mlirOperationGetNumAttributes(op)

Returns the number of attributes attached to the operation. Deprecated, please use mlirOperationGetNumInherentAttributes or mlirOperationGetNumDiscardableAttributes.

source

',3))]),e("details",Lu,[e("summary",null,[t[2364]||(t[2364]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes")],-1)),t[2365]||(t[2365]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2366]||(t[2366]=l('
julia
mlirOperationGetNumDiscardableAttributes(op)

Returns the number of discardable attributes attached to the operation.

source

',3))]),e("details",Eu,[e("summary",null,[t[2367]||(t[2367]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumOperands")],-1)),t[2368]||(t[2368]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2369]||(t[2369]=l('
julia
mlirOperationGetNumOperands(op)

Returns the number of operands of the operation.

source

',3))]),e("details",vu,[e("summary",null,[t[2370]||(t[2370]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumRegions")],-1)),t[2371]||(t[2371]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2372]||(t[2372]=l('
julia
mlirOperationGetNumRegions(op)

Returns the number of regions attached to the given operation.

source

',3))]),e("details",Tu,[e("summary",null,[t[2373]||(t[2373]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumResults")],-1)),t[2374]||(t[2374]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2375]||(t[2375]=l('
julia
mlirOperationGetNumResults(op)

Returns the number of results of the operation.

source

',3))]),e("details",Cu,[e("summary",null,[t[2376]||(t[2376]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumSuccessors")],-1)),t[2377]||(t[2377]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2378]||(t[2378]=l('
julia
mlirOperationGetNumSuccessors(op)

Returns the number of successor blocks of the operation.

source

',3))]),e("details",xu,[e("summary",null,[t[2379]||(t[2379]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetOperand")],-1)),t[2380]||(t[2380]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2381]||(t[2381]=l('
julia
mlirOperationGetOperand(op, pos)

Returns pos-th operand of the operation.

source

',3))]),e("details",Fu,[e("summary",null,[t[2382]||(t[2382]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetParentOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetParentOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetParentOperation")],-1)),t[2383]||(t[2383]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2384]||(t[2384]=l('
julia
mlirOperationGetParentOperation(op)

Gets the operation that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",Pu,[e("summary",null,[t[2385]||(t[2385]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetRegion")],-1)),t[2386]||(t[2386]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2387]||(t[2387]=l('
julia
mlirOperationGetRegion(op, pos)

Returns pos-th region attached to the operation.

source

',3))]),e("details",Du,[e("summary",null,[t[2388]||(t[2388]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetResult")],-1)),t[2389]||(t[2389]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2390]||(t[2390]=l('
julia
mlirOperationGetResult(op, pos)

Returns pos-th result of the operation.

source

',3))]),e("details",Ou,[e("summary",null,[t[2391]||(t[2391]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetSuccessor-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetSuccessor-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetSuccessor")],-1)),t[2392]||(t[2392]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2393]||(t[2393]=l('
julia
mlirOperationGetSuccessor(op, pos)

Returns pos-th successor of the operation.

source

',3))]),e("details",Bu,[e("summary",null,[t[2394]||(t[2394]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetTypeID")],-1)),t[2395]||(t[2395]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2396]||(t[2396]=l('
julia
mlirOperationGetTypeID(op)

Gets the type id of the operation. Returns null if the operation does not have a registered operation description.

source

',3))]),e("details",Gu,[e("summary",null,[t[2397]||(t[2397]=e("a",{id:"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName")],-1)),t[2398]||(t[2398]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2399]||(t[2399]=l('
julia
mlirOperationHasInherentAttributeByName(op, name)

Returns true if this operation defines an inherent attribute with this name. Note: the attribute can be optional, so mlirOperationGetInherentAttributeByName can still return a null attribute.

source

',3))]),e("details",zu,[e("summary",null,[t[2400]||(t[2400]=e("a",{id:"Reactant.MLIR.API.mlirOperationImplementsInterface-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationImplementsInterface-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationImplementsInterface")],-1)),t[2401]||(t[2401]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2402]||(t[2402]=l('
julia
mlirOperationImplementsInterface(operation, interfaceTypeID)

Returns true if the given operation implements an interface identified by its TypeID.

source

',3))]),e("details",wu,[e("summary",null,[t[2403]||(t[2403]=e("a",{id:"Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic")],-1)),t[2404]||(t[2404]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2405]||(t[2405]=l('
julia
mlirOperationImplementsInterfaceStatic(operationName, context, interfaceTypeID)

Returns true if the operation identified by its canonical string name implements the interface identified by its TypeID in the given context. Note that interfaces may be attached to operations in some contexts and not others.

source

',3))]),e("details",Su,[e("summary",null,[t[2406]||(t[2406]=e("a",{id:"Reactant.MLIR.API.mlirOperationIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationIsNull")],-1)),t[2407]||(t[2407]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2408]||(t[2408]=l('
julia
mlirOperationIsNull(op)

Checks whether the underlying operation is null.

source

',3))]),e("details",Nu,[e("summary",null,[t[2409]||(t[2409]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveAfter")],-1)),t[2410]||(t[2410]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2411]||(t[2411]=l('
julia
mlirOperationMoveAfter(op, other)

Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",Vu,[e("summary",null,[t[2412]||(t[2412]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveBefore")],-1)),t[2413]||(t[2413]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2414]||(t[2414]=l('
julia
mlirOperationMoveBefore(op, other)

Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",qu,[e("summary",null,[t[2415]||(t[2415]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrint")],-1)),t[2416]||(t[2416]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2417]||(t[2417]=l('
julia
mlirOperationPrint(op, callback, userData)

Prints an operation by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Uu,[e("summary",null,[t[2418]||(t[2418]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrintWithFlags-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationPrintWithFlags-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrintWithFlags")],-1)),t[2419]||(t[2419]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2420]||(t[2420]=l('
julia
mlirOperationPrintWithFlags(op, flags, callback, userData)

Same as mlirOperationPrint but accepts flags controlling the printing behavior.

source

',3))]),e("details",Qu,[e("summary",null,[t[2421]||(t[2421]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrintWithState-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationPrintWithState-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrintWithState")],-1)),t[2422]||(t[2422]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2423]||(t[2423]=l('
julia
mlirOperationPrintWithState(op, state, callback, userData)

Same as mlirOperationPrint but accepts AsmState controlling the printing behavior as well as caching computed names.

source

',3))]),e("details",Wu,[e("summary",null,[t[2424]||(t[2424]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveAttributeByName")],-1)),t[2425]||(t[2425]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2426]||(t[2426]=l('
julia
mlirOperationRemoveAttributeByName(op, name)

Removes an attribute by name. Returns false if the attribute was not found and true if removed. Deprecated, please use mlirOperationRemoveInherentAttributeByName or mlirOperationRemoveDiscardableAttributeByName.

source

',3))]),e("details",Hu,[e("summary",null,[t[2427]||(t[2427]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName")],-1)),t[2428]||(t[2428]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2429]||(t[2429]=l('
julia
mlirOperationRemoveDiscardableAttributeByName(op, name)

Removes a discardable attribute by name. Returns false if the attribute was not found and true if removed.

source

',3))]),e("details",Zu,[e("summary",null,[t[2430]||(t[2430]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveFromParent")],-1)),t[2431]||(t[2431]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2432]||(t[2432]=l('
julia
mlirOperationRemoveFromParent(op)

Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.

source

',3))]),e("details",Ju,[e("summary",null,[t[2433]||(t[2433]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetAttributeByName")],-1)),t[2434]||(t[2434]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2435]||(t[2435]=l('
julia
mlirOperationSetAttributeByName(op, name, attr)

Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise. Deprecated, please use mlirOperationSetInherentAttributeByName or mlirOperationSetDiscardableAttributeByName.

source

',3))]),e("details",Ku,[e("summary",null,[t[2436]||(t[2436]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName")],-1)),t[2437]||(t[2437]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2438]||(t[2438]=l('
julia
mlirOperationSetDiscardableAttributeByName(op, name, attr)

Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise. The new attr Attribute is not allowed to be null, use mlirOperationRemoveDiscardableAttributeByName to remove an Attribute instead.

source

',3))]),e("details",$u,[e("summary",null,[t[2439]||(t[2439]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetInherentAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetInherentAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetInherentAttributeByName")],-1)),t[2440]||(t[2440]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2441]||(t[2441]=l('
julia
mlirOperationSetInherentAttributeByName(op, name, attr)

Sets an inherent attribute by name, replacing the existing if it exists. This has no effect if "name" does not match an inherent attribute.

source

',3))]),e("details",Xu,[e("summary",null,[t[2442]||(t[2442]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetOperand")],-1)),t[2443]||(t[2443]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2444]||(t[2444]=l('
julia
mlirOperationSetOperand(op, pos, newValue)

Sets the pos-th operand of the operation.

source

',3))]),e("details",Yu,[e("summary",null,[t[2445]||(t[2445]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetOperands-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetOperands-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetOperands")],-1)),t[2446]||(t[2446]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2447]||(t[2447]=l('
julia
mlirOperationSetOperands(op, nOperands, operands)

Replaces the operands of the operation.

source

',3))]),e("details",_u,[e("summary",null,[t[2448]||(t[2448]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetSuccessor")],-1)),t[2449]||(t[2449]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2450]||(t[2450]=l('
julia
mlirOperationSetSuccessor(op, pos, block)

Set pos-th successor of the operation.

source

',3))]),e("details",tb,[e("summary",null,[t[2451]||(t[2451]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateAddResults-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationStateAddResults-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateAddResults")],-1)),t[2452]||(t[2452]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2453]||(t[2453]=l('
julia
mlirOperationStateAddResults(state, n, results)

Adds a list of components to the operation state.

source

',3))]),e("details",eb,[e("summary",null,[t[2454]||(t[2454]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference")],-1)),t[2455]||(t[2455]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2456]||(t[2456]=l('
julia
mlirOperationStateEnableResultTypeInference(state)

Enables result type inference for the operation under construction. If enabled, then the caller must not have called mlirOperationStateAddResults(). Note that if enabled, the mlirOperationCreate() call is failable: it will return a null operation on inference failure and will emit diagnostics.

source

',3))]),e("details",sb,[e("summary",null,[t[2457]||(t[2457]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationStateGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateGet")],-1)),t[2458]||(t[2458]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2459]||(t[2459]=l('
julia
mlirOperationStateGet(name, loc)

Constructs an operation state from a name and a location.

source

',3))]),e("details",ab,[e("summary",null,[t[2460]||(t[2460]=e("a",{id:"Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationVerify")],-1)),t[2461]||(t[2461]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2462]||(t[2462]=l('
julia
mlirOperationVerify(op)

Verify the operation and return true if it passes, false if it fails.

source

',3))]),e("details",ib,[e("summary",null,[t[2463]||(t[2463]=e("a",{id:"Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWalk")],-1)),t[2464]||(t[2464]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2465]||(t[2465]=l('
julia
mlirOperationWalk(op, callback, userData, walkOrder)

Walks operation op in walkOrder and calls callback on that operation. *userData is passed to the callback as well and can be used to tunnel some context or other data into the callback.

source

',3))]),e("details",lb,[e("summary",null,[t[2466]||(t[2466]=e("a",{id:"Reactant.MLIR.API.mlirOperationWriteBytecode-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationWriteBytecode-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWriteBytecode")],-1)),t[2467]||(t[2467]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2468]||(t[2468]=l('
julia
mlirOperationWriteBytecode(op, callback, userData)

Same as mlirOperationPrint but writing the bytecode format.

source

',3))]),e("details",nb,[e("summary",null,[t[2469]||(t[2469]=e("a",{id:"Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig")],-1)),t[2470]||(t[2470]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2471]||(t[2471]=l('
julia
mlirOperationWriteBytecodeWithConfig(op, config, callback, userData)

Same as mlirOperationWriteBytecode but with writer config and returns failure only if desired bytecode could not be honored.

source

',3))]),e("details",pb,[e("summary",null,[t[2472]||(t[2472]=e("a",{id:"Reactant.MLIR.API.mlirParsePassPipeline-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirParsePassPipeline-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirParsePassPipeline")],-1)),t[2473]||(t[2473]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2474]||(t[2474]=l('
julia
mlirParsePassPipeline(passManager, pipeline, callback, userData)

Parse a textual MLIR pass pipeline and assign it to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

',3))]),e("details",rb,[e("summary",null,[t[2475]||(t[2475]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerAddOwnedPass")],-1)),t[2476]||(t[2476]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2477]||(t[2477]=l('
julia
mlirPassManagerAddOwnedPass(passManager, pass)

Add a pass and transfer ownership to the provided top-level mlirPassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

source

',3))]),e("details",ob,[e("summary",null,[t[2478]||(t[2478]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreate")],-1)),t[2479]||(t[2479]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2480]||(t[2480]=l('
julia
mlirPassManagerCreate(ctx)

Create a new top-level PassManager with the default anchor.

source

',3))]),e("details",db,[e("summary",null,[t[2481]||(t[2481]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreateOnOperation")],-1)),t[2482]||(t[2482]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2483]||(t[2483]=l('
julia
mlirPassManagerCreateOnOperation(ctx, anchorOp)

Create a new top-level PassManager anchored on anchorOp.

source

',3))]),e("details",cb,[e("summary",null,[t[2484]||(t[2484]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerDestroy")],-1)),t[2485]||(t[2485]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2486]||(t[2486]=l('
julia
mlirPassManagerDestroy(passManager)

Destroy the provided PassManager.

source

',3))]),e("details",hb,[e("summary",null,[t[2487]||(t[2487]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting")],-1)),t[2488]||(t[2488]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2489]||(t[2489]=l('
julia
mlirPassManagerEnableIRPrinting(passManager, printBeforeAll, printAfterAll, printModuleScope, printAfterOnlyOnChange, printAfterOnlyOnFailure)

Enable IR printing.

source

',3))]),e("details",ub,[e("summary",null,[t[2490]||(t[2490]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableVerifier")],-1)),t[2491]||(t[2491]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2492]||(t[2492]=l('
julia
mlirPassManagerEnableVerifier(passManager, enable)

Enable / disable verify-each.

source

',3))]),e("details",bb,[e("summary",null,[t[2493]||(t[2493]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager")],-1)),t[2494]||(t[2494]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2495]||(t[2495]=l('
julia
mlirPassManagerGetAsOpPassManager(passManager)

Cast a top-level PassManager to a generic OpPassManager.

source

',3))]),e("details",gb,[e("summary",null,[t[2496]||(t[2496]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetNestedUnder")],-1)),t[2497]||(t[2497]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2498]||(t[2498]=l('
julia
mlirPassManagerGetNestedUnder(passManager, operationName)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

source

',3))]),e("details",yb,[e("summary",null,[t[2499]||(t[2499]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerIsNull")],-1)),t[2500]||(t[2500]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2501]||(t[2501]=l('
julia
mlirPassManagerIsNull(passManager)

Checks if a PassManager is null.

source

',3))]),e("details",mb,[e("summary",null,[t[2502]||(t[2502]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerRunOnOp")],-1)),t[2503]||(t[2503]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2504]||(t[2504]=l('
julia
mlirPassManagerRunOnOp(passManager, op)

Run the provided passManager on the given op.

source

',3))]),e("details",kb,[e("summary",null,[t[2505]||(t[2505]=e("a",{id:"Reactant.MLIR.API.mlirPrintPassPipeline-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirPrintPassPipeline-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPrintPassPipeline")],-1)),t[2506]||(t[2506]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2507]||(t[2507]=l('
julia
mlirPrintPassPipeline(passManager, callback, userData)

Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",fb,[e("summary",null,[t[2508]||(t[2508]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType")],-1)),t[2509]||(t[2509]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2510]||(t[2510]=l('
julia
mlirQuantizedTypeCastExpressedToStorageType(type, candidate)

Casts from a type based on the expressed type of the given quantized type to equivalent type based on storage type of the same quantized type.

source

',3))]),e("details",Rb,[e("summary",null,[t[2511]||(t[2511]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType")],-1)),t[2512]||(t[2512]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2513]||(t[2513]=l('
julia
mlirQuantizedTypeCastFromExpressedType(type, candidate)

Casts from a type based on the expressed type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.

source

',3))]),e("details",Ib,[e("summary",null,[t[2514]||(t[2514]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType")],-1)),t[2515]||(t[2515]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2516]||(t[2516]=l('
julia
mlirQuantizedTypeCastFromStorageType(type, candidate)

Casts from a type based on the storage type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.

source

',3))]),e("details",jb,[e("summary",null,[t[2517]||(t[2517]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType")],-1)),t[2518]||(t[2518]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2519]||(t[2519]=l('
julia
mlirQuantizedTypeCastToExpressedType(type)

Casts from a type based on a quantized type to a corresponding typed based on the expressed type. Returns a null type if the cast is not valid.

source

',3))]),e("details",Mb,[e("summary",null,[t[2520]||(t[2520]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType")],-1)),t[2521]||(t[2521]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2522]||(t[2522]=l('
julia
mlirQuantizedTypeCastToStorageType(type)

Casts from a type based on a quantized type to a corresponding typed based on the storage type. Returns a null type if the cast is not valid.

source

',3))]),e("details",Ab,[e("summary",null,[t[2523]||(t[2523]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger")],-1)),t[2524]||(t[2524]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2525]||(t[2525]=l('
julia
mlirQuantizedTypeGetDefaultMaximumForInteger(isSigned, integralWidth)

Returns the maximum possible value stored by a quantized type.

source

',3))]),e("details",Lb,[e("summary",null,[t[2526]||(t[2526]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger")],-1)),t[2527]||(t[2527]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2528]||(t[2528]=l('
julia
mlirQuantizedTypeGetDefaultMinimumForInteger(isSigned, integralWidth)

Returns the minimum possible value stored by a quantized type.

source

',3))]),e("details",Eb,[e("summary",null,[t[2529]||(t[2529]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType")],-1)),t[2530]||(t[2530]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2531]||(t[2531]=l('
julia
mlirQuantizedTypeGetExpressedType(type)

Gets the original type approximated by the given quantized type.

source

',3))]),e("details",vb,[e("summary",null,[t[2532]||(t[2532]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetFlags")],-1)),t[2533]||(t[2533]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2534]||(t[2534]=l('
julia
mlirQuantizedTypeGetFlags(type)

Gets the flags associated with the given quantized type.

source

',3))]),e("details",Tb,[e("summary",null,[t[2535]||(t[2535]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType")],-1)),t[2536]||(t[2536]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2537]||(t[2537]=l('
julia
mlirQuantizedTypeGetQuantizedElementType(type)

Returns the element type of the given quantized type as another quantized type.

source

',3))]),e("details",Cb,[e("summary",null,[t[2538]||(t[2538]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag")],-1)),t[2539]||(t[2539]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2540]||(t[2540]=l('
julia
mlirQuantizedTypeGetSignedFlag()

Returns the bit flag used to indicate signedness of a quantized type.

source

',3))]),e("details",xb,[e("summary",null,[t[2541]||(t[2541]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType")],-1)),t[2542]||(t[2542]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2543]||(t[2543]=l('
julia
mlirQuantizedTypeGetStorageType(type)

Returns the underlying type used to store the values.

source

',3))]),e("details",Fb,[e("summary",null,[t[2544]||(t[2544]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth")],-1)),t[2545]||(t[2545]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2546]||(t[2546]=l('
julia
mlirQuantizedTypeGetStorageTypeIntegralWidth(type)

Returns the integral bitwidth that the storage type of the given quantized type can represent exactly.

source

',3))]),e("details",Pb,[e("summary",null,[t[2547]||(t[2547]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax")],-1)),t[2548]||(t[2548]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2549]||(t[2549]=l('
julia
mlirQuantizedTypeGetStorageTypeMax(type)

Returns the maximum value that the storage type of the given quantized type can take.

source

',3))]),e("details",Db,[e("summary",null,[t[2550]||(t[2550]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin")],-1)),t[2551]||(t[2551]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2552]||(t[2552]=l('
julia
mlirQuantizedTypeGetStorageTypeMin(type)

Returns the minimum value that the storage type of the given quantized type can take.

source

',3))]),e("details",Ob,[e("summary",null,[t[2553]||(t[2553]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType")],-1)),t[2554]||(t[2554]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2555]||(t[2555]=l('
julia
mlirQuantizedTypeIsCompatibleExpressedType(type, candidate)

Returns true if the candidate type is compatible with the given quantized type.

source

',3))]),e("details",Bb,[e("summary",null,[t[2556]||(t[2556]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeIsSigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeIsSigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeIsSigned")],-1)),t[2557]||(t[2557]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2558]||(t[2558]=l('
julia
mlirQuantizedTypeIsSigned(type)

Returns true if the given type is signed, false otherwise.

source

',3))]),e("details",Gb,[e("summary",null,[t[2559]||(t[2559]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGet")],-1)),t[2560]||(t[2560]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2561]||(t[2561]=l('
julia
mlirRankedTensorTypeGet(rank, shape, elementType, encoding)

Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull() to this parameter.

source

',3))]),e("details",zb,[e("summary",null,[t[2562]||(t[2562]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetChecked")],-1)),t[2563]||(t[2563]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2564]||(t[2564]=l('
julia
mlirRankedTensorTypeGetChecked(loc, rank, shape, elementType, encoding)

Same as "mlirRankedTensorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",wb,[e("summary",null,[t[2565]||(t[2565]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding")],-1)),t[2566]||(t[2566]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2567]||(t[2567]=l('
julia
mlirRankedTensorTypeGetEncoding(type)

Gets the 'encoding' attribute from the ranked tensor type, returning a null attribute if none.

source

',3))]),e("details",Sb,[e("summary",null,[t[2568]||(t[2568]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID")],-1)),t[2569]||(t[2569]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2570]||(t[2570]=l('
julia
mlirRankedTensorTypeGetTypeID()

Returns the typeID of an RankedTensor type.

source

',3))]),e("details",Nb,[e("summary",null,[t[2571]||(t[2571]=e("a",{id:"Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionAppendOwnedBlock")],-1)),t[2572]||(t[2572]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2573]||(t[2573]=l('
julia
mlirRegionAppendOwnedBlock(region, block)

Takes a block owned by the caller and appends it to the given region.

source

',3))]),e("details",Vb,[e("summary",null,[t[2574]||(t[2574]=e("a",{id:"Reactant.MLIR.API.mlirRegionCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirRegionCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionCreate")],-1)),t[2575]||(t[2575]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2576]||(t[2576]=l('
julia
mlirRegionCreate()

Creates a new empty region and transfers ownership to the caller.

source

',3))]),e("details",qb,[e("summary",null,[t[2577]||(t[2577]=e("a",{id:"Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionDestroy")],-1)),t[2578]||(t[2578]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2579]||(t[2579]=l('
julia
mlirRegionDestroy(region)

Takes a region owned by the caller and destroys it.

source

',3))]),e("details",Ub,[e("summary",null,[t[2580]||(t[2580]=e("a",{id:"Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionEqual")],-1)),t[2581]||(t[2581]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2582]||(t[2582]=l('
julia
mlirRegionEqual(region, other)

Checks whether two region handles point to the same region. This does not perform deep comparison.

source

',3))]),e("details",Qb,[e("summary",null,[t[2583]||(t[2583]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetFirstBlock")],-1)),t[2584]||(t[2584]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2585]||(t[2585]=l('
julia
mlirRegionGetFirstBlock(region)

Gets the first block in the region.

source

',3))]),e("details",Wb,[e("summary",null,[t[2586]||(t[2586]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetNextInOperation")],-1)),t[2587]||(t[2587]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2588]||(t[2588]=l('
julia
mlirRegionGetNextInOperation(region)

Returns the region immediately following the given region in its parent operation.

source

',3))]),e("details",Hb,[e("summary",null,[t[2589]||(t[2589]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlock")],-1)),t[2590]||(t[2590]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2591]||(t[2591]=l('
julia
mlirRegionInsertOwnedBlock(region, pos, block)

Takes a block owned by the caller and inserts it at pos to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.

source

',3))]),e("details",Zb,[e("summary",null,[t[2592]||(t[2592]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter")],-1)),t[2593]||(t[2593]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2594]||(t[2594]=l('
julia
mlirRegionInsertOwnedBlockAfter(region, reference, block)

Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.

source

',3))]),e("details",Jb,[e("summary",null,[t[2595]||(t[2595]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore")],-1)),t[2596]||(t[2596]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2597]||(t[2597]=l('
julia
mlirRegionInsertOwnedBlockBefore(region, reference, block)

Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.

source

',3))]),e("details",Kb,[e("summary",null,[t[2598]||(t[2598]=e("a",{id:"Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionIsNull")],-1)),t[2599]||(t[2599]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2600]||(t[2600]=l('
julia
mlirRegionIsNull(region)

Checks whether a region is null.

source

',3))]),e("details",$b,[e("summary",null,[t[2601]||(t[2601]=e("a",{id:"Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionTakeBody")],-1)),t[2602]||(t[2602]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2603]||(t[2603]=l('
julia
mlirRegionTakeBody(target, source)

Moves the entire content of the source region to the target region.

source

',3))]),e("details",Xb,[e("summary",null,[t[2604]||(t[2604]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllDialects")],-1)),t[2605]||(t[2605]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2606]||(t[2606]=l('
julia
mlirRegisterAllDialects(registry)

Appends all upstream dialects and extensions to the dialect registry.

source

',3))]),e("details",Yb,[e("summary",null,[t[2607]||(t[2607]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations")],-1)),t[2608]||(t[2608]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2609]||(t[2609]=l('
julia
mlirRegisterAllLLVMTranslations(context)

Register all translations to LLVM IR for dialects that can support it.

source

',3))]),e("details",_b,[e("summary",null,[t[2610]||(t[2610]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}",href:"#Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllPasses")],-1)),t[2611]||(t[2611]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2612]||(t[2612]=l('
julia
mlirRegisterAllPasses()

Register all compiler passes of MLIR.

source

',3))]),e("details",tg,[e("summary",null,[t[2613]||(t[2613]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification")],-1)),t[2614]||(t[2614]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2615]||(t[2615]=l('
julia
mlirRewriterBaseCancelOpModification(rewriter, op)

This method cancels a pending in-place modification. This can only be called on operations that were provided to a call to startOpModification.

source

',3))]),e("details",eg,[e("summary",null,[t[2616]||(t[2616]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint")],-1)),t[2617]||(t[2617]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2618]||(t[2618]=l('
julia
mlirRewriterBaseClearInsertionPoint(rewriter)

Reset the insertion point to no location. Creating an operation without a set insertion point is an error, but this can still be useful when the current insertion point a builder refers to is being removed.

source

',3))]),e("details",sg,[e("summary",null,[t[2619]||(t[2619]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseClone")],-1)),t[2620]||(t[2620]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2621]||(t[2621]=l('
julia
mlirRewriterBaseClone(rewriter, op)

Creates a deep copy of the specified operation.

source

',3))]),e("details",ag,[e("summary",null,[t[2622]||(t[2622]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore")],-1)),t[2623]||(t[2623]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2624]||(t[2624]=l('
julia
mlirRewriterBaseCloneRegionBefore(rewriter, region, before)

Clone the blocks that belong to "region" before the given position in another region "parent".

source

',3))]),e("details",ig,[e("summary",null,[t[2625]||(t[2625]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions")],-1)),t[2626]||(t[2626]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2627]||(t[2627]=l('
julia
mlirRewriterBaseCloneWithoutRegions(rewriter, op)

Creates a deep copy of this operation but keep the operation regions empty.

source

',3))]),e("details",lg,[e("summary",null,[t[2628]||(t[2628]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore")],-1)),t[2629]||(t[2629]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2630]||(t[2630]=l('
julia
mlirRewriterBaseCreateBlockBefore(rewriter, insertBefore, nArgTypes, argTypes, locations)

Add new block with 'argTypes' arguments and set the insertion point to the end of it. The block is placed before 'insertBefore'. locs contains the locations of the inserted arguments, and should match the size of argTypes.

source

',3))]),e("details",ng,[e("summary",null,[t[2631]||(t[2631]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseEraseBlock-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseEraseBlock-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseEraseBlock")],-1)),t[2632]||(t[2632]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2633]||(t[2633]=l('
julia
mlirRewriterBaseEraseBlock(rewriter, block)

Erases a block along with all operations inside it.

source

',3))]),e("details",pg,[e("summary",null,[t[2634]||(t[2634]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseEraseOp")],-1)),t[2635]||(t[2635]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2636]||(t[2636]=l('
julia
mlirRewriterBaseEraseOp(rewriter, op)

Erases an operation that is known to have no uses.

source

',3))]),e("details",rg,[e("summary",null,[t[2637]||(t[2637]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification")],-1)),t[2638]||(t[2638]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2639]||(t[2639]=l('
julia
mlirRewriterBaseFinalizeOpModification(rewriter, op)

This method is used to signal the end of an in-place modification of the given operation. This can only be called on operations that were provided to a call to startOpModification.

source

',3))]),e("details",og,[e("summary",null,[t[2640]||(t[2640]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetBlock")],-1)),t[2641]||(t[2641]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2642]||(t[2642]=l('
julia
mlirRewriterBaseGetBlock(rewriter)

Returns the current block of the rewriter.

source

',3))]),e("details",dg,[e("summary",null,[t[2643]||(t[2643]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetContext")],-1)),t[2644]||(t[2644]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2645]||(t[2645]=l('
julia
mlirRewriterBaseGetContext(rewriter)

Get the MLIR context referenced by the rewriter.

source

',3))]),e("details",cg,[e("summary",null,[t[2646]||(t[2646]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock")],-1)),t[2647]||(t[2647]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2648]||(t[2648]=l('
julia
mlirRewriterBaseGetInsertionBlock(rewriter)

Return the block the current insertion point belongs to. Note that the insertion point is not necessarily the end of the block.

source

',3))]),e("details",hg,[e("summary",null,[t[2649]||(t[2649]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore")],-1)),t[2650]||(t[2650]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2651]||(t[2651]=l('
julia
mlirRewriterBaseInlineBlockBefore(rewriter, source, op, nArgValues, argValues)

Inline the operations of block 'source' before the operation 'op'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The source block must have no successors. Otherwise, the resulting IR would have unreachable operations.

source

',4))]),e("details",ug,[e("summary",null,[t[2652]||(t[2652]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore")],-1)),t[2653]||(t[2653]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2654]||(t[2654]=l('
julia
mlirRewriterBaseInlineRegionBefore(rewriter, region, before)

Move the blocks that belong to "region" before the given position in another region "parent". The two regions must be different. The caller is responsible for creating or updating the operation transferring flow of control to the region and passing it the correct block arguments.

source

',3))]),e("details",bg,[e("summary",null,[t[2655]||(t[2655]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInsert")],-1)),t[2656]||(t[2656]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2657]||(t[2657]=l('
julia
mlirRewriterBaseInsert(rewriter, op)

Insert the given operation at the current insertion point and return it.

source

',3))]),e("details",gg,[e("summary",null,[t[2658]||(t[2658]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks")],-1)),t[2659]||(t[2659]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2660]||(t[2660]=l('
julia
mlirRewriterBaseMergeBlocks(rewriter, source, dest, nArgValues, argValues)

Inline the operations of block 'source' into the end of block 'dest'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The dest block must have no successors. Otherwise, the resulting IR would have unreachable operation.

source

',4))]),e("details",yg,[e("summary",null,[t[2661]||(t[2661]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore")],-1)),t[2662]||(t[2662]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2663]||(t[2663]=l('
julia
mlirRewriterBaseMoveBlockBefore(rewriter, block, existingBlock)

Unlink this block and insert it right before existingBlock.

source

',3))]),e("details",mg,[e("summary",null,[t[2664]||(t[2664]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter")],-1)),t[2665]||(t[2665]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2666]||(t[2666]=l('
julia
mlirRewriterBaseMoveOpAfter(rewriter, op, existingOp)

Unlink this operation from its current block and insert it right after existingOp which may be in the same or another block in the same function.

source

',3))]),e("details",kg,[e("summary",null,[t[2667]||(t[2667]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore")],-1)),t[2668]||(t[2668]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2669]||(t[2669]=l('
julia
mlirRewriterBaseMoveOpBefore(rewriter, op, existingOp)

Unlink this operation from its current block and insert it right before existingOp which may be in the same or another block in the same function.

source

',3))]),e("details",fg,[e("summary",null,[t[2670]||(t[2670]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation")],-1)),t[2671]||(t[2671]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2672]||(t[2672]=l('
julia
mlirRewriterBaseReplaceAllOpUsesWithOperation(rewriter, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

source

',3))]),e("details",Rg,[e("summary",null,[t[2673]||(t[2673]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange")],-1)),t[2674]||(t[2674]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2675]||(t[2675]=l('
julia
mlirRewriterBaseReplaceAllOpUsesWithValueRange(rewriter, from, nTo, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

source

',3))]),e("details",Ig,[e("summary",null,[t[2676]||(t[2676]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept")],-1)),t[2677]||(t[2677]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2678]||(t[2678]=l('
julia
mlirRewriterBaseReplaceAllUsesExcept(rewriter, from, to, exceptedUser)

Find uses of from and replace them with to except if the user is exceptedUser. Also notify the listener about every in-place op modification (for every use that was replaced).

source

',3))]),e("details",jg,[e("summary",null,[t[2679]||(t[2679]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith")],-1)),t[2680]||(t[2680]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2681]||(t[2681]=l('
julia
mlirRewriterBaseReplaceAllUsesWith(rewriter, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced).

source

',3))]),e("details",Mg,[e("summary",null,[t[2682]||(t[2682]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith")],-1)),t[2683]||(t[2683]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2684]||(t[2684]=l('
julia
mlirRewriterBaseReplaceAllValueRangeUsesWith(rewriter, nValues, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced).

source

',3))]),e("details",Ag,[e("summary",null,[t[2685]||(t[2685]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock")],-1)),t[2686]||(t[2686]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2687]||(t[2687]=l('
julia
mlirRewriterBaseReplaceOpUsesWithinBlock(rewriter, op, nNewValues, newValues, block)

Find uses of from within block and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced). The optional allUsesReplaced flag is set to "true" if all uses were replaced.

source

',3))]),e("details",Lg,[e("summary",null,[t[2688]||(t[2688]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation")],-1)),t[2689]||(t[2689]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2690]||(t[2690]=l('
julia
mlirRewriterBaseReplaceOpWithOperation(rewriter, op, newOp)

Replace the results of the given (original) operation with the specified new op (replacement). The result types of the two ops must match. The original op is erased.

source

',3))]),e("details",Eg,[e("summary",null,[t[2691]||(t[2691]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues")],-1)),t[2692]||(t[2692]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2693]||(t[2693]=l('
julia
mlirRewriterBaseReplaceOpWithValues(rewriter, op, nValues, values)

Replace the results of the given (original) operation with the specified list of values (replacements). The result types of the given op and the replacements must match. The original op is erased.

source

',3))]),e("details",vg,[e("summary",null,[t[2694]||(t[2694]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter")],-1)),t[2695]||(t[2695]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2696]||(t[2696]=l('
julia
mlirRewriterBaseSetInsertionPointAfter(rewriter, op)

Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.

source

',3))]),e("details",Tg,[e("summary",null,[t[2697]||(t[2697]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue")],-1)),t[2698]||(t[2698]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2699]||(t[2699]=l('
julia
mlirRewriterBaseSetInsertionPointAfterValue(rewriter, value)

Sets the insertion point to the node after the specified value. If value has a defining operation, sets the insertion point to the node after such defining operation. This will cause subsequent insertions to go right after it. Otherwise, value is a BlockArgument. Sets the insertion point to the start of its block.

source

',3))]),e("details",Cg,[e("summary",null,[t[2700]||(t[2700]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore")],-1)),t[2701]||(t[2701]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2702]||(t[2702]=l('
julia
mlirRewriterBaseSetInsertionPointBefore(rewriter, op)

Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.

source

',3))]),e("details",xg,[e("summary",null,[t[2703]||(t[2703]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd")],-1)),t[2704]||(t[2704]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2705]||(t[2705]=l('
julia
mlirRewriterBaseSetInsertionPointToEnd(rewriter, block)

Sets the insertion point to the end of the specified block.

source

',3))]),e("details",Fg,[e("summary",null,[t[2706]||(t[2706]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart")],-1)),t[2707]||(t[2707]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2708]||(t[2708]=l('
julia
mlirRewriterBaseSetInsertionPointToStart(rewriter, block)

Sets the insertion point to the start of the specified block.

source

',3))]),e("details",Pg,[e("summary",null,[t[2709]||(t[2709]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseStartOpModification")],-1)),t[2710]||(t[2710]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2711]||(t[2711]=l('
julia
mlirRewriterBaseStartOpModification(rewriter, op)

This method is used to notify the rewriter that an in-place operation modification is about to happen. A call to this function must be followed by a call to either finalizeOpModification or cancelOpModification. This is a minor efficiency win (it avoids creating a new operation and removing the old one) but also often allows simpler code in the client.

source

',3))]),e("details",Dg,[e("summary",null,[t[2712]||(t[2712]=e("a",{id:"Reactant.MLIR.API.mlirSetGlobalDebugType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSetGlobalDebugType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSetGlobalDebugType")],-1)),t[2713]||(t[2713]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2714]||(t[2714]=l('
julia
mlirSetGlobalDebugType(type)

Sets the current debug type, similarly to -debug-only=type in the command-line tools. Note that global debug should be enabled for any output to be produced.

source

',3))]),e("details",Og,[e("summary",null,[t[2715]||(t[2715]=e("a",{id:"Reactant.MLIR.API.mlirSetGlobalDebugTypes-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSetGlobalDebugTypes-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSetGlobalDebugTypes")],-1)),t[2716]||(t[2716]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2717]||(t[2717]=l('
julia
mlirSetGlobalDebugTypes(types, n)

Sets multiple current debug types, similarly to `-debug-only=type1,type2" in the command-line tools. Note that global debug should be enabled for any output to be produced.

source

',3))]),e("details",Bg,[e("summary",null,[t[2718]||(t[2718]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDimSize")],-1)),t[2719]||(t[2719]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2720]||(t[2720]=l('
julia
mlirShapedTypeGetDimSize(type, dim)

Returns the dim-th dimension of the given ranked shaped type.

source

',3))]),e("details",Gg,[e("summary",null,[t[2721]||(t[2721]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize")],-1)),t[2722]||(t[2722]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2723]||(t[2723]=l('
julia
mlirShapedTypeGetDynamicSize()

Returns the value indicating a dynamic size in a shaped type. Prefer mlirShapedTypeIsDynamicSize to direct comparisons with this value.

source

',3))]),e("details",zg,[e("summary",null,[t[2724]||(t[2724]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset-Tuple{}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset")],-1)),t[2725]||(t[2725]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2726]||(t[2726]=l('
julia
mlirShapedTypeGetDynamicStrideOrOffset()

Returns the value indicating a dynamic stride or offset in a shaped type. Prefer mlirShapedTypeGetDynamicStrideOrOffset to direct comparisons with this value.

source

',3))]),e("details",wg,[e("summary",null,[t[2727]||(t[2727]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetElementType")],-1)),t[2728]||(t[2728]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2729]||(t[2729]=l('
julia
mlirShapedTypeGetElementType(type)

Returns the element type of the shaped type.

source

',3))]),e("details",Sg,[e("summary",null,[t[2730]||(t[2730]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetRank")],-1)),t[2731]||(t[2731]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2732]||(t[2732]=l('
julia
mlirShapedTypeGetRank(type)

Returns the rank of the given ranked shaped type.

source

',3))]),e("details",Ng,[e("summary",null,[t[2733]||(t[2733]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasRank")],-1)),t[2734]||(t[2734]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2735]||(t[2735]=l('
julia
mlirShapedTypeHasRank(type)

Checks whether the given shaped type is ranked.

source

',3))]),e("details",Vg,[e("summary",null,[t[2736]||(t[2736]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasStaticShape")],-1)),t[2737]||(t[2737]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2738]||(t[2738]=l('
julia
mlirShapedTypeHasStaticShape(type)

Checks whether the given shaped type has a static shape.

source

',3))]),e("details",qg,[e("summary",null,[t[2739]||(t[2739]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim")],-1)),t[2740]||(t[2740]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2741]||(t[2741]=l('
julia
mlirShapedTypeIsDynamicDim(type, dim)

Checks wither the dim-th dimension of the given shaped type is dynamic.

source

',3))]),e("details",Ug,[e("summary",null,[t[2742]||(t[2742]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize")],-1)),t[2743]||(t[2743]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2744]||(t[2744]=l('
julia
mlirShapedTypeIsDynamicSize(size)

Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.

source

',3))]),e("details",Qg,[e("summary",null,[t[2745]||(t[2745]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset")],-1)),t[2746]||(t[2746]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2747]||(t[2747]=l('
julia
mlirShapedTypeIsDynamicStrideOrOffset(val)

Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.

source

',3))]),e("details",Wg,[e("summary",null,[t[2748]||(t[2748]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices")],-1)),t[2749]||(t[2749]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2750]||(t[2750]=l('
julia
mlirSparseElementsAttrGetIndices(attr)

Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the given sparse elements attribute.

source

',3))]),e("details",Hg,[e("summary",null,[t[2751]||(t[2751]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID")],-1)),t[2752]||(t[2752]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2753]||(t[2753]=l('
julia
mlirSparseElementsAttrGetTypeID()

Returns the typeID of a SparseElements attribute.

source

',3))]),e("details",Zg,[e("summary",null,[t[2754]||(t[2754]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetValues")],-1)),t[2755]||(t[2755]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2756]||(t[2756]=l('
julia
mlirSparseElementsAttrGetValues(attr)

Returns the dense elements attribute containing the non-null elements in the given sparse elements attribute.

source

',3))]),e("details",Jg,[e("summary",null,[t[2757]||(t[2757]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttribute")],-1)),t[2758]||(t[2758]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2759]||(t[2759]=l('
julia
mlirSparseElementsAttribute(shapedType, denseIndices, denseValues)

Creates a sparse elements attribute of the given shape from a list of indices and a list of associated values. Both lists are expected to be dense elements attributes with the same number of elements. The list of indices is expected to contain 64-bit integers. The attribute is created in the same context as the type.

source

',3))]),e("details",Kg,[e("summary",null,[t[2760]||(t[2760]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet")],-1)),t[2761]||(t[2761]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2762]||(t[2762]=l('
julia
mlirSparseTensorEncodingAttrGet(ctx, lvlRank, lvlTypes, dimToLvl, lvlTodim, posWidth, crdWidth, explicitVal, implicitVal)

Creates a sparse\\_tensor.encoding attribute with the given parameters.

source

',3))]),e("details",$g,[e("summary",null,[t[2763]||(t[2763]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth")],-1)),t[2764]||(t[2764]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2765]||(t[2765]=l('
julia
mlirSparseTensorEncodingAttrGetCrdWidth(attr)

Returns the coordinate bitwidth of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",Xg,[e("summary",null,[t[2766]||(t[2766]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl")],-1)),t[2767]||(t[2767]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2768]||(t[2768]=l('
julia
mlirSparseTensorEncodingAttrGetDimToLvl(attr)

Returns the dimension-to-level mapping of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",Yg,[e("summary",null,[t[2769]||(t[2769]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal")],-1)),t[2770]||(t[2770]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2771]||(t[2771]=l('
julia
mlirSparseTensorEncodingAttrGetExplicitVal(attr)

Returns the explicit value of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",_g,[e("summary",null,[t[2772]||(t[2772]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal")],-1)),t[2773]||(t[2773]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2774]||(t[2774]=l('
julia
mlirSparseTensorEncodingAttrGetImplicitVal(attr)

Returns the implicit value of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ty,[e("summary",null,[t[2775]||(t[2775]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt")],-1)),t[2776]||(t[2776]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2777]||(t[2777]=l('
julia
mlirSparseTensorEncodingAttrGetLvlFmt(attr, lvl)

Returns a specified level-format of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ey,[e("summary",null,[t[2778]||(t[2778]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim")],-1)),t[2779]||(t[2779]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2780]||(t[2780]=l('
julia
mlirSparseTensorEncodingAttrGetLvlToDim(attr)

Returns the level-to-dimension mapping of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",sy,[e("summary",null,[t[2781]||(t[2781]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType")],-1)),t[2782]||(t[2782]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2783]||(t[2783]=l('
julia
mlirSparseTensorEncodingAttrGetLvlType(attr, lvl)

Returns a specified level-type of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ay,[e("summary",null,[t[2784]||(t[2784]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth")],-1)),t[2785]||(t[2785]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2786]||(t[2786]=l('
julia
mlirSparseTensorEncodingAttrGetPosWidth(attr)

Returns the position bitwidth of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",iy,[e("summary",null,[t[2787]||(t[2787]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank")],-1)),t[2788]||(t[2788]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2789]||(t[2789]=l('
julia
mlirSparseTensorEncodingGetLvlRank(attr)

Returns the level-rank of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ly,[e("summary",null,[t[2790]||(t[2790]=e("a",{id:"Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID")],-1)),t[2791]||(t[2791]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2792]||(t[2792]=l('
julia
mlirStridedLayoutAttrGetTypeID()

Returns the typeID of a StridedLayout attribute.

source

',3))]),e("details",ny,[e("summary",null,[t[2793]||(t[2793]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGet")],-1)),t[2794]||(t[2794]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2795]||(t[2795]=l('
julia
mlirStringAttrGet(ctx, str)

Creates a string attribute in the given context containing the given string.

source

',3))]),e("details",py,[e("summary",null,[t[2796]||(t[2796]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetTypeID")],-1)),t[2797]||(t[2797]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2798]||(t[2798]=l('
julia
mlirStringAttrGetTypeID()

Returns the typeID of a String attribute.

source

',3))]),e("details",ry,[e("summary",null,[t[2799]||(t[2799]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetValue")],-1)),t[2800]||(t[2800]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2801]||(t[2801]=l('
julia
mlirStringAttrGetValue(attr)

Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",oy,[e("summary",null,[t[2802]||(t[2802]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrTypedGet")],-1)),t[2803]||(t[2803]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2804]||(t[2804]=l('
julia
mlirStringAttrTypedGet(type, str)

Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.

source

',3))]),e("details",dy,[e("summary",null,[t[2805]||(t[2805]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreate")],-1)),t[2806]||(t[2806]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2807]||(t[2807]=l('
julia
mlirStringRefCreate(str, length)

Constructs a string reference from the pointer and length. The pointer need not reference to a null-terminated string.

source

',3))]),e("details",cy,[e("summary",null,[t[2808]||(t[2808]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreateFromCString")],-1)),t[2809]||(t[2809]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2810]||(t[2810]=l('
julia
mlirStringRefCreateFromCString(str)

Constructs a string reference from a null-terminated C string. Prefer mlirStringRefCreate if the length of the string is known.

source

',3))]),e("details",hy,[e("summary",null,[t[2811]||(t[2811]=e("a",{id:"Reactant.MLIR.API.mlirStringRefEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringRefEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefEqual")],-1)),t[2812]||(t[2812]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2813]||(t[2813]=l('
julia
mlirStringRefEqual(string, other)

Returns true if two string references are equal, false otherwise.

source

',3))]),e("details",uy,[e("summary",null,[t[2814]||(t[2814]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGet")],-1)),t[2815]||(t[2815]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2816]||(t[2816]=l('
julia
mlirSymbolRefAttrGet(ctx, symbol, numReferences, references)

Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.

source

',3))]),e("details",by,[e("summary",null,[t[2817]||(t[2817]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference")],-1)),t[2818]||(t[2818]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2819]||(t[2819]=l('
julia
mlirSymbolRefAttrGetLeafReference(attr)

Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",gy,[e("summary",null,[t[2820]||(t[2820]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference")],-1)),t[2821]||(t[2821]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2822]||(t[2822]=l('
julia
mlirSymbolRefAttrGetNestedReference(attr, pos)

Returns pos-th reference nested in the given symbol reference attribute.

source

',3))]),e("details",yy,[e("summary",null,[t[2823]||(t[2823]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences")],-1)),t[2824]||(t[2824]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2825]||(t[2825]=l('
julia
mlirSymbolRefAttrGetNumNestedReferences(attr)

Returns the number of references nested in the given symbol reference attribute.

source

',3))]),e("details",my,[e("summary",null,[t[2826]||(t[2826]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference")],-1)),t[2827]||(t[2827]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2828]||(t[2828]=l('
julia
mlirSymbolRefAttrGetRootReference(attr)

Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",ky,[e("summary",null,[t[2829]||(t[2829]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID")],-1)),t[2830]||(t[2830]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2831]||(t[2831]=l('
julia
mlirSymbolRefAttrGetTypeID()

Returns the typeID of an SymbolRef attribute.

source

',3))]),e("details",fy,[e("summary",null,[t[2832]||(t[2832]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableCreate")],-1)),t[2833]||(t[2833]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2834]||(t[2834]=l('
julia
mlirSymbolTableCreate(operation)

Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.

source

',3))]),e("details",Ry,[e("summary",null,[t[2835]||(t[2835]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableDestroy")],-1)),t[2836]||(t[2836]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2837]||(t[2837]=l('
julia
mlirSymbolTableDestroy(symbolTable)

Destroys the symbol table created with mlirSymbolTableCreate. This does not affect the operations in the table.

source

',3))]),e("details",Iy,[e("summary",null,[t[2838]||(t[2838]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableErase-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableErase-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableErase")],-1)),t[2839]||(t[2839]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2840]||(t[2840]=l('
julia
mlirSymbolTableErase(symbolTable, operation)

Removes the given operation from the symbol table and erases it.

source

',3))]),e("details",jy,[e("summary",null,[t[2841]||(t[2841]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName")],-1)),t[2842]||(t[2842]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2843]||(t[2843]=l('
julia
mlirSymbolTableGetSymbolAttributeName()

Returns the name of the attribute used to store symbol names compatible with symbol tables.

source

',3))]),e("details",My,[e("summary",null,[t[2844]||(t[2844]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName")],-1)),t[2845]||(t[2845]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2846]||(t[2846]=l('
julia
mlirSymbolTableGetVisibilityAttributeName()

Returns the name of the attribute used to store symbol visibility.

source

',3))]),e("details",Ay,[e("summary",null,[t[2847]||(t[2847]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableInsert")],-1)),t[2848]||(t[2848]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2849]||(t[2849]=l('
julia
mlirSymbolTableInsert(symbolTable, operation)

Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.

source

',3))]),e("details",Ly,[e("summary",null,[t[2850]||(t[2850]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableIsNull")],-1)),t[2851]||(t[2851]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2852]||(t[2852]=l('
julia
mlirSymbolTableIsNull(symbolTable)

Returns true if the symbol table is null.

source

',3))]),e("details",Ey,[e("summary",null,[t[2853]||(t[2853]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableLookup")],-1)),t[2854]||(t[2854]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2855]||(t[2855]=l('
julia
mlirSymbolTableLookup(symbolTable, name)

Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.

source

',3))]),e("details",vy,[e("summary",null,[t[2856]||(t[2856]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses")],-1)),t[2857]||(t[2857]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2858]||(t[2858]=l('
julia
mlirSymbolTableReplaceAllSymbolUses(oldSymbol, newSymbol, from)

Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'. This does not traverse into nested symbol tables. Will fail atomically if there are any unknown operations that may be potential symbol tables.

source

',3))]),e("details",Ty,[e("summary",null,[t[2859]||(t[2859]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables")],-1)),t[2860]||(t[2860]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2861]||(t[2861]=l('
julia
mlirSymbolTableWalkSymbolTables(from, allSymUsesVisible, callback, userData)

Walks all symbol table operations nested within, and including, op. For each symbol table operation, the provided callback is invoked with the op and a boolean signifying if the symbols within that symbol table can be treated as if all uses within the IR are visible to the caller. allSymUsesVisible identifies whether all of the symbol uses of symbols within op are visible.

source

',3))]),e("details",Cy,[e("summary",null,[t[2862]||(t[2862]=e("a",{id:"Reactant.MLIR.API.mlirTF32TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTF32TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTF32TypeGet")],-1)),t[2863]||(t[2863]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2864]||(t[2864]=l('
julia
mlirTF32TypeGet(ctx)

Creates a TF32 type in the given context. The type is owned by the context.

source

',3))]),e("details",xy,[e("summary",null,[t[2865]||(t[2865]=e("a",{id:"Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformApplyNamedSequence")],-1)),t[2866]||(t[2866]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2867]||(t[2867]=l('
julia
mlirTransformApplyNamedSequence(payload, transformRoot, transformModule, transformOptions)

Applies the transformation script starting at the given transform root operation to the given payload operation. The module containing the transform root as well as the transform options should be provided. The transform operation must implement TransformOpInterface and the module must be a ModuleOp. Returns the status of the application.

source

',3))]),e("details",Fy,[e("summary",null,[t[2868]||(t[2868]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsCreate")],-1)),t[2869]||(t[2869]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2870]||(t[2870]=l('
julia
mlirTransformOptionsCreate()

Creates a default-initialized transform options object.

source

',3))]),e("details",Py,[e("summary",null,[t[2871]||(t[2871]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsDestroy")],-1)),t[2872]||(t[2872]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2873]||(t[2873]=l('
julia
mlirTransformOptionsDestroy(transformOptions)

Destroys a transform options object previously created by mlirTransformOptionsCreate.

source

',3))]),e("details",Dy,[e("summary",null,[t[2874]||(t[2874]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks")],-1)),t[2875]||(t[2875]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2876]||(t[2876]=l('
julia
mlirTransformOptionsEnableExpensiveChecks(transformOptions, enable)

Enables or disables expensive checks in transform options.

source

',3))]),e("details",Oy,[e("summary",null,[t[2877]||(t[2877]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp")],-1)),t[2878]||(t[2878]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2879]||(t[2879]=l('
julia
mlirTransformOptionsEnforceSingleTopLevelTransformOp(transformOptions, enable)

Enables or disables the enforcement of the top-level transform op being single in transform options.

source

',3))]),e("details",By,[e("summary",null,[t[2880]||(t[2880]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp")],-1)),t[2881]||(t[2881]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2882]||(t[2882]=l('
julia
mlirTransformOptionsGetEnforceSingleTopLevelTransformOp(transformOptions)

Returns true if the enforcement of the top-level transform op being single is enabled in transform options.

source

',3))]),e("details",Gy,[e("summary",null,[t[2883]||(t[2883]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled")],-1)),t[2884]||(t[2884]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2885]||(t[2885]=l('
julia
mlirTransformOptionsGetExpensiveChecksEnabled(transformOptions)

Returns true if expensive checks are enabled in transform options.

source

',3))]),e("details",zy,[e("summary",null,[t[2886]||(t[2886]=e("a",{id:"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR")],-1)),t[2887]||(t[2887]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2888]||(t[2888]=l('
julia
mlirTranslateModuleToLLVMIR(_module, context)

Translate operation that satisfies LLVM dialect module requirements into an LLVM IR module living in the given context. This translates operations from any dilalect that has a registered implementation of LLVMTranslationDialectInterface.

Returns

the generated LLVM IR Module from the translated MLIR module, it is owned by the caller.

source

',5))]),e("details",wy,[e("summary",null,[t[2889]||(t[2889]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGet")],-1)),t[2890]||(t[2890]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2891]||(t[2891]=l('
julia
mlirTupleTypeGet(ctx, numElements, elements)

Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.

source

',3))]),e("details",Sy,[e("summary",null,[t[2892]||(t[2892]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetNumTypes")],-1)),t[2893]||(t[2893]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2894]||(t[2894]=l('
julia
mlirTupleTypeGetNumTypes(type)

Returns the number of types contained in a tuple.

source

',3))]),e("details",Ny,[e("summary",null,[t[2895]||(t[2895]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetType")],-1)),t[2896]||(t[2896]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2897]||(t[2897]=l('
julia
mlirTupleTypeGetType(type, pos)

Returns the pos-th type in the tuple type.

source

',3))]),e("details",Vy,[e("summary",null,[t[2898]||(t[2898]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetTypeID")],-1)),t[2899]||(t[2899]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2900]||(t[2900]=l('
julia
mlirTupleTypeGetTypeID()

Returns the typeID of an Tuple type.

source

',3))]),e("details",qy,[e("summary",null,[t[2901]||(t[2901]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGet")],-1)),t[2902]||(t[2902]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2903]||(t[2903]=l('
julia
mlirTypeAttrGet(type)

Creates a type attribute wrapping the given type in the same context as the type.

source

',3))]),e("details",Uy,[e("summary",null,[t[2904]||(t[2904]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetTypeID")],-1)),t[2905]||(t[2905]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2906]||(t[2906]=l('
julia
mlirTypeAttrGetTypeID()

Returns the typeID of a Type attribute.

source

',3))]),e("details",Qy,[e("summary",null,[t[2907]||(t[2907]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetValue")],-1)),t[2908]||(t[2908]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2909]||(t[2909]=l('
julia
mlirTypeAttrGetValue(attr)

Returns the type stored in the given type attribute.

source

',3))]),e("details",Wy,[e("summary",null,[t[2910]||(t[2910]=e("a",{id:"Reactant.MLIR.API.mlirTypeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeDump")],-1)),t[2911]||(t[2911]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2912]||(t[2912]=l('
julia
mlirTypeDump(type)

Prints the type to the standard error stream.

source

',3))]),e("details",Hy,[e("summary",null,[t[2913]||(t[2913]=e("a",{id:"Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeEqual")],-1)),t[2914]||(t[2914]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2915]||(t[2915]=l('
julia
mlirTypeEqual(t1, t2)

Checks if two types are equal.

source

',3))]),e("details",Zy,[e("summary",null,[t[2916]||(t[2916]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetContext")],-1)),t[2917]||(t[2917]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2918]||(t[2918]=l('
julia
mlirTypeGetContext(type)

Gets the context that a type was created with.

source

',3))]),e("details",Jy,[e("summary",null,[t[2919]||(t[2919]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetDialect")],-1)),t[2920]||(t[2920]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2921]||(t[2921]=l('
julia
mlirTypeGetDialect(type)

Gets the dialect a type belongs to.

source

',3))]),e("details",Ky,[e("summary",null,[t[2922]||(t[2922]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetTypeID")],-1)),t[2923]||(t[2923]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2924]||(t[2924]=l('
julia
mlirTypeGetTypeID(type)

Gets the type ID of the type.

source

',3))]),e("details",$y,[e("summary",null,[t[2925]||(t[2925]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID")],-1)),t[2926]||(t[2926]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2927]||(t[2927]=l('
julia
mlirTypeIDAllocatorAllocateTypeID(allocator)

Allocates a type id that is valid for the lifetime of the allocator

source

',3))]),e("details",Xy,[e("summary",null,[t[2928]||(t[2928]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorCreate")],-1)),t[2929]||(t[2929]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2930]||(t[2930]=l('
julia
mlirTypeIDAllocatorCreate()

Creates a type id allocator for dynamic type id creation

source

',3))]),e("details",Yy,[e("summary",null,[t[2931]||(t[2931]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy")],-1)),t[2932]||(t[2932]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2933]||(t[2933]=l('
julia
mlirTypeIDAllocatorDestroy(allocator)

Deallocates the allocator and all allocated type ids

source

',3))]),e("details",_y,[e("summary",null,[t[2934]||(t[2934]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDCreate")],-1)),t[2935]||(t[2935]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2936]||(t[2936]=l('
julia
mlirTypeIDCreate(ptr)

ptr must be 8 byte aligned and unique to a type valid for the duration of the returned type id's usage

source

',3))]),e("details",tm,[e("summary",null,[t[2937]||(t[2937]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeIDEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDEqual")],-1)),t[2938]||(t[2938]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2939]||(t[2939]=l('
julia
mlirTypeIDEqual(typeID1, typeID2)

Checks if two type ids are equal.

source

',3))]),e("details",em,[e("summary",null,[t[2940]||(t[2940]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDHashValue")],-1)),t[2941]||(t[2941]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2942]||(t[2942]=l('
julia
mlirTypeIDHashValue(typeID)

Returns the hash value of the type id.

source

',3))]),e("details",sm,[e("summary",null,[t[2943]||(t[2943]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDIsNull")],-1)),t[2944]||(t[2944]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2945]||(t[2945]=l('
julia
mlirTypeIDIsNull(typeID)

Checks whether a type id is null.

source

',3))]),e("details",am,[e("summary",null,[t[2946]||(t[2946]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType")],-1)),t[2947]||(t[2947]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2948]||(t[2948]=l('
julia
mlirTypeIsAAnyQuantizedType(type)

Returns true if the given type is an AnyQuantizedType.

source

',3))]),e("details",im,[e("summary",null,[t[2949]||(t[2949]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsABF16-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsABF16-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsABF16")],-1)),t[2950]||(t[2950]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2951]||(t[2951]=l('
julia
mlirTypeIsABF16(type)

Checks whether the given type is a bf16 type.

source

',3))]),e("details",lm,[e("summary",null,[t[2952]||(t[2952]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType")],-1)),t[2953]||(t[2953]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2954]||(t[2954]=l('
julia
mlirTypeIsACalibratedQuantizedType(type)

Returns true if the given type is a CalibratedQuantizedType.

source

',3))]),e("details",nm,[e("summary",null,[t[2955]||(t[2955]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAComplex-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAComplex-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAComplex")],-1)),t[2956]||(t[2956]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2957]||(t[2957]=l('
julia
mlirTypeIsAComplex(type)

Checks whether the given type is a Complex type.

source

',3))]),e("details",pm,[e("summary",null,[t[2958]||(t[2958]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF16")],-1)),t[2959]||(t[2959]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2960]||(t[2960]=l('
julia
mlirTypeIsAF16(type)

Checks whether the given type is an f16 type.

source

',3))]),e("details",rm,[e("summary",null,[t[2961]||(t[2961]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF32")],-1)),t[2962]||(t[2962]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2963]||(t[2963]=l('
julia
mlirTypeIsAF32(type)

Checks whether the given type is an f32 type.

source

',3))]),e("details",om,[e("summary",null,[t[2964]||(t[2964]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF64")],-1)),t[2965]||(t[2965]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2966]||(t[2966]=l('
julia
mlirTypeIsAF64(type)

Checks whether the given type is an f64 type.

source

',3))]),e("details",dm,[e("summary",null,[t[2967]||(t[2967]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat")],-1)),t[2968]||(t[2968]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2969]||(t[2969]=l('
julia
mlirTypeIsAFloat(type)

Checks whether the given type is a floating-point type.

source

',3))]),e("details",cm,[e("summary",null,[t[2970]||(t[2970]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN")],-1)),t[2971]||(t[2971]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2972]||(t[2972]=l('
julia
mlirTypeIsAFloat4E2M1FN(type)

Checks whether the given type is an f4E2M1FN type.

source

',3))]),e("details",hm,[e("summary",null,[t[2973]||(t[2973]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN")],-1)),t[2974]||(t[2974]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2975]||(t[2975]=l('
julia
mlirTypeIsAFloat6E2M3FN(type)

Checks whether the given type is an f6E2M3FN type.

source

',3))]),e("details",um,[e("summary",null,[t[2976]||(t[2976]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN")],-1)),t[2977]||(t[2977]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2978]||(t[2978]=l('
julia
mlirTypeIsAFloat6E3M2FN(type)

Checks whether the given type is an f6E3M2FN type.

source

',3))]),e("details",bm,[e("summary",null,[t[2979]||(t[2979]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4")],-1)),t[2980]||(t[2980]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2981]||(t[2981]=l('
julia
mlirTypeIsAFloat8E3M4(type)

Checks whether the given type is an f8E3M4 type.

source

',3))]),e("details",gm,[e("summary",null,[t[2982]||(t[2982]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3")],-1)),t[2983]||(t[2983]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2984]||(t[2984]=l('
julia
mlirTypeIsAFloat8E4M3(type)

Checks whether the given type is an f8E4M3 type.

source

',3))]),e("details",ym,[e("summary",null,[t[2985]||(t[2985]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ")],-1)),t[2986]||(t[2986]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2987]||(t[2987]=l('
julia
mlirTypeIsAFloat8E4M3B11FNUZ(type)

Checks whether the given type is an f8E4M3B11FNUZ type.

source

',3))]),e("details",mm,[e("summary",null,[t[2988]||(t[2988]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN")],-1)),t[2989]||(t[2989]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2990]||(t[2990]=l('
julia
mlirTypeIsAFloat8E4M3FN(type)

Checks whether the given type is an f8E4M3FN type.

source

',3))]),e("details",km,[e("summary",null,[t[2991]||(t[2991]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ")],-1)),t[2992]||(t[2992]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2993]||(t[2993]=l('
julia
mlirTypeIsAFloat8E4M3FNUZ(type)

Checks whether the given type is an f8E4M3FNUZ type.

source

',3))]),e("details",fm,[e("summary",null,[t[2994]||(t[2994]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2")],-1)),t[2995]||(t[2995]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2996]||(t[2996]=l('
julia
mlirTypeIsAFloat8E5M2(type)

Checks whether the given type is an f8E5M2 type.

source

',3))]),e("details",Rm,[e("summary",null,[t[2997]||(t[2997]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ")],-1)),t[2998]||(t[2998]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2999]||(t[2999]=l('
julia
mlirTypeIsAFloat8E5M2FNUZ(type)

Checks whether the given type is an f8E5M2FNUZ type.

source

',3))]),e("details",Im,[e("summary",null,[t[3e3]||(t[3e3]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU")],-1)),t[3001]||(t[3001]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3002]||(t[3002]=l('
julia
mlirTypeIsAFloat8E8M0FNU(type)

Checks whether the given type is an f8E8M0FNU type.

source

',3))]),e("details",jm,[e("summary",null,[t[3003]||(t[3003]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFunction")],-1)),t[3004]||(t[3004]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3005]||(t[3005]=l('
julia
mlirTypeIsAFunction(type)

Checks whether the given type is a function type.

source

',3))]),e("details",Mm,[e("summary",null,[t[3006]||(t[3006]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAIndex")],-1)),t[3007]||(t[3007]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3008]||(t[3008]=l('
julia
mlirTypeIsAIndex(type)

Checks whether the given type is an index type.

source

',3))]),e("details",Am,[e("summary",null,[t[3009]||(t[3009]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAInteger")],-1)),t[3010]||(t[3010]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3011]||(t[3011]=l('
julia
mlirTypeIsAInteger(type)

Checks whether the given type is an integer type.

source

',3))]),e("details",Lm,[e("summary",null,[t[3012]||(t[3012]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsALLVMPointerType")],-1)),t[3013]||(t[3013]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3014]||(t[3014]=l('
julia
mlirTypeIsALLVMPointerType(type)

Returns true if the type is an LLVM dialect pointer type.

source

',3))]),e("details",Em,[e("summary",null,[t[3015]||(t[3015]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsALLVMStructType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsALLVMStructType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsALLVMStructType")],-1)),t[3016]||(t[3016]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3017]||(t[3017]=l('
julia
mlirTypeIsALLVMStructType(type)

Returns true if the type is an LLVM dialect struct type.

source

',3))]),e("details",vm,[e("summary",null,[t[3018]||(t[3018]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAMemRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAMemRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAMemRef")],-1)),t[3019]||(t[3019]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3020]||(t[3020]=l('
julia
mlirTypeIsAMemRef(type)

Checks whether the given type is a MemRef type.

source

',3))]),e("details",Tm,[e("summary",null,[t[3021]||(t[3021]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsANone")],-1)),t[3022]||(t[3022]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3023]||(t[3023]=l('
julia
mlirTypeIsANone(type)

Checks whether the given type is a None type.

source

',3))]),e("details",Cm,[e("summary",null,[t[3024]||(t[3024]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAOpaque")],-1)),t[3025]||(t[3025]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3026]||(t[3026]=l('
julia
mlirTypeIsAOpaque(type)

Checks whether the given type is an opaque type.

source

',3))]),e("details",xm,[e("summary",null,[t[3027]||(t[3027]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAQuantizedType")],-1)),t[3028]||(t[3028]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3029]||(t[3029]=l('
julia
mlirTypeIsAQuantizedType(type)

Returns true if the given type is a quantization dialect type.

source

',3))]),e("details",Fm,[e("summary",null,[t[3030]||(t[3030]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsARankedTensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsARankedTensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsARankedTensor")],-1)),t[3031]||(t[3031]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3032]||(t[3032]=l('
julia
mlirTypeIsARankedTensor(type)

Checks whether the given type is a ranked tensor type.

source

',3))]),e("details",Pm,[e("summary",null,[t[3033]||(t[3033]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAShaped")],-1)),t[3034]||(t[3034]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3035]||(t[3035]=l('
julia
mlirTypeIsAShaped(type)

Checks whether the given type is a Shaped type.

source

',3))]),e("details",Dm,[e("summary",null,[t[3036]||(t[3036]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATF32")],-1)),t[3037]||(t[3037]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3038]||(t[3038]=l('
julia
mlirTypeIsATF32(type)

Checks whether the given type is an TF32 type.

source

',3))]),e("details",Om,[e("summary",null,[t[3039]||(t[3039]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATensor")],-1)),t[3040]||(t[3040]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3041]||(t[3041]=l('
julia
mlirTypeIsATensor(type)

Checks whether the given type is a Tensor type.

source

',3))]),e("details",Bm,[e("summary",null,[t[3042]||(t[3042]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATuple")],-1)),t[3043]||(t[3043]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3044]||(t[3044]=l('
julia
mlirTypeIsATuple(type)

Checks whether the given type is a tuple type.

source

',3))]),e("details",Gm,[e("summary",null,[t[3045]||(t[3045]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType")],-1)),t[3046]||(t[3046]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3047]||(t[3047]=l('
julia
mlirTypeIsAUniformQuantizedPerAxisType(type)

Returns true if the given type is a UniformQuantizedPerAxisType.

source

',3))]),e("details",zm,[e("summary",null,[t[3048]||(t[3048]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType")],-1)),t[3049]||(t[3049]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3050]||(t[3050]=l('
julia
mlirTypeIsAUniformQuantizedType(type)

Returns true if the given type is a UniformQuantizedType.

source

',3))]),e("details",wm,[e("summary",null,[t[3051]||(t[3051]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef")],-1)),t[3052]||(t[3052]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3053]||(t[3053]=l('
julia
mlirTypeIsAUnrankedMemRef(type)

Checks whether the given type is an UnrankedMemRef type.

source

',3))]),e("details",Sm,[e("summary",null,[t[3054]||(t[3054]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor")],-1)),t[3055]||(t[3055]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3056]||(t[3056]=l('
julia
mlirTypeIsAUnrankedTensor(type)

Checks whether the given type is an unranked tensor type.

source

',3))]),e("details",Nm,[e("summary",null,[t[3057]||(t[3057]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAVector")],-1)),t[3058]||(t[3058]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3059]||(t[3059]=l('
julia
mlirTypeIsAVector(type)

Checks whether the given type is a Vector type.

source

',3))]),e("details",Vm,[e("summary",null,[t[3060]||(t[3060]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsNull")],-1)),t[3061]||(t[3061]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3062]||(t[3062]=l('
julia
mlirTypeIsNull(type)

Checks whether a type is null.

source

',3))]),e("details",qm,[e("summary",null,[t[3063]||(t[3063]=e("a",{id:"Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeParseGet")],-1)),t[3064]||(t[3064]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3065]||(t[3065]=l('
julia
mlirTypeParseGet(context, type)

Parses a type. The type is owned by the context.

source

',3))]),e("details",Um,[e("summary",null,[t[3066]||(t[3066]=e("a",{id:"Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypePrint")],-1)),t[3067]||(t[3067]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3068]||(t[3068]=l('
julia
mlirTypePrint(type, callback, userData)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Qm,[e("summary",null,[t[3069]||(t[3069]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet")],-1)),t[3070]||(t[3070]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3071]||(t[3071]=l('
julia
mlirUniformQuantizedPerAxisTypeGet(flags, storageType, expressedType, nDims, scales, zeroPoints, quantizedDimension, storageTypeMin, storageTypeMax)

Creates an instance of UniformQuantizedPerAxisType with the given parameters in the same context as storageType and returns it. scales and zeroPoints point to nDims number of elements. The instance is owned by the context.

source

',3))]),e("details",Wm,[e("summary",null,[t[3072]||(t[3072]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims")],-1)),t[3073]||(t[3073]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3074]||(t[3074]=l('
julia
mlirUniformQuantizedPerAxisTypeGetNumDims(type)

Returns the number of axes in the given quantized per-axis type.

source

',3))]),e("details",Hm,[e("summary",null,[t[3075]||(t[3075]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension")],-1)),t[3076]||(t[3076]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3077]||(t[3077]=l('
julia
mlirUniformQuantizedPerAxisTypeGetQuantizedDimension(type)

Returns the index of the quantized dimension in the given quantized per-axis type.

source

',3))]),e("details",Zm,[e("summary",null,[t[3078]||(t[3078]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale")],-1)),t[3079]||(t[3079]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3080]||(t[3080]=l('
julia
mlirUniformQuantizedPerAxisTypeGetScale(type, pos)

Returns pos-th scale of the given quantized per-axis type.

source

',3))]),e("details",Jm,[e("summary",null,[t[3081]||(t[3081]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint")],-1)),t[3082]||(t[3082]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3083]||(t[3083]=l('
julia
mlirUniformQuantizedPerAxisTypeGetZeroPoint(type, pos)

Returns pos-th zero point of the given quantized per-axis type.

source

',3))]),e("details",Km,[e("summary",null,[t[3084]||(t[3084]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint")],-1)),t[3085]||(t[3085]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3086]||(t[3086]=l('
julia
mlirUniformQuantizedPerAxisTypeIsFixedPoint(type)

Returns true if the given uniform quantized per-axis type is fixed-point.

source

',3))]),e("details",$m,[e("summary",null,[t[3087]||(t[3087]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGet-NTuple{7, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGet-NTuple{7, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGet")],-1)),t[3088]||(t[3088]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3089]||(t[3089]=l('
julia
mlirUniformQuantizedTypeGet(flags, storageType, expressedType, scale, zeroPoint, storageTypeMin, storageTypeMax)

Creates an instance of UniformQuantizedType with the given parameters in the same context as storageType and returns it. The instance is owned by the context.

source

',3))]),e("details",Xm,[e("summary",null,[t[3090]||(t[3090]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale")],-1)),t[3091]||(t[3091]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3092]||(t[3092]=l('
julia
mlirUniformQuantizedTypeGetScale(type)

Returns the scale of the given uniform quantized type.

source

',3))]),e("details",Ym,[e("summary",null,[t[3093]||(t[3093]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint")],-1)),t[3094]||(t[3094]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3095]||(t[3095]=l('
julia
mlirUniformQuantizedTypeGetZeroPoint(type)

Returns the zero point of the given uniform quantized type.

source

',3))]),e("details",_m,[e("summary",null,[t[3096]||(t[3096]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint")],-1)),t[3097]||(t[3097]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3098]||(t[3098]=l('
julia
mlirUniformQuantizedTypeIsFixedPoint(type)

Returns true if the given uniform quantized type is fixed-point.

source

',3))]),e("details",tk,[e("summary",null,[t[3099]||(t[3099]=e("a",{id:"Reactant.MLIR.API.mlirUnitAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnitAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnitAttrGet")],-1)),t[3100]||(t[3100]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3101]||(t[3101]=l('
julia
mlirUnitAttrGet(ctx)

Creates a unit attribute in the given context.

source

',3))]),e("details",ek,[e("summary",null,[t[3102]||(t[3102]=e("a",{id:"Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnitAttrGetTypeID")],-1)),t[3103]||(t[3103]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3104]||(t[3104]=l('
julia
mlirUnitAttrGetTypeID()

Returns the typeID of a Unit attribute.

source

',3))]),e("details",sk,[e("summary",null,[t[3105]||(t[3105]=e("a",{id:"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet")],-1)),t[3106]||(t[3106]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3107]||(t[3107]=l('
julia
mlirUnmanagedDenseResourceElementsAttrGet(shapedType, name, data, dataLength, dataAlignment, dataIsMutable, deleter, userData)

Unlike the typed accessors below, constructs the attribute with a raw data buffer and no type/alignment checking. Use a more strongly typed accessor if possible. If dataIsMutable is false, then an immutable AsmResourceBlob will be created and that passed data contents will be treated as const. If the deleter is non NULL, then it will be called when the data buffer can no longer be accessed (passing userData to it).

source

',3))]),e("details",ak,[e("summary",null,[t[3108]||(t[3108]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet")],-1)),t[3109]||(t[3109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3110]||(t[3110]=l('
julia
mlirUnrankedMemRefTypeGet(elementType, memorySpace)

Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type.

source

',3))]),e("details",ik,[e("summary",null,[t[3111]||(t[3111]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked")],-1)),t[3112]||(t[3112]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3113]||(t[3113]=l('
julia
mlirUnrankedMemRefTypeGetChecked(loc, elementType, memorySpace)

Same as "mlirUnrankedMemRefTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",lk,[e("summary",null,[t[3114]||(t[3114]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID")],-1)),t[3115]||(t[3115]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3116]||(t[3116]=l('
julia
mlirUnrankedMemRefTypeGetTypeID()

Returns the typeID of an UnrankedMemRef type.

source

',3))]),e("details",nk,[e("summary",null,[t[3117]||(t[3117]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace")],-1)),t[3118]||(t[3118]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3119]||(t[3119]=l('
julia
mlirUnrankedMemrefGetMemorySpace(type)

Returns the memory spcae of the given Unranked MemRef type.

source

',3))]),e("details",pk,[e("summary",null,[t[3120]||(t[3120]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGet")],-1)),t[3121]||(t[3121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3122]||(t[3122]=l('
julia
mlirUnrankedTensorTypeGet(elementType)

Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",rk,[e("summary",null,[t[3123]||(t[3123]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked")],-1)),t[3124]||(t[3124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3125]||(t[3125]=l('
julia
mlirUnrankedTensorTypeGetChecked(loc, elementType)

Same as "mlirUnrankedTensorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",ok,[e("summary",null,[t[3126]||(t[3126]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID")],-1)),t[3127]||(t[3127]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3128]||(t[3128]=l('
julia
mlirUnrankedTensorTypeGetTypeID()

Returns the typeID of an UnrankedTensor type.

source

',3))]),e("details",dk,[e("summary",null,[t[3129]||(t[3129]=e("a",{id:"Reactant.MLIR.API.mlirValueDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueDump")],-1)),t[3130]||(t[3130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3131]||(t[3131]=l('
julia
mlirValueDump(value)

Prints the value to the standard error stream.

source

',3))]),e("details",ck,[e("summary",null,[t[3132]||(t[3132]=e("a",{id:"Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueEqual")],-1)),t[3133]||(t[3133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3134]||(t[3134]=l('
julia
mlirValueEqual(value1, value2)

Returns 1 if two values are equal, 0 otherwise.

source

',3))]),e("details",hk,[e("summary",null,[t[3135]||(t[3135]=e("a",{id:"Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetFirstUse")],-1)),t[3136]||(t[3136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3137]||(t[3137]=l('
julia
mlirValueGetFirstUse(value)

Returns an op operand representing the first use of the value, or a null op operand if there are no uses.

source

',3))]),e("details",uk,[e("summary",null,[t[3138]||(t[3138]=e("a",{id:"Reactant.MLIR.API.mlirValueGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetType")],-1)),t[3139]||(t[3139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3140]||(t[3140]=l('
julia
mlirValueGetType(value)

Returns the type of the value.

source

',3))]),e("details",bk,[e("summary",null,[t[3141]||(t[3141]=e("a",{id:"Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsABlockArgument")],-1)),t[3142]||(t[3142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3143]||(t[3143]=l('
julia
mlirValueIsABlockArgument(value)

Returns 1 if the value is a block argument, 0 otherwise.

source

',3))]),e("details",gk,[e("summary",null,[t[3144]||(t[3144]=e("a",{id:"Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsAOpResult")],-1)),t[3145]||(t[3145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3146]||(t[3146]=l('
julia
mlirValueIsAOpResult(value)

Returns 1 if the value is an operation result, 0 otherwise.

source

',3))]),e("details",yk,[e("summary",null,[t[3147]||(t[3147]=e("a",{id:"Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsNull")],-1)),t[3148]||(t[3148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3149]||(t[3149]=l('
julia
mlirValueIsNull(value)

Returns whether the value is null.

source

',3))]),e("details",mk,[e("summary",null,[t[3150]||(t[3150]=e("a",{id:"Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValuePrint")],-1)),t[3151]||(t[3151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3152]||(t[3152]=l('
julia
mlirValuePrint(value, callback, userData)

Prints a value by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",kk,[e("summary",null,[t[3153]||(t[3153]=e("a",{id:"Reactant.MLIR.API.mlirValuePrintAsOperand-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirValuePrintAsOperand-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValuePrintAsOperand")],-1)),t[3154]||(t[3154]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3155]||(t[3155]=l('
julia
mlirValuePrintAsOperand(value, state, callback, userData)

Prints a value as an operand (i.e., the ValueID).

source

',3))]),e("details",fk,[e("summary",null,[t[3156]||(t[3156]=e("a",{id:"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith")],-1)),t[3157]||(t[3157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3158]||(t[3158]=l('
julia
mlirValueReplaceAllUsesOfWith(of, with)

Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead. When this returns there are zero uses of 'of'.

source

',3))]),e("details",Rk,[e("summary",null,[t[3159]||(t[3159]=e("a",{id:"Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueSetType")],-1)),t[3160]||(t[3160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3161]||(t[3161]=l('
julia
mlirValueSetType(value, type)

Set the type of the value.

source

',3))]),e("details",Ik,[e("summary",null,[t[3162]||(t[3162]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGet")],-1)),t[3163]||(t[3163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3164]||(t[3164]=l('
julia
mlirVectorTypeGet(rank, shape, elementType)

Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",jk,[e("summary",null,[t[3165]||(t[3165]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetChecked")],-1)),t[3166]||(t[3166]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3167]||(t[3167]=l('
julia
mlirVectorTypeGetChecked(loc, rank, shape, elementType)

Same as "mlirVectorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",Mk,[e("summary",null,[t[3168]||(t[3168]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetScalable-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetScalable-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetScalable")],-1)),t[3169]||(t[3169]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3170]||(t[3170]=l('
julia
mlirVectorTypeGetScalable(rank, shape, scalable, elementType)

Creates a scalable vector type with the shape identified by its rank and dimensions. A subset of dimensions may be marked as scalable via the corresponding flag list, which is expected to have as many entries as the rank of the vector. The vector is created in the same context as the element type.

source

',3))]),e("details",Ak,[e("summary",null,[t[3171]||(t[3171]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked")],-1)),t[3172]||(t[3172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3173]||(t[3173]=l('
julia
mlirVectorTypeGetScalableChecked(loc, rank, shape, scalable, elementType)

Same as "mlirVectorTypeGetScalable" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",Lk,[e("summary",null,[t[3174]||(t[3174]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirVectorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetTypeID")],-1)),t[3175]||(t[3175]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3176]||(t[3176]=l('
julia
mlirVectorTypeGetTypeID()

Returns the typeID of an Vector type.

source

',3))]),e("details",Ek,[e("summary",null,[t[3177]||(t[3177]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsDimScalable")],-1)),t[3178]||(t[3178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3179]||(t[3179]=l('
julia
mlirVectorTypeIsDimScalable(type, dim)

Checks whether the "dim"-th dimension of the given vector is scalable.

source

',3))]),e("details",vk,[e("summary",null,[t[3180]||(t[3180]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsScalable")],-1)),t[3181]||(t[3181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3182]||(t[3182]=l('
julia
mlirVectorTypeIsScalable(type)

Checks whether the given vector type is scalable, i.e., has at least one scalable dimension.

source

',3))]),t[3185]||(t[3185]=e("h1",{id:"Other-Functions",tabindex:"-1"},[s("Other Functions "),e("a",{class:"header-anchor",href:"#Other-Functions","aria-label":'Permalink to "Other Functions {#Other-Functions}"'},"​")],-1))])}const Gk=n(d,[["render",Tk]]);export{Bk as __pageData,Gk as default}; diff --git a/previews/PR363/assets/api_mlirc.md.DTBPo4z4.lean.js b/previews/PR363/assets/api_mlirc.md.DTBPo4z4.lean.js new file mode 100644 index 00000000..c9cbb574 --- /dev/null +++ b/previews/PR363/assets/api_mlirc.md.DTBPo4z4.lean.js @@ -0,0 +1,9 @@ +import{_ as n,c as p,j as e,a as s,G as i,a2 as l,B as r,o}from"./chunks/framework.2yyKLD8d.js";const Bk=JSON.parse('{"title":"Higher level API","description":"","frontmatter":{},"headers":[],"relativePath":"api/mlirc.md","filePath":"api/mlirc.md","lastUpdated":null}'),d={name:"api/mlirc.md"},c={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},st={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"},it={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},nt={class:"jldocstring custom-block"},pt={class:"jldocstring custom-block"},rt={class:"jldocstring custom-block"},ot={class:"jldocstring custom-block"},dt={class:"jldocstring custom-block"},ct={class:"jldocstring custom-block"},ht={class:"jldocstring custom-block"},ut={class:"jldocstring custom-block"},bt={class:"jldocstring custom-block"},gt={class:"jldocstring custom-block"},yt={class:"jldocstring custom-block"},mt={class:"jldocstring custom-block"},kt={class:"jldocstring custom-block"},ft={class:"jldocstring custom-block"},Rt={class:"jldocstring custom-block"},It={class:"jldocstring custom-block"},jt={class:"jldocstring custom-block"},Mt={class:"jldocstring custom-block"},At={class:"jldocstring custom-block"},Lt={class:"jldocstring custom-block"},Et={class:"jldocstring custom-block"},vt={class:"jldocstring custom-block"},Tt={class:"jldocstring custom-block"},Ct={class:"jldocstring custom-block"},xt={class:"jldocstring custom-block"},Ft={class:"jldocstring custom-block"},Pt={class:"jldocstring custom-block"},Dt={class:"jldocstring custom-block"},Ot={class:"jldocstring custom-block"},Bt={class:"jldocstring custom-block"},Gt={class:"jldocstring custom-block"},zt={class:"jldocstring custom-block"},wt={class:"jldocstring custom-block"},St={class:"jldocstring custom-block"},Nt={class:"jldocstring custom-block"},Vt={class:"jldocstring custom-block"},qt={class:"jldocstring custom-block"},Ut={class:"jldocstring custom-block"},Qt={class:"jldocstring custom-block"},Wt={class:"jldocstring custom-block"},Ht={class:"jldocstring custom-block"},Zt={class:"jldocstring custom-block"},Jt={class:"jldocstring custom-block"},Kt={class:"jldocstring custom-block"},$t={class:"jldocstring custom-block"},Xt={class:"jldocstring custom-block"},Yt={class:"jldocstring custom-block"},_t={class:"jldocstring custom-block"},te={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"},se={class:"jldocstring custom-block"},ae={class:"jldocstring custom-block"},ie={class:"jldocstring custom-block"},le={class:"jldocstring custom-block"},ne={class:"jldocstring custom-block"},pe={class:"jldocstring custom-block"},re={class:"jldocstring custom-block"},oe={class:"jldocstring custom-block"},de={class:"jldocstring custom-block"},ce={class:"jldocstring custom-block"},he={class:"jldocstring custom-block"},ue={class:"jldocstring custom-block"},be={class:"jldocstring custom-block"},ge={class:"jldocstring custom-block"},ye={class:"jldocstring custom-block"},me={class:"jldocstring custom-block"},ke={class:"jldocstring custom-block"},fe={class:"jldocstring custom-block"},Re={class:"jldocstring custom-block"},Ie={class:"jldocstring custom-block"},je={class:"jldocstring custom-block"},Me={class:"jldocstring custom-block"},Ae={class:"jldocstring custom-block"},Le={class:"jldocstring custom-block"},Ee={class:"jldocstring custom-block"},ve={class:"jldocstring custom-block"},Te={class:"jldocstring custom-block"},Ce={class:"jldocstring custom-block"},xe={class:"jldocstring custom-block"},Fe={class:"jldocstring custom-block"},Pe={class:"jldocstring custom-block"},De={class:"jldocstring custom-block"},Oe={class:"jldocstring custom-block"},Be={class:"jldocstring custom-block"},Ge={class:"jldocstring custom-block"},ze={class:"jldocstring custom-block"},we={class:"jldocstring custom-block"},Se={class:"jldocstring custom-block"},Ne={class:"jldocstring custom-block"},Ve={class:"jldocstring custom-block"},qe={class:"jldocstring custom-block"},Ue={class:"jldocstring custom-block"},Qe={class:"jldocstring custom-block"},We={class:"jldocstring custom-block"},He={class:"jldocstring custom-block"},Ze={class:"jldocstring custom-block"},Je={class:"jldocstring custom-block"},Ke={class:"jldocstring custom-block"},$e={class:"jldocstring custom-block"},Xe={class:"jldocstring custom-block"},Ye={class:"jldocstring custom-block"},_e={class:"jldocstring custom-block"},ts={class:"jldocstring custom-block"},es={class:"jldocstring custom-block"},ss={class:"jldocstring custom-block"},as={class:"jldocstring custom-block"},is={class:"jldocstring custom-block"},ls={class:"jldocstring custom-block"},ns={class:"jldocstring custom-block"},ps={class:"jldocstring custom-block"},rs={class:"jldocstring custom-block"},os={class:"jldocstring custom-block"},ds={class:"jldocstring custom-block"},cs={class:"jldocstring custom-block"},hs={class:"jldocstring custom-block"},us={class:"jldocstring custom-block"},bs={class:"jldocstring custom-block"},gs={class:"jldocstring custom-block"},ys={class:"jldocstring custom-block"},ms={class:"jldocstring custom-block"},ks={class:"jldocstring custom-block"},fs={class:"jldocstring custom-block"},Rs={class:"jldocstring custom-block"},Is={class:"jldocstring custom-block"},js={class:"jldocstring custom-block"},Ms={class:"jldocstring custom-block"},As={class:"jldocstring custom-block"},Ls={class:"jldocstring custom-block"},Es={class:"jldocstring custom-block"},vs={class:"jldocstring custom-block"},Ts={class:"jldocstring custom-block"},Cs={class:"jldocstring custom-block"},xs={class:"jldocstring custom-block"},Fs={class:"jldocstring custom-block"},Ps={class:"jldocstring custom-block"},Ds={class:"jldocstring custom-block"},Os={class:"jldocstring custom-block"},Bs={class:"jldocstring custom-block"},Gs={class:"jldocstring custom-block"},zs={class:"jldocstring custom-block"},ws={class:"jldocstring custom-block"},Ss={class:"jldocstring custom-block"},Ns={class:"jldocstring custom-block"},Vs={class:"jldocstring custom-block"},qs={class:"jldocstring custom-block"},Us={class:"jldocstring custom-block"},Qs={class:"jldocstring custom-block"},Ws={class:"jldocstring custom-block"},Hs={class:"jldocstring custom-block"},Zs={class:"jldocstring custom-block"},Js={class:"jldocstring custom-block"},Ks={class:"jldocstring custom-block"},$s={class:"jldocstring custom-block"},Xs={class:"jldocstring custom-block"},Ys={class:"jldocstring custom-block"},_s={class:"jldocstring custom-block"},ta={class:"jldocstring custom-block"},ea={class:"jldocstring custom-block"},sa={class:"jldocstring custom-block"},aa={class:"jldocstring custom-block"},ia={class:"jldocstring custom-block"},la={class:"jldocstring custom-block"},na={class:"jldocstring custom-block"},pa={class:"jldocstring custom-block"},ra={class:"jldocstring custom-block"},oa={class:"jldocstring custom-block"},da={class:"jldocstring custom-block"},ca={class:"jldocstring custom-block"},ha={class:"jldocstring custom-block"},ua={class:"jldocstring custom-block"},ba={class:"jldocstring custom-block"},ga={class:"jldocstring custom-block"},ya={class:"jldocstring custom-block"},ma={class:"jldocstring custom-block"},ka={class:"jldocstring custom-block"},fa={class:"jldocstring custom-block"},Ra={class:"jldocstring custom-block"},Ia={class:"jldocstring custom-block"},ja={class:"jldocstring custom-block"},Ma={class:"jldocstring custom-block"},Aa={class:"jldocstring custom-block"},La={class:"jldocstring custom-block"},Ea={class:"jldocstring custom-block"},va={class:"jldocstring custom-block"},Ta={class:"jldocstring custom-block"},Ca={class:"jldocstring custom-block"},xa={class:"jldocstring custom-block"},Fa={class:"jldocstring custom-block"},Pa={class:"jldocstring custom-block"},Da={class:"jldocstring custom-block"},Oa={class:"jldocstring custom-block"},Ba={class:"jldocstring custom-block"},Ga={class:"jldocstring custom-block"},za={class:"jldocstring custom-block"},wa={class:"jldocstring custom-block"},Sa={class:"jldocstring custom-block"},Na={class:"jldocstring custom-block"},Va={class:"jldocstring custom-block"},qa={class:"jldocstring custom-block"},Ua={class:"jldocstring custom-block"},Qa={class:"jldocstring custom-block"},Wa={class:"jldocstring custom-block"},Ha={class:"jldocstring custom-block"},Za={class:"jldocstring custom-block"},Ja={class:"jldocstring custom-block"},Ka={class:"jldocstring custom-block"},$a={class:"jldocstring custom-block"},Xa={class:"jldocstring custom-block"},Ya={class:"jldocstring custom-block"},_a={class:"jldocstring custom-block"},ti={class:"jldocstring custom-block"},ei={class:"jldocstring custom-block"},si={class:"jldocstring custom-block"},ai={class:"jldocstring custom-block"},ii={class:"jldocstring custom-block"},li={class:"jldocstring custom-block"},ni={class:"jldocstring custom-block"},pi={class:"jldocstring custom-block"},ri={class:"jldocstring custom-block"},oi={class:"jldocstring custom-block"},di={class:"jldocstring custom-block"},ci={class:"jldocstring custom-block"},hi={class:"jldocstring custom-block"},ui={class:"jldocstring custom-block"},bi={class:"jldocstring custom-block"},gi={class:"jldocstring custom-block"},yi={class:"jldocstring custom-block"},mi={class:"jldocstring custom-block"},ki={class:"jldocstring custom-block"},fi={class:"jldocstring custom-block"},Ri={class:"jldocstring custom-block"},Ii={class:"jldocstring custom-block"},ji={class:"jldocstring custom-block"},Mi={class:"jldocstring custom-block"},Ai={class:"jldocstring custom-block"},Li={class:"jldocstring custom-block"},Ei={class:"jldocstring custom-block"},vi={class:"jldocstring custom-block"},Ti={class:"jldocstring custom-block"},Ci={class:"jldocstring custom-block"},xi={class:"jldocstring custom-block"},Fi={class:"jldocstring custom-block"},Pi={class:"jldocstring custom-block"},Di={class:"jldocstring custom-block"},Oi={class:"jldocstring custom-block"},Bi={class:"jldocstring custom-block"},Gi={class:"jldocstring custom-block"},zi={class:"jldocstring custom-block"},wi={class:"jldocstring custom-block"},Si={class:"jldocstring custom-block"},Ni={class:"jldocstring custom-block"},Vi={class:"jldocstring custom-block"},qi={class:"jldocstring custom-block"},Ui={class:"jldocstring custom-block"},Qi={class:"jldocstring custom-block"},Wi={class:"jldocstring custom-block"},Hi={class:"jldocstring custom-block"},Zi={class:"jldocstring custom-block"},Ji={class:"jldocstring custom-block"},Ki={class:"jldocstring custom-block"},$i={class:"jldocstring custom-block"},Xi={class:"jldocstring custom-block"},Yi={class:"jldocstring custom-block"},_i={class:"jldocstring custom-block"},tl={class:"jldocstring custom-block"},el={class:"jldocstring custom-block"},sl={class:"jldocstring custom-block"},al={class:"jldocstring custom-block"},il={class:"jldocstring custom-block"},ll={class:"jldocstring custom-block"},nl={class:"jldocstring custom-block"},pl={class:"jldocstring custom-block"},rl={class:"jldocstring custom-block"},ol={class:"jldocstring custom-block"},dl={class:"jldocstring custom-block"},cl={class:"jldocstring custom-block"},hl={class:"jldocstring custom-block"},ul={class:"jldocstring custom-block"},bl={class:"jldocstring custom-block"},gl={class:"jldocstring custom-block"},yl={class:"jldocstring custom-block"},ml={class:"jldocstring custom-block"},kl={class:"jldocstring custom-block"},fl={class:"jldocstring custom-block"},Rl={class:"jldocstring custom-block"},Il={class:"jldocstring custom-block"},jl={class:"jldocstring custom-block"},Ml={class:"jldocstring custom-block"},Al={class:"jldocstring custom-block"},Ll={class:"jldocstring custom-block"},El={class:"jldocstring custom-block"},vl={class:"jldocstring custom-block"},Tl={class:"jldocstring custom-block"},Cl={class:"jldocstring custom-block"},xl={class:"jldocstring custom-block"},Fl={class:"jldocstring custom-block"},Pl={class:"jldocstring custom-block"},Dl={class:"jldocstring custom-block"},Ol={class:"jldocstring custom-block"},Bl={class:"jldocstring custom-block"},Gl={class:"jldocstring custom-block"},zl={class:"jldocstring custom-block"},wl={class:"jldocstring custom-block"},Sl={class:"jldocstring custom-block"},Nl={class:"jldocstring custom-block"},Vl={class:"jldocstring custom-block"},ql={class:"jldocstring custom-block"},Ul={class:"jldocstring custom-block"},Ql={class:"jldocstring custom-block"},Wl={class:"jldocstring custom-block"},Hl={class:"jldocstring custom-block"},Zl={class:"jldocstring custom-block"},Jl={class:"jldocstring custom-block"},Kl={class:"jldocstring custom-block"},$l={class:"jldocstring custom-block"},Xl={class:"jldocstring custom-block"},Yl={class:"jldocstring custom-block"},_l={class:"jldocstring custom-block"},tn={class:"jldocstring custom-block"},en={class:"jldocstring custom-block"},sn={class:"jldocstring custom-block"},an={class:"jldocstring custom-block"},ln={class:"jldocstring custom-block"},nn={class:"jldocstring custom-block"},pn={class:"jldocstring custom-block"},rn={class:"jldocstring custom-block"},on={class:"jldocstring custom-block"},dn={class:"jldocstring custom-block"},cn={class:"jldocstring custom-block"},hn={class:"jldocstring custom-block"},un={class:"jldocstring custom-block"},bn={class:"jldocstring custom-block"},gn={class:"jldocstring custom-block"},yn={class:"jldocstring custom-block"},mn={class:"jldocstring custom-block"},kn={class:"jldocstring custom-block"},fn={class:"jldocstring custom-block"},Rn={class:"jldocstring custom-block"},In={class:"jldocstring custom-block"},jn={class:"jldocstring custom-block"},Mn={class:"jldocstring custom-block"},An={class:"jldocstring custom-block"},Ln={class:"jldocstring custom-block"},En={class:"jldocstring custom-block"},vn={class:"jldocstring custom-block"},Tn={class:"jldocstring custom-block"},Cn={class:"jldocstring custom-block"},xn={class:"jldocstring custom-block"},Fn={class:"jldocstring custom-block"},Pn={class:"jldocstring custom-block"},Dn={class:"jldocstring custom-block"},On={class:"jldocstring custom-block"},Bn={class:"jldocstring custom-block"},Gn={class:"jldocstring custom-block"},zn={class:"jldocstring custom-block"},wn={class:"jldocstring custom-block"},Sn={class:"jldocstring custom-block"},Nn={class:"jldocstring custom-block"},Vn={class:"jldocstring custom-block"},qn={class:"jldocstring custom-block"},Un={class:"jldocstring custom-block"},Qn={class:"jldocstring custom-block"},Wn={class:"jldocstring custom-block"},Hn={class:"jldocstring custom-block"},Zn={class:"jldocstring custom-block"},Jn={class:"jldocstring custom-block"},Kn={class:"jldocstring custom-block"},$n={class:"jldocstring custom-block"},Xn={class:"jldocstring custom-block"},Yn={class:"jldocstring custom-block"},_n={class:"jldocstring custom-block"},tp={class:"jldocstring custom-block"},ep={class:"jldocstring custom-block"},sp={class:"jldocstring custom-block"},ap={class:"jldocstring custom-block"},ip={class:"jldocstring custom-block"},lp={class:"jldocstring custom-block"},np={class:"jldocstring custom-block"},pp={class:"jldocstring custom-block"},rp={class:"jldocstring custom-block"},op={class:"jldocstring custom-block"},dp={class:"jldocstring custom-block"},cp={class:"jldocstring custom-block"},hp={class:"jldocstring custom-block"},up={class:"jldocstring custom-block"},bp={class:"jldocstring custom-block"},gp={class:"jldocstring custom-block"},yp={class:"jldocstring custom-block"},mp={class:"jldocstring custom-block"},kp={class:"jldocstring custom-block"},fp={class:"jldocstring custom-block"},Rp={class:"jldocstring custom-block"},Ip={class:"jldocstring custom-block"},jp={class:"jldocstring custom-block"},Mp={class:"jldocstring custom-block"},Ap={class:"jldocstring custom-block"},Lp={class:"jldocstring custom-block"},Ep={class:"jldocstring custom-block"},vp={class:"jldocstring custom-block"},Tp={class:"jldocstring custom-block"},Cp={class:"jldocstring custom-block"},xp={class:"jldocstring custom-block"},Fp={class:"jldocstring custom-block"},Pp={class:"jldocstring custom-block"},Dp={class:"jldocstring custom-block"},Op={class:"jldocstring custom-block"},Bp={class:"jldocstring custom-block"},Gp={class:"jldocstring custom-block"},zp={class:"jldocstring custom-block"},wp={class:"jldocstring custom-block"},Sp={class:"jldocstring custom-block"},Np={class:"jldocstring custom-block"},Vp={class:"jldocstring custom-block"},qp={class:"jldocstring custom-block"},Up={class:"jldocstring custom-block"},Qp={class:"jldocstring custom-block"},Wp={class:"jldocstring custom-block"},Hp={class:"jldocstring custom-block"},Zp={class:"jldocstring custom-block"},Jp={class:"jldocstring custom-block"},Kp={class:"jldocstring custom-block"},$p={class:"jldocstring custom-block"},Xp={class:"jldocstring custom-block"},Yp={class:"jldocstring custom-block"},_p={class:"jldocstring custom-block"},tr={class:"jldocstring custom-block"},er={class:"jldocstring custom-block"},sr={class:"jldocstring custom-block"},ar={class:"jldocstring custom-block"},ir={class:"jldocstring custom-block"},lr={class:"jldocstring custom-block"},nr={class:"jldocstring custom-block"},pr={class:"jldocstring custom-block"},rr={class:"jldocstring custom-block"},or={class:"jldocstring custom-block"},dr={class:"jldocstring custom-block"},cr={class:"jldocstring custom-block"},hr={class:"jldocstring custom-block"},ur={class:"jldocstring custom-block"},br={class:"jldocstring custom-block"},gr={class:"jldocstring custom-block"},yr={class:"jldocstring custom-block"},mr={class:"jldocstring custom-block"},kr={class:"jldocstring custom-block"},fr={class:"jldocstring custom-block"},Rr={class:"jldocstring custom-block"},Ir={class:"jldocstring custom-block"},jr={class:"jldocstring custom-block"},Mr={class:"jldocstring custom-block"},Ar={class:"jldocstring custom-block"},Lr={class:"jldocstring custom-block"},Er={class:"jldocstring custom-block"},vr={class:"jldocstring custom-block"},Tr={class:"jldocstring custom-block"},Cr={class:"jldocstring custom-block"},xr={class:"jldocstring custom-block"},Fr={class:"jldocstring custom-block"},Pr={class:"jldocstring custom-block"},Dr={class:"jldocstring custom-block"},Or={class:"jldocstring custom-block"},Br={class:"jldocstring custom-block"},Gr={class:"jldocstring custom-block"},zr={class:"jldocstring custom-block"},wr={class:"jldocstring custom-block"},Sr={class:"jldocstring custom-block"},Nr={class:"jldocstring custom-block"},Vr={class:"jldocstring custom-block"},qr={class:"jldocstring custom-block"},Ur={class:"jldocstring custom-block"},Qr={class:"jldocstring custom-block"},Wr={class:"jldocstring custom-block"},Hr={class:"jldocstring custom-block"},Zr={class:"jldocstring custom-block"},Jr={class:"jldocstring custom-block"},Kr={class:"jldocstring custom-block"},$r={class:"jldocstring custom-block"},Xr={class:"jldocstring custom-block"},Yr={class:"jldocstring custom-block"},_r={class:"jldocstring custom-block"},to={class:"jldocstring custom-block"},eo={class:"jldocstring custom-block"},so={class:"jldocstring custom-block"},ao={class:"jldocstring custom-block"},io={class:"jldocstring custom-block"},lo={class:"jldocstring custom-block"},no={class:"jldocstring custom-block"},po={class:"jldocstring custom-block"},ro={class:"jldocstring custom-block"},oo={class:"jldocstring custom-block"},co={class:"jldocstring custom-block"},ho={class:"jldocstring custom-block"},uo={class:"jldocstring custom-block"},bo={class:"jldocstring custom-block"},go={class:"jldocstring custom-block"},yo={class:"jldocstring custom-block"},mo={class:"jldocstring custom-block"},ko={class:"jldocstring custom-block"},fo={class:"jldocstring custom-block"},Ro={class:"jldocstring custom-block"},Io={class:"jldocstring custom-block"},jo={class:"jldocstring custom-block"},Mo={class:"jldocstring custom-block"},Ao={class:"jldocstring custom-block"},Lo={class:"jldocstring custom-block"},Eo={class:"jldocstring custom-block"},vo={class:"jldocstring custom-block"},To={class:"jldocstring custom-block"},Co={class:"jldocstring custom-block"},xo={class:"jldocstring custom-block"},Fo={class:"jldocstring custom-block"},Po={class:"jldocstring custom-block"},Do={class:"jldocstring custom-block"},Oo={class:"jldocstring custom-block"},Bo={class:"jldocstring custom-block"},Go={class:"jldocstring custom-block"},zo={class:"jldocstring custom-block"},wo={class:"jldocstring custom-block"},So={class:"jldocstring custom-block"},No={class:"jldocstring custom-block"},Vo={class:"jldocstring custom-block"},qo={class:"jldocstring custom-block"},Uo={class:"jldocstring custom-block"},Qo={class:"jldocstring custom-block"},Wo={class:"jldocstring custom-block"},Ho={class:"jldocstring custom-block"},Zo={class:"jldocstring custom-block"},Jo={class:"jldocstring custom-block"},Ko={class:"jldocstring custom-block"},$o={class:"jldocstring custom-block"},Xo={class:"jldocstring custom-block"},Yo={class:"jldocstring custom-block"},_o={class:"jldocstring custom-block"},td={class:"jldocstring custom-block"},ed={class:"jldocstring custom-block"},sd={class:"jldocstring custom-block"},ad={class:"jldocstring custom-block"},id={class:"jldocstring custom-block"},ld={class:"jldocstring custom-block"},nd={class:"jldocstring custom-block"},pd={class:"jldocstring custom-block"},rd={class:"jldocstring custom-block"},od={class:"jldocstring custom-block"},dd={class:"jldocstring custom-block"},cd={class:"jldocstring custom-block"},hd={class:"jldocstring custom-block"},ud={class:"jldocstring custom-block"},bd={class:"jldocstring custom-block"},gd={class:"jldocstring custom-block"},yd={class:"jldocstring custom-block"},md={class:"jldocstring custom-block"},kd={class:"jldocstring custom-block"},fd={class:"jldocstring custom-block"},Rd={class:"jldocstring custom-block"},Id={class:"jldocstring custom-block"},jd={class:"jldocstring custom-block"},Md={class:"jldocstring custom-block"},Ad={class:"jldocstring custom-block"},Ld={class:"jldocstring custom-block"},Ed={class:"jldocstring custom-block"},vd={class:"jldocstring custom-block"},Td={class:"jldocstring custom-block"},Cd={class:"jldocstring custom-block"},xd={class:"jldocstring custom-block"},Fd={class:"jldocstring custom-block"},Pd={class:"jldocstring custom-block"},Dd={class:"jldocstring custom-block"},Od={class:"jldocstring custom-block"},Bd={class:"jldocstring custom-block"},Gd={class:"jldocstring custom-block"},zd={class:"jldocstring custom-block"},wd={class:"jldocstring custom-block"},Sd={class:"jldocstring custom-block"},Nd={class:"jldocstring custom-block"},Vd={class:"jldocstring custom-block"},qd={class:"jldocstring custom-block"},Ud={class:"jldocstring custom-block"},Qd={class:"jldocstring custom-block"},Wd={class:"jldocstring custom-block"},Hd={class:"jldocstring custom-block"},Zd={class:"jldocstring custom-block"},Jd={class:"jldocstring custom-block"},Kd={class:"jldocstring custom-block"},$d={class:"jldocstring custom-block"},Xd={class:"jldocstring custom-block"},Yd={class:"jldocstring custom-block"},_d={class:"jldocstring custom-block"},tc={class:"jldocstring custom-block"},ec={class:"jldocstring custom-block"},sc={class:"jldocstring custom-block"},ac={class:"jldocstring custom-block"},ic={class:"jldocstring custom-block"},lc={class:"jldocstring custom-block"},nc={class:"jldocstring custom-block"},pc={class:"jldocstring custom-block"},rc={class:"jldocstring custom-block"},oc={class:"jldocstring custom-block"},dc={class:"jldocstring custom-block"},cc={class:"jldocstring custom-block"},hc={class:"jldocstring custom-block"},uc={class:"jldocstring custom-block"},bc={class:"jldocstring custom-block"},gc={class:"jldocstring custom-block"},yc={class:"jldocstring custom-block"},mc={class:"jldocstring custom-block"},kc={class:"jldocstring custom-block"},fc={class:"jldocstring custom-block"},Rc={class:"jldocstring custom-block"},Ic={class:"jldocstring custom-block"},jc={class:"jldocstring custom-block"},Mc={class:"jldocstring custom-block"},Ac={class:"jldocstring custom-block"},Lc={class:"jldocstring custom-block"},Ec={class:"jldocstring custom-block"},vc={class:"jldocstring custom-block"},Tc={class:"jldocstring custom-block"},Cc={class:"jldocstring custom-block"},xc={class:"jldocstring custom-block"},Fc={class:"jldocstring custom-block"},Pc={class:"jldocstring custom-block"},Dc={class:"jldocstring custom-block"},Oc={class:"jldocstring custom-block"},Bc={class:"jldocstring custom-block"},Gc={class:"jldocstring custom-block"},zc={class:"jldocstring custom-block"},wc={class:"jldocstring custom-block"},Sc={class:"jldocstring custom-block"},Nc={class:"jldocstring custom-block"},Vc={class:"jldocstring custom-block"},qc={class:"jldocstring custom-block"},Uc={class:"jldocstring custom-block"},Qc={class:"jldocstring custom-block"},Wc={class:"jldocstring custom-block"},Hc={class:"jldocstring custom-block"},Zc={class:"jldocstring custom-block"},Jc={class:"jldocstring custom-block"},Kc={class:"jldocstring custom-block"},$c={class:"jldocstring custom-block"},Xc={class:"jldocstring custom-block"},Yc={class:"jldocstring custom-block"},_c={class:"jldocstring custom-block"},th={class:"jldocstring custom-block"},eh={class:"jldocstring custom-block"},sh={class:"jldocstring custom-block"},ah={class:"jldocstring custom-block"},ih={class:"jldocstring custom-block"},lh={class:"jldocstring custom-block"},nh={class:"jldocstring custom-block"},ph={class:"jldocstring custom-block"},rh={class:"jldocstring custom-block"},oh={class:"jldocstring custom-block"},dh={class:"jldocstring custom-block"},ch={class:"jldocstring custom-block"},hh={class:"jldocstring custom-block"},uh={class:"jldocstring custom-block"},bh={class:"jldocstring custom-block"},gh={class:"jldocstring custom-block"},yh={class:"jldocstring custom-block"},mh={class:"jldocstring custom-block"},kh={class:"jldocstring custom-block"},fh={class:"jldocstring custom-block"},Rh={class:"jldocstring custom-block"},Ih={class:"jldocstring custom-block"},jh={class:"jldocstring custom-block"},Mh={class:"jldocstring custom-block"},Ah={class:"jldocstring custom-block"},Lh={class:"jldocstring custom-block"},Eh={class:"jldocstring custom-block"},vh={class:"jldocstring custom-block"},Th={class:"jldocstring custom-block"},Ch={class:"jldocstring custom-block"},xh={class:"jldocstring custom-block"},Fh={class:"jldocstring custom-block"},Ph={class:"jldocstring custom-block"},Dh={class:"jldocstring custom-block"},Oh={class:"jldocstring custom-block"},Bh={class:"jldocstring custom-block"},Gh={class:"jldocstring custom-block"},zh={class:"jldocstring custom-block"},wh={class:"jldocstring custom-block"},Sh={class:"jldocstring custom-block"},Nh={class:"jldocstring custom-block"},Vh={class:"jldocstring custom-block"},qh={class:"jldocstring custom-block"},Uh={class:"jldocstring custom-block"},Qh={class:"jldocstring custom-block"},Wh={class:"jldocstring custom-block"},Hh={class:"jldocstring custom-block"},Zh={class:"jldocstring custom-block"},Jh={class:"jldocstring custom-block"},Kh={class:"jldocstring custom-block"},$h={class:"jldocstring custom-block"},Xh={class:"jldocstring custom-block"},Yh={class:"jldocstring custom-block"},_h={class:"jldocstring custom-block"},tu={class:"jldocstring custom-block"},eu={class:"jldocstring custom-block"},su={class:"jldocstring custom-block"},au={class:"jldocstring custom-block"},iu={class:"jldocstring custom-block"},lu={class:"jldocstring custom-block"},nu={class:"jldocstring custom-block"},pu={class:"jldocstring custom-block"},ru={class:"jldocstring custom-block"},ou={class:"jldocstring custom-block"},du={class:"jldocstring custom-block"},cu={class:"jldocstring custom-block"},hu={class:"jldocstring custom-block"},uu={class:"jldocstring custom-block"},bu={class:"jldocstring custom-block"},gu={class:"jldocstring custom-block"},yu={class:"jldocstring custom-block"},mu={class:"jldocstring custom-block"},ku={class:"jldocstring custom-block"},fu={class:"jldocstring custom-block"},Ru={class:"jldocstring custom-block"},Iu={class:"jldocstring custom-block"},ju={class:"jldocstring custom-block"},Mu={class:"jldocstring custom-block"},Au={class:"jldocstring custom-block"},Lu={class:"jldocstring custom-block"},Eu={class:"jldocstring custom-block"},vu={class:"jldocstring custom-block"},Tu={class:"jldocstring custom-block"},Cu={class:"jldocstring custom-block"},xu={class:"jldocstring custom-block"},Fu={class:"jldocstring custom-block"},Pu={class:"jldocstring custom-block"},Du={class:"jldocstring custom-block"},Ou={class:"jldocstring custom-block"},Bu={class:"jldocstring custom-block"},Gu={class:"jldocstring custom-block"},zu={class:"jldocstring custom-block"},wu={class:"jldocstring custom-block"},Su={class:"jldocstring custom-block"},Nu={class:"jldocstring custom-block"},Vu={class:"jldocstring custom-block"},qu={class:"jldocstring custom-block"},Uu={class:"jldocstring custom-block"},Qu={class:"jldocstring custom-block"},Wu={class:"jldocstring custom-block"},Hu={class:"jldocstring custom-block"},Zu={class:"jldocstring custom-block"},Ju={class:"jldocstring custom-block"},Ku={class:"jldocstring custom-block"},$u={class:"jldocstring custom-block"},Xu={class:"jldocstring custom-block"},Yu={class:"jldocstring custom-block"},_u={class:"jldocstring custom-block"},tb={class:"jldocstring custom-block"},eb={class:"jldocstring custom-block"},sb={class:"jldocstring custom-block"},ab={class:"jldocstring custom-block"},ib={class:"jldocstring custom-block"},lb={class:"jldocstring custom-block"},nb={class:"jldocstring custom-block"},pb={class:"jldocstring custom-block"},rb={class:"jldocstring custom-block"},ob={class:"jldocstring custom-block"},db={class:"jldocstring custom-block"},cb={class:"jldocstring custom-block"},hb={class:"jldocstring custom-block"},ub={class:"jldocstring custom-block"},bb={class:"jldocstring custom-block"},gb={class:"jldocstring custom-block"},yb={class:"jldocstring custom-block"},mb={class:"jldocstring custom-block"},kb={class:"jldocstring custom-block"},fb={class:"jldocstring custom-block"},Rb={class:"jldocstring custom-block"},Ib={class:"jldocstring custom-block"},jb={class:"jldocstring custom-block"},Mb={class:"jldocstring custom-block"},Ab={class:"jldocstring custom-block"},Lb={class:"jldocstring custom-block"},Eb={class:"jldocstring custom-block"},vb={class:"jldocstring custom-block"},Tb={class:"jldocstring custom-block"},Cb={class:"jldocstring custom-block"},xb={class:"jldocstring custom-block"},Fb={class:"jldocstring custom-block"},Pb={class:"jldocstring custom-block"},Db={class:"jldocstring custom-block"},Ob={class:"jldocstring custom-block"},Bb={class:"jldocstring custom-block"},Gb={class:"jldocstring custom-block"},zb={class:"jldocstring custom-block"},wb={class:"jldocstring custom-block"},Sb={class:"jldocstring custom-block"},Nb={class:"jldocstring custom-block"},Vb={class:"jldocstring custom-block"},qb={class:"jldocstring custom-block"},Ub={class:"jldocstring custom-block"},Qb={class:"jldocstring custom-block"},Wb={class:"jldocstring custom-block"},Hb={class:"jldocstring custom-block"},Zb={class:"jldocstring custom-block"},Jb={class:"jldocstring custom-block"},Kb={class:"jldocstring custom-block"},$b={class:"jldocstring custom-block"},Xb={class:"jldocstring custom-block"},Yb={class:"jldocstring custom-block"},_b={class:"jldocstring custom-block"},tg={class:"jldocstring custom-block"},eg={class:"jldocstring custom-block"},sg={class:"jldocstring custom-block"},ag={class:"jldocstring custom-block"},ig={class:"jldocstring custom-block"},lg={class:"jldocstring custom-block"},ng={class:"jldocstring custom-block"},pg={class:"jldocstring custom-block"},rg={class:"jldocstring custom-block"},og={class:"jldocstring custom-block"},dg={class:"jldocstring custom-block"},cg={class:"jldocstring custom-block"},hg={class:"jldocstring custom-block"},ug={class:"jldocstring custom-block"},bg={class:"jldocstring custom-block"},gg={class:"jldocstring custom-block"},yg={class:"jldocstring custom-block"},mg={class:"jldocstring custom-block"},kg={class:"jldocstring custom-block"},fg={class:"jldocstring custom-block"},Rg={class:"jldocstring custom-block"},Ig={class:"jldocstring custom-block"},jg={class:"jldocstring custom-block"},Mg={class:"jldocstring custom-block"},Ag={class:"jldocstring custom-block"},Lg={class:"jldocstring custom-block"},Eg={class:"jldocstring custom-block"},vg={class:"jldocstring custom-block"},Tg={class:"jldocstring custom-block"},Cg={class:"jldocstring custom-block"},xg={class:"jldocstring custom-block"},Fg={class:"jldocstring custom-block"},Pg={class:"jldocstring custom-block"},Dg={class:"jldocstring custom-block"},Og={class:"jldocstring custom-block"},Bg={class:"jldocstring custom-block"},Gg={class:"jldocstring custom-block"},zg={class:"jldocstring custom-block"},wg={class:"jldocstring custom-block"},Sg={class:"jldocstring custom-block"},Ng={class:"jldocstring custom-block"},Vg={class:"jldocstring custom-block"},qg={class:"jldocstring custom-block"},Ug={class:"jldocstring custom-block"},Qg={class:"jldocstring custom-block"},Wg={class:"jldocstring custom-block"},Hg={class:"jldocstring custom-block"},Zg={class:"jldocstring custom-block"},Jg={class:"jldocstring custom-block"},Kg={class:"jldocstring custom-block"},$g={class:"jldocstring custom-block"},Xg={class:"jldocstring custom-block"},Yg={class:"jldocstring custom-block"},_g={class:"jldocstring custom-block"},ty={class:"jldocstring custom-block"},ey={class:"jldocstring custom-block"},sy={class:"jldocstring custom-block"},ay={class:"jldocstring custom-block"},iy={class:"jldocstring custom-block"},ly={class:"jldocstring custom-block"},ny={class:"jldocstring custom-block"},py={class:"jldocstring custom-block"},ry={class:"jldocstring custom-block"},oy={class:"jldocstring custom-block"},dy={class:"jldocstring custom-block"},cy={class:"jldocstring custom-block"},hy={class:"jldocstring custom-block"},uy={class:"jldocstring custom-block"},by={class:"jldocstring custom-block"},gy={class:"jldocstring custom-block"},yy={class:"jldocstring custom-block"},my={class:"jldocstring custom-block"},ky={class:"jldocstring custom-block"},fy={class:"jldocstring custom-block"},Ry={class:"jldocstring custom-block"},Iy={class:"jldocstring custom-block"},jy={class:"jldocstring custom-block"},My={class:"jldocstring custom-block"},Ay={class:"jldocstring custom-block"},Ly={class:"jldocstring custom-block"},Ey={class:"jldocstring custom-block"},vy={class:"jldocstring custom-block"},Ty={class:"jldocstring custom-block"},Cy={class:"jldocstring custom-block"},xy={class:"jldocstring custom-block"},Fy={class:"jldocstring custom-block"},Py={class:"jldocstring custom-block"},Dy={class:"jldocstring custom-block"},Oy={class:"jldocstring custom-block"},By={class:"jldocstring custom-block"},Gy={class:"jldocstring custom-block"},zy={class:"jldocstring custom-block"},wy={class:"jldocstring custom-block"},Sy={class:"jldocstring custom-block"},Ny={class:"jldocstring custom-block"},Vy={class:"jldocstring custom-block"},qy={class:"jldocstring custom-block"},Uy={class:"jldocstring custom-block"},Qy={class:"jldocstring custom-block"},Wy={class:"jldocstring custom-block"},Hy={class:"jldocstring custom-block"},Zy={class:"jldocstring custom-block"},Jy={class:"jldocstring custom-block"},Ky={class:"jldocstring custom-block"},$y={class:"jldocstring custom-block"},Xy={class:"jldocstring custom-block"},Yy={class:"jldocstring custom-block"},_y={class:"jldocstring custom-block"},tm={class:"jldocstring custom-block"},em={class:"jldocstring custom-block"},sm={class:"jldocstring custom-block"},am={class:"jldocstring custom-block"},im={class:"jldocstring custom-block"},lm={class:"jldocstring custom-block"},nm={class:"jldocstring custom-block"},pm={class:"jldocstring custom-block"},rm={class:"jldocstring custom-block"},om={class:"jldocstring custom-block"},dm={class:"jldocstring custom-block"},cm={class:"jldocstring custom-block"},hm={class:"jldocstring custom-block"},um={class:"jldocstring custom-block"},bm={class:"jldocstring custom-block"},gm={class:"jldocstring custom-block"},ym={class:"jldocstring custom-block"},mm={class:"jldocstring custom-block"},km={class:"jldocstring custom-block"},fm={class:"jldocstring custom-block"},Rm={class:"jldocstring custom-block"},Im={class:"jldocstring custom-block"},jm={class:"jldocstring custom-block"},Mm={class:"jldocstring custom-block"},Am={class:"jldocstring custom-block"},Lm={class:"jldocstring custom-block"},Em={class:"jldocstring custom-block"},vm={class:"jldocstring custom-block"},Tm={class:"jldocstring custom-block"},Cm={class:"jldocstring custom-block"},xm={class:"jldocstring custom-block"},Fm={class:"jldocstring custom-block"},Pm={class:"jldocstring custom-block"},Dm={class:"jldocstring custom-block"},Om={class:"jldocstring custom-block"},Bm={class:"jldocstring custom-block"},Gm={class:"jldocstring custom-block"},zm={class:"jldocstring custom-block"},wm={class:"jldocstring custom-block"},Sm={class:"jldocstring custom-block"},Nm={class:"jldocstring custom-block"},Vm={class:"jldocstring custom-block"},qm={class:"jldocstring custom-block"},Um={class:"jldocstring custom-block"},Qm={class:"jldocstring custom-block"},Wm={class:"jldocstring custom-block"},Hm={class:"jldocstring custom-block"},Zm={class:"jldocstring custom-block"},Jm={class:"jldocstring custom-block"},Km={class:"jldocstring custom-block"},$m={class:"jldocstring custom-block"},Xm={class:"jldocstring custom-block"},Ym={class:"jldocstring custom-block"},_m={class:"jldocstring custom-block"},tk={class:"jldocstring custom-block"},ek={class:"jldocstring custom-block"},sk={class:"jldocstring custom-block"},ak={class:"jldocstring custom-block"},ik={class:"jldocstring custom-block"},lk={class:"jldocstring custom-block"},nk={class:"jldocstring custom-block"},pk={class:"jldocstring custom-block"},rk={class:"jldocstring custom-block"},ok={class:"jldocstring custom-block"},dk={class:"jldocstring custom-block"},ck={class:"jldocstring custom-block"},hk={class:"jldocstring custom-block"},uk={class:"jldocstring custom-block"},bk={class:"jldocstring custom-block"},gk={class:"jldocstring custom-block"},yk={class:"jldocstring custom-block"},mk={class:"jldocstring custom-block"},kk={class:"jldocstring custom-block"},fk={class:"jldocstring custom-block"},Rk={class:"jldocstring custom-block"},Ik={class:"jldocstring custom-block"},jk={class:"jldocstring custom-block"},Mk={class:"jldocstring custom-block"},Ak={class:"jldocstring custom-block"},Lk={class:"jldocstring custom-block"},Ek={class:"jldocstring custom-block"},vk={class:"jldocstring custom-block"};function Tk(Ck,t,xk,Fk,Pk,Dk){const a=r("Badge");return o(),p("div",null,[t[3183]||(t[3183]=e("h1",{id:"Higher-level-API",tabindex:"-1"},[s("Higher level API "),e("a",{class:"header-anchor",href:"#Higher-level-API","aria-label":'Permalink to "Higher level API {#Higher-level-API}"'},"​")],-1)),e("details",c,[e("summary",null,[t[0]||(t[0]=e("a",{id:"Core.Bool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Bool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Bool")],-1)),t[1]||(t[1]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=l('
julia
Bool(attr)

Returns the value stored in the given bool attribute.

source

',3))]),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Float64")],-1)),t[4]||(t[4]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[5]||(t[5]=l('
julia
Float64(attr)

Returns the value stored in the given floating point attribute, interpreting the value as double.

source

',3))]),e("details",u,[e("summary",null,[t[6]||(t[6]=e("a",{id:"Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Int64")],-1)),t[7]||(t[7]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[8]||(t[8]=l('
julia
Int64(attr)

Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.

source

',3))]),e("details",b,[e("summary",null,[t[9]||(t[9]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[10]||(t[10]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[11]||(t[11]=l('
julia
String(attr)

Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",g,[e("summary",null,[t[12]||(t[12]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[13]||(t[13]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[14]||(t[14]=l('
julia
String(ident)

Gets the string value of the identifier.

source

',3))]),e("details",y,[e("summary",null,[t[15]||(t[15]=e("a",{id:"Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.UInt64")],-1)),t[16]||(t[16]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[17]||(t[17]=l('
julia
UInt64(attr)

Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.

source

',3))]),e("details",m,[e("summary",null,[t[18]||(t[18]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[19]||(t[19]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[20]||(t[20]=l('
julia
AffineMap(ndims, nsymbols, affineExprs; context=context())

Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.

source

',3))]),e("details",k,[e("summary",null,[t[21]||(t[21]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[22]||(t[22]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l('
julia
AffineMap(ndims, nsymbols; context=context())

Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",f,[e("summary",null,[t[24]||(t[24]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[25]||(t[25]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[26]||(t[26]=l('
julia
AffineMap(attr)

Returns the affine map wrapped in the given affine map attribute.

source

',3))]),e("details",R,[e("summary",null,[t[27]||(t[27]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[28]||(t[28]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[29]||(t[29]=l('
julia
AffineMap(; context=context())

Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",I,[e("summary",null,[t[30]||(t[30]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[31]||(t[31]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[32]||(t[32]=l('
julia
Attribute(str; context=context())

Creates a string attribute in the given context containing the given string.

source

',3))]),e("details",j,[e("summary",null,[t[33]||(t[33]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Bool}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Bool}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[34]||(t[34]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[35]||(t[35]=l('
julia
Attribute(value; context=context())

Creates a bool attribute in the given context with the given value.

source

',3))]),e("details",M,[e("summary",null,[t[36]||(t[36]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Dict}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Dict}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[37]||(t[37]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[38]||(t[38]=l('
julia
Attribute(elements; context=context())

Creates a dictionary attribute containing the given list of elements in the provided context.

source

',3))]),e("details",A,[e("summary",null,[t[39]||(t[39]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[40]||(t[40]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[41]||(t[41]=l('
julia
Attribute(affineMap)

Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.

source

',3))]),e("details",L,[e("summary",null,[t[42]||(t[42]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[43]||(t[43]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l('
julia
Attribute(type, str)

Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.

source

',3))]),e("details",E,[e("summary",null,[t[45]||(t[45]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[46]||(t[46]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[47]||(t[47]=l('
julia
Attribute(type)

Creates a type attribute wrapping the given type in the same context as the type.

source

',3))]),e("details",v,[e("summary",null,[t[48]||(t[48]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat",href:"#Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[49]||(t[49]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[50]||(t[50]=l('
julia
Attribute(float; context=context(), location=Location(), check=false)

Creates a floating point attribute in the given context with the given double value and double-precision FP semantics. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",T,[e("summary",null,[t[51]||(t[51]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{T} where T<:Complex",href:"#Reactant.MLIR.IR.Attribute-Tuple{T} where T<:Complex"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[52]||(t[52]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[53]||(t[53]=l('
julia
Attribute(complex; context=context(), location=Location(), check=false)

Creates a complex attribute in the given context with the given complex value and double-precision FP semantics.

source

',3))]),e("details",C,[e("summary",null,[t[54]||(t[54]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[55]||(t[55]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l('
julia
Attribute(elements; context=context())

Creates an array element containing the given list of elements in the given context.

source

',3))]),e("details",x,[e("summary",null,[t[57]||(t[57]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{}",href:"#Reactant.MLIR.IR.Attribute-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[58]||(t[58]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[59]||(t[59]=l('
julia
Attribute()

Returns an empty attribute.

source

',3))]),e("details",F,[e("summary",null,[t[60]||(t[60]=e("a",{id:"Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer",href:"#Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[61]||(t[61]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l('
julia
Attribute(int)

Creates an integer attribute of the given type with the given integer value.

source

',3))]),e("details",P,[e("summary",null,[t[63]||(t[63]=e("a",{id:"Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}",href:"#Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Block")],-1)),t[64]||(t[64]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[65]||(t[65]=l('
julia
Block(args, locs)

Creates a new empty block with the given argument types and transfers ownership to the caller.

source

',3))]),e("details",D,[e("summary",null,[t[66]||(t[66]=e("a",{id:"Reactant.MLIR.IR.BlockIterator",href:"#Reactant.MLIR.IR.BlockIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BlockIterator")],-1)),t[67]||(t[67]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[68]||(t[68]=l('
julia
BlockIterator(region::Region)

Iterates over all blocks in the given region.

source

',3))]),e("details",O,[e("summary",null,[t[69]||(t[69]=e("a",{id:"Reactant.MLIR.IR.Context-Tuple{}",href:"#Reactant.MLIR.IR.Context-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Context")],-1)),t[70]||(t[70]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[71]||(t[71]=l('
julia
Context()

Creates an MLIR context and transfers its ownership to the caller.

source

',3))]),e("details",B,[e("summary",null,[t[72]||(t[72]=e("a",{id:"Reactant.MLIR.IR.ExecutionEngine",href:"#Reactant.MLIR.IR.ExecutionEngine"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ExecutionEngine")],-1)),t[73]||(t[73]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[74]||(t[74]=l('
julia
ExecutionEngine(op, optLevel, sharedlibs = [])

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

source

',3))]),e("details",G,[e("summary",null,[t[75]||(t[75]=e("a",{id:"Reactant.MLIR.IR.Identifier-Tuple{String}",href:"#Reactant.MLIR.IR.Identifier-Tuple{String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Identifier")],-1)),t[76]||(t[76]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[77]||(t[77]=l('
julia
Identifier(context, str)

Gets an identifier with the given string value.

source

',3))]),e("details",z,[e("summary",null,[t[78]||(t[78]=e("a",{id:"Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}",href:"#Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IntegerSet")],-1)),t[79]||(t[79]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[80]||(t[80]=l('
julia
IntegerSet(ndims, nsymbols, constraints, eqflags; context=context())

Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqflags is 1) or inequalities (eqflags is 0). Both constraints and eqflags need to be arrays of the same length.

source

',3))]),e("details",w,[e("summary",null,[t[81]||(t[81]=e("a",{id:"Reactant.MLIR.IR.IntegerSet-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.IntegerSet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IntegerSet")],-1)),t[82]||(t[82]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[83]||(t[83]=l('
julia
Integerset(ndims, nsymbols; context=context())

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

source

',3))]),e("details",S,[e("summary",null,[t[84]||(t[84]=e("a",{id:"Reactant.MLIR.IR.LogicalResult",href:"#Reactant.MLIR.IR.LogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.LogicalResult")],-1)),t[85]||(t[85]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[86]||(t[86]=l('
julia
LogicalResult

A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of LogicalResult must only be inspected using the associated functions.

source

',3))]),e("details",N,[e("summary",null,[t[87]||(t[87]=e("a",{id:"Reactant.MLIR.IR.Module",href:"#Reactant.MLIR.IR.Module"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Module")],-1)),t[88]||(t[88]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[89]||(t[89]=l('
julia
Module(location=Location())

Creates a new, empty module and transfers ownership to the caller.

source

',3))]),e("details",V,[e("summary",null,[t[90]||(t[90]=e("a",{id:"Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.NamedAttribute")],-1)),t[91]||(t[91]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[92]||(t[92]=l('
julia
NamedAttribute(name, attr)

Associates an attribute with the name. Takes ownership of neither.

source

',3))]),e("details",q,[e("summary",null,[t[93]||(t[93]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[94]||(t[94]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[95]||(t[95]=l('
julia
OpPassManager(opPassManager, operationName)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.

source

',3))]),e("details",U,[e("summary",null,[t[96]||(t[96]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager, Any}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[97]||(t[97]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[98]||(t[98]=l('
julia
OpPassManager(passManager, operationName)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

source

',3))]),e("details",Q,[e("summary",null,[t[99]||(t[99]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.PassManager}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[100]||(t[100]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[101]||(t[101]=l('
julia
OpPassManager(passManager)

Cast a top-level PassManager to a generic OpPassManager.

source

',3))]),e("details",W,[e("summary",null,[t[102]||(t[102]=e("a",{id:"Reactant.MLIR.IR.Operation-Tuple{Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.Operation-Tuple{Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Operation")],-1)),t[103]||(t[103]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[104]||(t[104]=l('
julia
Operation(module)

Views the module as a generic operation.

source

',3))]),e("details",H,[e("summary",null,[t[105]||(t[105]=e("a",{id:"Reactant.MLIR.IR.OperationIterator",href:"#Reactant.MLIR.IR.OperationIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OperationIterator")],-1)),t[106]||(t[106]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[107]||(t[107]=l('
julia
OperationIterator(block::Block)

Iterates over all operations for the given block.

source

',3))]),e("details",Z,[e("summary",null,[t[108]||(t[108]=e("a",{id:"Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PassManager")],-1)),t[109]||(t[109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[110]||(t[110]=l('
julia
PassManager(anchorOp; context=context())

Create a new top-level PassManager anchored on anchorOp.

source

',3))]),e("details",J,[e("summary",null,[t[111]||(t[111]=e("a",{id:"Reactant.MLIR.IR.PassManager-Tuple{}",href:"#Reactant.MLIR.IR.PassManager-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PassManager")],-1)),t[112]||(t[112]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[113]||(t[113]=l('
julia
PassManager(; context=context())

Create a new top-level PassManager.

source

',3))]),e("details",K,[e("summary",null,[t[114]||(t[114]=e("a",{id:"Reactant.MLIR.IR.Region-Tuple{}",href:"#Reactant.MLIR.IR.Region-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Region")],-1)),t[115]||(t[115]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[116]||(t[116]=l('
julia
Region()

Creates a new empty region and transfers ownership to the caller.

source

',3))]),e("details",$,[e("summary",null,[t[117]||(t[117]=e("a",{id:"Reactant.MLIR.IR.RegionIterator",href:"#Reactant.MLIR.IR.RegionIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.RegionIterator")],-1)),t[118]||(t[118]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[119]||(t[119]=l('
julia
RegionIterator(::Operation)

Iterates over all sub-regions for the given operation.

source

',3))]),e("details",X,[e("summary",null,[t[120]||(t[120]=e("a",{id:"Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolTable")],-1)),t[121]||(t[121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[122]||(t[122]=l('
julia
mlirSymbolTableCreate(operation)

Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.

source

',3))]),e("details",Y,[e("summary",null,[t[123]||(t[123]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[124]||(t[124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[125]||(t[125]=l('
julia
Type(attr)

Returns the type stored in the given type attribute.

source

',3))]),e("details",_,[e("summary",null,[t[126]||(t[126]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[127]||(t[127]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[128]||(t[128]=l('
julia
Type(T::Core.Type{<:Integer}; context=context()

Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",tt,[e("summary",null,[t[129]||(t[129]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[130]||(t[130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[131]||(t[131]=l('
julia
Type(T::Core.Type{<:Signed}; context=context()

Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",et,[e("summary",null,[t[132]||(t[132]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[133]||(t[133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[134]||(t[134]=l('
julia
Type(T::Core.Type{<:Unsigned}; context=context()

Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",st,[e("summary",null,[t[135]||(t[135]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Bool}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[136]||(t[136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[137]||(t[137]=l('
julia
Type(T::Core.Type{Bool}; context=context()

Creates a 1-bit signless integer type in the context. The type is owned by the context.

source

',3))]),e("details",at,[e("summary",null,[t[138]||(t[138]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float16}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float16}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[139]||(t[139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[140]||(t[140]=l('
julia
Type(::Core.Type{Float16}; context=context())

Creates an f16 type in the given context. The type is owned by the context.

source

',3))]),e("details",it,[e("summary",null,[t[141]||(t[141]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float32}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float32}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[142]||(t[142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[143]||(t[143]=l('
julia
Type(Core.Type{Float32}; context=context())

Creates an f32 type in the given context. The type is owned by the context.

source

',3))]),e("details",lt,[e("summary",null,[t[144]||(t[144]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float64}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float64}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[145]||(t[145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[146]||(t[146]=l('
julia
Type(Core.Type{Float64}; context=context())

Creates a f64 type in the given context. The type is owned by the context.

source

',3))]),e("details",nt,[e("summary",null,[t[147]||(t[147]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[148]||(t[148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[149]||(t[149]=l('
julia
Type(::Core.Type{Nothing}; context=context())

Creates a None type in the given context. The type is owned by the context.

source

',3))]),e("details",pt,[e("summary",null,[t[150]||(t[150]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}",href:"#Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[151]||(t[151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[152]||(t[152]=l(`
julia
Type(elements; context=context())
+Type(::Core.Type{<:Tuple{T...}}; context=context())

Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.

source

`,3))]),e("details",rt,[e("summary",null,[t[153]||(t[153]=e("a",{id:"Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T",href:"#Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[154]||(t[154]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[155]||(t[155]=l('
julia
Type(Complex{T}) where {T}

Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",ot,[e("summary",null,[t[156]||(t[156]=e("a",{id:"Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:*")],-1)),t[157]||(t[157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[158]||(t[158]=l('
julia
*(lhs, rhs)

Creates an affine mul expression with 'lhs' and 'rhs'.

source

',3))]),e("details",dt,[e("summary",null,[t[159]||(t[159]=e("a",{id:"Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:+")],-1)),t[160]||(t[160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[161]||(t[161]=l('
julia
+(lhs, rhs)

Creates an affine add expression with 'lhs' and 'rhs'.

source

',3))]),e("details",ct,[e("summary",null,[t[162]||(t[162]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[163]||(t[163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[164]||(t[164]=l('
julia
==(a, b)

Returns true if the two affine expressions are equal.

source

',3))]),e("details",ht,[e("summary",null,[t[165]||(t[165]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.AffineMap, Reactant.MLIR.IR.AffineMap}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.AffineMap, Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[166]||(t[166]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[167]||(t[167]=l('
julia
==(a, b)

Checks if two affine maps are equal.

source

',3))]),e("details",ut,[e("summary",null,[t[168]||(t[168]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[169]||(t[169]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[170]||(t[170]=l('
julia
==(a1, a2)

Checks if two attributes are equal.

source

',3))]),e("details",bt,[e("summary",null,[t[171]||(t[171]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[172]||(t[172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[173]||(t[173]=l('
julia
==(block, other)

Checks whether two blocks handles point to the same block. This does not perform deep comparison.

source

',3))]),e("details",gt,[e("summary",null,[t[174]||(t[174]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[175]||(t[175]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[176]||(t[176]=l('
julia
==(ident, other)

Checks whether two identifiers are the same.

source

',3))]),e("details",yt,[e("summary",null,[t[177]||(t[177]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[178]||(t[178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[179]||(t[179]=l('
julia
==(s1, s2)

Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

source

',3))]),e("details",mt,[e("summary",null,[t[180]||(t[180]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[181]||(t[181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[182]||(t[182]=l('
julia
==(region, other)

Checks whether two region handles point to the same region. This does not perform deep comparison.

source

',3))]),e("details",kt,[e("summary",null,[t[183]||(t[183]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[184]||(t[184]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l('
julia
==(t1, t2)

Checks if two types are equal.

source

',3))]),e("details",ft,[e("summary",null,[t[186]||(t[186]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[187]||(t[187]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[188]||(t[188]=l('
julia
==(typeID1, typeID2)

Checks if two type ids are equal.

source

',3))]),e("details",Rt,[e("summary",null,[t[189]||(t[189]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[190]||(t[190]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[191]||(t[191]=l('
julia
==(value1, value2)

Returns 1 if two values are equal, 0 otherwise.

source

',3))]),e("details",It,[e("summary",null,[t[192]||(t[192]=e("a",{id:"Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.cld")],-1)),t[193]||(t[193]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[194]||(t[194]=l('
julia
cld(lhs, rhs)

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

source

',3))]),e("details",jt,[e("summary",null,[t[195]||(t[195]=e("a",{id:"Base.copy-Tuple{Reactant.MLIR.IR.Operation}",href:"#Base.copy-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),t[196]||(t[196]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[197]||(t[197]=l('
julia
copy(op)

Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.

source

',3))]),e("details",Mt,[e("summary",null,[t[198]||(t[198]=e("a",{id:"Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.div")],-1)),t[199]||(t[199]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[200]||(t[200]=l(`
julia
div(lhs, rhs)
+÷(lhs, rhs)
+fld(lhs, rhs)

Creates an affine floordiv expression with 'lhs' and 'rhs'.

source

`,3))]),e("details",At,[e("summary",null,[t[201]||(t[201]=e("a",{id:"Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}",href:"#Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.fill")],-1)),t[202]||(t[202]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[203]||(t[203]=l('
julia
fill(attr, shapedType)

Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).

source

',3))]),e("details",Lt,[e("summary",null,[t[204]||(t[204]=e("a",{id:"Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.gcd")],-1)),t[205]||(t[205]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[206]||(t[206]=l('
julia
gcd(affineExpr)

Returns the greatest known integral divisor of this affine expression. The result is always positive.

source

',3))]),e("details",Et,[e("summary",null,[t[207]||(t[207]=e("a",{id:"Base.hash-Tuple{Reactant.MLIR.IR.TypeID}",href:"#Base.hash-Tuple{Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.hash")],-1)),t[208]||(t[208]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[209]||(t[209]=l('
julia
hash(typeID)

Returns the hash value of the type id.

source

',3))]),e("details",vt,[e("summary",null,[t[210]||(t[210]=e("a",{id:"Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}",href:"#Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.insert!")],-1)),t[211]||(t[211]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[212]||(t[212]=l('
julia
insert!(block, index, operation)

Takes an operation owned by the caller and inserts it as index to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.

source

',3))]),e("details",Tt,[e("summary",null,[t[213]||(t[213]=e("a",{id:"Base.insert!-Tuple{Reactant.MLIR.IR.Region, Any, Reactant.MLIR.IR.Block}",href:"#Base.insert!-Tuple{Reactant.MLIR.IR.Region, Any, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.insert!")],-1)),t[214]||(t[214]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[215]||(t[215]=l('
julia
insert!(region, index, block)

Takes a block owned by the caller and inserts it at index to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.

source

',3))]),e("details",Ct,[e("summary",null,[t[216]||(t[216]=e("a",{id:"Base.isempty-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.isempty-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.isempty")],-1)),t[217]||(t[217]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[218]||(t[218]=l('
julia
isempty(affineMap)

Checks whether the given affine map is an empty affine map.

source

',3))]),e("details",xt,[e("summary",null,[t[219]||(t[219]=e("a",{id:"Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.isperm")],-1)),t[220]||(t[220]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[221]||(t[221]=l('
julia
isperm(affineMap)

Checks whether the given affine map represents a symbol-less permutation map.

source

',3))]),e("details",Ft,[e("summary",null,[t[222]||(t[222]=e("a",{id:"Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.mod")],-1)),t[223]||(t[223]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l('
julia
mod(lhs, rhs)

Creates an affine mod expression with 'lhs' and 'rhs'.

source

',3))]),e("details",Pt,[e("summary",null,[t[225]||(t[225]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[226]||(t[226]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[227]||(t[227]=l('
julia
ndims(affineMap)

Returns the number of dimensions of the given affine map.

source

',3))]),e("details",Dt,[e("summary",null,[t[228]||(t[228]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[229]||(t[229]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[230]||(t[230]=l('
julia
ndims(set)

Returns the number of dimensions in the given set.

source

',3))]),e("details",Ot,[e("summary",null,[t[231]||(t[231]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.Type}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[232]||(t[232]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[233]||(t[233]=l('
julia
ndims(type)

Returns the rank of the given ranked shaped type.

source

',3))]),e("details",Bt,[e("summary",null,[t[234]||(t[234]=e("a",{id:"Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}",href:"#Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[235]||(t[235]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[236]||(t[236]=l('
julia
parse(passManager, pipeline)

Parse a textual MLIR pass pipeline and add it to the provided OpPassManager.

source

',3))]),e("details",Gt,[e("summary",null,[t[237]||(t[237]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Attribute}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Attribute}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[238]||(t[238]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[239]||(t[239]=l('
julia
parse(::Core.Type{Attribute}, str; context=context())

Parses an attribute. The attribute is owned by the context.

source

',3))]),e("details",zt,[e("summary",null,[t[240]||(t[240]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[241]||(t[241]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[242]||(t[242]=l('
julia
parse(::Type{Module}, module; context=context())

Parses a module from the string and transfers ownership to the caller.

source

',3))]),e("details",wt,[e("summary",null,[t[243]||(t[243]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[244]||(t[244]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[245]||(t[245]=l('
julia
parse(type; context=context())

Parses a type. The type is owned by the context.

source

',3))]),e("details",St,[e("summary",null,[t[246]||(t[246]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[247]||(t[247]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[248]||(t[248]=l('
julia
push!(block, operation)

Takes an operation owned by the caller and appends it to the block.

source

',3))]),e("details",Nt,[e("summary",null,[t[249]||(t[249]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[250]||(t[250]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[251]||(t[251]=l('
julia
push!(region, block)

Takes a block owned by the caller and appends it to the given region.

source

',3))]),e("details",Vt,[e("summary",null,[t[252]||(t[252]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[253]||(t[253]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[254]||(t[254]=l('
julia
push!(symboltable, operation)

Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.

source

',3))]),e("details",qt,[e("summary",null,[t[255]||(t[255]=e("a",{id:"Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}",href:"#Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}"},[e("span",{class:"jlbinding"},"Base.replace")],-1)),t[256]||(t[256]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[257]||(t[257]=l('
julia
mlirAffineMapReplace(affineMap, expression => replacement, numResultDims, numResultSyms)

Apply AffineExpr::replace(map) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.

source

',3))]),e("details",Ut,[e("summary",null,[t[258]||(t[258]=e("a",{id:"Base.replace-Tuple{Reactant.MLIR.IR.IntegerSet, Any, Any}",href:"#Base.replace-Tuple{Reactant.MLIR.IR.IntegerSet, Any, Any}"},[e("span",{class:"jlbinding"},"Base.replace")],-1)),t[259]||(t[259]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[260]||(t[260]=l('
julia
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

source

',3))]),e("details",Qt,[e("summary",null,[t[261]||(t[261]=e("a",{id:"Base.reshape-Tuple{Reactant.MLIR.IR.Attribute, Any}",href:"#Base.reshape-Tuple{Reactant.MLIR.IR.Attribute, Any}"},[e("span",{class:"jlbinding"},"Base.reshape")],-1)),t[262]||(t[262]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[263]||(t[263]=l('
julia
Base.reshape(attr, shapedType)

Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.

source

',3))]),e("details",Wt,[e("summary",null,[t[264]||(t[264]=e("a",{id:"Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),t[265]||(t[265]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[266]||(t[266]=l('
julia
size(type, i)

Returns the i-th dimension of the given ranked shaped type.

source

',3))]),e("details",Ht,[e("summary",null,[t[267]||(t[267]=e("a",{id:"Base.write-Tuple{String, Reactant.MLIR.IR.ExecutionEngine}",href:"#Base.write-Tuple{String, Reactant.MLIR.IR.ExecutionEngine}"},[e("span",{class:"jlbinding"},"Base.write")],-1)),t[268]||(t[268]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[269]||(t[269]=l('
julia
write(fileName, jit)

Dump as an object in fileName.

source

',3))]),e("details",Zt,[e("summary",null,[t[270]||(t[270]=e("a",{id:"Reactant.MLIR.IR.AffineDimensionExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.AffineDimensionExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineDimensionExpr")],-1)),t[271]||(t[271]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[272]||(t[272]=l('
julia
AffineDimensionExpr(position; context=context)

Creates an affine dimension expression with 'position' in the context.

source

',3))]),e("details",Jt,[e("summary",null,[t[273]||(t[273]=e("a",{id:"Reactant.MLIR.IR.BFloat16Type-Tuple{}",href:"#Reactant.MLIR.IR.BFloat16Type-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BFloat16Type")],-1)),t[274]||(t[274]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[275]||(t[275]=e("p",null,"BFloat16Type(; context=context())",-1)),t[276]||(t[276]=e("p",null,"Creates a bf16 type in the given context. The type is owned by the context.",-1)),t[277]||(t[277]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/IR/Type.jl#L157-L161",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Kt,[e("summary",null,[t[278]||(t[278]=e("a",{id:"Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantAffineMap")],-1)),t[279]||(t[279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[280]||(t[280]=l('
julia
ConstantAffineMap(val; context=context())

Creates a single constant result affine map in the context. The affine map is owned by the context.

source

',3))]),e("details",$t,[e("summary",null,[t[281]||(t[281]=e("a",{id:"Reactant.MLIR.IR.ConstantExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantExpr")],-1)),t[282]||(t[282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[283]||(t[283]=l('
julia
ConstantExpr(constant::Int; context=context())

Creates an affine constant expression with 'constant' in the context.

source

',3))]),e("details",Xt,[e("summary",null,[t[284]||(t[284]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[285]||(t[285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[286]||(t[286]=l('
julia
DenseElementsAttribute(array::AbstractArray)

Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.

source

',3))]),e("details",Yt,[e("summary",null,[t[287]||(t[287]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[288]||(t[288]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[289]||(t[289]=l('
julia
DenseElementsAttribute(array::AbstractArray{String})

Creates a dense elements attribute with the given shaped type from string elements.

source

',3))]),e("details",_t,[e("summary",null,[t[290]||(t[290]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[291]||(t[291]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[292]||(t[292]=l('
julia
DenseElementsAttribute(shapedType, elements)

Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.

source

',3))]),e("details",te,[e("summary",null,[t[293]||(t[293]=e("a",{id:"Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}",href:"#Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FlatSymbolRefAttribute")],-1)),t[294]||(t[294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[295]||(t[295]=l('
julia
FlatSymbolRefAttribute(ctx, symbol)

Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.

source

',3))]),e("details",ee,[e("summary",null,[t[296]||(t[296]=e("a",{id:"Reactant.MLIR.IR.Float8E4M3FN-Tuple{}",href:"#Reactant.MLIR.IR.Float8E4M3FN-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E4M3FN")],-1)),t[297]||(t[297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[298]||(t[298]=l('
julia
Float8E4M3FN(; context=context())

Creates an f8E4M3FN type in the given context. The type is owned by the context.

source

',3))]),e("details",se,[e("summary",null,[t[299]||(t[299]=e("a",{id:"Reactant.MLIR.IR.Float8E5M2-Tuple{}",href:"#Reactant.MLIR.IR.Float8E5M2-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E5M2")],-1)),t[300]||(t[300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[301]||(t[301]=l('
julia
Float8E5M2(; context=context())

Creates an f8E5M2 type in the given context. The type is owned by the context.

source

',3))]),e("details",ae,[e("summary",null,[t[302]||(t[302]=e("a",{id:"Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FunctionType")],-1)),t[303]||(t[303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[304]||(t[304]=l('
julia
FunctionType(inputs, results; context=context())

Creates a function type, mapping a list of input types to result types.

source

',3))]),e("details",ie,[e("summary",null,[t[305]||(t[305]=e("a",{id:"Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IdentityAffineMap")],-1)),t[306]||(t[306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[307]||(t[307]=l('
julia
IdentityAffineMap(ndims; context=context())

Creates an affine map with 'ndims' identity in the context. The affine map is owned by the context.

source

',3))]),e("details",le,[e("summary",null,[t[308]||(t[308]=e("a",{id:"Reactant.MLIR.IR.IndexType-Tuple{}",href:"#Reactant.MLIR.IR.IndexType-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IndexType")],-1)),t[309]||(t[309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[310]||(t[310]=l('
julia
IndexType(; context=context())

Creates an index type in the given context. The type is owned by the context.

source

',3))]),e("details",ne,[e("summary",null,[t[311]||(t[311]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[312]||(t[312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[313]||(t[313]=l('
julia
MemRefType(elementType, rank, shape, layout, memorySpace; location=Location(), check=false)

Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",pe,[e("summary",null,[t[314]||(t[314]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[315]||(t[315]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[316]||(t[316]=l('
julia
MemRefType(elementType, rank, shape, memorySpace; location=Location(), check=false)

Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",re,[e("summary",null,[t[317]||(t[317]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[318]||(t[318]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[319]||(t[319]=l('
julia
MemRefType(elementType, memorySpace)

Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",oe,[e("summary",null,[t[320]||(t[320]=e("a",{id:"Reactant.MLIR.IR.MinorIdentityAffineMap-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.MinorIdentityAffineMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MinorIdentityAffineMap")],-1)),t[321]||(t[321]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[322]||(t[322]=l('
julia
MinorIdentityAffineMap(ndims, nresults; context=context())

Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",de,[e("summary",null,[t[323]||(t[323]=e("a",{id:"Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueAttribute")],-1)),t[324]||(t[324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[325]||(t[325]=l('
julia
OpaqueAttribute(dialectNamespace, dataLength, data, type; context=context())

Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",ce,[e("summary",null,[t[326]||(t[326]=e("a",{id:"Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueType")],-1)),t[327]||(t[327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[328]||(t[328]=l('
julia
OpaqueType(dialectNamespace, typeData; context=context())

Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",he,[e("summary",null,[t[329]||(t[329]=e("a",{id:"Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PermutationAffineMap")],-1)),t[330]||(t[330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[331]||(t[331]=l('
julia
PermutationAffineMap(permutation; context=context())

Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0] is a valid permutation. [2,0] or [1,1,2] is an invalid invalid permutation). The affine map is owned by the context.

source

',3))]),e("details",ue,[e("summary",null,[t[332]||(t[332]=e("a",{id:"Reactant.MLIR.IR.SymbolExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.SymbolExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolExpr")],-1)),t[333]||(t[333]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[334]||(t[334]=l('
julia
SymbolExpr(position; context=context())

Creates an affine symbol expression with 'position' in the context.

source

',3))]),e("details",be,[e("summary",null,[t[335]||(t[335]=e("a",{id:"Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolRefAttribute")],-1)),t[336]||(t[336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[337]||(t[337]=l('
julia
SymbolRefAttribute(symbol, references; context=context())

Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.

source

',3))]),e("details",ge,[e("summary",null,[t[338]||(t[338]=e("a",{id:"Reactant.MLIR.IR.TensorType",href:"#Reactant.MLIR.IR.TensorType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.TensorType")],-1)),t[339]||(t[339]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[340]||(t[340]=l('
julia
TensorType(shape, elementType, encoding=Attribute(); location=Location(), check=false)

Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull to this parameter. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",ye,[e("summary",null,[t[341]||(t[341]=e("a",{id:"Reactant.MLIR.IR.TensorType-Tuple{Any}",href:"#Reactant.MLIR.IR.TensorType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.TensorType")],-1)),t[342]||(t[342]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[343]||(t[343]=l('
julia
TensorType(elementType)

Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",me,[e("summary",null,[t[344]||(t[344]=e("a",{id:"Reactant.MLIR.IR.UnitAttribute-Tuple{}",href:"#Reactant.MLIR.IR.UnitAttribute-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.UnitAttribute")],-1)),t[345]||(t[345]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[346]||(t[346]=l('
julia
UnitAttribute(; context=context())

Creates a unit attribute in the given context.

source

',3))]),e("details",ke,[e("summary",null,[t[347]||(t[347]=e("a",{id:"Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.VectorType")],-1)),t[348]||(t[348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[349]||(t[349]=l('
julia
VectorType(rank, shape, elementType; location=Location(), check=false)

Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context. If check=true, emits appropriate diagnostics on illegal arguments.

source

',3))]),e("details",fe,[e("summary",null,[t[350]||(t[350]=e("a",{id:"Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.add_owned_pass!")],-1)),t[351]||(t[351]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[352]||(t[352]=l('
julia
add_owned_pass!(opPassManager, pass)

Add a pass and transfer ownership to the provided OpPassManager. If the pass is not a generic operation pass or matching the type of the provided OpPassManager, a new OpPassManager is implicitly nested under the provided OpPassManager.

source

',3))]),e("details",Re,[e("summary",null,[t[353]||(t[353]=e("a",{id:"Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.PassManager, Any}",href:"#Reactant.MLIR.IR.add_owned_pass!-Tuple{Reactant.MLIR.IR.PassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.add_owned_pass!")],-1)),t[354]||(t[354]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[355]||(t[355]=l('
julia
add_owned_pass!(passManager, pass)

Add a pass and transfer ownership to the provided top-level PassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

source

',3))]),e("details",Ie,[e("summary",null,[t[356]||(t[356]=e("a",{id:"Reactant.MLIR.IR.add_pipeline!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.add_pipeline!-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.add_pipeline!")],-1)),t[357]||(t[357]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[358]||(t[358]=l('
julia
add_pipeline!(passManager, pipelineElements, callback, userData)

Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

',3))]),e("details",je,[e("summary",null,[t[359]||(t[359]=e("a",{id:"Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.affinemap")],-1)),t[360]||(t[360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[361]||(t[361]=l('
julia
affinemap(type)

Returns the affine map of the given MemRef type.

source

',3))]),e("details",Me,[e("summary",null,[t[362]||(t[362]=e("a",{id:"Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.argument")],-1)),t[363]||(t[363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[364]||(t[364]=l('
julia
argument(block, i)

Returns i-th argument of the block.

source

',3))]),e("details",Ae,[e("summary",null,[t[365]||(t[365]=e("a",{id:"Reactant.MLIR.IR.attr!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}",href:"#Reactant.MLIR.IR.attr!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr!")],-1)),t[366]||(t[366]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[367]||(t[367]=l('
julia
attr!(op, name, attr)

Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise.

source

',3))]),e("details",Le,[e("summary",null,[t[368]||(t[368]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[369]||(t[369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[370]||(t[370]=l('
julia
attr(op, name)

Returns an attribute attached to the operation given its name.

source

',3))]),e("details",Ee,[e("summary",null,[t[371]||(t[371]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[372]||(t[372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[373]||(t[373]=l('
julia
attr(op, i)

Return i-th attribute of the operation.

source

',3))]),e("details",ve,[e("summary",null,[t[374]||(t[374]=e("a",{id:"Reactant.MLIR.IR.bitwidth-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.bitwidth-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.bitwidth")],-1)),t[375]||(t[375]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[376]||(t[376]=l('
julia
bitwidth(type)

Returns the bitwidth of an integer type.

source

',3))]),e("details",Te,[e("summary",null,[t[377]||(t[377]=e("a",{id:"Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block")],-1)),t[378]||(t[378]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[379]||(t[379]=l('
julia
block(op)

Gets the block that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",Ce,[e("summary",null,[t[380]||(t[380]=e("a",{id:"Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_arg_num")],-1)),t[381]||(t[381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[382]||(t[382]=l('
julia
block_arg_num(value)

Returns the position of the value in the argument list of its block.

source

',3))]),e("details",xe,[e("summary",null,[t[383]||(t[383]=e("a",{id:"Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_owner")],-1)),t[384]||(t[384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[385]||(t[385]=l('
julia
block_owner(value)

Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.

source

',3))]),e("details",Fe,[e("summary",null,[t[386]||(t[386]=e("a",{id:"Reactant.MLIR.IR.body-Tuple{Any}",href:"#Reactant.MLIR.IR.body-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.body")],-1)),t[387]||(t[387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[388]||(t[388]=l('
julia
body(module)

Gets the body of the module, i.e. the only block it contains.

source

',3))]),e("details",Pe,[e("summary",null,[t[389]||(t[389]=e("a",{id:"Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.compose")],-1)),t[390]||(t[390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[391]||(t[391]=l('
julia
compose(affineExpr, affineMap)

Composes the given map with the given expression.

source

',3))]),e("details",De,[e("summary",null,[t[392]||(t[392]=e("a",{id:"Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.constraint")],-1)),t[393]||(t[393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[394]||(t[394]=l('
julia
mlirIntegerSetGetConstraint(set, i)

Returns i-th constraint of the set.

source

',3))]),e("details",Oe,[e("summary",null,[t[395]||(t[395]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[396]||(t[396]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[397]||(t[397]=l('
julia
context(affineExpr)

Gets the context that owns the affine expression.

source

',3))]),e("details",Be,[e("summary",null,[t[398]||(t[398]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[399]||(t[399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[400]||(t[400]=l('
julia
context(affineMap)

Gets the context that the given affine map was created with.

source

',3))]),e("details",Ge,[e("summary",null,[t[401]||(t[401]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[402]||(t[402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[403]||(t[403]=l('
julia
context(attribute)

Gets the context that an attribute was created with.

source

',3))]),e("details",ze,[e("summary",null,[t[404]||(t[404]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[405]||(t[405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[406]||(t[406]=l('
julia
context(ident)

Returns the context associated with this identifier

source

',3))]),e("details",we,[e("summary",null,[t[407]||(t[407]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[408]||(t[408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[409]||(t[409]=l('
julia
context(set)

Gets the context in which the given integer set lives.

source

',3))]),e("details",Se,[e("summary",null,[t[410]||(t[410]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[411]||(t[411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[412]||(t[412]=l('
julia
context(module)

Gets the context that a module was created with.

source

',3))]),e("details",Ne,[e("summary",null,[t[413]||(t[413]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[414]||(t[414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[415]||(t[415]=l('
julia
context(op)

Gets the context this operation is associated with.

source

',3))]),e("details",Ve,[e("summary",null,[t[416]||(t[416]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[417]||(t[417]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[418]||(t[418]=l('
julia
context(type)

Gets the context that a type was created with.

source

',3))]),e("details",qe,[e("summary",null,[t[419]||(t[419]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[420]||(t[420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[421]||(t[421]=l('
julia
data(attr)

Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Ue,[e("summary",null,[t[422]||(t[422]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[423]||(t[423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[424]||(t[424]=l('
julia
mlirOpaqueTypeGetData(type)

Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.

source

',3))]),e("details",Qe,[e("summary",null,[t[425]||(t[425]=e("a",{id:"Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.delete!")],-1)),t[426]||(t[426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[427]||(t[427]=l('
julia
delete!(symboltable, operation)

Removes the given operation from the symbol table and erases it.

source

',3))]),e("details",We,[e("summary",null,[t[428]||(t[428]=e("a",{id:"Reactant.MLIR.IR.dynsize-Tuple{}",href:"#Reactant.MLIR.IR.dynsize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.dynsize")],-1)),t[429]||(t[429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[430]||(t[430]=l('
julia
dynsize()

Returns the value indicating a dynamic size in a shaped type. Prefer isdynsize to direct comparisons with this value.

source

',3))]),e("details",He,[e("summary",null,[t[431]||(t[431]=e("a",{id:"Reactant.MLIR.IR.dynstrideoroffset-Tuple{}",href:"#Reactant.MLIR.IR.dynstrideoroffset-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.dynstrideoroffset")],-1)),t[432]||(t[432]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[433]||(t[433]=l('
julia
mlirShapedTypeGetDynamicStrideOrOffset()

Returns the value indicating a dynamic stride or offset in a shaped type. Prefer isdynstrideoroffset to direct comparisons with this value.

source

',3))]),e("details",Ze,[e("summary",null,[t[434]||(t[434]=e("a",{id:"Reactant.MLIR.IR.enable_ir_printing!-Tuple{Any}",href:"#Reactant.MLIR.IR.enable_ir_printing!-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.enable_ir_printing!")],-1)),t[435]||(t[435]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[436]||(t[436]=l('
julia
enable_ir_printing!(passManager)

Enable mlir-print-ir-after-all.

source

',3))]),e("details",Je,[e("summary",null,[t[437]||(t[437]=e("a",{id:"Reactant.MLIR.IR.enable_verifier!",href:"#Reactant.MLIR.IR.enable_verifier!"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.enable_verifier!")],-1)),t[438]||(t[438]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[439]||(t[439]=l('
julia
enable_verifier!(passManager, enable)

Enable / disable verify-each.

source

',3))]),e("details",Ke,[e("summary",null,[t[440]||(t[440]=e("a",{id:"Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.encoding")],-1)),t[441]||(t[441]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[442]||(t[442]=l('
julia
encoding(type)

Gets the 'encoding' attribute from the ranked tensor type, returning a nothing if none.

source

',3))]),e("details",$e,[e("summary",null,[t[443]||(t[443]=e("a",{id:"Reactant.MLIR.IR.failure-Tuple{}",href:"#Reactant.MLIR.IR.failure-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.failure")],-1)),t[444]||(t[444]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[445]||(t[445]=l('
julia
failure()

Creates a logical result representing a failure.

source

',3))]),e("details",Xe,[e("summary",null,[t[446]||(t[446]=e("a",{id:"Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}",href:"#Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_block")],-1)),t[447]||(t[447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[448]||(t[448]=l('
julia
first_block(region)

Gets the first block in the region.

source

',3))]),e("details",Ye,[e("summary",null,[t[449]||(t[449]=e("a",{id:"Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_op")],-1)),t[450]||(t[450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[451]||(t[451]=l('
julia
first_op(block)

Returns the first operation in the block or nothing if empty.

source

',3))]),e("details",_e,[e("summary",null,[t[452]||(t[452]=e("a",{id:"Reactant.MLIR.IR.first_use-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.first_use-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_use")],-1)),t[453]||(t[453]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[454]||(t[454]=l('
julia
first_use(value)

Returns an OpOperand representing the first use of the value, or a nothing if there are no uses.

source

',3))]),e("details",ts,[e("summary",null,[t[455]||(t[455]=e("a",{id:"Reactant.MLIR.IR.flatsymbol-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.flatsymbol-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.flatsymbol")],-1)),t[456]||(t[456]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[457]||(t[457]=l('
julia
flatsymbol(attr)

Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",es,[e("summary",null,[t[458]||(t[458]=e("a",{id:"Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasrank")],-1)),t[459]||(t[459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[460]||(t[460]=l('
julia
hasrank(type)

Checks whether the given shaped type is ranked.

source

',3))]),e("details",ss,[e("summary",null,[t[461]||(t[461]=e("a",{id:"Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasstaticshape")],-1)),t[462]||(t[462]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[463]||(t[463]=l('
julia
hasstaticshape(type)

Checks whether the given shaped type has a static shape.

source

',3))]),e("details",as,[e("summary",null,[t[464]||(t[464]=e("a",{id:"Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}",href:"#Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.input")],-1)),t[465]||(t[465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[466]||(t[466]=l('
julia
input(type, i)

Returns the i-th input type.

source

',3))]),e("details",is,[e("summary",null,[t[467]||(t[467]=e("a",{id:"Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_after!")],-1)),t[468]||(t[468]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[469]||(t[469]=l('
julia
insert_after!(block, reference, operation)

Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",ls,[e("summary",null,[t[470]||(t[470]=e("a",{id:"Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_after!")],-1)),t[471]||(t[471]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[472]||(t[472]=l('
julia
insert_after!(region, reference, block)

Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.

source

',3))]),e("details",ns,[e("summary",null,[t[473]||(t[473]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[474]||(t[474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[475]||(t[475]=l('
julia
insert_before!(block, reference, operation)

Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",ps,[e("summary",null,[t[476]||(t[476]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[477]||(t[477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[478]||(t[478]=l('
julia
insert_before!(region, reference, block)

Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.

source

',3))]),e("details",rs,[e("summary",null,[t[479]||(t[479]=e("a",{id:"Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_block_arg")],-1)),t[480]||(t[480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[481]||(t[481]=l('
julia
is_block_arg(value)

Returns 1 if the value is a block argument, 0 otherwise.

source

',3))]),e("details",os,[e("summary",null,[t[482]||(t[482]=e("a",{id:"Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_op_res")],-1)),t[483]||(t[483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[484]||(t[484]=l('
julia
is_op_res(value)

Returns 1 if the value is an operation result, 0 otherwise.

source

',3))]),e("details",ds,[e("summary",null,[t[485]||(t[485]=e("a",{id:"Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_pure_affine")],-1)),t[486]||(t[486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[487]||(t[487]=l('
julia
is_pure_affine(affineExpr)

Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

source

',3))]),e("details",cs,[e("summary",null,[t[488]||(t[488]=e("a",{id:"Reactant.MLIR.IR.is_registered-Tuple{Any}",href:"#Reactant.MLIR.IR.is_registered-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_registered")],-1)),t[489]||(t[489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[490]||(t[490]=l('
julia
is_registered(name; context=context())

Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.

source

',3))]),e("details",hs,[e("summary",null,[t[491]||(t[491]=e("a",{id:"Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_symbolic_or_constant")],-1)),t[492]||(t[492]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[493]||(t[493]=l('
julia
is_symbolic_or_constant(affineExpr)

Checks whether the given affine expression is made out of only symbols and constants.

source

',3))]),e("details",us,[e("summary",null,[t[494]||(t[494]=e("a",{id:"Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isadd")],-1)),t[495]||(t[495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[496]||(t[496]=l('
julia
isadd(affineExpr)

Checks whether the given affine expression is an add expression.

source

',3))]),e("details",bs,[e("summary",null,[t[497]||(t[497]=e("a",{id:"Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isaffinemap")],-1)),t[498]||(t[498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[499]||(t[499]=l('
julia
isaffinemap(attr)

Checks whether the given attribute is an affine map attribute.

source

',3))]),e("details",gs,[e("summary",null,[t[500]||(t[500]=e("a",{id:"Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isarray")],-1)),t[501]||(t[501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[502]||(t[502]=l('
julia
isarray(attr)

Checks whether the given attribute is an array attribute.

source

',3))]),e("details",ys,[e("summary",null,[t[503]||(t[503]=e("a",{id:"Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbf16")],-1)),t[504]||(t[504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[505]||(t[505]=l('
julia
isbf16(type)

Checks whether the given type is a bf16 type.

source

',3))]),e("details",ms,[e("summary",null,[t[506]||(t[506]=e("a",{id:"Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbinary")],-1)),t[507]||(t[507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[508]||(t[508]=l('
julia
isbinary(affineExpr)

Checks whether the given affine expression is binary.

source

',3))]),e("details",ks,[e("summary",null,[t[509]||(t[509]=e("a",{id:"Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbool")],-1)),t[510]||(t[510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[511]||(t[511]=l('
julia
isbool(attr)

Checks whether the given attribute is a bool attribute.

source

',3))]),e("details",fs,[e("summary",null,[t[512]||(t[512]=e("a",{id:"Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isceildiv")],-1)),t[513]||(t[513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[514]||(t[514]=l('
julia
isceildiv(affineExpr)

Checks whether the given affine expression is an ceildiv expression.

source

',3))]),e("details",Rs,[e("summary",null,[t[515]||(t[515]=e("a",{id:"Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iscomplex")],-1)),t[516]||(t[516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[517]||(t[517]=l('
julia
iscomplex(type)

Checks whether the given type is a Complex type.

source

',3))]),e("details",Is,[e("summary",null,[t[518]||(t[518]=e("a",{id:"Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstantexpr")],-1)),t[519]||(t[519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[520]||(t[520]=l('
julia
isconstantexpr(affineExpr)

Checks whether the given affine expression is a constant expression.

source

',3))]),e("details",js,[e("summary",null,[t[521]||(t[521]=e("a",{id:"Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstrainteq")],-1)),t[522]||(t[522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[523]||(t[523]=l('
julia
mlirIntegerSetIsConstraintEq(set, i)

Returns true of the i-th constraint of the set is an equality constraint, false otherwise.

source

',3))]),e("details",Ms,[e("summary",null,[t[524]||(t[524]=e("a",{id:"Reactant.MLIR.IR.isdenseelements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isdenseelements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdenseelements")],-1)),t[525]||(t[525]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[526]||(t[526]=l('
julia
isdenseelements(attr)

Checks whether the given attribute is a dense elements attribute.

source

',3))]),e("details",As,[e("summary",null,[t[527]||(t[527]=e("a",{id:"Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdict")],-1)),t[528]||(t[528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[529]||(t[529]=l('
julia
isdict(attr)

Checks whether the given attribute is a dictionary attribute.

source

',3))]),e("details",Ls,[e("summary",null,[t[530]||(t[530]=e("a",{id:"Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdimexpr")],-1)),t[531]||(t[531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[532]||(t[532]=l('
julia
isdimexpr(affineExpr)

Checks whether the given affine expression is a dimension expression.

source

',3))]),e("details",Es,[e("summary",null,[t[533]||(t[533]=e("a",{id:"Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdyndim")],-1)),t[534]||(t[534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[535]||(t[535]=l('
julia
isdyndim(type, i)

Checks wither the i-th dimension of the given shaped type is dynamic.

source

',3))]),e("details",vs,[e("summary",null,[t[536]||(t[536]=e("a",{id:"Reactant.MLIR.IR.isdynsize-Tuple{Any}",href:"#Reactant.MLIR.IR.isdynsize-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdynsize")],-1)),t[537]||(t[537]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[538]||(t[538]=l('
julia
isdynsize(size)

Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.

source

',3))]),e("details",Ts,[e("summary",null,[t[539]||(t[539]=e("a",{id:"Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}",href:"#Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdynstrideoroffset")],-1)),t[540]||(t[540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[541]||(t[541]=l('
julia
mlirShapedTypeIsDynamicStrideOrOffset(val)

Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.

source

',3))]),e("details",Cs,[e("summary",null,[t[542]||(t[542]=e("a",{id:"Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iselements")],-1)),t[543]||(t[543]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[544]||(t[544]=l('
julia
iselements(attr)

Checks whether the given attribute is an elements attribute.

source

',3))]),e("details",xs,[e("summary",null,[t[545]||(t[545]=e("a",{id:"Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isempty")],-1)),t[546]||(t[546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[547]||(t[547]=l('
julia
isempty(set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

source

',3))]),e("details",Fs,[e("summary",null,[t[548]||(t[548]=e("a",{id:"Reactant.MLIR.IR.isf16-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf16-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf16")],-1)),t[549]||(t[549]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[550]||(t[550]=l('
julia
isf16(type)

Checks whether the given type is an f16 type.

source

',3))]),e("details",Ps,[e("summary",null,[t[551]||(t[551]=e("a",{id:"Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf32")],-1)),t[552]||(t[552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[553]||(t[553]=l('
julia
isf32(type)

Checks whether the given type is an f32 type.

source

',3))]),e("details",Ds,[e("summary",null,[t[554]||(t[554]=e("a",{id:"Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf64")],-1)),t[555]||(t[555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[556]||(t[556]=l('
julia
isf64(type)

Checks whether the given type is an f64 type.

source

',3))]),e("details",Os,[e("summary",null,[t[557]||(t[557]=e("a",{id:"Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e4m3fn")],-1)),t[558]||(t[558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[559]||(t[559]=l('
julia
isf8e4m3fn(type)

Checks whether the given type is an f8E4M3FN type.

source

',3))]),e("details",Bs,[e("summary",null,[t[560]||(t[560]=e("a",{id:"Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e5m2")],-1)),t[561]||(t[561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[562]||(t[562]=l('
julia
isf8e5m2(type)

Checks whether the given type is an f8E5M2 type.

source

',3))]),e("details",Gs,[e("summary",null,[t[563]||(t[563]=e("a",{id:"Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfailure")],-1)),t[564]||(t[564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[565]||(t[565]=l('
julia
isfailure(res)

Checks if the given logical result represents a failure.

source

',3))]),e("details",zs,[e("summary",null,[t[566]||(t[566]=e("a",{id:"Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isflatsymbolref")],-1)),t[567]||(t[567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[568]||(t[568]=l('
julia
isflatsymbolref(attr)

Checks whether the given attribute is a flat symbol reference attribute.

source

',3))]),e("details",ws,[e("summary",null,[t[569]||(t[569]=e("a",{id:"Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloat")],-1)),t[570]||(t[570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[571]||(t[571]=l('
julia
isfloat(attr)

Checks whether the given attribute is a floating point attribute.

source

',3))]),e("details",Ss,[e("summary",null,[t[572]||(t[572]=e("a",{id:"Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloordiv")],-1)),t[573]||(t[573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[574]||(t[574]=l('
julia
isfloordiv(affineExpr)

Checks whether the given affine expression is an floordiv expression.

source

',3))]),e("details",Ns,[e("summary",null,[t[575]||(t[575]=e("a",{id:"Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunction")],-1)),t[576]||(t[576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[577]||(t[577]=l('
julia
isfunction(type)

Checks whether the given type is a function type.

source

',3))]),e("details",Vs,[e("summary",null,[t[578]||(t[578]=e("a",{id:"Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunctionofdimexpr")],-1)),t[579]||(t[579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[580]||(t[580]=l('
julia
isfunctionofdimexpr(affineExpr, position)

Checks whether the given affine expression involves AffineDimExpr 'position'.

source

',3))]),e("details",qs,[e("summary",null,[t[581]||(t[581]=e("a",{id:"Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isidentity")],-1)),t[582]||(t[582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[583]||(t[583]=l('
julia
isidentity(affineMap)

Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",Us,[e("summary",null,[t[584]||(t[584]=e("a",{id:"Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isindex")],-1)),t[585]||(t[585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[586]||(t[586]=l('
julia
isindex(type)

Checks whether the given type is an index type.

source

',3))]),e("details",Qs,[e("summary",null,[t[587]||(t[587]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[588]||(t[588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[589]||(t[589]=l('
julia
isinteger(attr)

Checks whether the given attribute is an integer attribute.

source

',3))]),e("details",Ws,[e("summary",null,[t[590]||(t[590]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[591]||(t[591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[592]||(t[592]=l('
julia
isinteger(type)

Checks whether the given type is an integer type.

source

',3))]),e("details",Hs,[e("summary",null,[t[593]||(t[593]=e("a",{id:"Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isintegerset")],-1)),t[594]||(t[594]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[595]||(t[595]=l('
julia
isintegerset(attr)

Checks whether the given attribute is an integer set attribute.

source

',3))]),e("details",Zs,[e("summary",null,[t[596]||(t[596]=e("a",{id:"Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismemref")],-1)),t[597]||(t[597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[598]||(t[598]=l('
julia
ismemref(type)

Checks whether the given type is a MemRef type.

source

',3))]),e("details",Js,[e("summary",null,[t[599]||(t[599]=e("a",{id:"Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isminoridentity")],-1)),t[600]||(t[600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[601]||(t[601]=l('
julia
isminoridentity(affineMap)

Checks whether the given affine map is a minor identity affine map.

source

',3))]),e("details",Ks,[e("summary",null,[t[602]||(t[602]=e("a",{id:"Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismod")],-1)),t[603]||(t[603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[604]||(t[604]=l('
julia
ismod(affineExpr)

Checks whether the given affine expression is an mod expression.

source

',3))]),e("details",$s,[e("summary",null,[t[605]||(t[605]=e("a",{id:"Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismul")],-1)),t[606]||(t[606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[607]||(t[607]=l('
julia
ismul(affineExpr)

Checks whether the given affine expression is an mul expression.

source

',3))]),e("details",Xs,[e("summary",null,[t[608]||(t[608]=e("a",{id:"Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismultipleof")],-1)),t[609]||(t[609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[610]||(t[610]=l('
julia
ismultipleof(affineExpr, factor)

Checks whether the given affine expression is a multiple of 'factor'.

source

',3))]),e("details",Ys,[e("summary",null,[t[611]||(t[611]=e("a",{id:"Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isnone")],-1)),t[612]||(t[612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[613]||(t[613]=l('
julia
mlirTypeIsANone(type)

Checks whether the given type is a None type.

source

',3))]),e("details",_s,[e("summary",null,[t[614]||(t[614]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[615]||(t[615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[616]||(t[616]=l('
julia
isopaque(attr)

Checks whether the given attribute is an opaque attribute.

source

',3))]),e("details",ta,[e("summary",null,[t[617]||(t[617]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[618]||(t[618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[619]||(t[619]=l('
julia
isopaque(type)

Checks whether the given type is an opaque type.

source

',3))]),e("details",ea,[e("summary",null,[t[620]||(t[620]=e("a",{id:"Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isprojperm")],-1)),t[621]||(t[621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[622]||(t[622]=l('
julia
isprojperm(affineMap)

Checks whether the given affine map represents a subset of a symbol-less permutation map.

source

',3))]),e("details",sa,[e("summary",null,[t[623]||(t[623]=e("a",{id:"Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isrankedtensor")],-1)),t[624]||(t[624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[625]||(t[625]=l('
julia
isrankedtensor(type)

Checks whether the given type is a ranked tensor type.

source

',3))]),e("details",aa,[e("summary",null,[t[626]||(t[626]=e("a",{id:"Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isshaped")],-1)),t[627]||(t[627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[628]||(t[628]=l('
julia
isshaped(type)

Checks whether the given type is a Shaped type.

source

',3))]),e("details",ia,[e("summary",null,[t[629]||(t[629]=e("a",{id:"Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issigned")],-1)),t[630]||(t[630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[631]||(t[631]=l('
julia
issigned(type)

Checks whether the given integer type is signed.

source

',3))]),e("details",la,[e("summary",null,[t[632]||(t[632]=e("a",{id:"Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issignless")],-1)),t[633]||(t[633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[634]||(t[634]=l('
julia
issignless(type)

Checks whether the given integer type is signless.

source

',3))]),e("details",na,[e("summary",null,[t[635]||(t[635]=e("a",{id:"Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issingleconstant")],-1)),t[636]||(t[636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[637]||(t[637]=l('
julia
issingleconstant(affineMap)

Checks whether the given affine map is a single result constant affine map.

source

',3))]),e("details",pa,[e("summary",null,[t[638]||(t[638]=e("a",{id:"Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issparseelements")],-1)),t[639]||(t[639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[640]||(t[640]=l('
julia
issparseelements(attr)

Checks whether the given attribute is a sparse elements attribute.

source

',3))]),e("details",ra,[e("summary",null,[t[641]||(t[641]=e("a",{id:"Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issplat")],-1)),t[642]||(t[642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[643]||(t[643]=l('
julia
issplat(attr)

Checks whether the given dense elements attribute contains a single replicated value (splat).

source

',3))]),e("details",oa,[e("summary",null,[t[644]||(t[644]=e("a",{id:"Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isstring")],-1)),t[645]||(t[645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[646]||(t[646]=l('
julia
isstring(attr)

Checks whether the given attribute is a string attribute.

source

',3))]),e("details",da,[e("summary",null,[t[647]||(t[647]=e("a",{id:"Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issuccess")],-1)),t[648]||(t[648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[649]||(t[649]=l('
julia
issuccess(res)

Checks if the given logical result represents a success.

source

',3))]),e("details",ca,[e("summary",null,[t[650]||(t[650]=e("a",{id:"Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolexpr")],-1)),t[651]||(t[651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[652]||(t[652]=l('
julia
issymbolexpr(affineExpr)

Checks whether the given affine expression is a symbol expression.

source

',3))]),e("details",ha,[e("summary",null,[t[653]||(t[653]=e("a",{id:"Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolref")],-1)),t[654]||(t[654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[655]||(t[655]=l('
julia
issymbolref(attr)

Checks whether the given attribute is a symbol reference attribute.

source

',3))]),e("details",ua,[e("summary",null,[t[656]||(t[656]=e("a",{id:"Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istensor")],-1)),t[657]||(t[657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[658]||(t[658]=l('
julia
istensor(type)

Checks whether the given type is a Tensor type.

source

',3))]),e("details",ba,[e("summary",null,[t[659]||(t[659]=e("a",{id:"Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istuple")],-1)),t[660]||(t[660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[661]||(t[661]=l('
julia
istuple(type)

Checks whether the given type is a tuple type.

source

',3))]),e("details",ga,[e("summary",null,[t[662]||(t[662]=e("a",{id:"Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istype")],-1)),t[663]||(t[663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[664]||(t[664]=l('
julia
istype(attr)

Checks whether the given attribute is a type attribute.

source

',3))]),e("details",ya,[e("summary",null,[t[665]||(t[665]=e("a",{id:"Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunit")],-1)),t[666]||(t[666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[667]||(t[667]=l('
julia
isunit(attr)

Checks whether the given attribute is a unit attribute.

source

',3))]),e("details",ma,[e("summary",null,[t[668]||(t[668]=e("a",{id:"Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedmemref")],-1)),t[669]||(t[669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[670]||(t[670]=l('
julia
mlirTypeIsAUnrankedMemRef(type)

Checks whether the given type is an UnrankedMemRef type.

source

',3))]),e("details",ka,[e("summary",null,[t[671]||(t[671]=e("a",{id:"Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedtensor")],-1)),t[672]||(t[672]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[673]||(t[673]=l('
julia
isunrankedtensor(type)

Checks whether the given type is an unranked tensor type.

source

',3))]),e("details",fa,[e("summary",null,[t[674]||(t[674]=e("a",{id:"Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunsigned")],-1)),t[675]||(t[675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[676]||(t[676]=l('
julia
isunsigned(type)

Checks whether the given integer type is unsigned.

source

',3))]),e("details",Ra,[e("summary",null,[t[677]||(t[677]=e("a",{id:"Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isvector")],-1)),t[678]||(t[678]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[679]||(t[679]=l('
julia
isvector(type)

Checks whether the given type is a Vector type.

source

',3))]),e("details",Ia,[e("summary",null,[t[680]||(t[680]=e("a",{id:"Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.layout")],-1)),t[681]||(t[681]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[682]||(t[682]=l('
julia
layout(type)

Returns the layout of the given MemRef type.

source

',3))]),e("details",ja,[e("summary",null,[t[683]||(t[683]=e("a",{id:"Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.leafref")],-1)),t[684]||(t[684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[685]||(t[685]=l('
julia
leafref(attr)

Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Ma,[e("summary",null,[t[686]||(t[686]=e("a",{id:"Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lhs")],-1)),t[687]||(t[687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[688]||(t[688]=l('
julia
lhs(affineExpr)

Returns the left hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",Aa,[e("summary",null,[t[689]||(t[689]=e("a",{id:"Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.location")],-1)),t[690]||(t[690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[691]||(t[691]=l('
julia
location(op)

Gets the location of the operation.

source

',3))]),e("details",La,[e("summary",null,[t[692]||(t[692]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[693]||(t[693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[694]||(t[694]=l('
julia
lookup(jit, name)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

source

',3))]),e("details",Ea,[e("summary",null,[t[695]||(t[695]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[696]||(t[696]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[697]||(t[697]=l('
julia
lookup(symboltable, name)

Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.

source

',3))]),e("details",va,[e("summary",null,[t[698]||(t[698]=e("a",{id:"Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.majorsubmap")],-1)),t[699]||(t[699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[700]||(t[700]=l('
julia
majorsubmap(affineMap, nresults)

Returns the affine map consisting of the most major nresults results. Returns the null AffineMap if the nresults is equal to zero. Returns the affineMap if nresults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",Ta,[e("summary",null,[t[701]||(t[701]=e("a",{id:"Reactant.MLIR.IR.memspace-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.memspace-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.memspace")],-1)),t[702]||(t[702]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[703]||(t[703]=l('
julia
mlirMemRefTypeGetMemorySpace(type)

Returns the memory space of the given MemRef type.

source

',3))]),e("details",Ca,[e("summary",null,[t[704]||(t[704]=e("a",{id:"Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.minorsubmap")],-1)),t[705]||(t[705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[706]||(t[706]=l('
julia
minorsubmap(affineMap, nresults)

Returns the affine map consisting of the most minor nresults results. Returns the null AffineMap if the nresults is equal to zero. Returns the affineMap if nresults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",xa,[e("summary",null,[t[707]||(t[707]=e("a",{id:"Reactant.MLIR.IR.move_after!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.move_after!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.move_after!")],-1)),t[708]||(t[708]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[709]||(t[709]=l('
julia
move_after!(op, other)

Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",Fa,[e("summary",null,[t[710]||(t[710]=e("a",{id:"Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.move_before!")],-1)),t[711]||(t[711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[712]||(t[712]=l('
julia
move_before!(op, other)

Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",Pa,[e("summary",null,[t[713]||(t[713]=e("a",{id:"Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.name")],-1)),t[714]||(t[714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[715]||(t[715]=l('
julia
name(op)

Gets the name of the operation as an identifier.

source

',3))]),e("details",Da,[e("summary",null,[t[716]||(t[716]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[717]||(t[717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[718]||(t[718]=l('
julia
mlirOpaqueAttrGetDialectNamespace(attr)

Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.

source

',3))]),e("details",Oa,[e("summary",null,[t[719]||(t[719]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[720]||(t[720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[721]||(t[721]=l('
julia
mlirOpaqueTypeGetDialectNamespace(type)

Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.

source

',3))]),e("details",Ba,[e("summary",null,[t[722]||(t[722]=e("a",{id:"Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nargs")],-1)),t[723]||(t[723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[724]||(t[724]=l('
julia
nargs(block)

Returns the number of arguments of the block.

source

',3))]),e("details",Ga,[e("summary",null,[t[725]||(t[725]=e("a",{id:"Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nattrs")],-1)),t[726]||(t[726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[727]||(t[727]=l('
julia
nattrs(op)

Returns the number of attributes attached to the operation.

source

',3))]),e("details",za,[e("summary",null,[t[728]||(t[728]=e("a",{id:"Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nconstraints")],-1)),t[729]||(t[729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[730]||(t[730]=l('
julia
nconstraints(set)

Returns the number of constraints (equalities + inequalities) in the given set.

source

',3))]),e("details",wa,[e("summary",null,[t[731]||(t[731]=e("a",{id:"Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nequalities")],-1)),t[732]||(t[732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[733]||(t[733]=l('
julia
nequalities(set)

Returns the number of equalities in the given set.

source

',3))]),e("details",Sa,[e("summary",null,[t[734]||(t[734]=e("a",{id:"Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.next")],-1)),t[735]||(t[735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[736]||(t[736]=l('
julia
next(block)

Returns the block immediately following the given block in its parent region or nothing if last.

source

',3))]),e("details",Na,[e("summary",null,[t[737]||(t[737]=e("a",{id:"Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.next")],-1)),t[738]||(t[738]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[739]||(t[739]=l('
julia
next(opOperand)

Returns an op operand representing the next use of the value, or nothing if there is no next use.

source

',3))]),e("details",Va,[e("summary",null,[t[740]||(t[740]=e("a",{id:"Reactant.MLIR.IR.ninequalities-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.ninequalities-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninequalities")],-1)),t[741]||(t[741]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[742]||(t[742]=l('
julia
ninequalities(set)

Returns the number of inequalities in the given set.

source

',3))]),e("details",qa,[e("summary",null,[t[743]||(t[743]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[744]||(t[744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[745]||(t[745]=l('
julia
ninputs(affineMap)

Returns the number of inputs (dimensions + symbols) of the given affine map.

source

',3))]),e("details",Ua,[e("summary",null,[t[746]||(t[746]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[747]||(t[747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[748]||(t[748]=l('
julia
ninputs(set)

Returns the number of inputs (dimensions + symbols) in the given set.

source

',3))]),e("details",Qa,[e("summary",null,[t[749]||(t[749]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[750]||(t[750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[751]||(t[751]=l('
julia
ninputs(type)

Returns the number of input types.

source

',3))]),e("details",Wa,[e("summary",null,[t[752]||(t[752]=e("a",{id:"Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nnestedrefs")],-1)),t[753]||(t[753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[754]||(t[754]=l('
julia
nnestedrefs(attr)

Returns the number of references nested in the given symbol reference attribute.

source

',3))]),e("details",Ha,[e("summary",null,[t[755]||(t[755]=e("a",{id:"Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.noperands")],-1)),t[756]||(t[756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[757]||(t[757]=l('
julia
noperands(op)

Returns the number of operands of the operation.

source

',3))]),e("details",Za,[e("summary",null,[t[758]||(t[758]=e("a",{id:"Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nregions")],-1)),t[759]||(t[759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[760]||(t[760]=l('
julia
nregions(op)

Returns the number of regions attached to the given operation.

source

',3))]),e("details",Ja,[e("summary",null,[t[761]||(t[761]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[762]||(t[762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[763]||(t[763]=l('
julia
nresults(affineMap)

Returns the number of results of the given affine map.

source

',3))]),e("details",Ka,[e("summary",null,[t[764]||(t[764]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[765]||(t[765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[766]||(t[766]=l('
julia
nresults(op)

Returns the number of results of the operation.

source

',3))]),e("details",$a,[e("summary",null,[t[767]||(t[767]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[768]||(t[768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[769]||(t[769]=l('
julia
nresults(type)

Returns the number of result types.

source

',3))]),e("details",Xa,[e("summary",null,[t[770]||(t[770]=e("a",{id:"Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsuccessors")],-1)),t[771]||(t[771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[772]||(t[772]=l('
julia
nsuccessors(op)

Returns the number of successor blocks of the operation.

source

',3))]),e("details",Ya,[e("summary",null,[t[773]||(t[773]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[774]||(t[774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[775]||(t[775]=l('
julia
nsymbols(affineMap)

Returns the number of symbols of the given affine map.

source

',3))]),e("details",_a,[e("summary",null,[t[776]||(t[776]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[777]||(t[777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[778]||(t[778]=l('
julia
nsymbols(set)

Returns the number of symbols in the given set.

source

',3))]),e("details",ti,[e("summary",null,[t[779]||(t[779]=e("a",{id:"Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_owner")],-1)),t[780]||(t[780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[781]||(t[781]=l('
julia
op_owner(value)

Returns an operation that produced this value as its result. Asserts if the value is not an op result.

source

',3))]),e("details",ei,[e("summary",null,[t[782]||(t[782]=e("a",{id:"Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_res_num")],-1)),t[783]||(t[783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[784]||(t[784]=l('
julia
op_res_num(value)

Returns the position of the value in the list of results of the operation that produced it.

source

',3))]),e("details",si,[e("summary",null,[t[785]||(t[785]=e("a",{id:"Reactant.MLIR.IR.operand",href:"#Reactant.MLIR.IR.operand"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operand")],-1)),t[786]||(t[786]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[787]||(t[787]=l('
julia
operand(op, i)

Returns i-th operand of the operation.

source

',3))]),e("details",ai,[e("summary",null,[t[788]||(t[788]=e("a",{id:"Reactant.MLIR.IR.operand!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}",href:"#Reactant.MLIR.IR.operand!-Tuple{Reactant.MLIR.IR.Operation, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operand!")],-1)),t[789]||(t[789]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[790]||(t[790]=l('
julia
operand!(op, i, value)

Sets the i-th operand of the operation.

source

',3))]),e("details",ii,[e("summary",null,[t[791]||(t[791]=e("a",{id:"Reactant.MLIR.IR.operandindex-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.operandindex-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operandindex")],-1)),t[792]||(t[792]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[793]||(t[793]=l('
julia
operandindex(opOperand)

Returns the operand number of an op operand.

source

',3))]),e("details",li,[e("summary",null,[t[794]||(t[794]=e("a",{id:"Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.owner")],-1)),t[795]||(t[795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[796]||(t[796]=l('
julia
owner(opOperand)

Returns the owner operation of an op operand.

source

',3))]),e("details",ni,[e("summary",null,[t[797]||(t[797]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[798]||(t[798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[799]||(t[799]=l('
julia
parent_op(block)

Returns the closest surrounding operation that contains this block.

source

',3))]),e("details",pi,[e("summary",null,[t[800]||(t[800]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[801]||(t[801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[802]||(t[802]=l('
julia
parent_op(op)

Gets the operation that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",ri,[e("summary",null,[t[803]||(t[803]=e("a",{id:"Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_region")],-1)),t[804]||(t[804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[805]||(t[805]=l('
julia
parent_region(block)

Returns the region that contains this block.

source

',3))]),e("details",oi,[e("summary",null,[t[806]||(t[806]=e("a",{id:"Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.position")],-1)),t[807]||(t[807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[808]||(t[808]=l('
julia
position(affineExpr)

Returns the position of the given affine dimension expression, affine symbol expression or ...

source

',3))]),e("details",di,[e("summary",null,[t[809]||(t[809]=e("a",{id:"Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.push_argument!")],-1)),t[810]||(t[810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[811]||(t[811]=l('
julia
push_argument!(block, type; location=Location())

Appends an argument of the specified type to the block. Returns the newly added argument.

source

',3))]),e("details",ci,[e("summary",null,[t[812]||(t[812]=e("a",{id:"Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.region")],-1)),t[813]||(t[813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[814]||(t[814]=l('
julia
region(op, i)

Returns i-th region attached to the operation.

source

',3))]),e("details",hi,[e("summary",null,[t[815]||(t[815]=e("a",{id:"Reactant.MLIR.IR.result",href:"#Reactant.MLIR.IR.result"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[816]||(t[816]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[817]||(t[817]=l('
julia
result(op, i)

Returns i-th result of the operation.

source

',3))]),e("details",ui,[e("summary",null,[t[818]||(t[818]=e("a",{id:"Reactant.MLIR.IR.result-2",href:"#Reactant.MLIR.IR.result-2"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[819]||(t[819]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[820]||(t[820]=l('
julia
result(type, i)

Returns the i-th result type.

source

',3))]),e("details",bi,[e("summary",null,[t[821]||(t[821]=e("a",{id:"Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[822]||(t[822]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[823]||(t[823]=l('
julia
result(affineMap, pos)

Returns the result at the given position.

source

',3))]),e("details",gi,[e("summary",null,[t[824]||(t[824]=e("a",{id:"Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[825]||(t[825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[826]||(t[826]=l('
julia
result(affineMap)

Returns the constant result of the given affine map. The function asserts that the map has a single constant result.

source

',3))]),e("details",yi,[e("summary",null,[t[827]||(t[827]=e("a",{id:"Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rhs")],-1)),t[828]||(t[828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[829]||(t[829]=l('
julia
rhs(affineExpr)

Returns the right hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",mi,[e("summary",null,[t[830]||(t[830]=e("a",{id:"Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmattr!")],-1)),t[831]||(t[831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[832]||(t[832]=l('
julia
rmattr!(op, name)

Removes an attribute by name. Returns false if the attribute was not found and true if removed.

source

',3))]),e("details",ki,[e("summary",null,[t[833]||(t[833]=e("a",{id:"Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmfromparent!")],-1)),t[834]||(t[834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[835]||(t[835]=l('
julia
rmfromparent!(op)

Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.

source

',3))]),e("details",fi,[e("summary",null,[t[836]||(t[836]=e("a",{id:"Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rootref")],-1)),t[837]||(t[837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[838]||(t[838]=l('
julia
rootref(attr)

Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Ri,[e("summary",null,[t[839]||(t[839]=e("a",{id:"Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.run!")],-1)),t[840]||(t[840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[841]||(t[841]=l('
julia
run!(passManager, module)

Run the provided passManager on the given module.

source

',3))]),e("details",Ii,[e("summary",null,[t[842]||(t[842]=e("a",{id:"Reactant.MLIR.IR.submap-Tuple{Reactant.MLIR.IR.AffineMap, Vector{Int64}}",href:"#Reactant.MLIR.IR.submap-Tuple{Reactant.MLIR.IR.AffineMap, Vector{Int64}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.submap")],-1)),t[843]||(t[843]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[844]||(t[844]=l('
julia
submap(affineMap, positions)

Returns the affine map consisting of the positions subset.

source

',3))]),e("details",ji,[e("summary",null,[t[845]||(t[845]=e("a",{id:"Reactant.MLIR.IR.success-Tuple{}",href:"#Reactant.MLIR.IR.success-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.success")],-1)),t[846]||(t[846]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[847]||(t[847]=l('
julia
success()

Creates a logical result representing a success.

source

',3))]),e("details",Mi,[e("summary",null,[t[848]||(t[848]=e("a",{id:"Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.successor")],-1)),t[849]||(t[849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[850]||(t[850]=l('
julia
successor(op, i)

Returns i-th successor of the operation.

source

',3))]),e("details",Ai,[e("summary",null,[t[851]||(t[851]=e("a",{id:"Reactant.MLIR.IR.terminator-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.terminator-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.terminator")],-1)),t[852]||(t[852]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[853]||(t[853]=l('
julia
terminator(block)

Returns the terminator operation in the block or nothing if no terminator.

source

',3))]),e("details",Li,[e("summary",null,[t[854]||(t[854]=e("a",{id:"Reactant.MLIR.IR.type!-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.type!-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type!")],-1)),t[855]||(t[855]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[856]||(t[856]=l('
julia
set_type!(value, type)

Sets the type of the block argument to the given type.

source

',3))]),e("details",Ei,[e("summary",null,[t[857]||(t[857]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[858]||(t[858]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[859]||(t[859]=l('
julia
type(attribute)

Gets the type of this attribute.

source

',3))]),e("details",vi,[e("summary",null,[t[860]||(t[860]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[861]||(t[861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[862]||(t[862]=l('
julia
type(value)

Returns the type of the value.

source

',3))]),e("details",Ti,[e("summary",null,[t[863]||(t[863]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[864]||(t[864]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[865]||(t[865]=l('
julia
typeid(attribute)

Gets the type id of the attribute.

source

',3))]),e("details",Ci,[e("summary",null,[t[866]||(t[866]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[867]||(t[867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[868]||(t[868]=l('
julia
typeid(op)

Gets the type id of the operation. Returns null if the operation does not have a registered operation description.

source

',3))]),e("details",xi,[e("summary",null,[t[869]||(t[869]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[870]||(t[870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[871]||(t[871]=l('
julia
typeid(type)

Gets the type ID of the type.

source

',3))]),e("details",Fi,[e("summary",null,[t[872]||(t[872]=e("a",{id:"Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.value")],-1)),t[873]||(t[873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[874]||(t[874]=l('
julia
value(affineExpr)

Returns the value of the given affine constant expression.

source

',3))]),e("details",Pi,[e("summary",null,[t[875]||(t[875]=e("a",{id:"Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verify")],-1)),t[876]||(t[876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[877]||(t[877]=l('
julia
verify(op)

Verify the operation and return true if it passes, false if it fails.

source

',3))]),e("details",Di,[e("summary",null,[t[878]||(t[878]=e("a",{id:"Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verifyall")],-1)),t[879]||(t[879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[880]||(t[880]=l('
julia
verifyall(operation; debug=false)

Prints the operations which could not be verified.

source

',3))]),e("details",Oi,[e("summary",null,[t[881]||(t[881]=e("a",{id:"Reactant.MLIR.IR.@affinemap-Tuple{Any}",href:"#Reactant.MLIR.IR.@affinemap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.@affinemap")],-1)),t[882]||(t[882]=s()),i(a,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),t[883]||(t[883]=l(`
julia
@affinemap (d1, d2, d3, ...)[s1, s2, ...] -> (d0 + d1, ...)

Returns an affine map from the provided Julia expression. On the right hand side are allowed the following function calls:

The rhs can only contains dimensions and symbols present on the left hand side or integer literals.

julia
julia> using Reactant.MLIR: IR
+
+julia> IR.context!(IR.Context()) do
+           IR.@affinemap (d1, d2)[s0] -> (d1 + s0, d2 % 10)
+       end
+MLIR.IR.AffineMap(#= (d0, d1)[s0] -> (d0 + s0, d1 mod 10) =#)

source

`,6))]),t[3184]||(t[3184]=e("h1",{id:"MLIR-C-API",tabindex:"-1"},[s("MLIR C API "),e("a",{class:"header-anchor",href:"#MLIR-C-API","aria-label":'Permalink to "MLIR C API {#MLIR-C-API}"'},"​")],-1)),e("details",Bi,[e("summary",null,[t[884]||(t[884]=e("a",{id:"Reactant.MLIR.API.LLVMAttributeRef",href:"#Reactant.MLIR.API.LLVMAttributeRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMAttributeRef")],-1)),t[885]||(t[885]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[886]||(t[886]=e("p",null,"Used to represent an attributes.",-1)),t[887]||(t[887]=e("p",null,[e("strong",null,"See also")],-1)),t[888]||(t[888]=e("p",null,"llvm::Attribute",-1)),t[889]||(t[889]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9761-L9766",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Gi,[e("summary",null,[t[890]||(t[890]=e("a",{id:"Reactant.MLIR.API.LLVMBasicBlockRef",href:"#Reactant.MLIR.API.LLVMBasicBlockRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBasicBlockRef")],-1)),t[891]||(t[891]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[892]||(t[892]=e("p",null,"Represents a basic block of instructions in LLVM IR.",-1)),t[893]||(t[893]=e("p",null,"This models llvm::BasicBlock.",-1)),t[894]||(t[894]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9674-L9678",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",zi,[e("summary",null,[t[895]||(t[895]=e("a",{id:"Reactant.MLIR.API.LLVMBinaryRef",href:"#Reactant.MLIR.API.LLVMBinaryRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBinaryRef")],-1)),t[896]||(t[896]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[897]||(t[897]=e("p",null,[e("strong",null,"See also")],-1)),t[898]||(t[898]=e("p",null,"llvm::object::Binary",-1)),t[899]||(t[899]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9803-L9806",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",wi,[e("summary",null,[t[900]||(t[900]=e("a",{id:"Reactant.MLIR.API.LLVMBool",href:"#Reactant.MLIR.API.LLVMBool"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBool")],-1)),t[901]||(t[901]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[902]||(t[902]=e("p",null,[e("code",null,"LLVMCSupportTypes Types and Enumerations")],-1)),t[903]||(t[903]=e("p",null,"@{",-1)),t[904]||(t[904]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9619-L9623",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Si,[e("summary",null,[t[905]||(t[905]=e("a",{id:"Reactant.MLIR.API.LLVMBuilderRef",href:"#Reactant.MLIR.API.LLVMBuilderRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMBuilderRef")],-1)),t[906]||(t[906]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[907]||(t[907]=e("p",null,"Represents an LLVM basic block builder.",-1)),t[908]||(t[908]=e("p",null,"This models llvm::IRBuilder.",-1)),t[909]||(t[909]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9710-L9714",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ni,[e("summary",null,[t[910]||(t[910]=e("a",{id:"Reactant.MLIR.API.LLVMComdatRef",href:"#Reactant.MLIR.API.LLVMComdatRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMComdatRef")],-1)),t[911]||(t[911]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[912]||(t[912]=e("p",null,[e("strong",null,"See also")],-1)),t[913]||(t[913]=e("p",null,"llvm::Comdat",-1)),t[914]||(t[914]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9779-L9782",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Vi,[e("summary",null,[t[915]||(t[915]=e("a",{id:"Reactant.MLIR.API.LLVMContextRef",href:"#Reactant.MLIR.API.LLVMContextRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMContextRef")],-1)),t[916]||(t[916]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[917]||(t[917]=e("p",null,"The top-level container for all LLVM global data. See the LLVMContext class.",-1)),t[918]||(t[918]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9638-L9640",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",qi,[e("summary",null,[t[919]||(t[919]=e("a",{id:"Reactant.MLIR.API.LLVMDIBuilderRef",href:"#Reactant.MLIR.API.LLVMDIBuilderRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMDIBuilderRef")],-1)),t[920]||(t[920]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[921]||(t[921]=e("p",null,"Represents an LLVM debug info builder.",-1)),t[922]||(t[922]=e("p",null,"This models llvm::DIBuilder.",-1)),t[923]||(t[923]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9719-L9723",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ui,[e("summary",null,[t[924]||(t[924]=e("a",{id:"Reactant.MLIR.API.LLVMDbgRecordRef",href:"#Reactant.MLIR.API.LLVMDbgRecordRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMDbgRecordRef")],-1)),t[925]||(t[925]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[926]||(t[926]=e("p",null,[e("strong",null,"See also")],-1)),t[927]||(t[927]=e("p",null,"llvm::DbgRecord",-1)),t[928]||(t[928]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9811-L9814",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Qi,[e("summary",null,[t[929]||(t[929]=e("a",{id:"Reactant.MLIR.API.LLVMDiagnosticInfoRef",href:"#Reactant.MLIR.API.LLVMDiagnosticInfoRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMDiagnosticInfoRef")],-1)),t[930]||(t[930]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[931]||(t[931]=e("p",null,[e("strong",null,"See also")],-1)),t[932]||(t[932]=e("p",null,"llvm::DiagnosticInfo",-1)),t[933]||(t[933]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9771-L9774",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Wi,[e("summary",null,[t[934]||(t[934]=e("a",{id:"Reactant.MLIR.API.LLVMJITEventListenerRef",href:"#Reactant.MLIR.API.LLVMJITEventListenerRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMJITEventListenerRef")],-1)),t[935]||(t[935]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[936]||(t[936]=e("p",null,[e("strong",null,"See also")],-1)),t[937]||(t[937]=e("p",null,"llvm::JITEventListener",-1)),t[938]||(t[938]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9795-L9798",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Hi,[e("summary",null,[t[939]||(t[939]=e("a",{id:"Reactant.MLIR.API.LLVMMemoryBufferRef",href:"#Reactant.MLIR.API.LLVMMemoryBufferRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMMemoryBufferRef")],-1)),t[940]||(t[940]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[941]||(t[941]=e("p",null,"Used to pass regions of memory through LLVM interfaces.",-1)),t[942]||(t[942]=e("p",null,[e("strong",null,"See also")],-1)),t[943]||(t[943]=e("p",null,"llvm::MemoryBuffer",-1)),t[944]||(t[944]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9628-L9633",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Zi,[e("summary",null,[t[945]||(t[945]=e("a",{id:"Reactant.MLIR.API.LLVMMetadataRef",href:"#Reactant.MLIR.API.LLVMMetadataRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMMetadataRef")],-1)),t[946]||(t[946]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[947]||(t[947]=e("p",null,"Represents an LLVM Metadata.",-1)),t[948]||(t[948]=e("p",null,"This models llvm::Metadata.",-1)),t[949]||(t[949]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9683-L9687",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ji,[e("summary",null,[t[950]||(t[950]=e("a",{id:"Reactant.MLIR.API.LLVMModuleFlagEntry",href:"#Reactant.MLIR.API.LLVMModuleFlagEntry"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMModuleFlagEntry")],-1)),t[951]||(t[951]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[952]||(t[952]=e("p",null,[e("strong",null,"See also")],-1)),t[953]||(t[953]=e("p",null,"llvm::Module::ModuleFlagEntry",-1)),t[954]||(t[954]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9787-L9790",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Ki,[e("summary",null,[t[955]||(t[955]=e("a",{id:"Reactant.MLIR.API.LLVMModuleProviderRef",href:"#Reactant.MLIR.API.LLVMModuleProviderRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMModuleProviderRef")],-1)),t[956]||(t[956]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[957]||(t[957]=e("p",null,"Interface used to provide a module to JIT or interpreter. This is now just a synonym for llvm::Module, but we have to keep using the different type to keep binary compatibility.",-1)),t[958]||(t[958]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9728-L9730",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",$i,[e("summary",null,[t[959]||(t[959]=e("a",{id:"Reactant.MLIR.API.LLVMModuleRef",href:"#Reactant.MLIR.API.LLVMModuleRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMModuleRef")],-1)),t[960]||(t[960]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[961]||(t[961]=e("p",null,"The top-level container for all other LLVM Intermediate Representation (IR) objects.",-1)),t[962]||(t[962]=e("p",null,[e("strong",null,"See also")],-1)),t[963]||(t[963]=e("p",null,"llvm::Module",-1)),t[964]||(t[964]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9645-L9650",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Xi,[e("summary",null,[t[965]||(t[965]=e("a",{id:"Reactant.MLIR.API.LLVMNamedMDNodeRef",href:"#Reactant.MLIR.API.LLVMNamedMDNodeRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMNamedMDNodeRef")],-1)),t[966]||(t[966]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[967]||(t[967]=e("p",null,"Represents an LLVM Named Metadata Node.",-1)),t[968]||(t[968]=e("p",null,"This models llvm::NamedMDNode.",-1)),t[969]||(t[969]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9692-L9696",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Yi,[e("summary",null,[t[970]||(t[970]=e("a",{id:"Reactant.MLIR.API.LLVMOperandBundleRef",href:"#Reactant.MLIR.API.LLVMOperandBundleRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMOperandBundleRef")],-1)),t[971]||(t[971]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[972]||(t[972]=e("p",null,[e("strong",null,"See also")],-1)),t[973]||(t[973]=e("p",null,"llvm::OperandBundleDef",-1)),t[974]||(t[974]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9753-L9756",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",_i,[e("summary",null,[t[975]||(t[975]=e("a",{id:"Reactant.MLIR.API.LLVMPassManagerRef",href:"#Reactant.MLIR.API.LLVMPassManagerRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMPassManagerRef")],-1)),t[976]||(t[976]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[977]||(t[977]=e("p",null,[e("strong",null,"See also")],-1)),t[978]||(t[978]=e("p",null,"llvm::PassManagerBase",-1)),t[979]||(t[979]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9735-L9738",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",tl,[e("summary",null,[t[980]||(t[980]=e("a",{id:"Reactant.MLIR.API.LLVMTypeRef",href:"#Reactant.MLIR.API.LLVMTypeRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMTypeRef")],-1)),t[981]||(t[981]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[982]||(t[982]=e("p",null,[s("Each value in the LLVM IR has a type, an "),e("a",{href:"/Reactant.jl/previews/PR363/api/mlirc#Reactant.MLIR.API.LLVMTypeRef"},[e("code",null,"LLVMTypeRef")]),s(".")],-1)),t[983]||(t[983]=e("p",null,[e("strong",null,"See also")],-1)),t[984]||(t[984]=e("p",null,"llvm::Type",-1)),t[985]||(t[985]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9655-L9660",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",el,[e("summary",null,[t[986]||(t[986]=e("a",{id:"Reactant.MLIR.API.LLVMUseRef",href:"#Reactant.MLIR.API.LLVMUseRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMUseRef")],-1)),t[987]||(t[987]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[988]||(t[988]=e("p",null,"Used to get the users and usees of a Value.",-1)),t[989]||(t[989]=e("p",null,[e("strong",null,"See also")],-1)),t[990]||(t[990]=e("p",null,"llvm::Use",-1)),t[991]||(t[991]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9743-L9748",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",sl,[e("summary",null,[t[992]||(t[992]=e("a",{id:"Reactant.MLIR.API.LLVMValueMetadataEntry",href:"#Reactant.MLIR.API.LLVMValueMetadataEntry"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMValueMetadataEntry")],-1)),t[993]||(t[993]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[994]||(t[994]=e("p",null,"Represents an entry in a Global Object's metadata attachments.",-1)),t[995]||(t[995]=e("p",null,"This models std::pair",-1)),t[996]||(t[996]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9701-L9705",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",al,[e("summary",null,[t[997]||(t[997]=e("a",{id:"Reactant.MLIR.API.LLVMValueRef",href:"#Reactant.MLIR.API.LLVMValueRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMValueRef")],-1)),t[998]||(t[998]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[999]||(t[999]=e("p",null,"Represents an individual value in LLVM IR.",-1)),t[1e3]||(t[1e3]=e("p",null,"This models llvm::Value.",-1)),t[1001]||(t[1001]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9665-L9669",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",il,[e("summary",null,[t[1002]||(t[1002]=e("a",{id:"Reactant.MLIR.API.MlirDiagnostic",href:"#Reactant.MLIR.API.MlirDiagnostic"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnostic")],-1)),t[1003]||(t[1003]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1004]||(t[1004]=l('
julia
MlirDiagnostic

An opaque reference to a diagnostic, always owned by the diagnostics engine (context). Must not be stored outside of the diagnostic handler.

source

',3))]),e("details",ll,[e("summary",null,[t[1005]||(t[1005]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandler",href:"#Reactant.MLIR.API.MlirDiagnosticHandler"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandler")],-1)),t[1006]||(t[1006]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1007]||(t[1007]=e("p",null,[s("Diagnostic handler type. Accepts a reference to a diagnostic, which is only guaranteed to be live during the call. The handler is passed the "),e("code",null,"userData"),s(" that was provided when the handler was attached to a context. If the handler processed the diagnostic completely, it is expected to return success. Otherwise, it is expected to return failure to indicate that other handlers should attempt to process the diagnostic.")],-1)),t[1008]||(t[1008]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6718-L6720",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",nl,[e("summary",null,[t[1009]||(t[1009]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandlerID",href:"#Reactant.MLIR.API.MlirDiagnosticHandlerID"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandlerID")],-1)),t[1010]||(t[1010]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1011]||(t[1011]=e("p",null,"Opaque identifier of a diagnostic handler, useful to detach a handler.",-1)),t[1012]||(t[1012]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6712-L6714",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",pl,[e("summary",null,[t[1013]||(t[1013]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticSeverity",href:"#Reactant.MLIR.API.MlirDiagnosticSeverity"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticSeverity")],-1)),t[1014]||(t[1014]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1015]||(t[1015]=l('
julia
MlirDiagnosticSeverity

Severity of a diagnostic.

source

',3))]),e("details",rl,[e("summary",null,[t[1016]||(t[1016]=e("a",{id:"Reactant.MLIR.API.MlirExternalPassCallbacks",href:"#Reactant.MLIR.API.MlirExternalPassCallbacks"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirExternalPassCallbacks")],-1)),t[1017]||(t[1017]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1018]||(t[1018]=l('
julia
MlirExternalPassCallbacks

Structure of external MlirPass callbacks. All callbacks are required to be set unless otherwise specified.

FieldNote
constructThis callback is called from the pass is created. This is analogous to a C++ pass constructor.
destructThis callback is called when the pass is destroyed This is analogous to a C++ pass destructor.
initializeThis callback is optional. The callback is called before the pass is run, allowing a chance to initialize any complex state necessary for running the pass. See Pass::initialize(MLIRContext *).
cloneThis callback is called when the pass is cloned. See Pass::clonePass().
runThis callback is called when the pass is run. See Pass::runOnOperation().

source

',4))]),e("details",ol,[e("summary",null,[t[1019]||(t[1019]=e("a",{id:"Reactant.MLIR.API.MlirLlvmThreadPool",href:"#Reactant.MLIR.API.MlirLlvmThreadPool"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirLlvmThreadPool")],-1)),t[1020]||(t[1020]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1021]||(t[1021]=l('
julia
MlirLlvmThreadPool

Re-export llvm::ThreadPool so as to avoid including the LLVM C API directly.

source

',3))]),e("details",dl,[e("summary",null,[t[1022]||(t[1022]=e("a",{id:"Reactant.MLIR.API.MlirLogicalResult",href:"#Reactant.MLIR.API.MlirLogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirLogicalResult")],-1)),t[1023]||(t[1023]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1024]||(t[1024]=l('
julia
MlirLogicalResult

A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of MlirLogicalResult must only be inspected using the associated functions.

source

',3))]),e("details",cl,[e("summary",null,[t[1025]||(t[1025]=e("a",{id:"Reactant.MLIR.API.MlirNamedAttribute",href:"#Reactant.MLIR.API.MlirNamedAttribute"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirNamedAttribute")],-1)),t[1026]||(t[1026]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1027]||(t[1027]=l('
julia
MlirNamedAttribute

Named MLIR attribute.

A named attribute is essentially a (name, attribute) pair where the name is a string.

source

',4))]),e("details",hl,[e("summary",null,[t[1028]||(t[1028]=e("a",{id:"Reactant.MLIR.API.MlirOperationState",href:"#Reactant.MLIR.API.MlirOperationState"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationState")],-1)),t[1029]||(t[1029]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1030]||(t[1030]=l('
julia
MlirOperationState

An auxiliary class for constructing operations.

This class contains all the information necessary to construct the operation. It owns the MlirRegions it has pointers to and does not own anything else. By default, the state can be constructed from a name and location, the latter being also used to access the context, and has no other components. These components can be added progressively until the operation is constructed. Users are not expected to rely on the internals of this class and should use mlirOperationState* functions instead.

source

',4))]),e("details",ul,[e("summary",null,[t[1031]||(t[1031]=e("a",{id:"Reactant.MLIR.API.MlirOperationWalkCallback",href:"#Reactant.MLIR.API.MlirOperationWalkCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationWalkCallback")],-1)),t[1032]||(t[1032]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1033]||(t[1033]=e("p",null,[s("Operation walker type. The handler is passed an (opaque) reference to an operation and a pointer to a "),e("code",null,"userData"),s(".")],-1)),t[1034]||(t[1034]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L1495-L1497",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",bl,[e("summary",null,[t[1035]||(t[1035]=e("a",{id:"Reactant.MLIR.API.MlirShapedTypeComponentsCallback",href:"#Reactant.MLIR.API.MlirShapedTypeComponentsCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirShapedTypeComponentsCallback")],-1)),t[1036]||(t[1036]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1037]||(t[1037]=e("p",null,"These callbacks are used to return multiple shaped type components from functions while transferring ownership to the caller. The first argument is the has rank boolean followed by the the rank and a pointer to the shape (if applicable). The next argument is the element type, then the attribute. The last argument is an opaque pointer forwarded to the callback by the caller. This callback will be called potentially multiple times for each shaped type components.",-1)),t[1038]||(t[1038]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9100-L9102",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",gl,[e("summary",null,[t[1039]||(t[1039]=e("a",{id:"Reactant.MLIR.API.MlirSparseTensorLevelType",href:"#Reactant.MLIR.API.MlirSparseTensorLevelType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirSparseTensorLevelType")],-1)),t[1040]||(t[1040]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1041]||(t[1041]=e("p",null,"Dimension level types (and properties) that define sparse tensors. See the documentation in SparseTensorAttrDefs.td for their meaning.",-1)),t[1042]||(t[1042]=e("p",null,"These correspond to SparseTensorEncodingAttr::LevelType in the C++ API. If updating, keep them in sync and update the static_assert in the impl file.",-1)),t[1043]||(t[1043]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L8452-L8456",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",yl,[e("summary",null,[t[1044]||(t[1044]=e("a",{id:"Reactant.MLIR.API.MlirStringCallback",href:"#Reactant.MLIR.API.MlirStringCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringCallback")],-1)),t[1045]||(t[1045]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1046]||(t[1046]=e("p",null,"A callback for returning string references.",-1)),t[1047]||(t[1047]=e("p",null,[s("This function is called back by the functions that need to return a reference to the portion of the string with the following arguments: - an "),e("a",{href:"/Reactant.jl/previews/PR363/api/mlirc#Reactant.MLIR.API.MlirStringRef"},[e("code",null,"MlirStringRef")]),s(" representing the current portion of the string - a pointer to user data forwarded from the printing call.")],-1)),t[1048]||(t[1048]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L108-L112",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ml,[e("summary",null,[t[1049]||(t[1049]=e("a",{id:"Reactant.MLIR.API.MlirStringRef",href:"#Reactant.MLIR.API.MlirStringRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringRef")],-1)),t[1050]||(t[1050]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1051]||(t[1051]=l('
julia
MlirStringRef

A pointer to a sized fragment of a string, not necessarily null-terminated. Does not own the underlying string. This is equivalent to llvm::StringRef.

FieldNote
dataPointer to the first symbol.
lengthLength of the fragment.

source

',4))]),e("details",kl,[e("summary",null,[t[1052]||(t[1052]=e("a",{id:"Reactant.MLIR.API.MlirTypesCallback",href:"#Reactant.MLIR.API.MlirTypesCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirTypesCallback")],-1)),t[1053]||(t[1053]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1054]||(t[1054]=e("p",null,"These callbacks are used to return multiple types from functions while transferring ownership to the caller. The first argument is the number of consecutive elements pointed to by the second argument. The third argument is an opaque pointer forwarded to the callback by the caller.",-1)),t[1055]||(t[1055]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9052-L9054",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",fl,[e("summary",null,[t[1056]||(t[1056]=e("a",{id:"Reactant.MLIR.API.MlirWalkOrder",href:"#Reactant.MLIR.API.MlirWalkOrder"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirWalkOrder")],-1)),t[1057]||(t[1057]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1058]||(t[1058]=l('
julia
MlirWalkOrder

Traversal order for operation walk.

source

',3))]),e("details",Rl,[e("summary",null,[t[1059]||(t[1059]=e("a",{id:"Reactant.MLIR.API.MlirWalkResult",href:"#Reactant.MLIR.API.MlirWalkResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirWalkResult")],-1)),t[1060]||(t[1060]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1061]||(t[1061]=l('
julia
MlirWalkResult

Operation walk result.

source

',3))]),e("details",Il,[e("summary",null,[t[1062]||(t[1062]=e("a",{id:"Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}",href:"#Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMAddSymbol")],-1)),t[1063]||(t[1063]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1064]||(t[1064]=l('
julia
LLVMAddSymbol(symbolName, symbolValue)

This functions permanently adds the symbol symbolName with the value symbolValue. These symbols are searched before any libraries.

See also

sys::DynamicLibrary::AddSymbol()

source

',5))]),e("details",jl,[e("summary",null,[t[1065]||(t[1065]=e("a",{id:"Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMLoadLibraryPermanently")],-1)),t[1066]||(t[1066]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1067]||(t[1067]=l('
julia
LLVMLoadLibraryPermanently(Filename)

This function permanently loads the dynamic library at the given path. It is safe to call this function multiple times for the same library.

See also

sys::DynamicLibrary::LoadLibraryPermanently()

source

',5))]),e("details",Ml,[e("summary",null,[t[1068]||(t[1068]=e("a",{id:"Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMParseCommandLineOptions")],-1)),t[1069]||(t[1069]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1070]||(t[1070]=l('
julia
LLVMParseCommandLineOptions(argc, argv, Overview)

This function parses the given arguments using the LLVM command line parser. Note that the only stable thing about this function is its signature; you cannot rely on any particular set of command line arguments being interpreted the same way across LLVM versions.

See also

llvm:🆑:ParseCommandLineOptions()

source

',5))]),e("details",Al,[e("summary",null,[t[1071]||(t[1071]=e("a",{id:"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol")],-1)),t[1072]||(t[1072]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1073]||(t[1073]=l('
julia
LLVMSearchForAddressOfSymbol(symbolName)

This function will search through all previously loaded dynamic libraries for the symbol symbolName. If it is found, the address of that symbol is returned. If not, null is returned.

See also

sys::DynamicLibrary::SearchForAddressOfSymbol()

source

',5))]),e("details",Ll,[e("summary",null,[t[1074]||(t[1074]=e("a",{id:"Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineAddExprGet")],-1)),t[1075]||(t[1075]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1076]||(t[1076]=l('
julia
mlirAffineAddExprGet(lhs, rhs)

Creates an affine add expression with 'lhs' and 'rhs'.

source

',3))]),e("details",El,[e("summary",null,[t[1077]||(t[1077]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS")],-1)),t[1078]||(t[1078]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1079]||(t[1079]=l('
julia
mlirAffineBinaryOpExprGetLHS(affineExpr)

Returns the left hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",vl,[e("summary",null,[t[1080]||(t[1080]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS")],-1)),t[1081]||(t[1081]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1082]||(t[1082]=l('
julia
mlirAffineBinaryOpExprGetRHS(affineExpr)

Returns the right hand side affine expression of the given affine binary operation expression.

source

',3))]),e("details",Tl,[e("summary",null,[t[1083]||(t[1083]=e("a",{id:"Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineCeilDivExprGet")],-1)),t[1084]||(t[1084]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1085]||(t[1085]=l('
julia
mlirAffineCeilDivExprGet(lhs, rhs)

Creates an affine ceildiv expression with 'lhs' and 'rhs'.

source

',3))]),e("details",Cl,[e("summary",null,[t[1086]||(t[1086]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGet")],-1)),t[1087]||(t[1087]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1088]||(t[1088]=l('
julia
mlirAffineConstantExprGet(ctx, constant)

Creates an affine constant expression with 'constant' in the context.

source

',3))]),e("details",xl,[e("summary",null,[t[1089]||(t[1089]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGetValue")],-1)),t[1090]||(t[1090]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1091]||(t[1091]=l('
julia
mlirAffineConstantExprGetValue(affineExpr)

Returns the value of the given affine constant expression.

source

',3))]),e("details",Fl,[e("summary",null,[t[1092]||(t[1092]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGet")],-1)),t[1093]||(t[1093]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1094]||(t[1094]=l('
julia
mlirAffineDimExprGet(ctx, position)

Creates an affine dimension expression with 'position' in the context.

source

',3))]),e("details",Pl,[e("summary",null,[t[1095]||(t[1095]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGetPosition")],-1)),t[1096]||(t[1096]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1097]||(t[1097]=l('
julia
mlirAffineDimExprGetPosition(affineExpr)

Returns the position of the given affine dimension expression.

source

',3))]),e("details",Dl,[e("summary",null,[t[1098]||(t[1098]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprCompose")],-1)),t[1099]||(t[1099]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1100]||(t[1100]=l('
julia
mlirAffineExprCompose(affineExpr, affineMap)

Composes the given map with the given expression.

source

',3))]),e("details",Ol,[e("summary",null,[t[1101]||(t[1101]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprDump")],-1)),t[1102]||(t[1102]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1103]||(t[1103]=l('
julia
mlirAffineExprDump(affineExpr)

Prints the affine expression to the standard error stream.

source

',3))]),e("details",Bl,[e("summary",null,[t[1104]||(t[1104]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprEqual")],-1)),t[1105]||(t[1105]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1106]||(t[1106]=l('
julia
mlirAffineExprEqual(lhs, rhs)

Returns true if the two affine expressions are equal.

source

',3))]),e("details",Gl,[e("summary",null,[t[1107]||(t[1107]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprGetContext")],-1)),t[1108]||(t[1108]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1109]||(t[1109]=l('
julia
mlirAffineExprGetContext(affineExpr)

Gets the context that owns the affine expression.

source

',3))]),e("details",zl,[e("summary",null,[t[1110]||(t[1110]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor")],-1)),t[1111]||(t[1111]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1112]||(t[1112]=l('
julia
mlirAffineExprGetLargestKnownDivisor(affineExpr)

Returns the greatest known integral divisor of this affine expression. The result is always positive.

source

',3))]),e("details",wl,[e("summary",null,[t[1113]||(t[1113]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAAdd")],-1)),t[1114]||(t[1114]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1115]||(t[1115]=l('
julia
mlirAffineExprIsAAdd(affineExpr)

Checks whether the given affine expression is an add expression.

source

',3))]),e("details",Sl,[e("summary",null,[t[1116]||(t[1116]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsABinary")],-1)),t[1117]||(t[1117]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1118]||(t[1118]=l('
julia
mlirAffineExprIsABinary(affineExpr)

Checks whether the given affine expression is binary.

source

',3))]),e("details",Nl,[e("summary",null,[t[1119]||(t[1119]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsACeilDiv")],-1)),t[1120]||(t[1120]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1121]||(t[1121]=l('
julia
mlirAffineExprIsACeilDiv(affineExpr)

Checks whether the given affine expression is an ceildiv expression.

source

',3))]),e("details",Vl,[e("summary",null,[t[1122]||(t[1122]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAConstant")],-1)),t[1123]||(t[1123]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1124]||(t[1124]=l('
julia
mlirAffineExprIsAConstant(affineExpr)

Checks whether the given affine expression is a constant expression.

source

',3))]),e("details",ql,[e("summary",null,[t[1125]||(t[1125]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsADim")],-1)),t[1126]||(t[1126]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1127]||(t[1127]=l('
julia
mlirAffineExprIsADim(affineExpr)

Checks whether the given affine expression is a dimension expression.

source

',3))]),e("details",Ul,[e("summary",null,[t[1128]||(t[1128]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv")],-1)),t[1129]||(t[1129]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1130]||(t[1130]=l('
julia
mlirAffineExprIsAFloorDiv(affineExpr)

Checks whether the given affine expression is an floordiv expression.

source

',3))]),e("details",Ql,[e("summary",null,[t[1131]||(t[1131]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMod")],-1)),t[1132]||(t[1132]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1133]||(t[1133]=l('
julia
mlirAffineExprIsAMod(affineExpr)

Checks whether the given affine expression is an mod expression.

source

',3))]),e("details",Wl,[e("summary",null,[t[1134]||(t[1134]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMul")],-1)),t[1135]||(t[1135]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1136]||(t[1136]=l('
julia
mlirAffineExprIsAMul(affineExpr)

Checks whether the given affine expression is an mul expression.

source

',3))]),e("details",Hl,[e("summary",null,[t[1137]||(t[1137]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsASymbol")],-1)),t[1138]||(t[1138]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1139]||(t[1139]=l('
julia
mlirAffineExprIsASymbol(affineExpr)

Checks whether the given affine expression is a symbol expression.

source

',3))]),e("details",Zl,[e("summary",null,[t[1140]||(t[1140]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim")],-1)),t[1141]||(t[1141]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1142]||(t[1142]=l('
julia
mlirAffineExprIsFunctionOfDim(affineExpr, position)

Checks whether the given affine expression involves AffineDimExpr 'position'.

source

',3))]),e("details",Jl,[e("summary",null,[t[1143]||(t[1143]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsMultipleOf")],-1)),t[1144]||(t[1144]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1145]||(t[1145]=l('
julia
mlirAffineExprIsMultipleOf(affineExpr, factor)

Checks whether the given affine expression is a multiple of 'factor'.

source

',3))]),e("details",Kl,[e("summary",null,[t[1146]||(t[1146]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsNull")],-1)),t[1147]||(t[1147]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1148]||(t[1148]=l('
julia
mlirAffineExprIsNull(affineExpr)

Returns true if the given affine expression is a null expression. Note constant zero is not a null expression.

source

',3))]),e("details",$l,[e("summary",null,[t[1149]||(t[1149]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsPureAffine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsPureAffine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsPureAffine")],-1)),t[1150]||(t[1150]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1151]||(t[1151]=l('
julia
mlirAffineExprIsPureAffine(affineExpr)

Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.

source

',3))]),e("details",Xl,[e("summary",null,[t[1152]||(t[1152]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant")],-1)),t[1153]||(t[1153]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1154]||(t[1154]=l('
julia
mlirAffineExprIsSymbolicOrConstant(affineExpr)

Checks whether the given affine expression is made out of only symbols and constants.

source

',3))]),e("details",Yl,[e("summary",null,[t[1155]||(t[1155]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprPrint")],-1)),t[1156]||(t[1156]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1157]||(t[1157]=l('
julia
mlirAffineExprPrint(affineExpr, callback, userData)

Prints an affine expression by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",_l,[e("summary",null,[t[1158]||(t[1158]=e("a",{id:"Reactant.MLIR.API.mlirAffineFloorDivExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineFloorDivExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineFloorDivExprGet")],-1)),t[1159]||(t[1159]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1160]||(t[1160]=l('
julia
mlirAffineFloorDivExprGet(lhs, rhs)

Creates an affine floordiv expression with 'lhs' and 'rhs'.

source

',3))]),e("details",tn,[e("summary",null,[t[1161]||(t[1161]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGet")],-1)),t[1162]||(t[1162]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1163]||(t[1163]=l('
julia
mlirAffineMapAttrGet(map)

Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.

source

',3))]),e("details",en,[e("summary",null,[t[1164]||(t[1164]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID")],-1)),t[1165]||(t[1165]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1166]||(t[1166]=l('
julia
mlirAffineMapAttrGetTypeID()

Returns the typeID of an AffineMap attribute.

source

',3))]),e("details",sn,[e("summary",null,[t[1167]||(t[1167]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetValue")],-1)),t[1168]||(t[1168]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1169]||(t[1169]=l('
julia
mlirAffineMapAttrGetValue(attr)

Returns the affine map wrapped in the given affine map attribute.

source

',3))]),e("details",an,[e("summary",null,[t[1170]||(t[1170]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols")],-1)),t[1171]||(t[1171]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1172]||(t[1172]=l('
julia
mlirAffineMapCompressUnusedSymbols(affineMaps, size, result, populateResult)

Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps. Asserts that all maps in affineMaps are normalized to the same number of dims and symbols. Takes a callback populateResult to fill the res container with value m at entry idx. This allows returning without worrying about ownership considerations.

source

',3))]),e("details",ln,[e("summary",null,[t[1173]||(t[1173]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapConstantGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapConstantGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapConstantGet")],-1)),t[1174]||(t[1174]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1175]||(t[1175]=l('
julia
mlirAffineMapConstantGet(ctx, val)

Creates a single constant result affine map in the context. The affine map is owned by the context.

source

',3))]),e("details",nn,[e("summary",null,[t[1176]||(t[1176]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapDump")],-1)),t[1177]||(t[1177]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1178]||(t[1178]=l('
julia
mlirAffineMapDump(affineMap)

Prints the affine map to the standard error stream.

source

',3))]),e("details",pn,[e("summary",null,[t[1179]||(t[1179]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEmptyGet")],-1)),t[1180]||(t[1180]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1181]||(t[1181]=l('
julia
mlirAffineMapEmptyGet(ctx)

Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",rn,[e("summary",null,[t[1182]||(t[1182]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEqual")],-1)),t[1183]||(t[1183]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1184]||(t[1184]=l('
julia
mlirAffineMapEqual(a1, a2)

Checks if two affine maps are equal.

source

',3))]),e("details",on,[e("summary",null,[t[1185]||(t[1185]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGet")],-1)),t[1186]||(t[1186]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1187]||(t[1187]=l('
julia
mlirAffineMapGet(ctx, dimCount, symbolCount, nAffineExprs, affineExprs)

Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.

source

',3))]),e("details",dn,[e("summary",null,[t[1188]||(t[1188]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetContext")],-1)),t[1189]||(t[1189]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1190]||(t[1190]=l('
julia
mlirAffineMapGetContext(affineMap)

Gets the context that the given affine map was created with

source

',3))]),e("details",cn,[e("summary",null,[t[1191]||(t[1191]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap")],-1)),t[1192]||(t[1192]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1193]||(t[1193]=l('
julia
mlirAffineMapGetMajorSubMap(affineMap, numResults)

Returns the affine map consisting of the most major numResults results. Returns the null AffineMap if the numResults is equal to zero. Returns the affineMap if numResults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",hn,[e("summary",null,[t[1194]||(t[1194]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetMinorSubMap-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetMinorSubMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetMinorSubMap")],-1)),t[1195]||(t[1195]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1196]||(t[1196]=l('
julia
mlirAffineMapGetMinorSubMap(affineMap, numResults)

Returns the affine map consisting of the most minor numResults results. Returns the null AffineMap if the numResults is equal to zero. Returns the affineMap if numResults is greater or equals to number of results of the given affine map.

source

',3))]),e("details",un,[e("summary",null,[t[1197]||(t[1197]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumDims")],-1)),t[1198]||(t[1198]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1199]||(t[1199]=l('
julia
mlirAffineMapGetNumDims(affineMap)

Returns the number of dimensions of the given affine map.

source

',3))]),e("details",bn,[e("summary",null,[t[1200]||(t[1200]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumInputs")],-1)),t[1201]||(t[1201]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1202]||(t[1202]=l('
julia
mlirAffineMapGetNumInputs(affineMap)

Returns the number of inputs (dimensions + symbols) of the given affine map.

source

',3))]),e("details",gn,[e("summary",null,[t[1203]||(t[1203]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumResults")],-1)),t[1204]||(t[1204]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1205]||(t[1205]=l('
julia
mlirAffineMapGetNumResults(affineMap)

Returns the number of results of the given affine map.

source

',3))]),e("details",yn,[e("summary",null,[t[1206]||(t[1206]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumSymbols")],-1)),t[1207]||(t[1207]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1208]||(t[1208]=l('
julia
mlirAffineMapGetNumSymbols(affineMap)

Returns the number of symbols of the given affine map.

source

',3))]),e("details",mn,[e("summary",null,[t[1209]||(t[1209]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetResult")],-1)),t[1210]||(t[1210]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1211]||(t[1211]=l('
julia
mlirAffineMapGetResult(affineMap, pos)

Returns the result at the given position.

source

',3))]),e("details",kn,[e("summary",null,[t[1212]||(t[1212]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult")],-1)),t[1213]||(t[1213]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1214]||(t[1214]=l('
julia
mlirAffineMapGetSingleConstantResult(affineMap)

Returns the constant result of the given affine map. The function asserts that the map has a single constant result.

source

',3))]),e("details",fn,[e("summary",null,[t[1215]||(t[1215]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSubMap")],-1)),t[1216]||(t[1216]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1217]||(t[1217]=l('
julia
mlirAffineMapGetSubMap(affineMap, size, resultPos)

Returns the affine map consisting of the resultPos subset.

source

',3))]),e("details",Rn,[e("summary",null,[t[1218]||(t[1218]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsEmpty")],-1)),t[1219]||(t[1219]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1220]||(t[1220]=l('
julia
mlirAffineMapIsEmpty(affineMap)

Checks whether the given affine map is an empty affine map.

source

',3))]),e("details",In,[e("summary",null,[t[1221]||(t[1221]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsIdentity")],-1)),t[1222]||(t[1222]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1223]||(t[1223]=l('
julia
mlirAffineMapIsIdentity(affineMap)

Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",jn,[e("summary",null,[t[1224]||(t[1224]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity")],-1)),t[1225]||(t[1225]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1226]||(t[1226]=l('
julia
mlirAffineMapIsMinorIdentity(affineMap)

Checks whether the given affine map is a minor identity affine map.

source

',3))]),e("details",Mn,[e("summary",null,[t[1227]||(t[1227]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsNull")],-1)),t[1228]||(t[1228]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1229]||(t[1229]=l('
julia
mlirAffineMapIsNull(affineMap)

Checks whether an affine map is null.

source

',3))]),e("details",An,[e("summary",null,[t[1230]||(t[1230]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsPermutation")],-1)),t[1231]||(t[1231]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1232]||(t[1232]=l('
julia
mlirAffineMapIsPermutation(affineMap)

Checks whether the given affine map represents a symbol-less permutation map.

source

',3))]),e("details",Ln,[e("summary",null,[t[1233]||(t[1233]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation")],-1)),t[1234]||(t[1234]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1235]||(t[1235]=l('
julia
mlirAffineMapIsProjectedPermutation(affineMap)

Checks whether the given affine map represents a subset of a symbol-less permutation map.

source

',3))]),e("details",En,[e("summary",null,[t[1236]||(t[1236]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsSingleConstant")],-1)),t[1237]||(t[1237]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1238]||(t[1238]=l('
julia
mlirAffineMapIsSingleConstant(affineMap)

Checks whether the given affine map is a single result constant affine map.

source

',3))]),e("details",vn,[e("summary",null,[t[1239]||(t[1239]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet")],-1)),t[1240]||(t[1240]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1241]||(t[1241]=l('
julia
mlirAffineMapMinorIdentityGet(ctx, dims, results)

Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.

source

',3))]),e("details",Tn,[e("summary",null,[t[1242]||(t[1242]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet")],-1)),t[1243]||(t[1243]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1244]||(t[1244]=l('
julia
mlirAffineMapMultiDimIdentityGet(ctx, numDims)

Creates an affine map with 'numDims' identity in the context. The affine map is owned by the context.

source

',3))]),e("details",Cn,[e("summary",null,[t[1245]||(t[1245]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapPermutationGet")],-1)),t[1246]||(t[1246]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1247]||(t[1247]=l('
julia
mlirAffineMapPermutationGet(ctx, size, permutation)

Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0] is a valid permutation. [2,0] or [1,1,2] is an invalid permutation.) The affine map is owned by the context.

source

',3))]),e("details",xn,[e("summary",null,[t[1248]||(t[1248]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapPrint")],-1)),t[1249]||(t[1249]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1250]||(t[1250]=l('
julia
mlirAffineMapPrint(affineMap, callback, userData)

Prints an affine map by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Fn,[e("summary",null,[t[1251]||(t[1251]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapReplace-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAffineMapReplace-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapReplace")],-1)),t[1252]||(t[1252]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1253]||(t[1253]=l('
julia
mlirAffineMapReplace(affineMap, expression, replacement, numResultDims, numResultSyms)

Apply AffineExpr::replace(map) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.

source

',3))]),e("details",Pn,[e("summary",null,[t[1254]||(t[1254]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapZeroResultGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapZeroResultGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapZeroResultGet")],-1)),t[1255]||(t[1255]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1256]||(t[1256]=l('
julia
mlirAffineMapZeroResultGet(ctx, dimCount, symbolCount)

Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.

source

',3))]),e("details",Dn,[e("summary",null,[t[1257]||(t[1257]=e("a",{id:"Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineModExprGet")],-1)),t[1258]||(t[1258]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1259]||(t[1259]=l('
julia
mlirAffineModExprGet(lhs, rhs)

Creates an affine mod expression with 'lhs' and 'rhs'.

source

',3))]),e("details",On,[e("summary",null,[t[1260]||(t[1260]=e("a",{id:"Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMulExprGet")],-1)),t[1261]||(t[1261]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1262]||(t[1262]=l('
julia
mlirAffineMulExprGet(lhs, rhs)

Creates an affine mul expression with 'lhs' and 'rhs'.

source

',3))]),e("details",Bn,[e("summary",null,[t[1263]||(t[1263]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGet")],-1)),t[1264]||(t[1264]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1265]||(t[1265]=l('
julia
mlirAffineSymbolExprGet(ctx, position)

Creates an affine symbol expression with 'position' in the context.

source

',3))]),e("details",Gn,[e("summary",null,[t[1266]||(t[1266]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition")],-1)),t[1267]||(t[1267]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1268]||(t[1268]=l('
julia
mlirAffineSymbolExprGetPosition(affineExpr)

Returns the position of the given affine symbol expression.

source

',3))]),e("details",zn,[e("summary",null,[t[1269]||(t[1269]=e("a",{id:"Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAnyQuantizedTypeGet")],-1)),t[1270]||(t[1270]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1271]||(t[1271]=l('
julia
mlirAnyQuantizedTypeGet(flags, storageType, expressedType, storageTypeMin, storageTypeMax)

Creates an instance of AnyQuantizedType with the given parameters in the same context as storageType and returns it. The instance is owned by the context.

source

',3))]),e("details",wn,[e("summary",null,[t[1272]||(t[1272]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGet")],-1)),t[1273]||(t[1273]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1274]||(t[1274]=l('
julia
mlirArrayAttrGet(ctx, numElements, elements)

Creates an array element containing the given list of elements in the given context.

source

',3))]),e("details",Sn,[e("summary",null,[t[1275]||(t[1275]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetElement")],-1)),t[1276]||(t[1276]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1277]||(t[1277]=l('
julia
mlirArrayAttrGetElement(attr, pos)

Returns pos-th element stored in the given array attribute.

source

',3))]),e("details",Nn,[e("summary",null,[t[1278]||(t[1278]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetNumElements")],-1)),t[1279]||(t[1279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1280]||(t[1280]=l('
julia
mlirArrayAttrGetNumElements(attr)

Returns the number of elements stored in the given array attribute.

source

',3))]),e("details",Vn,[e("summary",null,[t[1281]||(t[1281]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetTypeID")],-1)),t[1282]||(t[1282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1283]||(t[1283]=l('
julia
mlirArrayAttrGetTypeID()

Returns the typeID of an Array attribute.

source

',3))]),e("details",qn,[e("summary",null,[t[1284]||(t[1284]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateCreateForOperation")],-1)),t[1285]||(t[1285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1286]||(t[1286]=l('
julia
mlirAsmStateCreateForOperation(op, flags)

Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state. Must be freed with a call to mlirAsmStateDestroy().

source

',3))]),e("details",Un,[e("summary",null,[t[1287]||(t[1287]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateCreateForValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAsmStateCreateForValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateCreateForValue")],-1)),t[1288]||(t[1288]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1289]||(t[1289]=l('
julia
mlirAsmStateCreateForValue(value, flags)

Creates new AsmState from value. Must be freed with a call to mlirAsmStateDestroy().

source

',3))]),e("details",Qn,[e("summary",null,[t[1290]||(t[1290]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAsmStateDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateDestroy")],-1)),t[1291]||(t[1291]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1292]||(t[1292]=l('
julia
mlirAsmStateDestroy(state)

Destroys printing flags created with mlirAsmStateCreate.

source

',3))]),e("details",Wn,[e("summary",null,[t[1293]||(t[1293]=e("a",{id:"Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeDump")],-1)),t[1294]||(t[1294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1295]||(t[1295]=l('
julia
mlirAttributeDump(attr)

Prints the attribute to the standard error stream.

source

',3))]),e("details",Hn,[e("summary",null,[t[1296]||(t[1296]=e("a",{id:"Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeEqual")],-1)),t[1297]||(t[1297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1298]||(t[1298]=l('
julia
mlirAttributeEqual(a1, a2)

Checks if two attributes are equal.

source

',3))]),e("details",Zn,[e("summary",null,[t[1299]||(t[1299]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetContext")],-1)),t[1300]||(t[1300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1301]||(t[1301]=l('
julia
mlirAttributeGetContext(attribute)

Gets the context that an attribute was created with.

source

',3))]),e("details",Jn,[e("summary",null,[t[1302]||(t[1302]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetDialect")],-1)),t[1303]||(t[1303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1304]||(t[1304]=l('
julia
mlirAttributeGetDialect(attribute)

Gets the dialect of the attribute.

source

',3))]),e("details",Kn,[e("summary",null,[t[1305]||(t[1305]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}",href:"#Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetNull")],-1)),t[1306]||(t[1306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1307]||(t[1307]=l('
julia
mlirAttributeGetNull()

Returns an empty attribute.

source

',3))]),e("details",$n,[e("summary",null,[t[1308]||(t[1308]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetType")],-1)),t[1309]||(t[1309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1310]||(t[1310]=l('
julia
mlirAttributeGetType(attribute)

Gets the type of this attribute.

source

',3))]),e("details",Xn,[e("summary",null,[t[1311]||(t[1311]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetTypeID")],-1)),t[1312]||(t[1312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1313]||(t[1313]=l('
julia
mlirAttributeGetTypeID(attribute)

Gets the type id of the attribute.

source

',3))]),e("details",Yn,[e("summary",null,[t[1314]||(t[1314]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAAffineMap")],-1)),t[1315]||(t[1315]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1316]||(t[1316]=l('
julia
mlirAttributeIsAAffineMap(attr)

Checks whether the given attribute is an affine map attribute.

source

',3))]),e("details",_n,[e("summary",null,[t[1317]||(t[1317]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAArray")],-1)),t[1318]||(t[1318]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1319]||(t[1319]=l('
julia
mlirAttributeIsAArray(attr)

Checks whether the given attribute is an array attribute.

source

',3))]),e("details",tp,[e("summary",null,[t[1320]||(t[1320]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsABool")],-1)),t[1321]||(t[1321]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1322]||(t[1322]=l('
julia
mlirAttributeIsABool(attr)

Checks whether the given attribute is a bool attribute.

source

',3))]),e("details",ep,[e("summary",null,[t[1323]||(t[1323]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray")],-1)),t[1324]||(t[1324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1325]||(t[1325]=l('
julia
mlirAttributeIsADenseBoolArray(attr)

Checks whether the given attribute is a dense array attribute.

source

',3))]),e("details",sp,[e("summary",null,[t[1326]||(t[1326]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseElements")],-1)),t[1327]||(t[1327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1328]||(t[1328]=l('
julia
mlirAttributeIsADenseElements(attr)

Checks whether the given attribute is a dense elements attribute.

source

',3))]),e("details",ap,[e("summary",null,[t[1329]||(t[1329]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADictionary")],-1)),t[1330]||(t[1330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1331]||(t[1331]=l('
julia
mlirAttributeIsADictionary(attr)

Checks whether the given attribute is a dictionary attribute.

source

',3))]),e("details",ip,[e("summary",null,[t[1332]||(t[1332]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAElements")],-1)),t[1333]||(t[1333]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1334]||(t[1334]=l('
julia
mlirAttributeIsAElements(attr)

Checks whether the given attribute is an elements attribute.

source

',3))]),e("details",lp,[e("summary",null,[t[1335]||(t[1335]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef")],-1)),t[1336]||(t[1336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1337]||(t[1337]=l('
julia
mlirAttributeIsAFlatSymbolRef(attr)

Checks whether the given attribute is a flat symbol reference attribute.

source

',3))]),e("details",np,[e("summary",null,[t[1338]||(t[1338]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFloat")],-1)),t[1339]||(t[1339]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1340]||(t[1340]=l('
julia
mlirAttributeIsAFloat(attr)

Checks whether the given attribute is a floating point attribute.

source

',3))]),e("details",pp,[e("summary",null,[t[1341]||(t[1341]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAInteger")],-1)),t[1342]||(t[1342]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1343]||(t[1343]=l('
julia
mlirAttributeIsAInteger(attr)

Checks whether the given attribute is an integer attribute.

source

',3))]),e("details",rp,[e("summary",null,[t[1344]||(t[1344]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAIntegerSet")],-1)),t[1345]||(t[1345]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1346]||(t[1346]=l('
julia
mlirAttributeIsAIntegerSet(attr)

Checks whether the given attribute is an integer set attribute.

source

',3))]),e("details",op,[e("summary",null,[t[1347]||(t[1347]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAOpaque")],-1)),t[1348]||(t[1348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1349]||(t[1349]=l('
julia
mlirAttributeIsAOpaque(attr)

Checks whether the given attribute is an opaque attribute.

source

',3))]),e("details",dp,[e("summary",null,[t[1350]||(t[1350]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseElements")],-1)),t[1351]||(t[1351]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1352]||(t[1352]=l('
julia
mlirAttributeIsASparseElements(attr)

Checks whether the given attribute is a sparse elements attribute.

source

',3))]),e("details",cp,[e("summary",null,[t[1353]||(t[1353]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr")],-1)),t[1354]||(t[1354]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1355]||(t[1355]=l('
julia
mlirAttributeIsASparseTensorEncodingAttr(attr)

Checks whether the given attribute is a sparse\\_tensor.encoding attribute.

source

',3))]),e("details",hp,[e("summary",null,[t[1356]||(t[1356]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAString-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAString-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAString")],-1)),t[1357]||(t[1357]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1358]||(t[1358]=l('
julia
mlirAttributeIsAString(attr)

Checks whether the given attribute is a string attribute.

source

',3))]),e("details",up,[e("summary",null,[t[1359]||(t[1359]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASymbolRef")],-1)),t[1360]||(t[1360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1361]||(t[1361]=l('
julia
mlirAttributeIsASymbolRef(attr)

Checks whether the given attribute is a symbol reference attribute.

source

',3))]),e("details",bp,[e("summary",null,[t[1362]||(t[1362]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAType")],-1)),t[1363]||(t[1363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1364]||(t[1364]=l('
julia
mlirAttributeIsAType(attr)

Checks whether the given attribute is a type attribute.

source

',3))]),e("details",gp,[e("summary",null,[t[1365]||(t[1365]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAUnit")],-1)),t[1366]||(t[1366]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1367]||(t[1367]=l('
julia
mlirAttributeIsAUnit(attr)

Checks whether the given attribute is a unit attribute.

source

',3))]),e("details",yp,[e("summary",null,[t[1368]||(t[1368]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsNull")],-1)),t[1369]||(t[1369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1370]||(t[1370]=l('
julia
mlirAttributeIsNull(attr)

Checks whether an attribute is null.

source

',3))]),e("details",mp,[e("summary",null,[t[1371]||(t[1371]=e("a",{id:"Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeParseGet")],-1)),t[1372]||(t[1372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1373]||(t[1373]=l('
julia
mlirAttributeParseGet(context, attr)

Parses an attribute. The attribute is owned by the context.

source

',3))]),e("details",kp,[e("summary",null,[t[1374]||(t[1374]=e("a",{id:"Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributePrint")],-1)),t[1375]||(t[1375]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1376]||(t[1376]=l('
julia
mlirAttributePrint(attr, callback, userData)

Prints an attribute by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",fp,[e("summary",null,[t[1377]||(t[1377]=e("a",{id:"Reactant.MLIR.API.mlirBF16TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBF16TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBF16TypeGet")],-1)),t[1378]||(t[1378]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1379]||(t[1379]=l('
julia
mlirBF16TypeGet(ctx)

Creates a bf16 type in the given context. The type is owned by the context.

source

',3))]),e("details",Rp,[e("summary",null,[t[1380]||(t[1380]=e("a",{id:"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID")],-1)),t[1381]||(t[1381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1382]||(t[1382]=l('
julia
mlirBFloat16TypeGetTypeID()

Returns the typeID of an BFloat16 type.

source

',3))]),e("details",Ip,[e("summary",null,[t[1383]||(t[1383]=e("a",{id:"Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAddArgument")],-1)),t[1384]||(t[1384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1385]||(t[1385]=l('
julia
mlirBlockAddArgument(block, type, loc)

Appends an argument of the specified type to the block. Returns the newly added argument.

source

',3))]),e("details",jp,[e("summary",null,[t[1386]||(t[1386]=e("a",{id:"Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAppendOwnedOperation")],-1)),t[1387]||(t[1387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1388]||(t[1388]=l('
julia
mlirBlockAppendOwnedOperation(block, operation)

Takes an operation owned by the caller and appends it to the block.

source

',3))]),e("details",Mp,[e("summary",null,[t[1389]||(t[1389]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber")],-1)),t[1390]||(t[1390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1391]||(t[1391]=l('
julia
mlirBlockArgumentGetArgNumber(value)

Returns the position of the value in the argument list of its block.

source

',3))]),e("details",Ap,[e("summary",null,[t[1392]||(t[1392]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetOwner")],-1)),t[1393]||(t[1393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1394]||(t[1394]=l('
julia
mlirBlockArgumentGetOwner(value)

Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.

source

',3))]),e("details",Lp,[e("summary",null,[t[1395]||(t[1395]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentSetType")],-1)),t[1396]||(t[1396]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1397]||(t[1397]=l('
julia
mlirBlockArgumentSetType(value, type)

Sets the type of the block argument to the given type.

source

',3))]),e("details",Ep,[e("summary",null,[t[1398]||(t[1398]=e("a",{id:"Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockCreate")],-1)),t[1399]||(t[1399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1400]||(t[1400]=l('
julia
mlirBlockCreate(nArgs, args, locs)

Creates a new empty block with the given argument types and transfers ownership to the caller.

source

',3))]),e("details",vp,[e("summary",null,[t[1401]||(t[1401]=e("a",{id:"Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDestroy")],-1)),t[1402]||(t[1402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1403]||(t[1403]=l('
julia
mlirBlockDestroy(block)

Takes a block owned by the caller and destroys it.

source

',3))]),e("details",Tp,[e("summary",null,[t[1404]||(t[1404]=e("a",{id:"Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDetach")],-1)),t[1405]||(t[1405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1406]||(t[1406]=l('
julia
mlirBlockDetach(block)

Detach a block from the owning region and assume ownership.

source

',3))]),e("details",Cp,[e("summary",null,[t[1407]||(t[1407]=e("a",{id:"Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEqual")],-1)),t[1408]||(t[1408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1409]||(t[1409]=l('
julia
mlirBlockEqual(block, other)

Checks whether two blocks handles point to the same block. This does not perform deep comparison.

source

',3))]),e("details",xp,[e("summary",null,[t[1410]||(t[1410]=e("a",{id:"Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEraseArgument")],-1)),t[1411]||(t[1411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1412]||(t[1412]=l('
julia
mlirBlockEraseArgument(block, index)

Erase the argument at 'index' and remove it from the argument list.

source

',3))]),e("details",Fp,[e("summary",null,[t[1413]||(t[1413]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetArgument")],-1)),t[1414]||(t[1414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1415]||(t[1415]=l('
julia
mlirBlockGetArgument(block, pos)

Returns pos-th argument of the block.

source

',3))]),e("details",Pp,[e("summary",null,[t[1416]||(t[1416]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetFirstOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetFirstOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetFirstOperation")],-1)),t[1417]||(t[1417]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1418]||(t[1418]=l('
julia
mlirBlockGetFirstOperation(block)

Returns the first operation in the block.

source

',3))]),e("details",Dp,[e("summary",null,[t[1419]||(t[1419]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNextInRegion")],-1)),t[1420]||(t[1420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1421]||(t[1421]=l('
julia
mlirBlockGetNextInRegion(block)

Returns the block immediately following the given block in its parent region.

source

',3))]),e("details",Op,[e("summary",null,[t[1422]||(t[1422]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNumArguments")],-1)),t[1423]||(t[1423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1424]||(t[1424]=l('
julia
mlirBlockGetNumArguments(block)

Returns the number of arguments of the block.

source

',3))]),e("details",Bp,[e("summary",null,[t[1425]||(t[1425]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentOperation")],-1)),t[1426]||(t[1426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1427]||(t[1427]=l('
julia
mlirBlockGetParentOperation(arg1)

Returns the closest surrounding operation that contains this block.

source

',3))]),e("details",Gp,[e("summary",null,[t[1428]||(t[1428]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentRegion")],-1)),t[1429]||(t[1429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1430]||(t[1430]=l('
julia
mlirBlockGetParentRegion(block)

Returns the region that contains this block.

source

',3))]),e("details",zp,[e("summary",null,[t[1431]||(t[1431]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetTerminator")],-1)),t[1432]||(t[1432]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1433]||(t[1433]=l('
julia
mlirBlockGetTerminator(block)

Returns the terminator operation in the block or null if no terminator.

source

',3))]),e("details",wp,[e("summary",null,[t[1434]||(t[1434]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertArgument")],-1)),t[1435]||(t[1435]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1436]||(t[1436]=l('
julia
mlirBlockInsertArgument(block, pos, type, loc)

Inserts an argument of the specified type at a specified index to the block. Returns the newly added argument.

source

',3))]),e("details",Sp,[e("summary",null,[t[1437]||(t[1437]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperation")],-1)),t[1438]||(t[1438]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1439]||(t[1439]=l('
julia
mlirBlockInsertOwnedOperation(block, pos, operation)

Takes an operation owned by the caller and inserts it as pos to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.

source

',3))]),e("details",Np,[e("summary",null,[t[1440]||(t[1440]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperationAfter")],-1)),t[1441]||(t[1441]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1442]||(t[1442]=l('
julia
mlirBlockInsertOwnedOperationAfter(block, reference, operation)

Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",Vp,[e("summary",null,[t[1443]||(t[1443]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore")],-1)),t[1444]||(t[1444]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1445]||(t[1445]=l('
julia
mlirBlockInsertOwnedOperationBefore(block, reference, operation)

Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.

source

',3))]),e("details",qp,[e("summary",null,[t[1446]||(t[1446]=e("a",{id:"Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockIsNull")],-1)),t[1447]||(t[1447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1448]||(t[1448]=l('
julia
mlirBlockIsNull(block)

Checks whether a block is null.

source

',3))]),e("details",Up,[e("summary",null,[t[1449]||(t[1449]=e("a",{id:"Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockPrint")],-1)),t[1450]||(t[1450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1451]||(t[1451]=l('
julia
mlirBlockPrint(block, callback, userData)

Prints a block by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Qp,[e("summary",null,[t[1452]||(t[1452]=e("a",{id:"Reactant.MLIR.API.mlirBoolAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBoolAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBoolAttrGet")],-1)),t[1453]||(t[1453]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1454]||(t[1454]=l('
julia
mlirBoolAttrGet(ctx, value)

Creates a bool attribute in the given context with the given value.

source

',3))]),e("details",Wp,[e("summary",null,[t[1455]||(t[1455]=e("a",{id:"Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBoolAttrGetValue")],-1)),t[1456]||(t[1456]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1457]||(t[1457]=l('
julia
mlirBoolAttrGetValue(attr)

Returns the value stored in the given bool attribute.

source

',3))]),e("details",Hp,[e("summary",null,[t[1458]||(t[1458]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate")],-1)),t[1459]||(t[1459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1460]||(t[1460]=l('
julia
mlirBytecodeWriterConfigCreate()

Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirBytecodeWriterConfigDestroy().

source

',3))]),e("details",Zp,[e("summary",null,[t[1461]||(t[1461]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigDesiredEmitVersion")],-1)),t[1462]||(t[1462]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1463]||(t[1463]=l('
julia
mlirBytecodeWriterConfigDesiredEmitVersion(flags, version)

Sets the version to emit in the writer config.

source

',3))]),e("details",Jp,[e("summary",null,[t[1464]||(t[1464]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy")],-1)),t[1465]||(t[1465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1466]||(t[1466]=l('
julia
mlirBytecodeWriterConfigDestroy(config)

Destroys printing flags created with mlirBytecodeWriterConfigCreate.

source

',3))]),e("details",Kp,[e("summary",null,[t[1467]||(t[1467]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGet")],-1)),t[1468]||(t[1468]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1469]||(t[1469]=l('
julia
mlirCalibratedQuantizedTypeGet(expressedType, min, max)

Creates an instance of CalibratedQuantizedType with the given parameters in the same context as expressedType and returns it. The instance is owned by the context.

source

',3))]),e("details",$p,[e("summary",null,[t[1470]||(t[1470]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax-Tuple{Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMax")],-1)),t[1471]||(t[1471]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1472]||(t[1472]=l('
julia
mlirCalibratedQuantizedTypeGetMax(type)

Returns the max value of the given calibrated quantized type.

source

',3))]),e("details",Xp,[e("summary",null,[t[1473]||(t[1473]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin")],-1)),t[1474]||(t[1474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1475]||(t[1475]=l('
julia
mlirCalibratedQuantizedTypeGetMin(type)

Returns the min value of the given calibrated quantized type.

source

',3))]),e("details",Yp,[e("summary",null,[t[1476]||(t[1476]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGet")],-1)),t[1477]||(t[1477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1478]||(t[1478]=l('
julia
mlirComplexTypeGet(elementType)

Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",_p,[e("summary",null,[t[1479]||(t[1479]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetElementType")],-1)),t[1480]||(t[1480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1481]||(t[1481]=l('
julia
mlirComplexTypeGetElementType(type)

Returns the element type of the given complex type.

source

',3))]),e("details",tr,[e("summary",null,[t[1482]||(t[1482]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetTypeID")],-1)),t[1483]||(t[1483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1484]||(t[1484]=l('
julia
mlirComplexTypeGetTypeID()

Returns the typeID of an Complex type.

source

',3))]),e("details",er,[e("summary",null,[t[1485]||(t[1485]=e("a",{id:"Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAppendDialectRegistry")],-1)),t[1486]||(t[1486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1487]||(t[1487]=l('
julia
mlirContextAppendDialectRegistry(ctx, registry)

Append the contents of the given dialect registry to the registry associated with the context.

source

',3))]),e("details",sr,[e("summary",null,[t[1488]||(t[1488]=e("a",{id:"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler")],-1)),t[1489]||(t[1489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1490]||(t[1490]=l('
julia
mlirContextAttachDiagnosticHandler(context, handler, userData, deleteUserData)

Attaches the diagnostic handler to the context. Handlers are invoked in the reverse order of attachment until one of them processes the diagnostic completely. When a handler is invoked it is passed the userData that was provided when it was attached. If non-NULL, deleteUserData is called once the system no longer needs to call the handler (for instance after the handler is detached or the context is destroyed). Returns an identifier that can be used to detach the handler.

source

',3))]),e("details",ar,[e("summary",null,[t[1491]||(t[1491]=e("a",{id:"Reactant.MLIR.API.mlirContextCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirContextCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreate")],-1)),t[1492]||(t[1492]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1493]||(t[1493]=l('
julia
mlirContextCreate()

Creates an MLIR context and transfers its ownership to the caller. This sets the default multithreading option (enabled).

source

',3))]),e("details",ir,[e("summary",null,[t[1494]||(t[1494]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithRegistry")],-1)),t[1495]||(t[1495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1496]||(t[1496]=l('
julia
mlirContextCreateWithRegistry(registry, threadingEnabled)

Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry.

source

',3))]),e("details",lr,[e("summary",null,[t[1497]||(t[1497]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithThreading")],-1)),t[1498]||(t[1498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1499]||(t[1499]=l('
julia
mlirContextCreateWithThreading(threadingEnabled)

Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller.

source

',3))]),e("details",nr,[e("summary",null,[t[1500]||(t[1500]=e("a",{id:"Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDestroy")],-1)),t[1501]||(t[1501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1502]||(t[1502]=l('
julia
mlirContextDestroy(context)

Takes an MLIR context owned by the caller and destroys it.

source

',3))]),e("details",pr,[e("summary",null,[t[1503]||(t[1503]=e("a",{id:"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler")],-1)),t[1504]||(t[1504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1505]||(t[1505]=l('
julia
mlirContextDetachDiagnosticHandler(context, id)

Detaches an attached diagnostic handler from the context given its identifier.

source

',3))]),e("details",rr,[e("summary",null,[t[1506]||(t[1506]=e("a",{id:"Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEnableMultithreading")],-1)),t[1507]||(t[1507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1508]||(t[1508]=l('
julia
mlirContextEnableMultithreading(context, enable)

Set threading mode (must be set to false to mlir-print-ir-after-all).

source

',3))]),e("details",or,[e("summary",null,[t[1509]||(t[1509]=e("a",{id:"Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEqual")],-1)),t[1510]||(t[1510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1511]||(t[1511]=l('
julia
mlirContextEqual(ctx1, ctx2)

Checks if two contexts are equal.

source

',3))]),e("details",dr,[e("summary",null,[t[1512]||(t[1512]=e("a",{id:"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects")],-1)),t[1513]||(t[1513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1514]||(t[1514]=l('
julia
mlirContextGetAllowUnregisteredDialects(context)

Returns whether the context allows unregistered dialects.

source

',3))]),e("details",cr,[e("summary",null,[t[1515]||(t[1515]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumLoadedDialects")],-1)),t[1516]||(t[1516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1517]||(t[1517]=l('
julia
mlirContextGetNumLoadedDialects(context)

Returns the number of dialects loaded by the context.

source

',3))]),e("details",hr,[e("summary",null,[t[1518]||(t[1518]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects")],-1)),t[1519]||(t[1519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1520]||(t[1520]=l('
julia
mlirContextGetNumRegisteredDialects(context)

Returns the number of dialects registered with the given context. A registered dialect will be loaded if needed by the parser.

source

',3))]),e("details",ur,[e("summary",null,[t[1521]||(t[1521]=e("a",{id:"Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetOrLoadDialect")],-1)),t[1522]||(t[1522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1523]||(t[1523]=l('
julia
mlirContextGetOrLoadDialect(context, name)

Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary. If the dialect is not registered with the context, returns null. Use mlirContextLoad<Name>Dialect to load an unregistered dialect.

source

',3))]),e("details",br,[e("summary",null,[t[1524]||(t[1524]=e("a",{id:"Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsNull")],-1)),t[1525]||(t[1525]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1526]||(t[1526]=l('
julia
mlirContextIsNull(context)

Checks whether a context is null.

source

',3))]),e("details",gr,[e("summary",null,[t[1527]||(t[1527]=e("a",{id:"Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsRegisteredOperation")],-1)),t[1528]||(t[1528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1529]||(t[1529]=l('
julia
mlirContextIsRegisteredOperation(context, name)

Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.

source

',3))]),e("details",yr,[e("summary",null,[t[1530]||(t[1530]=e("a",{id:"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects")],-1)),t[1531]||(t[1531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1532]||(t[1532]=l('
julia
mlirContextLoadAllAvailableDialects(context)

Eagerly loads all available dialects registered with a context, making them available for use for IR construction.

source

',3))]),e("details",mr,[e("summary",null,[t[1533]||(t[1533]=e("a",{id:"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects")],-1)),t[1534]||(t[1534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1535]||(t[1535]=l('
julia
mlirContextSetAllowUnregisteredDialects(context, allow)

Sets whether unregistered dialects are allowed in this context.

source

',3))]),e("details",kr,[e("summary",null,[t[1536]||(t[1536]=e("a",{id:"Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetThreadPool")],-1)),t[1537]||(t[1537]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1538]||(t[1538]=l('
julia
mlirContextSetThreadPool(context, threadPool)

Sets the thread pool of the context explicitly, enabling multithreading in the process. This API should be used to avoid re-creating thread pools in long-running applications that perform multiple compilations, see the C++ documentation for MLIRContext for details.

source

',3))]),e("details",fr,[e("summary",null,[t[1539]||(t[1539]=e("a",{id:"Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCreateExternalPass")],-1)),t[1540]||(t[1540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1541]||(t[1541]=l('
julia
mlirCreateExternalPass(passID, name, argument, description, opName, nDependentDialects, dependentDialects, callbacks, userData)

Creates an external MlirPass that calls the supplied callbacks using the supplied userData. If opName is empty, the pass is a generic operation pass. Otherwise it is an operation pass specific to the specified pass name.

source

',3))]),e("details",Rr,[e("summary",null,[t[1542]||(t[1542]=e("a",{id:"Reactant.MLIR.API.mlirDenseArrayGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseArrayGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseArrayGetNumElements")],-1)),t[1543]||(t[1543]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1544]||(t[1544]=l('
julia
mlirDenseArrayGetNumElements(attr)

Get the size of a dense array.

source

',3))]),e("details",Ir,[e("summary",null,[t[1545]||(t[1545]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGet")],-1)),t[1546]||(t[1546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1547]||(t[1547]=l('
julia
mlirDenseBoolArrayGet(ctx, size, values)

Create a dense array attribute with the given elements.

source

',3))]),e("details",jr,[e("summary",null,[t[1548]||(t[1548]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGetElement")],-1)),t[1549]||(t[1549]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1550]||(t[1550]=l('
julia
mlirDenseBoolArrayGetElement(attr, pos)

Get an element of a dense array.

source

',3))]),e("details",Mr,[e("summary",null,[t[1551]||(t[1551]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue")],-1)),t[1552]||(t[1552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1553]||(t[1553]=l('
julia
mlirDenseBoolResourceElementsAttrGetValue(attr, pos)

Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense resource elements attribute.

source

',3))]),e("details",Ar,[e("summary",null,[t[1554]||(t[1554]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet")],-1)),t[1555]||(t[1555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1556]||(t[1556]=l('
julia
mlirDenseElementsAttrBoolGet(shapedType, numElements, elements)

Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.

source

',3))]),e("details",Lr,[e("summary",null,[t[1557]||(t[1557]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGet")],-1)),t[1558]||(t[1558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1559]||(t[1559]=l('
julia
mlirDenseElementsAttrGet(shapedType, numElements, elements)

Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.

source

',3))]),e("details",Er,[e("summary",null,[t[1560]||(t[1560]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue")],-1)),t[1561]||(t[1561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1562]||(t[1562]=l('
julia
mlirDenseElementsAttrGetBoolValue(attr, pos)

Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense elements attribute.

source

',3))]),e("details",vr,[e("summary",null,[t[1563]||(t[1563]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData")],-1)),t[1564]||(t[1564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1565]||(t[1565]=l('
julia
mlirDenseElementsAttrGetRawData(attr)

Returns the raw data of the given dense elements attribute.

source

',3))]),e("details",Tr,[e("summary",null,[t[1566]||(t[1566]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue")],-1)),t[1567]||(t[1567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1568]||(t[1568]=l('
julia
mlirDenseElementsAttrGetSplatValue(attr)

Returns the single replicated value (splat) of a specific type contained by the given dense elements attribute.

source

',3))]),e("details",Cr,[e("summary",null,[t[1569]||(t[1569]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat")],-1)),t[1570]||(t[1570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1571]||(t[1571]=l('
julia
mlirDenseElementsAttrIsSplat(attr)

Checks whether the given dense elements attribute contains a single replicated value (splat).

source

',3))]),e("details",xr,[e("summary",null,[t[1572]||(t[1572]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet")],-1)),t[1573]||(t[1573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1574]||(t[1574]=l('
julia
mlirDenseElementsAttrRawBufferGet(shapedType, rawBufferSize, rawBuffer)

Creates a dense elements attribute with the given Shaped type and elements populated from a packed, row-major opaque buffer of contents.

The format of the raw buffer is a densely packed array of values that can be bitcast to the storage format of the element type specified. Types that are not byte aligned will be: - For bitwidth > 1: Rounded up to the next byte. - For bitwidth = 1: Packed into 8bit bytes with bits corresponding to the linear order of the shape type from MSB to LSB, padded to on the right.

A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255) will be interpreted as a splat. User code should be prepared for additional, conformant patterns to be identified as splats in the future.

source

',5))]),e("details",Fr,[e("summary",null,[t[1575]||(t[1575]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet")],-1)),t[1576]||(t[1576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1577]||(t[1577]=l('
julia
mlirDenseElementsAttrReshapeGet(attr, shapedType)

Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.

source

',3))]),e("details",Pr,[e("summary",null,[t[1578]||(t[1578]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet")],-1)),t[1579]||(t[1579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1580]||(t[1580]=l('
julia
mlirDenseElementsAttrSplatGet(shapedType, element)

Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).

source

',3))]),e("details",Dr,[e("summary",null,[t[1581]||(t[1581]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrStringGet")],-1)),t[1582]||(t[1582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1583]||(t[1583]=l('
julia
mlirDenseElementsAttrStringGet(shapedType, numElements, strs)

Creates a dense elements attribute with the given shaped type from string elements.

source

',3))]),e("details",Or,[e("summary",null,[t[1584]||(t[1584]=e("a",{id:"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID")],-1)),t[1585]||(t[1585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1586]||(t[1586]=l('
julia
mlirDenseIntOrFPElementsAttrGetTypeID()

Returns the typeID of an DenseIntOrFPElements attribute.

source

',3))]),e("details",Br,[e("summary",null,[t[1587]||(t[1587]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetLocation")],-1)),t[1588]||(t[1588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1589]||(t[1589]=l('
julia
mlirDiagnosticGetLocation(diagnostic)

Returns the location at which the diagnostic is reported.

source

',3))]),e("details",Gr,[e("summary",null,[t[1590]||(t[1590]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetNote")],-1)),t[1591]||(t[1591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1592]||(t[1592]=l('
julia
mlirDiagnosticGetNote(diagnostic, pos)

Returns pos-th note attached to the diagnostic. Expects pos to be a valid zero-based index into the list of notes.

source

',3))]),e("details",zr,[e("summary",null,[t[1593]||(t[1593]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetNumNotes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetNumNotes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetNumNotes")],-1)),t[1594]||(t[1594]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1595]||(t[1595]=l('
julia
mlirDiagnosticGetNumNotes(diagnostic)

Returns the number of notes attached to the diagnostic.

source

',3))]),e("details",wr,[e("summary",null,[t[1596]||(t[1596]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetSeverity")],-1)),t[1597]||(t[1597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1598]||(t[1598]=l('
julia
mlirDiagnosticGetSeverity(diagnostic)

Returns the severity of the diagnostic.

source

',3))]),e("details",Sr,[e("summary",null,[t[1599]||(t[1599]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticPrint")],-1)),t[1600]||(t[1600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1601]||(t[1601]=l('
julia
mlirDiagnosticPrint(diagnostic, callback, userData)

Prints a diagnostic using the provided callback.

source

',3))]),e("details",Nr,[e("summary",null,[t[1602]||(t[1602]=e("a",{id:"Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectEqual")],-1)),t[1603]||(t[1603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1604]||(t[1604]=l('
julia
mlirDialectEqual(dialect1, dialect2)

Checks if two dialects that belong to the same context are equal. Dialects from different contexts will not compare equal.

source

',3))]),e("details",Vr,[e("summary",null,[t[1605]||(t[1605]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetContext")],-1)),t[1606]||(t[1606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1607]||(t[1607]=l('
julia
mlirDialectGetContext(dialect)

Returns the context that owns the dialect.

source

',3))]),e("details",qr,[e("summary",null,[t[1608]||(t[1608]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetNamespace")],-1)),t[1609]||(t[1609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1610]||(t[1610]=l('
julia
mlirDialectGetNamespace(dialect)

Returns the namespace of the given dialect.

source

',3))]),e("details",Ur,[e("summary",null,[t[1611]||(t[1611]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleGetNamespace")],-1)),t[1612]||(t[1612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1613]||(t[1613]=l('
julia
mlirDialectHandleGetNamespace(arg1)

Returns the namespace associated with the provided dialect handle.

source

',3))]),e("details",Qr,[e("summary",null,[t[1614]||(t[1614]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleInsertDialect")],-1)),t[1615]||(t[1615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1616]||(t[1616]=l('
julia
mlirDialectHandleInsertDialect(arg1, arg2)

Inserts the dialect associated with the provided dialect handle into the provided dialect registry

source

',3))]),e("details",Wr,[e("summary",null,[t[1617]||(t[1617]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleLoadDialect")],-1)),t[1618]||(t[1618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1619]||(t[1619]=l('
julia
mlirDialectHandleLoadDialect(arg1, arg2)

Loads the dialect associated with the provided dialect handle.

source

',3))]),e("details",Hr,[e("summary",null,[t[1620]||(t[1620]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleRegisterDialect")],-1)),t[1621]||(t[1621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1622]||(t[1622]=l('
julia
mlirDialectHandleRegisterDialect(arg1, arg2)

Registers the dialect associated with the provided dialect handle.

source

',3))]),e("details",Zr,[e("summary",null,[t[1623]||(t[1623]=e("a",{id:"Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectIsNull")],-1)),t[1624]||(t[1624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1625]||(t[1625]=l('
julia
mlirDialectIsNull(dialect)

Checks if the dialect is null.

source

',3))]),e("details",Jr,[e("summary",null,[t[1626]||(t[1626]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryCreate")],-1)),t[1627]||(t[1627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1628]||(t[1628]=l('
julia
mlirDialectRegistryCreate()

Creates a dialect registry and transfers its ownership to the caller.

source

',3))]),e("details",Kr,[e("summary",null,[t[1629]||(t[1629]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryDestroy")],-1)),t[1630]||(t[1630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1631]||(t[1631]=l('
julia
mlirDialectRegistryDestroy(registry)

Takes a dialect registry owned by the caller and destroys it.

source

',3))]),e("details",$r,[e("summary",null,[t[1632]||(t[1632]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryIsNull")],-1)),t[1633]||(t[1633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1634]||(t[1634]=l('
julia
mlirDialectRegistryIsNull(registry)

Checks if the dialect registry is null.

source

',3))]),e("details",Xr,[e("summary",null,[t[1635]||(t[1635]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGet")],-1)),t[1636]||(t[1636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1637]||(t[1637]=l('
julia
mlirDictionaryAttrGet(ctx, numElements, elements)

Creates a dictionary attribute containing the given list of elements in the provided context.

source

',3))]),e("details",Yr,[e("summary",null,[t[1638]||(t[1638]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElement")],-1)),t[1639]||(t[1639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1640]||(t[1640]=l('
julia
mlirDictionaryAttrGetElement(attr, pos)

Returns pos-th element of the given dictionary attribute.

source

',3))]),e("details",_r,[e("summary",null,[t[1641]||(t[1641]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName")],-1)),t[1642]||(t[1642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1643]||(t[1643]=l('
julia
mlirDictionaryAttrGetElementByName(attr, name)

Returns the dictionary attribute element with the given name or NULL if the given name does not exist in the dictionary.

source

',3))]),e("details",to,[e("summary",null,[t[1644]||(t[1644]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements")],-1)),t[1645]||(t[1645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1646]||(t[1646]=l('
julia
mlirDictionaryAttrGetNumElements(attr)

Returns the number of attributes contained in a dictionary attribute.

source

',3))]),e("details",eo,[e("summary",null,[t[1647]||(t[1647]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID")],-1)),t[1648]||(t[1648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1649]||(t[1649]=l('
julia
mlirDictionaryAttrGetTypeID()

Returns the typeID of a Dictionary attribute.

source

',3))]),e("details",so,[e("summary",null,[t[1650]||(t[1650]=e("a",{id:"Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDisctinctAttrCreate")],-1)),t[1651]||(t[1651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1652]||(t[1652]=l('
julia
mlirDisctinctAttrCreate(referencedAttr)

Creates a DisctinctAttr with the referenced attribute.

source

',3))]),e("details",ao,[e("summary",null,[t[1653]||(t[1653]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetNumElements")],-1)),t[1654]||(t[1654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1655]||(t[1655]=l('
julia
mlirElementsAttrGetNumElements(attr)

Gets the total number of elements in the given elements attribute. In order to iterate over the attribute, obtain its type, which must be a statically shaped type and use its sizes to build a multi-dimensional index.

source

',3))]),e("details",io,[e("summary",null,[t[1656]||(t[1656]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetValue")],-1)),t[1657]||(t[1657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1658]||(t[1658]=l('
julia
mlirElementsAttrGetValue(attr, rank, idxs)

Returns the element at the given rank-dimensional index.

source

',3))]),e("details",lo,[e("summary",null,[t[1659]||(t[1659]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrIsValidIndex")],-1)),t[1660]||(t[1660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1661]||(t[1661]=l('
julia
mlirElementsAttrIsValidIndex(attr, rank, idxs)

Checks whether the given rank-dimensional index is valid in the given elements attribute.

source

',3))]),e("details",no,[e("summary",null,[t[1662]||(t[1662]=e("a",{id:"Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEmitError")],-1)),t[1663]||(t[1663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1664]||(t[1664]=l('
julia
mlirEmitError(location, message)

Emits an error at the given location through the diagnostics engine. Used for testing purposes.

source

',3))]),e("details",po,[e("summary",null,[t[1665]||(t[1665]=e("a",{id:"Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}",href:"#Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEnableGlobalDebug")],-1)),t[1666]||(t[1666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1667]||(t[1667]=l('
julia
mlirEnableGlobalDebug(enable)

Sets the global debugging flag.

source

',3))]),e("details",ro,[e("summary",null,[t[1668]||(t[1668]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineCreate")],-1)),t[1669]||(t[1669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1670]||(t[1670]=l('
julia
mlirExecutionEngineCreate(op, optLevel, numPaths, sharedLibPaths, enableObjectDump)

Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

source

',3))]),e("details",oo,[e("summary",null,[t[1671]||(t[1671]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineDestroy")],-1)),t[1672]||(t[1672]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1673]||(t[1673]=l('
julia
mlirExecutionEngineDestroy(jit)

Destroy an ExecutionEngine instance.

source

',3))]),e("details",co,[e("summary",null,[t[1674]||(t[1674]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile")],-1)),t[1675]||(t[1675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1676]||(t[1676]=l('
julia
mlirExecutionEngineDumpToObjectFile(jit, fileName)

Dump as an object in fileName.

source

',3))]),e("details",ho,[e("summary",null,[t[1677]||(t[1677]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineInvokePacked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineInvokePacked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineInvokePacked")],-1)),t[1678]||(t[1678]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1679]||(t[1679]=l('
julia
mlirExecutionEngineInvokePacked(jit, name, arguments)

Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers. The function must have been tagged with the llvm.emit\\_c\\_interface attribute. Returns a failure if the execution fails for any reason (the function name can't be resolved for instance).

source

',3))]),e("details",uo,[e("summary",null,[t[1680]||(t[1680]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineIsNull")],-1)),t[1681]||(t[1681]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1682]||(t[1682]=l('
julia
mlirExecutionEngineIsNull(jit)

Checks whether an execution engine is null.

source

',3))]),e("details",bo,[e("summary",null,[t[1683]||(t[1683]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookup")],-1)),t[1684]||(t[1684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1685]||(t[1685]=l('
julia
mlirExecutionEngineLookup(jit, name)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

source

',3))]),e("details",go,[e("summary",null,[t[1686]||(t[1686]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookupPacked")],-1)),t[1687]||(t[1687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1688]||(t[1688]=l('
julia
mlirExecutionEngineLookupPacked(jit, name)

Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up.

source

',3))]),e("details",yo,[e("summary",null,[t[1689]||(t[1689]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol")],-1)),t[1690]||(t[1690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1691]||(t[1691]=l('
julia
mlirExecutionEngineRegisterSymbol(jit, name, sym)

Register a symbol with the jit: this symbol will be accessible to the jitted code.

source

',3))]),e("details",mo,[e("summary",null,[t[1692]||(t[1692]=e("a",{id:"Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExternalPassSignalFailure")],-1)),t[1693]||(t[1693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1694]||(t[1694]=l('
julia
mlirExternalPassSignalFailure(pass)

This signals that the pass has failed. This is only valid to call during the run callback of MlirExternalPassCallbacks. See Pass::signalPassFailure().

source

',3))]),e("details",ko,[e("summary",null,[t[1695]||(t[1695]=e("a",{id:"Reactant.MLIR.API.mlirF16TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF16TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF16TypeGet")],-1)),t[1696]||(t[1696]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1697]||(t[1697]=l('
julia
mlirF16TypeGet(ctx)

Creates an f16 type in the given context. The type is owned by the context.

source

',3))]),e("details",fo,[e("summary",null,[t[1698]||(t[1698]=e("a",{id:"Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF32TypeGet")],-1)),t[1699]||(t[1699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1700]||(t[1700]=l('
julia
mlirF32TypeGet(ctx)

Creates an f32 type in the given context. The type is owned by the context.

source

',3))]),e("details",Ro,[e("summary",null,[t[1701]||(t[1701]=e("a",{id:"Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF64TypeGet")],-1)),t[1702]||(t[1702]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1703]||(t[1703]=l('
julia
mlirF64TypeGet(ctx)

Creates a f64 type in the given context. The type is owned by the context.

source

',3))]),e("details",Io,[e("summary",null,[t[1704]||(t[1704]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet")],-1)),t[1705]||(t[1705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1706]||(t[1706]=l('
julia
mlirFlatSymbolRefAttrGet(ctx, symbol)

Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.

source

',3))]),e("details",jo,[e("summary",null,[t[1707]||(t[1707]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue")],-1)),t[1708]||(t[1708]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1709]||(t[1709]=l('
julia
mlirFlatSymbolRefAttrGetValue(attr)

Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",Mo,[e("summary",null,[t[1710]||(t[1710]=e("a",{id:"Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat16TypeGetTypeID")],-1)),t[1711]||(t[1711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1712]||(t[1712]=l('
julia
mlirFloat16TypeGetTypeID()

Returns the typeID of an Float16 type.

source

',3))]),e("details",Ao,[e("summary",null,[t[1713]||(t[1713]=e("a",{id:"Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat32TypeGetTypeID")],-1)),t[1714]||(t[1714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1715]||(t[1715]=l('
julia
mlirFloat32TypeGetTypeID()

Returns the typeID of an Float32 type.

source

',3))]),e("details",Lo,[e("summary",null,[t[1716]||(t[1716]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet")],-1)),t[1717]||(t[1717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1718]||(t[1718]=l('
julia
mlirFloat4E2M1FNTypeGet(ctx)

Creates an f4E2M1FN type in the given context. The type is owned by the context.

source

',3))]),e("details",Eo,[e("summary",null,[t[1719]||(t[1719]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID")],-1)),t[1720]||(t[1720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1721]||(t[1721]=l('
julia
mlirFloat4E2M1FNTypeGetTypeID()

Returns the typeID of an Float4E2M1FN type.

source

',3))]),e("details",vo,[e("summary",null,[t[1722]||(t[1722]=e("a",{id:"Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat64TypeGetTypeID")],-1)),t[1723]||(t[1723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1724]||(t[1724]=l('
julia
mlirFloat64TypeGetTypeID()

Returns the typeID of an Float64 type.

source

',3))]),e("details",To,[e("summary",null,[t[1725]||(t[1725]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet")],-1)),t[1726]||(t[1726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1727]||(t[1727]=l('
julia
mlirFloat6E2M3FNTypeGet(ctx)

Creates an f6E2M3FN type in the given context. The type is owned by the context.

source

',3))]),e("details",Co,[e("summary",null,[t[1728]||(t[1728]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID")],-1)),t[1729]||(t[1729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1730]||(t[1730]=l('
julia
mlirFloat6E2M3FNTypeGetTypeID()

Returns the typeID of an Float6E2M3FN type.

source

',3))]),e("details",xo,[e("summary",null,[t[1731]||(t[1731]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet")],-1)),t[1732]||(t[1732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1733]||(t[1733]=l('
julia
mlirFloat6E3M2FNTypeGet(ctx)

Creates an f6E3M2FN type in the given context. The type is owned by the context.

source

',3))]),e("details",Fo,[e("summary",null,[t[1734]||(t[1734]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID")],-1)),t[1735]||(t[1735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1736]||(t[1736]=l('
julia
mlirFloat6E3M2FNTypeGetTypeID()

Returns the typeID of an Float6E3M2FN type.

source

',3))]),e("details",Po,[e("summary",null,[t[1737]||(t[1737]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGet")],-1)),t[1738]||(t[1738]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1739]||(t[1739]=l('
julia
mlirFloat8E3M4TypeGet(ctx)

Creates an f8E3M4 type in the given context. The type is owned by the context.

source

',3))]),e("details",Do,[e("summary",null,[t[1740]||(t[1740]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID")],-1)),t[1741]||(t[1741]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1742]||(t[1742]=l('
julia
mlirFloat8E3M4TypeGetTypeID()

Returns the typeID of an Float8E3M4 type.

source

',3))]),e("details",Oo,[e("summary",null,[t[1743]||(t[1743]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet")],-1)),t[1744]||(t[1744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1745]||(t[1745]=l('
julia
mlirFloat8E4M3B11FNUZTypeGet(ctx)

Creates an f8E4M3B11FNUZ type in the given context. The type is owned by the context.

source

',3))]),e("details",Bo,[e("summary",null,[t[1746]||(t[1746]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID")],-1)),t[1747]||(t[1747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1748]||(t[1748]=l('
julia
mlirFloat8E4M3B11FNUZTypeGetTypeID()

Returns the typeID of an Float8E4M3B11FNUZ type.

source

',3))]),e("details",Go,[e("summary",null,[t[1749]||(t[1749]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet")],-1)),t[1750]||(t[1750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1751]||(t[1751]=l('
julia
mlirFloat8E4M3FNTypeGet(ctx)

Creates an f8E4M3FN type in the given context. The type is owned by the context.

source

',3))]),e("details",zo,[e("summary",null,[t[1752]||(t[1752]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID")],-1)),t[1753]||(t[1753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1754]||(t[1754]=l('
julia
mlirFloat8E4M3FNTypeGetTypeID()

Returns the typeID of an Float8E4M3FN type.

source

',3))]),e("details",wo,[e("summary",null,[t[1755]||(t[1755]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet")],-1)),t[1756]||(t[1756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1757]||(t[1757]=l('
julia
mlirFloat8E4M3FNUZTypeGet(ctx)

Creates an f8E4M3FNUZ type in the given context. The type is owned by the context.

source

',3))]),e("details",So,[e("summary",null,[t[1758]||(t[1758]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID")],-1)),t[1759]||(t[1759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1760]||(t[1760]=l('
julia
mlirFloat8E4M3FNUZTypeGetTypeID()

Returns the typeID of an Float8E4M3FNUZ type.

source

',3))]),e("details",No,[e("summary",null,[t[1761]||(t[1761]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGet")],-1)),t[1762]||(t[1762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1763]||(t[1763]=l('
julia
mlirFloat8E4M3TypeGet(ctx)

Creates an f8E4M3 type in the given context. The type is owned by the context.

source

',3))]),e("details",Vo,[e("summary",null,[t[1764]||(t[1764]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID")],-1)),t[1765]||(t[1765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1766]||(t[1766]=l('
julia
mlirFloat8E4M3TypeGetTypeID()

Returns the typeID of an Float8E4M3 type.

source

',3))]),e("details",qo,[e("summary",null,[t[1767]||(t[1767]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet")],-1)),t[1768]||(t[1768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1769]||(t[1769]=l('
julia
mlirFloat8E5M2FNUZTypeGet(ctx)

Creates an f8E5M2FNUZ type in the given context. The type is owned by the context.

source

',3))]),e("details",Uo,[e("summary",null,[t[1770]||(t[1770]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID")],-1)),t[1771]||(t[1771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1772]||(t[1772]=l('
julia
mlirFloat8E5M2FNUZTypeGetTypeID()

Returns the typeID of an Float8E5M2FNUZ type.

source

',3))]),e("details",Qo,[e("summary",null,[t[1773]||(t[1773]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGet")],-1)),t[1774]||(t[1774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1775]||(t[1775]=l('
julia
mlirFloat8E5M2TypeGet(ctx)

Creates an f8E5M2 type in the given context. The type is owned by the context.

source

',3))]),e("details",Wo,[e("summary",null,[t[1776]||(t[1776]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID")],-1)),t[1777]||(t[1777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1778]||(t[1778]=l('
julia
mlirFloat8E5M2TypeGetTypeID()

Returns the typeID of an Float8E5M2 type.

source

',3))]),e("details",Ho,[e("summary",null,[t[1779]||(t[1779]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet")],-1)),t[1780]||(t[1780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1781]||(t[1781]=l('
julia
mlirFloat8E8M0FNUTypeGet(ctx)

Creates an f8E8M0FNU type in the given context. The type is owned by the context.

source

',3))]),e("details",Zo,[e("summary",null,[t[1782]||(t[1782]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID")],-1)),t[1783]||(t[1783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1784]||(t[1784]=l('
julia
mlirFloat8E8M0FNUTypeGetTypeID()

Returns the typeID of an Float8E8M0FNU type.

source

',3))]),e("details",Jo,[e("summary",null,[t[1785]||(t[1785]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGet")],-1)),t[1786]||(t[1786]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1787]||(t[1787]=l('
julia
mlirFloatAttrDoubleGet(ctx, type, value)

Creates a floating point attribute in the given context with the given double value and double-precision FP semantics.

source

',3))]),e("details",Ko,[e("summary",null,[t[1788]||(t[1788]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked")],-1)),t[1789]||(t[1789]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1790]||(t[1790]=l('
julia
mlirFloatAttrDoubleGetChecked(loc, type, value)

Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a construction of a FloatAttr, returns a null MlirAttribute.

source

',3))]),e("details",$o,[e("summary",null,[t[1791]||(t[1791]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloatAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrGetTypeID")],-1)),t[1792]||(t[1792]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1793]||(t[1793]=l('
julia
mlirFloatAttrGetTypeID()

Returns the typeID of a Float attribute.

source

',3))]),e("details",Xo,[e("summary",null,[t[1794]||(t[1794]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrGetValueDouble")],-1)),t[1795]||(t[1795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1796]||(t[1796]=l('
julia
mlirFloatAttrGetValueDouble(attr)

Returns the value stored in the given floating point attribute, interpreting the value as double.

source

',3))]),e("details",Yo,[e("summary",null,[t[1797]||(t[1797]=e("a",{id:"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID")],-1)),t[1798]||(t[1798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1799]||(t[1799]=l('
julia
mlirFloatTF32TypeGetTypeID()

Returns the typeID of a TF32 type.

source

',3))]),e("details",_o,[e("summary",null,[t[1800]||(t[1800]=e("a",{id:"Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTypeGetWidth")],-1)),t[1801]||(t[1801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1802]||(t[1802]=l('
julia
mlirFloatTypeGetWidth(type)

Returns the bitwidth of a floating-point type.

source

',3))]),e("details",td,[e("summary",null,[t[1803]||(t[1803]=e("a",{id:"Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFreezeRewritePattern")],-1)),t[1804]||(t[1804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1805]||(t[1805]=l('
julia
mlirFreezeRewritePattern(op)

FrozenRewritePatternSet API

source

',3))]),e("details",ed,[e("summary",null,[t[1806]||(t[1806]=e("a",{id:"Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFuncSetArgAttr")],-1)),t[1807]||(t[1807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1808]||(t[1808]=l('
julia
mlirFuncSetArgAttr(op, pos, name, attr)

Sets the argument attribute 'name' of an argument at index 'pos'. Asserts that the operation is a FuncOp.

source

',3))]),e("details",sd,[e("summary",null,[t[1809]||(t[1809]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGet")],-1)),t[1810]||(t[1810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1811]||(t[1811]=l('
julia
mlirFunctionTypeGet(ctx, numInputs, inputs, numResults, results)

Creates a function type, mapping a list of input types to result types.

source

',3))]),e("details",ad,[e("summary",null,[t[1812]||(t[1812]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetInput")],-1)),t[1813]||(t[1813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1814]||(t[1814]=l('
julia
mlirFunctionTypeGetInput(type, pos)

Returns the pos-th input type.

source

',3))]),e("details",id,[e("summary",null,[t[1815]||(t[1815]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs")],-1)),t[1816]||(t[1816]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1817]||(t[1817]=l('
julia
mlirFunctionTypeGetNumInputs(type)

Returns the number of input types.

source

',3))]),e("details",ld,[e("summary",null,[t[1818]||(t[1818]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumResults")],-1)),t[1819]||(t[1819]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1820]||(t[1820]=l('
julia
mlirFunctionTypeGetNumResults(type)

Returns the number of result types.

source

',3))]),e("details",nd,[e("summary",null,[t[1821]||(t[1821]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetResult")],-1)),t[1822]||(t[1822]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1823]||(t[1823]=l('
julia
mlirFunctionTypeGetResult(type, pos)

Returns the pos-th result type.

source

',3))]),e("details",pd,[e("summary",null,[t[1824]||(t[1824]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetTypeID")],-1)),t[1825]||(t[1825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1826]||(t[1826]=l('
julia
mlirFunctionTypeGetTypeID()

Returns the typeID of an Function type.

source

',3))]),e("details",rd,[e("summary",null,[t[1827]||(t[1827]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreate")],-1)),t[1828]||(t[1828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1829]||(t[1829]=l('
julia
mlirIRRewriterCreate(context)

Create an IRRewriter and transfer ownership to the caller.

source

',3))]),e("details",od,[e("summary",null,[t[1830]||(t[1830]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreateFromOp")],-1)),t[1831]||(t[1831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1832]||(t[1832]=l('
julia
mlirIRRewriterCreateFromOp(op)

Create an IRRewriter and transfer ownership to the caller. Additionally set the insertion point before the operation.

source

',3))]),e("details",dd,[e("summary",null,[t[1833]||(t[1833]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterDestroy")],-1)),t[1834]||(t[1834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1835]||(t[1835]=l('
julia
mlirIRRewriterDestroy(rewriter)

Takes an IRRewriter owned by the caller and destroys it. It is the responsibility of the user to only pass an IRRewriter class.

source

',3))]),e("details",cd,[e("summary",null,[t[1836]||(t[1836]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierEqual")],-1)),t[1837]||(t[1837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1838]||(t[1838]=l('
julia
mlirIdentifierEqual(ident, other)

Checks whether two identifiers are the same.

source

',3))]),e("details",hd,[e("summary",null,[t[1839]||(t[1839]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGet")],-1)),t[1840]||(t[1840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1841]||(t[1841]=l('
julia
mlirIdentifierGet(context, str)

Gets an identifier with the given string value.

source

',3))]),e("details",ud,[e("summary",null,[t[1842]||(t[1842]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGetContext")],-1)),t[1843]||(t[1843]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1844]||(t[1844]=l('
julia
mlirIdentifierGetContext(arg1)

Returns the context associated with this identifier

source

',3))]),e("details",bd,[e("summary",null,[t[1845]||(t[1845]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierStr")],-1)),t[1846]||(t[1846]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1847]||(t[1847]=l('
julia
mlirIdentifierStr(ident)

Gets the string value of the identifier.

source

',3))]),e("details",gd,[e("summary",null,[t[1848]||(t[1848]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGet")],-1)),t[1849]||(t[1849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1850]||(t[1850]=l('
julia
mlirIndexTypeGet(ctx)

Creates an index type in the given context. The type is owned by the context.

source

',3))]),e("details",yd,[e("summary",null,[t[1851]||(t[1851]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGetTypeID")],-1)),t[1852]||(t[1852]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1853]||(t[1853]=l('
julia
mlirIndexTypeGetTypeID()

Returns the typeID of an Index type.

source

',3))]),e("details",md,[e("summary",null,[t[1854]||(t[1854]=e("a",{id:"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes")],-1)),t[1855]||(t[1855]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1856]||(t[1856]=l('
julia
mlirInferShapedTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)

Infers the return shaped type components of the operation. Calls callback with the types of inferred arguments on success. Returns failure otherwise.

source

',3))]),e("details",kd,[e("summary",null,[t[1857]||(t[1857]=e("a",{id:"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceTypeID")],-1)),t[1858]||(t[1858]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1859]||(t[1859]=l('
julia
mlirInferShapedTypeOpInterfaceTypeID()

Returns the interface TypeID of the InferShapedTypeOpInterface.

source

',3))]),e("details",fd,[e("summary",null,[t[1860]||(t[1860]=e("a",{id:"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes")],-1)),t[1861]||(t[1861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1862]||(t[1862]=l('
julia
mlirInferTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)

Infers the return types of the operation identified by its canonical given the arguments that will be supplied to its generic builder. Calls callback with the types of inferred arguments, potentially several times, on success. Returns failure otherwise.

source

',3))]),e("details",Rd,[e("summary",null,[t[1863]||(t[1863]=e("a",{id:"Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferTypeOpInterfaceTypeID")],-1)),t[1864]||(t[1864]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1865]||(t[1865]=l('
julia
mlirInferTypeOpInterfaceTypeID()

Returns the interface TypeID of the InferTypeOpInterface.

source

',3))]),e("details",Id,[e("summary",null,[t[1866]||(t[1866]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGet")],-1)),t[1867]||(t[1867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1868]||(t[1868]=l('
julia
mlirIntegerAttrGet(type, value)

Creates an integer attribute of the given type with the given integer value.

source

',3))]),e("details",jd,[e("summary",null,[t[1869]||(t[1869]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetTypeID")],-1)),t[1870]||(t[1870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1871]||(t[1871]=l('
julia
mlirIntegerAttrGetTypeID()

Returns the typeID of an Integer attribute.

source

',3))]),e("details",Md,[e("summary",null,[t[1872]||(t[1872]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueInt")],-1)),t[1873]||(t[1873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1874]||(t[1874]=l('
julia
mlirIntegerAttrGetValueInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of signless type and fits into a signed 64-bit integer.

source

',3))]),e("details",Ad,[e("summary",null,[t[1875]||(t[1875]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt")],-1)),t[1876]||(t[1876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1877]||(t[1877]=l('
julia
mlirIntegerAttrGetValueSInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.

source

',3))]),e("details",Ld,[e("summary",null,[t[1878]||(t[1878]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt")],-1)),t[1879]||(t[1879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1880]||(t[1880]=l('
julia
mlirIntegerAttrGetValueUInt(attr)

Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.

source

',3))]),e("details",Ed,[e("summary",null,[t[1881]||(t[1881]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGet")],-1)),t[1882]||(t[1882]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1883]||(t[1883]=l('
julia
mlirIntegerSetAttrGet(set)

Creates an integer set attribute wrapping the given set. The attribute belongs to the same context as the integer set.

source

',3))]),e("details",vd,[e("summary",null,[t[1884]||(t[1884]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID")],-1)),t[1885]||(t[1885]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1886]||(t[1886]=l('
julia
mlirIntegerSetAttrGetTypeID()

Returns the typeID of an IntegerSet attribute.

source

',3))]),e("details",Td,[e("summary",null,[t[1887]||(t[1887]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetValue")],-1)),t[1888]||(t[1888]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1889]||(t[1889]=l('
julia
mlirIntegerSetAttrGetValue(attr)

Returns the integer set wrapped in the given integer set attribute.

source

',3))]),e("details",Cd,[e("summary",null,[t[1890]||(t[1890]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetDump")],-1)),t[1891]||(t[1891]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1892]||(t[1892]=l('
julia
mlirIntegerSetDump(set)

Prints an integer set to the standard error stream.

source

',3))]),e("details",xd,[e("summary",null,[t[1893]||(t[1893]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEmptyGet")],-1)),t[1894]||(t[1894]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1895]||(t[1895]=l('
julia
mlirIntegerSetEmptyGet(context, numDims, numSymbols)

Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.

source

',3))]),e("details",Fd,[e("summary",null,[t[1896]||(t[1896]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEqual")],-1)),t[1897]||(t[1897]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1898]||(t[1898]=l('
julia
mlirIntegerSetEqual(s1, s2)

Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.

source

',3))]),e("details",Pd,[e("summary",null,[t[1899]||(t[1899]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGet")],-1)),t[1900]||(t[1900]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1901]||(t[1901]=l('
julia
mlirIntegerSetGet(context, numDims, numSymbols, numConstraints, constraints, eqFlags)

Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqFlags is 1) or inequalities (eqFlags is 0). Both constraints and eqFlags are expected to point to at least numConstraint consecutive values.

source

',3))]),e("details",Dd,[e("summary",null,[t[1902]||(t[1902]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetConstraint-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetConstraint-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetConstraint")],-1)),t[1903]||(t[1903]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1904]||(t[1904]=l('
julia
mlirIntegerSetGetConstraint(set, pos)

Returns pos-th constraint of the set.

source

',3))]),e("details",Od,[e("summary",null,[t[1905]||(t[1905]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetContext")],-1)),t[1906]||(t[1906]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1907]||(t[1907]=l('
julia
mlirIntegerSetGetContext(set)

Gets the context in which the given integer set lives.

source

',3))]),e("details",Bd,[e("summary",null,[t[1908]||(t[1908]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints")],-1)),t[1909]||(t[1909]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1910]||(t[1910]=l('
julia
mlirIntegerSetGetNumConstraints(set)

Returns the number of constraints (equalities + inequalities) in the given set.

source

',3))]),e("details",Gd,[e("summary",null,[t[1911]||(t[1911]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumDims")],-1)),t[1912]||(t[1912]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1913]||(t[1913]=l('
julia
mlirIntegerSetGetNumDims(set)

Returns the number of dimensions in the given set.

source

',3))]),e("details",zd,[e("summary",null,[t[1914]||(t[1914]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities")],-1)),t[1915]||(t[1915]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1916]||(t[1916]=l('
julia
mlirIntegerSetGetNumEqualities(set)

Returns the number of equalities in the given set.

source

',3))]),e("details",wd,[e("summary",null,[t[1917]||(t[1917]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities")],-1)),t[1918]||(t[1918]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1919]||(t[1919]=l('
julia
mlirIntegerSetGetNumInequalities(set)

Returns the number of inequalities in the given set.

source

',3))]),e("details",Sd,[e("summary",null,[t[1920]||(t[1920]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInputs")],-1)),t[1921]||(t[1921]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1922]||(t[1922]=l('
julia
mlirIntegerSetGetNumInputs(set)

Returns the number of inputs (dimensions + symbols) in the given set.

source

',3))]),e("details",Nd,[e("summary",null,[t[1923]||(t[1923]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols")],-1)),t[1924]||(t[1924]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1925]||(t[1925]=l('
julia
mlirIntegerSetGetNumSymbols(set)

Returns the number of symbols in the given set.

source

',3))]),e("details",Vd,[e("summary",null,[t[1926]||(t[1926]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty")],-1)),t[1927]||(t[1927]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1928]||(t[1928]=l('
julia
mlirIntegerSetIsCanonicalEmpty(set)

Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet.

source

',3))]),e("details",qd,[e("summary",null,[t[1929]||(t[1929]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsConstraintEq-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsConstraintEq-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsConstraintEq")],-1)),t[1930]||(t[1930]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1931]||(t[1931]=l('
julia
mlirIntegerSetIsConstraintEq(set, pos)

Returns true of the pos-th constraint of the set is an equality constraint, false otherwise.

source

',3))]),e("details",Ud,[e("summary",null,[t[1932]||(t[1932]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsNull")],-1)),t[1933]||(t[1933]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1934]||(t[1934]=l('
julia
mlirIntegerSetIsNull(set)

Checks whether an integer set is a null object.

source

',3))]),e("details",Qd,[e("summary",null,[t[1935]||(t[1935]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetPrint")],-1)),t[1936]||(t[1936]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1937]||(t[1937]=l('
julia
mlirIntegerSetPrint(set, callback, userData)

Prints an integer set by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Wd,[e("summary",null,[t[1938]||(t[1938]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetReplaceGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetReplaceGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetReplaceGet")],-1)),t[1939]||(t[1939]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1940]||(t[1940]=l('
julia
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)

Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements and symbolReplacements are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims and numResultSymbols dimensions and symbols, respectively.

source

',3))]),e("details",Hd,[e("summary",null,[t[1941]||(t[1941]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGet")],-1)),t[1942]||(t[1942]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1943]||(t[1943]=l('
julia
mlirIntegerTypeGet(ctx, bitwidth)

Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",Zd,[e("summary",null,[t[1944]||(t[1944]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetTypeID")],-1)),t[1945]||(t[1945]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1946]||(t[1946]=l('
julia
mlirIntegerTypeGetTypeID()

Returns the typeID of an Integer type.

source

',3))]),e("details",Jd,[e("summary",null,[t[1947]||(t[1947]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetWidth")],-1)),t[1948]||(t[1948]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1949]||(t[1949]=l('
julia
mlirIntegerTypeGetWidth(type)

Returns the bitwidth of an integer type.

source

',3))]),e("details",Kd,[e("summary",null,[t[1950]||(t[1950]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSigned")],-1)),t[1951]||(t[1951]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1952]||(t[1952]=l('
julia
mlirIntegerTypeIsSigned(type)

Checks whether the given integer type is signed.

source

',3))]),e("details",$d,[e("summary",null,[t[1953]||(t[1953]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSignless")],-1)),t[1954]||(t[1954]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1955]||(t[1955]=l('
julia
mlirIntegerTypeIsSignless(type)

Checks whether the given integer type is signless.

source

',3))]),e("details",Xd,[e("summary",null,[t[1956]||(t[1956]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned")],-1)),t[1957]||(t[1957]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1958]||(t[1958]=l('
julia
mlirIntegerTypeIsUnsigned(type)

Checks whether the given integer type is unsigned.

source

',3))]),e("details",Yd,[e("summary",null,[t[1959]||(t[1959]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeSignedGet")],-1)),t[1960]||(t[1960]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1961]||(t[1961]=l('
julia
mlirIntegerTypeSignedGet(ctx, bitwidth)

Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",_d,[e("summary",null,[t[1962]||(t[1962]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet")],-1)),t[1963]||(t[1963]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1964]||(t[1964]=l('
julia
mlirIntegerTypeUnsignedGet(ctx, bitwidth)

Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.

source

',3))]),e("details",tc,[e("summary",null,[t[1965]||(t[1965]=e("a",{id:"Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIsCurrentDebugType")],-1)),t[1966]||(t[1966]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1967]||(t[1967]=l('
julia
mlirIsCurrentDebugType(type)

Checks if type is set as the current debug type.

source

',3))]),e("details",ec,[e("summary",null,[t[1968]||(t[1968]=e("a",{id:"Reactant.MLIR.API.mlirIsGlobalDebugEnabled-Tuple{}",href:"#Reactant.MLIR.API.mlirIsGlobalDebugEnabled-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIsGlobalDebugEnabled")],-1)),t[1969]||(t[1969]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1970]||(t[1970]=l('
julia
mlirIsGlobalDebugEnabled()

Retuns true if the global debugging flag is set, false otherwise.

source

',3))]),e("details",sc,[e("summary",null,[t[1971]||(t[1971]=e("a",{id:"Reactant.MLIR.API.mlirLLVMArrayTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMArrayTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMArrayTypeGet")],-1)),t[1972]||(t[1972]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1973]||(t[1973]=l('
julia
mlirLLVMArrayTypeGet(elementType, numElements)

Creates an llvm.array type.

source

',3))]),e("details",ac,[e("summary",null,[t[1974]||(t[1974]=e("a",{id:"Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMCConvAttrGet")],-1)),t[1975]||(t[1975]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1976]||(t[1976]=l('
julia
mlirLLVMCConvAttrGet(ctx, cconv)

Creates a LLVM CConv attribute.

source

',3))]),e("details",ic,[e("summary",null,[t[1977]||(t[1977]=e("a",{id:"Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMComdatAttrGet")],-1)),t[1978]||(t[1978]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1979]||(t[1979]=l('
julia
mlirLLVMComdatAttrGet(ctx, comdat)

Creates a LLVM Comdat attribute.

source

',3))]),e("details",lc,[e("summary",null,[t[1980]||(t[1980]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet")],-1)),t[1981]||(t[1981]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1982]||(t[1982]=l('
julia
mlirLLVMDIAnnotationAttrGet(ctx, name, value)

Creates a LLVM DIAnnotation attribute.

source

',3))]),e("details",nc,[e("summary",null,[t[1983]||(t[1983]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet")],-1)),t[1984]||(t[1984]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1985]||(t[1985]=l('
julia
mlirLLVMDIBasicTypeAttrGet(ctx, tag, name, sizeInBits, encoding)

Creates a LLVM DIBasicType attribute.

source

',3))]),e("details",pc,[e("summary",null,[t[1986]||(t[1986]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet")],-1)),t[1987]||(t[1987]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1988]||(t[1988]=l('
julia
mlirLLVMDICompileUnitAttrGet(ctx, id, sourceLanguage, file, producer, isOptimized, emissionKind, nameTableKind)

Creates a LLVM DICompileUnit attribute.

source

',3))]),e("details",rc,[e("summary",null,[t[1989]||(t[1989]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet")],-1)),t[1990]||(t[1990]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1991]||(t[1991]=l('
julia
mlirLLVMDICompositeTypeAttrGet(ctx, recId, isRecSelf, tag, name, file, line, scope, baseType, flags, sizeInBits, alignInBits, nElements, elements, dataLocation, rank, allocated, associated)

Creates a LLVM DICompositeType attribute.

source

',3))]),e("details",oc,[e("summary",null,[t[1992]||(t[1992]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf")],-1)),t[1993]||(t[1993]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1994]||(t[1994]=l('
julia
mlirLLVMDICompositeTypeAttrGetRecSelf(recId)

Creates a self-referencing LLVM DICompositeType attribute.

source

',3))]),e("details",dc,[e("summary",null,[t[1995]||(t[1995]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet")],-1)),t[1996]||(t[1996]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1997]||(t[1997]=l('
julia
mlirLLVMDIDerivedTypeAttrGet(ctx, tag, name, baseType, sizeInBits, alignInBits, offsetInBits, dwarfAddressSpace, extraData)

Creates a LLVM DIDerivedType attribute. Note that dwarfAddressSpace is an optional field, where MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL indicates null and non-negative values indicate a value present.

source

',3))]),e("details",cc,[e("summary",null,[t[1998]||(t[1998]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGetBaseType")],-1)),t[1999]||(t[1999]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2e3]||(t[2e3]=l('
julia
mlirLLVMDIDerivedTypeAttrGetBaseType(diDerivedType)

Gets the base type from a LLVM DIDerivedType attribute.

source

',3))]),e("details",hc,[e("summary",null,[t[2001]||(t[2001]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet")],-1)),t[2002]||(t[2002]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2003]||(t[2003]=l('
julia
mlirLLVMDIExpressionAttrGet(ctx, nOperations, operations)

Creates a LLVM DIExpression attribute.

source

',3))]),e("details",uc,[e("summary",null,[t[2004]||(t[2004]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet")],-1)),t[2005]||(t[2005]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2006]||(t[2006]=l('
julia
mlirLLVMDIExpressionElemAttrGet(ctx, opcode, nArguments, arguments)

Creates a LLVM DIExpressionElem attribute.

source

',3))]),e("details",bc,[e("summary",null,[t[2007]||(t[2007]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFileAttrGet")],-1)),t[2008]||(t[2008]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2009]||(t[2009]=l('
julia
mlirLLVMDIFileAttrGet(ctx, name, directory)

Creates a LLVM DIFileAttr attribute.

source

',3))]),e("details",gc,[e("summary",null,[t[2010]||(t[2010]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet")],-1)),t[2011]||(t[2011]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2012]||(t[2012]=l('
julia
mlirLLVMDIFlagsAttrGet(ctx, value)

Creates a LLVM DIFlags attribute.

source

',3))]),e("details",yc,[e("summary",null,[t[2013]||(t[2013]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet")],-1)),t[2014]||(t[2014]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2015]||(t[2015]=l('
julia
mlirLLVMDIImportedEntityAttrGet(ctx, tag, scope, entity, file, line, name, nElements, elements)

Creates a LLVM DIImportedEntityAttr attribute.

source

',3))]),e("details",mc,[e("summary",null,[t[2016]||(t[2016]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet")],-1)),t[2017]||(t[2017]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2018]||(t[2018]=l('
julia
mlirLLVMDILexicalBlockAttrGet(ctx, scope, file, line, column)

Creates a LLVM DILexicalBlock attribute.

source

',3))]),e("details",kc,[e("summary",null,[t[2019]||(t[2019]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet")],-1)),t[2020]||(t[2020]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2021]||(t[2021]=l('
julia
mlirLLVMDILexicalBlockFileAttrGet(ctx, scope, file, discriminator)

Creates a LLVM DILexicalBlockFile attribute.

source

',3))]),e("details",fc,[e("summary",null,[t[2022]||(t[2022]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet")],-1)),t[2023]||(t[2023]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2024]||(t[2024]=l('
julia
mlirLLVMDILocalVariableAttrGet(ctx, scope, name, diFile, line, arg, alignInBits, diType, flags)

Creates a LLVM DILocalVariableAttr attribute.

source

',3))]),e("details",Rc,[e("summary",null,[t[2025]||(t[2025]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet")],-1)),t[2026]||(t[2026]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2027]||(t[2027]=l('
julia
mlirLLVMDIModuleAttrGet(ctx, file, scope, name, configMacros, includePath, apinotes, line, isDecl)

Creates a LLVM DIModuleAttr attribute.

source

',3))]),e("details",Ic,[e("summary",null,[t[2028]||(t[2028]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope")],-1)),t[2029]||(t[2029]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2030]||(t[2030]=l('
julia
mlirLLVMDIModuleAttrGetScope(diModule)

Gets the scope of this DIModuleAttr.

source

',3))]),e("details",jc,[e("summary",null,[t[2031]||(t[2031]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet")],-1)),t[2032]||(t[2032]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2033]||(t[2033]=l('
julia
mlirLLVMDINullTypeAttrGet(ctx)

Creates a LLVM DINullType attribute.

source

',3))]),e("details",Mc,[e("summary",null,[t[2034]||(t[2034]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet")],-1)),t[2035]||(t[2035]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2036]||(t[2036]=l('
julia
mlirLLVMDISubprogramAttrGet(ctx, recId, isRecSelf, id, compileUnit, scope, name, linkageName, file, line, scopeLine, subprogramFlags, type, nRetainedNodes, retainedNodes, nAnnotations, annotations)

Creates a LLVM DISubprogramAttr attribute.

source

',3))]),e("details",Ac,[e("summary",null,[t[2037]||(t[2037]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit")],-1)),t[2038]||(t[2038]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2039]||(t[2039]=l('
julia
mlirLLVMDISubprogramAttrGetCompileUnit(diSubprogram)

Gets the compile unit from this DISubprogram.

source

',3))]),e("details",Lc,[e("summary",null,[t[2040]||(t[2040]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile")],-1)),t[2041]||(t[2041]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2042]||(t[2042]=l('
julia
mlirLLVMDISubprogramAttrGetFile(diSubprogram)

Gets the file from this DISubprogramAttr.

source

',3))]),e("details",Ec,[e("summary",null,[t[2043]||(t[2043]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine")],-1)),t[2044]||(t[2044]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2045]||(t[2045]=l('
julia
mlirLLVMDISubprogramAttrGetLine(diSubprogram)

Gets the line from this DISubprogramAttr.

source

',3))]),e("details",vc,[e("summary",null,[t[2046]||(t[2046]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf")],-1)),t[2047]||(t[2047]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2048]||(t[2048]=l('
julia
mlirLLVMDISubprogramAttrGetRecSelf(recId)

Creates a self-referencing LLVM DISubprogramAttr attribute.

source

',3))]),e("details",Tc,[e("summary",null,[t[2049]||(t[2049]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope")],-1)),t[2050]||(t[2050]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2051]||(t[2051]=l('
julia
mlirLLVMDISubprogramAttrGetScope(diSubprogram)

Gets the scope from this DISubprogramAttr.

source

',3))]),e("details",Cc,[e("summary",null,[t[2052]||(t[2052]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine")],-1)),t[2053]||(t[2053]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2054]||(t[2054]=l('
julia
mlirLLVMDISubprogramAttrGetScopeLine(diSubprogram)

Gets the scope line from this DISubprogram.

source

',3))]),e("details",xc,[e("summary",null,[t[2055]||(t[2055]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType")],-1)),t[2056]||(t[2056]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2057]||(t[2057]=l('
julia
mlirLLVMDISubprogramAttrGetType(diSubprogram)

Gets the type from this DISubprogramAttr.

source

',3))]),e("details",Fc,[e("summary",null,[t[2058]||(t[2058]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet")],-1)),t[2059]||(t[2059]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2060]||(t[2060]=l('
julia
mlirLLVMDISubroutineTypeAttrGet(ctx, callingConvention, nTypes, types)

Creates a LLVM DISubroutineTypeAttr attribute.

source

',3))]),e("details",Pc,[e("summary",null,[t[2061]||(t[2061]=e("a",{id:"Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMFunctionTypeGet")],-1)),t[2062]||(t[2062]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2063]||(t[2063]=l('
julia
mlirLLVMFunctionTypeGet(resultType, nArgumentTypes, argumentTypes, isVarArg)

Creates an llvm.func type.

source

',3))]),e("details",Dc,[e("summary",null,[t[2064]||(t[2064]=e("a",{id:"Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMLinkageAttrGet")],-1)),t[2065]||(t[2065]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2066]||(t[2066]=l('
julia
mlirLLVMLinkageAttrGet(ctx, linkage)

Creates a LLVM Linkage attribute.

source

',3))]),e("details",Oc,[e("summary",null,[t[2067]||(t[2067]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGet")],-1)),t[2068]||(t[2068]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2069]||(t[2069]=l('
julia
mlirLLVMPointerTypeGet(ctx, addressSpace)

Creates an llvm.ptr type.

source

',3))]),e("details",Bc,[e("summary",null,[t[2070]||(t[2070]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace")],-1)),t[2071]||(t[2071]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2072]||(t[2072]=l('
julia
mlirLLVMPointerTypeGetAddressSpace(pointerType)

Returns address space of llvm.ptr

source

',3))]),e("details",Gc,[e("summary",null,[t[2073]||(t[2073]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType")],-1)),t[2074]||(t[2074]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2075]||(t[2075]=l('
julia
mlirLLVMStructTypeGetElementType(type, position)

Returns the positions-th field of the struct. Asserts if the struct is opaque, not yet initialized or if the position is out of range.

source

',3))]),e("details",zc,[e("summary",null,[t[2076]||(t[2076]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetIdentifier")],-1)),t[2077]||(t[2077]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2078]||(t[2078]=l('
julia
mlirLLVMStructTypeGetIdentifier(type)

Returns the identifier of the identified struct. Asserts that the struct is identified, i.e., not literal.

source

',3))]),e("details",wc,[e("summary",null,[t[2079]||(t[2079]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes")],-1)),t[2080]||(t[2080]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2081]||(t[2081]=l('
julia
mlirLLVMStructTypeGetNumElementTypes(type)

Returns the number of fields in the struct. Asserts if the struct is opaque or not yet initialized.

source

',3))]),e("details",Sc,[e("summary",null,[t[2082]||(t[2082]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet")],-1)),t[2083]||(t[2083]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2084]||(t[2084]=l('
julia
mlirLLVMStructTypeIdentifiedGet(ctx, name)

Creates an LLVM identified struct type with no body. If a struct type with this name already exists in the context, returns that type. Use mlirLLVMStructTypeIdentifiedNewGet to create a fresh struct type, potentially renaming it. The body should be set separatelty by calling mlirLLVMStructTypeSetBody, if it isn't set already.

source

',3))]),e("details",Nc,[e("summary",null,[t[2085]||(t[2085]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedNewGet")],-1)),t[2086]||(t[2086]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2087]||(t[2087]=l('
julia
mlirLLVMStructTypeIdentifiedNewGet(ctx, name, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM identified struct type with no body and a name starting with the given prefix. If a struct with the exact name as the given prefix already exists, appends an unspecified suffix to the name so that the name is unique in context.

source

',3))]),e("details",Vc,[e("summary",null,[t[2088]||(t[2088]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral")],-1)),t[2089]||(t[2089]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2090]||(t[2090]=l('
julia
mlirLLVMStructTypeIsLiteral(type)

Returns true if the type is a literal (unnamed) LLVM struct type.

source

',3))]),e("details",qc,[e("summary",null,[t[2091]||(t[2091]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsOpaque")],-1)),t[2092]||(t[2092]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2093]||(t[2093]=l('
julia
mlirLLVMStructTypeIsOpaque(type)

Returns true is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).

source

',3))]),e("details",Uc,[e("summary",null,[t[2094]||(t[2094]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsPacked-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsPacked-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsPacked")],-1)),t[2095]||(t[2095]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2096]||(t[2096]=l('
julia
mlirLLVMStructTypeIsPacked(type)

Returns true if the struct is packed.

source

',3))]),e("details",Qc,[e("summary",null,[t[2097]||(t[2097]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGet")],-1)),t[2098]||(t[2098]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2099]||(t[2099]=l('
julia
mlirLLVMStructTypeLiteralGet(ctx, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM literal (unnamed) struct type. This may assert if the fields have types not compatible with the LLVM dialect. For a graceful failure, use the checked version.

source

',3))]),e("details",Wc,[e("summary",null,[t[2100]||(t[2100]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked")],-1)),t[2101]||(t[2101]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2102]||(t[2102]=l('
julia
mlirLLVMStructTypeLiteralGetChecked(loc, nFieldTypes, fieldTypes, isPacked)

Creates an LLVM literal (unnamed) struct type if possible. Emits a diagnostic at the given location and returns null otherwise.

source

',3))]),e("details",Hc,[e("summary",null,[t[2103]||(t[2103]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeSetBody")],-1)),t[2104]||(t[2104]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2105]||(t[2105]=l('
julia
mlirLLVMStructTypeSetBody(structType, nFieldTypes, fieldTypes, isPacked)

Sets the body of the identified struct if it hasn't been set yet. Returns whether the operation was successful.

source

',3))]),e("details",Zc,[e("summary",null,[t[2106]||(t[2106]=e("a",{id:"Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMVoidTypeGet")],-1)),t[2107]||(t[2107]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2108]||(t[2108]=l('
julia
mlirLLVMVoidTypeGet(ctx)

Creates an llmv.void type.

source

',3))]),e("details",Jc,[e("summary",null,[t[2109]||(t[2109]=e("a",{id:"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion")],-1)),t[2110]||(t[2110]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2111]||(t[2111]=l('
julia
mlirLinalgFillBuiltinNamedOpRegion(mlirOp)

Apply the special region builder for the builtin named Linalg op. Assert that mlirOp is a builtin named Linalg op.

source

',3))]),e("details",Kc,[e("summary",null,[t[2112]||(t[2112]=e("a",{id:"Reactant.MLIR.API.mlirLlvmThreadPoolCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirLlvmThreadPoolCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLlvmThreadPoolCreate")],-1)),t[2113]||(t[2113]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2114]||(t[2114]=l('
julia
mlirLlvmThreadPoolCreate()

Create an LLVM thread pool. This is reexported here to avoid directly pulling in the LLVM headers directly.

source

',3))]),e("details",$c,[e("summary",null,[t[2115]||(t[2115]=e("a",{id:"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy")],-1)),t[2116]||(t[2116]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2117]||(t[2117]=l('
julia
mlirLlvmThreadPoolDestroy(pool)

Destroy an LLVM thread pool.

source

',3))]),e("details",Xc,[e("summary",null,[t[2118]||(t[2118]=e("a",{id:"Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLoadIRDLDialects")],-1)),t[2119]||(t[2119]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2120]||(t[2120]=l('
julia
mlirLoadIRDLDialects(_module)

Loads all IRDL dialects in the provided module, registering the dialects in the module's associated context.

source

',3))]),e("details",Yc,[e("summary",null,[t[2121]||(t[2121]=e("a",{id:"Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationCallSiteGet")],-1)),t[2122]||(t[2122]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2123]||(t[2123]=l('
julia
mlirLocationCallSiteGet(callee, caller)

Creates a call site location with a callee and a caller.

source

',3))]),e("details",_c,[e("summary",null,[t[2124]||(t[2124]=e("a",{id:"Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationEqual")],-1)),t[2125]||(t[2125]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2126]||(t[2126]=l('
julia
mlirLocationEqual(l1, l2)

Checks if two locations are equal.

source

',3))]),e("details",th,[e("summary",null,[t[2127]||(t[2127]=e("a",{id:"Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFileLineColGet")],-1)),t[2128]||(t[2128]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2129]||(t[2129]=l('
julia
mlirLocationFileLineColGet(context, filename, line, col)

Creates an File/Line/Column location owned by the given context.

source

',3))]),e("details",eh,[e("summary",null,[t[2130]||(t[2130]=e("a",{id:"Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFromAttribute")],-1)),t[2131]||(t[2131]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2132]||(t[2132]=l('
julia
mlirLocationFromAttribute(attribute)

Creates a location from a location attribute.

source

',3))]),e("details",sh,[e("summary",null,[t[2133]||(t[2133]=e("a",{id:"Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFusedGet")],-1)),t[2134]||(t[2134]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2135]||(t[2135]=l('
julia
mlirLocationFusedGet(ctx, nLocations, locations, metadata)

Creates a fused location with an array of locations and metadata.

source

',3))]),e("details",ah,[e("summary",null,[t[2136]||(t[2136]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetAttribute")],-1)),t[2137]||(t[2137]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2138]||(t[2138]=l('
julia
mlirLocationGetAttribute(location)

Returns the underlying location attribute of this location.

source

',3))]),e("details",ih,[e("summary",null,[t[2139]||(t[2139]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetContext")],-1)),t[2140]||(t[2140]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2141]||(t[2141]=l('
julia
mlirLocationGetContext(location)

Gets the context that a location was created with.

source

',3))]),e("details",lh,[e("summary",null,[t[2142]||(t[2142]=e("a",{id:"Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationIsNull")],-1)),t[2143]||(t[2143]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2144]||(t[2144]=l('
julia
mlirLocationIsNull(location)

Checks if the location is null.

source

',3))]),e("details",nh,[e("summary",null,[t[2145]||(t[2145]=e("a",{id:"Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationNameGet")],-1)),t[2146]||(t[2146]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2147]||(t[2147]=l('
julia
mlirLocationNameGet(context, name, childLoc)

Creates a name location owned by the given context. Providing null location for childLoc is allowed and if childLoc is null location, then the behavior is the same as having unknown child location.

source

',3))]),e("details",ph,[e("summary",null,[t[2148]||(t[2148]=e("a",{id:"Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationPrint")],-1)),t[2149]||(t[2149]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2150]||(t[2150]=l('
julia
mlirLocationPrint(location, callback, userData)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",rh,[e("summary",null,[t[2151]||(t[2151]=e("a",{id:"Reactant.MLIR.API.mlirLocationUnknownGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationUnknownGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationUnknownGet")],-1)),t[2152]||(t[2152]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2153]||(t[2153]=l('
julia
mlirLocationUnknownGet(context)

Creates a location with unknown position owned by the given context.

source

',3))]),e("details",oh,[e("summary",null,[t[2154]||(t[2154]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultFailure")],-1)),t[2155]||(t[2155]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2156]||(t[2156]=l('
julia
mlirLogicalResultFailure()

Creates a logical result representing a failure.

source

',3))]),e("details",dh,[e("summary",null,[t[2157]||(t[2157]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsFailure")],-1)),t[2158]||(t[2158]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2159]||(t[2159]=l('
julia
mlirLogicalResultIsFailure(res)

Checks if the given logical result represents a failure.

source

',3))]),e("details",ch,[e("summary",null,[t[2160]||(t[2160]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsSuccess")],-1)),t[2161]||(t[2161]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2162]||(t[2162]=l('
julia
mlirLogicalResultIsSuccess(res)

Checks if the given logical result represents a success.

source

',3))]),e("details",hh,[e("summary",null,[t[2163]||(t[2163]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultSuccess")],-1)),t[2164]||(t[2164]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2165]||(t[2165]=l('
julia
mlirLogicalResultSuccess()

Creates a logical result representing a success.

source

',3))]),e("details",uh,[e("summary",null,[t[2166]||(t[2166]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGet")],-1)),t[2167]||(t[2167]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2168]||(t[2168]=l('
julia
mlirMemRefTypeContiguousGet(elementType, rank, shape, memorySpace)

Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context.

source

',3))]),e("details",bh,[e("summary",null,[t[2169]||(t[2169]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked")],-1)),t[2170]||(t[2170]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2171]||(t[2171]=l('
julia
mlirMemRefTypeContiguousGetChecked(loc, elementType, rank, shape, memorySpace)

Same as "mlirMemRefTypeContiguousGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",gh,[e("summary",null,[t[2172]||(t[2172]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGet")],-1)),t[2173]||(t[2173]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2174]||(t[2174]=l('
julia
mlirMemRefTypeGet(elementType, rank, shape, layout, memorySpace)

Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context.

source

',3))]),e("details",yh,[e("summary",null,[t[2175]||(t[2175]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap")],-1)),t[2176]||(t[2176]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2177]||(t[2177]=l('
julia
mlirMemRefTypeGetAffineMap(type)

Returns the affine map of the given MemRef type.

source

',3))]),e("details",mh,[e("summary",null,[t[2178]||(t[2178]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetChecked")],-1)),t[2179]||(t[2179]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2180]||(t[2180]=l('
julia
mlirMemRefTypeGetChecked(loc, elementType, rank, shape, layout, memorySpace)

Same as "mlirMemRefTypeGet" but returns a nullptr-wrapping MlirType o illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",kh,[e("summary",null,[t[2181]||(t[2181]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetLayout-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetLayout-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetLayout")],-1)),t[2182]||(t[2182]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2183]||(t[2183]=l('
julia
mlirMemRefTypeGetLayout(type)

Returns the layout of the given MemRef type.

source

',3))]),e("details",fh,[e("summary",null,[t[2184]||(t[2184]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace")],-1)),t[2185]||(t[2185]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2186]||(t[2186]=l('
julia
mlirMemRefTypeGetMemorySpace(type)

Returns the memory space of the given MemRef type.

source

',3))]),e("details",Rh,[e("summary",null,[t[2187]||(t[2187]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset")],-1)),t[2188]||(t[2188]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2189]||(t[2189]=l('
julia
mlirMemRefTypeGetStridesAndOffset(type, strides, offset)

Returns the strides of the MemRef if the layout map is in strided form. Both strides and offset are out params. strides must point to pre-allocated memory of length equal to the rank of the memref.

source

',3))]),e("details",Ih,[e("summary",null,[t[2190]||(t[2190]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetTypeID")],-1)),t[2191]||(t[2191]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2192]||(t[2192]=l('
julia
mlirMemRefTypeGetTypeID()

Returns the typeID of an MemRef type.

source

',3))]),e("details",jh,[e("summary",null,[t[2193]||(t[2193]=e("a",{id:"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone")],-1)),t[2194]||(t[2194]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2195]||(t[2195]=l('
julia
mlirMergeSymbolsIntoFromClone(target, other)

Merge the symbols from other into target, potentially renaming them to avoid conflicts. Private symbols may be renamed during the merge, public symbols must have at most one declaration. A name conflict in public symbols is reported as an error before returning a failure.

Note that this clones the other operation unlike the C++ counterpart that takes ownership.

source

',4))]),e("details",Mh,[e("summary",null,[t[2196]||(t[2196]=e("a",{id:"Reactant.MLIR.API.mlirModuleCreateEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleCreateEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleCreateEmpty")],-1)),t[2197]||(t[2197]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2198]||(t[2198]=l('
julia
mlirModuleCreateEmpty(location)

Creates a new, empty module and transfers ownership to the caller.

source

',3))]),e("details",Ah,[e("summary",null,[t[2199]||(t[2199]=e("a",{id:"Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleCreateParse")],-1)),t[2200]||(t[2200]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2201]||(t[2201]=l('
julia
mlirModuleCreateParse(context, _module)

Parses a module from the string and transfers ownership to the caller.

source

',3))]),e("details",Lh,[e("summary",null,[t[2202]||(t[2202]=e("a",{id:"Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleDestroy")],-1)),t[2203]||(t[2203]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2204]||(t[2204]=l('
julia
mlirModuleDestroy(_module)

Takes a module owned by the caller and deletes it.

source

',3))]),e("details",Eh,[e("summary",null,[t[2205]||(t[2205]=e("a",{id:"Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleFromOperation")],-1)),t[2206]||(t[2206]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2207]||(t[2207]=l('
julia
mlirModuleFromOperation(op)

Views the generic operation as a module. The returned module is null when the input operation was not a ModuleOp.

source

',3))]),e("details",vh,[e("summary",null,[t[2208]||(t[2208]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetBody")],-1)),t[2209]||(t[2209]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2210]||(t[2210]=l('
julia
mlirModuleGetBody(_module)

Gets the body of the module, i.e. the only block it contains.

source

',3))]),e("details",Th,[e("summary",null,[t[2211]||(t[2211]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetContext")],-1)),t[2212]||(t[2212]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2213]||(t[2213]=l('
julia
mlirModuleGetContext(_module)

Gets the context that a module was created with.

source

',3))]),e("details",Ch,[e("summary",null,[t[2214]||(t[2214]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetOperation")],-1)),t[2215]||(t[2215]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2216]||(t[2216]=l('
julia
mlirModuleGetOperation(_module)

Views the module as a generic operation.

source

',3))]),e("details",xh,[e("summary",null,[t[2217]||(t[2217]=e("a",{id:"Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleIsNull")],-1)),t[2218]||(t[2218]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2219]||(t[2219]=l('
julia
mlirModuleIsNull(_module)

Checks whether a module is null.

source

',3))]),e("details",Fh,[e("summary",null,[t[2220]||(t[2220]=e("a",{id:"Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNamedAttributeGet")],-1)),t[2221]||(t[2221]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2222]||(t[2222]=l('
julia
mlirNamedAttributeGet(name, attr)

Associates an attribute with the name. Takes ownership of neither.

source

',3))]),e("details",Ph,[e("summary",null,[t[2223]||(t[2223]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGet")],-1)),t[2224]||(t[2224]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2225]||(t[2225]=l('
julia
mlirNoneTypeGet(ctx)

Creates a None type in the given context. The type is owned by the context.

source

',3))]),e("details",Dh,[e("summary",null,[t[2226]||(t[2226]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGetTypeID")],-1)),t[2227]||(t[2227]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2228]||(t[2228]=l('
julia
mlirNoneTypeGetTypeID()

Returns the typeID of an None type.

source

',3))]),e("details",Oh,[e("summary",null,[t[2229]||(t[2229]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetNextUse")],-1)),t[2230]||(t[2230]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2231]||(t[2231]=l('
julia
mlirOpOperandGetNextUse(opOperand)

Returns an op operand representing the next use of the value, or a null op operand if there is no next use.

source

',3))]),e("details",Bh,[e("summary",null,[t[2232]||(t[2232]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOperandNumber")],-1)),t[2233]||(t[2233]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2234]||(t[2234]=l('
julia
mlirOpOperandGetOperandNumber(opOperand)

Returns the operand number of an op operand.

source

',3))]),e("details",Gh,[e("summary",null,[t[2235]||(t[2235]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOwner")],-1)),t[2236]||(t[2236]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2237]||(t[2237]=l('
julia
mlirOpOperandGetOwner(opOperand)

Returns the owner operation of an op operand.

source

',3))]),e("details",zh,[e("summary",null,[t[2238]||(t[2238]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetValue")],-1)),t[2239]||(t[2239]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2240]||(t[2240]=l('
julia
mlirOpOperandGetValue(opOperand)

Returns the value of an op operand.

source

',3))]),e("details",wh,[e("summary",null,[t[2241]||(t[2241]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandIsNull")],-1)),t[2242]||(t[2242]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2243]||(t[2243]=l('
julia
mlirOpOperandIsNull(opOperand)

Returns whether the op operand is null.

source

',3))]),e("details",Sh,[e("summary",null,[t[2244]||(t[2244]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass")],-1)),t[2245]||(t[2245]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2246]||(t[2246]=l('
julia
mlirOpPassManagerAddOwnedPass(passManager, pass)

Add a pass and transfer ownership to the provided mlirOpPassManager. If the pass is not a generic operation pass or matching the type of the provided PassManager, a new OpPassManager is implicitly nested under the provided PassManager.

source

',3))]),e("details",Nh,[e("summary",null,[t[2247]||(t[2247]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddPipeline")],-1)),t[2248]||(t[2248]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2249]||(t[2249]=l('
julia
mlirOpPassManagerAddPipeline(passManager, pipelineElements, callback, userData)

Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

',3))]),e("details",Vh,[e("summary",null,[t[2250]||(t[2250]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder")],-1)),t[2251]||(t[2251]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2252]||(t[2252]=l('
julia
mlirOpPassManagerGetNestedUnder(passManager, operationName)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.

source

',3))]),e("details",qh,[e("summary",null,[t[2253]||(t[2253]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified")],-1)),t[2254]||(t[2254]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2255]||(t[2255]=l('
julia
mlirOpPrintingFlagsAssumeVerified(flags)

Do not verify the operation when using custom operation printers.

source

',3))]),e("details",Uh,[e("summary",null,[t[2256]||(t[2256]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsCreate")],-1)),t[2257]||(t[2257]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2258]||(t[2258]=l('
julia
mlirOpPrintingFlagsCreate()

Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirOpPrintingFlagsDestroy().

source

',3))]),e("details",Qh,[e("summary",null,[t[2259]||(t[2259]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsDestroy")],-1)),t[2260]||(t[2260]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2261]||(t[2261]=l('
julia
mlirOpPrintingFlagsDestroy(flags)

Destroys printing flags created with mlirOpPrintingFlagsCreate.

source

',3))]),e("details",Wh,[e("summary",null,[t[2262]||(t[2262]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeElementsAttrs")],-1)),t[2263]||(t[2263]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2264]||(t[2264]=l('
julia
mlirOpPrintingFlagsElideLargeElementsAttrs(flags, largeElementLimit)

Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data. The largeElementLimit is used to configure what is considered to be a "large" ElementsAttr by providing an upper limit to the number of elements.

source

',3))]),e("details",Hh,[e("summary",null,[t[2265]||(t[2265]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsElideLargeResourceString")],-1)),t[2266]||(t[2266]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2267]||(t[2267]=l('
julia
mlirOpPrintingFlagsElideLargeResourceString(flags, largeResourceLimit)

Enables the elision of large resources strings by omitting them from the dialect_resources section. The largeResourceLimit is used to configure what is considered to be a "large" resource by providing an upper limit to the string size.

source

',3))]),e("details",Zh,[e("summary",null,[t[2268]||(t[2268]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsEnableDebugInfo")],-1)),t[2269]||(t[2269]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2270]||(t[2270]=l('
julia
mlirOpPrintingFlagsEnableDebugInfo(flags, enable, prettyForm)

Enable or disable printing of debug information (based on enable). If 'prettyForm' is set to true, debug information is printed in a more readable 'pretty' form. Note: The IR generated with 'prettyForm' is not parsable.

source

',3))]),e("details",Jh,[e("summary",null,[t[2271]||(t[2271]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsPrintGenericOpForm")],-1)),t[2272]||(t[2272]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2273]||(t[2273]=l('
julia
mlirOpPrintingFlagsPrintGenericOpForm(flags)

Always print operations in the generic form.

source

',3))]),e("details",Kh,[e("summary",null,[t[2274]||(t[2274]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions")],-1)),t[2275]||(t[2275]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2276]||(t[2276]=l('
julia
mlirOpPrintingFlagsSkipRegions(flags)

Skip printing regions.

source

',3))]),e("details",$h,[e("summary",null,[t[2277]||(t[2277]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope")],-1)),t[2278]||(t[2278]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2279]||(t[2279]=l('
julia
mlirOpPrintingFlagsUseLocalScope(flags)

Use local scope when printing the operation. This allows for using the printer in a more localized and thread-safe setting, but may not necessarily be identical to what the IR will look like when dumping the full module.

source

',3))]),e("details",Xh,[e("summary",null,[t[2280]||(t[2280]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetOwner")],-1)),t[2281]||(t[2281]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2282]||(t[2282]=l('
julia
mlirOpResultGetOwner(value)

Returns an operation that produced this value as its result. Asserts if the value is not an op result.

source

',3))]),e("details",Yh,[e("summary",null,[t[2283]||(t[2283]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetResultNumber")],-1)),t[2284]||(t[2284]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2285]||(t[2285]=l('
julia
mlirOpResultGetResultNumber(value)

Returns the position of the value in the list of results of the operation that produced it.

source

',3))]),e("details",_h,[e("summary",null,[t[2286]||(t[2286]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGet")],-1)),t[2287]||(t[2287]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2288]||(t[2288]=l('
julia
mlirOpaqueAttrGet(ctx, dialectNamespace, dataLength, data, type)

Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",tu,[e("summary",null,[t[2289]||(t[2289]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetData")],-1)),t[2290]||(t[2290]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2291]||(t[2291]=l('
julia
mlirOpaqueAttrGetData(attr)

Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",eu,[e("summary",null,[t[2292]||(t[2292]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace")],-1)),t[2293]||(t[2293]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2294]||(t[2294]=l('
julia
mlirOpaqueAttrGetDialectNamespace(attr)

Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.

source

',3))]),e("details",su,[e("summary",null,[t[2295]||(t[2295]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID")],-1)),t[2296]||(t[2296]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2297]||(t[2297]=l('
julia
mlirOpaqueAttrGetTypeID()

Returns the typeID of an Opaque attribute.

source

',3))]),e("details",au,[e("summary",null,[t[2298]||(t[2298]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGet")],-1)),t[2299]||(t[2299]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2300]||(t[2300]=l('
julia
mlirOpaqueTypeGet(ctx, dialectNamespace, typeData)

Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).

source

',3))]),e("details",iu,[e("summary",null,[t[2301]||(t[2301]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetData")],-1)),t[2302]||(t[2302]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2303]||(t[2303]=l('
julia
mlirOpaqueTypeGetData(type)

Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.

source

',3))]),e("details",lu,[e("summary",null,[t[2304]||(t[2304]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace")],-1)),t[2305]||(t[2305]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2306]||(t[2306]=l('
julia
mlirOpaqueTypeGetDialectNamespace(type)

Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.

source

',3))]),e("details",nu,[e("summary",null,[t[2307]||(t[2307]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID")],-1)),t[2308]||(t[2308]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2309]||(t[2309]=l('
julia
mlirOpaqueTypeGetTypeID()

Returns the typeID of an Opaque type.

source

',3))]),e("details",pu,[e("summary",null,[t[2310]||(t[2310]=e("a",{id:"Reactant.MLIR.API.mlirOperationClone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationClone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationClone")],-1)),t[2311]||(t[2311]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2312]||(t[2312]=l('
julia
mlirOperationClone(op)

Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.

source

',3))]),e("details",ru,[e("summary",null,[t[2313]||(t[2313]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreate")],-1)),t[2314]||(t[2314]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2315]||(t[2315]=l('
julia
mlirOperationCreate(state)

Creates an operation and transfers ownership to the caller. Note that caller owned child objects are transferred in this call and must not be further used. Particularly, this applies to any regions added to the state (the implementation may invalidate any such pointers).

This call can fail under the following conditions, in which case, it will return a null operation and emit diagnostics: - Result type inference is enabled and cannot be performed.

source

',4))]),e("details",ou,[e("summary",null,[t[2316]||(t[2316]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreateParse")],-1)),t[2317]||(t[2317]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2318]||(t[2318]=l('
julia
mlirOperationCreateParse(context, sourceStr, sourceName)

Parses an operation, giving ownership to the caller. If parsing fails a null operation will be returned, and an error diagnostic emitted.

sourceStr may be either the text assembly format, or binary bytecode format. sourceName is used as the file name of the source; any IR without locations will get a FileLineColLoc location with sourceName as the file name.

source

',4))]),e("details",du,[e("summary",null,[t[2319]||(t[2319]=e("a",{id:"Reactant.MLIR.API.mlirOperationDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationDestroy")],-1)),t[2320]||(t[2320]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2321]||(t[2321]=l('
julia
mlirOperationDestroy(op)

Takes an operation owned by the caller and destroys it.

source

',3))]),e("details",cu,[e("summary",null,[t[2322]||(t[2322]=e("a",{id:"Reactant.MLIR.API.mlirOperationDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationDump")],-1)),t[2323]||(t[2323]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2324]||(t[2324]=l('
julia
mlirOperationDump(op)

Prints an operation to stderr.

source

',3))]),e("details",hu,[e("summary",null,[t[2325]||(t[2325]=e("a",{id:"Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationEqual")],-1)),t[2326]||(t[2326]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2327]||(t[2327]=l('
julia
mlirOperationEqual(op, other)

Checks whether two operation handles point to the same operation. This does not perform deep comparison.

source

',3))]),e("details",uu,[e("summary",null,[t[2328]||(t[2328]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetAttribute")],-1)),t[2329]||(t[2329]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2330]||(t[2330]=l('
julia
mlirOperationGetAttribute(op, pos)

Return pos-th attribute of the operation. Deprecated, please use mlirOperationGetInherentAttribute or mlirOperationGetDiscardableAttribute.

source

',3))]),e("details",bu,[e("summary",null,[t[2331]||(t[2331]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetAttributeByName")],-1)),t[2332]||(t[2332]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2333]||(t[2333]=l('
julia
mlirOperationGetAttributeByName(op, name)

Returns an attribute attached to the operation given its name. Deprecated, please use mlirOperationGetInherentAttributeByName or mlirOperationGetDiscardableAttributeByName.

source

',3))]),e("details",gu,[e("summary",null,[t[2334]||(t[2334]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetBlock")],-1)),t[2335]||(t[2335]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2336]||(t[2336]=l('
julia
mlirOperationGetBlock(op)

Gets the block that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",yu,[e("summary",null,[t[2337]||(t[2337]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetContext")],-1)),t[2338]||(t[2338]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2339]||(t[2339]=l('
julia
mlirOperationGetContext(op)

Gets the context this operation is associated with

source

',3))]),e("details",mu,[e("summary",null,[t[2340]||(t[2340]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute")],-1)),t[2341]||(t[2341]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2342]||(t[2342]=l('
julia
mlirOperationGetDiscardableAttribute(op, pos)

Return pos-th discardable attribute of the operation.

source

',3))]),e("details",ku,[e("summary",null,[t[2343]||(t[2343]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetDiscardableAttributeByName")],-1)),t[2344]||(t[2344]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2345]||(t[2345]=l('
julia
mlirOperationGetDiscardableAttributeByName(op, name)

Returns a discardable attribute attached to the operation given its name.

source

',3))]),e("details",fu,[e("summary",null,[t[2346]||(t[2346]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetFirstRegion")],-1)),t[2347]||(t[2347]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2348]||(t[2348]=l('
julia
mlirOperationGetFirstRegion(op)

Returns first region attached to the operation.

source

',3))]),e("details",Ru,[e("summary",null,[t[2349]||(t[2349]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName")],-1)),t[2350]||(t[2350]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2351]||(t[2351]=l('
julia
mlirOperationGetInherentAttributeByName(op, name)

Returns an inherent attribute attached to the operation given its name.

source

',3))]),e("details",Iu,[e("summary",null,[t[2352]||(t[2352]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetLocation")],-1)),t[2353]||(t[2353]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2354]||(t[2354]=l('
julia
mlirOperationGetLocation(op)

Gets the location of the operation.

source

',3))]),e("details",ju,[e("summary",null,[t[2355]||(t[2355]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetName")],-1)),t[2356]||(t[2356]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2357]||(t[2357]=l('
julia
mlirOperationGetName(op)

Gets the name of the operation as an identifier.

source

',3))]),e("details",Mu,[e("summary",null,[t[2358]||(t[2358]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNextInBlock")],-1)),t[2359]||(t[2359]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2360]||(t[2360]=l('
julia
mlirOperationGetNextInBlock(op)

Returns an operation immediately following the given operation it its enclosing block.

source

',3))]),e("details",Au,[e("summary",null,[t[2361]||(t[2361]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumAttributes")],-1)),t[2362]||(t[2362]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2363]||(t[2363]=l('
julia
mlirOperationGetNumAttributes(op)

Returns the number of attributes attached to the operation. Deprecated, please use mlirOperationGetNumInherentAttributes or mlirOperationGetNumDiscardableAttributes.

source

',3))]),e("details",Lu,[e("summary",null,[t[2364]||(t[2364]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumDiscardableAttributes")],-1)),t[2365]||(t[2365]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2366]||(t[2366]=l('
julia
mlirOperationGetNumDiscardableAttributes(op)

Returns the number of discardable attributes attached to the operation.

source

',3))]),e("details",Eu,[e("summary",null,[t[2367]||(t[2367]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumOperands")],-1)),t[2368]||(t[2368]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2369]||(t[2369]=l('
julia
mlirOperationGetNumOperands(op)

Returns the number of operands of the operation.

source

',3))]),e("details",vu,[e("summary",null,[t[2370]||(t[2370]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumRegions")],-1)),t[2371]||(t[2371]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2372]||(t[2372]=l('
julia
mlirOperationGetNumRegions(op)

Returns the number of regions attached to the given operation.

source

',3))]),e("details",Tu,[e("summary",null,[t[2373]||(t[2373]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumResults")],-1)),t[2374]||(t[2374]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2375]||(t[2375]=l('
julia
mlirOperationGetNumResults(op)

Returns the number of results of the operation.

source

',3))]),e("details",Cu,[e("summary",null,[t[2376]||(t[2376]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumSuccessors")],-1)),t[2377]||(t[2377]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2378]||(t[2378]=l('
julia
mlirOperationGetNumSuccessors(op)

Returns the number of successor blocks of the operation.

source

',3))]),e("details",xu,[e("summary",null,[t[2379]||(t[2379]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetOperand")],-1)),t[2380]||(t[2380]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2381]||(t[2381]=l('
julia
mlirOperationGetOperand(op, pos)

Returns pos-th operand of the operation.

source

',3))]),e("details",Fu,[e("summary",null,[t[2382]||(t[2382]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetParentOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetParentOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetParentOperation")],-1)),t[2383]||(t[2383]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2384]||(t[2384]=l('
julia
mlirOperationGetParentOperation(op)

Gets the operation that owns this operation, returning null if the operation is not owned.

source

',3))]),e("details",Pu,[e("summary",null,[t[2385]||(t[2385]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetRegion")],-1)),t[2386]||(t[2386]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2387]||(t[2387]=l('
julia
mlirOperationGetRegion(op, pos)

Returns pos-th region attached to the operation.

source

',3))]),e("details",Du,[e("summary",null,[t[2388]||(t[2388]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetResult")],-1)),t[2389]||(t[2389]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2390]||(t[2390]=l('
julia
mlirOperationGetResult(op, pos)

Returns pos-th result of the operation.

source

',3))]),e("details",Ou,[e("summary",null,[t[2391]||(t[2391]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetSuccessor-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetSuccessor-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetSuccessor")],-1)),t[2392]||(t[2392]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2393]||(t[2393]=l('
julia
mlirOperationGetSuccessor(op, pos)

Returns pos-th successor of the operation.

source

',3))]),e("details",Bu,[e("summary",null,[t[2394]||(t[2394]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetTypeID")],-1)),t[2395]||(t[2395]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2396]||(t[2396]=l('
julia
mlirOperationGetTypeID(op)

Gets the type id of the operation. Returns null if the operation does not have a registered operation description.

source

',3))]),e("details",Gu,[e("summary",null,[t[2397]||(t[2397]=e("a",{id:"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName")],-1)),t[2398]||(t[2398]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2399]||(t[2399]=l('
julia
mlirOperationHasInherentAttributeByName(op, name)

Returns true if this operation defines an inherent attribute with this name. Note: the attribute can be optional, so mlirOperationGetInherentAttributeByName can still return a null attribute.

source

',3))]),e("details",zu,[e("summary",null,[t[2400]||(t[2400]=e("a",{id:"Reactant.MLIR.API.mlirOperationImplementsInterface-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationImplementsInterface-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationImplementsInterface")],-1)),t[2401]||(t[2401]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2402]||(t[2402]=l('
julia
mlirOperationImplementsInterface(operation, interfaceTypeID)

Returns true if the given operation implements an interface identified by its TypeID.

source

',3))]),e("details",wu,[e("summary",null,[t[2403]||(t[2403]=e("a",{id:"Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationImplementsInterfaceStatic")],-1)),t[2404]||(t[2404]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2405]||(t[2405]=l('
julia
mlirOperationImplementsInterfaceStatic(operationName, context, interfaceTypeID)

Returns true if the operation identified by its canonical string name implements the interface identified by its TypeID in the given context. Note that interfaces may be attached to operations in some contexts and not others.

source

',3))]),e("details",Su,[e("summary",null,[t[2406]||(t[2406]=e("a",{id:"Reactant.MLIR.API.mlirOperationIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationIsNull")],-1)),t[2407]||(t[2407]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2408]||(t[2408]=l('
julia
mlirOperationIsNull(op)

Checks whether the underlying operation is null.

source

',3))]),e("details",Nu,[e("summary",null,[t[2409]||(t[2409]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveAfter")],-1)),t[2410]||(t[2410]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2411]||(t[2411]=l('
julia
mlirOperationMoveAfter(op, other)

Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",Vu,[e("summary",null,[t[2412]||(t[2412]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveBefore")],-1)),t[2413]||(t[2413]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2414]||(t[2414]=l('
julia
mlirOperationMoveBefore(op, other)

Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.

source

',3))]),e("details",qu,[e("summary",null,[t[2415]||(t[2415]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrint")],-1)),t[2416]||(t[2416]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2417]||(t[2417]=l('
julia
mlirOperationPrint(op, callback, userData)

Prints an operation by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Uu,[e("summary",null,[t[2418]||(t[2418]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrintWithFlags-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationPrintWithFlags-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrintWithFlags")],-1)),t[2419]||(t[2419]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2420]||(t[2420]=l('
julia
mlirOperationPrintWithFlags(op, flags, callback, userData)

Same as mlirOperationPrint but accepts flags controlling the printing behavior.

source

',3))]),e("details",Qu,[e("summary",null,[t[2421]||(t[2421]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrintWithState-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationPrintWithState-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrintWithState")],-1)),t[2422]||(t[2422]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2423]||(t[2423]=l('
julia
mlirOperationPrintWithState(op, state, callback, userData)

Same as mlirOperationPrint but accepts AsmState controlling the printing behavior as well as caching computed names.

source

',3))]),e("details",Wu,[e("summary",null,[t[2424]||(t[2424]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveAttributeByName")],-1)),t[2425]||(t[2425]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2426]||(t[2426]=l('
julia
mlirOperationRemoveAttributeByName(op, name)

Removes an attribute by name. Returns false if the attribute was not found and true if removed. Deprecated, please use mlirOperationRemoveInherentAttributeByName or mlirOperationRemoveDiscardableAttributeByName.

source

',3))]),e("details",Hu,[e("summary",null,[t[2427]||(t[2427]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveDiscardableAttributeByName")],-1)),t[2428]||(t[2428]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2429]||(t[2429]=l('
julia
mlirOperationRemoveDiscardableAttributeByName(op, name)

Removes a discardable attribute by name. Returns false if the attribute was not found and true if removed.

source

',3))]),e("details",Zu,[e("summary",null,[t[2430]||(t[2430]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveFromParent")],-1)),t[2431]||(t[2431]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2432]||(t[2432]=l('
julia
mlirOperationRemoveFromParent(op)

Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.

source

',3))]),e("details",Ju,[e("summary",null,[t[2433]||(t[2433]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetAttributeByName")],-1)),t[2434]||(t[2434]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2435]||(t[2435]=l('
julia
mlirOperationSetAttributeByName(op, name, attr)

Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise. Deprecated, please use mlirOperationSetInherentAttributeByName or mlirOperationSetDiscardableAttributeByName.

source

',3))]),e("details",Ku,[e("summary",null,[t[2436]||(t[2436]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetDiscardableAttributeByName")],-1)),t[2437]||(t[2437]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2438]||(t[2438]=l('
julia
mlirOperationSetDiscardableAttributeByName(op, name, attr)

Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise. The new attr Attribute is not allowed to be null, use mlirOperationRemoveDiscardableAttributeByName to remove an Attribute instead.

source

',3))]),e("details",$u,[e("summary",null,[t[2439]||(t[2439]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetInherentAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetInherentAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetInherentAttributeByName")],-1)),t[2440]||(t[2440]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2441]||(t[2441]=l('
julia
mlirOperationSetInherentAttributeByName(op, name, attr)

Sets an inherent attribute by name, replacing the existing if it exists. This has no effect if "name" does not match an inherent attribute.

source

',3))]),e("details",Xu,[e("summary",null,[t[2442]||(t[2442]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetOperand")],-1)),t[2443]||(t[2443]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2444]||(t[2444]=l('
julia
mlirOperationSetOperand(op, pos, newValue)

Sets the pos-th operand of the operation.

source

',3))]),e("details",Yu,[e("summary",null,[t[2445]||(t[2445]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetOperands-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetOperands-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetOperands")],-1)),t[2446]||(t[2446]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2447]||(t[2447]=l('
julia
mlirOperationSetOperands(op, nOperands, operands)

Replaces the operands of the operation.

source

',3))]),e("details",_u,[e("summary",null,[t[2448]||(t[2448]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetSuccessor")],-1)),t[2449]||(t[2449]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2450]||(t[2450]=l('
julia
mlirOperationSetSuccessor(op, pos, block)

Set pos-th successor of the operation.

source

',3))]),e("details",tb,[e("summary",null,[t[2451]||(t[2451]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateAddResults-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationStateAddResults-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateAddResults")],-1)),t[2452]||(t[2452]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2453]||(t[2453]=l('
julia
mlirOperationStateAddResults(state, n, results)

Adds a list of components to the operation state.

source

',3))]),e("details",eb,[e("summary",null,[t[2454]||(t[2454]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference")],-1)),t[2455]||(t[2455]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2456]||(t[2456]=l('
julia
mlirOperationStateEnableResultTypeInference(state)

Enables result type inference for the operation under construction. If enabled, then the caller must not have called mlirOperationStateAddResults(). Note that if enabled, the mlirOperationCreate() call is failable: it will return a null operation on inference failure and will emit diagnostics.

source

',3))]),e("details",sb,[e("summary",null,[t[2457]||(t[2457]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationStateGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateGet")],-1)),t[2458]||(t[2458]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2459]||(t[2459]=l('
julia
mlirOperationStateGet(name, loc)

Constructs an operation state from a name and a location.

source

',3))]),e("details",ab,[e("summary",null,[t[2460]||(t[2460]=e("a",{id:"Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationVerify")],-1)),t[2461]||(t[2461]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2462]||(t[2462]=l('
julia
mlirOperationVerify(op)

Verify the operation and return true if it passes, false if it fails.

source

',3))]),e("details",ib,[e("summary",null,[t[2463]||(t[2463]=e("a",{id:"Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWalk")],-1)),t[2464]||(t[2464]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2465]||(t[2465]=l('
julia
mlirOperationWalk(op, callback, userData, walkOrder)

Walks operation op in walkOrder and calls callback on that operation. *userData is passed to the callback as well and can be used to tunnel some context or other data into the callback.

source

',3))]),e("details",lb,[e("summary",null,[t[2466]||(t[2466]=e("a",{id:"Reactant.MLIR.API.mlirOperationWriteBytecode-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationWriteBytecode-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWriteBytecode")],-1)),t[2467]||(t[2467]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2468]||(t[2468]=l('
julia
mlirOperationWriteBytecode(op, callback, userData)

Same as mlirOperationPrint but writing the bytecode format.

source

',3))]),e("details",nb,[e("summary",null,[t[2469]||(t[2469]=e("a",{id:"Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWriteBytecodeWithConfig")],-1)),t[2470]||(t[2470]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2471]||(t[2471]=l('
julia
mlirOperationWriteBytecodeWithConfig(op, config, callback, userData)

Same as mlirOperationWriteBytecode but with writer config and returns failure only if desired bytecode could not be honored.

source

',3))]),e("details",pb,[e("summary",null,[t[2472]||(t[2472]=e("a",{id:"Reactant.MLIR.API.mlirParsePassPipeline-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirParsePassPipeline-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirParsePassPipeline")],-1)),t[2473]||(t[2473]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2474]||(t[2474]=l('
julia
mlirParsePassPipeline(passManager, pipeline, callback, userData)

Parse a textual MLIR pass pipeline and assign it to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.

source

',3))]),e("details",rb,[e("summary",null,[t[2475]||(t[2475]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerAddOwnedPass")],-1)),t[2476]||(t[2476]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2477]||(t[2477]=l('
julia
mlirPassManagerAddOwnedPass(passManager, pass)

Add a pass and transfer ownership to the provided top-level mlirPassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

source

',3))]),e("details",ob,[e("summary",null,[t[2478]||(t[2478]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreate")],-1)),t[2479]||(t[2479]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2480]||(t[2480]=l('
julia
mlirPassManagerCreate(ctx)

Create a new top-level PassManager with the default anchor.

source

',3))]),e("details",db,[e("summary",null,[t[2481]||(t[2481]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreateOnOperation")],-1)),t[2482]||(t[2482]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2483]||(t[2483]=l('
julia
mlirPassManagerCreateOnOperation(ctx, anchorOp)

Create a new top-level PassManager anchored on anchorOp.

source

',3))]),e("details",cb,[e("summary",null,[t[2484]||(t[2484]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerDestroy")],-1)),t[2485]||(t[2485]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2486]||(t[2486]=l('
julia
mlirPassManagerDestroy(passManager)

Destroy the provided PassManager.

source

',3))]),e("details",hb,[e("summary",null,[t[2487]||(t[2487]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting")],-1)),t[2488]||(t[2488]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2489]||(t[2489]=l('
julia
mlirPassManagerEnableIRPrinting(passManager, printBeforeAll, printAfterAll, printModuleScope, printAfterOnlyOnChange, printAfterOnlyOnFailure)

Enable IR printing.

source

',3))]),e("details",ub,[e("summary",null,[t[2490]||(t[2490]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableVerifier")],-1)),t[2491]||(t[2491]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2492]||(t[2492]=l('
julia
mlirPassManagerEnableVerifier(passManager, enable)

Enable / disable verify-each.

source

',3))]),e("details",bb,[e("summary",null,[t[2493]||(t[2493]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager")],-1)),t[2494]||(t[2494]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2495]||(t[2495]=l('
julia
mlirPassManagerGetAsOpPassManager(passManager)

Cast a top-level PassManager to a generic OpPassManager.

source

',3))]),e("details",gb,[e("summary",null,[t[2496]||(t[2496]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetNestedUnder")],-1)),t[2497]||(t[2497]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2498]||(t[2498]=l('
julia
mlirPassManagerGetNestedUnder(passManager, operationName)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

source

',3))]),e("details",yb,[e("summary",null,[t[2499]||(t[2499]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerIsNull")],-1)),t[2500]||(t[2500]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2501]||(t[2501]=l('
julia
mlirPassManagerIsNull(passManager)

Checks if a PassManager is null.

source

',3))]),e("details",mb,[e("summary",null,[t[2502]||(t[2502]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerRunOnOp")],-1)),t[2503]||(t[2503]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2504]||(t[2504]=l('
julia
mlirPassManagerRunOnOp(passManager, op)

Run the provided passManager on the given op.

source

',3))]),e("details",kb,[e("summary",null,[t[2505]||(t[2505]=e("a",{id:"Reactant.MLIR.API.mlirPrintPassPipeline-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirPrintPassPipeline-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPrintPassPipeline")],-1)),t[2506]||(t[2506]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2507]||(t[2507]=l('
julia
mlirPrintPassPipeline(passManager, callback, userData)

Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",fb,[e("summary",null,[t[2508]||(t[2508]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastExpressedToStorageType")],-1)),t[2509]||(t[2509]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2510]||(t[2510]=l('
julia
mlirQuantizedTypeCastExpressedToStorageType(type, candidate)

Casts from a type based on the expressed type of the given quantized type to equivalent type based on storage type of the same quantized type.

source

',3))]),e("details",Rb,[e("summary",null,[t[2511]||(t[2511]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType")],-1)),t[2512]||(t[2512]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2513]||(t[2513]=l('
julia
mlirQuantizedTypeCastFromExpressedType(type, candidate)

Casts from a type based on the expressed type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.

source

',3))]),e("details",Ib,[e("summary",null,[t[2514]||(t[2514]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType")],-1)),t[2515]||(t[2515]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2516]||(t[2516]=l('
julia
mlirQuantizedTypeCastFromStorageType(type, candidate)

Casts from a type based on the storage type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.

source

',3))]),e("details",jb,[e("summary",null,[t[2517]||(t[2517]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType")],-1)),t[2518]||(t[2518]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2519]||(t[2519]=l('
julia
mlirQuantizedTypeCastToExpressedType(type)

Casts from a type based on a quantized type to a corresponding typed based on the expressed type. Returns a null type if the cast is not valid.

source

',3))]),e("details",Mb,[e("summary",null,[t[2520]||(t[2520]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType")],-1)),t[2521]||(t[2521]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2522]||(t[2522]=l('
julia
mlirQuantizedTypeCastToStorageType(type)

Casts from a type based on a quantized type to a corresponding typed based on the storage type. Returns a null type if the cast is not valid.

source

',3))]),e("details",Ab,[e("summary",null,[t[2523]||(t[2523]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger")],-1)),t[2524]||(t[2524]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2525]||(t[2525]=l('
julia
mlirQuantizedTypeGetDefaultMaximumForInteger(isSigned, integralWidth)

Returns the maximum possible value stored by a quantized type.

source

',3))]),e("details",Lb,[e("summary",null,[t[2526]||(t[2526]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger")],-1)),t[2527]||(t[2527]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2528]||(t[2528]=l('
julia
mlirQuantizedTypeGetDefaultMinimumForInteger(isSigned, integralWidth)

Returns the minimum possible value stored by a quantized type.

source

',3))]),e("details",Eb,[e("summary",null,[t[2529]||(t[2529]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType")],-1)),t[2530]||(t[2530]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2531]||(t[2531]=l('
julia
mlirQuantizedTypeGetExpressedType(type)

Gets the original type approximated by the given quantized type.

source

',3))]),e("details",vb,[e("summary",null,[t[2532]||(t[2532]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetFlags")],-1)),t[2533]||(t[2533]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2534]||(t[2534]=l('
julia
mlirQuantizedTypeGetFlags(type)

Gets the flags associated with the given quantized type.

source

',3))]),e("details",Tb,[e("summary",null,[t[2535]||(t[2535]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType")],-1)),t[2536]||(t[2536]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2537]||(t[2537]=l('
julia
mlirQuantizedTypeGetQuantizedElementType(type)

Returns the element type of the given quantized type as another quantized type.

source

',3))]),e("details",Cb,[e("summary",null,[t[2538]||(t[2538]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag")],-1)),t[2539]||(t[2539]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2540]||(t[2540]=l('
julia
mlirQuantizedTypeGetSignedFlag()

Returns the bit flag used to indicate signedness of a quantized type.

source

',3))]),e("details",xb,[e("summary",null,[t[2541]||(t[2541]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType")],-1)),t[2542]||(t[2542]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2543]||(t[2543]=l('
julia
mlirQuantizedTypeGetStorageType(type)

Returns the underlying type used to store the values.

source

',3))]),e("details",Fb,[e("summary",null,[t[2544]||(t[2544]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth")],-1)),t[2545]||(t[2545]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2546]||(t[2546]=l('
julia
mlirQuantizedTypeGetStorageTypeIntegralWidth(type)

Returns the integral bitwidth that the storage type of the given quantized type can represent exactly.

source

',3))]),e("details",Pb,[e("summary",null,[t[2547]||(t[2547]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax")],-1)),t[2548]||(t[2548]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2549]||(t[2549]=l('
julia
mlirQuantizedTypeGetStorageTypeMax(type)

Returns the maximum value that the storage type of the given quantized type can take.

source

',3))]),e("details",Db,[e("summary",null,[t[2550]||(t[2550]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin")],-1)),t[2551]||(t[2551]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2552]||(t[2552]=l('
julia
mlirQuantizedTypeGetStorageTypeMin(type)

Returns the minimum value that the storage type of the given quantized type can take.

source

',3))]),e("details",Ob,[e("summary",null,[t[2553]||(t[2553]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType")],-1)),t[2554]||(t[2554]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2555]||(t[2555]=l('
julia
mlirQuantizedTypeIsCompatibleExpressedType(type, candidate)

Returns true if the candidate type is compatible with the given quantized type.

source

',3))]),e("details",Bb,[e("summary",null,[t[2556]||(t[2556]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeIsSigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeIsSigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeIsSigned")],-1)),t[2557]||(t[2557]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2558]||(t[2558]=l('
julia
mlirQuantizedTypeIsSigned(type)

Returns true if the given type is signed, false otherwise.

source

',3))]),e("details",Gb,[e("summary",null,[t[2559]||(t[2559]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGet")],-1)),t[2560]||(t[2560]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2561]||(t[2561]=l('
julia
mlirRankedTensorTypeGet(rank, shape, elementType, encoding)

Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull() to this parameter.

source

',3))]),e("details",zb,[e("summary",null,[t[2562]||(t[2562]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetChecked")],-1)),t[2563]||(t[2563]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2564]||(t[2564]=l('
julia
mlirRankedTensorTypeGetChecked(loc, rank, shape, elementType, encoding)

Same as "mlirRankedTensorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",wb,[e("summary",null,[t[2565]||(t[2565]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetEncoding")],-1)),t[2566]||(t[2566]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2567]||(t[2567]=l('
julia
mlirRankedTensorTypeGetEncoding(type)

Gets the 'encoding' attribute from the ranked tensor type, returning a null attribute if none.

source

',3))]),e("details",Sb,[e("summary",null,[t[2568]||(t[2568]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID")],-1)),t[2569]||(t[2569]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2570]||(t[2570]=l('
julia
mlirRankedTensorTypeGetTypeID()

Returns the typeID of an RankedTensor type.

source

',3))]),e("details",Nb,[e("summary",null,[t[2571]||(t[2571]=e("a",{id:"Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionAppendOwnedBlock")],-1)),t[2572]||(t[2572]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2573]||(t[2573]=l('
julia
mlirRegionAppendOwnedBlock(region, block)

Takes a block owned by the caller and appends it to the given region.

source

',3))]),e("details",Vb,[e("summary",null,[t[2574]||(t[2574]=e("a",{id:"Reactant.MLIR.API.mlirRegionCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirRegionCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionCreate")],-1)),t[2575]||(t[2575]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2576]||(t[2576]=l('
julia
mlirRegionCreate()

Creates a new empty region and transfers ownership to the caller.

source

',3))]),e("details",qb,[e("summary",null,[t[2577]||(t[2577]=e("a",{id:"Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionDestroy")],-1)),t[2578]||(t[2578]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2579]||(t[2579]=l('
julia
mlirRegionDestroy(region)

Takes a region owned by the caller and destroys it.

source

',3))]),e("details",Ub,[e("summary",null,[t[2580]||(t[2580]=e("a",{id:"Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionEqual")],-1)),t[2581]||(t[2581]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2582]||(t[2582]=l('
julia
mlirRegionEqual(region, other)

Checks whether two region handles point to the same region. This does not perform deep comparison.

source

',3))]),e("details",Qb,[e("summary",null,[t[2583]||(t[2583]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetFirstBlock")],-1)),t[2584]||(t[2584]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2585]||(t[2585]=l('
julia
mlirRegionGetFirstBlock(region)

Gets the first block in the region.

source

',3))]),e("details",Wb,[e("summary",null,[t[2586]||(t[2586]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetNextInOperation")],-1)),t[2587]||(t[2587]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2588]||(t[2588]=l('
julia
mlirRegionGetNextInOperation(region)

Returns the region immediately following the given region in its parent operation.

source

',3))]),e("details",Hb,[e("summary",null,[t[2589]||(t[2589]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlock")],-1)),t[2590]||(t[2590]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2591]||(t[2591]=l('
julia
mlirRegionInsertOwnedBlock(region, pos, block)

Takes a block owned by the caller and inserts it at pos to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.

source

',3))]),e("details",Zb,[e("summary",null,[t[2592]||(t[2592]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlockAfter")],-1)),t[2593]||(t[2593]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2594]||(t[2594]=l('
julia
mlirRegionInsertOwnedBlockAfter(region, reference, block)

Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.

source

',3))]),e("details",Jb,[e("summary",null,[t[2595]||(t[2595]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore")],-1)),t[2596]||(t[2596]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2597]||(t[2597]=l('
julia
mlirRegionInsertOwnedBlockBefore(region, reference, block)

Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.

source

',3))]),e("details",Kb,[e("summary",null,[t[2598]||(t[2598]=e("a",{id:"Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionIsNull")],-1)),t[2599]||(t[2599]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2600]||(t[2600]=l('
julia
mlirRegionIsNull(region)

Checks whether a region is null.

source

',3))]),e("details",$b,[e("summary",null,[t[2601]||(t[2601]=e("a",{id:"Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionTakeBody")],-1)),t[2602]||(t[2602]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2603]||(t[2603]=l('
julia
mlirRegionTakeBody(target, source)

Moves the entire content of the source region to the target region.

source

',3))]),e("details",Xb,[e("summary",null,[t[2604]||(t[2604]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllDialects")],-1)),t[2605]||(t[2605]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2606]||(t[2606]=l('
julia
mlirRegisterAllDialects(registry)

Appends all upstream dialects and extensions to the dialect registry.

source

',3))]),e("details",Yb,[e("summary",null,[t[2607]||(t[2607]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations")],-1)),t[2608]||(t[2608]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2609]||(t[2609]=l('
julia
mlirRegisterAllLLVMTranslations(context)

Register all translations to LLVM IR for dialects that can support it.

source

',3))]),e("details",_b,[e("summary",null,[t[2610]||(t[2610]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}",href:"#Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllPasses")],-1)),t[2611]||(t[2611]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2612]||(t[2612]=l('
julia
mlirRegisterAllPasses()

Register all compiler passes of MLIR.

source

',3))]),e("details",tg,[e("summary",null,[t[2613]||(t[2613]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification")],-1)),t[2614]||(t[2614]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2615]||(t[2615]=l('
julia
mlirRewriterBaseCancelOpModification(rewriter, op)

This method cancels a pending in-place modification. This can only be called on operations that were provided to a call to startOpModification.

source

',3))]),e("details",eg,[e("summary",null,[t[2616]||(t[2616]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseClearInsertionPoint")],-1)),t[2617]||(t[2617]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2618]||(t[2618]=l('
julia
mlirRewriterBaseClearInsertionPoint(rewriter)

Reset the insertion point to no location. Creating an operation without a set insertion point is an error, but this can still be useful when the current insertion point a builder refers to is being removed.

source

',3))]),e("details",sg,[e("summary",null,[t[2619]||(t[2619]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseClone")],-1)),t[2620]||(t[2620]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2621]||(t[2621]=l('
julia
mlirRewriterBaseClone(rewriter, op)

Creates a deep copy of the specified operation.

source

',3))]),e("details",ag,[e("summary",null,[t[2622]||(t[2622]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore")],-1)),t[2623]||(t[2623]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2624]||(t[2624]=l('
julia
mlirRewriterBaseCloneRegionBefore(rewriter, region, before)

Clone the blocks that belong to "region" before the given position in another region "parent".

source

',3))]),e("details",ig,[e("summary",null,[t[2625]||(t[2625]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions")],-1)),t[2626]||(t[2626]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2627]||(t[2627]=l('
julia
mlirRewriterBaseCloneWithoutRegions(rewriter, op)

Creates a deep copy of this operation but keep the operation regions empty.

source

',3))]),e("details",lg,[e("summary",null,[t[2628]||(t[2628]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore")],-1)),t[2629]||(t[2629]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2630]||(t[2630]=l('
julia
mlirRewriterBaseCreateBlockBefore(rewriter, insertBefore, nArgTypes, argTypes, locations)

Add new block with 'argTypes' arguments and set the insertion point to the end of it. The block is placed before 'insertBefore'. locs contains the locations of the inserted arguments, and should match the size of argTypes.

source

',3))]),e("details",ng,[e("summary",null,[t[2631]||(t[2631]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseEraseBlock-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseEraseBlock-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseEraseBlock")],-1)),t[2632]||(t[2632]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2633]||(t[2633]=l('
julia
mlirRewriterBaseEraseBlock(rewriter, block)

Erases a block along with all operations inside it.

source

',3))]),e("details",pg,[e("summary",null,[t[2634]||(t[2634]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseEraseOp")],-1)),t[2635]||(t[2635]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2636]||(t[2636]=l('
julia
mlirRewriterBaseEraseOp(rewriter, op)

Erases an operation that is known to have no uses.

source

',3))]),e("details",rg,[e("summary",null,[t[2637]||(t[2637]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification")],-1)),t[2638]||(t[2638]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2639]||(t[2639]=l('
julia
mlirRewriterBaseFinalizeOpModification(rewriter, op)

This method is used to signal the end of an in-place modification of the given operation. This can only be called on operations that were provided to a call to startOpModification.

source

',3))]),e("details",og,[e("summary",null,[t[2640]||(t[2640]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetBlock")],-1)),t[2641]||(t[2641]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2642]||(t[2642]=l('
julia
mlirRewriterBaseGetBlock(rewriter)

Returns the current block of the rewriter.

source

',3))]),e("details",dg,[e("summary",null,[t[2643]||(t[2643]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetContext")],-1)),t[2644]||(t[2644]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2645]||(t[2645]=l('
julia
mlirRewriterBaseGetContext(rewriter)

Get the MLIR context referenced by the rewriter.

source

',3))]),e("details",cg,[e("summary",null,[t[2646]||(t[2646]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock")],-1)),t[2647]||(t[2647]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2648]||(t[2648]=l('
julia
mlirRewriterBaseGetInsertionBlock(rewriter)

Return the block the current insertion point belongs to. Note that the insertion point is not necessarily the end of the block.

source

',3))]),e("details",hg,[e("summary",null,[t[2649]||(t[2649]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore")],-1)),t[2650]||(t[2650]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2651]||(t[2651]=l('
julia
mlirRewriterBaseInlineBlockBefore(rewriter, source, op, nArgValues, argValues)

Inline the operations of block 'source' before the operation 'op'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The source block must have no successors. Otherwise, the resulting IR would have unreachable operations.

source

',4))]),e("details",ug,[e("summary",null,[t[2652]||(t[2652]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore")],-1)),t[2653]||(t[2653]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2654]||(t[2654]=l('
julia
mlirRewriterBaseInlineRegionBefore(rewriter, region, before)

Move the blocks that belong to "region" before the given position in another region "parent". The two regions must be different. The caller is responsible for creating or updating the operation transferring flow of control to the region and passing it the correct block arguments.

source

',3))]),e("details",bg,[e("summary",null,[t[2655]||(t[2655]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInsert")],-1)),t[2656]||(t[2656]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2657]||(t[2657]=l('
julia
mlirRewriterBaseInsert(rewriter, op)

Insert the given operation at the current insertion point and return it.

source

',3))]),e("details",gg,[e("summary",null,[t[2658]||(t[2658]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks")],-1)),t[2659]||(t[2659]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2660]||(t[2660]=l('
julia
mlirRewriterBaseMergeBlocks(rewriter, source, dest, nArgValues, argValues)

Inline the operations of block 'source' into the end of block 'dest'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'

The dest block must have no successors. Otherwise, the resulting IR would have unreachable operation.

source

',4))]),e("details",yg,[e("summary",null,[t[2661]||(t[2661]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore")],-1)),t[2662]||(t[2662]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2663]||(t[2663]=l('
julia
mlirRewriterBaseMoveBlockBefore(rewriter, block, existingBlock)

Unlink this block and insert it right before existingBlock.

source

',3))]),e("details",mg,[e("summary",null,[t[2664]||(t[2664]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveOpAfter")],-1)),t[2665]||(t[2665]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2666]||(t[2666]=l('
julia
mlirRewriterBaseMoveOpAfter(rewriter, op, existingOp)

Unlink this operation from its current block and insert it right after existingOp which may be in the same or another block in the same function.

source

',3))]),e("details",kg,[e("summary",null,[t[2667]||(t[2667]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveOpBefore")],-1)),t[2668]||(t[2668]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2669]||(t[2669]=l('
julia
mlirRewriterBaseMoveOpBefore(rewriter, op, existingOp)

Unlink this operation from its current block and insert it right before existingOp which may be in the same or another block in the same function.

source

',3))]),e("details",fg,[e("summary",null,[t[2670]||(t[2670]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithOperation")],-1)),t[2671]||(t[2671]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2672]||(t[2672]=l('
julia
mlirRewriterBaseReplaceAllOpUsesWithOperation(rewriter, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

source

',3))]),e("details",Rg,[e("summary",null,[t[2673]||(t[2673]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllOpUsesWithValueRange")],-1)),t[2674]||(t[2674]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2675]||(t[2675]=l('
julia
mlirRewriterBaseReplaceAllOpUsesWithValueRange(rewriter, from, nTo, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from operation is about to be replaced.

source

',3))]),e("details",Ig,[e("summary",null,[t[2676]||(t[2676]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesExcept")],-1)),t[2677]||(t[2677]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2678]||(t[2678]=l('
julia
mlirRewriterBaseReplaceAllUsesExcept(rewriter, from, to, exceptedUser)

Find uses of from and replace them with to except if the user is exceptedUser. Also notify the listener about every in-place op modification (for every use that was replaced).

source

',3))]),e("details",jg,[e("summary",null,[t[2679]||(t[2679]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllUsesWith")],-1)),t[2680]||(t[2680]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2681]||(t[2681]=l('
julia
mlirRewriterBaseReplaceAllUsesWith(rewriter, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced).

source

',3))]),e("details",Mg,[e("summary",null,[t[2682]||(t[2682]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceAllValueRangeUsesWith")],-1)),t[2683]||(t[2683]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2684]||(t[2684]=l('
julia
mlirRewriterBaseReplaceAllValueRangeUsesWith(rewriter, nValues, from, to)

Find uses of from and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced).

source

',3))]),e("details",Ag,[e("summary",null,[t[2685]||(t[2685]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpUsesWithinBlock")],-1)),t[2686]||(t[2686]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2687]||(t[2687]=l('
julia
mlirRewriterBaseReplaceOpUsesWithinBlock(rewriter, op, nNewValues, newValues, block)

Find uses of from within block and replace them with to. Also notify the listener about every in-place op modification (for every use that was replaced). The optional allUsesReplaced flag is set to "true" if all uses were replaced.

source

',3))]),e("details",Lg,[e("summary",null,[t[2688]||(t[2688]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithOperation")],-1)),t[2689]||(t[2689]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2690]||(t[2690]=l('
julia
mlirRewriterBaseReplaceOpWithOperation(rewriter, op, newOp)

Replace the results of the given (original) operation with the specified new op (replacement). The result types of the two ops must match. The original op is erased.

source

',3))]),e("details",Eg,[e("summary",null,[t[2691]||(t[2691]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues")],-1)),t[2692]||(t[2692]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2693]||(t[2693]=l('
julia
mlirRewriterBaseReplaceOpWithValues(rewriter, op, nValues, values)

Replace the results of the given (original) operation with the specified list of values (replacements). The result types of the given op and the replacements must match. The original op is erased.

source

',3))]),e("details",vg,[e("summary",null,[t[2694]||(t[2694]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter")],-1)),t[2695]||(t[2695]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2696]||(t[2696]=l('
julia
mlirRewriterBaseSetInsertionPointAfter(rewriter, op)

Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.

source

',3))]),e("details",Tg,[e("summary",null,[t[2697]||(t[2697]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue")],-1)),t[2698]||(t[2698]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2699]||(t[2699]=l('
julia
mlirRewriterBaseSetInsertionPointAfterValue(rewriter, value)

Sets the insertion point to the node after the specified value. If value has a defining operation, sets the insertion point to the node after such defining operation. This will cause subsequent insertions to go right after it. Otherwise, value is a BlockArgument. Sets the insertion point to the start of its block.

source

',3))]),e("details",Cg,[e("summary",null,[t[2700]||(t[2700]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore")],-1)),t[2701]||(t[2701]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2702]||(t[2702]=l('
julia
mlirRewriterBaseSetInsertionPointBefore(rewriter, op)

Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.

source

',3))]),e("details",xg,[e("summary",null,[t[2703]||(t[2703]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd")],-1)),t[2704]||(t[2704]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2705]||(t[2705]=l('
julia
mlirRewriterBaseSetInsertionPointToEnd(rewriter, block)

Sets the insertion point to the end of the specified block.

source

',3))]),e("details",Fg,[e("summary",null,[t[2706]||(t[2706]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart")],-1)),t[2707]||(t[2707]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2708]||(t[2708]=l('
julia
mlirRewriterBaseSetInsertionPointToStart(rewriter, block)

Sets the insertion point to the start of the specified block.

source

',3))]),e("details",Pg,[e("summary",null,[t[2709]||(t[2709]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseStartOpModification")],-1)),t[2710]||(t[2710]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2711]||(t[2711]=l('
julia
mlirRewriterBaseStartOpModification(rewriter, op)

This method is used to notify the rewriter that an in-place operation modification is about to happen. A call to this function must be followed by a call to either finalizeOpModification or cancelOpModification. This is a minor efficiency win (it avoids creating a new operation and removing the old one) but also often allows simpler code in the client.

source

',3))]),e("details",Dg,[e("summary",null,[t[2712]||(t[2712]=e("a",{id:"Reactant.MLIR.API.mlirSetGlobalDebugType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSetGlobalDebugType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSetGlobalDebugType")],-1)),t[2713]||(t[2713]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2714]||(t[2714]=l('
julia
mlirSetGlobalDebugType(type)

Sets the current debug type, similarly to -debug-only=type in the command-line tools. Note that global debug should be enabled for any output to be produced.

source

',3))]),e("details",Og,[e("summary",null,[t[2715]||(t[2715]=e("a",{id:"Reactant.MLIR.API.mlirSetGlobalDebugTypes-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSetGlobalDebugTypes-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSetGlobalDebugTypes")],-1)),t[2716]||(t[2716]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2717]||(t[2717]=l('
julia
mlirSetGlobalDebugTypes(types, n)

Sets multiple current debug types, similarly to `-debug-only=type1,type2" in the command-line tools. Note that global debug should be enabled for any output to be produced.

source

',3))]),e("details",Bg,[e("summary",null,[t[2718]||(t[2718]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDimSize")],-1)),t[2719]||(t[2719]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2720]||(t[2720]=l('
julia
mlirShapedTypeGetDimSize(type, dim)

Returns the dim-th dimension of the given ranked shaped type.

source

',3))]),e("details",Gg,[e("summary",null,[t[2721]||(t[2721]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize")],-1)),t[2722]||(t[2722]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2723]||(t[2723]=l('
julia
mlirShapedTypeGetDynamicSize()

Returns the value indicating a dynamic size in a shaped type. Prefer mlirShapedTypeIsDynamicSize to direct comparisons with this value.

source

',3))]),e("details",zg,[e("summary",null,[t[2724]||(t[2724]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset-Tuple{}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDynamicStrideOrOffset")],-1)),t[2725]||(t[2725]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2726]||(t[2726]=l('
julia
mlirShapedTypeGetDynamicStrideOrOffset()

Returns the value indicating a dynamic stride or offset in a shaped type. Prefer mlirShapedTypeGetDynamicStrideOrOffset to direct comparisons with this value.

source

',3))]),e("details",wg,[e("summary",null,[t[2727]||(t[2727]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetElementType")],-1)),t[2728]||(t[2728]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2729]||(t[2729]=l('
julia
mlirShapedTypeGetElementType(type)

Returns the element type of the shaped type.

source

',3))]),e("details",Sg,[e("summary",null,[t[2730]||(t[2730]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetRank")],-1)),t[2731]||(t[2731]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2732]||(t[2732]=l('
julia
mlirShapedTypeGetRank(type)

Returns the rank of the given ranked shaped type.

source

',3))]),e("details",Ng,[e("summary",null,[t[2733]||(t[2733]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasRank")],-1)),t[2734]||(t[2734]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2735]||(t[2735]=l('
julia
mlirShapedTypeHasRank(type)

Checks whether the given shaped type is ranked.

source

',3))]),e("details",Vg,[e("summary",null,[t[2736]||(t[2736]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasStaticShape")],-1)),t[2737]||(t[2737]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2738]||(t[2738]=l('
julia
mlirShapedTypeHasStaticShape(type)

Checks whether the given shaped type has a static shape.

source

',3))]),e("details",qg,[e("summary",null,[t[2739]||(t[2739]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim")],-1)),t[2740]||(t[2740]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2741]||(t[2741]=l('
julia
mlirShapedTypeIsDynamicDim(type, dim)

Checks wither the dim-th dimension of the given shaped type is dynamic.

source

',3))]),e("details",Ug,[e("summary",null,[t[2742]||(t[2742]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize")],-1)),t[2743]||(t[2743]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2744]||(t[2744]=l('
julia
mlirShapedTypeIsDynamicSize(size)

Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.

source

',3))]),e("details",Qg,[e("summary",null,[t[2745]||(t[2745]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset")],-1)),t[2746]||(t[2746]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2747]||(t[2747]=l('
julia
mlirShapedTypeIsDynamicStrideOrOffset(val)

Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.

source

',3))]),e("details",Wg,[e("summary",null,[t[2748]||(t[2748]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices")],-1)),t[2749]||(t[2749]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2750]||(t[2750]=l('
julia
mlirSparseElementsAttrGetIndices(attr)

Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the given sparse elements attribute.

source

',3))]),e("details",Hg,[e("summary",null,[t[2751]||(t[2751]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID")],-1)),t[2752]||(t[2752]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2753]||(t[2753]=l('
julia
mlirSparseElementsAttrGetTypeID()

Returns the typeID of a SparseElements attribute.

source

',3))]),e("details",Zg,[e("summary",null,[t[2754]||(t[2754]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetValues")],-1)),t[2755]||(t[2755]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2756]||(t[2756]=l('
julia
mlirSparseElementsAttrGetValues(attr)

Returns the dense elements attribute containing the non-null elements in the given sparse elements attribute.

source

',3))]),e("details",Jg,[e("summary",null,[t[2757]||(t[2757]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttribute")],-1)),t[2758]||(t[2758]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2759]||(t[2759]=l('
julia
mlirSparseElementsAttribute(shapedType, denseIndices, denseValues)

Creates a sparse elements attribute of the given shape from a list of indices and a list of associated values. Both lists are expected to be dense elements attributes with the same number of elements. The list of indices is expected to contain 64-bit integers. The attribute is created in the same context as the type.

source

',3))]),e("details",Kg,[e("summary",null,[t[2760]||(t[2760]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet")],-1)),t[2761]||(t[2761]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2762]||(t[2762]=l('
julia
mlirSparseTensorEncodingAttrGet(ctx, lvlRank, lvlTypes, dimToLvl, lvlTodim, posWidth, crdWidth, explicitVal, implicitVal)

Creates a sparse\\_tensor.encoding attribute with the given parameters.

source

',3))]),e("details",$g,[e("summary",null,[t[2763]||(t[2763]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetCrdWidth")],-1)),t[2764]||(t[2764]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2765]||(t[2765]=l('
julia
mlirSparseTensorEncodingAttrGetCrdWidth(attr)

Returns the coordinate bitwidth of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",Xg,[e("summary",null,[t[2766]||(t[2766]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetDimToLvl")],-1)),t[2767]||(t[2767]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2768]||(t[2768]=l('
julia
mlirSparseTensorEncodingAttrGetDimToLvl(attr)

Returns the dimension-to-level mapping of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",Yg,[e("summary",null,[t[2769]||(t[2769]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetExplicitVal")],-1)),t[2770]||(t[2770]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2771]||(t[2771]=l('
julia
mlirSparseTensorEncodingAttrGetExplicitVal(attr)

Returns the explicit value of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",_g,[e("summary",null,[t[2772]||(t[2772]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetImplicitVal")],-1)),t[2773]||(t[2773]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2774]||(t[2774]=l('
julia
mlirSparseTensorEncodingAttrGetImplicitVal(attr)

Returns the implicit value of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ty,[e("summary",null,[t[2775]||(t[2775]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlFmt")],-1)),t[2776]||(t[2776]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2777]||(t[2777]=l('
julia
mlirSparseTensorEncodingAttrGetLvlFmt(attr, lvl)

Returns a specified level-format of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ey,[e("summary",null,[t[2778]||(t[2778]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlToDim")],-1)),t[2779]||(t[2779]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2780]||(t[2780]=l('
julia
mlirSparseTensorEncodingAttrGetLvlToDim(attr)

Returns the level-to-dimension mapping of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",sy,[e("summary",null,[t[2781]||(t[2781]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetLvlType")],-1)),t[2782]||(t[2782]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2783]||(t[2783]=l('
julia
mlirSparseTensorEncodingAttrGetLvlType(attr, lvl)

Returns a specified level-type of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ay,[e("summary",null,[t[2784]||(t[2784]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGetPosWidth")],-1)),t[2785]||(t[2785]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2786]||(t[2786]=l('
julia
mlirSparseTensorEncodingAttrGetPosWidth(attr)

Returns the position bitwidth of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",iy,[e("summary",null,[t[2787]||(t[2787]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingGetLvlRank")],-1)),t[2788]||(t[2788]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2789]||(t[2789]=l('
julia
mlirSparseTensorEncodingGetLvlRank(attr)

Returns the level-rank of the sparse\\_tensor.encoding attribute.

source

',3))]),e("details",ly,[e("summary",null,[t[2790]||(t[2790]=e("a",{id:"Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStridedLayoutAttrGetTypeID")],-1)),t[2791]||(t[2791]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2792]||(t[2792]=l('
julia
mlirStridedLayoutAttrGetTypeID()

Returns the typeID of a StridedLayout attribute.

source

',3))]),e("details",ny,[e("summary",null,[t[2793]||(t[2793]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGet")],-1)),t[2794]||(t[2794]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2795]||(t[2795]=l('
julia
mlirStringAttrGet(ctx, str)

Creates a string attribute in the given context containing the given string.

source

',3))]),e("details",py,[e("summary",null,[t[2796]||(t[2796]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetTypeID")],-1)),t[2797]||(t[2797]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2798]||(t[2798]=l('
julia
mlirStringAttrGetTypeID()

Returns the typeID of a String attribute.

source

',3))]),e("details",ry,[e("summary",null,[t[2799]||(t[2799]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetValue")],-1)),t[2800]||(t[2800]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2801]||(t[2801]=l('
julia
mlirStringAttrGetValue(attr)

Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",oy,[e("summary",null,[t[2802]||(t[2802]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrTypedGet")],-1)),t[2803]||(t[2803]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2804]||(t[2804]=l('
julia
mlirStringAttrTypedGet(type, str)

Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.

source

',3))]),e("details",dy,[e("summary",null,[t[2805]||(t[2805]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreate")],-1)),t[2806]||(t[2806]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2807]||(t[2807]=l('
julia
mlirStringRefCreate(str, length)

Constructs a string reference from the pointer and length. The pointer need not reference to a null-terminated string.

source

',3))]),e("details",cy,[e("summary",null,[t[2808]||(t[2808]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreateFromCString")],-1)),t[2809]||(t[2809]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2810]||(t[2810]=l('
julia
mlirStringRefCreateFromCString(str)

Constructs a string reference from a null-terminated C string. Prefer mlirStringRefCreate if the length of the string is known.

source

',3))]),e("details",hy,[e("summary",null,[t[2811]||(t[2811]=e("a",{id:"Reactant.MLIR.API.mlirStringRefEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringRefEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefEqual")],-1)),t[2812]||(t[2812]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2813]||(t[2813]=l('
julia
mlirStringRefEqual(string, other)

Returns true if two string references are equal, false otherwise.

source

',3))]),e("details",uy,[e("summary",null,[t[2814]||(t[2814]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGet")],-1)),t[2815]||(t[2815]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2816]||(t[2816]=l('
julia
mlirSymbolRefAttrGet(ctx, symbol, numReferences, references)

Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.

source

',3))]),e("details",by,[e("summary",null,[t[2817]||(t[2817]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference")],-1)),t[2818]||(t[2818]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2819]||(t[2819]=l('
julia
mlirSymbolRefAttrGetLeafReference(attr)

Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",gy,[e("summary",null,[t[2820]||(t[2820]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference")],-1)),t[2821]||(t[2821]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2822]||(t[2822]=l('
julia
mlirSymbolRefAttrGetNestedReference(attr, pos)

Returns pos-th reference nested in the given symbol reference attribute.

source

',3))]),e("details",yy,[e("summary",null,[t[2823]||(t[2823]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences")],-1)),t[2824]||(t[2824]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2825]||(t[2825]=l('
julia
mlirSymbolRefAttrGetNumNestedReferences(attr)

Returns the number of references nested in the given symbol reference attribute.

source

',3))]),e("details",my,[e("summary",null,[t[2826]||(t[2826]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference")],-1)),t[2827]||(t[2827]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2828]||(t[2828]=l('
julia
mlirSymbolRefAttrGetRootReference(attr)

Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.

source

',3))]),e("details",ky,[e("summary",null,[t[2829]||(t[2829]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID")],-1)),t[2830]||(t[2830]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2831]||(t[2831]=l('
julia
mlirSymbolRefAttrGetTypeID()

Returns the typeID of an SymbolRef attribute.

source

',3))]),e("details",fy,[e("summary",null,[t[2832]||(t[2832]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableCreate")],-1)),t[2833]||(t[2833]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2834]||(t[2834]=l('
julia
mlirSymbolTableCreate(operation)

Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.

source

',3))]),e("details",Ry,[e("summary",null,[t[2835]||(t[2835]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableDestroy")],-1)),t[2836]||(t[2836]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2837]||(t[2837]=l('
julia
mlirSymbolTableDestroy(symbolTable)

Destroys the symbol table created with mlirSymbolTableCreate. This does not affect the operations in the table.

source

',3))]),e("details",Iy,[e("summary",null,[t[2838]||(t[2838]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableErase-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableErase-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableErase")],-1)),t[2839]||(t[2839]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2840]||(t[2840]=l('
julia
mlirSymbolTableErase(symbolTable, operation)

Removes the given operation from the symbol table and erases it.

source

',3))]),e("details",jy,[e("summary",null,[t[2841]||(t[2841]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName")],-1)),t[2842]||(t[2842]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2843]||(t[2843]=l('
julia
mlirSymbolTableGetSymbolAttributeName()

Returns the name of the attribute used to store symbol names compatible with symbol tables.

source

',3))]),e("details",My,[e("summary",null,[t[2844]||(t[2844]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName")],-1)),t[2845]||(t[2845]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2846]||(t[2846]=l('
julia
mlirSymbolTableGetVisibilityAttributeName()

Returns the name of the attribute used to store symbol visibility.

source

',3))]),e("details",Ay,[e("summary",null,[t[2847]||(t[2847]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableInsert")],-1)),t[2848]||(t[2848]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2849]||(t[2849]=l('
julia
mlirSymbolTableInsert(symbolTable, operation)

Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.

source

',3))]),e("details",Ly,[e("summary",null,[t[2850]||(t[2850]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableIsNull")],-1)),t[2851]||(t[2851]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2852]||(t[2852]=l('
julia
mlirSymbolTableIsNull(symbolTable)

Returns true if the symbol table is null.

source

',3))]),e("details",Ey,[e("summary",null,[t[2853]||(t[2853]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableLookup")],-1)),t[2854]||(t[2854]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2855]||(t[2855]=l('
julia
mlirSymbolTableLookup(symbolTable, name)

Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.

source

',3))]),e("details",vy,[e("summary",null,[t[2856]||(t[2856]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses")],-1)),t[2857]||(t[2857]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2858]||(t[2858]=l('
julia
mlirSymbolTableReplaceAllSymbolUses(oldSymbol, newSymbol, from)

Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'. This does not traverse into nested symbol tables. Will fail atomically if there are any unknown operations that may be potential symbol tables.

source

',3))]),e("details",Ty,[e("summary",null,[t[2859]||(t[2859]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables")],-1)),t[2860]||(t[2860]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2861]||(t[2861]=l('
julia
mlirSymbolTableWalkSymbolTables(from, allSymUsesVisible, callback, userData)

Walks all symbol table operations nested within, and including, op. For each symbol table operation, the provided callback is invoked with the op and a boolean signifying if the symbols within that symbol table can be treated as if all uses within the IR are visible to the caller. allSymUsesVisible identifies whether all of the symbol uses of symbols within op are visible.

source

',3))]),e("details",Cy,[e("summary",null,[t[2862]||(t[2862]=e("a",{id:"Reactant.MLIR.API.mlirTF32TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTF32TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTF32TypeGet")],-1)),t[2863]||(t[2863]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2864]||(t[2864]=l('
julia
mlirTF32TypeGet(ctx)

Creates a TF32 type in the given context. The type is owned by the context.

source

',3))]),e("details",xy,[e("summary",null,[t[2865]||(t[2865]=e("a",{id:"Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformApplyNamedSequence")],-1)),t[2866]||(t[2866]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2867]||(t[2867]=l('
julia
mlirTransformApplyNamedSequence(payload, transformRoot, transformModule, transformOptions)

Applies the transformation script starting at the given transform root operation to the given payload operation. The module containing the transform root as well as the transform options should be provided. The transform operation must implement TransformOpInterface and the module must be a ModuleOp. Returns the status of the application.

source

',3))]),e("details",Fy,[e("summary",null,[t[2868]||(t[2868]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsCreate")],-1)),t[2869]||(t[2869]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2870]||(t[2870]=l('
julia
mlirTransformOptionsCreate()

Creates a default-initialized transform options object.

source

',3))]),e("details",Py,[e("summary",null,[t[2871]||(t[2871]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsDestroy")],-1)),t[2872]||(t[2872]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2873]||(t[2873]=l('
julia
mlirTransformOptionsDestroy(transformOptions)

Destroys a transform options object previously created by mlirTransformOptionsCreate.

source

',3))]),e("details",Dy,[e("summary",null,[t[2874]||(t[2874]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsEnableExpensiveChecks")],-1)),t[2875]||(t[2875]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2876]||(t[2876]=l('
julia
mlirTransformOptionsEnableExpensiveChecks(transformOptions, enable)

Enables or disables expensive checks in transform options.

source

',3))]),e("details",Oy,[e("summary",null,[t[2877]||(t[2877]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp")],-1)),t[2878]||(t[2878]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2879]||(t[2879]=l('
julia
mlirTransformOptionsEnforceSingleTopLevelTransformOp(transformOptions, enable)

Enables or disables the enforcement of the top-level transform op being single in transform options.

source

',3))]),e("details",By,[e("summary",null,[t[2880]||(t[2880]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp")],-1)),t[2881]||(t[2881]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2882]||(t[2882]=l('
julia
mlirTransformOptionsGetEnforceSingleTopLevelTransformOp(transformOptions)

Returns true if the enforcement of the top-level transform op being single is enabled in transform options.

source

',3))]),e("details",Gy,[e("summary",null,[t[2883]||(t[2883]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled")],-1)),t[2884]||(t[2884]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2885]||(t[2885]=l('
julia
mlirTransformOptionsGetExpensiveChecksEnabled(transformOptions)

Returns true if expensive checks are enabled in transform options.

source

',3))]),e("details",zy,[e("summary",null,[t[2886]||(t[2886]=e("a",{id:"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR")],-1)),t[2887]||(t[2887]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2888]||(t[2888]=l('
julia
mlirTranslateModuleToLLVMIR(_module, context)

Translate operation that satisfies LLVM dialect module requirements into an LLVM IR module living in the given context. This translates operations from any dilalect that has a registered implementation of LLVMTranslationDialectInterface.

Returns

the generated LLVM IR Module from the translated MLIR module, it is owned by the caller.

source

',5))]),e("details",wy,[e("summary",null,[t[2889]||(t[2889]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGet")],-1)),t[2890]||(t[2890]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2891]||(t[2891]=l('
julia
mlirTupleTypeGet(ctx, numElements, elements)

Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.

source

',3))]),e("details",Sy,[e("summary",null,[t[2892]||(t[2892]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetNumTypes")],-1)),t[2893]||(t[2893]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2894]||(t[2894]=l('
julia
mlirTupleTypeGetNumTypes(type)

Returns the number of types contained in a tuple.

source

',3))]),e("details",Ny,[e("summary",null,[t[2895]||(t[2895]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetType")],-1)),t[2896]||(t[2896]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2897]||(t[2897]=l('
julia
mlirTupleTypeGetType(type, pos)

Returns the pos-th type in the tuple type.

source

',3))]),e("details",Vy,[e("summary",null,[t[2898]||(t[2898]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetTypeID")],-1)),t[2899]||(t[2899]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2900]||(t[2900]=l('
julia
mlirTupleTypeGetTypeID()

Returns the typeID of an Tuple type.

source

',3))]),e("details",qy,[e("summary",null,[t[2901]||(t[2901]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGet")],-1)),t[2902]||(t[2902]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2903]||(t[2903]=l('
julia
mlirTypeAttrGet(type)

Creates a type attribute wrapping the given type in the same context as the type.

source

',3))]),e("details",Uy,[e("summary",null,[t[2904]||(t[2904]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetTypeID")],-1)),t[2905]||(t[2905]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2906]||(t[2906]=l('
julia
mlirTypeAttrGetTypeID()

Returns the typeID of a Type attribute.

source

',3))]),e("details",Qy,[e("summary",null,[t[2907]||(t[2907]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetValue")],-1)),t[2908]||(t[2908]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2909]||(t[2909]=l('
julia
mlirTypeAttrGetValue(attr)

Returns the type stored in the given type attribute.

source

',3))]),e("details",Wy,[e("summary",null,[t[2910]||(t[2910]=e("a",{id:"Reactant.MLIR.API.mlirTypeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeDump")],-1)),t[2911]||(t[2911]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2912]||(t[2912]=l('
julia
mlirTypeDump(type)

Prints the type to the standard error stream.

source

',3))]),e("details",Hy,[e("summary",null,[t[2913]||(t[2913]=e("a",{id:"Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeEqual")],-1)),t[2914]||(t[2914]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2915]||(t[2915]=l('
julia
mlirTypeEqual(t1, t2)

Checks if two types are equal.

source

',3))]),e("details",Zy,[e("summary",null,[t[2916]||(t[2916]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetContext")],-1)),t[2917]||(t[2917]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2918]||(t[2918]=l('
julia
mlirTypeGetContext(type)

Gets the context that a type was created with.

source

',3))]),e("details",Jy,[e("summary",null,[t[2919]||(t[2919]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetDialect")],-1)),t[2920]||(t[2920]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2921]||(t[2921]=l('
julia
mlirTypeGetDialect(type)

Gets the dialect a type belongs to.

source

',3))]),e("details",Ky,[e("summary",null,[t[2922]||(t[2922]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetTypeID")],-1)),t[2923]||(t[2923]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2924]||(t[2924]=l('
julia
mlirTypeGetTypeID(type)

Gets the type ID of the type.

source

',3))]),e("details",$y,[e("summary",null,[t[2925]||(t[2925]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID")],-1)),t[2926]||(t[2926]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2927]||(t[2927]=l('
julia
mlirTypeIDAllocatorAllocateTypeID(allocator)

Allocates a type id that is valid for the lifetime of the allocator

source

',3))]),e("details",Xy,[e("summary",null,[t[2928]||(t[2928]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorCreate")],-1)),t[2929]||(t[2929]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2930]||(t[2930]=l('
julia
mlirTypeIDAllocatorCreate()

Creates a type id allocator for dynamic type id creation

source

',3))]),e("details",Yy,[e("summary",null,[t[2931]||(t[2931]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy")],-1)),t[2932]||(t[2932]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2933]||(t[2933]=l('
julia
mlirTypeIDAllocatorDestroy(allocator)

Deallocates the allocator and all allocated type ids

source

',3))]),e("details",_y,[e("summary",null,[t[2934]||(t[2934]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDCreate")],-1)),t[2935]||(t[2935]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2936]||(t[2936]=l('
julia
mlirTypeIDCreate(ptr)

ptr must be 8 byte aligned and unique to a type valid for the duration of the returned type id's usage

source

',3))]),e("details",tm,[e("summary",null,[t[2937]||(t[2937]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeIDEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDEqual")],-1)),t[2938]||(t[2938]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2939]||(t[2939]=l('
julia
mlirTypeIDEqual(typeID1, typeID2)

Checks if two type ids are equal.

source

',3))]),e("details",em,[e("summary",null,[t[2940]||(t[2940]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDHashValue")],-1)),t[2941]||(t[2941]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2942]||(t[2942]=l('
julia
mlirTypeIDHashValue(typeID)

Returns the hash value of the type id.

source

',3))]),e("details",sm,[e("summary",null,[t[2943]||(t[2943]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDIsNull")],-1)),t[2944]||(t[2944]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2945]||(t[2945]=l('
julia
mlirTypeIDIsNull(typeID)

Checks whether a type id is null.

source

',3))]),e("details",am,[e("summary",null,[t[2946]||(t[2946]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType")],-1)),t[2947]||(t[2947]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2948]||(t[2948]=l('
julia
mlirTypeIsAAnyQuantizedType(type)

Returns true if the given type is an AnyQuantizedType.

source

',3))]),e("details",im,[e("summary",null,[t[2949]||(t[2949]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsABF16-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsABF16-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsABF16")],-1)),t[2950]||(t[2950]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2951]||(t[2951]=l('
julia
mlirTypeIsABF16(type)

Checks whether the given type is a bf16 type.

source

',3))]),e("details",lm,[e("summary",null,[t[2952]||(t[2952]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType")],-1)),t[2953]||(t[2953]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2954]||(t[2954]=l('
julia
mlirTypeIsACalibratedQuantizedType(type)

Returns true if the given type is a CalibratedQuantizedType.

source

',3))]),e("details",nm,[e("summary",null,[t[2955]||(t[2955]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAComplex-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAComplex-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAComplex")],-1)),t[2956]||(t[2956]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2957]||(t[2957]=l('
julia
mlirTypeIsAComplex(type)

Checks whether the given type is a Complex type.

source

',3))]),e("details",pm,[e("summary",null,[t[2958]||(t[2958]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF16")],-1)),t[2959]||(t[2959]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2960]||(t[2960]=l('
julia
mlirTypeIsAF16(type)

Checks whether the given type is an f16 type.

source

',3))]),e("details",rm,[e("summary",null,[t[2961]||(t[2961]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF32")],-1)),t[2962]||(t[2962]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2963]||(t[2963]=l('
julia
mlirTypeIsAF32(type)

Checks whether the given type is an f32 type.

source

',3))]),e("details",om,[e("summary",null,[t[2964]||(t[2964]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF64")],-1)),t[2965]||(t[2965]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2966]||(t[2966]=l('
julia
mlirTypeIsAF64(type)

Checks whether the given type is an f64 type.

source

',3))]),e("details",dm,[e("summary",null,[t[2967]||(t[2967]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat")],-1)),t[2968]||(t[2968]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2969]||(t[2969]=l('
julia
mlirTypeIsAFloat(type)

Checks whether the given type is a floating-point type.

source

',3))]),e("details",cm,[e("summary",null,[t[2970]||(t[2970]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN")],-1)),t[2971]||(t[2971]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2972]||(t[2972]=l('
julia
mlirTypeIsAFloat4E2M1FN(type)

Checks whether the given type is an f4E2M1FN type.

source

',3))]),e("details",hm,[e("summary",null,[t[2973]||(t[2973]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN")],-1)),t[2974]||(t[2974]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2975]||(t[2975]=l('
julia
mlirTypeIsAFloat6E2M3FN(type)

Checks whether the given type is an f6E2M3FN type.

source

',3))]),e("details",um,[e("summary",null,[t[2976]||(t[2976]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN")],-1)),t[2977]||(t[2977]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2978]||(t[2978]=l('
julia
mlirTypeIsAFloat6E3M2FN(type)

Checks whether the given type is an f6E3M2FN type.

source

',3))]),e("details",bm,[e("summary",null,[t[2979]||(t[2979]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4")],-1)),t[2980]||(t[2980]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2981]||(t[2981]=l('
julia
mlirTypeIsAFloat8E3M4(type)

Checks whether the given type is an f8E3M4 type.

source

',3))]),e("details",gm,[e("summary",null,[t[2982]||(t[2982]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3")],-1)),t[2983]||(t[2983]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2984]||(t[2984]=l('
julia
mlirTypeIsAFloat8E4M3(type)

Checks whether the given type is an f8E4M3 type.

source

',3))]),e("details",ym,[e("summary",null,[t[2985]||(t[2985]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ")],-1)),t[2986]||(t[2986]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2987]||(t[2987]=l('
julia
mlirTypeIsAFloat8E4M3B11FNUZ(type)

Checks whether the given type is an f8E4M3B11FNUZ type.

source

',3))]),e("details",mm,[e("summary",null,[t[2988]||(t[2988]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN")],-1)),t[2989]||(t[2989]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2990]||(t[2990]=l('
julia
mlirTypeIsAFloat8E4M3FN(type)

Checks whether the given type is an f8E4M3FN type.

source

',3))]),e("details",km,[e("summary",null,[t[2991]||(t[2991]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ")],-1)),t[2992]||(t[2992]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2993]||(t[2993]=l('
julia
mlirTypeIsAFloat8E4M3FNUZ(type)

Checks whether the given type is an f8E4M3FNUZ type.

source

',3))]),e("details",fm,[e("summary",null,[t[2994]||(t[2994]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2")],-1)),t[2995]||(t[2995]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2996]||(t[2996]=l('
julia
mlirTypeIsAFloat8E5M2(type)

Checks whether the given type is an f8E5M2 type.

source

',3))]),e("details",Rm,[e("summary",null,[t[2997]||(t[2997]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ")],-1)),t[2998]||(t[2998]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2999]||(t[2999]=l('
julia
mlirTypeIsAFloat8E5M2FNUZ(type)

Checks whether the given type is an f8E5M2FNUZ type.

source

',3))]),e("details",Im,[e("summary",null,[t[3e3]||(t[3e3]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU")],-1)),t[3001]||(t[3001]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3002]||(t[3002]=l('
julia
mlirTypeIsAFloat8E8M0FNU(type)

Checks whether the given type is an f8E8M0FNU type.

source

',3))]),e("details",jm,[e("summary",null,[t[3003]||(t[3003]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFunction")],-1)),t[3004]||(t[3004]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3005]||(t[3005]=l('
julia
mlirTypeIsAFunction(type)

Checks whether the given type is a function type.

source

',3))]),e("details",Mm,[e("summary",null,[t[3006]||(t[3006]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAIndex")],-1)),t[3007]||(t[3007]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3008]||(t[3008]=l('
julia
mlirTypeIsAIndex(type)

Checks whether the given type is an index type.

source

',3))]),e("details",Am,[e("summary",null,[t[3009]||(t[3009]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAInteger")],-1)),t[3010]||(t[3010]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3011]||(t[3011]=l('
julia
mlirTypeIsAInteger(type)

Checks whether the given type is an integer type.

source

',3))]),e("details",Lm,[e("summary",null,[t[3012]||(t[3012]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsALLVMPointerType")],-1)),t[3013]||(t[3013]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3014]||(t[3014]=l('
julia
mlirTypeIsALLVMPointerType(type)

Returns true if the type is an LLVM dialect pointer type.

source

',3))]),e("details",Em,[e("summary",null,[t[3015]||(t[3015]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsALLVMStructType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsALLVMStructType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsALLVMStructType")],-1)),t[3016]||(t[3016]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3017]||(t[3017]=l('
julia
mlirTypeIsALLVMStructType(type)

Returns true if the type is an LLVM dialect struct type.

source

',3))]),e("details",vm,[e("summary",null,[t[3018]||(t[3018]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAMemRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAMemRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAMemRef")],-1)),t[3019]||(t[3019]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3020]||(t[3020]=l('
julia
mlirTypeIsAMemRef(type)

Checks whether the given type is a MemRef type.

source

',3))]),e("details",Tm,[e("summary",null,[t[3021]||(t[3021]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsANone")],-1)),t[3022]||(t[3022]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3023]||(t[3023]=l('
julia
mlirTypeIsANone(type)

Checks whether the given type is a None type.

source

',3))]),e("details",Cm,[e("summary",null,[t[3024]||(t[3024]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAOpaque")],-1)),t[3025]||(t[3025]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3026]||(t[3026]=l('
julia
mlirTypeIsAOpaque(type)

Checks whether the given type is an opaque type.

source

',3))]),e("details",xm,[e("summary",null,[t[3027]||(t[3027]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAQuantizedType")],-1)),t[3028]||(t[3028]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3029]||(t[3029]=l('
julia
mlirTypeIsAQuantizedType(type)

Returns true if the given type is a quantization dialect type.

source

',3))]),e("details",Fm,[e("summary",null,[t[3030]||(t[3030]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsARankedTensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsARankedTensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsARankedTensor")],-1)),t[3031]||(t[3031]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3032]||(t[3032]=l('
julia
mlirTypeIsARankedTensor(type)

Checks whether the given type is a ranked tensor type.

source

',3))]),e("details",Pm,[e("summary",null,[t[3033]||(t[3033]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAShaped")],-1)),t[3034]||(t[3034]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3035]||(t[3035]=l('
julia
mlirTypeIsAShaped(type)

Checks whether the given type is a Shaped type.

source

',3))]),e("details",Dm,[e("summary",null,[t[3036]||(t[3036]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATF32")],-1)),t[3037]||(t[3037]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3038]||(t[3038]=l('
julia
mlirTypeIsATF32(type)

Checks whether the given type is an TF32 type.

source

',3))]),e("details",Om,[e("summary",null,[t[3039]||(t[3039]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATensor")],-1)),t[3040]||(t[3040]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3041]||(t[3041]=l('
julia
mlirTypeIsATensor(type)

Checks whether the given type is a Tensor type.

source

',3))]),e("details",Bm,[e("summary",null,[t[3042]||(t[3042]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATuple")],-1)),t[3043]||(t[3043]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3044]||(t[3044]=l('
julia
mlirTypeIsATuple(type)

Checks whether the given type is a tuple type.

source

',3))]),e("details",Gm,[e("summary",null,[t[3045]||(t[3045]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType")],-1)),t[3046]||(t[3046]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3047]||(t[3047]=l('
julia
mlirTypeIsAUniformQuantizedPerAxisType(type)

Returns true if the given type is a UniformQuantizedPerAxisType.

source

',3))]),e("details",zm,[e("summary",null,[t[3048]||(t[3048]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedType")],-1)),t[3049]||(t[3049]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3050]||(t[3050]=l('
julia
mlirTypeIsAUniformQuantizedType(type)

Returns true if the given type is a UniformQuantizedType.

source

',3))]),e("details",wm,[e("summary",null,[t[3051]||(t[3051]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUnrankedMemRef")],-1)),t[3052]||(t[3052]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3053]||(t[3053]=l('
julia
mlirTypeIsAUnrankedMemRef(type)

Checks whether the given type is an UnrankedMemRef type.

source

',3))]),e("details",Sm,[e("summary",null,[t[3054]||(t[3054]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor")],-1)),t[3055]||(t[3055]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3056]||(t[3056]=l('
julia
mlirTypeIsAUnrankedTensor(type)

Checks whether the given type is an unranked tensor type.

source

',3))]),e("details",Nm,[e("summary",null,[t[3057]||(t[3057]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAVector")],-1)),t[3058]||(t[3058]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3059]||(t[3059]=l('
julia
mlirTypeIsAVector(type)

Checks whether the given type is a Vector type.

source

',3))]),e("details",Vm,[e("summary",null,[t[3060]||(t[3060]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsNull")],-1)),t[3061]||(t[3061]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3062]||(t[3062]=l('
julia
mlirTypeIsNull(type)

Checks whether a type is null.

source

',3))]),e("details",qm,[e("summary",null,[t[3063]||(t[3063]=e("a",{id:"Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeParseGet")],-1)),t[3064]||(t[3064]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3065]||(t[3065]=l('
julia
mlirTypeParseGet(context, type)

Parses a type. The type is owned by the context.

source

',3))]),e("details",Um,[e("summary",null,[t[3066]||(t[3066]=e("a",{id:"Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypePrint")],-1)),t[3067]||(t[3067]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3068]||(t[3068]=l('
julia
mlirTypePrint(type, callback, userData)

Prints a location by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",Qm,[e("summary",null,[t[3069]||(t[3069]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGet")],-1)),t[3070]||(t[3070]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3071]||(t[3071]=l('
julia
mlirUniformQuantizedPerAxisTypeGet(flags, storageType, expressedType, nDims, scales, zeroPoints, quantizedDimension, storageTypeMin, storageTypeMax)

Creates an instance of UniformQuantizedPerAxisType with the given parameters in the same context as storageType and returns it. scales and zeroPoints point to nDims number of elements. The instance is owned by the context.

source

',3))]),e("details",Wm,[e("summary",null,[t[3072]||(t[3072]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetNumDims")],-1)),t[3073]||(t[3073]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3074]||(t[3074]=l('
julia
mlirUniformQuantizedPerAxisTypeGetNumDims(type)

Returns the number of axes in the given quantized per-axis type.

source

',3))]),e("details",Hm,[e("summary",null,[t[3075]||(t[3075]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension")],-1)),t[3076]||(t[3076]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3077]||(t[3077]=l('
julia
mlirUniformQuantizedPerAxisTypeGetQuantizedDimension(type)

Returns the index of the quantized dimension in the given quantized per-axis type.

source

',3))]),e("details",Zm,[e("summary",null,[t[3078]||(t[3078]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale")],-1)),t[3079]||(t[3079]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3080]||(t[3080]=l('
julia
mlirUniformQuantizedPerAxisTypeGetScale(type, pos)

Returns pos-th scale of the given quantized per-axis type.

source

',3))]),e("details",Jm,[e("summary",null,[t[3081]||(t[3081]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetZeroPoint")],-1)),t[3082]||(t[3082]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3083]||(t[3083]=l('
julia
mlirUniformQuantizedPerAxisTypeGetZeroPoint(type, pos)

Returns pos-th zero point of the given quantized per-axis type.

source

',3))]),e("details",Km,[e("summary",null,[t[3084]||(t[3084]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeIsFixedPoint")],-1)),t[3085]||(t[3085]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3086]||(t[3086]=l('
julia
mlirUniformQuantizedPerAxisTypeIsFixedPoint(type)

Returns true if the given uniform quantized per-axis type is fixed-point.

source

',3))]),e("details",$m,[e("summary",null,[t[3087]||(t[3087]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGet-NTuple{7, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGet-NTuple{7, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGet")],-1)),t[3088]||(t[3088]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3089]||(t[3089]=l('
julia
mlirUniformQuantizedTypeGet(flags, storageType, expressedType, scale, zeroPoint, storageTypeMin, storageTypeMax)

Creates an instance of UniformQuantizedType with the given parameters in the same context as storageType and returns it. The instance is owned by the context.

source

',3))]),e("details",Xm,[e("summary",null,[t[3090]||(t[3090]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGetScale")],-1)),t[3091]||(t[3091]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3092]||(t[3092]=l('
julia
mlirUniformQuantizedTypeGetScale(type)

Returns the scale of the given uniform quantized type.

source

',3))]),e("details",Ym,[e("summary",null,[t[3093]||(t[3093]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint")],-1)),t[3094]||(t[3094]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3095]||(t[3095]=l('
julia
mlirUniformQuantizedTypeGetZeroPoint(type)

Returns the zero point of the given uniform quantized type.

source

',3))]),e("details",_m,[e("summary",null,[t[3096]||(t[3096]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint")],-1)),t[3097]||(t[3097]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3098]||(t[3098]=l('
julia
mlirUniformQuantizedTypeIsFixedPoint(type)

Returns true if the given uniform quantized type is fixed-point.

source

',3))]),e("details",tk,[e("summary",null,[t[3099]||(t[3099]=e("a",{id:"Reactant.MLIR.API.mlirUnitAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnitAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnitAttrGet")],-1)),t[3100]||(t[3100]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3101]||(t[3101]=l('
julia
mlirUnitAttrGet(ctx)

Creates a unit attribute in the given context.

source

',3))]),e("details",ek,[e("summary",null,[t[3102]||(t[3102]=e("a",{id:"Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnitAttrGetTypeID")],-1)),t[3103]||(t[3103]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3104]||(t[3104]=l('
julia
mlirUnitAttrGetTypeID()

Returns the typeID of a Unit attribute.

source

',3))]),e("details",sk,[e("summary",null,[t[3105]||(t[3105]=e("a",{id:"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet")],-1)),t[3106]||(t[3106]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3107]||(t[3107]=l('
julia
mlirUnmanagedDenseResourceElementsAttrGet(shapedType, name, data, dataLength, dataAlignment, dataIsMutable, deleter, userData)

Unlike the typed accessors below, constructs the attribute with a raw data buffer and no type/alignment checking. Use a more strongly typed accessor if possible. If dataIsMutable is false, then an immutable AsmResourceBlob will be created and that passed data contents will be treated as const. If the deleter is non NULL, then it will be called when the data buffer can no longer be accessed (passing userData to it).

source

',3))]),e("details",ak,[e("summary",null,[t[3108]||(t[3108]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet")],-1)),t[3109]||(t[3109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3110]||(t[3110]=l('
julia
mlirUnrankedMemRefTypeGet(elementType, memorySpace)

Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type.

source

',3))]),e("details",ik,[e("summary",null,[t[3111]||(t[3111]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked")],-1)),t[3112]||(t[3112]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3113]||(t[3113]=l('
julia
mlirUnrankedMemRefTypeGetChecked(loc, elementType, memorySpace)

Same as "mlirUnrankedMemRefTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",lk,[e("summary",null,[t[3114]||(t[3114]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetTypeID")],-1)),t[3115]||(t[3115]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3116]||(t[3116]=l('
julia
mlirUnrankedMemRefTypeGetTypeID()

Returns the typeID of an UnrankedMemRef type.

source

',3))]),e("details",nk,[e("summary",null,[t[3117]||(t[3117]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace")],-1)),t[3118]||(t[3118]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3119]||(t[3119]=l('
julia
mlirUnrankedMemrefGetMemorySpace(type)

Returns the memory spcae of the given Unranked MemRef type.

source

',3))]),e("details",pk,[e("summary",null,[t[3120]||(t[3120]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGet")],-1)),t[3121]||(t[3121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3122]||(t[3122]=l('
julia
mlirUnrankedTensorTypeGet(elementType)

Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",rk,[e("summary",null,[t[3123]||(t[3123]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked")],-1)),t[3124]||(t[3124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3125]||(t[3125]=l('
julia
mlirUnrankedTensorTypeGetChecked(loc, elementType)

Same as "mlirUnrankedTensorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",ok,[e("summary",null,[t[3126]||(t[3126]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGetTypeID")],-1)),t[3127]||(t[3127]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3128]||(t[3128]=l('
julia
mlirUnrankedTensorTypeGetTypeID()

Returns the typeID of an UnrankedTensor type.

source

',3))]),e("details",dk,[e("summary",null,[t[3129]||(t[3129]=e("a",{id:"Reactant.MLIR.API.mlirValueDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueDump")],-1)),t[3130]||(t[3130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3131]||(t[3131]=l('
julia
mlirValueDump(value)

Prints the value to the standard error stream.

source

',3))]),e("details",ck,[e("summary",null,[t[3132]||(t[3132]=e("a",{id:"Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueEqual")],-1)),t[3133]||(t[3133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3134]||(t[3134]=l('
julia
mlirValueEqual(value1, value2)

Returns 1 if two values are equal, 0 otherwise.

source

',3))]),e("details",hk,[e("summary",null,[t[3135]||(t[3135]=e("a",{id:"Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetFirstUse")],-1)),t[3136]||(t[3136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3137]||(t[3137]=l('
julia
mlirValueGetFirstUse(value)

Returns an op operand representing the first use of the value, or a null op operand if there are no uses.

source

',3))]),e("details",uk,[e("summary",null,[t[3138]||(t[3138]=e("a",{id:"Reactant.MLIR.API.mlirValueGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetType")],-1)),t[3139]||(t[3139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3140]||(t[3140]=l('
julia
mlirValueGetType(value)

Returns the type of the value.

source

',3))]),e("details",bk,[e("summary",null,[t[3141]||(t[3141]=e("a",{id:"Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsABlockArgument")],-1)),t[3142]||(t[3142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3143]||(t[3143]=l('
julia
mlirValueIsABlockArgument(value)

Returns 1 if the value is a block argument, 0 otherwise.

source

',3))]),e("details",gk,[e("summary",null,[t[3144]||(t[3144]=e("a",{id:"Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsAOpResult")],-1)),t[3145]||(t[3145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3146]||(t[3146]=l('
julia
mlirValueIsAOpResult(value)

Returns 1 if the value is an operation result, 0 otherwise.

source

',3))]),e("details",yk,[e("summary",null,[t[3147]||(t[3147]=e("a",{id:"Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsNull")],-1)),t[3148]||(t[3148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3149]||(t[3149]=l('
julia
mlirValueIsNull(value)

Returns whether the value is null.

source

',3))]),e("details",mk,[e("summary",null,[t[3150]||(t[3150]=e("a",{id:"Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValuePrint")],-1)),t[3151]||(t[3151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3152]||(t[3152]=l('
julia
mlirValuePrint(value, callback, userData)

Prints a value by sending chunks of the string representation and forwarding userData tocallback`. Note that the callback may be called several times with consecutive chunks of the string.

source

',3))]),e("details",kk,[e("summary",null,[t[3153]||(t[3153]=e("a",{id:"Reactant.MLIR.API.mlirValuePrintAsOperand-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirValuePrintAsOperand-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValuePrintAsOperand")],-1)),t[3154]||(t[3154]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3155]||(t[3155]=l('
julia
mlirValuePrintAsOperand(value, state, callback, userData)

Prints a value as an operand (i.e., the ValueID).

source

',3))]),e("details",fk,[e("summary",null,[t[3156]||(t[3156]=e("a",{id:"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith")],-1)),t[3157]||(t[3157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3158]||(t[3158]=l('
julia
mlirValueReplaceAllUsesOfWith(of, with)

Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead. When this returns there are zero uses of 'of'.

source

',3))]),e("details",Rk,[e("summary",null,[t[3159]||(t[3159]=e("a",{id:"Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueSetType")],-1)),t[3160]||(t[3160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3161]||(t[3161]=l('
julia
mlirValueSetType(value, type)

Set the type of the value.

source

',3))]),e("details",Ik,[e("summary",null,[t[3162]||(t[3162]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGet")],-1)),t[3163]||(t[3163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3164]||(t[3164]=l('
julia
mlirVectorTypeGet(rank, shape, elementType)

Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context.

source

',3))]),e("details",jk,[e("summary",null,[t[3165]||(t[3165]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetChecked")],-1)),t[3166]||(t[3166]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3167]||(t[3167]=l('
julia
mlirVectorTypeGetChecked(loc, rank, shape, elementType)

Same as "mlirVectorTypeGet" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",Mk,[e("summary",null,[t[3168]||(t[3168]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetScalable-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetScalable-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetScalable")],-1)),t[3169]||(t[3169]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3170]||(t[3170]=l('
julia
mlirVectorTypeGetScalable(rank, shape, scalable, elementType)

Creates a scalable vector type with the shape identified by its rank and dimensions. A subset of dimensions may be marked as scalable via the corresponding flag list, which is expected to have as many entries as the rank of the vector. The vector is created in the same context as the element type.

source

',3))]),e("details",Ak,[e("summary",null,[t[3171]||(t[3171]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked")],-1)),t[3172]||(t[3172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3173]||(t[3173]=l('
julia
mlirVectorTypeGetScalableChecked(loc, rank, shape, scalable, elementType)

Same as "mlirVectorTypeGetScalable" but returns a nullptr wrapping MlirType on illegal arguments, emitting appropriate diagnostics.

source

',3))]),e("details",Lk,[e("summary",null,[t[3174]||(t[3174]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirVectorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetTypeID")],-1)),t[3175]||(t[3175]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3176]||(t[3176]=l('
julia
mlirVectorTypeGetTypeID()

Returns the typeID of an Vector type.

source

',3))]),e("details",Ek,[e("summary",null,[t[3177]||(t[3177]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsDimScalable")],-1)),t[3178]||(t[3178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3179]||(t[3179]=l('
julia
mlirVectorTypeIsDimScalable(type, dim)

Checks whether the "dim"-th dimension of the given vector is scalable.

source

',3))]),e("details",vk,[e("summary",null,[t[3180]||(t[3180]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsScalable")],-1)),t[3181]||(t[3181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3182]||(t[3182]=l('
julia
mlirVectorTypeIsScalable(type)

Checks whether the given vector type is scalable, i.e., has at least one scalable dimension.

source

',3))]),t[3185]||(t[3185]=e("h1",{id:"Other-Functions",tabindex:"-1"},[s("Other Functions "),e("a",{class:"header-anchor",href:"#Other-Functions","aria-label":'Permalink to "Other Functions {#Other-Functions}"'},"​")],-1))])}const Gk=n(d,[["render",Tk]]);export{Bk as __pageData,Gk as default}; diff --git a/previews/PR363/assets/api_ops.md.D2WkrkEn.js b/previews/PR363/assets/api_ops.md.D2WkrkEn.js new file mode 100644 index 00000000..a972477f --- /dev/null +++ b/previews/PR363/assets/api_ops.md.D2WkrkEn.js @@ -0,0 +1,15 @@ +import{_ as n,c as l,j as i,a,G as e,a2 as h,B as p,o as k}from"./chunks/framework.2yyKLD8d.js";const C=JSON.parse('{"title":"Reactant.Ops API","description":"","frontmatter":{},"headers":[],"relativePath":"api/ops.md","filePath":"api/ops.md","lastUpdated":null}'),r={name:"api/ops.md"},d={class:"jldocstring custom-block"};function E(o,s,g,c,y,F){const t=p("Badge");return k(),l("div",null,[s[3]||(s[3]=i("h1",{id:"Reactant.Ops-API",tabindex:"-1"},[i("code",null,"Reactant.Ops"),a(" API "),i("a",{class:"header-anchor",href:"#Reactant.Ops-API","aria-label":'Permalink to "`Reactant.Ops` API {#Reactant.Ops-API}"'},"​")],-1)),s[4]||(s[4]=i("p",null,[i("code",null,"Reactant.Ops"),a(" module provides a high-level API to construct MLIR operations without having to directly interact with the different dialects.")],-1)),s[5]||(s[5]=i("p",null,[a("Currently we haven't documented all the functions in "),i("code",null,"Reactant.Ops"),a(".")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Reactant.Ops.hlo_call-Tuple{Any, Vararg{Any}}",href:"#Reactant.Ops.hlo_call-Tuple{Any, Vararg{Any}}"},[i("span",{class:"jlbinding"},"Reactant.Ops.hlo_call")],-1)),s[1]||(s[1]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=h(`
julia
Ops.hlo_call(mlir_code::String, args::Vararg{AnyTracedRArray}...; func_name::String="main") -> NTuple{N, AnyTracedRArray}

Given a MLIR module given as a string, calls the function identified by the func_name keyword parameter (default "main") with the provided arguments and return a tuple for each result of the call.

julia
julia> Reactant.@jit(
+          Ops.hlo_call(
+              """
+              module {
+                func.func @main(%arg0: tensor<3xf32>, %arg1: tensor<3xf32>) -> tensor<3xf32> {
+                  %0 = stablehlo.add %arg0, %arg1 : tensor<3xf32>
+                  return %0 : tensor<3xf32>
+                }
+              }
+              """,
+              Reactant.to_rarray(Float32[1, 2, 3]),
+              Reactant.to_rarray(Float32[1, 2, 3]),
+          )
+       )
+(ConcreteRArray{Float32, 1}(Float32[2.0, 4.0, 6.0]),)

source

`,4))])])}const f=n(r,[["render",E]]);export{C as __pageData,f as default}; diff --git a/previews/PR363/assets/api_ops.md.D2WkrkEn.lean.js b/previews/PR363/assets/api_ops.md.D2WkrkEn.lean.js new file mode 100644 index 00000000..a972477f --- /dev/null +++ b/previews/PR363/assets/api_ops.md.D2WkrkEn.lean.js @@ -0,0 +1,15 @@ +import{_ as n,c as l,j as i,a,G as e,a2 as h,B as p,o as k}from"./chunks/framework.2yyKLD8d.js";const C=JSON.parse('{"title":"Reactant.Ops API","description":"","frontmatter":{},"headers":[],"relativePath":"api/ops.md","filePath":"api/ops.md","lastUpdated":null}'),r={name:"api/ops.md"},d={class:"jldocstring custom-block"};function E(o,s,g,c,y,F){const t=p("Badge");return k(),l("div",null,[s[3]||(s[3]=i("h1",{id:"Reactant.Ops-API",tabindex:"-1"},[i("code",null,"Reactant.Ops"),a(" API "),i("a",{class:"header-anchor",href:"#Reactant.Ops-API","aria-label":'Permalink to "`Reactant.Ops` API {#Reactant.Ops-API}"'},"​")],-1)),s[4]||(s[4]=i("p",null,[i("code",null,"Reactant.Ops"),a(" module provides a high-level API to construct MLIR operations without having to directly interact with the different dialects.")],-1)),s[5]||(s[5]=i("p",null,[a("Currently we haven't documented all the functions in "),i("code",null,"Reactant.Ops"),a(".")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Reactant.Ops.hlo_call-Tuple{Any, Vararg{Any}}",href:"#Reactant.Ops.hlo_call-Tuple{Any, Vararg{Any}}"},[i("span",{class:"jlbinding"},"Reactant.Ops.hlo_call")],-1)),s[1]||(s[1]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=h(`
julia
Ops.hlo_call(mlir_code::String, args::Vararg{AnyTracedRArray}...; func_name::String="main") -> NTuple{N, AnyTracedRArray}

Given a MLIR module given as a string, calls the function identified by the func_name keyword parameter (default "main") with the provided arguments and return a tuple for each result of the call.

julia
julia> Reactant.@jit(
+          Ops.hlo_call(
+              """
+              module {
+                func.func @main(%arg0: tensor<3xf32>, %arg1: tensor<3xf32>) -> tensor<3xf32> {
+                  %0 = stablehlo.add %arg0, %arg1 : tensor<3xf32>
+                  return %0 : tensor<3xf32>
+                }
+              }
+              """,
+              Reactant.to_rarray(Float32[1, 2, 3]),
+              Reactant.to_rarray(Float32[1, 2, 3]),
+          )
+       )
+(ConcreteRArray{Float32, 1}(Float32[2.0, 4.0, 6.0]),)

source

`,4))])])}const f=n(r,[["render",E]]);export{C as __pageData,f as default}; diff --git a/previews/PR363/assets/api_stablehlo.md.291Wh6jS.js b/previews/PR363/assets/api_stablehlo.md.291Wh6jS.js new file mode 100644 index 00000000..bb26e718 --- /dev/null +++ b/previews/PR363/assets/api_stablehlo.md.291Wh6jS.js @@ -0,0 +1,197 @@ +import{_ as o,c as i,j as t,a,G as l,a2 as n,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const yt=JSON.parse('{"title":"StableHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/stablehlo.md","filePath":"api/stablehlo.md","lastUpdated":null}'),c={name:"api/stablehlo.md"},d={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"},te={class:"jldocstring custom-block"},ae={class:"jldocstring custom-block"},se={class:"jldocstring custom-block"},le={class:"jldocstring custom-block"},ne={class:"jldocstring custom-block"},oe={class:"jldocstring custom-block"},ie={class:"jldocstring custom-block"},pe={class:"jldocstring custom-block"},re={class:"jldocstring custom-block"},ce={class:"jldocstring custom-block"},de={class:"jldocstring custom-block"},be={class:"jldocstring custom-block"},ue={class:"jldocstring custom-block"},he={class:"jldocstring custom-block"},me={class:"jldocstring custom-block"},ge={class:"jldocstring custom-block"},Re={class:"jldocstring custom-block"},fe={class:"jldocstring custom-block"},xe={class:"jldocstring custom-block"},Le={class:"jldocstring custom-block"},Ie={class:"jldocstring custom-block"},Me={class:"jldocstring custom-block"},ye={class:"jldocstring custom-block"},je={class:"jldocstring custom-block"},ke={class:"jldocstring custom-block"},ve={class:"jldocstring custom-block"},De={class:"jldocstring custom-block"},_e={class:"jldocstring custom-block"},Te={class:"jldocstring custom-block"},Ve={class:"jldocstring custom-block"},Oe={class:"jldocstring custom-block"},Ee={class:"jldocstring custom-block"},Se={class:"jldocstring custom-block"},Ce={class:"jldocstring custom-block"},we={class:"jldocstring custom-block"},ze={class:"jldocstring custom-block"},He={class:"jldocstring custom-block"},Ae={class:"jldocstring custom-block"},qe={class:"jldocstring custom-block"},Pe={class:"jldocstring custom-block"},Ne={class:"jldocstring custom-block"},Fe={class:"jldocstring custom-block"},Be={class:"jldocstring custom-block"},Ue={class:"jldocstring custom-block"},We={class:"jldocstring custom-block"},Ge={class:"jldocstring custom-block"},Xe={class:"jldocstring custom-block"},$e={class:"jldocstring custom-block"},Ye={class:"jldocstring custom-block"},Je={class:"jldocstring custom-block"},Ke={class:"jldocstring custom-block"},Qe={class:"jldocstring custom-block"},Ze={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"},st={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},nt={class:"jldocstring custom-block"},ot={class:"jldocstring custom-block"},it={class:"jldocstring custom-block"},pt={class:"jldocstring custom-block"},rt={class:"jldocstring custom-block"},ct={class:"jldocstring custom-block"},dt={class:"jldocstring custom-block"},bt={class:"jldocstring custom-block"},ut={class:"jldocstring custom-block"},ht={class:"jldocstring custom-block"},mt={class:"jldocstring custom-block"};function gt(Rt,e,ft,xt,Lt,It){const s=p("Badge");return r(),i("div",null,[e[339]||(e[339]=t("h1",{id:"StableHLO-Dialect",tabindex:"-1"},[a("StableHLO Dialect "),t("a",{class:"header-anchor",href:"#StableHLO-Dialect","aria-label":'Permalink to "StableHLO Dialect {#StableHLO-Dialect}"'},"​")],-1)),e[340]||(e[340]=t("p",null,[a("Refer to the "),t("a",{href:"https://openxla.org/stablehlo",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),t("details",d,[t("summary",null,[e[0]||(e[0]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.abs-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.abs-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.abs")],-1)),e[1]||(e[1]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=n('

abs

Performs element-wise abs operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs

Example

mlir
%result = stablehlo.abs %operand : tensor<3xi32>

source

',6))]),t("details",b,[t("summary",null,[e[3]||(e[3]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.add")],-1)),e[4]||(e[4]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=n('

add

Performs element-wise addition of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add

Example

mlir
%result = stablehlo.add %lhs, %rhs : tensor<2x2xi32>

source

',6))]),t("details",u,[t("summary",null,[e[6]||(e[6]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.after_all-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.after_all-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.after_all")],-1)),e[7]||(e[7]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[8]||(e[8]=n('

after_all

Ensures that the operations producing the inputs are executed before any operations that depend on result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all

Example

mlir
%result = stablehlo.after_all %input0, %input1 : !stablehlo.token

source

',6))]),t("details",h,[t("summary",null,[e[9]||(e[9]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.all_gather-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.all_gather-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.all_gather")],-1)),e[10]||(e[10]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[11]||(e[11]=n(`

all_gather

Within each process group in the process grid, concatenates the values of the operand tensor from each process along all_gather_dim and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather

Example

mlir
%result:2 = "stablehlo.all_gather"(%operand0, %operand1) {
+  all_gather_dim = 1 : i64,
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> (tensor<2x4xi64>, tensor<2x4xi64>)

source

`,6))]),t("details",m,[t("summary",null,[e[12]||(e[12]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.all_reduce-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.all_reduce-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.all_reduce")],-1)),e[13]||(e[13]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[14]||(e[14]=n(`

all_reduce

Within each process group in the process grid, applies a reduction function computation to the values of the operand tensor from each process and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce

Example

mlir
%result:2 = "stablehlo.all_reduce"(%operand0, %operand0) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+  %0 = "stablehlo.add"(%arg0, %arg1) : (tensor<i64>, tensor<i64>) -> tensor<i64>
+  "stablehlo.return"(%0) : (tensor<i64>) -> ()
+}) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<4xi64>, tensor<4xi64>) -> (tensor<4xi64>, tensor<4xi64>)

source

`,6))]),t("details",g,[t("summary",null,[e[15]||(e[15]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.all_to_all-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.all_to_all-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.all_to_all")],-1)),e[16]||(e[16]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[17]||(e[17]=n(`

all_to_all

Within each process group in the process grid, splits the values of the operand tensor along split_dimension into parts, scatters the split parts between the processes, concatenates the scattered parts along concat_dimension and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all

Example

mlir
%result:2 = "stablehlo.all_to_all"(%operand1, %operand2) {
+  split_dimension = 1 : i64,
+  concat_dimension = 0 : i64,
+  split_count = 2 : i64,
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<2x4xi64>, tensor<2x4xi64>) -> (tensor<4x2xi64>, tensor<4x2xi64>)

source

`,6))]),t("details",R,[t("summary",null,[e[18]||(e[18]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.and")],-1)),e[19]||(e[19]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[20]||(e[20]=n('

and

Performs element-wise AND of two tensors lhs and rhs and produces a result tensor

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and

Example

mlir
%result = stablehlo.and %lhs, %rhs : tensor<2x2xi32>

source

',6))]),t("details",f,[t("summary",null,[e[21]||(e[21]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.atan2")],-1)),e[22]||(e[22]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[23]||(e[23]=n('

atan2

Performs element-wise atan2 operation on lhs and rhs tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2

Example

mlir
%result = stablehlo.atan2 %lhs, %rhs : tensor<3xf64>

source

',6))]),t("details",x,[t("summary",null,[e[24]||(e[24]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.batch_norm_grad-NTuple{5, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.batch_norm_grad-NTuple{5, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.batch_norm_grad")],-1)),e[25]||(e[25]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[26]||(e[26]=n(`

batch_norm_grad

Computes gradients of several inputs of BatchNormTrainingOp backpropagating from grad_output, and produces grad_operand, grad_scale and grad_offset tensors.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad

Example

mlir
%grad_operand, %grad_scale, %grad_offset =
+"stablehlo.batch_norm_grad"(%operand, %scale, %mean, %variance, %grad_output) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>,
+     tensor<2x2x2xf64>) -> (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)

source

`,6))]),t("details",L,[t("summary",null,[e[27]||(e[27]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.batch_norm_inference-NTuple{5, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.batch_norm_inference-NTuple{5, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.batch_norm_inference")],-1)),e[28]||(e[28]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=n(`

batch_norm_inference

Normalizes the operand tensor across all dimensions except for the feature_index dimension and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference

Example

mlir
%result = "stablehlo.batch_norm_inference"(%operand, %scale, %offset, %mean, %variance) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>) -> tensor<2x2x2xf64>

source

`,6))]),t("details",I,[t("summary",null,[e[30]||(e[30]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.batch_norm_training-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.batch_norm_training-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.batch_norm_training")],-1)),e[31]||(e[31]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[32]||(e[32]=n(`

batch_norm_training

Computes mean and variance across batch and spatial dimensions and normalizes the operand tensor, for each feature in the feature_index dimension and produces output, batch_mean and batch_var tensors.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training

Example

mlir
%output, %batch_mean, %batch_var = "stablehlo.batch_norm_training"(%operand, %scale, %offset) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>) ->
+    (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)

source

`,6))]),t("details",M,[t("summary",null,[e[33]||(e[33]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.bitcast_convert-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.bitcast_convert-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.bitcast_convert")],-1)),e[34]||(e[34]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=n('

bitcast_convert

Performs a bitcast operation on operand tensor and produces a result tensor where the bits of the entire operand tensor are reinterpreted using the type of the result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert

Example

mlir
%result = stablehlo.bitcast_convert %operand : (tensor<f64>) -> tensor<4xf16>

source

',6))]),t("details",y,[t("summary",null,[e[36]||(e[36]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.broadcast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.broadcast-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.broadcast")],-1)),e[37]||(e[37]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=n('

broadcast

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as XLA's Broadcast: https://www.tensorflow.org/xla/operation_semantics#broadcast

Example

mlir
%result = stablehlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>

source

',6))]),t("details",j,[t("summary",null,[e[39]||(e[39]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim")],-1)),e[40]||(e[40]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[41]||(e[41]=n('

broadcast_in_dim

Expands the dimensions and/or rank of an input tensor by duplicating the data in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim

Example

mlir
%result = stablehlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>

source

',6))]),t("details",k,[t("summary",null,[e[42]||(e[42]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.case-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.case-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.case")],-1)),e[43]||(e[43]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[44]||(e[44]=n(`

case

Produces the output from executing exactly one function from branches depending on the value of index.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case

Example

mlir
%result0, %result1 = "stablehlo.case"(%index) ({
+  stablehlo.return %result_branch0, %result_branch0 : tensor<2xi64>, tensor<2xi64>
+}, {
+  stablehlo.return %result_branch1, %result_branch1 : tensor<2xi64>, tensor<2xi64>
+}) : (tensor<i32>) -> (tensor<2xi64>, tensor<2xi64>)

source

`,6))]),t("details",v,[t("summary",null,[e[45]||(e[45]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cbrt-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cbrt-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cbrt")],-1)),e[46]||(e[46]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[47]||(e[47]=n('

cbrt

Performs element-wise cubic root operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt

Example

mlir
%result = stablehlo.cbrt %operand : tensor<4xf64>

source

',6))]),t("details",D,[t("summary",null,[e[48]||(e[48]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.ceil-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.ceil-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.ceil")],-1)),e[49]||(e[49]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[50]||(e[50]=n('

ceil

Performs element-wise ceil of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil

Example

mlir
%result = stablehlo.ceil %operand : tensor<5xf32>

source

',6))]),t("details",_,[t("summary",null,[e[51]||(e[51]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cholesky-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cholesky-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cholesky")],-1)),e[52]||(e[52]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[53]||(e[53]=n('

cholesky

Computes the Cholesky decomposition of a batch of matrices.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky

Example

mlir
%result = stablehlo.cholesky %a, lower = true : tensor<3x3xf64>

source

',6))]),t("details",T,[t("summary",null,[e[54]||(e[54]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.clamp-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.clamp-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.clamp")],-1)),e[55]||(e[55]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[56]||(e[56]=n('

clamp

Clamps every element of the operand tensor between a minimum and maximum value and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp

Example

mlir
%result = stablehlo.clamp %min, %operand, %max : tensor<3xi32>

source

',6))]),t("details",V,[t("summary",null,[e[57]||(e[57]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.collective_broadcast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.collective_broadcast-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.collective_broadcast")],-1)),e[58]||(e[58]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[59]||(e[59]=n(`

collective_broadcast

Within each process group in the process grid, send the value of the operand tensor from the source process to the target processes and produce a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast

Example

mlir
%result = "stablehlo.collective_broadcast"(%operand) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<1x2xi64>) -> tensor<1x2xi64>

source

`,6))]),t("details",O,[t("summary",null,[e[60]||(e[60]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.collective_permute-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.collective_permute-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.collective_permute")],-1)),e[61]||(e[61]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[62]||(e[62]=n(`

collective_permute

Within each process group in the process grid, sends the value of the operand tensor from the source process to the target process and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute

Example

mlir
%result = "stablehlo.collective_permute"(%operand) {
+  source_target_pairs = dense<[[0, 1], [1, 2]]> : tensor<2x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>) -> tensor<2x2xi64>

source

`,6))]),t("details",E,[t("summary",null,[e[63]||(e[63]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.compare")],-1)),e[64]||(e[64]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[65]||(e[65]=n('

compare

Performs element-wise comparison of lhs and rhs tensors according to comparison_direction and compare_type, and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare

Example

mlir
%result = stablehlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>

source

',6))]),t("details",S,[t("summary",null,[e[66]||(e[66]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.complex")],-1)),e[67]||(e[67]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[68]||(e[68]=n('

complex

Performs element-wise conversion to a complex value from a pair of real and imaginary values, lhs and rhs, and produces a result tensor. See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex

Example

mlir
%result = stablehlo.complex %lhs, %rhs : tensor<2xcomplex<f64>>

source

',5))]),t("details",C,[t("summary",null,[e[69]||(e[69]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.composite-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.composite-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.composite")],-1)),e[70]||(e[70]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[71]||(e[71]=n(`

composite

Encapsulates an operation made up (composed) of other StableHLO operations, taking inputs and composite_attributes and producing results. The semantics of the op are implemented by the decomposition attribute. The composite op can be replaced with its decomposition without changing program semantics. In cases where inlining the decomposition does not provide the same op semantics, prefer using custom_call.

The version field (defaults to 0) is used to denote when a composite's semantics change.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composite

Example

mlir
%results = stablehlo.composite "my.op" %input0, %input1 {
+  composite_attributes = {
+    my_attribute = "my_value"
+  },
+  decomposition = @my_op,
+  version = 1 : i32
+} : (tensor<f32>, tensor<f32>) -> tensor<f32>

source

`,7))]),t("details",w,[t("summary",null,[e[72]||(e[72]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.concatenate-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.concatenate-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.concatenate")],-1)),e[73]||(e[73]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[74]||(e[74]=n('

concatenate

Concatenates a variadic number of tensors in inputs along dimension dimension in the same order as the given arguments and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate

Example

mlir
%result = stablehlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>

source

',6))]),t("details",z,[t("summary",null,[e[75]||(e[75]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.constant-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.constant")],-1)),e[76]||(e[76]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[77]||(e[77]=n('

constant

Produces an output tensor from a constant value.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant

Example

mlir
%output = stablehlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>

source

',6))]),t("details",H,[t("summary",null,[e[78]||(e[78]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.convert-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.convert-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.convert")],-1)),e[79]||(e[79]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[80]||(e[80]=n('

convert

Performs an element-wise conversion from one element type to another on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert

Example

mlir
%result = stablehlo.convert %operand : (tensor<3xi64>) -> tensor<3xcomplex<f64>>

source

',6))]),t("details",A,[t("summary",null,[e[81]||(e[81]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.convolution-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.convolution-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.convolution")],-1)),e[82]||(e[82]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[83]||(e[83]=n(`

convolution

Computes dot products between windows of lhs and slices of rhs and produces result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution

Example

mlir
%result = stablehlo.convolution(%lhs, %rhs)
+  dim_numbers = [b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f],
+  window = {
+    stride = [4, 4],
+    pad = [[0, 0], [0, 0]],
+    lhs_dilate = [2, 2],
+    rhs_dilate = [1, 1],
+    reverse = [0, 0]
+  } {
+    feature_group_count = 1 : i64,
+    batch_group_count = 1 : i64,
+    precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+  } :
+(tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>) -> tensor<1x2x2x1xi64>

source

`,6))]),t("details",q,[t("summary",null,[e[84]||(e[84]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cosine-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cosine-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cosine")],-1)),e[85]||(e[85]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[86]||(e[86]=n('

cosine

Performs element-wise cosine operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine

Example

mlir
%result = stablehlo.cosine %operand : tensor<2xf32>

source

',6))]),t("details",P,[t("summary",null,[e[87]||(e[87]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.count_leading_zeros-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.count_leading_zeros-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.count_leading_zeros")],-1)),e[88]||(e[88]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[89]||(e[89]=n('

count_leading_zeros

Performs element-wise count of the number of leading zero bits in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeros

Example

mlir
%result = stablehlo.count_leading_zeros %operand : tensor<2x2xi64>

source

',6))]),t("details",N,[t("summary",null,[e[90]||(e[90]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.create_token-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.create_token-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.create_token")],-1)),e[91]||(e[91]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[92]||(e[92]=n('

create_token

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as AfterAllOp with 0 inputs: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all

Example

mlir
%output = stablehlo.create_token : !stablehlo.token

source

',6))]),t("details",F,[t("summary",null,[e[93]||(e[93]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cross_replica_sum-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cross_replica_sum-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cross_replica_sum")],-1)),e[94]||(e[94]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[95]||(e[95]=n(`

cross_replica_sum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as AllReduceOp with channel_id = 0, use_global_device_ids = false and computation implementing addition: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce

Example

mlir
%result = "stablehlo.cross-replica-sum"(%operand) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<4xf32>) -> tensor<4xf32>

source

`,6))]),t("details",B,[t("summary",null,[e[96]||(e[96]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.custom_call-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.custom_call-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.custom_call")],-1)),e[97]||(e[97]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[98]||(e[98]=n(`

custom_call

Encapsulates an implementation-defined operation call_target_name that takes inputs and called_computations and produces results.

Depending on the API version there are two ways to pass extra bits of static information to the external function:

  1. Use API_VERSION_TYPED_FFI which allows passing a dictionary attribute.

  2. Use a previous API version with a StringAttr to encode backend config.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call

Example

mlir
%results = stablehlo.custom_call @foo(%input0) {
+  backend_config = {bar = 42 : i32},
+  api_version = 4 : i32,
+  called_computations = [@foo]
+} : (tensor<f64>) -> tensor<f64>

source

`,8))]),t("details",U,[t("summary",null,[e[99]||(e[99]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.divide")],-1)),e[100]||(e[100]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[101]||(e[101]=n('

divide

Performs element-wise division of dividend lhs and divisor rhs tensors and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide

Example

mlir
%result = stablehlo.divide %lhs, %rhs : tensor<4xf32>

source

',6))]),t("details",W,[t("summary",null,[e[102]||(e[102]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dot-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dot-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dot")],-1)),e[103]||(e[103]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[104]||(e[104]=n('

dot

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot

Example

mlir
%0 = stablehlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>

source

',6))]),t("details",G,[t("summary",null,[e[105]||(e[105]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dot_general-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dot_general-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dot_general")],-1)),e[106]||(e[106]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[107]||(e[107]=n(`

dot_general

Computes dot products between slices of lhs and slices of rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general

Example

mlir
%result = stablehlo.dot_general %lhs, %rhs,
+  batching_dims = [0] x [0],
+  contracting_dims = [2] x [1],
+  precision = [DEFAULT, DEFAULT],
+  algorithm = <lhs_precision_type = tf32, rhs_precision_type = tf32, accumulation_type = f32, lhs_component_count = 1, rhs_component_count = 1, num_primitive_operations = 1, allow_imprecise_accumulation = false>
+  : (tensor<2x2x2xi64>, tensor<2x2x2xi64>) -> tensor<2x2x2xi64>

source

`,6))]),t("details",X,[t("summary",null,[e[108]||(e[108]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim")],-1)),e[109]||(e[109]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[110]||(e[110]=n(`

dynamic_broadcast_in_dim

This operation is functionally identical to broadcast_in_dim op, but the result shape is specified dynamically via output_dimensions.

It also accepts optional attributes to express static knowledge about the expanding behavior of dimensions. If not specified, all dimensions are assumed to be possibly expanding. The sets of dimensions that are known to be expanding and the set of dimensions that are known to be non-expanding must be disjoint and they must be a subset of the operand's dimensions.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_broadcast_in_dim

Example

mlir
%operand = stablehlo.constant dense<[[1, 2, 3]]> : tensor<1x3xi64>
+%output_dimensions = stablehlo.constant dense<[2, 3, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_broadcast_in_dim"(%operand, %output_dimensions) {
+  broadcast_dimensions = array<i64: 2, 1>,
+  known_expanding_dimensions = array<i64: 0>,
+  known_nonexpanding_dimensions = array<i64: 1>
+} : (tensor<1x3xi64>, tensor<3xi64>) -> tensor<2x3x2xi64>

source

`,7))]),t("details",$,[t("summary",null,[e[111]||(e[111]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_conv-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_conv-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_conv")],-1)),e[112]||(e[112]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[113]||(e[113]=n(`

dynamic_conv

This operation is functionally identical to convolution op, but the padding is specified dynamically via padding.

Example

mlir
%padding = stablehlo.constant dense<2> : tensor<2x2xi64>
+%result = "stablehlo.dynamic_conv"(%lhs, %rhs, %padding) {
+  window_strides = array<i64: 4, 4>,
+  lhs_dilation = array<i64: 2, 2>,
+  rhs_dilation = array<i64: 1, 1>,
+  window_reversal = array<i1: false, false>,
+  dimension_numbers = #stablehlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
+  batch_group_count = 1 : i64,
+  feature_group_count = 1 : i64,
+  precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+} : (tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>, tensor<2x2xi64>) -> tensor<1x2x2x1xi64>

source

`,5))]),t("details",Y,[t("summary",null,[e[114]||(e[114]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_gather")],-1)),e[115]||(e[115]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[116]||(e[116]=n(`

dynamic_gather

This operation is functionally identical to gather op, with the slice_sizes specified dynamically as an operand.

Example

mlir
%slice_sizes = stablehlo.constant dense<[1, 2, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_gather"(%operand, %start_indices, %slice_sizes) {
+  dimension_numbers = #stablehlo.gather<
+    offset_dims = [2, 3],
+    collapsed_slice_dims = [0],
+    start_index_map = [0, 2],
+    index_vector_dim = 2>,
+  indices_are_sorted = false
+} : (tensor<3x4x2xi64>, tensor<2x3x2xi64>, tensor<3xi64>) -> tensor<2x3x2x2xi64>

source

`,5))]),t("details",J,[t("summary",null,[e[117]||(e[117]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_iota-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_iota-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_iota")],-1)),e[118]||(e[118]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[119]||(e[119]=n(`

dynamic_iota

This operation is functionally identical to iota op, but the result shape is specified dynamically via output_shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_iota

Example

mlir
%output_shape = stablehlo.constant dense<[4, 5]> : tensor<2xi64>
+%0 = stablehlo.dynamic_iota %output_shape, dim = 0 : (tensor<2xi64>) -> tensor<4x5xi64>

source

`,6))]),t("details",K,[t("summary",null,[e[120]||(e[120]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_pad-NTuple{5, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_pad-NTuple{5, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_pad")],-1)),e[121]||(e[121]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[122]||(e[122]=n(`

dynamic_pad

This operation is functionally identical to pad https://github.com/openxla/stablehlo/pull/2306#discussion_r1595669709 op, but with edge_padding_low,edge_padding_highandinterior_padding specified dynamically as values.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_pad

Example

mlir
%edge_padding_low = stablehlo.constant dense<[0, 1]> : tensor<2xi32>
+%edge_padding_high = stablehlo.constant dense<[2, 1]> : tensor<2xi32>
+%interior_padding = stablehlo.constant dense<[1, 2]> : tensor<2xi32>
+%result = stablehlo.dynamic_pad %operand, %padding_value,
+            %edge_padding_low, %edge_padding_high, %interior_padding
+            : (tensor<2x3xi64>, tensor<i64>, tensor<2xi64>, tensor<2xi64>, tensor<2xi64>) -> tensor<5x9xi64>

source

`,6))]),t("details",Q,[t("summary",null,[e[123]||(e[123]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_reshape-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_reshape-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_reshape")],-1)),e[124]||(e[124]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[125]||(e[125]=n(`

dynamic_reshape

This operation is functionally identical to reshape op, but the result shape is specified dynamically via output_shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_reshape

Example

mlir
%output_shape = stablehlo.constant dense<[3, 2]> : tensor<2xi64>
+%result = stablehlo.dynamic_reshape %operand, %output_shape : (tensor<2x3xi64>, tensor<2xi64>) -> tensor<3x2xi64>

source

`,6))]),t("details",Z,[t("summary",null,[e[126]||(e[126]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_slice-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_slice-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_slice")],-1)),e[127]||(e[127]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[128]||(e[128]=n(`

dynamic_slice

Extracts a slice from the operand using dynamically-computed starting indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice

Example

mlir
%result = stablehlo.dynamic_slice %operand, %start_indices0, %start_indices1, sizes = [2, 2]
+  : (tensor<4x4xi32>, tensor<i64>, tensor<i64>) -> tensor<2x2xi32>

source

`,6))]),t("details",ee,[t("summary",null,[e[129]||(e[129]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice")],-1)),e[130]||(e[130]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[131]||(e[131]=n(`

dynamic_update_slice

Produces a result tensor which is equal to the operand tensor except that the slice starting at start_indices is updated with the values in update.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_update_slice

Example

mlir
%result = stablehlo.dynamic_update_slice %operand, %update, %start_indices0, %start_indices1
+  : (tensor<4x4xi32>, tensor<2x2xi32>, tensor<i64>, tensor<i64>) -> tensor<4x4xi32>

source

`,6))]),t("details",te,[t("summary",null,[e[132]||(e[132]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.einsum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.einsum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.einsum")],-1)),e[133]||(e[133]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[134]||(e[134]=n(`

einsum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum

Example

mlir
%result = "stablehlo.einsum"(%lhs, %rhs) {
+  einsum_config = "ab,bc->ac"
+} : (tensor<4x16xf32>, tensor<16x4xf32>) -> tensor<4x4xf32>

source

`,6))]),t("details",ae,[t("summary",null,[e[135]||(e[135]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.exponential-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.exponential-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.exponential")],-1)),e[136]||(e[136]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[137]||(e[137]=n('

exponential

Performs element-wise exponential operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential

Example

mlir
%result = stablehlo.exponential %operand : tensor<2x2xf64>

source

',6))]),t("details",se,[t("summary",null,[e[138]||(e[138]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.exponential_minus_one-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.exponential_minus_one-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.exponential_minus_one")],-1)),e[139]||(e[139]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[140]||(e[140]=n('

exponential_minus_one

Performs element-wise exponential minus one operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential_minus_one

Example

mlir
%result = stablehlo.exponential_minus_one %operand : tensor<2xf64>

source

',6))]),t("details",le,[t("summary",null,[e[141]||(e[141]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.fft-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.fft-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.fft")],-1)),e[142]||(e[142]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[143]||(e[143]=n('

fft

Performs the forward and inverse Fourier transforms for real and complex inputs/outputs.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#fft

Example

mlir
%result = stablehlo.fft %operand, type = FFT, length = [4] : (tensor<4xcomplex<f32>>) -> tensor<4xcomplex<f32>>

source

',6))]),t("details",ne,[t("summary",null,[e[144]||(e[144]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.floor-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.floor-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.floor")],-1)),e[145]||(e[145]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[146]||(e[146]=n('

floor

Performs element-wise floor of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#floor

Example

mlir
%result = stablehlo.floor %operand : tensor<2xf32>

source

',6))]),t("details",oe,[t("summary",null,[e[147]||(e[147]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.gather")],-1)),e[148]||(e[148]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[149]||(e[149]=n(`

gather

Gathers slices from operand tensor from offsets specified in start_indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather

Example

mlir
%result = "stablehlo.gather"(%operand, %start_indices) {
+  dimension_numbers = #stablehlo.gather<
+    offset_dims = [3, 4],
+    collapsed_slice_dims = [1],
+    operand_batching_dims = [0],
+    start_indices_batching_dims = [1],
+    start_index_map = [2, 1],
+    index_vector_dim = 3>,
+  slice_sizes = array<i64: 1, 1, 2, 2>,
+  indices_are_sorted = false
+} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>) -> tensor<2x2x3x2x2xi64>

source

`,6))]),t("details",ie,[t("summary",null,[e[150]||(e[150]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.get_dimension_size-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.get_dimension_size-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.get_dimension_size")],-1)),e[151]||(e[151]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[152]||(e[152]=n('

get_dimension_size

Produces the size of the given dimension of the operand.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size

Example

mlir
%result = stablehlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xi64>) -> tensor<i32>

source

',6))]),t("details",pe,[t("summary",null,[e[153]||(e[153]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.get_tuple_element-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.get_tuple_element-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.get_tuple_element")],-1)),e[154]||(e[154]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[155]||(e[155]=n('

get_tuple_element

Extracts element at index position of the operand tuple and produces a result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_tuple_element

Example

mlir
%result = stablehlo.get_tuple_element %operand[0] : (tuple<tensor<2xf64>, tuple<tensor<i64>>>) -> tensor<2xf64>

source

',6))]),t("details",re,[t("summary",null,[e[156]||(e[156]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.if_-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.if_-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.if_")],-1)),e[157]||(e[157]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[158]||(e[158]=n('

if_

Produces the output from executing exactly one branch from true_branch or false_branch depending on the value of pred.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if

Example

%result = "stablehlo.if"(%pred) ({ "stablehlo.return"(%result_true_branch) : (tensor<i32>) -> () }, { "stablehlo.return"(%result_false_branch) : (tensor<i32>) -> () }) : (tensor<i1>) -> tensor<i32>

source

',6))]),t("details",ce,[t("summary",null,[e[159]||(e[159]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.imag")],-1)),e[160]||(e[160]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[161]||(e[161]=n('

imag

Extracts the imaginary part, element-wise, from the operand and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#imag

Example

mlir
%result = stablehlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>

source

',6))]),t("details",de,[t("summary",null,[e[162]||(e[162]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.infeed-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.infeed-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.infeed")],-1)),e[163]||(e[163]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[164]||(e[164]=n(`

infeed

Reads data from the infeed and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#infeed

Example

mlir
%results0:2 = "stablehlo.infeed"(%token) :
+    (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)

source

`,6))]),t("details",be,[t("summary",null,[e[165]||(e[165]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.iota-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.iota-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.iota")],-1)),e[166]||(e[166]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[167]||(e[167]=n('

iota

Fills an output tensor with values in increasing order starting from zero along the iota_dimension dimension.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota

Example

mlir
%output = stablehlo.iota dim = 0 : tensor<4x5xi32>

source

',6))]),t("details",ue,[t("summary",null,[e[168]||(e[168]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.is_finite-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.is_finite-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.is_finite")],-1)),e[169]||(e[169]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[170]||(e[170]=n('

is_finite

Performs element-wise check whether the value in x is finite (i.e. is neither +Inf, -Inf, nor NaN) and produces a y tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#is_finite

Example

mlir
%y = stablehlo.is_finite %x : (tensor<7xf64>) -> tensor<7xi1>

source

',6))]),t("details",he,[t("summary",null,[e[171]||(e[171]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.log-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.log-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.log")],-1)),e[172]||(e[172]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[173]||(e[173]=n('

log

Performs element-wise logarithm operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log

Example

mlir
%result = stablehlo.log %operand : tensor<2x2xf64>

source

',6))]),t("details",me,[t("summary",null,[e[174]||(e[174]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.log_plus_one-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.log_plus_one-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.log_plus_one")],-1)),e[175]||(e[175]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[176]||(e[176]=n('

log_plus_one

Performs element-wise logarithm plus one operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log_plus_one

Example

mlir
%result = stablehlo.log_plus_one %operand : tensor<5xf64>

source

',6))]),t("details",ge,[t("summary",null,[e[177]||(e[177]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.logistic-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.logistic-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.logistic")],-1)),e[178]||(e[178]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[179]||(e[179]=n('

logistic

Performs element-wise logistic operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#logistic

Example

mlir
%result = stablehlo.logistic %operand : tensor<2x2xf64>

source

',6))]),t("details",Re,[t("summary",null,[e[180]||(e[180]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.map-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.map-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.map")],-1)),e[181]||(e[181]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[182]||(e[182]=n(`

map

Applies a map function computation to inputs along the dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#map

Example

mlir
%result = "stablehlo.map"(%input0, %input1) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.multiply %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  dimensions = array<i64: 0, 1>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> tensor<2x2xi64>

source

`,6))]),t("details",fe,[t("summary",null,[e[183]||(e[183]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.maximum")],-1)),e[184]||(e[184]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[185]||(e[185]=n('

maximum

Performs element-wise max operation on tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#maximum

Example

mlir
%result = stablehlo.maximum %lhs, %rhs : tensor<4xf32>

source

',6))]),t("details",xe,[t("summary",null,[e[186]||(e[186]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.minimum")],-1)),e[187]||(e[187]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[188]||(e[188]=n('

minimum

Performs element-wise min operation on tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#minimum

Example

mlir
%result = stablehlo.minimum %lhs, %rhs : tensor<4xf32>

source

',6))]),t("details",Le,[t("summary",null,[e[189]||(e[189]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.multiply")],-1)),e[190]||(e[190]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[191]||(e[191]=n('

multiply

Performs element-wise product of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#multiply

Example

mlir
%result = stablehlo.multiply %lhs, %rhs : tensor<2xi32>

source

',6))]),t("details",Ie,[t("summary",null,[e[192]||(e[192]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.negate-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.negate-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.negate")],-1)),e[193]||(e[193]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[194]||(e[194]=n('

negate

Performs element-wise negation of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#negate

Example

mlir
%result = stablehlo.negate %operand : tensor<2x3xi32>

source

',6))]),t("details",Me,[t("summary",null,[e[195]||(e[195]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.not-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.not-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.not")],-1)),e[196]||(e[196]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[197]||(e[197]=n('

not

Performs element-wise NOT of tensor operand of type integer and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#not

Example

mlir
%result = stablehlo.not %operand : tensor<5x3x1xi1>

source

',6))]),t("details",ye,[t("summary",null,[e[198]||(e[198]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.optimization_barrier-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.optimization_barrier-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.optimization_barrier")],-1)),e[199]||(e[199]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[200]||(e[200]=n('

optimization_barrier

Ensures that the operations that produce the operand are executed before any operations that depend on the result and prevents compiler transformations from moving operations across the barrier. Other than that, the operation is an identity, i.e. result = operand.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#optimization_barrier

Example

mlir
%result0, %result1 = stablehlo.optimization_barrier %operand0, %operand1 : tensor<f32>, tensor<f32>

source

',6))]),t("details",je,[t("summary",null,[e[201]||(e[201]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.or")],-1)),e[202]||(e[202]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[203]||(e[203]=n('

or

Performs element-wise OR of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#or

Example

mlir
%result = stablehlo.or %lhs, %rhs : tensor<2xi1>

source

',6))]),t("details",ke,[t("summary",null,[e[204]||(e[204]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.outfeed-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.outfeed-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.outfeed")],-1)),e[205]||(e[205]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[206]||(e[206]=n(`

outfeed

Writes inputs to the outfeed and produces a result token.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed

Example

mlir
%result = "stablehlo.outfeed"(%input0, %token) :
+    (tensor<2x2x2xi64>, !stablehlo.token) -> !stablehlo.token

source

`,6))]),t("details",ve,[t("summary",null,[e[207]||(e[207]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.pad-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.pad-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.pad")],-1)),e[208]||(e[208]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[209]||(e[209]=n(`

pad

Expands operand by padding around the tensor as well as between the elements of the tensor with the given padding_value.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#pad

Example

mlir
%0 = stablehlo.pad %arg0, %arg1, low = [0, 1], high = [2, 1], interior = [1, 2]
+  : (tensor<2x3xi32>, tensor<i32>) -> tensor<5x9xi32>

source

`,6))]),t("details",De,[t("summary",null,[e[210]||(e[210]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.partition_id-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.partition_id-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.partition_id")],-1)),e[211]||(e[211]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[212]||(e[212]=n('

partition_id

Produces partition_id of the current process.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#partition_id

Example

mlir
%result = stablehlo.partition_id : tensor<ui32>

source

',6))]),t("details",_e,[t("summary",null,[e[213]||(e[213]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.popcnt-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.popcnt-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.popcnt")],-1)),e[214]||(e[214]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[215]||(e[215]=n('

popcnt

Performs element-wise count of the number of bits set in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#popcnt

Example

mlir
%result = stablehlo.popcnt %operand : tensor<4xi64>

source

',6))]),t("details",Te,[t("summary",null,[e[216]||(e[216]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.power")],-1)),e[217]||(e[217]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[218]||(e[218]=n('

power

Performs element-wise exponentiation of lhs tensor by rhs tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#power

Example

mlir
%result = stablehlo.power %lhs, %rhs : tensor<6xf64>

source

',6))]),t("details",Ve,[t("summary",null,[e[219]||(e[219]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.real-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.real-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.real")],-1)),e[220]||(e[220]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[221]||(e[221]=n('

real

Extracts the real part, element-wise, from the operand and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#real

Example

mlir
%result = stablehlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>

source

',6))]),t("details",Oe,[t("summary",null,[e[222]||(e[222]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice-NTuple{4, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice-NTuple{4, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice")],-1)),e[223]||(e[223]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[224]||(e[224]=n(`

real_dynamic_slice

This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.

Informally, this operation does the same thing as SliceOp except that start_indices, limit_indices and strides are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice

Example

mlir
%result = stablehlo.real_dynamic_slice %operand,
+            %start_indices, %limit_indices, %strides
+       : (tensor<256x?xf32>, tensor<2xindex>, tensor<2xindex>, tensor<2xindex>) -> tensor<256x?xf32>

source

`,6))]),t("details",Ee,[t("summary",null,[e[225]||(e[225]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.recv-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.recv-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.recv")],-1)),e[226]||(e[226]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[227]||(e[227]=n(`

recv

Receives data from a channel with channel_id and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv

Example

mlir
%results:2 = "stablehlo.recv"(%token) {
+  channel_handle = #stablehlo.channel_handle<handle = 1, type = 3>,
+  is_host_transfer = true
+} : (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)

source

`,6))]),t("details",Se,[t("summary",null,[e[228]||(e[228]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce")],-1)),e[229]||(e[229]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[230]||(e[230]=n(`

reduce

Applies a reduction function body to inputs and init_values along the dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce

Example

mlir
%result = "stablehlo.reduce"(%input, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  dimensions = array<i64: 1>
+} : (tensor<1x6xi64>, tensor<i64>) -> tensor<1xi64>

source

`,6))]),t("details",Ce,[t("summary",null,[e[231]||(e[231]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_precision-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_precision-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_precision")],-1)),e[232]||(e[232]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[233]||(e[233]=n('

reduce_precision

Performs element-wise conversion of operand to another floating-point type that uses exponent_bits and mantissa_bits and back to the original floating-point type and produces an output tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_precision

Example

mlir
%output = stablehlo.reduce_precision %operand, format = e5m10 : tensor<6xf64>

source

',6))]),t("details",we,[t("summary",null,[e[234]||(e[234]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_scatter-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_scatter-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_scatter")],-1)),e[235]||(e[235]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[236]||(e[236]=n('

reduce_scatter

Within each process group in the process grid, performs reduction, using computations, over the values of the operand tensor from each process, splits the reduction result along scatter_dimension into parts, and scatters the split parts between the processes to produce the result.

See:\nhttps://github.com/openxla/stablehlo/blob/main/docs/spec#reduce_scatter\n\nExample:\n```mlir\n%result = "stablehlo.reduce_scatter"(%operand) ({

^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension = 1 : i64, replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>, channel_handle = #stablehlo.channel_handle<handle = 0, type = 0> } : (tensor<2x4xi64>) -> tensor<2x2xi64> ```

source

',5))]),t("details",ze,[t("summary",null,[e[237]||(e[237]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_window")],-1)),e[238]||(e[238]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[239]||(e[239]=n(`

reduce_window

Applies a reduction function body to windows of inputs and init_values and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window

Example

mlir
%result = "stablehlo.reduce_window"(%input, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  window_dimensions = array<i64: 2, 1>,
+  window_strides = array<i64: 4, 1>,
+  base_dilations = array<i64: 2, 1>,
+  window_dilations = array<i64: 3, 1>,
+  padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<3x2xi64>, tensor<i64>) -> tensor<2x2xi64>

source

`,6))]),t("details",He,[t("summary",null,[e[240]||(e[240]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.remainder")],-1)),e[241]||(e[241]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[242]||(e[242]=n('

remainder

Performs element-wise remainder of dividend lhs and divisor rhs tensors and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#remainder

Example

mlir
%result = stablehlo.remainder %lhs, %rhs : tensor<4xi64>

source

',6))]),t("details",Ae,[t("summary",null,[e[243]||(e[243]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.replica_id-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.replica_id-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.replica_id")],-1)),e[244]||(e[244]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[245]||(e[245]=n('

replica_id

Produces replica_id of the current process.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#replica_id

Example

mlir
%result = stablehlo.replica_id : tensor<ui32>

source

',6))]),t("details",qe,[t("summary",null,[e[246]||(e[246]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reshape-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reshape-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reshape")],-1)),e[247]||(e[247]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[248]||(e[248]=n('

reshape

Performs reshape of operand tensor to a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape

Example

mlir
%result = stablehlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>

source

',6))]),t("details",Pe,[t("summary",null,[e[249]||(e[249]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reverse-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reverse-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reverse")],-1)),e[250]||(e[250]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[251]||(e[251]=n('

reverse

Reverses the order of elements in the operand along the specified dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse

Example

mlir
%result = stablehlo.reverse %operand, dims = [1] : tensor<3x2xi32>

source

',6))]),t("details",Ne,[t("summary",null,[e[252]||(e[252]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.rng-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.rng-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.rng")],-1)),e[253]||(e[253]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[254]||(e[254]=n('

rng

Generates random numbers using the rng_distribution algorithm and produces a result tensor of a given shape shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng

Example

mlir
%result = stablehlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>

source

',6))]),t("details",Fe,[t("summary",null,[e[255]||(e[255]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.rng_bit_generator-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.rng_bit_generator-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.rng_bit_generator")],-1)),e[256]||(e[256]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[257]||(e[257]=n('

rng_bit_generator

Returns an output filled with uniform random data and an updated output state output_state given an initial state initial_state using the pseudorandom number generator algorithm rng_algorithm.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng_bit_generator

Example

mlir
%output_state, %output = stablehlo.rng_bit_generator %initial_state, algorithm = THREE_FRY : (tensor<2xui64>) -> (tensor<2xui64>, tensor<2x2xui64>)

source

',6))]),t("details",Be,[t("summary",null,[e[258]||(e[258]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.round_nearest_afz-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.round_nearest_afz-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.round_nearest_afz")],-1)),e[259]||(e[259]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[260]||(e[260]=n('

round_nearest_afz

Performs element-wise rounding towards the nearest integer, breaking ties away from zero, on the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_afz

Example

mlir
%result = stablehlo.round_nearest_afz %operand : tensor<5xf64>

source

',6))]),t("details",Ue,[t("summary",null,[e[261]||(e[261]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.round_nearest_even-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.round_nearest_even-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.round_nearest_even")],-1)),e[262]||(e[262]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[263]||(e[263]=n('

round_nearest_even

Performs element-wise rounding towards the nearest integer, breaking ties towards the even integer, on the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_even

Example

mlir
%result = stablehlo.round_nearest_even %operand : tensor<5xf64>

source

',6))]),t("details",We,[t("summary",null,[e[264]||(e[264]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.rsqrt-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.rsqrt-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.rsqrt")],-1)),e[265]||(e[265]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[266]||(e[266]=n('

rsqrt

Performs element-wise reciprocal square root operation on operand tensor and produces a result tensor, implementing the rSqrt operation from the IEEE-754 specification.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rsqrt

Example

mlir
%result = stablehlo.rsqrt %operand : tensor<2x2xf32>

source

',6))]),t("details",Ge,[t("summary",null,[e[267]||(e[267]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.scatter-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.scatter-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.scatter")],-1)),e[268]||(e[268]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[269]||(e[269]=n('

scatter

Produces results tensors which are equal to inputs tensors except that several slices specified by scatter_indices are updated with the values updates using update_computation.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#scatter

Example: mlir %result = "stablehlo.scatter"(%input, %scatter_indices, %update) ({ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension_numbers = #stablehlo.scatter< update_window_dims = [3, 4], inserted_window_dims = [1], input_batching_dims = [0], scatter_indices_batching_dims = [1], scatter_dims_to_operand_dims = [2, 1], index_vector_dim = 3>, indices_are_sorted = false, unique_indices = false } : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>, tensor<2x2x3x2x2xi64>) -> tensor<2x3x4x2xi64>

source

',5))]),t("details",Xe,[t("summary",null,[e[270]||(e[270]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.select")],-1)),e[271]||(e[271]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[272]||(e[272]=n('

select

Produces a result tensor where each element is selected from on_true or on_false tensor based on the value of the corresponding element of pred.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select

Example

mlir
%result = stablehlo.select %pred, %on_true, %on_false : tensor<2x2xi1>, tensor<2x2xi32>

source

',6))]),t("details",$e,[t("summary",null,[e[273]||(e[273]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.select_and_scatter-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.select_and_scatter-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.select_and_scatter")],-1)),e[274]||(e[274]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[275]||(e[275]=n(`

select_and_scatter

Scatters the values from the source tensor using scatter based on the outcome of reduce_window of the input tensor using select and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter

Example

mlir
%result = "stablehlo.select_and_scatter"(%operand, %source, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.compare GE, %arg0, %arg1 : (tensor<i64>, tensor<i64>) -> tensor<i1>
+    stablehlo.return %0 : tensor<i1>
+}, {
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  window_dimensions = dense<[3, 1]> : tensor<2xi64>,
+  window_strides = dense<[2, 1]> : tensor<2xi64>,
+  padding = dense<[[0, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<4x2xi64>, tensor<2x2xi64>, tensor<i64>) -> tensor<4x2xi64>

source

`,6))]),t("details",Ye,[t("summary",null,[e[276]||(e[276]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.send-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.send-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.send")],-1)),e[277]||(e[277]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[278]||(e[278]=n(`

send

Sends inputs to a channel channel_id and produces a result token.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send

Example

mlir
%result = "stablehlo.send"(%operand, %token) {
+  channel_handle = #stablehlo.channel_handle<handle = 1, type = 2>,
+  is_host_transfer = true
+} : (tensor<2x2xi64>, !stablehlo.token) -> !stablehlo.token

source

`,6))]),t("details",Je,[t("summary",null,[e[279]||(e[279]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.set_dimension_size-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.set_dimension_size-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.set_dimension_size")],-1)),e[280]||(e[280]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[281]||(e[281]=n('

set_dimension_size

This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.

Informally, this operation does the same thing as XLA's SetDimensionSize: https://www.tensorflow.org/xla/operation_semantics#setdimensionsize

Example

mlir
%0 = stablehlo.set_dimension_size %arg0, %arg1, dim = 1 : (tensor<4x2xf32>, tensor<i32>) -> tensor<4x2xf32>

source

',6))]),t("details",Ke,[t("summary",null,[e[282]||(e[282]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.shift_left")],-1)),e[283]||(e[283]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[284]||(e[284]=n('

shift_left

Performs element-wise left-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_left

Example

mlir
%result = stablehlo.shift_left %lhs, %rhs : tensor<3xi64>

source

',6))]),t("details",Qe,[t("summary",null,[e[285]||(e[285]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic")],-1)),e[286]||(e[286]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[287]||(e[287]=n('

shift_right_arithmetic

Performs element-wise arithmetic right-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_arithmetic

Example

mlir
%result = stablehlo.shift_right_arithmetic %lhs, %rhs : tensor<3xi64>

source

',6))]),t("details",Ze,[t("summary",null,[e[288]||(e[288]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.shift_right_logical")],-1)),e[289]||(e[289]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[290]||(e[290]=n('

shift_right_logical

Performs element-wise logical right-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_logical

Example

mlir
%result = stablehlo.shift_right_logical %lhs, %rhs : tensor<3xi64>

source

',6))]),t("details",et,[t("summary",null,[e[291]||(e[291]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.sign-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.sign-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.sign")],-1)),e[292]||(e[292]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[293]||(e[293]=n('

sign

Returns the sign of the operand element-wise and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sign

Example

mlir
%result = stablehlo.sign %operand : tensor<5xf64>

source

',6))]),t("details",tt,[t("summary",null,[e[294]||(e[294]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.sine-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.sine-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.sine")],-1)),e[295]||(e[295]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[296]||(e[296]=n('

sine

Performs element-wise sine operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sine

Example

mlir
%result = stablehlo.sine %operand : tensor<2xf32>

source

',6))]),t("details",at,[t("summary",null,[e[297]||(e[297]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.slice-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.slice-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.slice")],-1)),e[298]||(e[298]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[299]||(e[299]=n('

slice

Extracts a slice from the operand using statically-computed starting indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice

Example

mlir
%result = stablehlo.slice %operand [1:3, 4:8:2]\n   : (tensor<3x8xi64>) -> tensor<2x2xi64>\n\n// Same in generic form: the `1:3` above is mapped to the first entry in\n// `start_indices` and `limit_indices`, while `strides` is implicitly 1.\n// The `4:8:2` above is parsed into the second entry of `start_indices`,\n// `limit_indices` and `strides` respectively.\n%result = "stablehlo.slice" (%operand) {\n  start_indices = array<i64: 1, 4>,\n  limit_indices = array<i64: 3, 8>,\n  strides = array<i64: 1, 2>\n} : (tensor<3x8xi64>) -> tensor<2x2xi64>

source

',6))]),t("details",st,[t("summary",null,[e[300]||(e[300]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.sort-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.sort-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.sort")],-1)),e[301]||(e[301]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[302]||(e[302]=n(`

sort

Sorts a variadic number of tensors in inputs together, according to a custom comparator, along the given dimension and produces a variadic number of tensors as results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort

Example

mlir

+
+[source](https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/StableHLO.jl#L4195-L4215)
+
+</details>
+
+<details class='jldocstring custom-block' >
+<summary><a id='Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}' href='#Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}'><span class="jlbinding">Reactant.MLIR.Dialects.stablehlo.sqrt</span></a> <Badge type="info" class="jlObjectType jlMethod" text="Method" /></summary>
+
+
+
+\`sqrt\`
+
+Performs element-wise square root operation on \`operand\` tensor and produces a \`result\` tensor.
+
+See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sqrt
+
+**Example**
+
+\`\`\`mlir
+%result = stablehlo.sqrt %operand : tensor<2x2xf32>

source

`,6))]),t("details",lt,[t("summary",null,[e[303]||(e[303]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.subtract")],-1)),e[304]||(e[304]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[305]||(e[305]=n('

subtract

Performs element-wise subtraction of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#subtract

Example

mlir
%result = stablehlo.subtract %lhs, %rhs : tensor<2xi32>

source

',6))]),t("details",nt,[t("summary",null,[e[306]||(e[306]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.tan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.tan-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.tan")],-1)),e[307]||(e[307]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[308]||(e[308]=n('

tan

Performs element-wise tangent operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tan

Example

mlir
%result = stablehlo.tan %operand : tensor<2x2xf64>

source

',6))]),t("details",ot,[t("summary",null,[e[309]||(e[309]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.tanh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.tanh-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.tanh")],-1)),e[310]||(e[310]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[311]||(e[311]=n('

tanh

Performs element-wise hyperbolic tangent operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tanh

Example

mlir
%result = stablehlo.tanh %operand : tensor<2xf32>

source

',6))]),t("details",it,[t("summary",null,[e[312]||(e[312]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.torch_index_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.torch_index_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.torch_index_select")],-1)),e[313]||(e[313]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[314]||(e[314]=n(`

torch_index_select

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html.

The batch_dims attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.

Example

mlir
%result = "stablehlo.torch_index_select"(%operand, %index) {
+  dim = 2 : i64,
+  batch_dims = 1 : i64
+} : (tensor<8x128x3072x64xf32>, tensor<8x16x1024xi32>) -> tensor<8x128x16x1024x64xf32>

source

`,7))]),t("details",pt,[t("summary",null,[e[315]||(e[315]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.transpose-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.transpose-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.transpose")],-1)),e[316]||(e[316]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[317]||(e[317]=n('

transpose

Permutes the dimensions of operand tensor using permutation and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose

Example

mlir
%0 = stablehlo.transpose %arg0, dims = [2, 1, 0] : (tensor<1x2x3xi32>) -> tensor<3x2x1xi32>

source

',6))]),t("details",rt,[t("summary",null,[e[318]||(e[318]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.triangular_solve-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.triangular_solve-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.triangular_solve")],-1)),e[319]||(e[319]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[320]||(e[320]=n(`

triangular_solve

Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve

Example

mlir
%result = "stablehlo.triangular_solve"(%a, %b) {
+  left_side = true,
+  lower = true,
+  unit_diagonal = false,
+  transpose_a = #stablehlo<transpose NO_TRANSPOSE>
+} : (tensor<3x3xf32>, tensor<3x3xf32>) -> tensor<3x3xf32>

source

`,6))]),t("details",ct,[t("summary",null,[e[321]||(e[321]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.tuple-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.tuple-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.tuple")],-1)),e[322]||(e[322]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[323]||(e[323]=n('

tuple

Produces a result tuple from values val.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tuple

Example

mlir
%result = stablehlo.tuple %val0, %val1 : tuple<tensor<2xf64>, tuple<tensor<i64>>>

source

',6))]),t("details",dt,[t("summary",null,[e[324]||(e[324]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.unary_einsum-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.unary_einsum-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.unary_einsum")],-1)),e[325]||(e[325]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[326]||(e[326]=n(`

unary_einsum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum

Example

mlir
%result = "stablehlo.unary_einsum"(%operand) {
+  einsum_config = "ab->a"
+} : (tensor<4x16xf32>) -> tensor<4xf32>

source

`,6))]),t("details",bt,[t("summary",null,[e[327]||(e[327]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.uniform_dequantize-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.uniform_dequantize-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.uniform_dequantize")],-1)),e[328]||(e[328]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[329]||(e[329]=n('

uniform_dequantize

Performs element-wise conversion of quantized tensor operand to a floating-point tensor result according to the quantization parameters defined by the operand type.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_dequantize

Example

mlir
%result = stablehlo.uniform_dequantize %operand : (tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>) -> tensor<2xf32>

source

',6))]),t("details",ut,[t("summary",null,[e[330]||(e[330]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.uniform_quantize-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.uniform_quantize-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.uniform_quantize")],-1)),e[331]||(e[331]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[332]||(e[332]=n('

uniform_quantize

Performs element-wise conversion of floating-point tensor or quantized tensor operand to a quantized tensor result according to the quantization parameters defined by the result type.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_quantize

Example

mlir
%result = stablehlo.uniform_quantize %operand : (tensor<2xf32>) -> tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>

source

',6))]),t("details",ht,[t("summary",null,[e[333]||(e[333]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.while_-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.while_-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.while_")],-1)),e[334]||(e[334]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[335]||(e[335]=n(`

while_

Produces the output from executing body function 0 or more times while the cond function outputs true.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while

Example

mlir
%results0, %results1 = stablehlo.while(%arg0 = %init_i, %arg1 = %init_sum) : tensor<i64>, tensor<i64>
+cond {
+  %cond = stablehlo.compare LT, %arg0, %ten : (tensor<i64>, tensor<i64>) -> tensor<i1>
+  stablehlo.return %cond : tensor<i1>
+} do {
+  %new_sum = stablehlo.add %arg1, %one : tensor<i64>
+  %new_i = stablehlo.add %arg0, %one : tensor<i64>
+  stablehlo.return %new_i, %new_sum : tensor<i64>, tensor<i64>
+}

source

`,6))]),t("details",mt,[t("summary",null,[e[336]||(e[336]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.xor")],-1)),e[337]||(e[337]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[338]||(e[338]=n('

xor

Performs element-wise XOR of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#xor

Example

mlir
%result = stablehlo.xor %lhs, %rhs : tensor<2xi32>

source

',6))])])}const jt=o(c,[["render",gt]]);export{yt as __pageData,jt as default}; diff --git a/previews/PR363/assets/api_stablehlo.md.291Wh6jS.lean.js b/previews/PR363/assets/api_stablehlo.md.291Wh6jS.lean.js new file mode 100644 index 00000000..bb26e718 --- /dev/null +++ b/previews/PR363/assets/api_stablehlo.md.291Wh6jS.lean.js @@ -0,0 +1,197 @@ +import{_ as o,c as i,j as t,a,G as l,a2 as n,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const yt=JSON.parse('{"title":"StableHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/stablehlo.md","filePath":"api/stablehlo.md","lastUpdated":null}'),c={name:"api/stablehlo.md"},d={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"},te={class:"jldocstring custom-block"},ae={class:"jldocstring custom-block"},se={class:"jldocstring custom-block"},le={class:"jldocstring custom-block"},ne={class:"jldocstring custom-block"},oe={class:"jldocstring custom-block"},ie={class:"jldocstring custom-block"},pe={class:"jldocstring custom-block"},re={class:"jldocstring custom-block"},ce={class:"jldocstring custom-block"},de={class:"jldocstring custom-block"},be={class:"jldocstring custom-block"},ue={class:"jldocstring custom-block"},he={class:"jldocstring custom-block"},me={class:"jldocstring custom-block"},ge={class:"jldocstring custom-block"},Re={class:"jldocstring custom-block"},fe={class:"jldocstring custom-block"},xe={class:"jldocstring custom-block"},Le={class:"jldocstring custom-block"},Ie={class:"jldocstring custom-block"},Me={class:"jldocstring custom-block"},ye={class:"jldocstring custom-block"},je={class:"jldocstring custom-block"},ke={class:"jldocstring custom-block"},ve={class:"jldocstring custom-block"},De={class:"jldocstring custom-block"},_e={class:"jldocstring custom-block"},Te={class:"jldocstring custom-block"},Ve={class:"jldocstring custom-block"},Oe={class:"jldocstring custom-block"},Ee={class:"jldocstring custom-block"},Se={class:"jldocstring custom-block"},Ce={class:"jldocstring custom-block"},we={class:"jldocstring custom-block"},ze={class:"jldocstring custom-block"},He={class:"jldocstring custom-block"},Ae={class:"jldocstring custom-block"},qe={class:"jldocstring custom-block"},Pe={class:"jldocstring custom-block"},Ne={class:"jldocstring custom-block"},Fe={class:"jldocstring custom-block"},Be={class:"jldocstring custom-block"},Ue={class:"jldocstring custom-block"},We={class:"jldocstring custom-block"},Ge={class:"jldocstring custom-block"},Xe={class:"jldocstring custom-block"},$e={class:"jldocstring custom-block"},Ye={class:"jldocstring custom-block"},Je={class:"jldocstring custom-block"},Ke={class:"jldocstring custom-block"},Qe={class:"jldocstring custom-block"},Ze={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"},st={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},nt={class:"jldocstring custom-block"},ot={class:"jldocstring custom-block"},it={class:"jldocstring custom-block"},pt={class:"jldocstring custom-block"},rt={class:"jldocstring custom-block"},ct={class:"jldocstring custom-block"},dt={class:"jldocstring custom-block"},bt={class:"jldocstring custom-block"},ut={class:"jldocstring custom-block"},ht={class:"jldocstring custom-block"},mt={class:"jldocstring custom-block"};function gt(Rt,e,ft,xt,Lt,It){const s=p("Badge");return r(),i("div",null,[e[339]||(e[339]=t("h1",{id:"StableHLO-Dialect",tabindex:"-1"},[a("StableHLO Dialect "),t("a",{class:"header-anchor",href:"#StableHLO-Dialect","aria-label":'Permalink to "StableHLO Dialect {#StableHLO-Dialect}"'},"​")],-1)),e[340]||(e[340]=t("p",null,[a("Refer to the "),t("a",{href:"https://openxla.org/stablehlo",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),t("details",d,[t("summary",null,[e[0]||(e[0]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.abs-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.abs-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.abs")],-1)),e[1]||(e[1]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=n('

abs

Performs element-wise abs operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs

Example

mlir
%result = stablehlo.abs %operand : tensor<3xi32>

source

',6))]),t("details",b,[t("summary",null,[e[3]||(e[3]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.add")],-1)),e[4]||(e[4]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=n('

add

Performs element-wise addition of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add

Example

mlir
%result = stablehlo.add %lhs, %rhs : tensor<2x2xi32>

source

',6))]),t("details",u,[t("summary",null,[e[6]||(e[6]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.after_all-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.after_all-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.after_all")],-1)),e[7]||(e[7]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[8]||(e[8]=n('

after_all

Ensures that the operations producing the inputs are executed before any operations that depend on result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all

Example

mlir
%result = stablehlo.after_all %input0, %input1 : !stablehlo.token

source

',6))]),t("details",h,[t("summary",null,[e[9]||(e[9]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.all_gather-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.all_gather-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.all_gather")],-1)),e[10]||(e[10]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[11]||(e[11]=n(`

all_gather

Within each process group in the process grid, concatenates the values of the operand tensor from each process along all_gather_dim and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather

Example

mlir
%result:2 = "stablehlo.all_gather"(%operand0, %operand1) {
+  all_gather_dim = 1 : i64,
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> (tensor<2x4xi64>, tensor<2x4xi64>)

source

`,6))]),t("details",m,[t("summary",null,[e[12]||(e[12]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.all_reduce-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.all_reduce-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.all_reduce")],-1)),e[13]||(e[13]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[14]||(e[14]=n(`

all_reduce

Within each process group in the process grid, applies a reduction function computation to the values of the operand tensor from each process and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce

Example

mlir
%result:2 = "stablehlo.all_reduce"(%operand0, %operand0) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+  %0 = "stablehlo.add"(%arg0, %arg1) : (tensor<i64>, tensor<i64>) -> tensor<i64>
+  "stablehlo.return"(%0) : (tensor<i64>) -> ()
+}) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<4xi64>, tensor<4xi64>) -> (tensor<4xi64>, tensor<4xi64>)

source

`,6))]),t("details",g,[t("summary",null,[e[15]||(e[15]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.all_to_all-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.all_to_all-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.all_to_all")],-1)),e[16]||(e[16]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[17]||(e[17]=n(`

all_to_all

Within each process group in the process grid, splits the values of the operand tensor along split_dimension into parts, scatters the split parts between the processes, concatenates the scattered parts along concat_dimension and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all

Example

mlir
%result:2 = "stablehlo.all_to_all"(%operand1, %operand2) {
+  split_dimension = 1 : i64,
+  concat_dimension = 0 : i64,
+  split_count = 2 : i64,
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<2x4xi64>, tensor<2x4xi64>) -> (tensor<4x2xi64>, tensor<4x2xi64>)

source

`,6))]),t("details",R,[t("summary",null,[e[18]||(e[18]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.and")],-1)),e[19]||(e[19]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[20]||(e[20]=n('

and

Performs element-wise AND of two tensors lhs and rhs and produces a result tensor

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and

Example

mlir
%result = stablehlo.and %lhs, %rhs : tensor<2x2xi32>

source

',6))]),t("details",f,[t("summary",null,[e[21]||(e[21]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.atan2")],-1)),e[22]||(e[22]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[23]||(e[23]=n('

atan2

Performs element-wise atan2 operation on lhs and rhs tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2

Example

mlir
%result = stablehlo.atan2 %lhs, %rhs : tensor<3xf64>

source

',6))]),t("details",x,[t("summary",null,[e[24]||(e[24]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.batch_norm_grad-NTuple{5, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.batch_norm_grad-NTuple{5, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.batch_norm_grad")],-1)),e[25]||(e[25]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[26]||(e[26]=n(`

batch_norm_grad

Computes gradients of several inputs of BatchNormTrainingOp backpropagating from grad_output, and produces grad_operand, grad_scale and grad_offset tensors.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad

Example

mlir
%grad_operand, %grad_scale, %grad_offset =
+"stablehlo.batch_norm_grad"(%operand, %scale, %mean, %variance, %grad_output) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>,
+     tensor<2x2x2xf64>) -> (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)

source

`,6))]),t("details",L,[t("summary",null,[e[27]||(e[27]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.batch_norm_inference-NTuple{5, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.batch_norm_inference-NTuple{5, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.batch_norm_inference")],-1)),e[28]||(e[28]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=n(`

batch_norm_inference

Normalizes the operand tensor across all dimensions except for the feature_index dimension and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference

Example

mlir
%result = "stablehlo.batch_norm_inference"(%operand, %scale, %offset, %mean, %variance) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>) -> tensor<2x2x2xf64>

source

`,6))]),t("details",I,[t("summary",null,[e[30]||(e[30]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.batch_norm_training-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.batch_norm_training-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.batch_norm_training")],-1)),e[31]||(e[31]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[32]||(e[32]=n(`

batch_norm_training

Computes mean and variance across batch and spatial dimensions and normalizes the operand tensor, for each feature in the feature_index dimension and produces output, batch_mean and batch_var tensors.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training

Example

mlir
%output, %batch_mean, %batch_var = "stablehlo.batch_norm_training"(%operand, %scale, %offset) {
+  epsilon = 0.0 : f32,
+  feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>) ->
+    (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)

source

`,6))]),t("details",M,[t("summary",null,[e[33]||(e[33]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.bitcast_convert-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.bitcast_convert-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.bitcast_convert")],-1)),e[34]||(e[34]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=n('

bitcast_convert

Performs a bitcast operation on operand tensor and produces a result tensor where the bits of the entire operand tensor are reinterpreted using the type of the result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert

Example

mlir
%result = stablehlo.bitcast_convert %operand : (tensor<f64>) -> tensor<4xf16>

source

',6))]),t("details",y,[t("summary",null,[e[36]||(e[36]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.broadcast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.broadcast-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.broadcast")],-1)),e[37]||(e[37]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=n('

broadcast

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as XLA's Broadcast: https://www.tensorflow.org/xla/operation_semantics#broadcast

Example

mlir
%result = stablehlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>

source

',6))]),t("details",j,[t("summary",null,[e[39]||(e[39]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.broadcast_in_dim")],-1)),e[40]||(e[40]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[41]||(e[41]=n('

broadcast_in_dim

Expands the dimensions and/or rank of an input tensor by duplicating the data in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim

Example

mlir
%result = stablehlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>

source

',6))]),t("details",k,[t("summary",null,[e[42]||(e[42]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.case-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.case-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.case")],-1)),e[43]||(e[43]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[44]||(e[44]=n(`

case

Produces the output from executing exactly one function from branches depending on the value of index.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case

Example

mlir
%result0, %result1 = "stablehlo.case"(%index) ({
+  stablehlo.return %result_branch0, %result_branch0 : tensor<2xi64>, tensor<2xi64>
+}, {
+  stablehlo.return %result_branch1, %result_branch1 : tensor<2xi64>, tensor<2xi64>
+}) : (tensor<i32>) -> (tensor<2xi64>, tensor<2xi64>)

source

`,6))]),t("details",v,[t("summary",null,[e[45]||(e[45]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cbrt-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cbrt-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cbrt")],-1)),e[46]||(e[46]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[47]||(e[47]=n('

cbrt

Performs element-wise cubic root operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt

Example

mlir
%result = stablehlo.cbrt %operand : tensor<4xf64>

source

',6))]),t("details",D,[t("summary",null,[e[48]||(e[48]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.ceil-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.ceil-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.ceil")],-1)),e[49]||(e[49]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[50]||(e[50]=n('

ceil

Performs element-wise ceil of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil

Example

mlir
%result = stablehlo.ceil %operand : tensor<5xf32>

source

',6))]),t("details",_,[t("summary",null,[e[51]||(e[51]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cholesky-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cholesky-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cholesky")],-1)),e[52]||(e[52]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[53]||(e[53]=n('

cholesky

Computes the Cholesky decomposition of a batch of matrices.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky

Example

mlir
%result = stablehlo.cholesky %a, lower = true : tensor<3x3xf64>

source

',6))]),t("details",T,[t("summary",null,[e[54]||(e[54]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.clamp-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.clamp-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.clamp")],-1)),e[55]||(e[55]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[56]||(e[56]=n('

clamp

Clamps every element of the operand tensor between a minimum and maximum value and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp

Example

mlir
%result = stablehlo.clamp %min, %operand, %max : tensor<3xi32>

source

',6))]),t("details",V,[t("summary",null,[e[57]||(e[57]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.collective_broadcast-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.collective_broadcast-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.collective_broadcast")],-1)),e[58]||(e[58]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[59]||(e[59]=n(`

collective_broadcast

Within each process group in the process grid, send the value of the operand tensor from the source process to the target processes and produce a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast

Example

mlir
%result = "stablehlo.collective_broadcast"(%operand) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<1x2xi64>) -> tensor<1x2xi64>

source

`,6))]),t("details",O,[t("summary",null,[e[60]||(e[60]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.collective_permute-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.collective_permute-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.collective_permute")],-1)),e[61]||(e[61]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[62]||(e[62]=n(`

collective_permute

Within each process group in the process grid, sends the value of the operand tensor from the source process to the target process and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute

Example

mlir
%result = "stablehlo.collective_permute"(%operand) {
+  source_target_pairs = dense<[[0, 1], [1, 2]]> : tensor<2x2xi64>,
+  channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>) -> tensor<2x2xi64>

source

`,6))]),t("details",E,[t("summary",null,[e[63]||(e[63]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.compare")],-1)),e[64]||(e[64]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[65]||(e[65]=n('

compare

Performs element-wise comparison of lhs and rhs tensors according to comparison_direction and compare_type, and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare

Example

mlir
%result = stablehlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>

source

',6))]),t("details",S,[t("summary",null,[e[66]||(e[66]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.complex")],-1)),e[67]||(e[67]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[68]||(e[68]=n('

complex

Performs element-wise conversion to a complex value from a pair of real and imaginary values, lhs and rhs, and produces a result tensor. See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex

Example

mlir
%result = stablehlo.complex %lhs, %rhs : tensor<2xcomplex<f64>>

source

',5))]),t("details",C,[t("summary",null,[e[69]||(e[69]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.composite-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.composite-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.composite")],-1)),e[70]||(e[70]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[71]||(e[71]=n(`

composite

Encapsulates an operation made up (composed) of other StableHLO operations, taking inputs and composite_attributes and producing results. The semantics of the op are implemented by the decomposition attribute. The composite op can be replaced with its decomposition without changing program semantics. In cases where inlining the decomposition does not provide the same op semantics, prefer using custom_call.

The version field (defaults to 0) is used to denote when a composite's semantics change.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composite

Example

mlir
%results = stablehlo.composite "my.op" %input0, %input1 {
+  composite_attributes = {
+    my_attribute = "my_value"
+  },
+  decomposition = @my_op,
+  version = 1 : i32
+} : (tensor<f32>, tensor<f32>) -> tensor<f32>

source

`,7))]),t("details",w,[t("summary",null,[e[72]||(e[72]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.concatenate-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.concatenate-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.concatenate")],-1)),e[73]||(e[73]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[74]||(e[74]=n('

concatenate

Concatenates a variadic number of tensors in inputs along dimension dimension in the same order as the given arguments and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate

Example

mlir
%result = stablehlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>

source

',6))]),t("details",z,[t("summary",null,[e[75]||(e[75]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.constant-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.constant")],-1)),e[76]||(e[76]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[77]||(e[77]=n('

constant

Produces an output tensor from a constant value.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant

Example

mlir
%output = stablehlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>

source

',6))]),t("details",H,[t("summary",null,[e[78]||(e[78]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.convert-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.convert-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.convert")],-1)),e[79]||(e[79]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[80]||(e[80]=n('

convert

Performs an element-wise conversion from one element type to another on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert

Example

mlir
%result = stablehlo.convert %operand : (tensor<3xi64>) -> tensor<3xcomplex<f64>>

source

',6))]),t("details",A,[t("summary",null,[e[81]||(e[81]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.convolution-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.convolution-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.convolution")],-1)),e[82]||(e[82]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[83]||(e[83]=n(`

convolution

Computes dot products between windows of lhs and slices of rhs and produces result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution

Example

mlir
%result = stablehlo.convolution(%lhs, %rhs)
+  dim_numbers = [b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f],
+  window = {
+    stride = [4, 4],
+    pad = [[0, 0], [0, 0]],
+    lhs_dilate = [2, 2],
+    rhs_dilate = [1, 1],
+    reverse = [0, 0]
+  } {
+    feature_group_count = 1 : i64,
+    batch_group_count = 1 : i64,
+    precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+  } :
+(tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>) -> tensor<1x2x2x1xi64>

source

`,6))]),t("details",q,[t("summary",null,[e[84]||(e[84]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cosine-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cosine-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cosine")],-1)),e[85]||(e[85]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[86]||(e[86]=n('

cosine

Performs element-wise cosine operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine

Example

mlir
%result = stablehlo.cosine %operand : tensor<2xf32>

source

',6))]),t("details",P,[t("summary",null,[e[87]||(e[87]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.count_leading_zeros-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.count_leading_zeros-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.count_leading_zeros")],-1)),e[88]||(e[88]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[89]||(e[89]=n('

count_leading_zeros

Performs element-wise count of the number of leading zero bits in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeros

Example

mlir
%result = stablehlo.count_leading_zeros %operand : tensor<2x2xi64>

source

',6))]),t("details",N,[t("summary",null,[e[90]||(e[90]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.create_token-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.create_token-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.create_token")],-1)),e[91]||(e[91]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[92]||(e[92]=n('

create_token

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as AfterAllOp with 0 inputs: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all

Example

mlir
%output = stablehlo.create_token : !stablehlo.token

source

',6))]),t("details",F,[t("summary",null,[e[93]||(e[93]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.cross_replica_sum-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.cross_replica_sum-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.cross_replica_sum")],-1)),e[94]||(e[94]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[95]||(e[95]=n(`

cross_replica_sum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as AllReduceOp with channel_id = 0, use_global_device_ids = false and computation implementing addition: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce

Example

mlir
%result = "stablehlo.cross-replica-sum"(%operand) {
+  replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<4xf32>) -> tensor<4xf32>

source

`,6))]),t("details",B,[t("summary",null,[e[96]||(e[96]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.custom_call-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.custom_call-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.custom_call")],-1)),e[97]||(e[97]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[98]||(e[98]=n(`

custom_call

Encapsulates an implementation-defined operation call_target_name that takes inputs and called_computations and produces results.

Depending on the API version there are two ways to pass extra bits of static information to the external function:

  1. Use API_VERSION_TYPED_FFI which allows passing a dictionary attribute.

  2. Use a previous API version with a StringAttr to encode backend config.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call

Example

mlir
%results = stablehlo.custom_call @foo(%input0) {
+  backend_config = {bar = 42 : i32},
+  api_version = 4 : i32,
+  called_computations = [@foo]
+} : (tensor<f64>) -> tensor<f64>

source

`,8))]),t("details",U,[t("summary",null,[e[99]||(e[99]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.divide")],-1)),e[100]||(e[100]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[101]||(e[101]=n('

divide

Performs element-wise division of dividend lhs and divisor rhs tensors and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide

Example

mlir
%result = stablehlo.divide %lhs, %rhs : tensor<4xf32>

source

',6))]),t("details",W,[t("summary",null,[e[102]||(e[102]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dot-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dot-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dot")],-1)),e[103]||(e[103]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[104]||(e[104]=n('

dot

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot

Example

mlir
%0 = stablehlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>

source

',6))]),t("details",G,[t("summary",null,[e[105]||(e[105]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dot_general-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dot_general-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dot_general")],-1)),e[106]||(e[106]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[107]||(e[107]=n(`

dot_general

Computes dot products between slices of lhs and slices of rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general

Example

mlir
%result = stablehlo.dot_general %lhs, %rhs,
+  batching_dims = [0] x [0],
+  contracting_dims = [2] x [1],
+  precision = [DEFAULT, DEFAULT],
+  algorithm = <lhs_precision_type = tf32, rhs_precision_type = tf32, accumulation_type = f32, lhs_component_count = 1, rhs_component_count = 1, num_primitive_operations = 1, allow_imprecise_accumulation = false>
+  : (tensor<2x2x2xi64>, tensor<2x2x2xi64>) -> tensor<2x2x2xi64>

source

`,6))]),t("details",X,[t("summary",null,[e[108]||(e[108]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_broadcast_in_dim")],-1)),e[109]||(e[109]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[110]||(e[110]=n(`

dynamic_broadcast_in_dim

This operation is functionally identical to broadcast_in_dim op, but the result shape is specified dynamically via output_dimensions.

It also accepts optional attributes to express static knowledge about the expanding behavior of dimensions. If not specified, all dimensions are assumed to be possibly expanding. The sets of dimensions that are known to be expanding and the set of dimensions that are known to be non-expanding must be disjoint and they must be a subset of the operand's dimensions.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_broadcast_in_dim

Example

mlir
%operand = stablehlo.constant dense<[[1, 2, 3]]> : tensor<1x3xi64>
+%output_dimensions = stablehlo.constant dense<[2, 3, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_broadcast_in_dim"(%operand, %output_dimensions) {
+  broadcast_dimensions = array<i64: 2, 1>,
+  known_expanding_dimensions = array<i64: 0>,
+  known_nonexpanding_dimensions = array<i64: 1>
+} : (tensor<1x3xi64>, tensor<3xi64>) -> tensor<2x3x2xi64>

source

`,7))]),t("details",$,[t("summary",null,[e[111]||(e[111]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_conv-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_conv-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_conv")],-1)),e[112]||(e[112]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[113]||(e[113]=n(`

dynamic_conv

This operation is functionally identical to convolution op, but the padding is specified dynamically via padding.

Example

mlir
%padding = stablehlo.constant dense<2> : tensor<2x2xi64>
+%result = "stablehlo.dynamic_conv"(%lhs, %rhs, %padding) {
+  window_strides = array<i64: 4, 4>,
+  lhs_dilation = array<i64: 2, 2>,
+  rhs_dilation = array<i64: 1, 1>,
+  window_reversal = array<i1: false, false>,
+  dimension_numbers = #stablehlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
+  batch_group_count = 1 : i64,
+  feature_group_count = 1 : i64,
+  precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+} : (tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>, tensor<2x2xi64>) -> tensor<1x2x2x1xi64>

source

`,5))]),t("details",Y,[t("summary",null,[e[114]||(e[114]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_gather")],-1)),e[115]||(e[115]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[116]||(e[116]=n(`

dynamic_gather

This operation is functionally identical to gather op, with the slice_sizes specified dynamically as an operand.

Example

mlir
%slice_sizes = stablehlo.constant dense<[1, 2, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_gather"(%operand, %start_indices, %slice_sizes) {
+  dimension_numbers = #stablehlo.gather<
+    offset_dims = [2, 3],
+    collapsed_slice_dims = [0],
+    start_index_map = [0, 2],
+    index_vector_dim = 2>,
+  indices_are_sorted = false
+} : (tensor<3x4x2xi64>, tensor<2x3x2xi64>, tensor<3xi64>) -> tensor<2x3x2x2xi64>

source

`,5))]),t("details",J,[t("summary",null,[e[117]||(e[117]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_iota-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_iota-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_iota")],-1)),e[118]||(e[118]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[119]||(e[119]=n(`

dynamic_iota

This operation is functionally identical to iota op, but the result shape is specified dynamically via output_shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_iota

Example

mlir
%output_shape = stablehlo.constant dense<[4, 5]> : tensor<2xi64>
+%0 = stablehlo.dynamic_iota %output_shape, dim = 0 : (tensor<2xi64>) -> tensor<4x5xi64>

source

`,6))]),t("details",K,[t("summary",null,[e[120]||(e[120]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_pad-NTuple{5, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_pad-NTuple{5, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_pad")],-1)),e[121]||(e[121]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[122]||(e[122]=n(`

dynamic_pad

This operation is functionally identical to pad https://github.com/openxla/stablehlo/pull/2306#discussion_r1595669709 op, but with edge_padding_low,edge_padding_highandinterior_padding specified dynamically as values.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_pad

Example

mlir
%edge_padding_low = stablehlo.constant dense<[0, 1]> : tensor<2xi32>
+%edge_padding_high = stablehlo.constant dense<[2, 1]> : tensor<2xi32>
+%interior_padding = stablehlo.constant dense<[1, 2]> : tensor<2xi32>
+%result = stablehlo.dynamic_pad %operand, %padding_value,
+            %edge_padding_low, %edge_padding_high, %interior_padding
+            : (tensor<2x3xi64>, tensor<i64>, tensor<2xi64>, tensor<2xi64>, tensor<2xi64>) -> tensor<5x9xi64>

source

`,6))]),t("details",Q,[t("summary",null,[e[123]||(e[123]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_reshape-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_reshape-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_reshape")],-1)),e[124]||(e[124]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[125]||(e[125]=n(`

dynamic_reshape

This operation is functionally identical to reshape op, but the result shape is specified dynamically via output_shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_reshape

Example

mlir
%output_shape = stablehlo.constant dense<[3, 2]> : tensor<2xi64>
+%result = stablehlo.dynamic_reshape %operand, %output_shape : (tensor<2x3xi64>, tensor<2xi64>) -> tensor<3x2xi64>

source

`,6))]),t("details",Z,[t("summary",null,[e[126]||(e[126]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_slice-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_slice-Tuple{Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_slice")],-1)),e[127]||(e[127]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[128]||(e[128]=n(`

dynamic_slice

Extracts a slice from the operand using dynamically-computed starting indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice

Example

mlir
%result = stablehlo.dynamic_slice %operand, %start_indices0, %start_indices1, sizes = [2, 2]
+  : (tensor<4x4xi32>, tensor<i64>, tensor<i64>) -> tensor<2x2xi32>

source

`,6))]),t("details",ee,[t("summary",null,[e[129]||(e[129]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.dynamic_update_slice")],-1)),e[130]||(e[130]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[131]||(e[131]=n(`

dynamic_update_slice

Produces a result tensor which is equal to the operand tensor except that the slice starting at start_indices is updated with the values in update.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_update_slice

Example

mlir
%result = stablehlo.dynamic_update_slice %operand, %update, %start_indices0, %start_indices1
+  : (tensor<4x4xi32>, tensor<2x2xi32>, tensor<i64>, tensor<i64>) -> tensor<4x4xi32>

source

`,6))]),t("details",te,[t("summary",null,[e[132]||(e[132]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.einsum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.einsum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.einsum")],-1)),e[133]||(e[133]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[134]||(e[134]=n(`

einsum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum

Example

mlir
%result = "stablehlo.einsum"(%lhs, %rhs) {
+  einsum_config = "ab,bc->ac"
+} : (tensor<4x16xf32>, tensor<16x4xf32>) -> tensor<4x4xf32>

source

`,6))]),t("details",ae,[t("summary",null,[e[135]||(e[135]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.exponential-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.exponential-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.exponential")],-1)),e[136]||(e[136]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[137]||(e[137]=n('

exponential

Performs element-wise exponential operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential

Example

mlir
%result = stablehlo.exponential %operand : tensor<2x2xf64>

source

',6))]),t("details",se,[t("summary",null,[e[138]||(e[138]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.exponential_minus_one-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.exponential_minus_one-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.exponential_minus_one")],-1)),e[139]||(e[139]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[140]||(e[140]=n('

exponential_minus_one

Performs element-wise exponential minus one operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential_minus_one

Example

mlir
%result = stablehlo.exponential_minus_one %operand : tensor<2xf64>

source

',6))]),t("details",le,[t("summary",null,[e[141]||(e[141]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.fft-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.fft-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.fft")],-1)),e[142]||(e[142]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[143]||(e[143]=n('

fft

Performs the forward and inverse Fourier transforms for real and complex inputs/outputs.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#fft

Example

mlir
%result = stablehlo.fft %operand, type = FFT, length = [4] : (tensor<4xcomplex<f32>>) -> tensor<4xcomplex<f32>>

source

',6))]),t("details",ne,[t("summary",null,[e[144]||(e[144]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.floor-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.floor-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.floor")],-1)),e[145]||(e[145]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[146]||(e[146]=n('

floor

Performs element-wise floor of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#floor

Example

mlir
%result = stablehlo.floor %operand : tensor<2xf32>

source

',6))]),t("details",oe,[t("summary",null,[e[147]||(e[147]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.gather-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.gather")],-1)),e[148]||(e[148]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[149]||(e[149]=n(`

gather

Gathers slices from operand tensor from offsets specified in start_indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather

Example

mlir
%result = "stablehlo.gather"(%operand, %start_indices) {
+  dimension_numbers = #stablehlo.gather<
+    offset_dims = [3, 4],
+    collapsed_slice_dims = [1],
+    operand_batching_dims = [0],
+    start_indices_batching_dims = [1],
+    start_index_map = [2, 1],
+    index_vector_dim = 3>,
+  slice_sizes = array<i64: 1, 1, 2, 2>,
+  indices_are_sorted = false
+} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>) -> tensor<2x2x3x2x2xi64>

source

`,6))]),t("details",ie,[t("summary",null,[e[150]||(e[150]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.get_dimension_size-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.get_dimension_size-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.get_dimension_size")],-1)),e[151]||(e[151]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[152]||(e[152]=n('

get_dimension_size

Produces the size of the given dimension of the operand.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size

Example

mlir
%result = stablehlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xi64>) -> tensor<i32>

source

',6))]),t("details",pe,[t("summary",null,[e[153]||(e[153]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.get_tuple_element-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.get_tuple_element-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.get_tuple_element")],-1)),e[154]||(e[154]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[155]||(e[155]=n('

get_tuple_element

Extracts element at index position of the operand tuple and produces a result.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_tuple_element

Example

mlir
%result = stablehlo.get_tuple_element %operand[0] : (tuple<tensor<2xf64>, tuple<tensor<i64>>>) -> tensor<2xf64>

source

',6))]),t("details",re,[t("summary",null,[e[156]||(e[156]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.if_-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.if_-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.if_")],-1)),e[157]||(e[157]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[158]||(e[158]=n('

if_

Produces the output from executing exactly one branch from true_branch or false_branch depending on the value of pred.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if

Example

%result = "stablehlo.if"(%pred) ({ "stablehlo.return"(%result_true_branch) : (tensor<i32>) -> () }, { "stablehlo.return"(%result_false_branch) : (tensor<i32>) -> () }) : (tensor<i1>) -> tensor<i32>

source

',6))]),t("details",ce,[t("summary",null,[e[159]||(e[159]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.imag")],-1)),e[160]||(e[160]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[161]||(e[161]=n('

imag

Extracts the imaginary part, element-wise, from the operand and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#imag

Example

mlir
%result = stablehlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>

source

',6))]),t("details",de,[t("summary",null,[e[162]||(e[162]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.infeed-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.infeed-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.infeed")],-1)),e[163]||(e[163]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[164]||(e[164]=n(`

infeed

Reads data from the infeed and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#infeed

Example

mlir
%results0:2 = "stablehlo.infeed"(%token) :
+    (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)

source

`,6))]),t("details",be,[t("summary",null,[e[165]||(e[165]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.iota-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.iota-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.iota")],-1)),e[166]||(e[166]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[167]||(e[167]=n('

iota

Fills an output tensor with values in increasing order starting from zero along the iota_dimension dimension.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota

Example

mlir
%output = stablehlo.iota dim = 0 : tensor<4x5xi32>

source

',6))]),t("details",ue,[t("summary",null,[e[168]||(e[168]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.is_finite-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.is_finite-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.is_finite")],-1)),e[169]||(e[169]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[170]||(e[170]=n('

is_finite

Performs element-wise check whether the value in x is finite (i.e. is neither +Inf, -Inf, nor NaN) and produces a y tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#is_finite

Example

mlir
%y = stablehlo.is_finite %x : (tensor<7xf64>) -> tensor<7xi1>

source

',6))]),t("details",he,[t("summary",null,[e[171]||(e[171]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.log-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.log-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.log")],-1)),e[172]||(e[172]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[173]||(e[173]=n('

log

Performs element-wise logarithm operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log

Example

mlir
%result = stablehlo.log %operand : tensor<2x2xf64>

source

',6))]),t("details",me,[t("summary",null,[e[174]||(e[174]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.log_plus_one-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.log_plus_one-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.log_plus_one")],-1)),e[175]||(e[175]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[176]||(e[176]=n('

log_plus_one

Performs element-wise logarithm plus one operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log_plus_one

Example

mlir
%result = stablehlo.log_plus_one %operand : tensor<5xf64>

source

',6))]),t("details",ge,[t("summary",null,[e[177]||(e[177]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.logistic-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.logistic-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.logistic")],-1)),e[178]||(e[178]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[179]||(e[179]=n('

logistic

Performs element-wise logistic operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#logistic

Example

mlir
%result = stablehlo.logistic %operand : tensor<2x2xf64>

source

',6))]),t("details",Re,[t("summary",null,[e[180]||(e[180]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.map-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.map-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.map")],-1)),e[181]||(e[181]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[182]||(e[182]=n(`

map

Applies a map function computation to inputs along the dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#map

Example

mlir
%result = "stablehlo.map"(%input0, %input1) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.multiply %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  dimensions = array<i64: 0, 1>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> tensor<2x2xi64>

source

`,6))]),t("details",fe,[t("summary",null,[e[183]||(e[183]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.maximum")],-1)),e[184]||(e[184]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[185]||(e[185]=n('

maximum

Performs element-wise max operation on tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#maximum

Example

mlir
%result = stablehlo.maximum %lhs, %rhs : tensor<4xf32>

source

',6))]),t("details",xe,[t("summary",null,[e[186]||(e[186]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.minimum")],-1)),e[187]||(e[187]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[188]||(e[188]=n('

minimum

Performs element-wise min operation on tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#minimum

Example

mlir
%result = stablehlo.minimum %lhs, %rhs : tensor<4xf32>

source

',6))]),t("details",Le,[t("summary",null,[e[189]||(e[189]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.multiply")],-1)),e[190]||(e[190]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[191]||(e[191]=n('

multiply

Performs element-wise product of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#multiply

Example

mlir
%result = stablehlo.multiply %lhs, %rhs : tensor<2xi32>

source

',6))]),t("details",Ie,[t("summary",null,[e[192]||(e[192]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.negate-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.negate-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.negate")],-1)),e[193]||(e[193]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[194]||(e[194]=n('

negate

Performs element-wise negation of operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#negate

Example

mlir
%result = stablehlo.negate %operand : tensor<2x3xi32>

source

',6))]),t("details",Me,[t("summary",null,[e[195]||(e[195]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.not-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.not-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.not")],-1)),e[196]||(e[196]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[197]||(e[197]=n('

not

Performs element-wise NOT of tensor operand of type integer and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#not

Example

mlir
%result = stablehlo.not %operand : tensor<5x3x1xi1>

source

',6))]),t("details",ye,[t("summary",null,[e[198]||(e[198]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.optimization_barrier-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.optimization_barrier-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.optimization_barrier")],-1)),e[199]||(e[199]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[200]||(e[200]=n('

optimization_barrier

Ensures that the operations that produce the operand are executed before any operations that depend on the result and prevents compiler transformations from moving operations across the barrier. Other than that, the operation is an identity, i.e. result = operand.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#optimization_barrier

Example

mlir
%result0, %result1 = stablehlo.optimization_barrier %operand0, %operand1 : tensor<f32>, tensor<f32>

source

',6))]),t("details",je,[t("summary",null,[e[201]||(e[201]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.or")],-1)),e[202]||(e[202]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[203]||(e[203]=n('

or

Performs element-wise OR of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#or

Example

mlir
%result = stablehlo.or %lhs, %rhs : tensor<2xi1>

source

',6))]),t("details",ke,[t("summary",null,[e[204]||(e[204]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.outfeed-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.outfeed-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.outfeed")],-1)),e[205]||(e[205]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[206]||(e[206]=n(`

outfeed

Writes inputs to the outfeed and produces a result token.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed

Example

mlir
%result = "stablehlo.outfeed"(%input0, %token) :
+    (tensor<2x2x2xi64>, !stablehlo.token) -> !stablehlo.token

source

`,6))]),t("details",ve,[t("summary",null,[e[207]||(e[207]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.pad-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.pad-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.pad")],-1)),e[208]||(e[208]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[209]||(e[209]=n(`

pad

Expands operand by padding around the tensor as well as between the elements of the tensor with the given padding_value.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#pad

Example

mlir
%0 = stablehlo.pad %arg0, %arg1, low = [0, 1], high = [2, 1], interior = [1, 2]
+  : (tensor<2x3xi32>, tensor<i32>) -> tensor<5x9xi32>

source

`,6))]),t("details",De,[t("summary",null,[e[210]||(e[210]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.partition_id-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.partition_id-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.partition_id")],-1)),e[211]||(e[211]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[212]||(e[212]=n('

partition_id

Produces partition_id of the current process.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#partition_id

Example

mlir
%result = stablehlo.partition_id : tensor<ui32>

source

',6))]),t("details",_e,[t("summary",null,[e[213]||(e[213]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.popcnt-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.popcnt-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.popcnt")],-1)),e[214]||(e[214]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[215]||(e[215]=n('

popcnt

Performs element-wise count of the number of bits set in the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#popcnt

Example

mlir
%result = stablehlo.popcnt %operand : tensor<4xi64>

source

',6))]),t("details",Te,[t("summary",null,[e[216]||(e[216]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.power")],-1)),e[217]||(e[217]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[218]||(e[218]=n('

power

Performs element-wise exponentiation of lhs tensor by rhs tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#power

Example

mlir
%result = stablehlo.power %lhs, %rhs : tensor<6xf64>

source

',6))]),t("details",Ve,[t("summary",null,[e[219]||(e[219]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.real-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.real-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.real")],-1)),e[220]||(e[220]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[221]||(e[221]=n('

real

Extracts the real part, element-wise, from the operand and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#real

Example

mlir
%result = stablehlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>

source

',6))]),t("details",Oe,[t("summary",null,[e[222]||(e[222]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice-NTuple{4, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice-NTuple{4, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.real_dynamic_slice")],-1)),e[223]||(e[223]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[224]||(e[224]=n(`

real_dynamic_slice

This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.

Informally, this operation does the same thing as SliceOp except that start_indices, limit_indices and strides are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice

Example

mlir
%result = stablehlo.real_dynamic_slice %operand,
+            %start_indices, %limit_indices, %strides
+       : (tensor<256x?xf32>, tensor<2xindex>, tensor<2xindex>, tensor<2xindex>) -> tensor<256x?xf32>

source

`,6))]),t("details",Ee,[t("summary",null,[e[225]||(e[225]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.recv-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.recv-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.recv")],-1)),e[226]||(e[226]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[227]||(e[227]=n(`

recv

Receives data from a channel with channel_id and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv

Example

mlir
%results:2 = "stablehlo.recv"(%token) {
+  channel_handle = #stablehlo.channel_handle<handle = 1, type = 3>,
+  is_host_transfer = true
+} : (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)

source

`,6))]),t("details",Se,[t("summary",null,[e[228]||(e[228]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce")],-1)),e[229]||(e[229]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[230]||(e[230]=n(`

reduce

Applies a reduction function body to inputs and init_values along the dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce

Example

mlir
%result = "stablehlo.reduce"(%input, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  dimensions = array<i64: 1>
+} : (tensor<1x6xi64>, tensor<i64>) -> tensor<1xi64>

source

`,6))]),t("details",Ce,[t("summary",null,[e[231]||(e[231]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_precision-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_precision-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_precision")],-1)),e[232]||(e[232]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[233]||(e[233]=n('

reduce_precision

Performs element-wise conversion of operand to another floating-point type that uses exponent_bits and mantissa_bits and back to the original floating-point type and produces an output tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_precision

Example

mlir
%output = stablehlo.reduce_precision %operand, format = e5m10 : tensor<6xf64>

source

',6))]),t("details",we,[t("summary",null,[e[234]||(e[234]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_scatter-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_scatter-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_scatter")],-1)),e[235]||(e[235]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[236]||(e[236]=n('

reduce_scatter

Within each process group in the process grid, performs reduction, using computations, over the values of the operand tensor from each process, splits the reduction result along scatter_dimension into parts, and scatters the split parts between the processes to produce the result.

See:\nhttps://github.com/openxla/stablehlo/blob/main/docs/spec#reduce_scatter\n\nExample:\n```mlir\n%result = "stablehlo.reduce_scatter"(%operand) ({

^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension = 1 : i64, replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>, channel_handle = #stablehlo.channel_handle<handle = 0, type = 0> } : (tensor<2x4xi64>) -> tensor<2x2xi64> ```

source

',5))]),t("details",ze,[t("summary",null,[e[237]||(e[237]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_window")],-1)),e[238]||(e[238]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[239]||(e[239]=n(`

reduce_window

Applies a reduction function body to windows of inputs and init_values and produces results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window

Example

mlir
%result = "stablehlo.reduce_window"(%input, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  window_dimensions = array<i64: 2, 1>,
+  window_strides = array<i64: 4, 1>,
+  base_dilations = array<i64: 2, 1>,
+  window_dilations = array<i64: 3, 1>,
+  padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<3x2xi64>, tensor<i64>) -> tensor<2x2xi64>

source

`,6))]),t("details",He,[t("summary",null,[e[240]||(e[240]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.remainder")],-1)),e[241]||(e[241]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[242]||(e[242]=n('

remainder

Performs element-wise remainder of dividend lhs and divisor rhs tensors and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#remainder

Example

mlir
%result = stablehlo.remainder %lhs, %rhs : tensor<4xi64>

source

',6))]),t("details",Ae,[t("summary",null,[e[243]||(e[243]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.replica_id-Tuple{}",href:"#Reactant.MLIR.Dialects.stablehlo.replica_id-Tuple{}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.replica_id")],-1)),e[244]||(e[244]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[245]||(e[245]=n('

replica_id

Produces replica_id of the current process.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#replica_id

Example

mlir
%result = stablehlo.replica_id : tensor<ui32>

source

',6))]),t("details",qe,[t("summary",null,[e[246]||(e[246]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reshape-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reshape-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reshape")],-1)),e[247]||(e[247]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[248]||(e[248]=n('

reshape

Performs reshape of operand tensor to a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape

Example

mlir
%result = stablehlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>

source

',6))]),t("details",Pe,[t("summary",null,[e[249]||(e[249]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reverse-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.reverse-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reverse")],-1)),e[250]||(e[250]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[251]||(e[251]=n('

reverse

Reverses the order of elements in the operand along the specified dimensions and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse

Example

mlir
%result = stablehlo.reverse %operand, dims = [1] : tensor<3x2xi32>

source

',6))]),t("details",Ne,[t("summary",null,[e[252]||(e[252]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.rng-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.rng-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.rng")],-1)),e[253]||(e[253]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[254]||(e[254]=n('

rng

Generates random numbers using the rng_distribution algorithm and produces a result tensor of a given shape shape.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng

Example

mlir
%result = stablehlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>

source

',6))]),t("details",Fe,[t("summary",null,[e[255]||(e[255]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.rng_bit_generator-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.rng_bit_generator-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.rng_bit_generator")],-1)),e[256]||(e[256]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[257]||(e[257]=n('

rng_bit_generator

Returns an output filled with uniform random data and an updated output state output_state given an initial state initial_state using the pseudorandom number generator algorithm rng_algorithm.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng_bit_generator

Example

mlir
%output_state, %output = stablehlo.rng_bit_generator %initial_state, algorithm = THREE_FRY : (tensor<2xui64>) -> (tensor<2xui64>, tensor<2x2xui64>)

source

',6))]),t("details",Be,[t("summary",null,[e[258]||(e[258]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.round_nearest_afz-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.round_nearest_afz-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.round_nearest_afz")],-1)),e[259]||(e[259]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[260]||(e[260]=n('

round_nearest_afz

Performs element-wise rounding towards the nearest integer, breaking ties away from zero, on the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_afz

Example

mlir
%result = stablehlo.round_nearest_afz %operand : tensor<5xf64>

source

',6))]),t("details",Ue,[t("summary",null,[e[261]||(e[261]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.round_nearest_even-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.round_nearest_even-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.round_nearest_even")],-1)),e[262]||(e[262]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[263]||(e[263]=n('

round_nearest_even

Performs element-wise rounding towards the nearest integer, breaking ties towards the even integer, on the operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_even

Example

mlir
%result = stablehlo.round_nearest_even %operand : tensor<5xf64>

source

',6))]),t("details",We,[t("summary",null,[e[264]||(e[264]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.rsqrt-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.rsqrt-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.rsqrt")],-1)),e[265]||(e[265]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[266]||(e[266]=n('

rsqrt

Performs element-wise reciprocal square root operation on operand tensor and produces a result tensor, implementing the rSqrt operation from the IEEE-754 specification.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rsqrt

Example

mlir
%result = stablehlo.rsqrt %operand : tensor<2x2xf32>

source

',6))]),t("details",Ge,[t("summary",null,[e[267]||(e[267]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.scatter-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.scatter-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.scatter")],-1)),e[268]||(e[268]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[269]||(e[269]=n('

scatter

Produces results tensors which are equal to inputs tensors except that several slices specified by scatter_indices are updated with the values updates using update_computation.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#scatter

Example: mlir %result = "stablehlo.scatter"(%input, %scatter_indices, %update) ({ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension_numbers = #stablehlo.scatter< update_window_dims = [3, 4], inserted_window_dims = [1], input_batching_dims = [0], scatter_indices_batching_dims = [1], scatter_dims_to_operand_dims = [2, 1], index_vector_dim = 3>, indices_are_sorted = false, unique_indices = false } : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>, tensor<2x2x3x2x2xi64>) -> tensor<2x3x4x2xi64>

source

',5))]),t("details",Xe,[t("summary",null,[e[270]||(e[270]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.select")],-1)),e[271]||(e[271]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[272]||(e[272]=n('

select

Produces a result tensor where each element is selected from on_true or on_false tensor based on the value of the corresponding element of pred.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select

Example

mlir
%result = stablehlo.select %pred, %on_true, %on_false : tensor<2x2xi1>, tensor<2x2xi32>

source

',6))]),t("details",$e,[t("summary",null,[e[273]||(e[273]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.select_and_scatter-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.select_and_scatter-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.select_and_scatter")],-1)),e[274]||(e[274]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[275]||(e[275]=n(`

select_and_scatter

Scatters the values from the source tensor using scatter based on the outcome of reduce_window of the input tensor using select and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter

Example

mlir
%result = "stablehlo.select_and_scatter"(%operand, %source, %init_value) ({
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.compare GE, %arg0, %arg1 : (tensor<i64>, tensor<i64>) -> tensor<i1>
+    stablehlo.return %0 : tensor<i1>
+}, {
+  ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+    %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+    stablehlo.return %0 : tensor<i64>
+}) {
+  window_dimensions = dense<[3, 1]> : tensor<2xi64>,
+  window_strides = dense<[2, 1]> : tensor<2xi64>,
+  padding = dense<[[0, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<4x2xi64>, tensor<2x2xi64>, tensor<i64>) -> tensor<4x2xi64>

source

`,6))]),t("details",Ye,[t("summary",null,[e[276]||(e[276]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.send-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.send-Tuple{Vector{Reactant.MLIR.IR.Value}, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.send")],-1)),e[277]||(e[277]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[278]||(e[278]=n(`

send

Sends inputs to a channel channel_id and produces a result token.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send

Example

mlir
%result = "stablehlo.send"(%operand, %token) {
+  channel_handle = #stablehlo.channel_handle<handle = 1, type = 2>,
+  is_host_transfer = true
+} : (tensor<2x2xi64>, !stablehlo.token) -> !stablehlo.token

source

`,6))]),t("details",Je,[t("summary",null,[e[279]||(e[279]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.set_dimension_size-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.set_dimension_size-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.set_dimension_size")],-1)),e[280]||(e[280]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[281]||(e[281]=n('

set_dimension_size

This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.

Informally, this operation does the same thing as XLA's SetDimensionSize: https://www.tensorflow.org/xla/operation_semantics#setdimensionsize

Example

mlir
%0 = stablehlo.set_dimension_size %arg0, %arg1, dim = 1 : (tensor<4x2xf32>, tensor<i32>) -> tensor<4x2xf32>

source

',6))]),t("details",Ke,[t("summary",null,[e[282]||(e[282]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.shift_left")],-1)),e[283]||(e[283]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[284]||(e[284]=n('

shift_left

Performs element-wise left-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_left

Example

mlir
%result = stablehlo.shift_left %lhs, %rhs : tensor<3xi64>

source

',6))]),t("details",Qe,[t("summary",null,[e[285]||(e[285]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.shift_right_arithmetic")],-1)),e[286]||(e[286]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[287]||(e[287]=n('

shift_right_arithmetic

Performs element-wise arithmetic right-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_arithmetic

Example

mlir
%result = stablehlo.shift_right_arithmetic %lhs, %rhs : tensor<3xi64>

source

',6))]),t("details",Ze,[t("summary",null,[e[288]||(e[288]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.shift_right_logical")],-1)),e[289]||(e[289]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[290]||(e[290]=n('

shift_right_logical

Performs element-wise logical right-shift operation on the lhs tensor by rhs number of bits and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_logical

Example

mlir
%result = stablehlo.shift_right_logical %lhs, %rhs : tensor<3xi64>

source

',6))]),t("details",et,[t("summary",null,[e[291]||(e[291]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.sign-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.sign-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.sign")],-1)),e[292]||(e[292]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[293]||(e[293]=n('

sign

Returns the sign of the operand element-wise and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sign

Example

mlir
%result = stablehlo.sign %operand : tensor<5xf64>

source

',6))]),t("details",tt,[t("summary",null,[e[294]||(e[294]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.sine-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.sine-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.sine")],-1)),e[295]||(e[295]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[296]||(e[296]=n('

sine

Performs element-wise sine operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sine

Example

mlir
%result = stablehlo.sine %operand : tensor<2xf32>

source

',6))]),t("details",at,[t("summary",null,[e[297]||(e[297]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.slice-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.slice-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.slice")],-1)),e[298]||(e[298]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[299]||(e[299]=n('

slice

Extracts a slice from the operand using statically-computed starting indices and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice

Example

mlir
%result = stablehlo.slice %operand [1:3, 4:8:2]\n   : (tensor<3x8xi64>) -> tensor<2x2xi64>\n\n// Same in generic form: the `1:3` above is mapped to the first entry in\n// `start_indices` and `limit_indices`, while `strides` is implicitly 1.\n// The `4:8:2` above is parsed into the second entry of `start_indices`,\n// `limit_indices` and `strides` respectively.\n%result = "stablehlo.slice" (%operand) {\n  start_indices = array<i64: 1, 4>,\n  limit_indices = array<i64: 3, 8>,\n  strides = array<i64: 1, 2>\n} : (tensor<3x8xi64>) -> tensor<2x2xi64>

source

',6))]),t("details",st,[t("summary",null,[e[300]||(e[300]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.sort-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.sort-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.sort")],-1)),e[301]||(e[301]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[302]||(e[302]=n(`

sort

Sorts a variadic number of tensors in inputs together, according to a custom comparator, along the given dimension and produces a variadic number of tensors as results.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort

Example

mlir

+
+[source](https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/StableHLO.jl#L4195-L4215)
+
+</details>
+
+<details class='jldocstring custom-block' >
+<summary><a id='Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}' href='#Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}'><span class="jlbinding">Reactant.MLIR.Dialects.stablehlo.sqrt</span></a> <Badge type="info" class="jlObjectType jlMethod" text="Method" /></summary>
+
+
+
+\`sqrt\`
+
+Performs element-wise square root operation on \`operand\` tensor and produces a \`result\` tensor.
+
+See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sqrt
+
+**Example**
+
+\`\`\`mlir
+%result = stablehlo.sqrt %operand : tensor<2x2xf32>

source

`,6))]),t("details",lt,[t("summary",null,[e[303]||(e[303]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.subtract")],-1)),e[304]||(e[304]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[305]||(e[305]=n('

subtract

Performs element-wise subtraction of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#subtract

Example

mlir
%result = stablehlo.subtract %lhs, %rhs : tensor<2xi32>

source

',6))]),t("details",nt,[t("summary",null,[e[306]||(e[306]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.tan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.tan-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.tan")],-1)),e[307]||(e[307]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[308]||(e[308]=n('

tan

Performs element-wise tangent operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tan

Example

mlir
%result = stablehlo.tan %operand : tensor<2x2xf64>

source

',6))]),t("details",ot,[t("summary",null,[e[309]||(e[309]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.tanh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.tanh-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.tanh")],-1)),e[310]||(e[310]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[311]||(e[311]=n('

tanh

Performs element-wise hyperbolic tangent operation on operand tensor and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tanh

Example

mlir
%result = stablehlo.tanh %operand : tensor<2xf32>

source

',6))]),t("details",it,[t("summary",null,[e[312]||(e[312]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.torch_index_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.torch_index_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.torch_index_select")],-1)),e[313]||(e[313]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[314]||(e[314]=n(`

torch_index_select

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html.

The batch_dims attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.

Example

mlir
%result = "stablehlo.torch_index_select"(%operand, %index) {
+  dim = 2 : i64,
+  batch_dims = 1 : i64
+} : (tensor<8x128x3072x64xf32>, tensor<8x16x1024xi32>) -> tensor<8x128x16x1024x64xf32>

source

`,7))]),t("details",pt,[t("summary",null,[e[315]||(e[315]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.transpose-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.transpose-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.transpose")],-1)),e[316]||(e[316]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[317]||(e[317]=n('

transpose

Permutes the dimensions of operand tensor using permutation and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose

Example

mlir
%0 = stablehlo.transpose %arg0, dims = [2, 1, 0] : (tensor<1x2x3xi32>) -> tensor<3x2x1xi32>

source

',6))]),t("details",rt,[t("summary",null,[e[318]||(e[318]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.triangular_solve-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.triangular_solve-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.triangular_solve")],-1)),e[319]||(e[319]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[320]||(e[320]=n(`

triangular_solve

Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve

Example

mlir
%result = "stablehlo.triangular_solve"(%a, %b) {
+  left_side = true,
+  lower = true,
+  unit_diagonal = false,
+  transpose_a = #stablehlo<transpose NO_TRANSPOSE>
+} : (tensor<3x3xf32>, tensor<3x3xf32>) -> tensor<3x3xf32>

source

`,6))]),t("details",ct,[t("summary",null,[e[321]||(e[321]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.tuple-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.tuple-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.tuple")],-1)),e[322]||(e[322]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[323]||(e[323]=n('

tuple

Produces a result tuple from values val.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tuple

Example

mlir
%result = stablehlo.tuple %val0, %val1 : tuple<tensor<2xf64>, tuple<tensor<i64>>>

source

',6))]),t("details",dt,[t("summary",null,[e[324]||(e[324]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.unary_einsum-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.unary_einsum-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.unary_einsum")],-1)),e[325]||(e[325]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[326]||(e[326]=n(`

unary_einsum

This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.

Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum

Example

mlir
%result = "stablehlo.unary_einsum"(%operand) {
+  einsum_config = "ab->a"
+} : (tensor<4x16xf32>) -> tensor<4xf32>

source

`,6))]),t("details",bt,[t("summary",null,[e[327]||(e[327]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.uniform_dequantize-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.uniform_dequantize-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.uniform_dequantize")],-1)),e[328]||(e[328]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[329]||(e[329]=n('

uniform_dequantize

Performs element-wise conversion of quantized tensor operand to a floating-point tensor result according to the quantization parameters defined by the operand type.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_dequantize

Example

mlir
%result = stablehlo.uniform_dequantize %operand : (tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>) -> tensor<2xf32>

source

',6))]),t("details",ut,[t("summary",null,[e[330]||(e[330]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.uniform_quantize-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.uniform_quantize-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.uniform_quantize")],-1)),e[331]||(e[331]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[332]||(e[332]=n('

uniform_quantize

Performs element-wise conversion of floating-point tensor or quantized tensor operand to a quantized tensor result according to the quantization parameters defined by the result type.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_quantize

Example

mlir
%result = stablehlo.uniform_quantize %operand : (tensor<2xf32>) -> tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>

source

',6))]),t("details",ht,[t("summary",null,[e[333]||(e[333]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.while_-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.while_-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.while_")],-1)),e[334]||(e[334]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[335]||(e[335]=n(`

while_

Produces the output from executing body function 0 or more times while the cond function outputs true.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while

Example

mlir
%results0, %results1 = stablehlo.while(%arg0 = %init_i, %arg1 = %init_sum) : tensor<i64>, tensor<i64>
+cond {
+  %cond = stablehlo.compare LT, %arg0, %ten : (tensor<i64>, tensor<i64>) -> tensor<i1>
+  stablehlo.return %cond : tensor<i1>
+} do {
+  %new_sum = stablehlo.add %arg1, %one : tensor<i64>
+  %new_i = stablehlo.add %arg0, %one : tensor<i64>
+  stablehlo.return %new_i, %new_sum : tensor<i64>, tensor<i64>
+}

source

`,6))]),t("details",mt,[t("summary",null,[e[336]||(e[336]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.xor")],-1)),e[337]||(e[337]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[338]||(e[338]=n('

xor

Performs element-wise XOR of two tensors lhs and rhs and produces a result tensor.

See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#xor

Example

mlir
%result = stablehlo.xor %lhs, %rhs : tensor<2xi32>

source

',6))])])}const jt=o(c,[["render",gt]]);export{yt as __pageData,jt as default}; diff --git a/previews/PR363/assets/api_vhlo.md.aTMfdx8r.js b/previews/PR363/assets/api_vhlo.md.aTMfdx8r.js new file mode 100644 index 00000000..341a69c1 --- /dev/null +++ b/previews/PR363/assets/api_vhlo.md.aTMfdx8r.js @@ -0,0 +1 @@ +import{_ as l,c as o,j as e,a,o as r}from"./chunks/framework.2yyKLD8d.js";const m=JSON.parse('{"title":"VHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/vhlo.md","filePath":"api/vhlo.md","lastUpdated":null}'),i={name:"api/vhlo.md"};function n(s,t,c,d,p,f){return r(),o("div",null,t[0]||(t[0]=[e("h1",{id:"VHLO-Dialect",tabindex:"-1"},[a("VHLO Dialect "),e("a",{class:"header-anchor",href:"#VHLO-Dialect","aria-label":'Permalink to "VHLO Dialect {#VHLO-Dialect}"'},"​")],-1),e("p",null,[a("Refer to the "),e("a",{href:"https://openxla.org/stablehlo/vhlo",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)]))}const _=l(i,[["render",n]]);export{m as __pageData,_ as default}; diff --git a/previews/PR363/assets/api_vhlo.md.aTMfdx8r.lean.js b/previews/PR363/assets/api_vhlo.md.aTMfdx8r.lean.js new file mode 100644 index 00000000..341a69c1 --- /dev/null +++ b/previews/PR363/assets/api_vhlo.md.aTMfdx8r.lean.js @@ -0,0 +1 @@ +import{_ as l,c as o,j as e,a,o as r}from"./chunks/framework.2yyKLD8d.js";const m=JSON.parse('{"title":"VHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/vhlo.md","filePath":"api/vhlo.md","lastUpdated":null}'),i={name:"api/vhlo.md"};function n(s,t,c,d,p,f){return r(),o("div",null,t[0]||(t[0]=[e("h1",{id:"VHLO-Dialect",tabindex:"-1"},[a("VHLO Dialect "),e("a",{class:"header-anchor",href:"#VHLO-Dialect","aria-label":'Permalink to "VHLO Dialect {#VHLO-Dialect}"'},"​")],-1),e("p",null,[a("Refer to the "),e("a",{href:"https://openxla.org/stablehlo/vhlo",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)]))}const _=l(i,[["render",n]]);export{m as __pageData,_ as default}; diff --git a/previews/PR363/assets/api_xla.md.CYk4IfH_.js b/previews/PR363/assets/api_xla.md.CYk4IfH_.js new file mode 100644 index 00000000..4e02fd1d --- /dev/null +++ b/previews/PR363/assets/api_xla.md.CYk4IfH_.js @@ -0,0 +1 @@ +import{_ as t,c as r,j as e,a as l,o as s}from"./chunks/framework.2yyKLD8d.js";const f=JSON.parse('{"title":"XLA","description":"","frontmatter":{},"headers":[],"relativePath":"api/xla.md","filePath":"api/xla.md","lastUpdated":null}'),o={name:"api/xla.md"};function n(d,a,i,c,p,x){return s(),r("div",null,a[0]||(a[0]=[e("h1",{id:"xla",tabindex:"-1"},[l("XLA "),e("a",{class:"header-anchor",href:"#xla","aria-label":'Permalink to "XLA"'},"​")],-1)]))}const _=t(o,[["render",n]]);export{f as __pageData,_ as default}; diff --git a/previews/PR363/assets/api_xla.md.CYk4IfH_.lean.js b/previews/PR363/assets/api_xla.md.CYk4IfH_.lean.js new file mode 100644 index 00000000..4e02fd1d --- /dev/null +++ b/previews/PR363/assets/api_xla.md.CYk4IfH_.lean.js @@ -0,0 +1 @@ +import{_ as t,c as r,j as e,a as l,o as s}from"./chunks/framework.2yyKLD8d.js";const f=JSON.parse('{"title":"XLA","description":"","frontmatter":{},"headers":[],"relativePath":"api/xla.md","filePath":"api/xla.md","lastUpdated":null}'),o={name:"api/xla.md"};function n(d,a,i,c,p,x){return s(),r("div",null,a[0]||(a[0]=[e("h1",{id:"xla",tabindex:"-1"},[l("XLA "),e("a",{class:"header-anchor",href:"#xla","aria-label":'Permalink to "XLA"'},"​")],-1)]))}const _=t(o,[["render",n]]);export{f as __pageData,_ as default}; diff --git a/previews/PR363/assets/app.5cnSMSJW.js b/previews/PR363/assets/app.5cnSMSJW.js new file mode 100644 index 00000000..d38cb04d --- /dev/null +++ b/previews/PR363/assets/app.5cnSMSJW.js @@ -0,0 +1 @@ +import{R as p}from"./chunks/theme.BAmTG_EB.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a5 as S}from"./chunks/framework.2yyKLD8d.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/previews/PR363/assets/chunks/@localSearchIndexroot.eZ3rdr6k.js b/previews/PR363/assets/chunks/@localSearchIndexroot.eZ3rdr6k.js new file mode 100644 index 00000000..abf176d5 --- /dev/null +++ b/previews/PR363/assets/chunks/@localSearchIndexroot.eZ3rdr6k.js @@ -0,0 +1 @@ +const e='{"documentCount":24,"nextId":24,"documentIds":{"0":"/Reactant.jl/previews/PR363/api/affine#Affine-Dialect","1":"/Reactant.jl/previews/PR363/api/api#Core-Reactant-API","2":"/Reactant.jl/previews/PR363/api/api#Compile-API","3":"/Reactant.jl/previews/PR363/api/api#ReactantCore-API","4":"/Reactant.jl/previews/PR363/api/api#Inspect-Generated-HLO","5":"/Reactant.jl/previews/PR363/api/api#Internal-Functionality","6":"/Reactant.jl/previews/PR363/api/arith#Arithmetic-Dialect","7":"/Reactant.jl/previews/PR363/api/builtin#Builtin-Dialect","8":"/Reactant.jl/previews/PR363/api/chlo#CHLO-Dialect","9":"/Reactant.jl/previews/PR363/api/enzyme#Enzyme-Dialect","10":"/Reactant.jl/previews/PR363/api/func#Func-Dialect","11":"/Reactant.jl/previews/PR363/api/ops#Reactant.Ops-API","12":"/Reactant.jl/previews/PR363/api/vhlo#VHLO-Dialect","13":"/Reactant.jl/previews/PR363/api/xla#xla","14":"/Reactant.jl/previews/PR363/#How-to-Install-Reactant.jl?","15":"/Reactant.jl/previews/PR363/#Select-an-Accelerator-Backend","16":"/Reactant.jl/previews/PR363/introduction/#getting-started","17":"/Reactant.jl/previews/PR363/introduction/#installation","18":"/Reactant.jl/previews/PR363/introduction/#Quick-Start","19":"/Reactant.jl/previews/PR363/tutorials/#tutorials","20":"/Reactant.jl/previews/PR363/api/stablehlo#StableHLO-Dialect","21":"/Reactant.jl/previews/PR363/api/mlirc#Higher-level-API","22":"/Reactant.jl/previews/PR363/api/mlirc#MLIR-C-API","23":"/Reactant.jl/previews/PR363/api/mlirc#Other-Functions"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,549],"1":[3,1,1],"2":[2,3,14],"3":[2,3,180],"4":[3,3,11],"5":[2,1,89],"6":[2,1,587],"7":[2,1,151],"8":[2,1,242],"9":[2,1,8],"10":[2,1,190],"11":[3,1,87],"12":[2,1,9],"13":[1,1,1],"14":[6,1,39],"15":[4,1,12],"16":[2,1,1],"17":[1,2,33],"18":[2,2,96],"19":[1,1,14],"20":[2,1,797],"21":[3,1,996],"22":[3,1,3004],"23":[2,1,1]},"averageFieldLength":[2.3333333333333335,1.333333333333333,296.3333333333333],"storedFields":{"0":{"title":"Affine Dialect","titles":[]},"1":{"title":"Core Reactant API","titles":[]},"2":{"title":"Compile API","titles":["Core Reactant API"]},"3":{"title":"ReactantCore API","titles":["Core Reactant API"]},"4":{"title":"Inspect Generated HLO","titles":["Core Reactant API"]},"5":{"title":"Internal Functionality","titles":[]},"6":{"title":"Arithmetic Dialect","titles":[]},"7":{"title":"Builtin Dialect","titles":[]},"8":{"title":"CHLO Dialect","titles":[]},"9":{"title":"Enzyme Dialect","titles":[]},"10":{"title":"Func Dialect","titles":[]},"11":{"title":"Reactant.Ops API","titles":[]},"12":{"title":"VHLO Dialect","titles":[]},"13":{"title":"XLA","titles":[]},"14":{"title":"How to Install Reactant.jl?","titles":[]},"15":{"title":"Select an Accelerator Backend","titles":[]},"16":{"title":"Getting Started","titles":[]},"17":{"title":"Installation","titles":["Getting Started"]},"18":{"title":"Quick Start","titles":["Getting Started"]},"19":{"title":"Tutorials","titles":[]},"20":{"title":"StableHLO Dialect","titles":[]},"21":{"title":"Higher level API","titles":[]},"22":{"title":"MLIR C API","titles":[]},"23":{"title":"Other Functions","titles":[]}},"dirtCount":0,"index":[["🆑",{"2":{"22":1}}],["÷",{"2":{"21":2}}],["qualified",{"2":{"21":1,"22":1}}],["quant",{"2":{"20":2}}],["quantize",{"2":{"20":4}}],["quantizeddimension",{"2":{"22":1}}],["quantized",{"2":{"20":3,"22":26}}],["quantization",{"2":{"20":2,"22":1}}],["quick",{"0":{"18":1}}],["quot",{"2":{"0":10,"6":42,"10":2,"11":2,"20":8,"21":4,"22":39}}],["q",{"2":{"8":4}}],["^bb0",{"2":{"20":8}}],["^",{"2":{"8":5}}],["$",{"2":{"8":24}}],["64",{"2":{"21":2,"22":5}}],["6xf64>",{"2":{"20":2}}],["6",{"2":{"6":10,"11":1}}],["😦😃",{"2":{"3":1}}],["zeta",{"2":{"8":8}}],["zeropoint",{"2":{"22":1}}],["zeropoints",{"2":{"22":2}}],["zeros",{"2":{"6":3,"20":4}}],["zero",{"2":{"0":3,"6":22,"20":3,"21":4,"22":9}}],["z",{"2":{"3":1,"6":16,"8":14}}],["≤",{"2":{"3":1}}],["4>",{"2":{"20":2}}],["414709848078964",{"2":{"18":1}}],["4x2xf32>",{"2":{"20":2}}],["4x2xi64>",{"2":{"20":5}}],["4x5xi32>",{"2":{"20":1}}],["4x5xi64>",{"2":{"20":1}}],["4xcomplex",{"2":{"20":2}}],["4x4xf32>",{"2":{"20":1}}],["4x4xi32>",{"2":{"20":3}}],["4x16xf32>",{"2":{"20":2}}],["4xf64>",{"2":{"20":1}}],["4xf16>",{"2":{"20":1}}],["4xf32>",{"2":{"0":2,"6":4,"20":6}}],["4xi64>",{"2":{"6":3,"20":6}}],["4xi1>",{"2":{"6":2}}],["4xi32>",{"2":{"6":13}}],["4x",{"2":{"6":18}}],["4",{"2":{"0":2,"6":9,"11":1,"20":10}}],["400x400xi32>",{"2":{"0":1}}],["42xf32>",{"2":{"6":2}}],["42xi1>",{"2":{"6":1}}],["42x42xf64>",{"2":{"6":1}}],["42",{"2":{"0":3,"6":2,"20":1}}],["known",{"2":{"20":4,"21":1,"22":3}}],["knowledge",{"2":{"20":1}}],["know",{"2":{"6":1}}],["kernel",{"2":{"8":4}}],["keep",{"2":{"0":1,"22":4}}],["keyword",{"2":{"0":8,"11":1}}],["keywords",{"2":{"0":2}}],["ky",{"2":{"0":3}}],["kx",{"2":{"0":3}}],["k",{"2":{"0":2,"8":5}}],["void",{"2":{"22":1}}],["visible",{"2":{"22":2}}],["visibility",{"2":{"22":1}}],["views",{"2":{"21":1,"22":2}}],["via",{"2":{"0":1,"10":1,"20":4,"21":1,"22":2}}],["v1",{"2":{"17":1}}],["vhlo",{"0":{"12":1}}],["vfalse",{"2":{"6":2}}],["vtrue",{"2":{"6":2}}],["vcond",{"2":{"6":1}}],["vx",{"2":{"6":2}}],["verified",{"2":{"21":1}}],["verifier",{"2":{"21":2}}],["verifyall",{"2":{"21":1}}],["verify",{"2":{"21":3,"22":3}}],["versions",{"2":{"22":1}}],["version",{"2":{"3":2,"14":1,"18":1,"20":6,"22":3}}],["vectortype",{"2":{"21":1}}],["vectors",{"2":{"6":11,"8":1}}],["vector",{"2":{"0":36,"6":75,"8":3,"20":3,"21":4,"22":10}}],["v0",{"2":{"0":5}}],["var",{"2":{"20":2}}],["vararg",{"2":{"11":1}}],["variadic",{"2":{"20":3}}],["variance",{"2":{"20":3}}],["variables",{"2":{"0":10,"3":2}}],["variable",{"2":{"0":4,"3":1,"10":1}}],["various",{"2":{"6":1}}],["val1",{"2":{"20":1}}],["val0",{"2":{"20":1}}],["val",{"2":{"20":1,"21":2,"22":2}}],["valid",{"2":{"0":2,"21":1,"22":12}}],["valueid",{"2":{"22":1}}],["value2",{"2":{"21":1,"22":1}}],["value1",{"2":{"21":1,"22":1}}],["value",{"2":{"0":13,"3":2,"6":62,"8":8,"10":3,"20":17,"21":46,"22":89}}],["values",{"2":{"0":29,"6":8,"7":1,"8":5,"10":3,"20":13,"21":4,"22":12}}],["5x9xi32>",{"2":{"20":1}}],["5x9xi64>",{"2":{"20":1}}],["5x3x1xi1>",{"2":{"20":1}}],["5xf64>",{"2":{"20":4}}],["5xf32>",{"2":{"20":1}}],["5f0",{"2":{"3":1}}],["5",{"2":{"0":1,"6":10,"8":1,"20":3}}],["512",{"2":{"0":2}}],["50176",{"2":{"0":2}}],["716daf609b6a2f5cd9031dd20a875c87fcf99c58",{"2":{"20":1}}],["754",{"2":{"20":1}}],["7xi1>",{"2":{"20":1}}],["7xf64>",{"2":{"20":1}}],["7",{"2":{"0":4,"6":2}}],["96",{"2":{"6":1}}],["98",{"2":{"0":2}}],["98x98xf32>",{"2":{"0":4}}],["9",{"2":{"0":2,"6":1}}],["yet",{"2":{"20":2,"22":3}}],["you",{"2":{"3":1,"14":3,"17":2,"18":2,"22":1}}],["y",{"2":{"0":3,"3":10,"6":17,"8":1,"18":3,"20":2}}],["y1",{"2":{"0":2}}],["y0",{"2":{"0":2}}],["yields",{"2":{"0":1}}],["yielded",{"2":{"0":4}}],["yield",{"2":{"0":20}}],["yielding",{"2":{"0":1}}],["just",{"2":{"22":1}}],["juliaverifyall",{"2":{"21":1}}],["juliaverify",{"2":{"21":1}}],["juliavectortype",{"2":{"21":1}}],["juliavalue",{"2":{"21":1}}],["juliarun",{"2":{"21":1}}],["juliarootref",{"2":{"21":1}}],["juliarmfromparent",{"2":{"21":1}}],["juliarmattr",{"2":{"21":1}}],["juliarhs",{"2":{"21":1}}],["juliaresult",{"2":{"21":4}}],["juliaregioniterator",{"2":{"21":1}}],["juliaregion",{"2":{"21":2}}],["juliaowner",{"2":{"21":1}}],["juliaoperandindex",{"2":{"21":1}}],["juliaoperand",{"2":{"21":2}}],["juliaoperationiterator",{"2":{"21":1}}],["juliaoperation",{"2":{"21":1}}],["juliaop",{"2":{"21":2}}],["juliaopaquetype",{"2":{"21":1}}],["juliaopaqueattribute",{"2":{"21":1}}],["juliaoppassmanager",{"2":{"21":3}}],["juliaops",{"2":{"11":1}}],["juliallvmsearchforaddressofsymbol",{"2":{"22":1}}],["juliallvmparsecommandlineoptions",{"2":{"22":1}}],["juliallvmloadlibrarypermanently",{"2":{"22":1}}],["juliallvmaddsymbol",{"2":{"22":1}}],["julialookup",{"2":{"21":2}}],["julialocation",{"2":{"21":1}}],["julialogicalresult",{"2":{"21":1}}],["julialhs",{"2":{"21":1}}],["julialeafref",{"2":{"21":1}}],["julialayout",{"2":{"21":1}}],["juliahasstaticshape",{"2":{"21":1}}],["juliahasrank",{"2":{"21":1}}],["juliahash",{"2":{"21":1}}],["juliaencoding",{"2":{"21":1}}],["juliaenable",{"2":{"21":2}}],["juliaexecutionengine",{"2":{"21":1}}],["juliaterminator",{"2":{"21":1}}],["juliatensortype",{"2":{"21":2}}],["juliatypeid",{"2":{"21":3}}],["juliatype",{"2":{"21":13}}],["juliadynsize",{"2":{"21":1}}],["juliadelete",{"2":{"21":1}}],["juliadenseelementsattribute",{"2":{"21":3}}],["juliadata",{"2":{"21":1}}],["juliadiv",{"2":{"21":1}}],["juliawrite",{"2":{"21":1}}],["juliaset",{"2":{"21":1}}],["juliasuccessor",{"2":{"21":1}}],["juliasuccess",{"2":{"21":1}}],["juliasubmap",{"2":{"21":1}}],["juliasymbolrefattribute",{"2":{"21":1}}],["juliasymbolexpr",{"2":{"21":1}}],["juliasize",{"2":{"21":1}}],["juliastring",{"2":{"21":2}}],["juliastruct",{"2":{"18":1}}],["juliaposition",{"2":{"21":1}}],["juliapermutationaffinemap",{"2":{"21":1}}],["juliapush",{"2":{"21":4}}],["juliaparent",{"2":{"21":3}}],["juliaparse",{"2":{"21":4}}],["juliapassmanager",{"2":{"21":2}}],["juliansymbols",{"2":{"21":2}}],["juliansuccessors",{"2":{"21":1}}],["julianresults",{"2":{"21":3}}],["julianregions",{"2":{"21":1}}],["julianoperands",{"2":{"21":1}}],["juliannestedrefs",{"2":{"21":1}}],["julianinputs",{"2":{"21":3}}],["julianinequalities",{"2":{"21":1}}],["julianext",{"2":{"21":2}}],["julianequalities",{"2":{"21":1}}],["julianconstraints",{"2":{"21":1}}],["julianattrs",{"2":{"21":1}}],["julianargs",{"2":{"21":1}}],["julianame",{"2":{"21":1}}],["julianamedattribute",{"2":{"21":1}}],["juliandims",{"2":{"21":3}}],["juliagcd",{"2":{"21":1}}],["juliacld",{"2":{"21":1}}],["juliacompose",{"2":{"21":1}}],["juliaconstantexpr",{"2":{"21":1}}],["juliaconstantaffinemap",{"2":{"21":1}}],["juliacontext",{"2":{"21":9}}],["juliacopy",{"2":{"21":1}}],["juliacodegen",{"2":{"5":3}}],["julia==",{"2":{"21":10}}],["julia+",{"2":{"21":1}}],["juliamove",{"2":{"21":2}}],["juliamod",{"2":{"21":1}}],["juliamodule",{"2":{"21":1}}],["juliaminorsubmap",{"2":{"21":1}}],["juliaminoridentityaffinemap",{"2":{"21":1}}],["juliamajorsubmap",{"2":{"21":1}}],["juliamemreftype",{"2":{"21":3}}],["juliamlirvectortypeisscalable",{"2":{"22":1}}],["juliamlirvectortypeisdimscalable",{"2":{"22":1}}],["juliamlirvectortypegettypeid",{"2":{"22":1}}],["juliamlirvectortypegetscalablechecked",{"2":{"22":1}}],["juliamlirvectortypegetscalable",{"2":{"22":1}}],["juliamlirvectortypegetchecked",{"2":{"22":1}}],["juliamlirvectortypeget",{"2":{"22":1}}],["juliamlirvaluesettype",{"2":{"22":1}}],["juliamlirvaluereplaceallusesofwith",{"2":{"22":1}}],["juliamlirvalueprintasoperand",{"2":{"22":1}}],["juliamlirvalueprint",{"2":{"22":1}}],["juliamlirvalueisnull",{"2":{"22":1}}],["juliamlirvalueisaopresult",{"2":{"22":1}}],["juliamlirvalueisablockargument",{"2":{"22":1}}],["juliamlirvaluegettype",{"2":{"22":1}}],["juliamlirvaluegetfirstuse",{"2":{"22":1}}],["juliamlirvalueequal",{"2":{"22":1}}],["juliamlirvaluedump",{"2":{"22":1}}],["juliamlirunrankedtensortypegettypeid",{"2":{"22":1}}],["juliamlirunrankedtensortypegetchecked",{"2":{"22":1}}],["juliamlirunrankedtensortypeget",{"2":{"22":1}}],["juliamlirunrankedmemrefgetmemoryspace",{"2":{"22":1}}],["juliamlirunrankedmemreftypegettypeid",{"2":{"22":1}}],["juliamlirunrankedmemreftypegetchecked",{"2":{"22":1}}],["juliamlirunrankedmemreftypeget",{"2":{"22":1}}],["juliamlirunmanageddenseresourceelementsattrget",{"2":{"22":1}}],["juliamlirunitattrgettypeid",{"2":{"22":1}}],["juliamlirunitattrget",{"2":{"22":1}}],["juliamliruniformquantizedtypeisfixedpoint",{"2":{"22":1}}],["juliamliruniformquantizedtypegetzeropoint",{"2":{"22":1}}],["juliamliruniformquantizedtypegetscale",{"2":{"22":1}}],["juliamliruniformquantizedtypeget",{"2":{"22":1}}],["juliamliruniformquantizedperaxistypeisfixedpoint",{"2":{"22":1}}],["juliamliruniformquantizedperaxistypegetzeropoint",{"2":{"22":1}}],["juliamliruniformquantizedperaxistypegetscale",{"2":{"22":1}}],["juliamliruniformquantizedperaxistypegetquantizeddimension",{"2":{"22":1}}],["juliamliruniformquantizedperaxistypegetnumdims",{"2":{"22":1}}],["juliamliruniformquantizedperaxistypeget",{"2":{"22":1}}],["juliamlirtypeprint",{"2":{"22":1}}],["juliamlirtypeparseget",{"2":{"22":1}}],["juliamlirtypeisnull",{"2":{"22":1}}],["juliamlirtypeisavector",{"2":{"22":1}}],["juliamlirtypeisaunrankedtensor",{"2":{"22":1}}],["juliamlirtypeisaunrankedmemref",{"2":{"21":1,"22":1}}],["juliamlirtypeisauniformquantizedtype",{"2":{"22":1}}],["juliamlirtypeisauniformquantizedperaxistype",{"2":{"22":1}}],["juliamlirtypeisatuple",{"2":{"22":1}}],["juliamlirtypeisatensor",{"2":{"22":1}}],["juliamlirtypeisatf32",{"2":{"22":1}}],["juliamlirtypeisashaped",{"2":{"22":1}}],["juliamlirtypeisarankedtensor",{"2":{"22":1}}],["juliamlirtypeisaquantizedtype",{"2":{"22":1}}],["juliamlirtypeisaopaque",{"2":{"22":1}}],["juliamlirtypeisamemref",{"2":{"22":1}}],["juliamlirtypeisallvmstructtype",{"2":{"22":1}}],["juliamlirtypeisallvmpointertype",{"2":{"22":1}}],["juliamlirtypeisainteger",{"2":{"22":1}}],["juliamlirtypeisaindex",{"2":{"22":1}}],["juliamlirtypeisafunction",{"2":{"22":1}}],["juliamlirtypeisafloat8e8m0fnu",{"2":{"22":1}}],["juliamlirtypeisafloat8e5m2fnuz",{"2":{"22":1}}],["juliamlirtypeisafloat8e5m2",{"2":{"22":1}}],["juliamlirtypeisafloat8e4m3fnuz",{"2":{"22":1}}],["juliamlirtypeisafloat8e4m3fn",{"2":{"22":1}}],["juliamlirtypeisafloat8e4m3b11fnuz",{"2":{"22":1}}],["juliamlirtypeisafloat8e4m3",{"2":{"22":1}}],["juliamlirtypeisafloat8e3m4",{"2":{"22":1}}],["juliamlirtypeisafloat6e3m2fn",{"2":{"22":1}}],["juliamlirtypeisafloat6e2m3fn",{"2":{"22":1}}],["juliamlirtypeisafloat4e2m1fn",{"2":{"22":1}}],["juliamlirtypeisafloat",{"2":{"22":1}}],["juliamlirtypeisaf64",{"2":{"22":1}}],["juliamlirtypeisaf32",{"2":{"22":1}}],["juliamlirtypeisaf16",{"2":{"22":1}}],["juliamlirtypeisacomplex",{"2":{"22":1}}],["juliamlirtypeisacalibratedquantizedtype",{"2":{"22":1}}],["juliamlirtypeisabf16",{"2":{"22":1}}],["juliamlirtypeisaanyquantizedtype",{"2":{"22":1}}],["juliamlirtypeisanone",{"2":{"21":1,"22":1}}],["juliamlirtypeidisnull",{"2":{"22":1}}],["juliamlirtypeidhashvalue",{"2":{"22":1}}],["juliamlirtypeidequal",{"2":{"22":1}}],["juliamlirtypeidcreate",{"2":{"22":1}}],["juliamlirtypeidallocatordestroy",{"2":{"22":1}}],["juliamlirtypeidallocatorcreate",{"2":{"22":1}}],["juliamlirtypeidallocatorallocatetypeid",{"2":{"22":1}}],["juliamlirtypegettypeid",{"2":{"22":1}}],["juliamlirtypegetdialect",{"2":{"22":1}}],["juliamlirtypegetcontext",{"2":{"22":1}}],["juliamlirtypeequal",{"2":{"22":1}}],["juliamlirtypedump",{"2":{"22":1}}],["juliamlirtypeattrgetvalue",{"2":{"22":1}}],["juliamlirtypeattrgettypeid",{"2":{"22":1}}],["juliamlirtypeattrget",{"2":{"22":1}}],["juliamlirtupletypegettypeid",{"2":{"22":1}}],["juliamlirtupletypegettype",{"2":{"22":1}}],["juliamlirtupletypegetnumtypes",{"2":{"22":1}}],["juliamlirtupletypeget",{"2":{"22":1}}],["juliamlirtranslatemoduletollvmir",{"2":{"22":1}}],["juliamlirtransformoptionsgetexpensivechecksenabled",{"2":{"22":1}}],["juliamlirtransformoptionsgetenforcesingletopleveltransformop",{"2":{"22":1}}],["juliamlirtransformoptionsenforcesingletopleveltransformop",{"2":{"22":1}}],["juliamlirtransformoptionsenableexpensivechecks",{"2":{"22":1}}],["juliamlirtransformoptionsdestroy",{"2":{"22":1}}],["juliamlirtransformoptionscreate",{"2":{"22":1}}],["juliamlirtransformapplynamedsequence",{"2":{"22":1}}],["juliamlirtf32typeget",{"2":{"22":1}}],["juliamlirrewriterbasestartopmodification",{"2":{"22":1}}],["juliamlirrewriterbasesetinsertionpointtostart",{"2":{"22":1}}],["juliamlirrewriterbasesetinsertionpointtoend",{"2":{"22":1}}],["juliamlirrewriterbasesetinsertionpointbefore",{"2":{"22":1}}],["juliamlirrewriterbasesetinsertionpointaftervalue",{"2":{"22":1}}],["juliamlirrewriterbasesetinsertionpointafter",{"2":{"22":1}}],["juliamlirrewriterbasereplaceopwithvalues",{"2":{"22":1}}],["juliamlirrewriterbasereplaceopwithoperation",{"2":{"22":1}}],["juliamlirrewriterbasereplaceopuseswithinblock",{"2":{"22":1}}],["juliamlirrewriterbasereplaceallvaluerangeuseswith",{"2":{"22":1}}],["juliamlirrewriterbasereplacealluseswith",{"2":{"22":1}}],["juliamlirrewriterbasereplaceallusesexcept",{"2":{"22":1}}],["juliamlirrewriterbasereplaceallopuseswithvaluerange",{"2":{"22":1}}],["juliamlirrewriterbasereplaceallopuseswithoperation",{"2":{"22":1}}],["juliamlirrewriterbasemoveopbefore",{"2":{"22":1}}],["juliamlirrewriterbasemoveopafter",{"2":{"22":1}}],["juliamlirrewriterbasemoveblockbefore",{"2":{"22":1}}],["juliamlirrewriterbasemergeblocks",{"2":{"22":1}}],["juliamlirrewriterbaseinsert",{"2":{"22":1}}],["juliamlirrewriterbaseinlineregionbefore",{"2":{"22":1}}],["juliamlirrewriterbaseinlineblockbefore",{"2":{"22":1}}],["juliamlirrewriterbasegetinsertionblock",{"2":{"22":1}}],["juliamlirrewriterbasegetcontext",{"2":{"22":1}}],["juliamlirrewriterbasegetblock",{"2":{"22":1}}],["juliamlirrewriterbasefinalizeopmodification",{"2":{"22":1}}],["juliamlirrewriterbaseeraseop",{"2":{"22":1}}],["juliamlirrewriterbaseeraseblock",{"2":{"22":1}}],["juliamlirrewriterbasecreateblockbefore",{"2":{"22":1}}],["juliamlirrewriterbaseclonewithoutregions",{"2":{"22":1}}],["juliamlirrewriterbasecloneregionbefore",{"2":{"22":1}}],["juliamlirrewriterbaseclone",{"2":{"22":1}}],["juliamlirrewriterbaseclearinsertionpoint",{"2":{"22":1}}],["juliamlirrewriterbasecancelopmodification",{"2":{"22":1}}],["juliamlirregisterallpasses",{"2":{"22":1}}],["juliamlirregisterallllvmtranslations",{"2":{"22":1}}],["juliamlirregisteralldialects",{"2":{"22":1}}],["juliamlirregiontakebody",{"2":{"22":1}}],["juliamlirregionisnull",{"2":{"22":1}}],["juliamlirregioninsertownedblockbefore",{"2":{"22":1}}],["juliamlirregioninsertownedblockafter",{"2":{"22":1}}],["juliamlirregioninsertownedblock",{"2":{"22":1}}],["juliamlirregiongetnextinoperation",{"2":{"22":1}}],["juliamlirregiongetfirstblock",{"2":{"22":1}}],["juliamlirregionequal",{"2":{"22":1}}],["juliamlirregiondestroy",{"2":{"22":1}}],["juliamlirregioncreate",{"2":{"22":1}}],["juliamlirregionappendownedblock",{"2":{"22":1}}],["juliamlirrankedtensortypegettypeid",{"2":{"22":1}}],["juliamlirrankedtensortypegetencoding",{"2":{"22":1}}],["juliamlirrankedtensortypegetchecked",{"2":{"22":1}}],["juliamlirrankedtensortypeget",{"2":{"22":1}}],["juliamlirquantizedtypeissigned",{"2":{"22":1}}],["juliamlirquantizedtypeiscompatibleexpressedtype",{"2":{"22":1}}],["juliamlirquantizedtypegetstoragetypemin",{"2":{"22":1}}],["juliamlirquantizedtypegetstoragetypemax",{"2":{"22":1}}],["juliamlirquantizedtypegetstoragetypeintegralwidth",{"2":{"22":1}}],["juliamlirquantizedtypegetstoragetype",{"2":{"22":1}}],["juliamlirquantizedtypegetsignedflag",{"2":{"22":1}}],["juliamlirquantizedtypegetquantizedelementtype",{"2":{"22":1}}],["juliamlirquantizedtypegetflags",{"2":{"22":1}}],["juliamlirquantizedtypegetexpressedtype",{"2":{"22":1}}],["juliamlirquantizedtypegetdefaultminimumforinteger",{"2":{"22":1}}],["juliamlirquantizedtypegetdefaultmaximumforinteger",{"2":{"22":1}}],["juliamlirquantizedtypecasttostoragetype",{"2":{"22":1}}],["juliamlirquantizedtypecasttoexpressedtype",{"2":{"22":1}}],["juliamlirquantizedtypecastfromstoragetype",{"2":{"22":1}}],["juliamlirquantizedtypecastfromexpressedtype",{"2":{"22":1}}],["juliamlirquantizedtypecastexpressedtostoragetype",{"2":{"22":1}}],["juliamlirprintpasspipeline",{"2":{"22":1}}],["juliamlirpassmanagerrunonop",{"2":{"22":1}}],["juliamlirpassmanagerisnull",{"2":{"22":1}}],["juliamlirpassmanagergetnestedunder",{"2":{"22":1}}],["juliamlirpassmanagergetasoppassmanager",{"2":{"22":1}}],["juliamlirpassmanagerenableverifier",{"2":{"22":1}}],["juliamlirpassmanagerenableirprinting",{"2":{"22":1}}],["juliamlirpassmanagerdestroy",{"2":{"22":1}}],["juliamlirpassmanagercreateonoperation",{"2":{"22":1}}],["juliamlirpassmanagercreate",{"2":{"22":1}}],["juliamlirpassmanageraddownedpass",{"2":{"22":1}}],["juliamlirparsepasspipeline",{"2":{"22":1}}],["juliamlirnonetypegettypeid",{"2":{"22":1}}],["juliamlirnonetypeget",{"2":{"22":1}}],["juliamlirnamedattributeget",{"2":{"22":1}}],["juliamlirnamedattribute",{"2":{"22":1}}],["juliamlirmoduleisnull",{"2":{"22":1}}],["juliamlirmodulegetoperation",{"2":{"22":1}}],["juliamlirmodulegetcontext",{"2":{"22":1}}],["juliamlirmodulegetbody",{"2":{"22":1}}],["juliamlirmodulefromoperation",{"2":{"22":1}}],["juliamlirmoduledestroy",{"2":{"22":1}}],["juliamlirmodulecreateparse",{"2":{"22":1}}],["juliamlirmodulecreateempty",{"2":{"22":1}}],["juliamlirmergesymbolsintofromclone",{"2":{"22":1}}],["juliamlirmemreftypegettypeid",{"2":{"22":1}}],["juliamlirmemreftypegetstridesandoffset",{"2":{"22":1}}],["juliamlirmemreftypegetlayout",{"2":{"22":1}}],["juliamlirmemreftypegetchecked",{"2":{"22":1}}],["juliamlirmemreftypegetaffinemap",{"2":{"22":1}}],["juliamlirmemreftypeget",{"2":{"22":1}}],["juliamlirmemreftypegetmemoryspace",{"2":{"21":1,"22":1}}],["juliamlirmemreftypecontiguousgetchecked",{"2":{"22":1}}],["juliamlirmemreftypecontiguousget",{"2":{"22":1}}],["juliamlirisglobaldebugenabled",{"2":{"22":1}}],["juliamliriscurrentdebugtype",{"2":{"22":1}}],["juliamlirintegertypeunsignedget",{"2":{"22":1}}],["juliamlirintegertypesignedget",{"2":{"22":1}}],["juliamlirintegertypeisunsigned",{"2":{"22":1}}],["juliamlirintegertypeissignless",{"2":{"22":1}}],["juliamlirintegertypeissigned",{"2":{"22":1}}],["juliamlirintegertypegetwidth",{"2":{"22":1}}],["juliamlirintegertypegettypeid",{"2":{"22":1}}],["juliamlirintegertypeget",{"2":{"22":1}}],["juliamlirintegerattrgetvalueuint",{"2":{"22":1}}],["juliamlirintegerattrgetvaluesint",{"2":{"22":1}}],["juliamlirintegerattrgetvalueint",{"2":{"22":1}}],["juliamlirintegerattrgettypeid",{"2":{"22":1}}],["juliamlirintegerattrget",{"2":{"22":1}}],["juliamlirintegersetprint",{"2":{"22":1}}],["juliamlirintegersetisnull",{"2":{"22":1}}],["juliamlirintegersetiscanonicalempty",{"2":{"22":1}}],["juliamlirintegersetisconstrainteq",{"2":{"21":1,"22":1}}],["juliamlirintegersetgetnumsymbols",{"2":{"22":1}}],["juliamlirintegersetgetnuminputs",{"2":{"22":1}}],["juliamlirintegersetgetnuminequalities",{"2":{"22":1}}],["juliamlirintegersetgetnumequalities",{"2":{"22":1}}],["juliamlirintegersetgetnumdims",{"2":{"22":1}}],["juliamlirintegersetgetnumconstraints",{"2":{"22":1}}],["juliamlirintegersetgetcontext",{"2":{"22":1}}],["juliamlirintegersetgetconstraint",{"2":{"21":1,"22":1}}],["juliamlirintegersetget",{"2":{"22":1}}],["juliamlirintegersetequal",{"2":{"22":1}}],["juliamlirintegersetemptyget",{"2":{"22":1}}],["juliamlirintegersetdump",{"2":{"22":1}}],["juliamlirintegersetattrgetvalue",{"2":{"22":1}}],["juliamlirintegersetattrgettypeid",{"2":{"22":1}}],["juliamlirintegersetattrget",{"2":{"22":1}}],["juliamlirintegersetreplaceget",{"2":{"21":1,"22":1}}],["juliamlirinfertypeopinterfacetypeid",{"2":{"22":1}}],["juliamlirinfertypeopinterfaceinferreturntypes",{"2":{"22":1}}],["juliamlirinfershapedtypeopinterfacetypeid",{"2":{"22":1}}],["juliamlirinfershapedtypeopinterfaceinferreturntypes",{"2":{"22":1}}],["juliamlirindextypegettypeid",{"2":{"22":1}}],["juliamlirindextypeget",{"2":{"22":1}}],["juliamliridentifierstr",{"2":{"22":1}}],["juliamliridentifiergetcontext",{"2":{"22":1}}],["juliamliridentifierget",{"2":{"22":1}}],["juliamliridentifierequal",{"2":{"22":1}}],["juliamlirirrewriterdestroy",{"2":{"22":1}}],["juliamlirirrewritercreatefromop",{"2":{"22":1}}],["juliamlirirrewritercreate",{"2":{"22":1}}],["juliamlirfunctiontypegettypeid",{"2":{"22":1}}],["juliamlirfunctiontypegetresult",{"2":{"22":1}}],["juliamlirfunctiontypegetnumresults",{"2":{"22":1}}],["juliamlirfunctiontypegetnuminputs",{"2":{"22":1}}],["juliamlirfunctiontypegetinput",{"2":{"22":1}}],["juliamlirfunctiontypeget",{"2":{"22":1}}],["juliamlirfuncsetargattr",{"2":{"22":1}}],["juliamlirfreezerewritepattern",{"2":{"22":1}}],["juliamlirfloattypegetwidth",{"2":{"22":1}}],["juliamlirfloattf32typegettypeid",{"2":{"22":1}}],["juliamlirfloatattrgetvaluedouble",{"2":{"22":1}}],["juliamlirfloatattrgettypeid",{"2":{"22":1}}],["juliamlirfloatattrdoublegetchecked",{"2":{"22":1}}],["juliamlirfloatattrdoubleget",{"2":{"22":1}}],["juliamlirfloat8e8m0fnutypegettypeid",{"2":{"22":1}}],["juliamlirfloat8e8m0fnutypeget",{"2":{"22":1}}],["juliamlirfloat8e5m2typegettypeid",{"2":{"22":1}}],["juliamlirfloat8e5m2typeget",{"2":{"22":1}}],["juliamlirfloat8e5m2fnuztypegettypeid",{"2":{"22":1}}],["juliamlirfloat8e5m2fnuztypeget",{"2":{"22":1}}],["juliamlirfloat8e4m3typegettypeid",{"2":{"22":1}}],["juliamlirfloat8e4m3typeget",{"2":{"22":1}}],["juliamlirfloat8e4m3fnuztypegettypeid",{"2":{"22":1}}],["juliamlirfloat8e4m3fnuztypeget",{"2":{"22":1}}],["juliamlirfloat8e4m3fntypegettypeid",{"2":{"22":1}}],["juliamlirfloat8e4m3fntypeget",{"2":{"22":1}}],["juliamlirfloat8e4m3b11fnuztypegettypeid",{"2":{"22":1}}],["juliamlirfloat8e4m3b11fnuztypeget",{"2":{"22":1}}],["juliamlirfloat8e3m4typegettypeid",{"2":{"22":1}}],["juliamlirfloat8e3m4typeget",{"2":{"22":1}}],["juliamlirfloat6e3m2fntypegettypeid",{"2":{"22":1}}],["juliamlirfloat6e3m2fntypeget",{"2":{"22":1}}],["juliamlirfloat6e2m3fntypegettypeid",{"2":{"22":1}}],["juliamlirfloat6e2m3fntypeget",{"2":{"22":1}}],["juliamlirfloat64typegettypeid",{"2":{"22":1}}],["juliamlirfloat4e2m1fntypegettypeid",{"2":{"22":1}}],["juliamlirfloat4e2m1fntypeget",{"2":{"22":1}}],["juliamlirfloat32typegettypeid",{"2":{"22":1}}],["juliamlirfloat16typegettypeid",{"2":{"22":1}}],["juliamlirflatsymbolrefattrgetvalue",{"2":{"22":1}}],["juliamlirflatsymbolrefattrget",{"2":{"22":1}}],["juliamlirf64typeget",{"2":{"22":1}}],["juliamlirf32typeget",{"2":{"22":1}}],["juliamlirf16typeget",{"2":{"22":1}}],["juliamlirexternalpasssignalfailure",{"2":{"22":1}}],["juliamlirexternalpasscallbacks",{"2":{"22":1}}],["juliamlirexecutionengineregistersymbol",{"2":{"22":1}}],["juliamlirexecutionenginelookuppacked",{"2":{"22":1}}],["juliamlirexecutionenginelookup",{"2":{"22":1}}],["juliamlirexecutionengineisnull",{"2":{"22":1}}],["juliamlirexecutionengineinvokepacked",{"2":{"22":1}}],["juliamlirexecutionenginedumptoobjectfile",{"2":{"22":1}}],["juliamlirexecutionenginedestroy",{"2":{"22":1}}],["juliamlirexecutionenginecreate",{"2":{"22":1}}],["juliamlirenableglobaldebug",{"2":{"22":1}}],["juliamliremiterror",{"2":{"22":1}}],["juliamlirelementsattrisvalidindex",{"2":{"22":1}}],["juliamlirelementsattrgetvalue",{"2":{"22":1}}],["juliamlirelementsattrgetnumelements",{"2":{"22":1}}],["juliamlirdisctinctattrcreate",{"2":{"22":1}}],["juliamlirdictionaryattrgettypeid",{"2":{"22":1}}],["juliamlirdictionaryattrgetnumelements",{"2":{"22":1}}],["juliamlirdictionaryattrgetelementbyname",{"2":{"22":1}}],["juliamlirdictionaryattrgetelement",{"2":{"22":1}}],["juliamlirdictionaryattrget",{"2":{"22":1}}],["juliamlirdialectregistryisnull",{"2":{"22":1}}],["juliamlirdialectregistrydestroy",{"2":{"22":1}}],["juliamlirdialectregistrycreate",{"2":{"22":1}}],["juliamlirdialectisnull",{"2":{"22":1}}],["juliamlirdialecthandleregisterdialect",{"2":{"22":1}}],["juliamlirdialecthandleloaddialect",{"2":{"22":1}}],["juliamlirdialecthandleinsertdialect",{"2":{"22":1}}],["juliamlirdialecthandlegetnamespace",{"2":{"22":1}}],["juliamlirdialectgetnamespace",{"2":{"22":1}}],["juliamlirdialectgetcontext",{"2":{"22":1}}],["juliamlirdialectequal",{"2":{"22":1}}],["juliamlirdiagnosticprint",{"2":{"22":1}}],["juliamlirdiagnosticgetseverity",{"2":{"22":1}}],["juliamlirdiagnosticgetnumnotes",{"2":{"22":1}}],["juliamlirdiagnosticgetnote",{"2":{"22":1}}],["juliamlirdiagnosticgetlocation",{"2":{"22":1}}],["juliamlirdiagnosticseverity",{"2":{"22":1}}],["juliamlirdiagnostic",{"2":{"22":1}}],["juliamlirdenseintorfpelementsattrgettypeid",{"2":{"22":1}}],["juliamlirdenseelementsattrstringget",{"2":{"22":1}}],["juliamlirdenseelementsattrsplatget",{"2":{"22":1}}],["juliamlirdenseelementsattrreshapeget",{"2":{"22":1}}],["juliamlirdenseelementsattrrawbufferget",{"2":{"22":1}}],["juliamlirdenseelementsattrissplat",{"2":{"22":1}}],["juliamlirdenseelementsattrgetsplatvalue",{"2":{"22":1}}],["juliamlirdenseelementsattrgetrawdata",{"2":{"22":1}}],["juliamlirdenseelementsattrgetboolvalue",{"2":{"22":1}}],["juliamlirdenseelementsattrget",{"2":{"22":1}}],["juliamlirdenseelementsattrboolget",{"2":{"22":1}}],["juliamlirdenseboolresourceelementsattrgetvalue",{"2":{"22":1}}],["juliamlirdenseboolarraygetelement",{"2":{"22":1}}],["juliamlirdenseboolarrayget",{"2":{"22":1}}],["juliamlirdensearraygetnumelements",{"2":{"22":1}}],["juliamlircreateexternalpass",{"2":{"22":1}}],["juliamlircontextsetthreadpool",{"2":{"22":1}}],["juliamlircontextsetallowunregistereddialects",{"2":{"22":1}}],["juliamlircontextloadallavailabledialects",{"2":{"22":1}}],["juliamlircontextisregisteredoperation",{"2":{"22":1}}],["juliamlircontextisnull",{"2":{"22":1}}],["juliamlircontextgetorloaddialect",{"2":{"22":1}}],["juliamlircontextgetnumregistereddialects",{"2":{"22":1}}],["juliamlircontextgetnumloadeddialects",{"2":{"22":1}}],["juliamlircontextgetallowunregistereddialects",{"2":{"22":1}}],["juliamlircontextequal",{"2":{"22":1}}],["juliamlircontextenablemultithreading",{"2":{"22":1}}],["juliamlircontextdetachdiagnostichandler",{"2":{"22":1}}],["juliamlircontextdestroy",{"2":{"22":1}}],["juliamlircontextcreatewiththreading",{"2":{"22":1}}],["juliamlircontextcreatewithregistry",{"2":{"22":1}}],["juliamlircontextcreate",{"2":{"22":1}}],["juliamlircontextattachdiagnostichandler",{"2":{"22":1}}],["juliamlircontextappenddialectregistry",{"2":{"22":1}}],["juliamlircomplextypegettypeid",{"2":{"22":1}}],["juliamlircomplextypegetelementtype",{"2":{"22":1}}],["juliamlircomplextypeget",{"2":{"22":1}}],["juliamlircalibratedquantizedtypegetmin",{"2":{"22":1}}],["juliamlircalibratedquantizedtypegetmax",{"2":{"22":1}}],["juliamlircalibratedquantizedtypeget",{"2":{"22":1}}],["juliamlirbytecodewriterconfigdestroy",{"2":{"22":1}}],["juliamlirbytecodewriterconfigdesiredemitversion",{"2":{"22":1}}],["juliamlirbytecodewriterconfigcreate",{"2":{"22":1}}],["juliamlirboolattrgetvalue",{"2":{"22":1}}],["juliamlirboolattrget",{"2":{"22":1}}],["juliamlirblockprint",{"2":{"22":1}}],["juliamlirblockisnull",{"2":{"22":1}}],["juliamlirblockinsertownedoperationbefore",{"2":{"22":1}}],["juliamlirblockinsertownedoperationafter",{"2":{"22":1}}],["juliamlirblockinsertownedoperation",{"2":{"22":1}}],["juliamlirblockinsertargument",{"2":{"22":1}}],["juliamlirblockgetterminator",{"2":{"22":1}}],["juliamlirblockgetparentregion",{"2":{"22":1}}],["juliamlirblockgetparentoperation",{"2":{"22":1}}],["juliamlirblockgetnumarguments",{"2":{"22":1}}],["juliamlirblockgetnextinregion",{"2":{"22":1}}],["juliamlirblockgetfirstoperation",{"2":{"22":1}}],["juliamlirblockgetargument",{"2":{"22":1}}],["juliamlirblockeraseargument",{"2":{"22":1}}],["juliamlirblockequal",{"2":{"22":1}}],["juliamlirblockdetach",{"2":{"22":1}}],["juliamlirblockdestroy",{"2":{"22":1}}],["juliamlirblockcreate",{"2":{"22":1}}],["juliamlirblockargumentsettype",{"2":{"22":1}}],["juliamlirblockargumentgetowner",{"2":{"22":1}}],["juliamlirblockargumentgetargnumber",{"2":{"22":1}}],["juliamlirblockappendownedoperation",{"2":{"22":1}}],["juliamlirblockaddargument",{"2":{"22":1}}],["juliamlirbfloat16typegettypeid",{"2":{"22":1}}],["juliamlirbf16typeget",{"2":{"22":1}}],["juliamlirattributeprint",{"2":{"22":1}}],["juliamlirattributeparseget",{"2":{"22":1}}],["juliamlirattributeisnull",{"2":{"22":1}}],["juliamlirattributeisaunit",{"2":{"22":1}}],["juliamlirattributeisatype",{"2":{"22":1}}],["juliamlirattributeisasymbolref",{"2":{"22":1}}],["juliamlirattributeisastring",{"2":{"22":1}}],["juliamlirattributeisasparsetensorencodingattr",{"2":{"22":1}}],["juliamlirattributeisasparseelements",{"2":{"22":1}}],["juliamlirattributeisaopaque",{"2":{"22":1}}],["juliamlirattributeisaintegerset",{"2":{"22":1}}],["juliamlirattributeisainteger",{"2":{"22":1}}],["juliamlirattributeisafloat",{"2":{"22":1}}],["juliamlirattributeisaflatsymbolref",{"2":{"22":1}}],["juliamlirattributeisaelements",{"2":{"22":1}}],["juliamlirattributeisadictionary",{"2":{"22":1}}],["juliamlirattributeisadenseelements",{"2":{"22":1}}],["juliamlirattributeisadenseboolarray",{"2":{"22":1}}],["juliamlirattributeisabool",{"2":{"22":1}}],["juliamlirattributeisaarray",{"2":{"22":1}}],["juliamlirattributeisaaffinemap",{"2":{"22":1}}],["juliamlirattributegettypeid",{"2":{"22":1}}],["juliamlirattributegettype",{"2":{"22":1}}],["juliamlirattributegetnull",{"2":{"22":1}}],["juliamlirattributegetdialect",{"2":{"22":1}}],["juliamlirattributegetcontext",{"2":{"22":1}}],["juliamlirattributeequal",{"2":{"22":1}}],["juliamlirattributedump",{"2":{"22":1}}],["juliamlirasmstatedestroy",{"2":{"22":1}}],["juliamlirasmstatecreateforvalue",{"2":{"22":1}}],["juliamlirasmstatecreateforoperation",{"2":{"22":1}}],["juliamlirarrayattrgettypeid",{"2":{"22":1}}],["juliamlirarrayattrgetnumelements",{"2":{"22":1}}],["juliamlirarrayattrgetelement",{"2":{"22":1}}],["juliamlirarrayattrget",{"2":{"22":1}}],["juliamliranyquantizedtypeget",{"2":{"22":1}}],["juliamliraffinesymbolexprgetposition",{"2":{"22":1}}],["juliamliraffinesymbolexprget",{"2":{"22":1}}],["juliamliraffinemulexprget",{"2":{"22":1}}],["juliamliraffinemodexprget",{"2":{"22":1}}],["juliamliraffinemapzeroresultget",{"2":{"22":1}}],["juliamliraffinemapprint",{"2":{"22":1}}],["juliamliraffinemappermutationget",{"2":{"22":1}}],["juliamliraffinemapmultidimidentityget",{"2":{"22":1}}],["juliamliraffinemapminoridentityget",{"2":{"22":1}}],["juliamliraffinemapissingleconstant",{"2":{"22":1}}],["juliamliraffinemapisprojectedpermutation",{"2":{"22":1}}],["juliamliraffinemapispermutation",{"2":{"22":1}}],["juliamliraffinemapisnull",{"2":{"22":1}}],["juliamliraffinemapisminoridentity",{"2":{"22":1}}],["juliamliraffinemapisidentity",{"2":{"22":1}}],["juliamliraffinemapisempty",{"2":{"22":1}}],["juliamliraffinemapgetsubmap",{"2":{"22":1}}],["juliamliraffinemapgetsingleconstantresult",{"2":{"22":1}}],["juliamliraffinemapgetresult",{"2":{"22":1}}],["juliamliraffinemapgetnumsymbols",{"2":{"22":1}}],["juliamliraffinemapgetnumresults",{"2":{"22":1}}],["juliamliraffinemapgetnuminputs",{"2":{"22":1}}],["juliamliraffinemapgetnumdims",{"2":{"22":1}}],["juliamliraffinemapgetminorsubmap",{"2":{"22":1}}],["juliamliraffinemapgetmajorsubmap",{"2":{"22":1}}],["juliamliraffinemapgetcontext",{"2":{"22":1}}],["juliamliraffinemapget",{"2":{"22":1}}],["juliamliraffinemapequal",{"2":{"22":1}}],["juliamliraffinemapemptyget",{"2":{"22":1}}],["juliamliraffinemapdump",{"2":{"22":1}}],["juliamliraffinemapconstantget",{"2":{"22":1}}],["juliamliraffinemapcompressunusedsymbols",{"2":{"22":1}}],["juliamliraffinemapattrgetvalue",{"2":{"22":1}}],["juliamliraffinemapattrgettypeid",{"2":{"22":1}}],["juliamliraffinemapattrget",{"2":{"22":1}}],["juliamliraffinemapreplace",{"2":{"21":1,"22":1}}],["juliamliraffinefloordivexprget",{"2":{"22":1}}],["juliamliraffineexprprint",{"2":{"22":1}}],["juliamliraffineexprissymbolicorconstant",{"2":{"22":1}}],["juliamliraffineexprispureaffine",{"2":{"22":1}}],["juliamliraffineexprisnull",{"2":{"22":1}}],["juliamliraffineexprismultipleof",{"2":{"22":1}}],["juliamliraffineexprisfunctionofdim",{"2":{"22":1}}],["juliamliraffineexprisasymbol",{"2":{"22":1}}],["juliamliraffineexprisamul",{"2":{"22":1}}],["juliamliraffineexprisamod",{"2":{"22":1}}],["juliamliraffineexprisafloordiv",{"2":{"22":1}}],["juliamliraffineexprisadim",{"2":{"22":1}}],["juliamliraffineexprisaconstant",{"2":{"22":1}}],["juliamliraffineexprisaceildiv",{"2":{"22":1}}],["juliamliraffineexprisabinary",{"2":{"22":1}}],["juliamliraffineexprisaadd",{"2":{"22":1}}],["juliamliraffineexprgetlargestknowndivisor",{"2":{"22":1}}],["juliamliraffineexprgetcontext",{"2":{"22":1}}],["juliamliraffineexprequal",{"2":{"22":1}}],["juliamliraffineexprdump",{"2":{"22":1}}],["juliamliraffineexprcompose",{"2":{"22":1}}],["juliamliraffinedimexprgetposition",{"2":{"22":1}}],["juliamliraffinedimexprget",{"2":{"22":1}}],["juliamliraffineconstantexprgetvalue",{"2":{"22":1}}],["juliamliraffineconstantexprget",{"2":{"22":1}}],["juliamliraffineceildivexprget",{"2":{"22":1}}],["juliamliraffinebinaryopexprgetrhs",{"2":{"22":1}}],["juliamliraffinebinaryopexprgetlhs",{"2":{"22":1}}],["juliamliraffineaddexprget",{"2":{"22":1}}],["juliamlirwalkresult",{"2":{"22":1}}],["juliamlirwalkorder",{"2":{"22":1}}],["juliamliroperationwritebytecodewithconfig",{"2":{"22":1}}],["juliamliroperationwritebytecode",{"2":{"22":1}}],["juliamliroperationwalk",{"2":{"22":1}}],["juliamliroperationverify",{"2":{"22":1}}],["juliamliroperationsetsuccessor",{"2":{"22":1}}],["juliamliroperationsetoperands",{"2":{"22":1}}],["juliamliroperationsetoperand",{"2":{"22":1}}],["juliamliroperationsetinherentattributebyname",{"2":{"22":1}}],["juliamliroperationsetdiscardableattributebyname",{"2":{"22":1}}],["juliamliroperationsetattributebyname",{"2":{"22":1}}],["juliamliroperationstateget",{"2":{"22":1}}],["juliamliroperationstateenableresulttypeinference",{"2":{"22":1}}],["juliamliroperationstateaddresults",{"2":{"22":1}}],["juliamliroperationstate",{"2":{"22":1}}],["juliamliroperationremovefromparent",{"2":{"22":1}}],["juliamliroperationremovediscardableattributebyname",{"2":{"22":1}}],["juliamliroperationremoveattributebyname",{"2":{"22":1}}],["juliamliroperationprintwithstate",{"2":{"22":1}}],["juliamliroperationprintwithflags",{"2":{"22":1}}],["juliamliroperationprint",{"2":{"22":1}}],["juliamliroperationmovebefore",{"2":{"22":1}}],["juliamliroperationmoveafter",{"2":{"22":1}}],["juliamliroperationisnull",{"2":{"22":1}}],["juliamliroperationimplementsinterfacestatic",{"2":{"22":1}}],["juliamliroperationimplementsinterface",{"2":{"22":1}}],["juliamliroperationhasinherentattributebyname",{"2":{"22":1}}],["juliamliroperationgettypeid",{"2":{"22":1}}],["juliamliroperationgetsuccessor",{"2":{"22":1}}],["juliamliroperationgetresult",{"2":{"22":1}}],["juliamliroperationgetregion",{"2":{"22":1}}],["juliamliroperationgetparentoperation",{"2":{"22":1}}],["juliamliroperationgetoperand",{"2":{"22":1}}],["juliamliroperationgetnumsuccessors",{"2":{"22":1}}],["juliamliroperationgetnumresults",{"2":{"22":1}}],["juliamliroperationgetnumregions",{"2":{"22":1}}],["juliamliroperationgetnumoperands",{"2":{"22":1}}],["juliamliroperationgetnumdiscardableattributes",{"2":{"22":1}}],["juliamliroperationgetnumattributes",{"2":{"22":1}}],["juliamliroperationgetnextinblock",{"2":{"22":1}}],["juliamliroperationgetname",{"2":{"22":1}}],["juliamliroperationgetlocation",{"2":{"22":1}}],["juliamliroperationgetinherentattributebyname",{"2":{"22":1}}],["juliamliroperationgetfirstregion",{"2":{"22":1}}],["juliamliroperationgetdiscardableattributebyname",{"2":{"22":1}}],["juliamliroperationgetdiscardableattribute",{"2":{"22":1}}],["juliamliroperationgetcontext",{"2":{"22":1}}],["juliamliroperationgetblock",{"2":{"22":1}}],["juliamliroperationgetattributebyname",{"2":{"22":1}}],["juliamliroperationgetattribute",{"2":{"22":1}}],["juliamliroperationequal",{"2":{"22":1}}],["juliamliroperationdump",{"2":{"22":1}}],["juliamliroperationdestroy",{"2":{"22":1}}],["juliamliroperationcreateparse",{"2":{"22":1}}],["juliamliroperationcreate",{"2":{"22":1}}],["juliamliroperationclone",{"2":{"22":1}}],["juliamliropresultgetresultnumber",{"2":{"22":1}}],["juliamliropresultgetowner",{"2":{"22":1}}],["juliamliropprintingflagsuselocalscope",{"2":{"22":1}}],["juliamliropprintingflagsskipregions",{"2":{"22":1}}],["juliamliropprintingflagsprintgenericopform",{"2":{"22":1}}],["juliamliropprintingflagsenabledebuginfo",{"2":{"22":1}}],["juliamliropprintingflagselidelargeresourcestring",{"2":{"22":1}}],["juliamliropprintingflagselidelargeelementsattrs",{"2":{"22":1}}],["juliamliropprintingflagsdestroy",{"2":{"22":1}}],["juliamliropprintingflagscreate",{"2":{"22":1}}],["juliamliropprintingflagsassumeverified",{"2":{"22":1}}],["juliamliroppassmanagergetnestedunder",{"2":{"22":1}}],["juliamliroppassmanageraddpipeline",{"2":{"22":1}}],["juliamliroppassmanageraddownedpass",{"2":{"22":1}}],["juliamliropoperandisnull",{"2":{"22":1}}],["juliamliropoperandgetvalue",{"2":{"22":1}}],["juliamliropoperandgetowner",{"2":{"22":1}}],["juliamliropoperandgetoperandnumber",{"2":{"22":1}}],["juliamliropoperandgetnextuse",{"2":{"22":1}}],["juliamliropaquetypegettypeid",{"2":{"22":1}}],["juliamliropaquetypeget",{"2":{"22":1}}],["juliamliropaquetypegetdialectnamespace",{"2":{"21":1,"22":1}}],["juliamliropaquetypegetdata",{"2":{"21":1,"22":1}}],["juliamliropaqueattrgettypeid",{"2":{"22":1}}],["juliamliropaqueattrgetdata",{"2":{"22":1}}],["juliamliropaqueattrgetdialectnamespace",{"2":{"21":1,"22":1}}],["juliamliropaqueattrget",{"2":{"22":1}}],["juliamlirlocationunknownget",{"2":{"22":1}}],["juliamlirlocationprint",{"2":{"22":1}}],["juliamlirlocationnameget",{"2":{"22":1}}],["juliamlirlocationisnull",{"2":{"22":1}}],["juliamlirlocationgetcontext",{"2":{"22":1}}],["juliamlirlocationgetattribute",{"2":{"22":1}}],["juliamlirlocationfusedget",{"2":{"22":1}}],["juliamlirlocationfromattribute",{"2":{"22":1}}],["juliamlirlocationfilelinecolget",{"2":{"22":1}}],["juliamlirlocationequal",{"2":{"22":1}}],["juliamlirlocationcallsiteget",{"2":{"22":1}}],["juliamlirloadirdldialects",{"2":{"22":1}}],["juliamlirlogicalresultsuccess",{"2":{"22":1}}],["juliamlirlogicalresultissuccess",{"2":{"22":1}}],["juliamlirlogicalresultisfailure",{"2":{"22":1}}],["juliamlirlogicalresultfailure",{"2":{"22":1}}],["juliamlirlogicalresult",{"2":{"22":1}}],["juliamlirlinalgfillbuiltinnamedopregion",{"2":{"22":1}}],["juliamlirllvmvoidtypeget",{"2":{"22":1}}],["juliamlirllvmstructtypesetbody",{"2":{"22":1}}],["juliamlirllvmstructtypeliteralgetchecked",{"2":{"22":1}}],["juliamlirllvmstructtypeliteralget",{"2":{"22":1}}],["juliamlirllvmstructtypeispacked",{"2":{"22":1}}],["juliamlirllvmstructtypeisopaque",{"2":{"22":1}}],["juliamlirllvmstructtypeisliteral",{"2":{"22":1}}],["juliamlirllvmstructtypeidentifiednewget",{"2":{"22":1}}],["juliamlirllvmstructtypeidentifiedget",{"2":{"22":1}}],["juliamlirllvmstructtypegetnumelementtypes",{"2":{"22":1}}],["juliamlirllvmstructtypegetidentifier",{"2":{"22":1}}],["juliamlirllvmstructtypegetelementtype",{"2":{"22":1}}],["juliamlirllvmpointertypegetaddressspace",{"2":{"22":1}}],["juliamlirllvmpointertypeget",{"2":{"22":1}}],["juliamlirllvmlinkageattrget",{"2":{"22":1}}],["juliamlirllvmfunctiontypeget",{"2":{"22":1}}],["juliamlirllvmdisubroutinetypeattrget",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgettype",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgetscopeline",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgetscope",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgetrecself",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgetline",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgetfile",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrgetcompileunit",{"2":{"22":1}}],["juliamlirllvmdisubprogramattrget",{"2":{"22":1}}],["juliamlirllvmdinulltypeattrget",{"2":{"22":1}}],["juliamlirllvmdimoduleattrgetscope",{"2":{"22":1}}],["juliamlirllvmdimoduleattrget",{"2":{"22":1}}],["juliamlirllvmdilocalvariableattrget",{"2":{"22":1}}],["juliamlirllvmdilexicalblockfileattrget",{"2":{"22":1}}],["juliamlirllvmdilexicalblockattrget",{"2":{"22":1}}],["juliamlirllvmdiimportedentityattrget",{"2":{"22":1}}],["juliamlirllvmdiflagsattrget",{"2":{"22":1}}],["juliamlirllvmdifileattrget",{"2":{"22":1}}],["juliamlirllvmdiexpressionelemattrget",{"2":{"22":1}}],["juliamlirllvmdiexpressionattrget",{"2":{"22":1}}],["juliamlirllvmdiderivedtypeattrgetbasetype",{"2":{"22":1}}],["juliamlirllvmdiderivedtypeattrget",{"2":{"22":1}}],["juliamlirllvmdicompositetypeattrgetrecself",{"2":{"22":1}}],["juliamlirllvmdicompositetypeattrget",{"2":{"22":1}}],["juliamlirllvmdicompileunitattrget",{"2":{"22":1}}],["juliamlirllvmdibasictypeattrget",{"2":{"22":1}}],["juliamlirllvmdiannotationattrget",{"2":{"22":1}}],["juliamlirllvmcomdatattrget",{"2":{"22":1}}],["juliamlirllvmcconvattrget",{"2":{"22":1}}],["juliamlirllvmarraytypeget",{"2":{"22":1}}],["juliamlirllvmthreadpooldestroy",{"2":{"22":1}}],["juliamlirllvmthreadpoolcreate",{"2":{"22":1}}],["juliamlirllvmthreadpool",{"2":{"22":1}}],["juliamlirsymboltablewalksymboltables",{"2":{"22":1}}],["juliamlirsymboltablereplaceallsymboluses",{"2":{"22":1}}],["juliamlirsymboltablelookup",{"2":{"22":1}}],["juliamlirsymboltableisnull",{"2":{"22":1}}],["juliamlirsymboltableinsert",{"2":{"22":1}}],["juliamlirsymboltablegetvisibilityattributename",{"2":{"22":1}}],["juliamlirsymboltablegetsymbolattributename",{"2":{"22":1}}],["juliamlirsymboltableerase",{"2":{"22":1}}],["juliamlirsymboltabledestroy",{"2":{"22":1}}],["juliamlirsymboltablecreate",{"2":{"21":1,"22":1}}],["juliamlirsymbolrefattrgettypeid",{"2":{"22":1}}],["juliamlirsymbolrefattrgetrootreference",{"2":{"22":1}}],["juliamlirsymbolrefattrgetnumnestedreferences",{"2":{"22":1}}],["juliamlirsymbolrefattrgetnestedreference",{"2":{"22":1}}],["juliamlirsymbolrefattrgetleafreference",{"2":{"22":1}}],["juliamlirsymbolrefattrget",{"2":{"22":1}}],["juliamlirstringattrtypedget",{"2":{"22":1}}],["juliamlirstringattrgetvalue",{"2":{"22":1}}],["juliamlirstringattrgettypeid",{"2":{"22":1}}],["juliamlirstringattrget",{"2":{"22":1}}],["juliamlirstringrefequal",{"2":{"22":1}}],["juliamlirstringrefcreatefromcstring",{"2":{"22":1}}],["juliamlirstringrefcreate",{"2":{"22":1}}],["juliamlirstringref",{"2":{"22":1}}],["juliamlirstridedlayoutattrgettypeid",{"2":{"22":1}}],["juliamlirsparsetensorencodinggetlvlrank",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetposwidth",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetlvltype",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetlvltodim",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetlvlfmt",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetimplicitval",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetexplicitval",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetdimtolvl",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrgetcrdwidth",{"2":{"22":1}}],["juliamlirsparsetensorencodingattrget",{"2":{"22":1}}],["juliamlirsparseelementsattribute",{"2":{"22":1}}],["juliamlirsparseelementsattrgetvalues",{"2":{"22":1}}],["juliamlirsparseelementsattrgettypeid",{"2":{"22":1}}],["juliamlirsparseelementsattrgetindices",{"2":{"22":1}}],["juliamlirsetglobaldebugtypes",{"2":{"22":1}}],["juliamlirsetglobaldebugtype",{"2":{"22":1}}],["juliamlirshapedtypeisdynamicsize",{"2":{"22":1}}],["juliamlirshapedtypeisdynamicstrideoroffset",{"2":{"21":1,"22":1}}],["juliamlirshapedtypeisdynamicdim",{"2":{"22":1}}],["juliamlirshapedtypehasstaticshape",{"2":{"22":1}}],["juliamlirshapedtypehasrank",{"2":{"22":1}}],["juliamlirshapedtypegetrank",{"2":{"22":1}}],["juliamlirshapedtypegetelementtype",{"2":{"22":1}}],["juliamlirshapedtypegetdynamicsize",{"2":{"22":1}}],["juliamlirshapedtypegetdynamicstrideoroffset",{"2":{"21":1,"22":1}}],["juliamlirshapedtypegetdimsize",{"2":{"22":1}}],["juliabody",{"2":{"21":1}}],["juliabool",{"2":{"21":1}}],["juliabitwidth",{"2":{"21":1}}],["juliabase",{"2":{"21":1}}],["juliablockiterator",{"2":{"21":1}}],["juliablock",{"2":{"21":4}}],["juliaattr",{"2":{"21":3}}],["juliaattribute",{"2":{"21":11}}],["juliaargument",{"2":{"21":1}}],["juliaadd",{"2":{"21":3}}],["juliaaffinedimensionexpr",{"2":{"21":1}}],["juliaaffinemap",{"2":{"21":5}}],["juliaunitattribute",{"2":{"21":1}}],["juliauint64",{"2":{"21":1}}],["juliausing",{"2":{"15":3,"18":1}}],["juliafirst",{"2":{"21":3}}],["juliafill",{"2":{"21":1}}],["juliafailure",{"2":{"21":1}}],["juliaflatsymbol",{"2":{"21":1}}],["juliaflatsymbolrefattribute",{"2":{"21":1}}],["juliafloat8e5m2",{"2":{"21":1}}],["juliafloat8e4m3fn",{"2":{"21":1}}],["juliafloat64",{"2":{"21":1}}],["juliafunctiontype",{"2":{"21":1}}],["juliafunction",{"2":{"3":1}}],["juliaidentityaffinemap",{"2":{"21":1}}],["juliaidentifier",{"2":{"21":1}}],["juliaisvector",{"2":{"21":1}}],["juliaisunsigned",{"2":{"21":1}}],["juliaisunrankedtensor",{"2":{"21":1}}],["juliaisunit",{"2":{"21":1}}],["juliaistype",{"2":{"21":1}}],["juliaistuple",{"2":{"21":1}}],["juliaistensor",{"2":{"21":1}}],["juliaissymbolref",{"2":{"21":1}}],["juliaissymbolexpr",{"2":{"21":1}}],["juliaissuccess",{"2":{"21":1}}],["juliaisstring",{"2":{"21":1}}],["juliaissplat",{"2":{"21":1}}],["juliaissparseelements",{"2":{"21":1}}],["juliaissingleconstant",{"2":{"21":1}}],["juliaissignless",{"2":{"21":1}}],["juliaissigned",{"2":{"21":1}}],["juliaisshaped",{"2":{"21":1}}],["juliaisrankedtensor",{"2":{"21":1}}],["juliaisprojperm",{"2":{"21":1}}],["juliaisperm",{"2":{"21":1}}],["juliaisopaque",{"2":{"21":2}}],["juliaismultipleof",{"2":{"21":1}}],["juliaismul",{"2":{"21":1}}],["juliaismod",{"2":{"21":1}}],["juliaisminoridentity",{"2":{"21":1}}],["juliaismemref",{"2":{"21":1}}],["juliaisintegerset",{"2":{"21":1}}],["juliaisinteger",{"2":{"21":2}}],["juliaisindex",{"2":{"21":1}}],["juliaisidentity",{"2":{"21":1}}],["juliaisfunctionofdimexpr",{"2":{"21":1}}],["juliaisfunction",{"2":{"21":1}}],["juliaisfloordiv",{"2":{"21":1}}],["juliaisfloat",{"2":{"21":1}}],["juliaisflatsymbolref",{"2":{"21":1}}],["juliaisfailure",{"2":{"21":1}}],["juliaisf8e5m2",{"2":{"21":1}}],["juliaisf8e4m3fn",{"2":{"21":1}}],["juliaisf64",{"2":{"21":1}}],["juliaisf32",{"2":{"21":1}}],["juliaisf16",{"2":{"21":1}}],["juliaiselements",{"2":{"21":1}}],["juliaisempty",{"2":{"21":2}}],["juliaisdynsize",{"2":{"21":1}}],["juliaisdyndim",{"2":{"21":1}}],["juliaisdimexpr",{"2":{"21":1}}],["juliaisdict",{"2":{"21":1}}],["juliaisdenseelements",{"2":{"21":1}}],["juliaisconstantexpr",{"2":{"21":1}}],["juliaiscomplex",{"2":{"21":1}}],["juliaisceildiv",{"2":{"21":1}}],["juliaisbool",{"2":{"21":1}}],["juliaisbinary",{"2":{"21":1}}],["juliaisbf16",{"2":{"21":1}}],["juliaisarray",{"2":{"21":1}}],["juliaisaffinemap",{"2":{"21":1}}],["juliaisadd",{"2":{"21":1}}],["juliais",{"2":{"21":5}}],["juliainput",{"2":{"21":1}}],["juliainput1",{"2":{"18":1}}],["juliaindextype",{"2":{"21":1}}],["juliainsert",{"2":{"21":6}}],["juliaintegerset",{"2":{"21":2}}],["juliaint64",{"2":{"21":1}}],["juliaimport",{"2":{"17":1}}],["julia>",{"2":{"14":2,"21":1}}],["juliajulia>",{"2":{"11":1,"14":2,"21":1}}],["juliax",{"2":{"3":1}}],["julia",{"2":{"2":2,"3":5,"4":1,"5":3,"14":2,"17":2,"18":3,"21":3}}],["jlmethod",{"2":{"20":1}}],["jlobjecttype",{"2":{"20":1}}],["jlbinding",{"2":{"20":1}}],["jldocstring",{"2":{"20":1}}],["jl",{"0":{"14":1},"2":{"14":4,"17":1,"20":2}}],["jax",{"2":{"5":2}}],["jitted",{"2":{"22":1}}],["jiteventlistener",{"2":{"22":1}}],["jit",{"2":{"2":2,"11":1,"21":2,"22":9}}],["jj",{"2":{"0":3}}],["j",{"2":{"0":17,"8":3}}],["x^2",{"2":{"8":4}}],["xor",{"2":{"6":3,"8":3,"20":5}}],["xori",{"2":{"6":6}}],["xf8>",{"2":{"6":1}}],["xf32>",{"2":{"0":5,"20":2}}],["xi1>",{"2":{"6":1}}],["xi8>",{"2":{"6":13}}],["xbf16>",{"2":{"6":3}}],["xla",{"0":{"13":1},"2":{"5":7,"8":17,"20":6}}],["x26",{"2":{"3":2}}],["x",{"2":{"0":10,"3":13,"6":29,"8":44,"10":6,"18":3,"20":6}}],["x3c",{"2":{"0":48,"3":1,"6":54,"7":3,"10":11,"11":5,"20":360,"21":4}}],["go",{"2":{"22":3}}],["gcd",{"2":{"21":1}}],["global",{"2":{"20":1,"22":6}}],["gathers",{"2":{"20":1}}],["gather",{"2":{"20":16}}],["gauss",{"2":{"8":1}}],["ge",{"2":{"20":1}}],["gets",{"2":{"21":23,"22":38}}],["get",{"2":{"20":8,"22":5}}],["getting",{"0":{"16":1},"1":{"17":1,"18":1}}],["generation",{"2":{"21":2,"22":2}}],["generator",{"2":{"20":5}}],["generates",{"2":{"20":1}}],["generate",{"2":{"5":3}}],["generated",{"0":{"4":1},"2":{"20":1,"22":2}}],["general",{"2":{"14":1,"20":4}}],["generally",{"2":{"7":1}}],["generic",{"2":{"6":6,"10":1,"20":1,"21":4,"22":8}}],["gpu",{"2":{"15":1}}],["gpuscloud",{"2":{"15":1}}],["greatest",{"2":{"21":1,"22":1}}],["greater",{"2":{"6":8,"21":4,"22":4}}],["graceful",{"2":{"22":1}}],["gradients",{"2":{"20":1}}],["grad",{"2":{"20":12}}],["graph",{"2":{"7":1}}],["grid",{"2":{"20":6}}],["groups",{"2":{"20":6}}],["group",{"2":{"0":4,"20":10}}],["giving",{"2":{"22":1}}],["give",{"2":{"21":1,"22":1}}],["given",{"2":{"0":1,"6":4,"11":2,"20":6,"21":190,"22":303}}],["github",{"2":{"6":1,"14":1,"20":117}}],["guaranteed",{"2":{"3":1,"22":1}}],["gt",{"2":{"0":4,"6":2,"8":6,"20":27,"22":3}}],["g",{"2":{"0":4,"6":20,"10":1,"21":1,"22":1}}],["rmfromparent",{"2":{"21":1}}],["rmattr",{"2":{"21":1}}],["r",{"2":{"21":1,"22":1}}],["rsqrt",{"2":{"20":5}}],["rng",{"2":{"20":10}}],["rootref",{"2":{"21":1}}],["root",{"2":{"20":3,"21":1,"22":3}}],["row",{"2":{"8":1,"21":1,"22":2}}],["round",{"2":{"20":8}}],["rounded",{"2":{"6":3,"22":1}}],["rounds",{"2":{"6":5}}],["rounding",{"2":{"6":9,"20":2}}],["right",{"2":{"6":2,"8":4,"20":10,"21":2,"22":8}}],["rhs",{"2":{"6":4,"8":17,"20":44,"21":14,"22":11}}],["rawbuffer",{"2":{"22":1}}],["rawbuffersize",{"2":{"22":1}}],["raw",{"2":{"21":2,"22":6}}],["rarray",{"2":{"11":2,"18":1}}],["random",{"2":{"20":2}}],["rankedtensor",{"2":{"22":1}}],["ranked",{"2":{"21":5,"22":5}}],["rank",{"2":{"8":2,"20":1,"21":8,"22":26}}],["ranges",{"2":{"0":1}}],["range",{"2":{"0":4,"22":1}}],["rationale",{"2":{"6":3,"10":1}}],["rather",{"2":{"6":1}}],["r3",{"2":{"6":1}}],["r2",{"2":{"6":1}}],["r1595669709",{"2":{"20":1}}],["r1",{"2":{"6":1}}],["rules",{"2":{"6":1}}],["runonoperation",{"2":{"22":1}}],["running",{"2":{"22":2}}],["runtime",{"2":{"6":1}}],["run",{"2":{"2":1,"14":2,"18":1,"21":5,"22":8}}],["reexported",{"2":{"22":1}}],["renamed",{"2":{"22":1}}],["renames",{"2":{"21":1,"22":1}}],["renaming",{"2":{"22":2}}],["retainednodes",{"2":{"22":1}}],["retuns",{"2":{"22":1}}],["returning",{"2":{"21":3,"22":6}}],["returned",{"2":{"0":1,"6":2,"21":4,"22":9}}],["return",{"2":{"0":9,"3":1,"8":2,"10":6,"11":2,"18":1,"20":14,"21":4,"22":17}}],["returns",{"2":{"0":4,"5":1,"6":22,"8":40,"10":1,"20":2,"21":97,"22":269}}],["rewriter",{"2":{"22":37}}],["rely",{"2":{"22":2}}],["related",{"2":{"6":1}}],["re",{"2":{"22":2}}],["requested",{"2":{"21":1,"22":1}}],["requirements",{"2":{"22":1}}],["require",{"2":{"6":3}}],["requires",{"2":{"0":1}}],["required",{"2":{"0":4,"6":9,"22":1}}],["recid",{"2":{"22":4}}],["reciprocal",{"2":{"20":1}}],["receives",{"2":{"20":1}}],["recv",{"2":{"20":4}}],["rectangular",{"2":{"0":1}}],["reversal",{"2":{"20":1}}],["reverses",{"2":{"20":1}}],["reverse",{"2":{"0":1,"20":5,"22":1}}],["reinterpreted",{"2":{"20":1}}],["removing",{"2":{"22":1}}],["remove",{"2":{"22":2}}],["removes",{"2":{"21":3,"22":4}}],["removed",{"2":{"7":1,"21":1,"22":3}}],["remains",{"2":{"21":6,"22":6}}],["remainder",{"2":{"6":10,"8":2,"20":5}}],["remui",{"2":{"6":5}}],["remsi",{"2":{"6":5}}],["remf",{"2":{"6":2}}],["regardless",{"2":{"21":1,"22":1}}],["regular",{"2":{"6":2,"18":1}}],["registry",{"2":{"14":1,"22":12}}],["registering",{"2":{"22":1}}],["registers",{"2":{"22":1}}],["registered",{"2":{"14":1,"21":5,"22":8}}],["register",{"2":{"5":2,"6":1,"22":3}}],["regioniterator",{"2":{"21":1}}],["regions",{"2":{"0":2,"21":2,"22":8}}],["region",{"2":{"0":13,"7":2,"10":1,"21":29,"22":41}}],["reported",{"2":{"21":1,"22":4}}],["repeated",{"2":{"21":1,"22":1}}],["replacing",{"2":{"21":1,"22":3}}],["replaces",{"2":{"22":1}}],["replacements",{"2":{"22":2}}],["replacement",{"2":{"21":1,"22":2}}],["replaced",{"2":{"20":1,"21":1,"22":10}}],["replace",{"2":{"3":1,"21":3,"22":13}}],["replicated",{"2":{"21":2,"22":3}}],["replica",{"2":{"20":14}}],["repl",{"2":{"14":1,"17":1}}],["represent",{"2":{"21":1,"22":3}}],["representable",{"2":{"8":2}}],["representational",{"2":{"7":1}}],["representation",{"2":{"0":1,"6":6,"22":11}}],["representing",{"2":{"0":1,"5":3,"21":4,"22":5}}],["represented",{"2":{"0":6,"6":6,"10":1}}],["represents",{"2":{"0":3,"7":2,"8":1,"10":3,"21":5,"22":12}}],["reductions",{"2":{"0":1}}],["reduction",{"2":{"0":3,"20":5}}],["reduced",{"2":{"0":2}}],["reduce",{"2":{"0":3,"20":22}}],["real",{"2":{"8":10,"20":10}}],["reason",{"2":{"6":1,"22":1}}],["readable",{"2":{"22":1}}],["readability",{"2":{"6":2}}],["read",{"2":{"0":8}}],["reads",{"2":{"0":2,"20":1}}],["readers",{"2":{"0":1}}],["reactantcore",{"0":{"3":1},"2":{"3":1}}],["reactant",{"0":{"1":1,"11":1,"14":1},"1":{"2":1,"3":1,"4":1},"2":{"0":13,"2":2,"3":1,"4":1,"5":3,"6":44,"7":2,"8":47,"9":1,"10":5,"11":6,"14":5,"15":6,"17":3,"18":8,"19":1,"20":118,"21":251,"22":747}}],["reset",{"2":{"22":1}}],["reserved",{"2":{"3":1}}],["resolved",{"2":{"22":1}}],["resources",{"2":{"22":2}}],["resource",{"2":{"22":2}}],["reshape",{"2":{"20":10,"21":2}}],["responsible",{"2":{"22":1}}],["responsibility",{"2":{"22":1}}],["resp",{"2":{"8":2}}],["respectively",{"2":{"0":1,"3":1,"6":8,"20":1,"21":3,"22":3}}],["respective",{"2":{"0":5,"6":1}}],["restricts",{"2":{"0":1}}],["restrictions",{"2":{"0":3}}],["res",{"2":{"0":1,"21":6,"22":3}}],["resulttype",{"2":{"22":1}}],["resultpos",{"2":{"22":2}}],["resulting",{"2":{"21":1,"22":4}}],["result0",{"2":{"20":2}}],["result3",{"2":{"7":1}}],["result1",{"2":{"7":1,"20":2}}],["results1",{"2":{"20":1}}],["results0",{"2":{"20":2}}],["results2",{"2":{"7":1}}],["results",{"2":{"0":7,"5":1,"6":3,"7":1,"10":2,"20":10,"21":14,"22":18}}],["result",{"2":{"0":7,"5":1,"6":29,"7":1,"10":5,"11":1,"20":181,"21":24,"22":27}}],["refers",{"2":{"22":1}}],["referencing",{"2":{"21":2,"22":4}}],["referencedattr",{"2":{"22":1}}],["referenced",{"2":{"10":1,"21":3,"22":5}}],["references",{"2":{"10":2,"21":4,"22":6}}],["reference",{"2":{"10":4,"21":27,"22":36}}],["referring",{"2":{"10":1}}],["refer",{"2":{"0":1,"5":1,"6":1,"7":2,"8":1,"10":1,"12":1,"20":1}}],["pending",{"2":{"22":1}}],["per",{"2":{"22":5}}],["permanently",{"2":{"22":2}}],["permutes",{"2":{"20":1}}],["permute",{"2":{"0":2,"20":4}}],["permutationaffinemap",{"2":{"21":1}}],["permutation",{"2":{"0":2,"20":1,"21":8,"22":8}}],["perform",{"2":{"21":2,"22":4}}],["performs",{"2":{"6":6,"8":1,"20":47}}],["performed",{"2":{"0":1,"6":2,"22":1}}],["ptr",{"2":{"22":4}}],["pseudorandom",{"2":{"20":1}}],["pytorch",{"2":{"20":2}}],["python",{"2":{"20":2}}],["pytree",{"2":{"5":2}}],["purposes",{"2":{"22":1}}],["pure",{"2":{"21":3,"22":1}}],["push",{"2":{"21":4}}],["pulling",{"2":{"22":1}}],["pull",{"2":{"20":1}}],["public",{"2":{"5":1,"22":2}}],["placed",{"2":{"22":1}}],["place",{"2":{"22":9}}],["placeholder",{"2":{"21":2,"22":2}}],["platform",{"2":{"6":2}}],["plus",{"2":{"20":5}}],["please",{"2":{"19":1,"22":5}}],["pkg",{"2":{"14":4,"17":2}}],["pipelineelements",{"2":{"21":1,"22":1}}],["pipeline",{"2":{"21":5,"22":4}}],["pi",{"2":{"8":1}}],["p",{"2":{"3":2}}],["potential",{"2":{"22":1}}],["potentially",{"2":{"0":1,"21":1,"22":5}}],["pools",{"2":{"22":1}}],["pool",{"2":{"22":4}}],["populated",{"2":{"22":1}}],["populateresult",{"2":{"22":2}}],["popcnt",{"2":{"20":4}}],["portion",{"2":{"22":2}}],["poswidth",{"2":{"22":1}}],["possible",{"2":{"22":4}}],["possibly",{"2":{"20":1}}],["pos",{"2":{"8":2,"21":1,"22":54}}],["positions",{"2":{"21":2,"22":1}}],["positioning",{"2":{"3":1}}],["position",{"2":{"0":2,"6":1,"20":1,"21":11,"22":17}}],["positives",{"2":{"6":1}}],["positive",{"2":{"0":2,"6":2,"21":1,"22":1}}],["power",{"2":{"8":2,"20":4}}],["polygamma",{"2":{"8":6}}],["poison",{"2":{"6":11}}],["pointed",{"2":{"22":1}}],["pointertype",{"2":{"22":1}}],["pointer",{"2":{"22":10}}],["pointers",{"2":{"22":3}}],["pointwise",{"2":{"6":2}}],["point",{"2":{"6":28,"20":4,"21":6,"22":31}}],["payload",{"2":{"22":2}}],["patterns",{"2":{"22":1}}],["paths",{"2":{"21":1,"22":1}}],["path",{"2":{"0":1,"22":1}}],["packed",{"2":{"22":4}}],["package",{"2":{"17":1}}],["passid",{"2":{"22":1}}],["passing",{"2":{"20":1,"22":2}}],["passmanagerbase",{"2":{"22":1}}],["passmanager",{"2":{"21":19,"22":25}}],["pass",{"2":{"20":1,"21":14,"22":31}}],["passes",{"2":{"0":1,"21":2,"22":3}}],["passed",{"2":{"0":3,"22":6}}],["pairs",{"2":{"20":1}}],["pair",{"2":{"8":1,"18":6,"20":1,"22":2}}],["params",{"2":{"22":1}}],["parameters",{"2":{"20":2,"22":5}}],["parameter",{"2":{"11":1,"21":1,"22":1}}],["parallel",{"2":{"0":11}}],["parsable",{"2":{"22":1}}],["parsecommandlineoptions",{"2":{"22":1}}],["parses",{"2":{"21":3,"22":5}}],["parse",{"2":{"21":6,"22":2}}],["parsed",{"2":{"20":1}}],["parser",{"2":{"6":1,"22":2}}],["parsing",{"2":{"0":1,"21":1,"22":3}}],["particularly",{"2":{"22":1}}],["particular",{"2":{"22":1}}],["particularities",{"2":{"6":1}}],["partition",{"2":{"20":5}}],["parts",{"2":{"20":5}}],["part",{"2":{"5":1,"20":2}}],["parent",{"2":{"0":3,"21":9,"22":9}}],["padded",{"2":{"22":1}}],["padding",{"2":{"0":1,"20":18}}],["pad",{"2":{"0":1,"20":10}}],["providing",{"2":{"22":3}}],["provide",{"2":{"20":1,"22":1}}],["provides",{"2":{"10":1,"11":1,"18":1}}],["provided",{"2":{"6":3,"11":1,"21":15,"22":31}}],["progressively",{"2":{"22":1}}],["progress",{"2":{"20":2}}],["program",{"2":{"18":1,"20":1}}],["programs",{"2":{"18":1}}],["processed",{"2":{"22":1}}],["processes",{"2":{"20":3,"22":1}}],["process",{"2":{"20":20,"22":2}}],["producing",{"2":{"20":2}}],["products",{"2":{"20":2}}],["product",{"2":{"6":2,"20":1}}],["producer",{"2":{"22":1}}],["produced",{"2":{"21":2,"22":4}}],["produces",{"2":{"0":1,"6":2,"10":2,"20":85}}],["produce",{"2":{"0":2,"7":1,"20":3}}],["properties",{"2":{"22":3}}],["proper",{"2":{"6":1}}],["project",{"2":{"6":1}}],["printafteronlyonfailure",{"2":{"22":1}}],["printafteronlyonchange",{"2":{"22":1}}],["printafterall",{"2":{"22":1}}],["printmodulescope",{"2":{"22":1}}],["printbeforeall",{"2":{"22":1}}],["printer",{"2":{"22":1}}],["printers",{"2":{"22":1}}],["printed",{"2":{"0":1,"22":1}}],["prints",{"2":{"21":1,"22":18}}],["print",{"2":{"21":1,"22":3}}],["printing",{"2":{"21":2,"22":13}}],["primitive",{"2":{"20":1}}],["private",{"2":{"5":1,"10":5,"22":1}}],["pretty",{"2":{"22":1}}],["prettyform",{"2":{"22":3}}],["prepared",{"2":{"22":1}}],["prepends",{"2":{"21":2,"22":2}}],["pre",{"2":{"22":2}}],["prevents",{"2":{"20":1}}],["previously",{"2":{"22":2}}],["previous",{"2":{"20":1}}],["pred",{"2":{"20":4}}],["predicates",{"2":{"6":1}}],["predicate",{"2":{"6":7,"8":1}}],["precision",{"2":{"20":13,"21":2,"22":1}}],["preceeding",{"2":{"3":1}}],["pressing",{"2":{"17":1}}],["preserved",{"2":{"6":1}}],["present",{"2":{"0":4,"6":4,"21":1,"22":1}}],["prefer",{"2":{"20":1,"21":4,"22":5}}],["prefetches",{"2":{"0":1}}],["prefetch",{"2":{"0":5}}],["prefix",{"2":{"6":1,"22":2}}],["www",{"2":{"8":17,"20":5}}],["w",{"2":{"8":10,"21":1,"22":1}}],["walks",{"2":{"22":2}}],["walkorder",{"2":{"22":2}}],["walk",{"2":{"22":2}}],["walker",{"2":{"22":1}}],["want",{"2":{"14":1}}],["was",{"2":{"6":2,"21":5,"22":19}}],["ways",{"2":{"20":1}}],["way",{"2":{"6":1,"20":7,"22":1}}],["would",{"2":{"6":1,"22":2}}],["worrying",{"2":{"22":1}}],["working",{"2":{"19":1}}],["work",{"2":{"3":3,"20":2}}],["words",{"2":{"6":1}}],["word",{"2":{"0":1}}],["wrapper",{"2":{"22":1}}],["wrapped",{"2":{"21":1,"22":2}}],["wrapping",{"2":{"21":2,"22":10}}],["wrap",{"2":{"5":1,"6":8}}],["writing",{"2":{"22":1}}],["written",{"2":{"0":2}}],["writer",{"2":{"22":2}}],["writes",{"2":{"0":2,"20":1}}],["write",{"2":{"0":5,"21":1}}],["were",{"2":{"22":3}}],["well",{"2":{"6":1,"20":1,"22":3}}],["we",{"2":{"3":1,"7":2,"11":1,"19":1,"22":1}}],["win",{"2":{"22":1}}],["window",{"2":{"20":15}}],["windows",{"2":{"20":2}}],["wish",{"2":{"18":1}}],["wise",{"2":{"6":29,"8":57,"20":46}}],["width",{"2":{"6":15}}],["wider",{"2":{"6":3}}],["wide",{"2":{"0":4}}],["will",{"2":{"0":9,"3":3,"6":4,"21":7,"22":32}}],["wither",{"2":{"21":1,"22":1}}],["without",{"2":{"6":1,"11":1,"20":1,"21":1,"22":4}}],["within",{"2":{"0":3,"7":1,"10":3,"20":6,"21":1,"22":7}}],["with",{"2":{"0":12,"3":4,"6":14,"10":4,"11":2,"20":14,"21":54,"22":138}}],["what",{"2":{"22":3}}],["whatever",{"2":{"18":1}}],["whose",{"2":{"6":10}}],["while",{"2":{"3":1,"6":3,"10":1,"20":6,"22":2}}],["which",{"2":{"0":11,"3":1,"6":7,"7":2,"20":3,"21":13,"22":21}}],["whether",{"2":{"0":1,"5":1,"6":1,"20":1,"21":68,"22":102}}],["where",{"2":{"0":2,"6":5,"7":1,"20":3,"21":1,"22":2}}],["when",{"2":{"0":2,"6":14,"10":1,"20":1,"21":2,"22":15}}],["|x|",{"2":{"8":3}}],["||",{"2":{"3":1}}],["|",{"2":{"0":3,"3":1}}],["upstream",{"2":{"22":1}}],["updating",{"2":{"22":3}}],["updates",{"2":{"20":1}}],["updated",{"2":{"20":3}}],["update",{"2":{"20":9,"22":1}}],["up",{"2":{"20":1,"21":2,"22":4}}],["upper",{"2":{"0":14,"20":1,"22":2}}],["url=",{"2":{"14":1}}],["uint64",{"2":{"21":1}}],["uint8s",{"2":{"5":1}}],["ui32>",{"2":{"20":2}}],["uitofp",{"2":{"6":2}}],["usage",{"2":{"22":1}}],["using",{"2":{"6":4,"14":2,"18":1,"20":11,"21":4,"22":12}}],["usees",{"2":{"22":1}}],["user",{"2":{"22":4}}],["users",{"2":{"22":2}}],["userdata",{"2":{"21":1,"22":41}}],["useful",{"2":{"7":1,"22":2}}],["uses",{"2":{"0":4,"6":2,"7":2,"18":1,"20":1,"21":1,"22":17}}],["used",{"2":{"0":5,"6":1,"7":3,"8":1,"10":1,"20":1,"21":5,"22":28}}],["use",{"2":{"0":8,"6":3,"10":1,"14":1,"20":3,"21":5,"22":25}}],["uge",{"2":{"6":1}}],["ugt",{"2":{"6":1}}],["ule",{"2":{"6":1}}],["ult",{"2":{"6":2}}],["u",{"2":{"6":1}}],["util",{"2":{"5":2}}],["unknown",{"2":{"22":3}}],["unnamed",{"2":{"22":3}}],["until",{"2":{"22":2}}],["unlink",{"2":{"22":3}}],["unlike",{"2":{"6":1,"22":2}}],["unless",{"2":{"22":1}}],["unrankedtensor",{"2":{"22":1}}],["unrankedmemref",{"2":{"21":1,"22":2}}],["unranked",{"2":{"21":3,"22":4}}],["unreachable",{"2":{"22":2}}],["unrealized",{"2":{"7":13}}],["unregistered",{"2":{"22":3}}],["unreleased",{"2":{"14":1}}],["unary",{"2":{"20":3}}],["uninitialized",{"2":{"22":1}}],["uniqueness",{"2":{"21":1,"22":1}}],["uniqued",{"2":{"21":1,"22":1}}],["unique",{"2":{"20":1,"22":2}}],["uniformquantizedtype",{"2":{"22":2}}],["uniformquantizedperaxistype",{"2":{"22":2}}],["uniform",{"2":{"20":11,"22":4}}],["unitattribute",{"2":{"21":1}}],["unit",{"2":{"10":1,"20":1,"21":2,"22":4}}],["under",{"2":{"21":5,"22":7}}],["underlying",{"2":{"6":1,"18":1,"21":1,"22":5}}],["undefined",{"2":{"0":1,"6":14}}],["une",{"2":{"6":1}}],["unordered",{"2":{"6":2}}],["un",{"2":{"6":1}}],["unflatten",{"2":{"5":3}}],["unsigned",{"2":{"6":33,"8":2,"21":5,"22":5}}],["unstable",{"2":{"3":1}}],["unspecified",{"2":{"0":1,"8":1,"22":1}}],["lvl",{"2":{"22":2}}],["lvltodim",{"2":{"22":1}}],["lvltypes",{"2":{"22":1}}],["lvlrank",{"2":{"22":1}}],["l2",{"2":{"22":1}}],["l1",{"2":{"22":1}}],["l168",{"2":{"6":1}}],["llmv",{"2":{"22":1}}],["llvmsearchforaddressofsymbol",{"2":{"22":1}}],["llvmparsecommandlineoptions",{"2":{"22":1}}],["llvmpassmanagerref",{"2":{"22":1}}],["llvmloadlibrarypermanently",{"2":{"22":1}}],["llvmaddsymbol",{"2":{"22":1}}],["llvmattributeref",{"2":{"22":1}}],["llvmvalueref",{"2":{"22":1}}],["llvmvaluemetadataentry",{"2":{"22":1}}],["llvmuseref",{"2":{"22":1}}],["llvmtyperef",{"2":{"22":2}}],["llvmtranslationdialectinterface",{"2":{"21":1,"22":2}}],["llvmoperandbundleref",{"2":{"22":1}}],["llvmnamedmdnoderef",{"2":{"22":1}}],["llvmmoduleref",{"2":{"22":1}}],["llvmmoduleproviderref",{"2":{"22":1}}],["llvmmoduleflagentry",{"2":{"22":1}}],["llvmmetadataref",{"2":{"22":1}}],["llvmmemorybufferref",{"2":{"22":1}}],["llvmjiteventlistenerref",{"2":{"22":1}}],["llvmdiagnosticinforef",{"2":{"22":1}}],["llvmdibuilderref",{"2":{"22":1}}],["llvmdbgrecordref",{"2":{"22":1}}],["llvmcontext",{"2":{"22":1}}],["llvmcontextref",{"2":{"22":1}}],["llvmcomdatref",{"2":{"22":1}}],["llvmcsupporttypes",{"2":{"22":1}}],["llvmbuilderref",{"2":{"22":1}}],["llvmbool",{"2":{"22":1}}],["llvmbinaryref",{"2":{"22":1}}],["llvmbasicblockref",{"2":{"22":1}}],["llvm",{"2":{"6":4,"21":3,"22":82}}],["lsb",{"2":{"22":1}}],["l4215",{"2":{"20":1}}],["l4195",{"2":{"20":1}}],["lgamma",{"2":{"8":3}}],["lhs",{"2":{"6":5,"8":17,"20":44,"21":13,"22":11}}],["latter",{"2":{"22":1}}],["latest",{"2":{"14":1}}],["layout",{"2":{"10":1,"21":4,"22":5}}],["largeelementlimit",{"2":{"22":2}}],["largest",{"2":{"8":2}}],["largeresourcelimit",{"2":{"22":2}}],["larger",{"2":{"6":3}}],["large",{"2":{"6":1,"22":4}}],["last",{"2":{"0":1,"8":1,"21":1,"22":1}}],["lexically",{"2":{"22":1}}],["leaf",{"2":{"21":1,"22":1}}],["leafref",{"2":{"21":1}}],["least",{"2":{"21":1,"22":3}}],["leading",{"2":{"6":5,"20":5}}],["length",{"2":{"20":1,"21":3,"22":8}}],["leveltype",{"2":{"22":1}}],["level",{"0":{"21":1},"2":{"7":1,"11":1,"21":6,"22":16}}],["less",{"2":{"6":8,"21":2,"22":2}}],["left",{"2":{"0":2,"6":1,"8":2,"20":6,"21":2,"22":1}}],["lt",{"2":{"0":2,"6":1,"8":6,"20":24,"22":2}}],["look",{"2":{"22":1}}],["looks",{"2":{"21":1,"22":1}}],["looked",{"2":{"21":1,"22":2}}],["lookup",{"2":{"21":3,"22":2}}],["loops",{"2":{"0":3}}],["loop",{"2":{"0":19,"3":1,"20":1}}],["loc",{"2":{"22":12}}],["locs",{"2":{"21":1,"22":2}}],["localized",{"2":{"22":1}}],["locality",{"2":{"0":6}}],["local",{"2":{"0":1,"22":1}}],["locations",{"2":{"22":6}}],["location=location",{"2":{"21":8}}],["location",{"2":{"0":1,"21":2,"22":32}}],["logistic",{"2":{"20":5}}],["logicalresult",{"2":{"21":2}}],["logical",{"2":{"6":1,"8":5,"20":5,"21":5,"22":5}}],["logarithm",{"2":{"20":2}}],["log",{"2":{"8":5,"20":8}}],["low",{"2":{"6":7,"20":4}}],["lowered",{"2":{"7":1}}],["lowering",{"2":{"0":1,"6":1}}],["lower",{"2":{"0":14,"6":1,"8":1,"20":3}}],["longer",{"2":{"22":2}}],["long",{"2":{"6":1,"21":6,"22":7}}],["loading",{"2":{"22":1}}],["loadlibrarypermanently",{"2":{"22":1}}],["loaded",{"2":{"21":2,"22":5}}],["loads",{"2":{"0":2,"22":5}}],["load`",{"2":{"0":1}}],["load",{"2":{"0":21,"22":1}}],["lifetime",{"2":{"22":1}}],["living",{"2":{"22":1}}],["lives",{"2":{"21":7,"22":7}}],["live",{"2":{"21":6,"22":7}}],["linalg",{"2":{"22":2}}],["linkage",{"2":{"22":2}}],["linkagename",{"2":{"22":1}}],["line",{"2":{"22":14}}],["linearly",{"2":{"21":2,"22":2}}],["linearized",{"2":{"5":1}}],["linear",{"2":{"0":4,"5":2,"20":1,"22":1}}],["limit",{"2":{"20":3,"22":2}}],["little",{"2":{"6":1}}],["literals",{"2":{"6":1,"21":1}}],["literal",{"2":{"0":3,"22":4}}],["library",{"2":{"22":2}}],["libraries",{"2":{"21":1,"22":3}}],["lib",{"2":{"6":1}}],["like",{"2":{"3":2,"6":3,"8":2,"10":1,"18":2,"20":1,"22":1}}],["lists",{"2":{"22":1}}],["listener",{"2":{"22":6}}],["list",{"2":{"0":9,"5":6,"21":11,"22":19}}],["`result`",{"2":{"20":1}}],["`operand`",{"2":{"20":1}}],["`sqrt`",{"2":{"20":1}}],["`strides`",{"2":{"20":2}}],["`start",{"2":{"20":2}}],["`step`",{"2":{"0":1}}],["`4",{"2":{"20":1}}],["`limit",{"2":{"20":2}}],["`1",{"2":{"20":1}}],["```",{"2":{"20":1}}],["```mlir",{"2":{"20":2}}],["`else`",{"2":{"0":1}}],["`min`",{"2":{"0":1}}],["`max`",{"2":{"0":1}}],["`",{"2":{"0":26,"22":1}}],["`to`",{"2":{"0":1}}],["`=`",{"2":{"0":3}}],["`affine",{"2":{"0":5}}],["0>",{"2":{"20":5}}],["0b01100000",{"2":{"6":1}}],["0b0101",{"2":{"6":1}}],["0b010",{"2":{"6":2}}],["0b00101000",{"2":{"6":1}}],["0b00001100",{"2":{"6":1}}],["0b000010",{"2":{"6":2}}],["0b00000101",{"2":{"6":1}}],["0b00010100",{"2":{"6":1}}],["0b000101",{"2":{"6":1}}],["0b11110100",{"2":{"6":1}}],["0b111101",{"2":{"6":1}}],["0b10101",{"2":{"6":1}}],["0b10100000",{"2":{"6":2}}],["0b101",{"2":{"6":3}}],["0f0",{"2":{"3":1}}],["0",{"2":{"0":56,"3":10,"6":26,"7":2,"8":1,"10":4,"11":5,"18":33,"20":88,"21":7,"22":8}}],["headers",{"2":{"22":1}}],["here",{"2":{"21":1,"22":2}}],["help",{"2":{"3":1}}],["html",{"2":{"20":1}}],["https",{"2":{"6":1,"8":17,"14":1,"20":123}}],["href=",{"2":{"20":1}}],["highandinterior",{"2":{"20":1}}],["higher",{"0":{"21":1},"2":{"8":1}}],["high",{"2":{"6":6,"11":1,"20":3}}],["hint",{"2":{"0":2}}],["h",{"2":{"6":13}}],["hlo",{"0":{"4":1},"2":{"4":2,"11":3}}],["honored",{"2":{"22":1}}],["host",{"2":{"20":2}}],["however",{"2":{"3":1}}],["how",{"0":{"14":1},"2":{"0":1,"6":1}}],["hold",{"2":{"0":3}}],["holds",{"2":{"0":1}}],["hyperbolic",{"2":{"20":1}}],["hyper",{"2":{"0":1}}],["humans",{"2":{"6":2}}],["human",{"2":{"0":1}}],["happen",{"2":{"22":1}}],["hand",{"2":{"21":4,"22":2}}],["handlers",{"2":{"22":2}}],["handler",{"2":{"22":15}}],["handles",{"2":{"21":2,"22":3}}],["handle",{"2":{"20":21,"22":4}}],["halves",{"2":{"6":2}}],["half",{"2":{"0":2,"6":2}}],["having",{"2":{"6":1,"11":1,"22":1}}],["haven",{"2":{"11":1}}],["have",{"2":{"0":3,"3":1,"5":1,"6":4,"7":5,"21":5,"22":20}}],["hasn",{"2":{"22":1}}],["hasstaticshape",{"2":{"21":1}}],["hasrank",{"2":{"21":1}}],["hash",{"2":{"21":2,"22":1}}],["has",{"2":{"0":9,"6":12,"10":1,"21":8,"22":17}}],["cconv",{"2":{"22":2}}],["ctx2",{"2":{"22":1}}],["ctx1",{"2":{"22":1}}],["ctx",{"2":{"21":1,"22":74}}],["clones",{"2":{"22":1}}],["clonepass",{"2":{"22":1}}],["cloned",{"2":{"22":1}}],["clone",{"2":{"22":2}}],["closest",{"2":{"21":1,"22":1}}],["cld",{"2":{"21":2}}],["client",{"2":{"21":1,"22":2}}],["clamps",{"2":{"20":1}}],["clamp",{"2":{"20":4}}],["class=",{"2":{"20":3}}],["class",{"2":{"6":1,"21":1,"22":6}}],["clauses",{"2":{"0":1}}],["clause",{"2":{"0":1}}],["crdwidth",{"2":{"22":1}}],["creation",{"2":{"22":1}}],["creating",{"2":{"22":4}}],["creates",{"2":{"21":68,"22":135}}],["created",{"2":{"10":1,"18":1,"21":4,"22":14}}],["create",{"2":{"0":2,"18":1,"20":3,"21":2,"22":7}}],["cross",{"2":{"20":3}}],["cbrt",{"2":{"20":4}}],["cpu",{"2":{"15":1}}],["cpusnvidia",{"2":{"15":1}}],["cpp",{"2":{"6":1}}],["child",{"2":{"22":2}}],["childloc",{"2":{"22":3}}],["chunks",{"2":{"22":20}}],["chance",{"2":{"22":1}}],["changing",{"2":{"20":1}}],["change",{"2":{"5":1,"6":1,"20":1}}],["changes",{"2":{"3":1}}],["channel",{"2":{"20":19}}],["checking",{"2":{"22":1}}],["checked",{"2":{"22":1}}],["checks",{"2":{"21":75,"22":113}}],["check=true",{"2":{"21":7}}],["check=false",{"2":{"21":6}}],["check",{"2":{"19":1,"20":1,"21":3,"22":3}}],["chlo",{"0":{"8":1},"2":{"8":47}}],["cholesky",{"2":{"20":5}}],["chosen",{"2":{"6":1}}],["choice",{"2":{"6":1}}],["chooses",{"2":{"6":1}}],["c++",{"2":{"6":1,"8":2,"22":5}}],["cmpi",{"2":{"6":8}}],["cmpf",{"2":{"6":6}}],["ceildic",{"2":{"21":1,"22":1}}],["ceildiv",{"2":{"21":2,"22":2}}],["ceildivui",{"2":{"6":3}}],["ceildivsi",{"2":{"6":3}}],["ceil",{"2":{"20":5}}],["certain",{"2":{"3":3}}],["c",{"0":{"22":1},"2":{"6":26,"22":3}}],["circuiting",{"2":{"3":2}}],["c2",{"2":{"0":1}}],["c224",{"2":{"0":2}}],["c1",{"2":{"0":1}}],["c16",{"2":{"0":1}}],["coordinate",{"2":{"22":1}}],["col",{"2":{"22":1}}],["column",{"2":{"22":2}}],["collapsed",{"2":{"20":2}}],["collective",{"2":{"20":8}}],["could",{"2":{"21":1,"22":1}}],["counterpart",{"2":{"0":2,"22":1}}],["count",{"2":{"0":2,"10":1,"20":13}}],["copy",{"2":{"21":2,"22":3}}],["copies",{"2":{"6":2}}],["coefficient",{"2":{"20":1}}],["cosine",{"2":{"20":5}}],["cos",{"2":{"8":1}}],["cosh",{"2":{"8":4}}],["comdat",{"2":{"22":3}}],["command",{"2":{"14":2,"22":4}}],["com",{"2":{"6":1,"14":1,"20":117}}],["compilations",{"2":{"22":1}}],["compileunit",{"2":{"22":1}}],["compiler",{"2":{"2":2,"4":1,"5":3,"10":1,"20":1,"22":1}}],["compile",{"0":{"2":1},"2":{"2":3,"3":1,"18":3,"22":1}}],["compatible",{"2":{"22":3}}],["compatibility",{"2":{"22":1}}],["comparator",{"2":{"20":1}}],["compare",{"2":{"8":4,"20":7,"21":1,"22":2}}],["compares",{"2":{"6":1,"8":1}}],["comparisons",{"2":{"6":2,"21":2,"22":2}}],["comparison",{"2":{"6":14,"8":2,"20":2,"21":3,"22":4}}],["components",{"2":{"22":6}}],["component",{"2":{"20":2}}],["composes",{"2":{"21":1,"22":1}}],["compose",{"2":{"21":1}}],["composed",{"2":{"20":1}}],["composite",{"2":{"20":8}}],["computed",{"2":{"20":2,"22":1}}],["computes",{"2":{"0":1,"6":1,"8":3,"20":5}}],["computations",{"2":{"20":3}}],["computation",{"2":{"20":4}}],["completely",{"2":{"22":2}}],["complex",{"2":{"8":7,"20":6,"21":6,"22":5}}],["complement",{"2":{"6":6,"8":1}}],["compliance",{"2":{"6":1}}],["codegen",{"2":{"5":3}}],["code",{"2":{"4":2,"5":4,"6":1,"11":1,"21":2,"22":5}}],["correspond",{"2":{"22":1}}],["corresponds",{"2":{"6":1,"21":1,"22":1}}],["corresponding",{"2":{"0":2,"6":4,"20":1,"21":1,"22":7}}],["correct",{"2":{"3":1,"22":1}}],["core",{"0":{"1":1},"1":{"2":1,"3":1,"4":1},"2":{"3":2,"18":1,"21":16}}],["conflict",{"2":{"22":1}}],["conflicts",{"2":{"22":1}}],["conformant",{"2":{"22":1}}],["configure",{"2":{"22":2}}],["configmacros",{"2":{"22":1}}],["config",{"2":{"20":6,"22":4}}],["connection",{"2":{"10":1}}],["conj",{"2":{"8":4}}],["conjunction",{"2":{"0":2}}],["concatenate",{"2":{"20":4}}],["concatenates",{"2":{"20":3}}],["concat",{"2":{"20":2}}],["concreternumber",{"2":{"18":1}}],["concreterarray",{"2":{"3":2,"11":1,"18":12}}],["conceptually",{"2":{"0":1}}],["consecutive",{"2":{"21":1,"22":13}}],["consumed",{"2":{"8":1}}],["consisting",{"2":{"21":3,"22":3}}],["consists",{"2":{"21":1,"22":1}}],["consitent",{"2":{"6":1}}],["considered",{"2":{"21":1,"22":3}}],["considerations",{"2":{"3":1,"22":1}}],["consider",{"2":{"0":2}}],["const",{"2":{"22":1}}],["constraint",{"2":{"21":4,"22":3}}],["constraints",{"2":{"0":2,"21":6,"22":6}}],["construction",{"2":{"22":3}}],["constructing",{"2":{"22":1}}],["constructor",{"2":{"22":1}}],["construct",{"2":{"11":1,"22":2}}],["constructs",{"2":{"8":1,"22":5}}],["constructed",{"2":{"8":1,"22":2}}],["constantexpr",{"2":{"21":1}}],["constantaffinemap",{"2":{"21":1}}],["constants",{"2":{"6":1,"21":2,"22":2}}],["constantfold",{"2":{"6":1}}],["constant",{"2":{"0":5,"6":22,"8":6,"10":7,"20":14,"21":11,"22":10}}],["content",{"2":{"22":1}}],["contents",{"2":{"22":3}}],["contexts",{"2":{"22":3}}],["context=context",{"2":{"21":43}}],["context",{"2":{"21":102,"22":179}}],["continuous",{"2":{"21":1,"22":1}}],["contiguous",{"2":{"0":2,"21":1,"22":3}}],["contracting",{"2":{"20":1}}],["contraction",{"2":{"6":3}}],["controlling",{"2":{"22":2}}],["controls",{"2":{"6":3}}],["control",{"2":{"3":1,"22":1}}],["contained",{"2":{"22":5}}],["container",{"2":{"7":1,"22":3}}],["contains",{"2":{"0":1,"7":1,"10":1,"21":8,"22":9}}],["contain",{"2":{"0":4,"7":1,"22":1}}],["containing",{"2":{"0":1,"6":3,"7":1,"21":5,"22":8}}],["convention",{"2":{"21":1,"22":1}}],["conversions",{"2":{"7":1}}],["conversion",{"2":{"7":14,"8":1,"20":5}}],["convert",{"2":{"20":8}}],["converting",{"2":{"18":1}}],["converted",{"2":{"6":1,"7":2}}],["converts",{"2":{"3":1}}],["conv",{"2":{"0":1,"20":4}}],["convolution",{"2":{"0":1,"20":5}}],["conditions",{"2":{"3":1,"22":1}}],["condition",{"2":{"0":1,"6":6}}],["cond",{"2":{"0":2,"6":3,"20":4}}],["cubic",{"2":{"20":1}}],["currently",{"2":{"3":1,"11":1,"19":1}}],["current",{"2":{"0":3,"20":2,"21":2,"22":12}}],["customization",{"2":{"22":2}}],["custom",{"2":{"0":3,"6":5,"20":7,"22":1}}],["cause",{"2":{"22":3}}],["caching",{"2":{"22":1}}],["cache",{"2":{"0":5}}],["capi",{"2":{"22":1}}],["capture",{"2":{"7":1,"10":1}}],["capturing",{"2":{"0":1}}],["castui",{"2":{"6":2}}],["casting",{"2":{"6":4}}],["cast",{"2":{"6":8,"7":7,"21":1,"22":5}}],["casts",{"2":{"6":9,"22":5}}],["cased",{"2":{"6":1}}],["cases",{"2":{"3":1,"6":1,"7":1,"20":1}}],["case",{"2":{"0":1,"6":1,"20":4,"21":2,"22":3}}],["caveats",{"2":{"3":1}}],["carried",{"2":{"0":2}}],["cancelopmodification",{"2":{"22":1}}],["cancels",{"2":{"22":1}}],["candidate",{"2":{"22":5}}],["canonical",{"2":{"21":1,"22":3}}],["canonically",{"2":{"21":1,"22":1}}],["cannot",{"2":{"6":3,"7":1,"10":1,"21":2,"22":4}}],["can",{"2":{"0":6,"6":1,"7":2,"8":2,"10":1,"14":2,"17":2,"18":3,"20":1,"21":3,"22":21}}],["calibrated",{"2":{"22":2}}],["calibratedquantizedtype",{"2":{"22":2}}],["callbacks",{"2":{"22":6}}],["callback",{"2":{"21":2,"22":53}}],["caller",{"2":{"21":17,"22":41}}],["called",{"2":{"20":2,"22":22}}],["callee",{"2":{"10":2,"22":2}}],["calls",{"2":{"11":1,"21":1,"22":4}}],["callingconvention",{"2":{"22":1}}],["calling",{"2":{"0":1,"22":1}}],["call",{"2":{"0":5,"5":4,"10":13,"11":4,"20":6,"21":1,"22":18}}],["calculates",{"2":{"0":1}}],["30",{"2":{"20":2}}],["3`",{"2":{"20":1}}],["3x2x1xi32>",{"2":{"20":1}}],["3x2xi32>",{"2":{"20":1}}],["3x2xi64>",{"2":{"20":3}}],["3x8xi64>",{"2":{"20":2}}],["3x4x2xi64>",{"2":{"20":1}}],["3xcomplex",{"2":{"20":1}}],["3xi64>",{"2":{"20":8}}],["3xi32>",{"2":{"20":3}}],["3xf64>",{"2":{"20":1}}],["3xf32>",{"2":{"11":5}}],["3x3xi32>",{"2":{"20":1}}],["3x3x1x1xi64>",{"2":{"20":2}}],["3x3xf64>",{"2":{"20":1}}],["3x3xf32>",{"2":{"0":2,"20":3}}],["3x3",{"2":{"0":1}}],["3>",{"2":{"0":1,"20":2}}],["32",{"2":{"0":4}}],["39",{"2":{"0":18,"6":10,"8":3,"11":1,"18":1,"20":8,"21":37,"22":88}}],["3",{"2":{"0":11,"6":21,"11":2,"18":1,"20":19}}],["bfloat16",{"2":{"22":1}}],["bfloat16type",{"2":{"21":2}}],["bf16",{"2":{"21":2,"22":2}}],["bc",{"2":{"20":1}}],["breaking",{"2":{"20":2}}],["broadcast",{"2":{"8":42,"20":19}}],["branch1",{"2":{"20":2}}],["branch0",{"2":{"20":2}}],["branch",{"2":{"3":1,"20":5}}],["branches",{"2":{"3":2,"20":1}}],["blob",{"2":{"6":1,"20":107}}],["blockargument",{"2":{"22":1}}],["blockiterator",{"2":{"21":1}}],["blocks",{"2":{"0":1,"21":3,"22":4}}],["block",{"2":{"0":7,"7":1,"10":2,"20":1,"21":76,"22":109}}],["binary",{"2":{"6":1,"8":15,"21":3,"22":6}}],["binding",{"2":{"0":1}}],["bindings",{"2":{"0":3}}],["binds",{"2":{"0":1}}],["big",{"2":{"6":1}}],["bits",{"2":{"6":7,"20":9,"22":1}}],["bitcast",{"2":{"6":6,"20":5,"22":1}}],["bitwise",{"2":{"6":9}}],["bitwidth",{"2":{"6":6,"21":5,"22":13}}],["bitvector",{"2":{"6":3}}],["bitvectors",{"2":{"6":3}}],["bit",{"2":{"6":27,"20":4,"21":3,"22":7}}],["badge",{"2":{"20":1}}],["batches",{"2":{"20":1}}],["batching",{"2":{"20":5}}],["batchnormtrainingop",{"2":{"20":1}}],["batch",{"2":{"20":24}}],["banana",{"2":{"10":1}}],["band",{"2":{"0":3}}],["barrier",{"2":{"20":5}}],["bar",{"2":{"7":3,"20":1}}],["backpropagating",{"2":{"20":1}}],["backend",{"0":{"15":1},"2":{"15":3,"20":2}}],["backends",{"2":{"8":1}}],["back",{"2":{"5":1,"19":1,"20":1,"22":1}}],["basicblock",{"2":{"22":1}}],["basic",{"2":{"22":2}}],["basis",{"2":{"0":1}}],["basetype",{"2":{"22":2}}],["based",{"2":{"6":2,"8":1,"20":2,"22":12}}],["base",{"2":{"0":2,"3":1,"20":1,"21":38,"22":1}}],["builtin",{"0":{"7":1},"2":{"7":2,"22":2}}],["builder",{"2":{"22":5}}],["builders",{"2":{"0":1}}],["build",{"2":{"0":1,"22":1}}],["buffers",{"2":{"5":3}}],["buffer",{"2":{"0":2,"18":1,"22":5}}],["but",{"2":{"0":3,"3":1,"6":2,"7":2,"20":5,"22":18}}],["b",{"2":{"0":2,"6":27,"18":2,"20":6,"21":2}}],["bytecode",{"2":{"22":3}}],["bytes",{"2":{"22":1}}],["byte",{"2":{"21":2,"22":6}}],["by",{"2":{"0":11,"6":28,"8":2,"10":1,"11":1,"17":1,"18":2,"20":10,"21":55,"22":122}}],["bool",{"2":{"21":5,"22":3}}],["boolean",{"2":{"6":1,"21":2,"22":4}}],["both",{"2":{"6":4,"20":1,"21":1,"22":3}}],["body",{"2":{"0":4,"10":1,"20":3,"21":2,"22":7}}],["bounds",{"2":{"0":9}}],["bound",{"2":{"0":18}}],["bessel",{"2":{"8":3}}],["being",{"2":{"6":3,"21":2,"22":7}}],["behavior",{"2":{"6":15,"20":1,"22":3}}],["because",{"2":{"6":4,"10":1}}],["been",{"2":{"5":1,"7":1,"22":2}}],["between",{"2":{"3":1,"6":3,"20":6,"22":1}}],["before",{"2":{"3":2,"20":2,"21":11,"22":18}}],["below",{"2":{"0":1,"18":1,"21":1,"22":2}}],["belong",{"2":{"0":1,"21":6,"22":9}}],["belongs",{"2":{"0":1,"21":1,"22":4}}],["be",{"2":{"0":23,"3":2,"5":1,"6":29,"7":3,"8":1,"10":2,"18":1,"20":6,"21":21,"22":95}}],["nnewvalues",{"2":{"22":1}}],["nnestedrefs",{"2":{"21":1}}],["nvalues",{"2":{"22":2}}],["nlocations",{"2":{"22":1}}],["nfieldtypes",{"2":{"22":4}}],["nto",{"2":{"22":1}}],["ntypes",{"2":{"22":1}}],["ntuple",{"2":{"11":1}}],["ndependentdialects",{"2":{"22":1}}],["ndims",{"2":{"21":10,"22":2}}],["nretainednodes",{"2":{"22":1}}],["nregions",{"2":{"21":1,"22":2}}],["nresults",{"2":{"5":1,"21":12}}],["ninputs",{"2":{"21":3}}],["ninequalities",{"2":{"21":1}}],["nice",{"2":{"10":1}}],["niceties",{"2":{"3":1}}],["nconstraints",{"2":{"21":1}}],["nsuccessors",{"2":{"21":1}}],["nsymbols",{"2":{"21":6}}],["nsw",{"2":{"6":12}}],["n=0",{"2":{"8":2}}],["naffineexprs",{"2":{"22":1}}],["nattrs",{"2":{"21":1}}],["native",{"2":{"21":1,"22":3}}],["nargvalues",{"2":{"22":2}}],["nargtypes",{"2":{"22":1}}],["nargumenttypes",{"2":{"22":1}}],["narguments",{"2":{"22":1}}],["nargs",{"2":{"21":1,"22":1}}],["narrower",{"2":{"6":3}}],["nannotations",{"2":{"22":1}}],["nan",{"2":{"6":6,"8":2,"20":1}}],["nametablekind",{"2":{"22":1}}],["namedmdnode",{"2":{"22":1}}],["namedattribute",{"2":{"21":1}}],["named",{"2":{"10":1,"21":1,"22":6}}],["namespace",{"2":{"21":8,"22":9}}],["names",{"2":{"5":4,"10":1,"22":2}}],["name",{"2":{"5":2,"6":1,"7":1,"10":1,"11":2,"20":1,"21":21,"22":78}}],["n+1",{"2":{"6":1}}],["nelements",{"2":{"22":2}}],["necessarily",{"2":{"22":3}}],["necessary",{"2":{"6":1,"22":3}}],["nequalities",{"2":{"21":1}}],["neither",{"2":{"20":1,"21":1,"22":1}}],["never",{"2":{"8":1}}],["negate",{"2":{"20":4}}],["negation",{"2":{"6":4,"20":1}}],["negative",{"2":{"6":1,"22":1}}],["negatives",{"2":{"6":1}}],["neg",{"2":{"8":3}}],["negf",{"2":{"6":6}}],["nearest",{"2":{"6":2,"20":10}}],["ne",{"2":{"6":1}}],["needed",{"2":{"22":1}}],["need",{"2":{"3":1,"7":1,"21":3,"22":4}}],["needs",{"2":{"3":1,"22":1}}],["newsymbol",{"2":{"22":2}}],["newop",{"2":{"22":1}}],["newvalues",{"2":{"22":1}}],["newvalue",{"2":{"22":1}}],["newly",{"2":{"21":2,"22":3}}],["new",{"2":{"0":2,"3":1,"18":1,"20":4,"21":16,"22":25}}],["nextafter",{"2":{"8":2}}],["next",{"2":{"0":4,"8":6,"21":4,"22":4}}],["nested",{"2":{"3":1,"21":7,"22":11}}],["nest",{"2":{"0":1,"21":3,"22":3}}],["nullptr",{"2":{"21":1,"22":9}}],["null",{"2":{"21":13,"22":63}}],["nullary",{"2":{"0":1}}],["numreferences",{"2":{"22":1}}],["numresults",{"2":{"22":9}}],["numresultsymbols",{"2":{"21":2,"22":2}}],["numresultsyms",{"2":{"21":1,"22":1}}],["numresultdims",{"2":{"21":3,"22":3}}],["numconstraint",{"2":{"22":1}}],["numconstraints",{"2":{"22":1}}],["numsymbols",{"2":{"22":2}}],["numinputs",{"2":{"22":1}}],["numelements",{"2":{"22":7}}],["numdims",{"2":{"22":4}}],["numpaths",{"2":{"21":1,"22":2}}],["num",{"2":{"20":1,"21":4}}],["numbers",{"2":{"20":6}}],["number",{"2":{"0":6,"5":1,"8":2,"10":2,"20":10,"21":33,"22":48}}],["nuw>",{"2":{"6":4}}],["nuw",{"2":{"6":8}}],["noperations",{"2":{"22":1}}],["noperands",{"2":{"21":1,"22":3}}],["nor",{"2":{"20":1}}],["normalized",{"2":{"22":1}}],["normalizes",{"2":{"20":2}}],["normal",{"2":{"20":1}}],["norm",{"2":{"20":12}}],["none",{"2":{"21":3,"22":4}}],["nonexpanding",{"2":{"20":1}}],["non",{"2":{"20":1,"21":6,"22":11}}],["now",{"2":{"18":1,"22":1}}],["node",{"2":{"5":2,"22":4}}],["no",{"2":{"0":8,"3":2,"6":15,"7":1,"10":2,"20":1,"21":5,"22":18}}],["notify",{"2":{"22":7}}],["nothing",{"2":{"3":4,"21":7}}],["not",{"2":{"0":4,"3":6,"5":2,"6":5,"7":3,"10":1,"20":16,"21":18,"22":56}}],["notes",{"2":{"22":2}}],["note",{"2":{"0":2,"3":1,"5":1,"6":2,"21":1,"22":26}}],["n",{"2":{"0":21,"6":20,"7":4,"8":2,"11":1,"22":2}}],["illegal",{"2":{"21":7,"22":7}}],["ieee",{"2":{"20":1}}],["ieee754",{"2":{"6":1}}],["iota",{"2":{"20":10}}],["i4",{"2":{"6":1}}],["i5",{"2":{"6":3}}],["i8",{"2":{"6":18,"20":2}}],["ignored",{"2":{"6":2}}],["i6",{"2":{"6":4}}],["i64>>>",{"2":{"20":2}}],["i64>",{"2":{"6":2,"20":42}}],["i64",{"2":{"6":19,"10":7,"20":38}}],["i3",{"2":{"6":9}}],["i32>",{"2":{"6":3,"20":6}}],["i32",{"2":{"0":2,"6":12,"10":4,"20":6}}],["irdl",{"2":{"22":1}}],["irrewriter",{"2":{"22":4}}],["irbuilder",{"2":{"22":1}}],["ir",{"2":{"6":2,"20":2,"21":259,"22":19}}],["immutable",{"2":{"22":1}}],["immediately",{"2":{"2":1,"21":3,"22":5}}],["imaginary",{"2":{"8":1,"20":2}}],["imagine",{"2":{"7":1}}],["imag",{"2":{"8":9,"20":4}}],["imprecise",{"2":{"20":1}}],["improve",{"2":{"6":1}}],["implicit",{"2":{"22":1}}],["implicitval",{"2":{"22":1}}],["implicitly",{"2":{"0":3,"7":1,"10":1,"20":1,"21":2,"22":2}}],["impl",{"2":{"8":4,"22":1}}],["implement",{"2":{"21":1,"22":2}}],["implementation",{"2":{"20":1,"22":2}}],["implementing",{"2":{"20":2}}],["implemented",{"2":{"6":1,"20":1}}],["implements",{"2":{"6":1,"22":2}}],["importantly",{"2":{"3":1}}],["imperfectly",{"2":{"0":1}}],["ii",{"2":{"0":3}}],["i1>",{"2":{"20":4}}],["i1e",{"2":{"8":3}}],["i16>",{"2":{"6":1}}],["i16",{"2":{"6":3}}],["i1",{"2":{"0":10,"6":8,"20":2}}],["i0",{"2":{"0":11}}],["ivs",{"2":{"0":4}}],["if`",{"2":{"0":1}}],["if",{"2":{"0":25,"3":13,"6":36,"7":1,"8":15,"14":1,"20":5,"21":50,"22":121}}],["isn",{"2":{"22":1}}],["isnone",{"2":{"21":1}}],["isvararg",{"2":{"22":1}}],["isvector",{"2":{"21":1}}],["isrecself",{"2":{"22":2}}],["isrankedtensor",{"2":{"21":1}}],["isunsigned",{"2":{"21":1}}],["isunrankedtensor",{"2":{"21":1}}],["isunrankedmemref",{"2":{"21":1}}],["isunit",{"2":{"21":1}}],["istype",{"2":{"21":1}}],["istuple",{"2":{"21":1}}],["istensor",{"2":{"21":1}}],["issymbolref",{"2":{"21":1}}],["issymbolexpr",{"2":{"21":1}}],["issuccess",{"2":{"21":1}}],["issues",{"2":{"20":9}}],["isstring",{"2":{"21":1}}],["issplat",{"2":{"21":1}}],["issparseelements",{"2":{"21":1}}],["issingleconstant",{"2":{"21":1}}],["issignless",{"2":{"21":1}}],["issigned",{"2":{"21":1,"22":2}}],["isshaped",{"2":{"21":1}}],["ispacked",{"2":{"22":4}}],["isprojperm",{"2":{"21":1}}],["isperm",{"2":{"21":1}}],["isoptimized",{"2":{"22":1}}],["isopaque",{"2":{"21":2}}],["isolatedfromabove",{"2":{"7":1,"10":1}}],["ismultipleof",{"2":{"21":1}}],["ismul",{"2":{"21":1}}],["ismod",{"2":{"21":1}}],["isminoridentity",{"2":{"21":1}}],["ismemref",{"2":{"21":1}}],["isintegerset",{"2":{"21":1}}],["isinteger",{"2":{"21":2}}],["isindex",{"2":{"21":1}}],["isidentity",{"2":{"21":1}}],["isfunctionofdimexpr",{"2":{"21":1}}],["isfunction",{"2":{"21":1}}],["isfloordiv",{"2":{"21":1}}],["isfloat",{"2":{"21":1}}],["isflatsymbolref",{"2":{"21":1}}],["isfailure",{"2":{"21":1}}],["isf8e5m2",{"2":{"21":1}}],["isf8e4m3fn",{"2":{"21":1}}],["isf64",{"2":{"21":1}}],["isf32",{"2":{"21":1}}],["isf16",{"2":{"21":1}}],["iselements",{"2":{"21":1}}],["isempty",{"2":{"21":2}}],["isdecl",{"2":{"22":1}}],["isdenseelements",{"2":{"21":1}}],["isdyndim",{"2":{"21":1}}],["isdynstrideoroffset",{"2":{"21":2}}],["isdynsize",{"2":{"21":2}}],["isdimexpr",{"2":{"21":1}}],["isdict",{"2":{"21":1}}],["isconstrainteq",{"2":{"21":1}}],["isconstantexpr",{"2":{"21":1}}],["iscomplex",{"2":{"21":1}}],["isceildiv",{"2":{"21":1}}],["isbool",{"2":{"21":1}}],["isbinary",{"2":{"21":1}}],["isbf16",{"2":{"21":1}}],["isarray",{"2":{"21":1}}],["isaffinemap",{"2":{"21":1}}],["isadd",{"2":{"21":1}}],["is",{"2":{"0":31,"3":6,"5":3,"6":122,"7":4,"8":14,"10":3,"14":1,"17":1,"18":1,"20":44,"21":149,"22":321}}],["iterate",{"2":{"22":1}}],["iterates",{"2":{"21":3}}],["iterations",{"2":{"0":1,"3":1}}],["iteration",{"2":{"0":9}}],["iterating",{"2":{"0":1,"3":1}}],["iter",{"2":{"0":8}}],["itself",{"2":{"0":1,"10":1,"21":1,"22":1}}],["its",{"2":{"0":7,"5":2,"6":7,"7":1,"8":1,"10":1,"14":1,"18":1,"20":8,"21":14,"22":33}}],["it",{"2":{"0":7,"2":1,"3":1,"6":11,"7":1,"8":2,"17":1,"20":10,"21":15,"22":61}}],["idxs",{"2":{"22":2}}],["idx",{"2":{"22":1}}],["ident",{"2":{"21":3,"22":2}}],["identify",{"2":{"22":1}}],["identifies",{"2":{"22":1}}],["identifier",{"2":{"21":5,"22":8}}],["identifiers",{"2":{"0":4,"21":1,"22":1}}],["identified",{"2":{"11":1,"21":5,"22":16}}],["identical",{"2":{"6":1,"20":6,"22":1}}],["identityaffinemap",{"2":{"21":1}}],["identity",{"2":{"0":1,"20":1,"21":4,"22":4}}],["id=",{"2":{"20":1}}],["ids",{"2":{"0":2,"20":1,"21":1,"22":2}}],["id",{"2":{"0":5,"20":13,"21":4,"22":12}}],["i+s0",{"2":{"0":1}}],["i",{"2":{"0":28,"3":2,"6":7,"7":1,"8":1,"10":1,"20":7,"21":31,"22":9}}],["inherent",{"2":{"22":4}}],["inequalities",{"2":{"21":3,"22":3}}],["including",{"2":{"22":2}}],["includepath",{"2":{"22":1}}],["included",{"2":{"20":9}}],["include",{"2":{"0":2}}],["includes",{"2":{"0":2}}],["increasing",{"2":{"20":1}}],["inlining",{"2":{"20":1}}],["inline",{"2":{"0":1,"10":1,"22":2}}],["invoke",{"2":{"22":1}}],["invoked",{"2":{"22":4}}],["involves",{"2":{"21":1,"22":1}}],["invalidate",{"2":{"22":1}}],["invalid",{"2":{"21":2,"22":1}}],["inverse",{"2":{"20":1}}],["inv",{"2":{"8":2}}],["info",{"2":{"20":1,"22":1}}],["informally",{"2":{"20":9}}],["information",{"2":{"6":1,"20":1,"22":3}}],["infertypeopinterface",{"2":{"22":1}}],["inferred",{"2":{"22":2}}],["infershapedtypeopinterface",{"2":{"22":1}}],["infers",{"2":{"22":2}}],["inference",{"2":{"20":4,"22":3}}],["infeed",{"2":{"20":5}}],["infty",{"2":{"8":2}}],["infinity",{"2":{"6":3}}],["inf64",{"2":{"3":1}}],["inf32",{"2":{"3":1}}],["inf16",{"2":{"3":1}}],["inf",{"2":{"3":1,"8":8,"20":1}}],["instead",{"2":{"21":2,"22":6}}],["installation",{"0":{"17":1}}],["install",{"0":{"14":1},"2":{"14":1,"17":1}}],["instances",{"2":{"21":1,"22":1}}],["instance",{"2":{"7":2,"22":13}}],["instructions",{"2":{"22":1}}],["instruction",{"2":{"0":1}}],["instr",{"2":{"0":1}}],["inspected",{"2":{"21":1,"22":1}}],["inspect",{"0":{"4":1}}],["inside",{"2":{"3":1,"21":1,"22":2}}],["insertions",{"2":{"22":3}}],["insertion",{"2":{"21":1,"22":16}}],["insertafter",{"2":{"21":1,"22":1}}],["insertbefore",{"2":{"21":1,"22":3}}],["inserts",{"2":{"21":7,"22":9}}],["insert",{"2":{"0":2,"21":6,"22":4}}],["inserted",{"2":{"0":1,"20":1,"21":2,"22":3}}],["init",{"2":{"20":7}}],["init1",{"2":{"0":1}}],["init0",{"2":{"0":1}}],["initialized",{"2":{"22":3}}],["initialize",{"2":{"22":3}}],["initialization",{"2":{"0":1}}],["initial",{"2":{"0":5,"20":3}}],["inner",{"2":{"0":1}}],["int",{"2":{"21":2}}],["introducing",{"2":{"6":1}}],["introduced",{"2":{"3":1}}],["int64",{"2":{"3":1,"21":1}}],["integralwidth",{"2":{"22":2}}],["integral",{"2":{"21":1,"22":2}}],["integerset",{"2":{"21":2,"22":1}}],["integers",{"2":{"0":1,"3":1,"6":14,"21":1,"22":2}}],["integer",{"2":{"0":8,"6":86,"20":4,"21":26,"22":35}}],["intended",{"2":{"7":1,"22":2}}],["intel",{"2":{"6":3}}],["interfacetypeid",{"2":{"22":2}}],["interface",{"2":{"22":6}}],["interfaces",{"2":{"22":2}}],["interact",{"2":{"11":1}}],["intermediate",{"2":{"8":1,"22":1}}],["intermixing",{"2":{"7":1}}],["inter",{"2":{"7":1}}],["interpreting",{"2":{"21":1,"22":1}}],["interpreter",{"2":{"6":1,"22":1}}],["interpreted",{"2":{"0":1,"6":11,"22":2}}],["interpret",{"2":{"6":1}}],["internals",{"2":{"22":1}}],["internally",{"2":{"10":1}}],["internal",{"0":{"5":1}}],["interior",{"2":{"0":2,"20":3}}],["into",{"2":{"0":3,"3":2,"5":2,"6":1,"20":3,"21":4,"22":13}}],["in",{"2":{"0":14,"3":6,"5":2,"6":11,"7":2,"8":6,"10":4,"11":1,"14":2,"17":1,"20":41,"21":91,"22":182}}],["individual",{"2":{"22":2}}],["individually",{"2":{"6":1}}],["indirect",{"2":{"10":5}}],["indicating",{"2":{"21":2,"22":2}}],["indicates",{"2":{"6":4,"22":1}}],["indicate",{"2":{"0":5,"22":3}}],["indices`",{"2":{"20":4}}],["indices1",{"2":{"20":2}}],["indices0",{"2":{"20":2}}],["indices",{"2":{"0":7,"6":1,"8":3,"20":20,"22":3}}],["independent",{"2":{"6":1}}],["indexing",{"2":{"22":2}}],["indextype",{"2":{"21":1}}],["index",{"2":{"0":34,"6":8,"8":2,"20":20,"21":6,"22":12}}],["induction",{"2":{"0":8,"3":1}}],["input0",{"2":{"20":6}}],["input1",{"2":{"18":2,"20":4}}],["input2",{"2":{"18":3}}],["input",{"2":{"0":3,"5":2,"6":8,"7":1,"8":5,"20":6,"21":6,"22":6}}],["inputs",{"2":{"0":2,"6":2,"7":1,"20":14,"21":3,"22":3}}],["255",{"2":{"22":1}}],["256x",{"2":{"20":2}}],["20",{"2":{"20":2}}],["2`",{"2":{"20":1}}],["2306",{"2":{"20":1}}],["2>",{"2":{"20":6}}],["2x",{"2":{"20":2}}],["2xui64>",{"2":{"20":2}}],["2x4xi64",{"2":{"20":1}}],["2x4xi64>",{"2":{"20":4}}],["2x3x4x2xi64",{"2":{"20":2}}],["2x3x4x2xi64>",{"2":{"20":1}}],["2x3xi32>",{"2":{"20":2}}],["2x3xi64>",{"2":{"20":3}}],["2x3x2x2xi64>",{"2":{"20":1}}],["2x3x2xi64>",{"2":{"20":2}}],["2x3x2xi32>",{"2":{"20":1}}],["2x1xi32>",{"2":{"20":1}}],["2xcomplex",{"2":{"20":3}}],["2xindex>",{"2":{"20":3}}],["2xi32>",{"2":{"20":6}}],["2xi1>",{"2":{"20":2}}],["2xi64>",{"2":{"20":16}}],["2xf32>",{"2":{"20":11}}],["2xf64>",{"2":{"20":17}}],["2x2xui64>",{"2":{"20":1}}],["2x2x3x2x2xi64",{"2":{"20":1}}],["2x2x3x2x2xi64>",{"2":{"20":1}}],["2x2x3x2xi64",{"2":{"20":1}}],["2x2x3x2xi64>",{"2":{"20":1}}],["2x2xf64>",{"2":{"20":4}}],["2x2xf32>",{"2":{"20":3}}],["2x2x2xi64>",{"2":{"20":4}}],["2x2x2xf64>",{"2":{"20":7}}],["2x2xi1>",{"2":{"20":1}}],["2x2xi64",{"2":{"20":1}}],["2x2xi64>",{"2":{"20":20}}],["2x2xi32>",{"2":{"20":5}}],["2x8xf32>",{"2":{"0":2}}],["2×10",{"2":{"18":1}}],["21",{"2":{"6":1}}],["2^16",{"2":{"6":3}}],["2^n",{"2":{"6":3}}],["2d",{"2":{"0":1}}],["224",{"2":{"0":2}}],["2",{"2":{"0":18,"3":1,"6":42,"7":1,"8":6,"10":3,"11":3,"18":2,"20":42,"21":3,"22":3}}],["1>",{"2":{"20":9}}],["1xi64>",{"2":{"20":1}}],["1x6xi64>",{"2":{"20":1}}],["1x3xi64>",{"2":{"20":2}}],["1x3xi32>",{"2":{"20":1}}],["1x1xi32>",{"2":{"20":1}}],["1x4x4x1xi64>",{"2":{"20":2}}],["1x2xf32>",{"2":{"20":1}}],["1x2xi64",{"2":{"20":1}}],["1x2xi64>",{"2":{"20":8}}],["1x2xi32>",{"2":{"20":1}}],["1x2x2x1xi64>",{"2":{"20":2}}],["1x2x3xi32>",{"2":{"20":2}}],["18",{"2":{"18":1}}],["18c19414eb",{"2":{"6":1}}],["16x4xf32>",{"2":{"20":1}}],["16xf32>",{"2":{"10":10}}],["160",{"2":{"6":2}}],["1f0",{"2":{"3":1}}],["12",{"2":{"0":2}}],["12x12xf32>",{"2":{"0":2}}],["12x12xf32",{"2":{"0":1}}],["128",{"2":{"0":2,"10":1}}],["10f0",{"2":{"3":1}}],["1000",{"2":{"0":2}}],["100x100xf32>",{"2":{"0":12}}],["10x10xf32>",{"2":{"0":2}}],["10xi32>",{"2":{"0":1}}],["10",{"2":{"0":5,"17":1,"18":4,"21":2}}],["1024xf32>",{"2":{"0":2}}],["1",{"2":{"0":28,"3":10,"6":33,"7":6,"8":24,"10":3,"11":3,"18":37,"20":65,"21":8,"22":10}}],["+inf",{"2":{"8":1,"20":1}}],["+0",{"2":{"6":4}}],["+",{"2":{"0":24,"3":3,"8":14,"18":1,"21":8,"22":3}}],["8bit",{"2":{"22":1}}],["8x128x16x1024x64xf32>",{"2":{"20":1}}],["8x128x3072x64xf32>",{"2":{"20":1}}],["8x16x1024xi32>",{"2":{"20":1}}],["8xf32>",{"2":{"0":2}}],["8>",{"2":{"20":1}}],["8",{"2":{"0":3,"6":1,"20":4,"22":1}}],["f6e3m2fn",{"2":{"22":2}}],["f6e2m3fn",{"2":{"22":2}}],["f64>>",{"2":{"20":2}}],["f64>",{"2":{"20":3}}],["f64",{"2":{"6":8,"10":2,"21":2,"22":2}}],["f4e2m1fn",{"2":{"22":2}}],["fp",{"2":{"21":2,"22":1}}],["fptoui",{"2":{"6":2}}],["fptosi",{"2":{"6":2}}],["fft",{"2":{"20":5}}],["ffi",{"2":{"20":1}}],["ffast",{"2":{"6":1}}],["feature",{"2":{"20":8}}],["f8e8m0fnu",{"2":{"22":2}}],["f8e4m3",{"2":{"22":2}}],["f8e4m3b11fnuz",{"2":{"22":2}}],["f8e4m3fnuz",{"2":{"22":2}}],["f8e4m3fn",{"2":{"21":2,"22":2}}],["f8e3m4",{"2":{"22":2}}],["f8e5m2fnuz",{"2":{"22":2}}],["f8e5m2",{"2":{"21":2,"22":2}}],["f8",{"2":{"6":2,"10":2}}],["factor",{"2":{"21":2,"22":2}}],["failable",{"2":{"22":1}}],["fail",{"2":{"22":2}}],["failed",{"2":{"22":1}}],["fails",{"2":{"21":2,"22":5}}],["failure",{"2":{"21":4,"22":11}}],["false>",{"2":{"20":2}}],["false",{"2":{"6":3,"10":1,"20":11,"21":3,"22":9}}],["fast",{"2":{"6":3}}],["fld",{"2":{"21":2}}],["flag",{"2":{"22":5}}],["flags",{"2":{"6":11,"22":24}}],["flatsymbol",{"2":{"21":1}}],["flatsymbolrefattribute",{"2":{"21":1}}],["flat",{"2":{"21":2,"22":4}}],["flattened",{"2":{"5":4}}],["flatten",{"2":{"5":6}}],["floor",{"2":{"20":5}}],["floordivsi",{"2":{"6":3}}],["floordiv",{"2":{"0":4,"21":3,"22":3}}],["floatattr",{"2":{"22":1}}],["float6e3m2fn",{"2":{"22":1}}],["float6e2m3fn",{"2":{"22":1}}],["float64",{"2":{"3":1,"18":6,"21":2,"22":1}}],["float4e2m1fn",{"2":{"22":1}}],["float8e8m0fnu",{"2":{"22":1}}],["float8e4m3",{"2":{"22":1}}],["float8e4m3b11fnuz",{"2":{"22":1}}],["float8e4m3fnuz",{"2":{"22":1}}],["float8e4m3fn",{"2":{"21":1,"22":1}}],["float8e3m4",{"2":{"22":1}}],["float8e5m2fnuz",{"2":{"22":1}}],["float8e5m2",{"2":{"21":1,"22":1}}],["float16",{"2":{"21":1,"22":1}}],["floats",{"2":{"6":3}}],["float",{"2":{"6":5,"8":2,"20":1,"21":1,"22":1}}],["floating",{"2":{"6":28,"20":4,"21":3,"22":5}}],["float32",{"2":{"3":2,"11":4,"21":1,"22":1}}],["flow",{"2":{"3":1,"22":1}}],["fn",{"2":{"3":1,"10":3}}],["fresh",{"2":{"22":1}}],["freed",{"2":{"22":4}}],["frozenrewritepatternset",{"2":{"22":1}}],["from",{"2":{"0":11,"3":1,"5":2,"6":5,"7":2,"8":1,"10":1,"18":1,"20":29,"21":8,"22":59}}],["fragment",{"2":{"22":2}}],["frameworks",{"2":{"8":1}}],["fry",{"2":{"20":1}}],["fruit",{"2":{"10":1}}],["friendly",{"2":{"3":1}}],["fused",{"2":{"22":1}}],["further",{"2":{"21":1,"22":2}}],["fully",{"2":{"21":1,"22":1}}],["full",{"2":{"6":1,"22":1}}],["future",{"2":{"0":2,"6":3,"22":1}}],["funcop",{"2":{"22":1}}],["func",{"0":{"10":1},"2":{"0":8,"7":2,"10":35,"11":4,"22":1}}],["functiontype",{"2":{"21":1}}],["functionally",{"2":{"20":6}}],["functionality",{"0":{"5":1}}],["functions",{"0":{"23":1},"2":{"5":1,"10":2,"11":1,"21":1,"22":6}}],["function",{"2":{"0":2,"5":2,"8":4,"10":22,"11":1,"18":2,"20":8,"21":7,"22":22}}],["fixed",{"2":{"21":1,"22":3}}],["figure",{"2":{"21":1,"22":1}}],["fits",{"2":{"21":2,"22":3}}],["fieldtypes",{"2":{"22":4}}],["fields",{"2":{"22":2}}],["field",{"2":{"20":1,"21":1,"22":5}}],["find",{"2":{"22":6}}],["finds",{"2":{"8":1}}],["finite",{"2":{"20":5}}],["finalizeopmodification",{"2":{"22":1}}],["final",{"2":{"0":2}}],["filelinecolloc",{"2":{"22":1}}],["file",{"2":{"22":12}}],["filename",{"2":{"21":2,"22":4}}],["files",{"2":{"6":1}}],["fill",{"2":{"21":1,"22":1}}],["fills",{"2":{"20":1}}],["filled",{"2":{"6":5,"20":1}}],["first",{"2":{"0":2,"6":13,"8":1,"10":1,"20":1,"21":6,"22":7}}],["f",{"2":{"0":1,"2":3,"4":1,"6":15,"18":2,"20":4}}],["f2",{"2":{"0":1}}],["f32>>",{"2":{"20":4}}],["f32>",{"2":{"20":5}}],["f32",{"2":{"0":19,"6":1,"10":6,"20":6,"21":2,"22":2}}],["f16",{"2":{"21":2,"22":2}}],["f1",{"2":{"0":1}}],["fourier",{"2":{"20":1}}],["found",{"2":{"3":1,"21":2,"22":4}}],["foo",{"2":{"7":11,"10":1,"20":2}}],["followed",{"2":{"21":1,"22":3}}],["follows",{"2":{"18":1}}],["following",{"2":{"0":2,"3":2,"6":1,"14":2,"21":2,"22":5}}],["folders",{"2":{"6":1}}],["folding",{"2":{"6":1}}],["forwarding",{"2":{"22":10}}],["forwarded",{"2":{"22":3}}],["forward",{"2":{"20":1}}],["foremost",{"2":{"6":1}}],["forms",{"2":{"6":1,"10":1}}],["former",{"2":{"6":1}}],["form",{"2":{"0":3,"3":2,"6":10,"10":1,"20":1,"22":4}}],["format",{"2":{"0":1,"20":1,"22":6}}],["for`",{"2":{"0":1}}],["for",{"2":{"0":52,"3":5,"6":26,"7":2,"8":5,"10":3,"11":1,"12":1,"20":5,"21":9,"22":52}}],[">>",{"2":{"20":2}}],[">a",{"2":{"20":1}}],[">ac",{"2":{"20":1}}],[">reactant",{"2":{"20":1}}],[">=",{"2":{"0":8}}],[">",{"2":{"0":26,"3":5,"6":8,"7":1,"10":9,"11":2,"20":88,"21":3}}],["=>",{"2":{"21":1}}],["==",{"2":{"8":1,"21":10}}],["=",{"2":{"0":66,"3":13,"4":1,"6":113,"7":4,"8":31,"10":10,"11":1,"18":7,"20":284,"21":3,"22":1}}],["efficiency",{"2":{"22":1}}],["effect",{"2":{"22":1}}],["essentially",{"2":{"21":1,"22":2}}],["establish",{"2":{"10":1}}],["emissionkind",{"2":{"22":1}}],["emitted",{"2":{"22":1}}],["emitting",{"2":{"22":7}}],["emit",{"2":{"22":4}}],["emits",{"2":{"21":7,"22":2}}],["emptiness",{"2":{"21":1,"22":1}}],["empty",{"2":{"0":1,"7":1,"21":10,"22":11}}],["e5m10",{"2":{"20":1}}],["einsum",{"2":{"20":12}}],["either",{"2":{"0":2,"6":2,"21":1,"22":3}}],["every",{"2":{"20":1,"22":12}}],["eventually",{"2":{"22":1}}],["even",{"2":{"0":1,"6":2,"20":5}}],["epsilon",{"2":{"20":3}}],["eagerly",{"2":{"22":1}}],["easy",{"2":{"14":1}}],["each",{"2":{"0":13,"6":10,"8":1,"11":1,"20":11,"21":3,"22":6}}],["erased",{"2":{"22":2}}],["erase",{"2":{"22":1}}],["erases",{"2":{"21":1,"22":3}}],["error",{"2":{"8":2,"21":1,"22":12}}],["erfinv",{"2":{"8":1}}],["erfc",{"2":{"8":5}}],["erf",{"2":{"8":8}}],["e^",{"2":{"8":4}}],["e^x",{"2":{"8":2}}],["etc",{"2":{"6":1}}],["eqflags",{"2":{"21":4,"22":4}}],["eq",{"2":{"6":2}}],["equivalence",{"2":{"21":1,"22":1}}],["equivalent",{"2":{"0":1,"6":1,"8":2,"10":1,"22":2}}],["equations",{"2":{"20":1}}],["equals",{"2":{"21":2,"22":2}}],["equalities",{"2":{"21":3,"22":3}}],["equality",{"2":{"6":2,"21":1,"22":1}}],["equal",{"2":{"0":2,"6":14,"8":1,"20":2,"21":13,"22":19}}],["enforcement",{"2":{"22":2}}],["enabling",{"2":{"22":1}}],["enables",{"2":{"22":5}}],["enableobjectdump",{"2":{"22":1}}],["enabled",{"2":{"22":8}}],["enable",{"2":{"7":1,"21":5,"22":10}}],["engine",{"2":{"21":1,"22":6}}],["enclosing",{"2":{"22":1}}],["encoding",{"2":{"21":4,"22":17}}],["encoding=attribute",{"2":{"21":1}}],["encode",{"2":{"20":1}}],["encoded",{"2":{"10":1}}],["encapsulates",{"2":{"20":2}}],["enzymead",{"2":{"14":1,"20":1}}],["enzyme",{"0":{"9":1},"2":{"9":1}}],["entity",{"2":{"22":1}}],["entire",{"2":{"6":1,"20":1,"22":1}}],["enter",{"2":{"17":1}}],["entry",{"2":{"8":1,"20":2,"22":2}}],["entries",{"2":{"8":2,"22":1}}],["ensures",{"2":{"20":2}}],["ensure",{"2":{"3":1,"21":1,"22":1}}],["enumerations",{"2":{"22":1}}],["enum",{"2":{"0":1,"6":1}}],["endian",{"2":{"6":2}}],["endianness",{"2":{"6":3}}],["end",{"2":{"0":1,"3":6,"18":2,"21":1,"22":5}}],["elision",{"2":{"22":2}}],["elementtype",{"2":{"21":6,"22":16}}],["elementwise",{"2":{"6":9,"8":1}}],["elemental",{"2":{"0":2,"21":1,"22":1}}],["elementsattr",{"2":{"22":1}}],["elements",{"2":{"0":3,"6":8,"8":2,"20":2,"21":22,"22":49}}],["element",{"2":{"0":2,"6":42,"7":1,"8":61,"20":55,"21":18,"22":32}}],["elseif",{"2":{"3":1}}],["else",{"2":{"0":4,"3":4,"22":1}}],["edges",{"2":{"0":1}}],["edge",{"2":{"0":1,"20":6}}],["e",{"2":{"0":7,"6":16,"7":1,"10":2,"20":2,"21":6,"22":10}}],["exist",{"2":{"22":1}}],["exists",{"2":{"21":1,"22":5}}],["existingop",{"2":{"22":4}}],["existingblock",{"2":{"22":2}}],["existing",{"2":{"21":1,"22":3}}],["excepteduser",{"2":{"22":2}}],["except",{"2":{"20":4,"22":1}}],["exec",{"2":{"5":1}}],["executing",{"2":{"20":3}}],["executionengine",{"2":{"21":2,"22":2}}],["execution",{"2":{"0":2,"7":1,"21":1,"22":5}}],["executable",{"2":{"5":2}}],["executed",{"2":{"20":2}}],["execute",{"2":{"0":1,"2":1}}],["executes",{"2":{"0":1}}],["external",{"2":{"10":3,"20":1,"22":2}}],["extensions",{"2":{"22":1}}],["extension",{"2":{"6":2}}],["extended",{"2":{"3":1,"6":20}}],["extui",{"2":{"6":5}}],["extsi",{"2":{"6":5}}],["extf",{"2":{"6":2}}],["extradata",{"2":{"22":1}}],["extra",{"2":{"20":1}}],["extracts",{"2":{"20":5}}],["extract",{"2":{"5":2}}],["extremely",{"2":{"0":1}}],["exact",{"2":{"22":1}}],["exactly",{"2":{"0":1,"6":3,"20":2,"22":1}}],["example",{"2":{"0":24,"3":2,"6":35,"7":3,"10":8,"20":114}}],["export",{"2":{"22":1}}],["exponent",{"2":{"20":1}}],["exponentiation",{"2":{"20":1}}],["exponential",{"2":{"20":10}}],["expensive",{"2":{"21":3,"22":5}}],["expects",{"2":{"21":1,"22":2}}],["expected",{"2":{"21":2,"22":9}}],["expect",{"2":{"5":1}}],["expanding",{"2":{"20":5}}],["expands",{"2":{"20":2}}],["expanded",{"2":{"3":1,"7":1}}],["expressed",{"2":{"22":3}}],["expressedtype",{"2":{"22":5}}],["express",{"2":{"20":1}}],["expressions",{"2":{"0":4,"3":2,"21":4,"22":4}}],["expression",{"2":{"0":10,"3":1,"21":44,"22":48}}],["exprs",{"2":{"5":1}}],["expr>",{"2":{"3":1}}],["explicitval",{"2":{"22":1}}],["explicit",{"2":{"0":2,"21":1,"22":3}}],["explicitly",{"2":{"0":1,"22":3}}],["skip",{"2":{"22":1}}],["small",{"2":{"21":1,"22":1}}],["smaller",{"2":{"6":2}}],["src",{"2":{"20":1}}],["square",{"2":{"20":2}}],["sqrt",{"2":{"8":4,"20":5}}],["swift",{"2":{"10":1}}],["swap",{"2":{"6":1}}],["sge",{"2":{"6":1}}],["sgt",{"2":{"6":1}}],["sle",{"2":{"6":1}}],["slt",{"2":{"6":2}}],["sliceop",{"2":{"20":1}}],["slices",{"2":{"20":5}}],["slice",{"2":{"0":8,"20":26}}],["satisfies",{"2":{"22":1}}],["satisfy",{"2":{"7":1}}],["safe",{"2":{"22":2}}],["sake",{"2":{"6":1}}],["same",{"2":{"0":7,"3":1,"6":26,"8":1,"10":1,"20":12,"21":17,"22":47}}],["sse",{"2":{"6":3}}],["ssa",{"2":{"0":32,"6":1,"10":3}}],["script",{"2":{"22":1}}],["scribble",{"2":{"10":1}}],["scans",{"2":{"21":2,"22":2}}],["scalable",{"2":{"22":7}}],["scalar",{"2":{"6":43}}],["scales",{"2":{"22":2}}],["scale",{"2":{"20":5,"22":3}}],["scatter",{"2":{"20":21}}],["scattered",{"2":{"20":1}}],["scatters",{"2":{"20":3}}],["scopeline",{"2":{"22":1}}],["scope",{"2":{"3":1,"10":1,"22":11}}],["shallow",{"2":{"21":1,"22":1}}],["sharedlibpaths",{"2":{"21":1,"22":2}}],["sharedlibs",{"2":{"21":1}}],["shared",{"2":{"21":1,"22":1}}],["shaped",{"2":{"21":16,"22":22}}],["shapedtype",{"2":{"21":3,"22":8}}],["shape",{"2":{"0":6,"6":3,"8":4,"20":12,"21":9,"22":19}}],["shrui",{"2":{"6":4}}],["shrsi",{"2":{"6":5}}],["shift",{"2":{"8":6,"20":15}}],["shifted",{"2":{"6":1}}],["shifts",{"2":{"6":3}}],["shli",{"2":{"6":5}}],["should",{"2":{"7":1,"8":1,"21":3,"22":13}}],["short",{"2":{"3":2}}],["shorthand",{"2":{"0":5}}],["shown",{"2":{"0":1}}],["showing",{"2":{"0":1}}],["s2",{"2":{"0":1,"21":2,"22":1}}],["s1",{"2":{"0":1,"21":2,"22":1}}],["spcae",{"2":{"22":1}}],["sparseelements",{"2":{"22":1}}],["sparsetensorencodingattr",{"2":{"22":1}}],["sparsetensorattrdefs",{"2":{"22":1}}],["sparse",{"2":{"21":1,"22":16}}],["span>",{"2":{"20":1}}],["span",{"2":{"20":1}}],["spatial",{"2":{"20":1}}],["space",{"2":{"0":1,"21":4,"22":6}}],["split",{"2":{"20":5}}],["splits",{"2":{"20":2}}],["splats",{"2":{"22":1}}],["splat",{"2":{"8":1,"21":2,"22":4}}],["spec",{"2":{"20":106}}],["special",{"2":{"3":1,"7":1,"22":1}}],["specific",{"2":{"6":2,"21":2,"22":6}}],["specification",{"2":{"6":1,"20":10}}],["specifies",{"2":{"0":1,"20":1}}],["specifier",{"2":{"0":5}}],["specified",{"2":{"0":4,"6":3,"10":3,"20":11,"21":5,"22":20}}],["specify",{"2":{"0":2}}],["such",{"2":{"22":2}}],["successful",{"2":{"22":1}}],["successors",{"2":{"22":2}}],["successor",{"2":{"21":3,"22":3}}],["success",{"2":{"21":4,"22":6}}],["suffix",{"2":{"22":1}}],["surrounding",{"2":{"21":1,"22":1}}],["sugar",{"2":{"6":1}}],["subprogramflags",{"2":{"22":1}}],["submap",{"2":{"21":1}}],["sub",{"2":{"21":1}}],["subtract",{"2":{"8":2,"20":4}}],["subtraction",{"2":{"6":9,"20":1}}],["subnormal",{"2":{"8":2}}],["subi",{"2":{"6":7}}],["subf",{"2":{"6":6}}],["subject",{"2":{"5":1}}],["subsequent",{"2":{"22":3}}],["subset",{"2":{"0":1,"20":1,"21":2,"22":3}}],["subscript",{"2":{"0":1}}],["supports",{"2":{"6":4}}],["support",{"2":{"0":2,"20":1,"22":1}}],["supported",{"2":{"0":2,"3":1,"6":1}}],["supplied",{"2":{"0":3,"6":1,"22":3}}],["summary>",{"2":{"20":2}}],["sum",{"2":{"0":13,"3":1,"6":2,"8":2,"18":1,"20":6}}],["section",{"2":{"22":1}}],["second",{"2":{"0":1,"6":11,"20":1,"22":1}}],["searchforaddressofsymbol",{"2":{"22":1}}],["search",{"2":{"22":1}}],["searched",{"2":{"22":1}}],["severity",{"2":{"22":2}}],["several",{"2":{"20":2,"22":11}}],["sequence",{"2":{"21":1,"22":1}}],["separatelty",{"2":{"22":1}}],["separately",{"2":{"21":1,"22":1}}],["separation",{"2":{"6":1}}],["sending",{"2":{"22":10}}],["sends",{"2":{"20":2}}],["send",{"2":{"20":5}}],["self",{"2":{"10":1,"22":2}}],["selected",{"2":{"20":1}}],["selection",{"2":{"6":3}}],["select",{"0":{"15":1},"2":{"6":7,"8":3,"20":14}}],["seen",{"2":{"6":1}}],["see",{"2":{"0":2,"6":1,"8":17,"20":103,"21":1,"22":25}}],["setting",{"2":{"22":5}}],["setdimensionsize",{"2":{"20":2}}],["sets",{"2":{"6":1,"20":1,"21":5,"22":23}}],["set",{"2":{"0":9,"3":1,"6":1,"7":1,"15":3,"20":5,"21":35,"22":63}}],["semantics",{"2":{"0":1,"3":1,"7":1,"8":17,"20":7,"21":2,"22":1}}],["semantic",{"2":{"0":1}}],["site",{"2":{"22":1}}],["sitofp",{"2":{"6":2}}],["side",{"2":{"20":1,"21":4,"22":2}}],["signifying",{"2":{"22":1}}],["significant",{"2":{"6":5}}],["signal",{"2":{"22":1}}],["signalpassfailure",{"2":{"22":1}}],["signals",{"2":{"22":1}}],["signature",{"2":{"10":1,"22":1}}],["signless",{"2":{"6":1,"21":3,"22":3}}],["sign",{"2":{"6":8,"8":4,"20":5}}],["signedness",{"2":{"22":1}}],["signed",{"2":{"6":36,"8":2,"21":5,"22":6}}],["sine",{"2":{"20":5}}],["sinsum",{"2":{"18":2}}],["sin",{"2":{"8":1,"18":1}}],["sinh",{"2":{"8":4}}],["since",{"2":{"3":1,"14":1}}],["single",{"2":{"0":7,"3":1,"5":1,"7":2,"21":5,"22":9}}],["simplified",{"2":{"22":1}}],["simplifies",{"2":{"10":1}}],["simply",{"2":{"14":1}}],["simpler",{"2":{"22":1}}],["simple",{"2":{"0":2,"6":1}}],["simd",{"2":{"6":14}}],["similarly",{"2":{"22":2}}],["similarity",{"2":{"5":2}}],["similar",{"2":{"0":1,"6":1}}],["sizeinbits",{"2":{"22":3}}],["sized",{"2":{"22":1}}],["sizes",{"2":{"0":1,"20":6,"21":1,"22":2}}],["size",{"2":{"0":1,"20":8,"21":4,"22":10}}],["storage",{"2":{"22":7}}],["storagetypemax",{"2":{"22":3}}],["storagetypemin",{"2":{"22":3}}],["storagetype",{"2":{"22":6}}],["stored",{"2":{"21":5,"22":11}}],["stores",{"2":{"0":3}}],["store`",{"2":{"0":1}}],["store",{"2":{"0":18,"18":1,"22":3}}],["strongly",{"2":{"22":1}}],["structtype",{"2":{"22":1}}],["struct",{"2":{"22":18}}],["structure",{"2":{"18":1,"22":1}}],["strs",{"2":{"22":1}}],["stream",{"2":{"22":6}}],["str",{"2":{"21":4,"22":5}}],["strictly",{"2":{"6":2}}],["stringref",{"2":{"22":1}}],["stringattr",{"2":{"20":1}}],["string=",{"2":{"11":1}}],["strings",{"2":{"6":1,"22":1}}],["string",{"2":{"6":3,"10":1,"11":2,"21":22,"22":55}}],["stridedlayout",{"2":{"22":1}}],["strided",{"2":{"0":4,"22":1}}],["strides",{"2":{"0":1,"20":6,"21":1,"22":5}}],["stride",{"2":{"0":2,"20":1,"21":1,"22":1}}],["stderr",{"2":{"22":1}}],["std",{"2":{"8":2,"22":1}}],["still",{"2":{"6":1,"7":1,"22":2}}],["stays",{"2":{"21":1,"22":1}}],["stable",{"2":{"20":1,"22":1}}],["stablehlo",{"0":{"20":1},"2":{"11":1,"20":424}}],["status",{"2":{"22":1}}],["states",{"2":{"21":1,"22":1}}],["state",{"2":{"20":6,"22":12}}],["statements",{"2":{"3":3}}],["statically",{"2":{"20":1,"22":1}}],["static",{"2":{"20":2,"21":1,"22":2}}],["standard",{"2":{"6":5,"22":6}}],["stand",{"2":{"6":4}}],["stands",{"2":{"6":4}}],["startopmodification",{"2":{"22":2}}],["starting",{"2":{"20":4,"22":2}}],["started",{"0":{"16":1},"1":{"17":1,"18":1}}],["start",{"0":{"18":1},"2":{"0":2,"20":14,"22":2}}],["steprange",{"2":{"3":1}}],["steps",{"2":{"0":2}}],["step",{"2":{"0":4}}],["sym",{"2":{"22":1}}],["symbolcount",{"2":{"22":2}}],["symbolvalue",{"2":{"22":2}}],["symbolname",{"2":{"22":4}}],["symbolexpr",{"2":{"21":1}}],["symbolref",{"2":{"22":1}}],["symbolrefattribute",{"2":{"21":1}}],["symbolrefattr",{"2":{"10":1}}],["symbolreplacements",{"2":{"21":2,"22":2}}],["symboltable",{"2":{"21":5,"22":6}}],["symbols",{"2":{"0":16,"3":2,"5":2,"10":1,"21":14,"22":22}}],["symbolic",{"2":{"0":6,"10":1,"21":2}}],["symbol",{"2":{"0":23,"7":1,"10":3,"21":31,"22":50}}],["sys",{"2":{"22":3}}],["system",{"2":{"7":2,"22":1}}],["systems",{"2":{"7":2,"20":1}}],["sync",{"2":{"22":1}}],["synonym",{"2":{"22":1}}],["syntactic",{"2":{"3":1,"6":1}}],["syntaxes",{"2":{"0":1}}],["syntax",{"2":{"0":8,"10":1}}],["s0",{"2":{"0":14,"21":4}}],["s",{"2":{"0":10,"6":6,"18":1,"20":8,"22":3}}],["solves",{"2":{"20":1}}],["solve",{"2":{"20":4}}],["sorts",{"2":{"20":1}}],["sort",{"2":{"20":3}}],["sorted",{"2":{"20":3}}],["soon",{"2":{"19":1,"21":1,"22":1}}],["some",{"2":{"6":1,"7":1,"10":1,"21":1,"22":3}}],["sourcename",{"2":{"22":3}}],["sourcestr",{"2":{"22":2}}],["sourcelanguage",{"2":{"22":1}}],["source",{"2":{"0":13,"2":2,"3":1,"4":1,"5":3,"6":48,"7":2,"8":47,"9":1,"10":5,"11":1,"20":119,"21":294,"22":759}}],["so",{"2":{"0":2,"6":1,"20":9,"21":1,"22":4}}],["oldsymbol",{"2":{"22":2}}],["old",{"2":{"22":1}}],["omitting",{"2":{"22":1}}],["omitted",{"2":{"0":1}}],["owning",{"2":{"22":1}}],["own",{"2":{"22":2}}],["owns",{"2":{"21":3,"22":5}}],["owner",{"2":{"21":7,"22":2}}],["ownership",{"2":{"21":13,"22":24}}],["owned",{"2":{"21":49,"22":72}}],["oeq",{"2":{"6":1}}],["occurs",{"2":{"6":4}}],["overview",{"2":{"22":1}}],["overflow",{"2":{"6":25}}],["over",{"2":{"3":1,"20":2,"21":3,"22":1}}],["overhead",{"2":{"3":1}}],["others",{"2":{"22":1}}],["other",{"0":{"23":1},"2":{"3":2,"6":6,"10":1,"20":2,"21":12,"22":22}}],["otherwise",{"2":{"0":2,"6":1,"8":4,"21":7,"22":21}}],["obtain",{"2":{"22":1}}],["obtained",{"2":{"0":1}}],["object",{"2":{"21":1,"22":6}}],["objects",{"2":{"21":3,"22":5}}],["obvious",{"2":{"0":1}}],["o",{"2":{"0":6,"20":2,"22":1}}],["outcome",{"2":{"20":1}}],["outfeed",{"2":{"20":5}}],["outside",{"2":{"7":1,"10":1,"22":1}}],["outer",{"2":{"3":1}}],["outermost",{"2":{"3":1}}],["outputs",{"2":{"8":1,"20":2}}],["output",{"2":{"0":1,"5":1,"6":3,"8":1,"20":28,"22":2}}],["out",{"2":{"0":2,"20":7,"21":2,"22":4}}],["org",{"2":{"8":17,"20":6}}],["original",{"2":{"20":1,"22":5}}],["ori",{"2":{"6":6}}],["ordered",{"2":{"6":1}}],["orderedness",{"2":{"6":1}}],["ordering",{"2":{"0":1}}],["order",{"2":{"0":1,"6":5,"20":3,"22":4}}],["or",{"2":{"0":7,"6":50,"7":1,"8":4,"10":2,"17":1,"20":12,"21":26,"22":43}}],["once",{"2":{"22":1}}],["only=type1",{"2":{"22":1}}],["only=type",{"2":{"22":1}}],["only",{"2":{"3":1,"6":1,"7":2,"10":1,"21":9,"22":15}}],["on",{"2":{"0":3,"6":18,"8":1,"19":1,"20":41,"21":14,"22":31}}],["ones",{"2":{"18":5}}],["one",{"2":{"0":10,"3":1,"6":18,"7":2,"18":2,"20":15,"21":2,"22":7}}],["opcode",{"2":{"22":1}}],["opname",{"2":{"22":4}}],["opoperand",{"2":{"21":4,"22":5}}],["opaquetype",{"2":{"21":1}}],["opaque",{"2":{"21":8,"22":19}}],["opaqueattribute",{"2":{"21":1}}],["oppassmanager",{"2":{"21":19,"22":11}}],["opted",{"2":{"21":1,"22":1}}],["optlevel",{"2":{"21":3,"22":3}}],["option",{"2":{"22":1}}],["options",{"2":{"21":1,"22":8}}],["optional",{"2":{"0":1,"6":3,"7":1,"20":1,"21":1,"22":5}}],["optimization",{"2":{"20":4,"21":1,"22":1}}],["optimize",{"2":{"4":1}}],["ops",{"0":{"11":1},"2":{"11":4,"22":1}}],["openxla",{"2":{"20":116}}],["open",{"2":{"0":2}}],["operandbundledef",{"2":{"22":1}}],["operandindex",{"2":{"21":1}}],["operand2",{"2":{"20":1}}],["operand1",{"2":{"20":3}}],["operand0",{"2":{"20":4}}],["operand",{"2":{"0":3,"6":29,"7":4,"8":24,"10":1,"20":118,"21":8,"22":12}}],["operands",{"2":{"0":8,"6":30,"7":1,"10":4,"21":1,"22":5}}],["operating",{"2":{"6":7}}],["operationiterator",{"2":{"21":1}}],["operationname",{"2":{"21":2,"22":3}}],["operations",{"2":{"3":2,"6":3,"7":3,"8":16,"10":1,"11":1,"20":7,"21":5,"22":17}}],["operation",{"2":{"0":22,"6":37,"7":4,"8":17,"10":9,"20":51,"21":85,"22":158}}],["operate",{"2":{"0":1}}],["op",{"2":{"0":11,"6":4,"8":1,"20":11,"21":40,"22":98}}],["offsetinbits",{"2":{"22":1}}],["offsets",{"2":{"20":1,"21":1,"22":1}}],["offset",{"2":{"20":6,"21":1,"22":3}}],["official",{"2":{"0":1,"6":1,"7":1,"8":1,"10":1,"12":1,"20":1}}],["often",{"2":{"6":1,"22":1}}],["of",{"2":{"0":69,"3":3,"5":9,"6":92,"7":9,"8":11,"10":6,"11":1,"14":1,"18":1,"20":83,"21":136,"22":379}}],["axis",{"2":{"22":5}}],["axes",{"2":{"22":1}}],["a2",{"2":{"21":1,"22":2}}],["a1",{"2":{"21":1,"22":2}}],["auxiliary",{"2":{"22":1}}],["augmented",{"2":{"20":1}}],["automatically",{"2":{"3":1}}],["a>",{"2":{"20":1}}],["away",{"2":{"20":1}}],["available",{"2":{"17":1,"22":2}}],["avoids",{"2":{"22":1}}],["avoid",{"2":{"6":1,"22":4}}],["ab",{"2":{"20":2}}],["about",{"2":{"20":1,"22":11}}],["abort",{"2":{"10":1}}],["above",{"2":{"0":1,"17":1,"20":2}}],["abstractarray",{"2":{"21":2}}],["abs",{"2":{"8":1,"20":5}}],["act",{"2":{"20":1}}],["actual",{"2":{"6":1}}],["across",{"2":{"20":3,"22":1}}],["acosh",{"2":{"8":6}}],["acos",{"2":{"8":9}}],["accumulation",{"2":{"20":2}}],["accumulated",{"2":{"0":1}}],["accessed",{"2":{"22":1}}],["accessor",{"2":{"22":1}}],["accessors",{"2":{"22":1}}],["accessible",{"2":{"22":1}}],["access",{"2":{"22":1}}],["accelerator",{"0":{"15":1}}],["accept",{"2":{"6":3,"7":1}}],["accepts",{"2":{"0":2,"20":1,"22":3}}],["account",{"2":{"6":1}}],["according",{"2":{"0":2,"6":1,"8":1,"20":4}}],["amp",{"2":{"3":3}}],["ambiguity",{"2":{"0":1}}],["append",{"2":{"22":1}}],["appends",{"2":{"21":5,"22":7}}],["appear",{"2":{"22":1}}],["appears",{"2":{"8":1}}],["approximated",{"2":{"22":1}}],["approximation",{"2":{"8":1}}],["appropriate",{"2":{"21":7,"22":7}}],["applied",{"2":{"6":7}}],["applies",{"2":{"0":2,"6":2,"20":4,"22":2}}],["applicable",{"2":{"6":3,"22":1}}],["applications",{"2":{"22":1}}],["application",{"2":{"0":2,"22":1}}],["applying",{"2":{"0":1}}],["apply",{"2":{"0":13,"3":1,"21":1,"22":2}}],["apinotes",{"2":{"22":1}}],["api",{"0":{"1":1,"2":1,"3":1,"11":1,"21":1,"22":1},"1":{"2":1,"3":1,"4":1},"2":{"5":1,"11":1,"20":6,"22":751}}],["addressspace",{"2":{"22":1}}],["address",{"2":{"22":3}}],["addsymbol",{"2":{"22":1}}],["adds",{"2":{"22":2}}],["added",{"2":{"21":1,"22":4}}],["addto",{"2":{"9":2}}],["addui",{"2":{"6":5}}],["add",{"2":{"0":2,"6":1,"8":2,"10":1,"11":1,"14":2,"17":2,"18":2,"20":12,"21":9,"22":6}}],["addition",{"2":{"6":15,"20":2}}],["additionally",{"2":{"21":1,"22":2}}],["additional",{"2":{"0":1,"22":1}}],["adding",{"2":{"0":2,"19":1,"21":1,"22":2}}],["addi",{"2":{"0":2,"6":7}}],["addf",{"2":{"0":3,"6":6}}],["atomically",{"2":{"22":1}}],["atomicrmwkind",{"2":{"0":1}}],["attempt",{"2":{"22":2}}],["attachment",{"2":{"22":1}}],["attachments",{"2":{"22":1}}],["attaches",{"2":{"22":1}}],["attached",{"2":{"21":4,"22":14}}],["attrname",{"2":{"10":2}}],["attr",{"2":{"0":1,"10":1,"21":37,"22":71}}],["attributed",{"2":{"7":1}}],["attributes",{"2":{"0":2,"6":8,"10":3,"20":3,"21":2,"22":9}}],["attribute",{"2":{"0":4,"6":9,"10":7,"20":4,"21":97,"22":193}}],["atanh",{"2":{"8":4}}],["atan",{"2":{"8":6}}],["atan2",{"2":{"8":8,"20":5}}],["at",{"2":{"0":2,"3":1,"5":1,"6":2,"18":1,"20":2,"21":4,"22":18}}],["affect",{"2":{"22":1}}],["affinedimexpr",{"2":{"21":1,"22":1}}],["affinedimensionexpr",{"2":{"21":1}}],["affineexpr",{"2":{"21":21,"22":25}}],["affineexprs",{"2":{"21":1,"22":1}}],["affinemaps",{"2":{"22":3}}],["affinemap",{"2":{"21":33,"22":27}}],["affineparallelop",{"2":{"0":1}}],["affine",{"0":{"0":1},"2":{"0":133,"21":81,"22":85}}],["afz",{"2":{"20":4}}],["afterallop",{"2":{"20":1}}],["after",{"2":{"0":1,"8":4,"20":5,"21":12,"22":13}}],["asmresourceblob",{"2":{"22":1}}],["asmstate",{"2":{"22":4}}],["asinh",{"2":{"8":5}}],["asinacoskernel",{"2":{"8":1}}],["asin",{"2":{"8":9}}],["assert",{"2":{"22":3}}],["asserts",{"2":{"21":5,"22":10}}],["assembly",{"2":{"6":3,"22":1}}],["associates",{"2":{"21":1,"22":1}}],["associated",{"2":{"0":1,"21":7,"22":16}}],["assume",{"2":{"22":1}}],["assumed",{"2":{"20":1}}],["assuming",{"2":{"21":2,"22":3}}],["assignment",{"2":{"3":2}}],["assign",{"2":{"0":1,"21":1,"22":2}}],["as",{"2":{"0":17,"3":1,"6":36,"7":1,"8":3,"10":3,"11":1,"18":1,"20":15,"21":40,"22":83}}],["around",{"2":{"20":1}}],["arbitrary",{"2":{"18":1}}],["arrays",{"2":{"8":1,"21":1}}],["array",{"2":{"8":2,"18":2,"20":17,"21":5,"22":14}}],["arity",{"2":{"7":2}}],["arithmetic",{"0":{"6":1},"2":{"8":17,"20":5}}],["arith",{"2":{"0":6,"6":150}}],["argtypes",{"2":{"22":3}}],["arg2",{"2":{"22":3}}],["argvalues",{"2":{"22":4}}],["argv",{"2":{"22":1}}],["argc",{"2":{"22":1}}],["arg",{"2":{"10":1,"21":4,"22":1}}],["arg1",{"2":{"0":3,"11":2,"20":21,"22":6}}],["arg0",{"2":{"0":3,"11":2,"20":23}}],["args",{"2":{"0":5,"2":3,"4":1,"5":2,"11":1,"21":1,"22":1}}],["argumenttypes",{"2":{"22":1}}],["argument",{"2":{"0":1,"5":1,"6":3,"10":2,"21":12,"22":22}}],["arguments",{"2":{"0":6,"5":9,"6":11,"10":4,"11":1,"20":1,"21":8,"22":22}}],["are",{"2":{"0":18,"3":4,"5":3,"6":27,"7":3,"8":1,"10":2,"19":1,"20":14,"21":16,"22":38}}],["alignment",{"2":{"22":1}}],["aligninbits",{"2":{"22":3}}],["aligned",{"2":{"22":2}}],["already",{"2":{"21":1,"22":4}}],["algorithm",{"2":{"20":5}}],["alternatively",{"2":{"17":1}}],["along",{"2":{"0":2,"8":1,"20":10,"22":1}}],["also",{"2":{"0":2,"6":3,"8":2,"17":1,"18":1,"20":1,"21":1,"22":26}}],["allsymusesvisible",{"2":{"22":2}}],["allusesreplaced",{"2":{"22":1}}],["allreduceop",{"2":{"20":1}}],["allowing",{"2":{"22":1}}],["allow",{"2":{"10":1,"20":1,"22":1}}],["allows",{"2":{"6":1,"20":1,"22":4}}],["allowed",{"2":{"3":1,"21":2,"22":4}}],["allocates",{"2":{"22":1}}],["allocated",{"2":{"22":3}}],["allocator",{"2":{"22":5}}],["alloc",{"2":{"0":2}}],["all",{"2":{"0":7,"3":1,"6":1,"7":1,"10":1,"11":1,"20":26,"21":4,"22":20}}],["always",{"2":{"0":3,"6":3,"21":1,"22":3}}],["a",{"2":{"0":53,"3":8,"5":6,"6":88,"7":7,"8":11,"10":18,"11":4,"18":7,"20":104,"21":146,"22":375}}],["annotations",{"2":{"22":1}}],["analogous",{"2":{"22":2}}],["anchor",{"2":{"22":1}}],["anchored",{"2":{"21":1,"22":1}}],["anchorop",{"2":{"21":2,"22":2}}],["another",{"2":{"3":1,"7":2,"20":2,"22":5}}],["anyquantizedtype",{"2":{"22":2}}],["anything",{"2":{"22":2}}],["anytracedrarray",{"2":{"11":2}}],["any",{"2":{"0":3,"5":1,"6":7,"7":2,"20":2,"21":3,"22":15}}],["andi",{"2":{"6":6}}],["and",{"2":{"0":52,"3":6,"5":1,"6":66,"7":3,"8":11,"10":5,"11":1,"17":1,"18":2,"20":127,"21":64,"22":156}}],["an",{"0":{"15":1},"2":{"0":25,"6":30,"7":9,"8":3,"10":5,"18":2,"20":12,"21":87,"22":231}}],["msb",{"2":{"22":1}}],["mdnode",{"2":{"22":1}}],["md",{"2":{"20":105}}],["myfn",{"2":{"10":3}}],["my",{"2":{"10":2,"20":4}}],["mnemonic",{"2":{"6":10}}],["mixing",{"2":{"7":1}}],["might",{"2":{"3":1}}],["missing",{"2":{"0":1,"3":1}}],["minorsubmap",{"2":{"21":1}}],["minor",{"2":{"21":3,"22":4}}],["minoridentityaffinemap",{"2":{"21":1}}],["minus",{"2":{"20":5}}],["minnumf",{"2":{"6":3}}],["min`",{"2":{"0":1}}],["minimumf",{"2":{"6":3}}],["minimum",{"2":{"0":2,"6":7,"8":2,"20":5,"22":2}}],["min",{"2":{"0":10,"8":1,"20":2,"22":2}}],["merge",{"2":{"22":2}}],["merely",{"2":{"6":1}}],["metadata",{"2":{"22":6}}],["method",{"2":{"20":1,"22":3}}],["methods",{"2":{"0":1}}],["message",{"2":{"21":1,"22":3}}],["meaningless",{"2":{"22":1}}],["meaning",{"2":{"22":1}}],["mean",{"2":{"20":5}}],["means",{"2":{"6":3}}],["memspace",{"2":{"21":1}}],["memorybuffer",{"2":{"22":1}}],["memoryspace",{"2":{"21":3,"22":6}}],["memory",{"2":{"0":2,"21":4,"22":7}}],["memreftype",{"2":{"21":3}}],["memref",{"2":{"0":55,"10":1,"21":8,"22":12}}],["m",{"2":{"0":10,"6":9,"22":1}}],["marked",{"2":{"22":1}}],["making",{"2":{"22":1}}],["make",{"2":{"0":1}}],["majorsubmap",{"2":{"21":1}}],["major",{"2":{"20":1,"21":2,"22":3}}],["mantissa",{"2":{"20":1}}],["manager",{"2":{"17":1}}],["many",{"2":{"0":2,"21":1,"22":2}}],["made",{"2":{"6":1,"20":1,"21":1,"22":1}}],["main",{"2":{"6":1,"11":3,"18":1,"20":106}}],["matrices",{"2":{"8":1,"20":2}}],["mathematical",{"2":{"6":3}}],["math",{"2":{"6":4}}],["matching",{"2":{"21":3,"22":3}}],["match",{"2":{"0":2,"6":1,"10":3,"21":1,"22":5}}],["mask",{"2":{"5":1}}],["macro",{"2":{"3":1}}],["machine",{"2":{"0":1,"6":1}}],["maxnumf",{"2":{"6":3}}],["maximumf",{"2":{"6":3}}],["maximum",{"2":{"0":2,"6":4,"8":2,"20":5,"22":2}}],["max",{"2":{"0":6,"8":1,"20":2,"22":2}}],["may",{"2":{"0":6,"6":11,"7":1,"10":1,"21":3,"22":23}}],["mapped",{"2":{"20":1}}],["mappings",{"2":{"0":1}}],["mapping",{"2":{"0":8,"21":1,"22":3}}],["map43",{"2":{"0":1}}],["map42",{"2":{"0":1}}],["map57",{"2":{"0":2}}],["maps",{"2":{"0":1,"21":3,"22":5}}],["map2",{"2":{"0":2}}],["map1",{"2":{"0":2}}],["map10",{"2":{"0":2}}],["map0>",{"2":{"10":1}}],["map0",{"2":{"0":2}}],["map",{"2":{"0":18,"20":7,"21":49,"22":54}}],["moves",{"2":{"21":2,"22":3}}],["move",{"2":{"21":3,"22":2}}],["moving",{"2":{"20":1,"21":1,"22":1}}],["most",{"2":{"6":8,"21":3,"22":4}}],["modification",{"2":{"22":9}}],["moduleflagentry",{"2":{"22":1}}],["modulepass",{"2":{"21":1,"22":1}}],["moduleop",{"2":{"21":2,"22":4}}],["modules",{"2":{"7":2}}],["module",{"2":{"7":4,"10":1,"11":3,"21":14,"22":31}}],["modulo",{"2":{"6":3}}],["models",{"2":{"22":7}}],["mode",{"2":{"6":7,"22":1}}],["mod",{"2":{"0":2,"21":5,"22":3}}],["more",{"2":{"0":4,"6":1,"7":1,"8":1,"10":1,"12":1,"20":3,"21":1,"22":4}}],["mutated",{"2":{"22":1}}],["mul",{"2":{"21":3,"22":3}}],["mului",{"2":{"6":5}}],["mulsi",{"2":{"6":5}}],["muli",{"2":{"6":9}}],["mulf",{"2":{"0":2,"6":6}}],["multithreading",{"2":{"22":4}}],["multithreaded",{"2":{"10":1}}],["multidimensional",{"2":{"20":1}}],["multiply",{"2":{"8":2,"20":5}}],["multiplication",{"2":{"6":19}}],["multiple",{"2":{"0":2,"21":1,"22":7}}],["multi",{"2":{"0":4,"22":1}}],["must",{"2":{"0":16,"6":8,"10":4,"20":2,"21":11,"22":34}}],["mlirvectortypeisscalable",{"2":{"22":1}}],["mlirvectortypeisdimscalable",{"2":{"22":1}}],["mlirvectortypegettypeid",{"2":{"22":1}}],["mlirvectortypegetscalablechecked",{"2":{"22":1}}],["mlirvectortypegetscalable",{"2":{"22":2}}],["mlirvectortypegetchecked",{"2":{"22":1}}],["mlirvectortypeget",{"2":{"22":2}}],["mlirvaluesettype",{"2":{"22":1}}],["mlirvaluereplaceallusesofwith",{"2":{"22":1}}],["mlirvalueprintasoperand",{"2":{"22":1}}],["mlirvalueprint",{"2":{"22":1}}],["mlirvalueisnull",{"2":{"22":1}}],["mlirvalueisaopresult",{"2":{"22":1}}],["mlirvalueisablockargument",{"2":{"22":1}}],["mlirvaluegettype",{"2":{"22":1}}],["mlirvaluegetfirstuse",{"2":{"22":1}}],["mlirvalueequal",{"2":{"22":1}}],["mlirvaluedump",{"2":{"22":1}}],["mlirunrankedtensortypegettypeid",{"2":{"22":1}}],["mlirunrankedtensortypegetchecked",{"2":{"22":1}}],["mlirunrankedtensortypeget",{"2":{"22":2}}],["mlirunrankedmemrefgetmemoryspace",{"2":{"22":1}}],["mlirunrankedmemreftypegettypeid",{"2":{"22":1}}],["mlirunrankedmemreftypegetchecked",{"2":{"22":1}}],["mlirunrankedmemreftypeget",{"2":{"22":2}}],["mlirunmanageddenseresourceelementsattrget",{"2":{"22":1}}],["mlirunitattrgettypeid",{"2":{"22":1}}],["mlirunitattrget",{"2":{"22":1}}],["mliruniformquantizedtypeisfixedpoint",{"2":{"22":1}}],["mliruniformquantizedtypegetzeropoint",{"2":{"22":1}}],["mliruniformquantizedtypegetscale",{"2":{"22":1}}],["mliruniformquantizedtypeget",{"2":{"22":1}}],["mliruniformquantizedperaxistypeisfixedpoint",{"2":{"22":1}}],["mliruniformquantizedperaxistypegetzeropoint",{"2":{"22":1}}],["mliruniformquantizedperaxistypegetscale",{"2":{"22":1}}],["mliruniformquantizedperaxistypegetquantizeddimension",{"2":{"22":1}}],["mliruniformquantizedperaxistypegetnumdims",{"2":{"22":1}}],["mliruniformquantizedperaxistypeget",{"2":{"22":1}}],["mlirtupletypegettypeid",{"2":{"22":1}}],["mlirtupletypegettype",{"2":{"22":1}}],["mlirtupletypegetnumtypes",{"2":{"22":1}}],["mlirtupletypeget",{"2":{"22":1}}],["mlirtranslatemoduletollvmir",{"2":{"22":1}}],["mlirtransformoptionsgetexpensivechecksenabled",{"2":{"22":1}}],["mlirtransformoptionsgetenforcesingletopleveltransformop",{"2":{"22":1}}],["mlirtransformoptionsenforcesingletopleveltransformop",{"2":{"22":1}}],["mlirtransformoptionsenableexpensivechecks",{"2":{"22":1}}],["mlirtransformoptionsdestroy",{"2":{"22":1}}],["mlirtransformoptionscreate",{"2":{"22":2}}],["mlirtransformapplynamedsequence",{"2":{"22":1}}],["mlirtf32typeget",{"2":{"22":1}}],["mlirtypeprint",{"2":{"22":1}}],["mlirtypeparseget",{"2":{"22":1}}],["mlirtypeisnull",{"2":{"22":1}}],["mlirtypeisavector",{"2":{"22":1}}],["mlirtypeisaunrankedtensor",{"2":{"22":1}}],["mlirtypeisaunrankedmemref",{"2":{"22":1}}],["mlirtypeisauniformquantizedtype",{"2":{"22":1}}],["mlirtypeisauniformquantizedperaxistype",{"2":{"22":1}}],["mlirtypeisatuple",{"2":{"22":1}}],["mlirtypeisatensor",{"2":{"22":1}}],["mlirtypeisatf32",{"2":{"22":1}}],["mlirtypeisashaped",{"2":{"22":1}}],["mlirtypeisarankedtensor",{"2":{"22":1}}],["mlirtypeisaquantizedtype",{"2":{"22":1}}],["mlirtypeisaopaque",{"2":{"22":1}}],["mlirtypeisanone",{"2":{"22":1}}],["mlirtypeisamemref",{"2":{"22":1}}],["mlirtypeisallvmstructtype",{"2":{"22":1}}],["mlirtypeisallvmpointertype",{"2":{"22":1}}],["mlirtypeisainteger",{"2":{"22":1}}],["mlirtypeisaindex",{"2":{"22":1}}],["mlirtypeisafunction",{"2":{"22":1}}],["mlirtypeisafloat8e8m0fnu",{"2":{"22":1}}],["mlirtypeisafloat8e5m2fnuz",{"2":{"22":1}}],["mlirtypeisafloat8e5m2",{"2":{"22":1}}],["mlirtypeisafloat8e4m3fnuz",{"2":{"22":1}}],["mlirtypeisafloat8e4m3fn",{"2":{"22":1}}],["mlirtypeisafloat8e4m3b11fnuz",{"2":{"22":1}}],["mlirtypeisafloat8e4m3",{"2":{"22":1}}],["mlirtypeisafloat8e3m4",{"2":{"22":1}}],["mlirtypeisafloat6e3m2fn",{"2":{"22":1}}],["mlirtypeisafloat6e2m3fn",{"2":{"22":1}}],["mlirtypeisafloat4e2m1fn",{"2":{"22":1}}],["mlirtypeisafloat",{"2":{"22":1}}],["mlirtypeisaf64",{"2":{"22":1}}],["mlirtypeisaf32",{"2":{"22":1}}],["mlirtypeisaf16",{"2":{"22":1}}],["mlirtypeisacomplex",{"2":{"22":1}}],["mlirtypeisacalibratedquantizedtype",{"2":{"22":1}}],["mlirtypeisabf16",{"2":{"22":1}}],["mlirtypeisaanyquantizedtype",{"2":{"22":1}}],["mlirtypeidisnull",{"2":{"22":1}}],["mlirtypeidhashvalue",{"2":{"22":1}}],["mlirtypeidequal",{"2":{"22":1}}],["mlirtypeidcreate",{"2":{"22":1}}],["mlirtypeidallocatordestroy",{"2":{"22":1}}],["mlirtypeidallocatorcreate",{"2":{"22":1}}],["mlirtypeidallocatorallocatetypeid",{"2":{"22":1}}],["mlirtypegettypeid",{"2":{"22":1}}],["mlirtypegetdialect",{"2":{"22":1}}],["mlirtypegetcontext",{"2":{"22":1}}],["mlirtypeequal",{"2":{"22":1}}],["mlirtypedump",{"2":{"22":1}}],["mlirtypeattrgetvalue",{"2":{"22":1}}],["mlirtypeattrgettypeid",{"2":{"22":1}}],["mlirtypeattrget",{"2":{"22":1}}],["mlirtype",{"2":{"22":7}}],["mlirtypescallback",{"2":{"22":1}}],["mlirrewriterbasestartopmodification",{"2":{"22":1}}],["mlirrewriterbasesetinsertionpointtostart",{"2":{"22":1}}],["mlirrewriterbasesetinsertionpointtoend",{"2":{"22":1}}],["mlirrewriterbasesetinsertionpointbefore",{"2":{"22":1}}],["mlirrewriterbasesetinsertionpointaftervalue",{"2":{"22":1}}],["mlirrewriterbasesetinsertionpointafter",{"2":{"22":1}}],["mlirrewriterbasereplaceopwithvalues",{"2":{"22":1}}],["mlirrewriterbasereplaceopwithoperation",{"2":{"22":1}}],["mlirrewriterbasereplaceopuseswithinblock",{"2":{"22":1}}],["mlirrewriterbasereplaceallvaluerangeuseswith",{"2":{"22":1}}],["mlirrewriterbasereplacealluseswith",{"2":{"22":1}}],["mlirrewriterbasereplaceallusesexcept",{"2":{"22":1}}],["mlirrewriterbasereplaceallopuseswithvaluerange",{"2":{"22":1}}],["mlirrewriterbasereplaceallopuseswithoperation",{"2":{"22":1}}],["mlirrewriterbasemoveopbefore",{"2":{"22":1}}],["mlirrewriterbasemoveopafter",{"2":{"22":1}}],["mlirrewriterbasemoveblockbefore",{"2":{"22":1}}],["mlirrewriterbasemergeblocks",{"2":{"22":1}}],["mlirrewriterbaseinsert",{"2":{"22":1}}],["mlirrewriterbaseinlineregionbefore",{"2":{"22":1}}],["mlirrewriterbaseinlineblockbefore",{"2":{"22":1}}],["mlirrewriterbasegetinsertionblock",{"2":{"22":1}}],["mlirrewriterbasegetcontext",{"2":{"22":1}}],["mlirrewriterbasegetblock",{"2":{"22":1}}],["mlirrewriterbasefinalizeopmodification",{"2":{"22":1}}],["mlirrewriterbaseeraseop",{"2":{"22":1}}],["mlirrewriterbaseeraseblock",{"2":{"22":1}}],["mlirrewriterbasecreateblockbefore",{"2":{"22":1}}],["mlirrewriterbaseclonewithoutregions",{"2":{"22":1}}],["mlirrewriterbasecloneregionbefore",{"2":{"22":1}}],["mlirrewriterbaseclone",{"2":{"22":1}}],["mlirrewriterbaseclearinsertionpoint",{"2":{"22":1}}],["mlirrewriterbasecancelopmodification",{"2":{"22":1}}],["mlirregisterallpasses",{"2":{"22":1}}],["mlirregisterallllvmtranslations",{"2":{"22":1}}],["mlirregisteralldialects",{"2":{"22":1}}],["mlirregiontakebody",{"2":{"22":1}}],["mlirregionisnull",{"2":{"22":1}}],["mlirregioninsertownedblockbefore",{"2":{"22":1}}],["mlirregioninsertownedblockafter",{"2":{"22":1}}],["mlirregioninsertownedblock",{"2":{"22":1}}],["mlirregiongetnextinoperation",{"2":{"22":1}}],["mlirregiongetfirstblock",{"2":{"22":1}}],["mlirregionequal",{"2":{"22":1}}],["mlirregiondestroy",{"2":{"22":1}}],["mlirregioncreate",{"2":{"22":1}}],["mlirregionappendownedblock",{"2":{"22":1}}],["mlirregions",{"2":{"22":1}}],["mlirrankedtensortypegettypeid",{"2":{"22":1}}],["mlirrankedtensortypegetencoding",{"2":{"22":1}}],["mlirrankedtensortypegetchecked",{"2":{"22":1}}],["mlirrankedtensortypeget",{"2":{"22":2}}],["mlirquantizedtypeissigned",{"2":{"22":1}}],["mlirquantizedtypeiscompatibleexpressedtype",{"2":{"22":1}}],["mlirquantizedtypegetstoragetypemin",{"2":{"22":1}}],["mlirquantizedtypegetstoragetypemax",{"2":{"22":1}}],["mlirquantizedtypegetstoragetypeintegralwidth",{"2":{"22":1}}],["mlirquantizedtypegetstoragetype",{"2":{"22":1}}],["mlirquantizedtypegetsignedflag",{"2":{"22":1}}],["mlirquantizedtypegetquantizedelementtype",{"2":{"22":1}}],["mlirquantizedtypegetflags",{"2":{"22":1}}],["mlirquantizedtypegetexpressedtype",{"2":{"22":1}}],["mlirquantizedtypegetdefaultminimumforinteger",{"2":{"22":1}}],["mlirquantizedtypegetdefaultmaximumforinteger",{"2":{"22":1}}],["mlirquantizedtypecasttostoragetype",{"2":{"22":1}}],["mlirquantizedtypecasttoexpressedtype",{"2":{"22":1}}],["mlirquantizedtypecastfromstoragetype",{"2":{"22":1}}],["mlirquantizedtypecastfromexpressedtype",{"2":{"22":1}}],["mlirquantizedtypecastexpressedtostoragetype",{"2":{"22":1}}],["mlirprintpasspipeline",{"2":{"22":1}}],["mlirparsepasspipeline",{"2":{"22":1}}],["mlirpassmanagerrunonop",{"2":{"22":1}}],["mlirpassmanagerisnull",{"2":{"22":1}}],["mlirpassmanagergetnestedunder",{"2":{"22":1}}],["mlirpassmanagergetasoppassmanager",{"2":{"22":1}}],["mlirpassmanagerenableverifier",{"2":{"22":1}}],["mlirpassmanagerenableirprinting",{"2":{"22":1}}],["mlirpassmanagerdestroy",{"2":{"22":1}}],["mlirpassmanagercreateonoperation",{"2":{"22":1}}],["mlirpassmanagercreate",{"2":{"22":1}}],["mlirpassmanager",{"2":{"22":1}}],["mlirpassmanageraddownedpass",{"2":{"22":1}}],["mlirpass",{"2":{"22":2}}],["mlirnonetypegettypeid",{"2":{"22":1}}],["mlirnonetypeget",{"2":{"22":1}}],["mlirnamedattributeget",{"2":{"22":1}}],["mlirnamedattribute",{"2":{"22":1}}],["mlirmergesymbolsintofromclone",{"2":{"22":1}}],["mlirmemreftypegettypeid",{"2":{"22":1}}],["mlirmemreftypegetstridesandoffset",{"2":{"22":1}}],["mlirmemreftypegetmemoryspace",{"2":{"22":1}}],["mlirmemreftypegetlayout",{"2":{"22":1}}],["mlirmemreftypegetchecked",{"2":{"22":1}}],["mlirmemreftypegetaffinemap",{"2":{"22":1}}],["mlirmemreftypeget",{"2":{"22":2}}],["mlirmemreftypecontiguousgetchecked",{"2":{"22":1}}],["mlirmemreftypecontiguousget",{"2":{"22":2}}],["mlirmoduleisnull",{"2":{"22":1}}],["mlirmodulegetoperation",{"2":{"22":1}}],["mlirmodulegetcontext",{"2":{"22":1}}],["mlirmodulegetbody",{"2":{"22":1}}],["mlirmodulefromoperation",{"2":{"22":1}}],["mlirmoduledestroy",{"2":{"22":1}}],["mlirmodulecreateparse",{"2":{"22":1}}],["mlirmodulecreateempty",{"2":{"22":1}}],["mlirmodule",{"2":{"7":1}}],["mlirisglobaldebugenabled",{"2":{"22":1}}],["mliriscurrentdebugtype",{"2":{"22":1}}],["mlirintegertypeunsignedget",{"2":{"22":1}}],["mlirintegertypesignedget",{"2":{"22":1}}],["mlirintegertypeisunsigned",{"2":{"22":1}}],["mlirintegertypeissignless",{"2":{"22":1}}],["mlirintegertypeissigned",{"2":{"22":1}}],["mlirintegertypegetwidth",{"2":{"22":1}}],["mlirintegertypegettypeid",{"2":{"22":1}}],["mlirintegertypeget",{"2":{"22":1}}],["mlirintegersetreplaceget",{"2":{"22":1}}],["mlirintegersetprint",{"2":{"22":1}}],["mlirintegersetisnull",{"2":{"22":1}}],["mlirintegersetisconstrainteq",{"2":{"22":1}}],["mlirintegersetiscanonicalempty",{"2":{"22":1}}],["mlirintegersetgetnumsymbols",{"2":{"22":1}}],["mlirintegersetgetnuminputs",{"2":{"22":1}}],["mlirintegersetgetnuminequalities",{"2":{"22":1}}],["mlirintegersetgetnumequalities",{"2":{"22":1}}],["mlirintegersetgetnumdims",{"2":{"22":1}}],["mlirintegersetgetnumconstraints",{"2":{"22":1}}],["mlirintegersetgetcontext",{"2":{"22":1}}],["mlirintegersetgetconstraint",{"2":{"22":1}}],["mlirintegersetget",{"2":{"22":1}}],["mlirintegersetequal",{"2":{"22":1}}],["mlirintegersetemptyget",{"2":{"21":1,"22":2}}],["mlirintegersetdump",{"2":{"22":1}}],["mlirintegersetattrgetvalue",{"2":{"22":1}}],["mlirintegersetattrgettypeid",{"2":{"22":1}}],["mlirintegersetattrget",{"2":{"22":1}}],["mlirintegerattrgetvalueuint",{"2":{"22":1}}],["mlirintegerattrgetvaluesint",{"2":{"22":1}}],["mlirintegerattrgetvalueint",{"2":{"22":1}}],["mlirintegerattrgettypeid",{"2":{"22":1}}],["mlirintegerattrget",{"2":{"22":1}}],["mlirinfertypeopinterfacetypeid",{"2":{"22":1}}],["mlirinfertypeopinterfaceinferreturntypes",{"2":{"22":1}}],["mlirinfershapedtypeopinterfacetypeid",{"2":{"22":1}}],["mlirinfershapedtypeopinterfaceinferreturntypes",{"2":{"22":1}}],["mlirindextypegettypeid",{"2":{"22":1}}],["mlirindextypeget",{"2":{"22":1}}],["mliridentifierstr",{"2":{"22":1}}],["mliridentifiergetcontext",{"2":{"22":1}}],["mliridentifierget",{"2":{"22":1}}],["mliridentifierequal",{"2":{"22":1}}],["mlirirrewriterdestroy",{"2":{"22":1}}],["mlirirrewritercreatefromop",{"2":{"22":1}}],["mlirirrewritercreate",{"2":{"22":1}}],["mlirfreezerewritepattern",{"2":{"22":1}}],["mlirfloattypegetwidth",{"2":{"22":1}}],["mlirfloattf32typegettypeid",{"2":{"22":1}}],["mlirfloatattrgetvaluedouble",{"2":{"22":1}}],["mlirfloatattrgettypeid",{"2":{"22":1}}],["mlirfloatattrdoublegetchecked",{"2":{"22":1}}],["mlirfloatattrdoubleget",{"2":{"22":2}}],["mlirfloat8e8m0fnutypegettypeid",{"2":{"22":1}}],["mlirfloat8e8m0fnutypeget",{"2":{"22":1}}],["mlirfloat8e5m2typegettypeid",{"2":{"22":1}}],["mlirfloat8e5m2typeget",{"2":{"22":1}}],["mlirfloat8e5m2fnuztypegettypeid",{"2":{"22":1}}],["mlirfloat8e5m2fnuztypeget",{"2":{"22":1}}],["mlirfloat8e4m3typegettypeid",{"2":{"22":1}}],["mlirfloat8e4m3typeget",{"2":{"22":1}}],["mlirfloat8e4m3fnuztypegettypeid",{"2":{"22":1}}],["mlirfloat8e4m3fnuztypeget",{"2":{"22":1}}],["mlirfloat8e4m3fntypegettypeid",{"2":{"22":1}}],["mlirfloat8e4m3fntypeget",{"2":{"22":1}}],["mlirfloat8e4m3b11fnuztypegettypeid",{"2":{"22":1}}],["mlirfloat8e4m3b11fnuztypeget",{"2":{"22":1}}],["mlirfloat8e3m4typegettypeid",{"2":{"22":1}}],["mlirfloat8e3m4typeget",{"2":{"22":1}}],["mlirfloat6e3m2fntypegettypeid",{"2":{"22":1}}],["mlirfloat6e3m2fntypeget",{"2":{"22":1}}],["mlirfloat6e2m3fntypegettypeid",{"2":{"22":1}}],["mlirfloat6e2m3fntypeget",{"2":{"22":1}}],["mlirfloat64typegettypeid",{"2":{"22":1}}],["mlirfloat4e2m1fntypegettypeid",{"2":{"22":1}}],["mlirfloat4e2m1fntypeget",{"2":{"22":1}}],["mlirfloat32typegettypeid",{"2":{"22":1}}],["mlirfloat16typegettypeid",{"2":{"22":1}}],["mlirflatsymbolrefattrgetvalue",{"2":{"22":1}}],["mlirflatsymbolrefattrget",{"2":{"22":1}}],["mlirf64typeget",{"2":{"22":1}}],["mlirf32typeget",{"2":{"22":1}}],["mlirf16typeget",{"2":{"22":1}}],["mlirfunctiontypegettypeid",{"2":{"22":1}}],["mlirfunctiontypegetresult",{"2":{"22":1}}],["mlirfunctiontypegetnumresults",{"2":{"22":1}}],["mlirfunctiontypegetnuminputs",{"2":{"22":1}}],["mlirfunctiontypegetinput",{"2":{"22":1}}],["mlirfunctiontypeget",{"2":{"22":1}}],["mlirfuncsetargattr",{"2":{"22":1}}],["mlirfunc",{"2":{"0":2,"10":1}}],["mlirexternalpasssignalfailure",{"2":{"22":1}}],["mlirexternalpasscallbacks",{"2":{"22":2}}],["mlirexecutionengineregistersymbol",{"2":{"22":1}}],["mlirexecutionenginelookuppacked",{"2":{"22":1}}],["mlirexecutionenginelookup",{"2":{"22":1}}],["mlirexecutionengineisnull",{"2":{"22":1}}],["mlirexecutionengineinvokepacked",{"2":{"22":1}}],["mlirexecutionenginedumptoobjectfile",{"2":{"22":1}}],["mlirexecutionenginedestroy",{"2":{"22":1}}],["mlirexecutionenginecreate",{"2":{"22":1}}],["mlirenableglobaldebug",{"2":{"22":1}}],["mliremiterror",{"2":{"22":1}}],["mlirelementsattrisvalidindex",{"2":{"22":1}}],["mlirelementsattrgetvalue",{"2":{"22":1}}],["mlirelementsattrgetnumelements",{"2":{"22":1}}],["mlirdisctinctattrcreate",{"2":{"22":1}}],["mlirdictionaryattrgettypeid",{"2":{"22":1}}],["mlirdictionaryattrgetnumelements",{"2":{"22":1}}],["mlirdictionaryattrgetelementbyname",{"2":{"22":1}}],["mlirdictionaryattrgetelement",{"2":{"22":1}}],["mlirdictionaryattrget",{"2":{"22":1}}],["mlirdialectregistryisnull",{"2":{"22":1}}],["mlirdialectregistrydestroy",{"2":{"22":1}}],["mlirdialectregistrycreate",{"2":{"22":1}}],["mlirdialectisnull",{"2":{"22":1}}],["mlirdialecthandleregisterdialect",{"2":{"22":1}}],["mlirdialecthandleloaddialect",{"2":{"22":1}}],["mlirdialecthandleinsertdialect",{"2":{"22":1}}],["mlirdialecthandlegetnamespace",{"2":{"22":1}}],["mlirdialectgetnamespace",{"2":{"22":1}}],["mlirdialectgetcontext",{"2":{"22":1}}],["mlirdialectequal",{"2":{"22":1}}],["mlirdiagnosticprint",{"2":{"22":1}}],["mlirdiagnosticgetseverity",{"2":{"22":1}}],["mlirdiagnosticgetnumnotes",{"2":{"22":1}}],["mlirdiagnosticgetnote",{"2":{"22":1}}],["mlirdiagnosticgetlocation",{"2":{"22":1}}],["mlirdiagnosticseverity",{"2":{"22":1}}],["mlirdiagnostichandlerid",{"2":{"22":1}}],["mlirdiagnostichandler",{"2":{"22":1}}],["mlirdiagnostic",{"2":{"22":1}}],["mlirdenseintorfpelementsattrgettypeid",{"2":{"22":1}}],["mlirdenseelementsattrstringget",{"2":{"22":1}}],["mlirdenseelementsattrsplatget",{"2":{"22":1}}],["mlirdenseelementsattrreshapeget",{"2":{"22":1}}],["mlirdenseelementsattrrawbufferget",{"2":{"22":1}}],["mlirdenseelementsattrissplat",{"2":{"22":1}}],["mlirdenseelementsattrgetsplatvalue",{"2":{"22":1}}],["mlirdenseelementsattrgetrawdata",{"2":{"22":1}}],["mlirdenseelementsattrgetboolvalue",{"2":{"22":1}}],["mlirdenseelementsattrget",{"2":{"22":1}}],["mlirdenseelementsattrboolget",{"2":{"22":1}}],["mlirdenseboolresourceelementsattrgetvalue",{"2":{"22":1}}],["mlirdenseboolarraygetelement",{"2":{"22":1}}],["mlirdenseboolarrayget",{"2":{"22":1}}],["mlirdensearraygetnumelements",{"2":{"22":1}}],["mlircreateexternalpass",{"2":{"22":1}}],["mlircomplextypegettypeid",{"2":{"22":1}}],["mlircomplextypegetelementtype",{"2":{"22":1}}],["mlircomplextypeget",{"2":{"22":1}}],["mlircontextsetthreadpool",{"2":{"22":1}}],["mlircontextsetallowunregistereddialects",{"2":{"22":1}}],["mlircontextisregisteredoperation",{"2":{"22":1}}],["mlircontextisnull",{"2":{"22":1}}],["mlircontextloadallavailabledialects",{"2":{"22":1}}],["mlircontextload",{"2":{"22":1}}],["mlircontextgetorloaddialect",{"2":{"22":1}}],["mlircontextgetnumregistereddialects",{"2":{"22":1}}],["mlircontextgetnumloadeddialects",{"2":{"22":1}}],["mlircontextgetallowunregistereddialects",{"2":{"22":1}}],["mlircontextequal",{"2":{"22":1}}],["mlircontextenablemultithreading",{"2":{"22":1}}],["mlircontextdetachdiagnostichandler",{"2":{"22":1}}],["mlircontextdestroy",{"2":{"22":1}}],["mlircontextcreatewiththreading",{"2":{"22":1}}],["mlircontextcreatewithregistry",{"2":{"22":1}}],["mlircontextcreate",{"2":{"22":1}}],["mlircontextattachdiagnostichandler",{"2":{"22":1}}],["mlircontextappenddialectregistry",{"2":{"22":1}}],["mlircontext",{"2":{"22":2}}],["mlircalibratedquantizedtypegetmin",{"2":{"22":1}}],["mlircalibratedquantizedtypegetmax",{"2":{"22":1}}],["mlircalibratedquantizedtypeget",{"2":{"22":1}}],["mlirbytecodewriterconfigdesiredemitversion",{"2":{"22":1}}],["mlirbytecodewriterconfigdestroy",{"2":{"22":2}}],["mlirbytecodewriterconfigcreate",{"2":{"22":2}}],["mlirboolattrgetvalue",{"2":{"22":1}}],["mlirboolattrget",{"2":{"22":1}}],["mlirblockprint",{"2":{"22":1}}],["mlirblockisnull",{"2":{"22":1}}],["mlirblockinsertownedoperationbefore",{"2":{"22":1}}],["mlirblockinsertownedoperationafter",{"2":{"22":1}}],["mlirblockinsertownedoperation",{"2":{"22":1}}],["mlirblockinsertargument",{"2":{"22":1}}],["mlirblockgetterminator",{"2":{"22":1}}],["mlirblockgetparentregion",{"2":{"22":1}}],["mlirblockgetparentoperation",{"2":{"22":1}}],["mlirblockgetnumarguments",{"2":{"22":1}}],["mlirblockgetnextinregion",{"2":{"22":1}}],["mlirblockgetfirstoperation",{"2":{"22":1}}],["mlirblockgetargument",{"2":{"22":1}}],["mlirblockeraseargument",{"2":{"22":1}}],["mlirblockequal",{"2":{"22":1}}],["mlirblockdetach",{"2":{"22":1}}],["mlirblockdestroy",{"2":{"22":1}}],["mlirblockcreate",{"2":{"22":1}}],["mlirblockargumentsettype",{"2":{"22":1}}],["mlirblockargumentgetowner",{"2":{"22":1}}],["mlirblockargumentgetargnumber",{"2":{"22":1}}],["mlirblockappendownedoperation",{"2":{"22":1}}],["mlirblockaddargument",{"2":{"22":1}}],["mlirbfloat16typegettypeid",{"2":{"22":1}}],["mlirbf16typeget",{"2":{"22":1}}],["mlirwalkresult",{"2":{"22":1}}],["mlirwalkorder",{"2":{"22":1}}],["mlirsymboltablewalksymboltables",{"2":{"22":1}}],["mlirsymboltablereplaceallsymboluses",{"2":{"22":1}}],["mlirsymboltablelookup",{"2":{"22":1}}],["mlirsymboltableisnull",{"2":{"22":1}}],["mlirsymboltableinsert",{"2":{"22":1}}],["mlirsymboltablegetvisibilityattributename",{"2":{"22":1}}],["mlirsymboltablegetsymbolattributename",{"2":{"22":1}}],["mlirsymboltableerase",{"2":{"22":1}}],["mlirsymboltabledestroy",{"2":{"22":1}}],["mlirsymboltablecreate",{"2":{"22":2}}],["mlirsymbolrefattrgettypeid",{"2":{"22":1}}],["mlirsymbolrefattrgetrootreference",{"2":{"22":1}}],["mlirsymbolrefattrgetnumnestedreferences",{"2":{"22":1}}],["mlirsymbolrefattrgetnestedreference",{"2":{"22":1}}],["mlirsymbolrefattrgetleafreference",{"2":{"22":1}}],["mlirsymbolrefattrget",{"2":{"22":1}}],["mlirstridedlayoutattrgettypeid",{"2":{"22":1}}],["mlirstringattrtypedget",{"2":{"22":1}}],["mlirstringattrgetvalue",{"2":{"22":1}}],["mlirstringattrgettypeid",{"2":{"22":1}}],["mlirstringattrget",{"2":{"22":1}}],["mlirstringrefequal",{"2":{"22":1}}],["mlirstringrefcreatefromcstring",{"2":{"22":1}}],["mlirstringrefcreate",{"2":{"22":2}}],["mlirstringref",{"2":{"22":2}}],["mlirstringcallback",{"2":{"22":1}}],["mlirsparsetensorencodinggetlvlrank",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetposwidth",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetlvltype",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetlvltodim",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetlvlfmt",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetimplicitval",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetexplicitval",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetdimtolvl",{"2":{"22":1}}],["mlirsparsetensorencodingattrgetcrdwidth",{"2":{"22":1}}],["mlirsparsetensorencodingattrget",{"2":{"22":1}}],["mlirsparsetensorleveltype",{"2":{"22":1}}],["mlirsparseelementsattribute",{"2":{"22":1}}],["mlirsparseelementsattrgetvalues",{"2":{"22":1}}],["mlirsparseelementsattrgettypeid",{"2":{"22":1}}],["mlirsparseelementsattrgetindices",{"2":{"22":1}}],["mlirshapedtypeisdynamicstrideoroffset",{"2":{"22":1}}],["mlirshapedtypeisdynamicsize",{"2":{"22":2}}],["mlirshapedtypeisdynamicdim",{"2":{"22":1}}],["mlirshapedtypehasstaticshape",{"2":{"22":1}}],["mlirshapedtypehasrank",{"2":{"22":1}}],["mlirshapedtypegetrank",{"2":{"22":1}}],["mlirshapedtypegetelementtype",{"2":{"22":1}}],["mlirshapedtypegetdynamicstrideoroffset",{"2":{"22":2}}],["mlirshapedtypegetdynamicsize",{"2":{"22":1}}],["mlirshapedtypegetdimsize",{"2":{"22":1}}],["mlirshapedtypecomponentscallback",{"2":{"22":1}}],["mlirsetglobaldebugtypes",{"2":{"22":1}}],["mlirsetglobaldebugtype",{"2":{"22":1}}],["mliropaquetypegettypeid",{"2":{"22":1}}],["mliropaquetypegetdialectnamespace",{"2":{"22":1}}],["mliropaquetypegetdata",{"2":{"22":1}}],["mliropaquetypeget",{"2":{"22":1}}],["mliropaqueattrgettypeid",{"2":{"22":1}}],["mliropaqueattrgetdialectnamespace",{"2":{"22":1}}],["mliropaqueattrgetdata",{"2":{"22":1}}],["mliropaqueattrget",{"2":{"22":1}}],["mliropresultgetresultnumber",{"2":{"22":1}}],["mliropresultgetowner",{"2":{"22":1}}],["mliropprintingflagsuselocalscope",{"2":{"22":1}}],["mliropprintingflagsskipregions",{"2":{"22":1}}],["mliropprintingflagsprintgenericopform",{"2":{"22":1}}],["mliropprintingflagsenabledebuginfo",{"2":{"22":1}}],["mliropprintingflagselidelargeresourcestring",{"2":{"22":1}}],["mliropprintingflagselidelargeelementsattrs",{"2":{"22":1}}],["mliropprintingflagsdestroy",{"2":{"22":2}}],["mliropprintingflagscreate",{"2":{"22":2}}],["mliropprintingflagsassumeverified",{"2":{"22":1}}],["mliroppassmanagergetnestedunder",{"2":{"22":1}}],["mliroppassmanageraddpipeline",{"2":{"22":1}}],["mliroppassmanageraddownedpass",{"2":{"22":1}}],["mliroppassmanager",{"2":{"22":1}}],["mliroppassmanagernest",{"2":{"21":1,"22":1}}],["mliropoperandisnull",{"2":{"22":1}}],["mliropoperandgetvalue",{"2":{"22":1}}],["mliropoperandgetowner",{"2":{"22":1}}],["mliropoperandgetoperandnumber",{"2":{"22":1}}],["mliropoperandgetnextuse",{"2":{"22":1}}],["mlirop",{"2":{"22":2}}],["mliroperationwritebytecodewithconfig",{"2":{"22":1}}],["mliroperationwritebytecode",{"2":{"22":2}}],["mliroperationwalk",{"2":{"22":1}}],["mliroperationwalkcallback",{"2":{"22":1}}],["mliroperationverify",{"2":{"22":1}}],["mliroperationsetsuccessor",{"2":{"22":1}}],["mliroperationsetoperands",{"2":{"22":1}}],["mliroperationsetoperand",{"2":{"22":1}}],["mliroperationsetdiscardableattributebyname",{"2":{"22":2}}],["mliroperationsetinherentattributebyname",{"2":{"22":2}}],["mliroperationsetattributebyname",{"2":{"22":1}}],["mliroperationstateget",{"2":{"22":1}}],["mliroperationstateenableresulttypeinference",{"2":{"22":1}}],["mliroperationstateaddresults",{"2":{"22":2}}],["mliroperationstate",{"2":{"22":2}}],["mliroperationremovefromparent",{"2":{"22":1}}],["mliroperationremovediscardableattributebyname",{"2":{"22":3}}],["mliroperationremoveinherentattributebyname",{"2":{"22":1}}],["mliroperationremoveattributebyname",{"2":{"22":1}}],["mliroperationprintwithstate",{"2":{"22":1}}],["mliroperationprintwithflags",{"2":{"22":1}}],["mliroperationprint",{"2":{"22":4}}],["mliroperationmovebefore",{"2":{"22":1}}],["mliroperationmoveafter",{"2":{"22":1}}],["mliroperationisnull",{"2":{"22":1}}],["mliroperationimplementsinterfacestatic",{"2":{"22":1}}],["mliroperationimplementsinterface",{"2":{"22":1}}],["mliroperationhasinherentattributebyname",{"2":{"22":1}}],["mliroperationgettypeid",{"2":{"22":1}}],["mliroperationgetsuccessor",{"2":{"22":1}}],["mliroperationgetresult",{"2":{"22":1}}],["mliroperationgetregion",{"2":{"22":1}}],["mliroperationgetparentoperation",{"2":{"22":1}}],["mliroperationgetoperand",{"2":{"22":1}}],["mliroperationgetnumsuccessors",{"2":{"22":1}}],["mliroperationgetnumresults",{"2":{"22":1}}],["mliroperationgetnumregions",{"2":{"22":1}}],["mliroperationgetnumoperands",{"2":{"22":1}}],["mliroperationgetnumdiscardableattributes",{"2":{"22":2}}],["mliroperationgetnuminherentattributes",{"2":{"22":1}}],["mliroperationgetnumattributes",{"2":{"22":1}}],["mliroperationgetnextinblock",{"2":{"22":1}}],["mliroperationgetname",{"2":{"22":1}}],["mliroperationgetlocation",{"2":{"22":1}}],["mliroperationgetfirstregion",{"2":{"22":1}}],["mliroperationgetcontext",{"2":{"22":1}}],["mliroperationgetblock",{"2":{"22":1}}],["mliroperationgetdiscardableattributebyname",{"2":{"22":2}}],["mliroperationgetdiscardableattribute",{"2":{"22":2}}],["mliroperationgetinherentattributebyname",{"2":{"22":3}}],["mliroperationgetinherentattribute",{"2":{"22":1}}],["mliroperationgetattributebyname",{"2":{"22":1}}],["mliroperationgetattribute",{"2":{"22":1}}],["mliroperationequal",{"2":{"22":1}}],["mliroperationdump",{"2":{"22":1}}],["mliroperationdestroy",{"2":{"22":1}}],["mliroperationcreateparse",{"2":{"22":1}}],["mliroperationcreate",{"2":{"22":2}}],["mliroperationclone",{"2":{"22":1}}],["mlirlocationunknownget",{"2":{"22":1}}],["mlirlocationprint",{"2":{"22":1}}],["mlirlocationnameget",{"2":{"22":1}}],["mlirlocationisnull",{"2":{"22":1}}],["mlirlocationgetcontext",{"2":{"22":1}}],["mlirlocationgetattribute",{"2":{"22":1}}],["mlirlocationfusedget",{"2":{"22":1}}],["mlirlocationfromattribute",{"2":{"22":1}}],["mlirlocationfilelinecolget",{"2":{"22":1}}],["mlirlocationequal",{"2":{"22":1}}],["mlirlocationcallsiteget",{"2":{"22":1}}],["mlirloadirdldialects",{"2":{"22":1}}],["mlirlogicalresultsuccess",{"2":{"22":1}}],["mlirlogicalresultissuccess",{"2":{"22":1}}],["mlirlogicalresultisfailure",{"2":{"22":1}}],["mlirlogicalresultfailure",{"2":{"22":1}}],["mlirlogicalresult",{"2":{"22":2}}],["mlirlinalgfillbuiltinnamedopregion",{"2":{"22":1}}],["mlirllvmvoidtypeget",{"2":{"22":1}}],["mlirllvmstructtypeliteralgetchecked",{"2":{"22":1}}],["mlirllvmstructtypeliteralget",{"2":{"22":1}}],["mlirllvmstructtypeispacked",{"2":{"22":1}}],["mlirllvmstructtypeisopaque",{"2":{"22":1}}],["mlirllvmstructtypeisliteral",{"2":{"22":1}}],["mlirllvmstructtypeidentifiednewget",{"2":{"22":2}}],["mlirllvmstructtypeidentifiedget",{"2":{"22":1}}],["mlirllvmstructtypesetbody",{"2":{"22":2}}],["mlirllvmstructtypegetnumelementtypes",{"2":{"22":1}}],["mlirllvmstructtypegetidentifier",{"2":{"22":1}}],["mlirllvmstructtypegetelementtype",{"2":{"22":1}}],["mlirllvmpointertypegetaddressspace",{"2":{"22":1}}],["mlirllvmpointertypeget",{"2":{"22":1}}],["mlirllvmlinkageattrget",{"2":{"22":1}}],["mlirllvmfunctiontypeget",{"2":{"22":1}}],["mlirllvmdisubroutinetypeattrget",{"2":{"22":1}}],["mlirllvmdisubprogramattrgettype",{"2":{"22":1}}],["mlirllvmdisubprogramattrgetscopeline",{"2":{"22":1}}],["mlirllvmdisubprogramattrgetscope",{"2":{"22":1}}],["mlirllvmdisubprogramattrgetrecself",{"2":{"22":1}}],["mlirllvmdisubprogramattrgetline",{"2":{"22":1}}],["mlirllvmdisubprogramattrgetfile",{"2":{"22":1}}],["mlirllvmdisubprogramattrgetcompileunit",{"2":{"22":1}}],["mlirllvmdisubprogramattrget",{"2":{"22":1}}],["mlirllvmdinulltypeattrget",{"2":{"22":1}}],["mlirllvmdimoduleattrgetscope",{"2":{"22":1}}],["mlirllvmdimoduleattrget",{"2":{"22":1}}],["mlirllvmdilocalvariableattrget",{"2":{"22":1}}],["mlirllvmdilexicalblockfileattrget",{"2":{"22":1}}],["mlirllvmdilexicalblockattrget",{"2":{"22":1}}],["mlirllvmdiimportedentityattrget",{"2":{"22":1}}],["mlirllvmdiflagsattrget",{"2":{"22":1}}],["mlirllvmdifileattrget",{"2":{"22":1}}],["mlirllvmdiexpressionelemattrget",{"2":{"22":1}}],["mlirllvmdiexpressionattrget",{"2":{"22":1}}],["mlirllvmdiderivedtypeattrgetbasetype",{"2":{"22":1}}],["mlirllvmdiderivedtypeattrget",{"2":{"22":1}}],["mlirllvmdicompositetypeattrgetrecself",{"2":{"22":1}}],["mlirllvmdicompositetypeattrget",{"2":{"22":1}}],["mlirllvmdicompileunitattrget",{"2":{"22":1}}],["mlirllvmdibasictypeattrget",{"2":{"22":1}}],["mlirllvmdiannotationattrget",{"2":{"22":1}}],["mlirllvmcomdatattrget",{"2":{"22":1}}],["mlirllvmcconvattrget",{"2":{"22":1}}],["mlirllvmarraytypeget",{"2":{"22":1}}],["mlirllvmthreadpooldestroy",{"2":{"22":1}}],["mlirllvmthreadpoolcreate",{"2":{"22":1}}],["mlirllvmthreadpool",{"2":{"22":1}}],["mlirattribute",{"2":{"22":1}}],["mlirattributeprint",{"2":{"22":1}}],["mlirattributeparseget",{"2":{"22":1}}],["mlirattributeisnull",{"2":{"22":1}}],["mlirattributeisaunit",{"2":{"22":1}}],["mlirattributeisatype",{"2":{"22":1}}],["mlirattributeisasymbolref",{"2":{"22":1}}],["mlirattributeisastring",{"2":{"22":1}}],["mlirattributeisasparsetensorencodingattr",{"2":{"22":1}}],["mlirattributeisasparseelements",{"2":{"22":1}}],["mlirattributeisaopaque",{"2":{"22":1}}],["mlirattributeisaintegerset",{"2":{"22":1}}],["mlirattributeisainteger",{"2":{"22":1}}],["mlirattributeisafloat",{"2":{"22":1}}],["mlirattributeisaflatsymbolref",{"2":{"22":1}}],["mlirattributeisaelements",{"2":{"22":1}}],["mlirattributeisadictionary",{"2":{"22":1}}],["mlirattributeisadenseelements",{"2":{"22":1}}],["mlirattributeisadenseboolarray",{"2":{"22":1}}],["mlirattributeisabool",{"2":{"22":1}}],["mlirattributeisaarray",{"2":{"22":1}}],["mlirattributeisaaffinemap",{"2":{"22":1}}],["mlirattributegettypeid",{"2":{"22":1}}],["mlirattributegettype",{"2":{"22":1}}],["mlirattributegetdialect",{"2":{"22":1}}],["mlirattributegetcontext",{"2":{"22":1}}],["mlirattributegetnull",{"2":{"21":1,"22":2}}],["mlirattributeequal",{"2":{"22":1}}],["mlirattributedump",{"2":{"22":1}}],["mlirasmstatecreate",{"2":{"22":1}}],["mlirasmstatecreateforvalue",{"2":{"22":1}}],["mlirasmstatecreateforoperation",{"2":{"22":1}}],["mlirasmstatedestroy",{"2":{"22":3}}],["mlirarrayattrgettypeid",{"2":{"22":1}}],["mlirarrayattrgetnumelements",{"2":{"22":1}}],["mlirarrayattrgetelement",{"2":{"22":1}}],["mlirarrayattrget",{"2":{"22":1}}],["mliranyquantizedtypeget",{"2":{"22":1}}],["mliraffinesymbolexprgetposition",{"2":{"22":1}}],["mliraffinesymbolexprget",{"2":{"22":1}}],["mliraffinemulexprget",{"2":{"22":1}}],["mliraffinemodexprget",{"2":{"22":1}}],["mliraffinemapzeroresultget",{"2":{"22":1}}],["mliraffinemapreplace",{"2":{"22":1}}],["mliraffinemapprint",{"2":{"22":1}}],["mliraffinemappermutationget",{"2":{"22":1}}],["mliraffinemapmultidimidentityget",{"2":{"22":1}}],["mliraffinemapminoridentityget",{"2":{"22":1}}],["mliraffinemapissingleconstant",{"2":{"22":1}}],["mliraffinemapisprojectedpermutation",{"2":{"22":1}}],["mliraffinemapispermutation",{"2":{"22":1}}],["mliraffinemapisnull",{"2":{"22":1}}],["mliraffinemapisminoridentity",{"2":{"22":1}}],["mliraffinemapisidentity",{"2":{"22":1}}],["mliraffinemapisempty",{"2":{"22":1}}],["mliraffinemapgetsubmap",{"2":{"22":1}}],["mliraffinemapgetsingleconstantresult",{"2":{"22":1}}],["mliraffinemapgetresult",{"2":{"22":1}}],["mliraffinemapgetnumsymbols",{"2":{"22":1}}],["mliraffinemapgetnumresults",{"2":{"22":1}}],["mliraffinemapgetnuminputs",{"2":{"22":1}}],["mliraffinemapgetnumdims",{"2":{"22":1}}],["mliraffinemapgetminorsubmap",{"2":{"22":1}}],["mliraffinemapgetmajorsubmap",{"2":{"22":1}}],["mliraffinemapgetcontext",{"2":{"22":1}}],["mliraffinemapget",{"2":{"22":1}}],["mliraffinemapequal",{"2":{"22":1}}],["mliraffinemapemptyget",{"2":{"22":1}}],["mliraffinemapdump",{"2":{"22":1}}],["mliraffinemapconstantget",{"2":{"22":1}}],["mliraffinemapcompressunusedsymbols",{"2":{"22":1}}],["mliraffinemapattrgetvalue",{"2":{"22":1}}],["mliraffinemapattrgettypeid",{"2":{"22":1}}],["mliraffinemapattrget",{"2":{"22":1}}],["mliraffinefloordivexprget",{"2":{"22":1}}],["mliraffineexprprint",{"2":{"22":1}}],["mliraffineexprissymbolicorconstant",{"2":{"22":1}}],["mliraffineexprispureaffine",{"2":{"22":1}}],["mliraffineexprisnull",{"2":{"22":1}}],["mliraffineexprismultipleof",{"2":{"22":1}}],["mliraffineexprisfunctionofdim",{"2":{"22":1}}],["mliraffineexprisasymbol",{"2":{"22":1}}],["mliraffineexprisamul",{"2":{"22":1}}],["mliraffineexprisamod",{"2":{"22":1}}],["mliraffineexprisafloordiv",{"2":{"22":1}}],["mliraffineexprisadim",{"2":{"22":1}}],["mliraffineexprisaconstant",{"2":{"22":1}}],["mliraffineexprisaceildiv",{"2":{"22":1}}],["mliraffineexprisabinary",{"2":{"22":1}}],["mliraffineexprisaadd",{"2":{"22":1}}],["mliraffineexprgetlargestknowndivisor",{"2":{"22":1}}],["mliraffineexprgetcontext",{"2":{"22":1}}],["mliraffineexprequal",{"2":{"22":1}}],["mliraffineexprdump",{"2":{"22":1}}],["mliraffineexprcompose",{"2":{"22":1}}],["mliraffinedimexprgetposition",{"2":{"22":1}}],["mliraffinedimexprget",{"2":{"22":1}}],["mliraffineconstantexprgetvalue",{"2":{"22":1}}],["mliraffineconstantexprget",{"2":{"22":1}}],["mliraffineceildivexprget",{"2":{"22":1}}],["mliraffinebinaryopexprgetrhs",{"2":{"22":1}}],["mliraffinebinaryopexprgetlhs",{"2":{"22":1}}],["mliraffineaddexprget",{"2":{"22":1}}],["mliraffine",{"2":{"0":7}}],["mlir",{"0":{"22":1},"2":{"0":27,"6":78,"7":3,"8":47,"9":1,"10":11,"11":3,"20":230,"21":257,"22":761}}],["dwarf",{"2":{"22":1}}],["dwarfaddressspace",{"2":{"22":2}}],["dropping",{"2":{"22":1}}],["dbgrecord",{"2":{"22":1}}],["d3",{"2":{"21":1}}],["d2",{"2":{"21":3}}],["dynstrideoroffset",{"2":{"21":1}}],["dynsize",{"2":{"21":1}}],["dynamiclibrary",{"2":{"22":3}}],["dynamically",{"2":{"20":8}}],["dynamic",{"2":{"20":33,"21":5,"22":8}}],["duration",{"2":{"22":1}}],["during",{"2":{"7":1,"22":3}}],["dumping",{"2":{"22":1}}],["dump",{"2":{"21":1,"22":1}}],["dummy",{"2":{"3":1}}],["duplicating",{"2":{"20":1}}],["due",{"2":{"5":2}}],["dataismutable",{"2":{"22":2}}],["dataalignment",{"2":{"22":1}}],["datalocation",{"2":{"22":1}}],["datalength",{"2":{"21":1,"22":2}}],["datatypes",{"2":{"5":1}}],["data",{"2":{"0":4,"18":5,"20":4,"21":17,"22":25}}],["d",{"2":{"0":2,"6":3}}],["done",{"2":{"21":1,"22":1}}],["donated",{"2":{"5":2}}],["double",{"2":{"21":4,"22":3}}],["dot",{"2":{"20":11}}],["docs",{"2":{"20":109}}],["documented",{"2":{"11":1}}],["documentation",{"2":{"0":1,"6":1,"7":1,"8":1,"10":1,"12":1,"20":1,"22":2}}],["downstream",{"2":{"6":1}}],["do",{"2":{"5":1,"17":1,"20":1,"21":1,"22":2}}],["domain",{"2":{"0":1}}],["does",{"2":{"0":2,"7":1,"10":1,"20":10,"21":5,"22":12}}],["deallocates",{"2":{"22":1}}],["deprecated",{"2":{"22":5}}],["dependentdialects",{"2":{"22":1}}],["depending",{"2":{"20":3}}],["depend",{"2":{"20":2}}],["debugging",{"2":{"22":2}}],["debug",{"2":{"22":10}}],["debug=false",{"2":{"21":1}}],["deleter",{"2":{"22":2}}],["deleted",{"2":{"22":2}}],["deletes",{"2":{"22":1}}],["deleteuserdata",{"2":{"22":2}}],["delete",{"2":{"21":1}}],["delinearize",{"2":{"0":4}}],["deep",{"2":{"21":3,"22":6}}],["dequantize",{"2":{"20":4}}],["denote",{"2":{"20":1}}],["densevalues",{"2":{"22":1}}],["denseindices",{"2":{"22":1}}],["denseintorfpelements",{"2":{"22":1}}],["densely",{"2":{"22":1}}],["denseelementsattribute",{"2":{"21":3}}],["dense",{"2":{"20":21,"21":8,"22":20}}],["device",{"2":{"18":1,"20":1}}],["deviations",{"2":{"3":1}}],["decomposition",{"2":{"20":5}}],["decompositions",{"2":{"8":1}}],["declared",{"2":{"10":1}}],["declaration",{"2":{"10":1,"22":1}}],["desired",{"2":{"22":1}}],["designate",{"2":{"21":1,"22":1}}],["description",{"2":{"21":1,"22":2}}],["described",{"2":{"0":1}}],["dest",{"2":{"22":3}}],["destroy",{"2":{"22":3}}],["destroys",{"2":{"22":11}}],["destroyed",{"2":{"21":6,"22":8}}],["destructor",{"2":{"22":1}}],["destruct",{"2":{"22":1}}],["destination",{"2":{"6":8}}],["detaches",{"2":{"22":1}}],["detached",{"2":{"22":1}}],["detach",{"2":{"22":3}}],["details>",{"2":{"20":1}}],["details",{"2":{"0":1,"6":1,"7":1,"8":1,"10":1,"12":1,"20":2,"22":1}}],["determines",{"2":{"0":2}}],["determine",{"2":{"0":2}}],["determined",{"2":{"0":1}}],["default>",{"2":{"20":4}}],["default",{"2":{"6":3,"11":1,"15":3,"20":2,"21":1,"22":5}}],["defaults",{"2":{"0":2,"20":1,"22":2}}],["definitions",{"2":{"10":1}}],["defining",{"2":{"0":1,"22":2}}],["define",{"2":{"22":1}}],["defined",{"2":{"0":6,"3":2,"7":1,"10":1,"20":3,"21":3,"22":3}}],["defines",{"2":{"0":3,"6":2,"22":1}}],["d1",{"2":{"0":5,"21":6}}],["d0",{"2":{"0":11,"21":3}}],["dinulltype",{"2":{"22":1}}],["ditype",{"2":{"22":1}}],["dilalect",{"2":{"22":1}}],["dilations",{"2":{"20":2}}],["dilation",{"2":{"20":2}}],["dilate",{"2":{"20":2}}],["dilocalvariableattr",{"2":{"22":1}}],["dilexicalblockfile",{"2":{"22":1}}],["dilexicalblock",{"2":{"22":1}}],["diimportedentityattr",{"2":{"22":1}}],["difile",{"2":{"22":1}}],["difileattr",{"2":{"22":1}}],["diflags",{"2":{"22":1}}],["difference",{"2":{"21":1,"22":1}}],["different",{"2":{"6":2,"7":1,"11":1,"21":2,"22":5}}],["diexpressionelem",{"2":{"22":1}}],["diexpression",{"2":{"22":1}}],["diderivedtype",{"2":{"22":3}}],["dicompositetype",{"2":{"22":2}}],["dicompileunit",{"2":{"22":1}}],["dictionary",{"2":{"20":1,"21":2,"22":7}}],["dictionaries",{"2":{"10":1}}],["dibasictype",{"2":{"22":1}}],["dibuilder",{"2":{"22":1}}],["diannotation",{"2":{"22":1}}],["diagnostic",{"2":{"22":23}}],["diagnosticinfo",{"2":{"22":1}}],["diagnostics",{"2":{"21":7,"22":11}}],["diagonal",{"2":{"20":1}}],["dialect2",{"2":{"22":1}}],["dialect1",{"2":{"22":1}}],["dialectregistry",{"2":{"22":1}}],["dialectnamespace",{"2":{"21":2,"22":2}}],["dialectname",{"2":{"10":2}}],["dialects",{"2":{"0":13,"6":44,"7":2,"8":47,"9":1,"10":5,"11":1,"20":117,"21":1,"22":13}}],["dialect",{"0":{"0":1,"6":1,"7":1,"8":1,"9":1,"10":1,"12":1,"20":1},"2":{"10":1,"21":7,"22":41}}],["digamma",{"2":{"8":3}}],["directory",{"2":{"22":1}}],["direct",{"2":{"10":2,"21":2,"22":2}}],["direction",{"2":{"8":3,"20":1}}],["directly",{"2":{"5":1,"8":1,"10":1,"11":1,"22":3}}],["disubroutinetypeattr",{"2":{"22":1}}],["disubprogram",{"2":{"22":8}}],["disubprogramattr",{"2":{"22":6}}],["disables",{"2":{"22":2}}],["disable",{"2":{"21":1,"22":2}}],["disallowing",{"2":{"10":1}}],["distribution",{"2":{"20":2}}],["distant",{"2":{"6":3}}],["discardable",{"2":{"22":5}}],["discarded",{"2":{"6":1}}],["discriminator",{"2":{"22":1}}],["disctinctattr",{"2":{"22":1}}],["discussion",{"2":{"20":1}}],["disjoint",{"2":{"20":1}}],["div",{"2":{"21":1}}],["divui",{"2":{"6":5}}],["divsi",{"2":{"6":5}}],["diverging",{"2":{"6":1}}],["divide",{"2":{"8":2,"20":4}}],["dividend",{"2":{"6":1,"20":2}}],["divided",{"2":{"6":10}}],["dividing",{"2":{"0":1}}],["divisor",{"2":{"20":2,"21":1,"22":1}}],["divison",{"2":{"6":3}}],["division",{"2":{"6":33,"20":1}}],["dimtolvl",{"2":{"22":1}}],["dimodule",{"2":{"22":1}}],["dimoduleattr",{"2":{"22":2}}],["dimcount",{"2":{"22":2}}],["dimreplacements",{"2":{"21":2,"22":2}}],["dims",{"2":{"20":19,"21":1,"22":3}}],["dim",{"2":{"0":9,"20":21,"22":6}}],["dimensions",{"2":{"0":6,"20":24,"21":17,"22":18}}],["dimensional",{"2":{"0":3,"22":3}}],["dimension",{"2":{"0":10,"8":1,"20":25,"21":5,"22":11}}],["td",{"2":{"22":1}}],["t2",{"2":{"21":1,"22":1}}],["t1",{"2":{"21":1,"22":1}}],["tf",{"2":{"20":4}}],["tf32",{"2":{"20":2,"22":3}}],["tunnel",{"2":{"22":1}}],["tutorials",{"0":{"19":1},"2":{"19":1}}],["tuple",{"2":{"7":7,"11":1,"20":16,"21":3,"22":5}}],["typing",{"2":{"17":1}}],["type2",{"2":{"22":1}}],["typeid",{"2":{"21":4,"22":48}}],["typeid2",{"2":{"21":1,"22":1}}],["typeid1",{"2":{"21":1,"22":1}}],["type=",{"2":{"20":1}}],["type>",{"2":{"7":2}}],["typedata",{"2":{"21":1,"22":1}}],["typed",{"2":{"6":3,"20":1,"22":4}}],["types",{"2":{"0":1,"6":3,"7":3,"8":3,"10":3,"18":1,"21":10,"22":24}}],["type",{"2":{"0":13,"3":3,"6":59,"7":19,"8":2,"10":3,"18":1,"20":19,"21":227,"22":468}}],["tpu",{"2":{"15":1}}],["tpus",{"2":{"15":1}}],["twice",{"2":{"10":1}}],["two",{"2":{"0":2,"6":24,"8":2,"18":1,"20":7,"21":11,"22":18}}],["tag",{"2":{"22":4}}],["tagged",{"2":{"22":1}}],["tables",{"2":{"22":3}}],["table",{"2":{"21":7,"22":13}}],["tanh",{"2":{"20":4}}],["tangent",{"2":{"20":2}}],["tan",{"2":{"8":4,"20":4}}],["taking",{"2":{"6":1,"20":1}}],["take",{"2":{"22":2}}],["taken",{"2":{"0":2}}],["takes",{"2":{"0":1,"6":13,"10":1,"20":1,"21":9,"22":18}}],["targets",{"2":{"6":2}}],["target",{"2":{"6":4,"20":4,"21":1,"22":5}}],["truncation",{"2":{"6":1}}],["truncate",{"2":{"6":1}}],["truncated",{"2":{"6":2}}],["trunci",{"2":{"6":5}}],["truncf",{"2":{"6":2}}],["true",{"2":{"6":5,"20":10,"21":5,"22":31}}],["treating",{"2":{"6":2}}],["treated",{"2":{"6":1,"21":1,"22":3}}],["treats",{"2":{"6":5}}],["tree",{"2":{"5":2}}],["traverse",{"2":{"22":1}}],["traversal",{"2":{"22":1}}],["trait",{"2":{"21":2,"22":2}}],["training",{"2":{"20":4}}],["translated",{"2":{"22":1}}],["translates",{"2":{"22":1}}],["translate",{"2":{"22":1}}],["translations",{"2":{"22":1}}],["translatable",{"2":{"21":1,"22":1}}],["transpose>",{"2":{"20":1}}],["transpose",{"2":{"20":6}}],["transformopinterface",{"2":{"22":1}}],["transformoptions",{"2":{"22":6}}],["transform",{"2":{"22":12}}],["transformmodule",{"2":{"22":1}}],["transformroot",{"2":{"22":1}}],["transformation",{"2":{"21":1,"22":2}}],["transformations",{"2":{"20":1}}],["transforms",{"2":{"20":1}}],["transferring",{"2":{"22":3}}],["transferred",{"2":{"21":4,"22":5}}],["transfers",{"2":{"21":5,"22":8}}],["transfer",{"2":{"0":2,"20":2,"21":2,"22":4}}],["tracing",{"2":{"18":1}}],["tracedrarray",{"2":{"18":1}}],["traced",{"2":{"3":3}}],["trace",{"2":{"3":10}}],["triangular",{"2":{"20":5}}],["trivial",{"2":{"0":1}}],["trip",{"2":{"0":2}}],["ties",{"2":{"20":2}}],["time",{"2":{"5":1}}],["times",{"2":{"0":1,"20":1,"22":13}}],["tiling",{"2":{"0":1}}],["testing",{"2":{"22":1}}],["text",{"2":{"22":1}}],["text=",{"2":{"20":1}}],["textual",{"2":{"0":1,"10":1,"21":2,"22":3}}],["temporary",{"2":{"7":1}}],["ten",{"2":{"6":1,"20":1}}],["tensortype",{"2":{"21":2}}],["tensorflow",{"2":{"8":17,"20":5}}],["tensors",{"2":{"6":2,"20":18,"22":1}}],["tensor",{"2":{"6":58,"10":10,"11":5,"20":431,"21":7,"22":18}}],["terminated",{"2":{"0":1,"21":2,"22":5}}],["terminate",{"2":{"0":1}}],["terminates",{"2":{"0":3}}],["termination",{"2":{"0":1}}],["terminator",{"2":{"0":4,"7":1,"21":3,"22":2}}],["tmp",{"2":{"0":4}}],["thread",{"2":{"22":5}}],["threading",{"2":{"22":1}}],["threadingenabled",{"2":{"22":2}}],["threadpool",{"2":{"22":2}}],["three",{"2":{"0":1,"20":1}}],["through",{"2":{"17":1,"18":1,"22":3}}],["thus",{"2":{"8":2}}],["those",{"2":{"6":1}}],["than",{"2":{"6":20,"20":1}}],["that",{"2":{"0":12,"3":1,"5":1,"6":7,"7":2,"10":4,"20":14,"21":23,"22":93}}],["th",{"2":{"0":1,"8":1,"21":13,"22":26}}],["thing",{"2":{"20":9,"22":1}}],["things",{"2":{"0":1}}],["third",{"2":{"6":2,"22":1}}],["this",{"2":{"0":5,"3":1,"6":27,"7":3,"8":1,"10":1,"20":24,"21":22,"22":93}}],["their",{"2":{"6":1,"8":1,"22":1}}],["them",{"2":{"3":1,"6":2,"7":1,"21":2,"22":13}}],["they",{"2":{"0":1,"6":1,"10":1,"20":1}}],["then",{"2":{"0":4,"2":1,"3":1,"6":12,"8":1,"17":1,"22":5}}],["thereof",{"2":{"6":3}}],["there",{"2":{"0":1,"3":1,"20":1,"21":2,"22":4}}],["these",{"2":{"0":9,"3":1,"5":1,"6":9,"7":1,"22":5}}],["the",{"2":{"0":188,"3":15,"5":21,"6":270,"7":8,"8":19,"10":28,"11":6,"12":1,"14":5,"17":2,"18":3,"20":163,"21":626,"22":1399}}],["t",{"2":{"0":3,"11":1,"21":9,"22":6}}],["tools",{"2":{"22":2}}],["tocallback`",{"2":{"22":10}}],["total",{"2":{"21":1,"22":2}}],["torch",{"2":{"20":4}}],["together",{"2":{"20":1}}],["token",{"2":{"20":19}}],["top",{"2":{"6":3,"7":1,"8":3,"21":5,"22":9}}],["towards",{"2":{"6":7,"20":3}}],["todo",{"2":{"6":3,"9":1,"21":1,"22":1}}],["todos",{"2":{"0":2}}],["to",{"0":{"14":1},"2":{"0":63,"3":4,"5":13,"6":53,"7":14,"8":5,"10":9,"11":4,"12":1,"14":2,"18":4,"19":1,"20":44,"21":61,"22":253}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR363/assets/chunks/VPLocalSearchBox.V5qolmxs.js b/previews/PR363/assets/chunks/VPLocalSearchBox.V5qolmxs.js new file mode 100644 index 00000000..7d3fbe31 --- /dev/null +++ b/previews/PR363/assets/chunks/VPLocalSearchBox.V5qolmxs.js @@ -0,0 +1,8 @@ +var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.2yyKLD8d.js";import{u as ss,c as ns}from"./theme.BAmTG_EB.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.eZ3rdr6k.js"),[])};/*! +* tabbable 6.2.0 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/var mt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=mt.join(","),gt=typeof Element>"u",ae=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Fe=!gt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Oe=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},bt=function(e,t,s){if(Oe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},yt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Oe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ae.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var m=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Oe(m,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(m&&f){var b=a(m===!0?i.children:m.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},re=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rs(e))&&!wt(e)?0:e.tabIndex},as=function(e,t){var s=re(e);return s<0&&t&&!wt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ls=function(e){return xt(e)&&e.type==="hidden"},cs=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ae.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var l=e.parentElement,c=Fe(e);if(l&&!l.shadowRoot&&n(l)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return ot(e);return!1},ms=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=as(o,i),c=i?a(n.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):s.push({documentOrder:r,tabIndex:l,item:n,isScope:i,content:c})}),s.sort(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=bt(e,t.includeContainer,Be.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=bt(e,t.includeContainer,Ce.bind(null,t)),s},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Ne)===!1?!1:Be(t,e)},xs=mt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,xs)===!1?!1:Ce(t,e)};/*! +* focus-trap 7.6.2 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/function We(a,e){(e==null||e>a.length)&&(e=a.length);for(var t=0,s=Array(e);t0){var s=e[e.length-1];s!==t&&s.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var s=e.indexOf(t);s!==-1&&e.splice(s,1),e.length>0&&e[e.length-1].unpause()}},Os=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Cs=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ge=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Rs=function(e){return ge(e)&&!e.shiftKey},As=function(e){return ge(e)&&e.shiftKey},dt=function(e){return setTimeout(e,0)},ve=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n1&&arguments[1]!==void 0?arguments[1]:{},g=d.hasFallback,T=g===void 0?!1:g,k=d.params,O=k===void 0?[]:k,S=r[u];if(typeof S=="function"&&(S=S.apply(void 0,Is(O))),S===!0&&(S=void 0),!S){if(S===void 0||S===!1)return S;throw new Error("`".concat(u,"` was specified but was not a node, or did not return a node"))}var C=S;if(typeof S=="string"){try{C=s.querySelector(S)}catch(v){throw new Error("`".concat(u,'` appears to be an invalid selector; error="').concat(v.message,'"'))}if(!C&&!T)throw new Error("`".concat(u,"` as selector refers to no known node"))}return C},m=function(){var u=h("initialFocus",{hasFallback:!0});if(u===!1)return!1;if(u===void 0||u&&!Le(u,r.tabbableOptions))if(c(s.activeElement)>=0)u=s.activeElement;else{var d=i.tabbableGroups[0],g=d&&d.firstTabbableNode;u=g||h("fallbackFocus")}else u===null&&(u=h("fallbackFocus"));if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},f=function(){if(i.containerGroups=i.containers.map(function(u){var d=ys(u,r.tabbableOptions),g=ws(u,r.tabbableOptions),T=d.length>0?d[0]:void 0,k=d.length>0?d[d.length-1]:void 0,O=g.find(function(v){return oe(v)}),S=g.slice().reverse().find(function(v){return oe(v)}),C=!!d.find(function(v){return re(v)>0});return{container:u,tabbableNodes:d,focusableNodes:g,posTabIndexesFound:C,firstTabbableNode:T,lastTabbableNode:k,firstDomTabbableNode:O,lastDomTabbableNode:S,nextTabbableNode:function(p){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,F=d.indexOf(p);return F<0?E?g.slice(g.indexOf(p)+1).find(function(z){return oe(z)}):g.slice(0,g.indexOf(p)).reverse().find(function(z){return oe(z)}):d[F+(E?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(u){return u.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},b=function(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?b(d.shadowRoot):d},y=function(u){if(u!==!1&&u!==b(document)){if(!u||!u.focus){y(m());return}u.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=u,Os(u)&&u.select()}},x=function(u){var d=h("setReturnFocus",{params:[u]});return d||(d===!1?!1:u)},w=function(u){var d=u.target,g=u.event,T=u.isBackward,k=T===void 0?!1:T;d=d||Ee(g),f();var O=null;if(i.tabbableGroups.length>0){var S=c(d,g),C=S>=0?i.containerGroups[S]:void 0;if(S<0)k?O=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:O=i.tabbableGroups[0].firstTabbableNode;else if(k){var v=i.tabbableGroups.findIndex(function(j){var I=j.firstTabbableNode;return d===I});if(v<0&&(C.container===d||Le(d,r.tabbableOptions)&&!oe(d,r.tabbableOptions)&&!C.nextTabbableNode(d,!1))&&(v=S),v>=0){var p=v===0?i.tabbableGroups.length-1:v-1,E=i.tabbableGroups[p];O=re(d)>=0?E.lastTabbableNode:E.lastDomTabbableNode}else ge(g)||(O=C.nextTabbableNode(d,!1))}else{var F=i.tabbableGroups.findIndex(function(j){var I=j.lastTabbableNode;return d===I});if(F<0&&(C.container===d||Le(d,r.tabbableOptions)&&!oe(d,r.tabbableOptions)&&!C.nextTabbableNode(d))&&(F=S),F>=0){var z=F===i.tabbableGroups.length-1?0:F+1,P=i.tabbableGroups[z];O=re(d)>=0?P.firstTabbableNode:P.firstDomTabbableNode}else ge(g)||(O=C.nextTabbableNode(d))}}else O=h("fallbackFocus");return O},R=function(u){var d=Ee(u);if(!(c(d,u)>=0)){if(ve(r.clickOutsideDeactivates,u)){o.deactivate({returnFocus:r.returnFocusOnDeactivate});return}ve(r.allowOutsideClick,u)||u.preventDefault()}},A=function(u){var d=Ee(u),g=c(d,u)>=0;if(g||d instanceof Document)g&&(i.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var T,k=!0;if(i.mostRecentlyFocusedNode)if(re(i.mostRecentlyFocusedNode)>0){var O=c(i.mostRecentlyFocusedNode),S=i.containerGroups[O].tabbableNodes;if(S.length>0){var C=S.findIndex(function(v){return v===i.mostRecentlyFocusedNode});C>=0&&(r.isKeyForward(i.recentNavEvent)?C+1=0&&(T=S[C-1],k=!1))}}else i.containerGroups.some(function(v){return v.tabbableNodes.some(function(p){return re(p)>0})})||(k=!1);else k=!1;k&&(T=w({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),y(T||i.mostRecentlyFocusedNode||m())}i.recentNavEvent=void 0},J=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=u;var g=w({event:u,isBackward:d});g&&(ge(u)&&u.preventDefault(),y(g))},Q=function(u){(r.isKeyForward(u)||r.isKeyBackward(u))&&J(u,r.isKeyBackward(u))},W=function(u){Cs(u)&&ve(r.escapeDeactivates,u)!==!1&&(u.preventDefault(),o.deactivate())},V=function(u){var d=Ee(u);c(d,u)>=0||ve(r.clickOutsideDeactivates,u)||ve(r.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},$=function(){if(i.active)return ut.activateTrap(n,o),i.delayInitialFocusTimer=r.delayInitialFocus?dt(function(){y(m())}):y(m()),s.addEventListener("focusin",A,!0),s.addEventListener("mousedown",R,{capture:!0,passive:!1}),s.addEventListener("touchstart",R,{capture:!0,passive:!1}),s.addEventListener("click",V,{capture:!0,passive:!1}),s.addEventListener("keydown",Q,{capture:!0,passive:!1}),s.addEventListener("keydown",W),o},be=function(){if(i.active)return s.removeEventListener("focusin",A,!0),s.removeEventListener("mousedown",R,!0),s.removeEventListener("touchstart",R,!0),s.removeEventListener("click",V,!0),s.removeEventListener("keydown",Q,!0),s.removeEventListener("keydown",W),o},M=function(u){var d=u.some(function(g){var T=Array.from(g.removedNodes);return T.some(function(k){return k===i.mostRecentlyFocusedNode})});d&&y(m())},U=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(M):void 0,q=function(){U&&(U.disconnect(),i.active&&!i.paused&&i.containers.map(function(u){U.observe(u,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(u){if(i.active)return this;var d=l(u,"onActivate"),g=l(u,"onPostActivate"),T=l(u,"checkCanFocusTrap");T||f(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,d==null||d();var k=function(){T&&f(),$(),q(),g==null||g()};return T?(T(i.containers.concat()).then(k,k),this):(k(),this)},deactivate:function(u){if(!i.active)return this;var d=ct({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},u);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,be(),i.active=!1,i.paused=!1,q(),ut.deactivateTrap(n,o);var g=l(d,"onDeactivate"),T=l(d,"onPostDeactivate"),k=l(d,"checkCanReturnFocus"),O=l(d,"returnFocus","returnFocusOnDeactivate");g==null||g();var S=function(){dt(function(){O&&y(x(i.nodeFocusedBeforeActivation)),T==null||T()})};return O&&k?(k(x(i.nodeFocusedBeforeActivation)).then(S,S),this):(S(),this)},pause:function(u){if(i.paused||!i.active)return this;var d=l(u,"onPause"),g=l(u,"onPostPause");return i.paused=!0,d==null||d(),be(),q(),g==null||g(),this},unpause:function(u){if(!i.paused||!i.active)return this;var d=l(u,"onUnpause"),g=l(u,"onPostUnpause");return i.paused=!1,d==null||d(),f(),$(),q(),g==null||g(),this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return i.containers=d.map(function(g){return typeof g=="string"?s.querySelector(g):g}),i.active&&f(),q(),this}},o.updateContainerElements(e),o};function Ds(a,e={}){let t;const{immediate:s,...n}=e,r=ie(!1),i=ie(!1),o=f=>t&&t.activate(f),l=f=>t&&t.deactivate(f),c=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)},m=me(()=>{const f=tt(a);return(Array.isArray(f)?f:[f]).map(b=>{const y=tt(b);return typeof y=="string"?y:Rt(y)}).filter(At)});return $e(m,f=>{f.length&&(t=Ls(f,{...n,onActivate(){r.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){r.value=!1,e.onDeactivate&&e.onDeactivate()}}),s&&o())},{flush:"post"}),Mt(()=>l()),{hasFocus:r,isPaused:i,activate:o,deactivate:l,pause:c,unpause:h}}class ce{constructor(e,t=!0,s=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=s,this.iframesTimeout=n}static matches(e,t){const s=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let r=!1;return s.every(i=>n.call(e,i)?(r=!0,!1):!0),r}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(s=>{const n=t.filter(r=>r.contains(s)).length>0;t.indexOf(s)===-1&&!n&&t.push(s)}),t}getIframeContents(e,t,s=()=>{}){let n;try{const r=e.contentWindow;if(n=r.document,!r||!n)throw new Error("iframe inaccessible")}catch{s()}n&&t(n)}isIframeBlank(e){const t="about:blank",s=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&s!==t&&s}observeIframeLoad(e,t,s){let n=!1,r=null;const i=()=>{if(!n){n=!0,clearTimeout(r);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,s))}catch{s()}}};e.addEventListener("load",i),r=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,s){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,s):this.getIframeContents(e,t,s):this.observeIframeLoad(e,t,s)}catch{s()}}waitForIframes(e,t){let s=0;this.forEachIframe(e,()=>!0,n=>{s++,this.waitForIframes(n.querySelector("html"),()=>{--s||t()})},n=>{n||t()})}forEachIframe(e,t,s,n=()=>{}){let r=e.querySelectorAll("iframe"),i=r.length,o=0;r=Array.prototype.slice.call(r);const l=()=>{--i<=0&&n(o)};i||l(),r.forEach(c=>{ce.matches(c,this.exclude)?l():this.onIframeReady(c,h=>{t(c)&&(o++,s(h)),l()},l)})}createIterator(e,t,s){return document.createNodeIterator(e,t,s,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,s){const n=e.compareDocumentPosition(s),r=Node.DOCUMENT_POSITION_PRECEDING;if(n&r)if(t!==null){const i=t.compareDocumentPosition(s),o=Node.DOCUMENT_POSITION_FOLLOWING;if(i&o)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let s;return t===null?s=e.nextNode():s=e.nextNode()&&e.nextNode(),{prevNode:t,node:s}}checkIframeFilter(e,t,s,n){let r=!1,i=!1;return n.forEach((o,l)=>{o.val===s&&(r=l,i=o.handled)}),this.compareNodeIframe(e,t,s)?(r===!1&&!i?n.push({val:s,handled:!0}):r!==!1&&!i&&(n[r].handled=!0),!0):(r===!1&&n.push({val:s,handled:!1}),!1)}handleOpenIframes(e,t,s,n){e.forEach(r=>{r.handled||this.getIframeContents(r.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,s,n)})})}iterateThroughNodes(e,t,s,n,r){const i=this.createIterator(t,e,n);let o=[],l=[],c,h,m=()=>({prevNode:h,node:c}=this.getIteratorNode(i),c);for(;m();)this.iframes&&this.forEachIframe(t,f=>this.checkIframeFilter(c,h,f,o),f=>{this.createInstanceOnIframe(f).forEachNode(e,b=>l.push(b),n)}),l.push(c);l.forEach(f=>{s(f)}),this.iframes&&this.handleOpenIframes(o,e,s,n),r()}forEachNode(e,t,s,n=()=>{}){const r=this.getContexts();let i=r.length;i||n(),r.forEach(o=>{const l=()=>{this.iterateThroughNodes(e,o,t,s,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(o,l):l()})}}let zs=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const s=this.opt.log;this.opt.debug&&typeof s=="object"&&typeof s[t]=="function"&&s[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,s=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let r in t)if(t.hasOwnProperty(r)){const i=t[r],o=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(r):this.escapeStr(r),l=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);o!==""&&l!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(l)})`,`gm${s}`),n+`(${this.processSynomyms(o)}|${this.processSynomyms(l)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,s,n)=>{let r=n.charAt(s+1);return/[(|)\\]/.test(r)||r===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const s=this.opt.ignorePunctuation;return Array.isArray(s)&&s.length&&t.push(this.escapeStr(s.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",s=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(r=>{s.every(i=>{if(i.indexOf(r)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let s=this.opt.accuracy,n=typeof s=="string"?s:s.value,r=typeof s=="string"?[]:s.limiters,i="";switch(r.forEach(o=>{i+=`|${this.escapeStr(o)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(s=>{this.opt.separateWordSearch?s.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):s.trim()&&t.indexOf(s)===-1&&t.push(s)}),{keywords:t.sort((s,n)=>n.length-s.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let s=0;return e.sort((n,r)=>n.start-r.start).forEach(n=>{let{start:r,end:i,valid:o}=this.callNoMatchOnInvalidRanges(n,s);o&&(n.start=r,n.length=i-r,t.push(n),s=i)}),t}callNoMatchOnInvalidRanges(e,t){let s,n,r=!1;return e&&typeof e.start<"u"?(s=parseInt(e.start,10),n=s+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-s>0?r=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:s,end:n,valid:r}}checkWhitespaceRanges(e,t,s){let n,r=!0,i=s.length,o=t-i,l=parseInt(e.start,10)-o;return l=l>i?i:l,n=l+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),l<0||n-l<0||l>i||n>i?(r=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):s.substring(l,n).replace(/\s+/g,"")===""&&(r=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:l,end:n,valid:r}}getTextNodes(e){let t="",s=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{s.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:s})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,s){const n=this.opt.element?this.opt.element:"mark",r=e.splitText(t),i=r.splitText(s-t);let o=document.createElement(n);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=r.textContent,r.parentNode.replaceChild(o,r),i}wrapRangeInMappedTextNode(e,t,s,n,r){e.nodes.every((i,o)=>{const l=e.nodes[o+1];if(typeof l>"u"||l.start>t){if(!n(i.node))return!1;const c=t-i.start,h=(s>i.end?i.end:s)-i.start,m=e.value.substr(0,i.start),f=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,c,h),e.value=m+f,e.nodes.forEach((b,y)=>{y>=o&&(e.nodes[y].start>0&&y!==o&&(e.nodes[y].start-=h),e.nodes[y].end-=h)}),s-=h,r(i.node.previousSibling,i.start),s>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,s,n,r){const i=t===0?0:t+1;this.getTextNodes(o=>{o.nodes.forEach(l=>{l=l.node;let c;for(;(c=e.exec(l.textContent))!==null&&c[i]!=="";){if(!s(c[i],l))continue;let h=c.index;if(i!==0)for(let m=1;m{let l;for(;(l=e.exec(o.value))!==null&&l[i]!=="";){let c=l.index;if(i!==0)for(let m=1;ms(l[i],m),(m,f)=>{e.lastIndex=f,n(m)})}r()})}wrapRangeFromIndex(e,t,s,n){this.getTextNodes(r=>{const i=r.value.length;e.forEach((o,l)=>{let{start:c,end:h,valid:m}=this.checkWhitespaceRanges(o,i,r.value);m&&this.wrapRangeInMappedTextNode(r,c,h,f=>t(f,o,r.value.substring(c,h),l),f=>{s(f,o)})}),n()})}unwrapMatches(e){const t=e.parentNode;let s=document.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.removeChild(e.firstChild));t.replaceChild(s,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let s=0,n="wrapMatches";const r=i=>{s++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,o)=>this.opt.filter(o,i,s),r,()=>{s===0&&this.opt.noMatch(e),this.opt.done(s)})}mark(e,t){this.opt=t;let s=0,n="wrapMatches";const{keywords:r,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),o=this.opt.caseSensitive?"":"i",l=c=>{let h=new RegExp(this.createRegExp(c),`gm${o}`),m=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(f,b)=>this.opt.filter(b,c,s,m),f=>{m++,s++,this.opt.each(f)},()=>{m===0&&this.opt.noMatch(c),r[i-1]===c?this.opt.done(s):l(r[r.indexOf(c)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(s):l(r[0])}markRanges(e,t){this.opt=t;let s=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(r,i,o,l)=>this.opt.filter(r,i,o,l),(r,i)=>{s++,this.opt.each(r,i)},()=>{this.opt.done(s)})):this.opt.done(s)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,s=>{this.unwrapMatches(s)},s=>{const n=ce.matches(s,t),r=this.matchesExclude(s);return!n||r?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Ps(a){const e=new zs(a);return this.mark=(t,s)=>(e.mark(t,s),this),this.markRegExp=(t,s)=>(e.markRegExp(t,s),this),this.markRanges=(t,s)=>(e.markRanges(t,s),this),this.unmark=t=>(e.unmark(t),this),this}function ke(a,e,t,s){function n(r){return r instanceof t?r:new t(function(i){i(r)})}return new(t||(t=Promise))(function(r,i){function o(h){try{c(s.next(h))}catch(m){i(m)}}function l(h){try{c(s.throw(h))}catch(m){i(m)}}function c(h){h.done?r(h.value):n(h.value).then(o,l)}c((s=s.apply(a,[])).next())})}const js="ENTRIES",_t="KEYS",St="VALUES",D="";class De{constructor(e,t){const s=e._tree,n=Array.from(s.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:s,keys:n}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:t}=le(this._path);if(le(t)===D)return{done:!1,value:this.result()};const s=e.get(le(t));return this._path.push({node:s,keys:Array.from(s.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=le(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>le(e)).filter(e=>e!==D).join("")}value(){return le(this._path).node.get(D)}result(){switch(this._type){case St:return this.value();case _t:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const le=a=>a[a.length-1],Vs=(a,e,t)=>{const s=new Map;if(e===void 0)return s;const n=e.length+1,r=n+t,i=new Uint8Array(r*n).fill(t+1);for(let o=0;o{const l=r*i;e:for(const c of a.keys())if(c===D){const h=n[l-1];h<=t&&s.set(o,[a.get(c),h])}else{let h=r;for(let m=0;mt)continue e}Et(a.get(c),e,t,s,n,h,i,o+c)}};class X{constructor(e=new Map,t=""){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[t,s]=Re(this._tree,e.slice(this._prefix.length));if(t===void 0){const[n,r]=qe(s);for(const i of n.keys())if(i!==D&&i.startsWith(r)){const o=new Map;return o.set(i.slice(r.length),n.get(i)),new X(o,e)}}return new X(t,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,$s(this._tree,e)}entries(){return new De(this,js)}forEach(e){for(const[t,s]of this)e(t,s,this)}fuzzyGet(e,t){return Vs(this._tree,e,t)}get(e){const t=Ke(this._tree,e);return t!==void 0?t.get(D):void 0}has(e){const t=Ke(this._tree,e);return t!==void 0&&t.has(D)}keys(){return new De(this,_t)}set(e,t){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,ze(this._tree,e).set(D,t),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=ze(this._tree,e);return s.set(D,t(s.get(D))),this}fetch(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=ze(this._tree,e);let n=s.get(D);return n===void 0&&s.set(D,n=t()),n}values(){return new De(this,St)}[Symbol.iterator](){return this.entries()}static from(e){const t=new X;for(const[s,n]of e)t.set(s,n);return t}static fromObject(e){return X.from(Object.entries(e))}}const Re=(a,e,t=[])=>{if(e.length===0||a==null)return[a,t];for(const s of a.keys())if(s!==D&&e.startsWith(s))return t.push([a,s]),Re(a.get(s),e.slice(s.length),t);return t.push([a,e]),Re(void 0,"",t)},Ke=(a,e)=>{if(e.length===0||a==null)return a;for(const t of a.keys())if(t!==D&&e.startsWith(t))return Ke(a.get(t),e.slice(t.length))},ze=(a,e)=>{const t=e.length;e:for(let s=0;a&&s{const[t,s]=Re(a,e);if(t!==void 0){if(t.delete(D),t.size===0)Tt(s);else if(t.size===1){const[n,r]=t.entries().next().value;It(s,n,r)}}},Tt=a=>{if(a.length===0)return;const[e,t]=qe(a);if(e.delete(t),e.size===0)Tt(a.slice(0,-1));else if(e.size===1){const[s,n]=e.entries().next().value;s!==D&&It(a.slice(0,-1),s,n)}},It=(a,e,t)=>{if(a.length===0)return;const[s,n]=qe(a);s.set(n+e,t),s.delete(n)},qe=a=>a[a.length-1],Ge="or",kt="and",Bs="and_not";class ue{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const t=e.autoVacuum==null||e.autoVacuum===!0?Ve:e.autoVacuum;this._options=Object.assign(Object.assign(Object.assign({},je),e),{autoVacuum:t,searchOptions:Object.assign(Object.assign({},ht),e.searchOptions||{}),autoSuggestOptions:Object.assign(Object.assign({},qs),e.autoSuggestOptions||{})}),this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=Ue,this.addFields(this._options.fields)}add(e){const{extractField:t,tokenize:s,processTerm:n,fields:r,idField:i}=this._options,o=t(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const l=this.addDocumentId(o);this.saveStoredFields(l,e);for(const c of r){const h=t(e,c);if(h==null)continue;const m=s(h.toString(),c),f=this._fieldIds[c],b=new Set(m).size;this.addFieldLength(l,f,this._documentCount-1,b);for(const y of m){const x=n(y,c);if(Array.isArray(x))for(const w of x)this.addTerm(f,l,w);else x&&this.addTerm(f,l,x)}}}addAll(e){for(const t of e)this.add(t)}addAllAsync(e,t={}){const{chunkSize:s=10}=t,n={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:o,promise:l},c,h)=>(o.push(c),(h+1)%s===0?{chunk:[],promise:l.then(()=>new Promise(m=>setTimeout(m,0))).then(()=>this.addAll(o))}:{chunk:o,promise:l}),n);return i.then(()=>this.addAll(r))}remove(e){const{tokenize:t,processTerm:s,extractField:n,fields:r,idField:i}=this._options,o=n(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);const l=this._idToShortId.get(o);if(l==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const c of r){const h=n(e,c);if(h==null)continue;const m=t(h.toString(),c),f=this._fieldIds[c],b=new Set(m).size;this.removeFieldLength(l,f,this._documentCount,b);for(const y of m){const x=s(y,c);if(Array.isArray(x))for(const w of x)this.removeTerm(f,l,w);else x&&this.removeTerm(f,l,x)}}this._storedFields.delete(l),this._documentIds.delete(l),this._idToShortId.delete(o),this._fieldLength.delete(l),this._documentCount-=1}removeAll(e){if(e)for(const t of e)this.remove(t);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const t=this._idToShortId.get(e);if(t==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((s,n)=>{this.removeFieldLength(t,n,this._documentCount,s)}),this._fieldLength.delete(t),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:t,batchSize:s,batchWait:n}=this._options.autoVacuum;this.conditionalVacuum({batchSize:s,batchWait:n},{minDirtCount:t,minDirtFactor:e})}discardAll(e){const t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const s of e)this.discard(s)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){const{idField:t,extractField:s}=this._options,n=s(e,t);this.discard(n),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const s=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=Ue,this.performVacuuming(e,s)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}performVacuuming(e,t){return ke(this,void 0,void 0,function*(){const s=this._dirtCount;if(this.vacuumConditionsMet(t)){const n=e.batchSize||Je.batchSize,r=e.batchWait||Je.batchWait;let i=1;for(const[o,l]of this._index){for(const[c,h]of l)for(const[m]of h)this._documentIds.has(m)||(h.size<=1?l.delete(c):h.delete(m));this._index.get(o).size===0&&this._index.delete(o),i%n===0&&(yield new Promise(c=>setTimeout(c,r))),i+=1}this._dirtCount-=s}yield null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null})}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:s}=e;return t=t||Ve.minDirtCount,s=s||Ve.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=s}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(e,t={}){const{searchOptions:s}=this._options,n=Object.assign(Object.assign({},s),t),r=this.executeQuery(e,t),i=[];for(const[o,{score:l,terms:c,match:h}]of r){const m=c.length||1,f={id:this._documentIds.get(o),score:l*m,terms:Object.keys(h),queryTerms:c,match:h};Object.assign(f,this._storedFields.get(o)),(n.filter==null||n.filter(f))&&i.push(f)}return e===ue.wildcard&&n.boostDocument==null||i.sort(pt),i}autoSuggest(e,t={}){t=Object.assign(Object.assign({},this._options.autoSuggestOptions),t);const s=new Map;for(const{score:r,terms:i}of this.search(e,t)){const o=i.join(" "),l=s.get(o);l!=null?(l.score+=r,l.count+=1):s.set(o,{score:r,terms:i,count:1})}const n=[];for(const[r,{score:i,terms:o,count:l}]of s)n.push({suggestion:r,terms:o,score:i/l});return n.sort(pt),n}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)}static loadJSONAsync(e,t){return ke(this,void 0,void 0,function*(){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),t)})}static getDefault(e){if(je.hasOwnProperty(e))return Pe(je,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,l=this.instantiateMiniSearch(e,t);l._documentIds=Te(n),l._fieldLength=Te(r),l._storedFields=Te(i);for(const[c,h]of l._documentIds)l._idToShortId.set(h,c);for(const[c,h]of s){const m=new Map;for(const f of Object.keys(h)){let b=h[f];o===1&&(b=b.ds),m.set(parseInt(f,10),Te(b))}l._index.set(c,m)}return l}static loadJSAsync(e,t){return ke(this,void 0,void 0,function*(){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,l=this.instantiateMiniSearch(e,t);l._documentIds=yield Ie(n),l._fieldLength=yield Ie(r),l._storedFields=yield Ie(i);for(const[h,m]of l._documentIds)l._idToShortId.set(m,h);let c=0;for(const[h,m]of s){const f=new Map;for(const b of Object.keys(m)){let y=m[b];o===1&&(y=y.ds),f.set(parseInt(b,10),yield Ie(y))}++c%1e3===0&&(yield Nt(0)),l._index.set(h,f)}return l})}static instantiateMiniSearch(e,t){const{documentCount:s,nextId:n,fieldIds:r,averageFieldLength:i,dirtCount:o,serializationVersion:l}=e;if(l!==1&&l!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const c=new ue(t);return c._documentCount=s,c._nextId=n,c._idToShortId=new Map,c._fieldIds=r,c._avgFieldLength=i,c._dirtCount=o||0,c._index=new X,c}executeQuery(e,t={}){if(e===ue.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){const f=Object.assign(Object.assign(Object.assign({},t),e),{queries:void 0}),b=e.queries.map(y=>this.executeQuery(y,f));return this.combineResults(b,f.combineWith)}const{tokenize:s,processTerm:n,searchOptions:r}=this._options,i=Object.assign(Object.assign({tokenize:s,processTerm:n},r),t),{tokenize:o,processTerm:l}=i,m=o(e).flatMap(f=>l(f)).filter(f=>!!f).map(Us(i)).map(f=>this.executeQuerySpec(f,i));return this.combineResults(m,i.combineWith)}executeQuerySpec(e,t){const s=Object.assign(Object.assign({},this._options.searchOptions),t),n=(s.fields||this._options.fields).reduce((x,w)=>Object.assign(Object.assign({},x),{[w]:Pe(s.boost,w)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:o,bm25:l}=s,{fuzzy:c,prefix:h}=Object.assign(Object.assign({},ht.weights),i),m=this._index.get(e.term),f=this.termResults(e.term,e.term,1,e.termBoost,m,n,r,l);let b,y;if(e.prefix&&(b=this._index.atPrefix(e.term)),e.fuzzy){const x=e.fuzzy===!0?.2:e.fuzzy,w=x<1?Math.min(o,Math.round(e.term.length*x)):x;w&&(y=this._index.fuzzyGet(e.term,w))}if(b)for(const[x,w]of b){const R=x.length-e.term.length;if(!R)continue;y==null||y.delete(x);const A=h*x.length/(x.length+.3*R);this.termResults(e.term,x,A,e.termBoost,w,n,r,l,f)}if(y)for(const x of y.keys()){const[w,R]=y.get(x);if(!R)continue;const A=c*x.length/(x.length+R);this.termResults(e.term,x,A,e.termBoost,w,n,r,l,f)}return f}executeWildcardQuery(e){const t=new Map,s=Object.assign(Object.assign({},this._options.searchOptions),e);for(const[n,r]of this._documentIds){const i=s.boostDocument?s.boostDocument(r,"",this._storedFields.get(n)):1;t.set(n,{score:i,terms:[],match:{}})}return t}combineResults(e,t=Ge){if(e.length===0)return new Map;const s=t.toLowerCase(),n=Ws[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){const e=[];for(const[t,s]of this._index){const n={};for(const[r,i]of s)n[r]=Object.fromEntries(i);e.push([t,n])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,s,n,r,i,o,l,c=new Map){if(r==null)return c;for(const h of Object.keys(i)){const m=i[h],f=this._fieldIds[h],b=r.get(f);if(b==null)continue;let y=b.size;const x=this._avgFieldLength[f];for(const w of b.keys()){if(!this._documentIds.has(w)){this.removeTerm(f,w,t),y-=1;continue}const R=o?o(this._documentIds.get(w),t,this._storedFields.get(w)):1;if(!R)continue;const A=b.get(w),J=this._fieldLength.get(w)[f],Q=Js(A,y,this._documentCount,J,x,l),W=s*n*m*R*Q,V=c.get(w);if(V){V.score+=W,Gs(V.terms,e);const $=Pe(V.match,t);$?$.push(h):V.match[t]=[h]}else c.set(w,{score:W,terms:[e],match:{[t]:[h]}})}}return c}addTerm(e,t,s){const n=this._index.fetch(s,vt);let r=n.get(e);if(r==null)r=new Map,r.set(t,1),n.set(e,r);else{const i=r.get(t);r.set(t,(i||0)+1)}}removeTerm(e,t,s){if(!this._index.has(s)){this.warnDocumentChanged(t,e,s);return}const n=this._index.fetch(s,vt),r=n.get(e);r==null||r.get(t)==null?this.warnDocumentChanged(t,e,s):r.get(t)<=1?r.size<=1?n.delete(e):r.delete(t):r.set(t,r.get(t)-1),this._index.get(s).size===0&&this._index.delete(s)}warnDocumentChanged(e,t,s){for(const n of Object.keys(this._fieldIds))if(this._fieldIds[n]===t){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${s}" was not present in field "${n}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;tObject.prototype.hasOwnProperty.call(a,e)?a[e]:void 0,Ws={[Ge]:(a,e)=>{for(const t of e.keys()){const s=a.get(t);if(s==null)a.set(t,e.get(t));else{const{score:n,terms:r,match:i}=e.get(t);s.score=s.score+n,s.match=Object.assign(s.match,i),ft(s.terms,r)}}return a},[kt]:(a,e)=>{const t=new Map;for(const s of e.keys()){const n=a.get(s);if(n==null)continue;const{score:r,terms:i,match:o}=e.get(s);ft(n.terms,i),t.set(s,{score:n.score+r,terms:n.terms,match:Object.assign(n.match,o)})}return t},[Bs]:(a,e)=>{for(const t of e.keys())a.delete(t);return a}},Ks={k:1.2,b:.7,d:.5},Js=(a,e,t,s,n,r)=>{const{k:i,b:o,d:l}=r;return Math.log(1+(t-e+.5)/(e+.5))*(l+a*(i+1)/(a+i*(1-o+o*s/n)))},Us=a=>(e,t,s)=>{const n=typeof a.fuzzy=="function"?a.fuzzy(e,t,s):a.fuzzy||!1,r=typeof a.prefix=="function"?a.prefix(e,t,s):a.prefix===!0,i=typeof a.boostTerm=="function"?a.boostTerm(e,t,s):1;return{term:e,fuzzy:n,prefix:r,termBoost:i}},je={idField:"id",extractField:(a,e)=>a[e],tokenize:a=>a.split(Hs),processTerm:a=>a.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(a,e)=>{typeof(console==null?void 0:console[a])=="function"&&console[a](e)},autoVacuum:!0},ht={combineWith:Ge,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Ks},qs={combineWith:kt,prefix:(a,e,t)=>e===t.length-1},Je={batchSize:1e3,batchWait:10},Ue={minDirtFactor:.1,minDirtCount:20},Ve=Object.assign(Object.assign({},Je),Ue),Gs=(a,e)=>{a.includes(e)||a.push(e)},ft=(a,e)=>{for(const t of e)a.includes(t)||a.push(t)},pt=({score:a},{score:e})=>e-a,vt=()=>new Map,Te=a=>{const e=new Map;for(const t of Object.keys(a))e.set(parseInt(t,10),a[t]);return e},Ie=a=>ke(void 0,void 0,void 0,function*(){const e=new Map;let t=0;for(const s of Object.keys(a))e.set(parseInt(s,10),a[s]),++t%1e3===0&&(yield Nt(0));return e}),Nt=a=>new Promise(e=>setTimeout(e,a)),Hs=/[\n\r\p{Z}\p{P}]+/u;class Qs{constructor(e=10){Ae(this,"max");Ae(this,"cache");this.max=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size===this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}first(){return this.cache.keys().next().value}clear(){this.cache.clear()}}const Ys=["aria-owns"],Zs={class:"shell"},Xs=["title"],en={class:"search-actions before"},tn=["title"],sn=["aria-activedescendant","aria-controls","placeholder"],nn={class:"search-actions"},rn=["title"],an=["disabled","title"],on=["id","role","aria-labelledby"],ln=["id","aria-selected"],cn=["href","aria-label","onMouseenter","onFocusin","data-index"],un={class:"titles"},dn=["innerHTML"],hn={class:"title main"},fn=["innerHTML"],pn={key:0,class:"excerpt-wrapper"},vn={key:0,class:"excerpt",inert:""},mn=["innerHTML"],gn={key:0,class:"no-results"},bn={class:"search-keyboard-shortcuts"},yn=["aria-label"],wn=["aria-label"],xn=["aria-label"],_n=["aria-label"],Sn=Lt({__name:"VPLocalSearchBox",emits:["close"],setup(a,{emit:e}){var S,C;const t=e,s=xe(),n=xe(),r=xe(is),i=ss(),{activate:o}=Ds(s,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:l,theme:c}=i,h=st(async()=>{var v,p,E,F,z,P,j,I,K;return at(ue.loadJSON((E=await((p=(v=r.value)[l.value])==null?void 0:p.call(v)))==null?void 0:E.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((F=c.value.search)==null?void 0:F.provider)==="local"&&((P=(z=c.value.search.options)==null?void 0:z.miniSearch)==null?void 0:P.searchOptions)},...((j=c.value.search)==null?void 0:j.provider)==="local"&&((K=(I=c.value.search.options)==null?void 0:I.miniSearch)==null?void 0:K.options)}))}),f=me(()=>{var v,p;return((v=c.value.search)==null?void 0:v.provider)==="local"&&((p=c.value.search.options)==null?void 0:p.disableQueryPersistence)===!0}).value?ie(""):Dt("vitepress:local-search-filter",""),b=zt("vitepress:local-search-detailed-list",((S=c.value.search)==null?void 0:S.provider)==="local"&&((C=c.value.search.options)==null?void 0:C.detailedView)===!0),y=me(()=>{var v,p,E;return((v=c.value.search)==null?void 0:v.provider)==="local"&&(((p=c.value.search.options)==null?void 0:p.disableDetailedView)===!0||((E=c.value.search.options)==null?void 0:E.detailedView)===!1)}),x=me(()=>{var p,E,F,z,P,j,I;const v=((p=c.value.search)==null?void 0:p.options)??c.value.algolia;return((P=(z=(F=(E=v==null?void 0:v.locales)==null?void 0:E[l.value])==null?void 0:F.translations)==null?void 0:z.button)==null?void 0:P.buttonText)||((I=(j=v==null?void 0:v.translations)==null?void 0:j.button)==null?void 0:I.buttonText)||"Search"});Pt(()=>{y.value&&(b.value=!1)});const w=xe([]),R=ie(!1);$e(f,()=>{R.value=!1});const A=st(async()=>{if(n.value)return at(new Ps(n.value))},null),J=new Qs(16);jt(()=>[h.value,f.value,b.value],async([v,p,E],F,z)=>{var ee,ye,He,Qe;(F==null?void 0:F[0])!==v&&J.clear();let P=!1;if(z(()=>{P=!0}),!v)return;w.value=v.search(p).slice(0,16),R.value=!0;const j=E?await Promise.all(w.value.map(B=>Q(B.id))):[];if(P)return;for(const{id:B,mod:te}of j){const se=B.slice(0,B.indexOf("#"));let Y=J.get(se);if(Y)continue;Y=new Map,J.set(se,Y);const G=te.default??te;if(G!=null&&G.render||G!=null&&G.setup){const ne=Yt(G);ne.config.warnHandler=()=>{},ne.provide(Zt,i),Object.defineProperties(ne.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const Ye=document.createElement("div");ne.mount(Ye),Ye.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(de=>{var et;const we=(et=de.querySelector("a"))==null?void 0:et.getAttribute("href"),Ze=(we==null?void 0:we.startsWith("#"))&&we.slice(1);if(!Ze)return;let Xe="";for(;(de=de.nextElementSibling)&&!/^h[1-6]$/i.test(de.tagName);)Xe+=de.outerHTML;Y.set(Ze,Xe)}),ne.unmount()}if(P)return}const I=new Set;if(w.value=w.value.map(B=>{const[te,se]=B.id.split("#"),Y=J.get(te),G=(Y==null?void 0:Y.get(se))??"";for(const ne in B.match)I.add(ne);return{...B,text:G}}),await he(),P)return;await new Promise(B=>{var te;(te=A.value)==null||te.unmark({done:()=>{var se;(se=A.value)==null||se.markRegExp(k(I),{done:B})}})});const K=((ee=s.value)==null?void 0:ee.querySelectorAll(".result .excerpt"))??[];for(const B of K)(ye=B.querySelector('mark[data-markjs="true"]'))==null||ye.scrollIntoView({block:"center"});(Qe=(He=n.value)==null?void 0:He.firstElementChild)==null||Qe.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function Q(v){const p=Xt(v.slice(0,v.indexOf("#")));try{if(!p)throw new Error(`Cannot find file for id: ${v}`);return{id:v,mod:await import(p)}}catch(E){return console.error(E),{id:v,mod:{}}}}const W=ie(),V=me(()=>{var v;return((v=f.value)==null?void 0:v.length)<=0});function $(v=!0){var p,E;(p=W.value)==null||p.focus(),v&&((E=W.value)==null||E.select())}Me(()=>{$()});function be(v){v.pointerType==="mouse"&&$()}const M=ie(-1),U=ie(!0);$e(w,v=>{M.value=v.length?0:-1,q()});function q(){he(()=>{const v=document.querySelector(".result.selected");v==null||v.scrollIntoView({block:"nearest"})})}_e("ArrowUp",v=>{v.preventDefault(),M.value--,M.value<0&&(M.value=w.value.length-1),U.value=!0,q()}),_e("ArrowDown",v=>{v.preventDefault(),M.value++,M.value>=w.value.length&&(M.value=0),U.value=!0,q()});const N=Vt();_e("Enter",v=>{if(v.isComposing||v.target instanceof HTMLButtonElement&&v.target.type!=="submit")return;const p=w.value[M.value];if(v.target instanceof HTMLInputElement&&!p){v.preventDefault();return}p&&(N.go(p.id),t("close"))}),_e("Escape",()=>{t("close")});const d=ns({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Me(()=>{window.history.pushState(null,"",null)}),$t("popstate",v=>{v.preventDefault(),t("close")});const g=Bt(Wt?document.body:null);Me(()=>{he(()=>{g.value=!0,he().then(()=>o())})}),Kt(()=>{g.value=!1});function T(){f.value="",he().then(()=>$(!1))}function k(v){return new RegExp([...v].sort((p,E)=>E.length-p.length).map(p=>`(${es(p)})`).join("|"),"gi")}function O(v){var F;if(!U.value)return;const p=(F=v.target)==null?void 0:F.closest(".result"),E=Number.parseInt(p==null?void 0:p.dataset.index);E>=0&&E!==M.value&&(M.value=E),U.value=!1}return(v,p)=>{var E,F,z,P,j;return H(),Jt(Qt,{to:"body"},[_("div",{ref_key:"el",ref:s,role:"button","aria-owns":(E=w.value)!=null&&E.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[_("div",{class:"backdrop",onClick:p[0]||(p[0]=I=>v.$emit("close"))}),_("div",Zs,[_("form",{class:"search-bar",onPointerup:p[4]||(p[4]=I=>be(I)),onSubmit:p[5]||(p[5]=Ut(()=>{},["prevent"]))},[_("label",{title:x.value,id:"localsearch-label",for:"localsearch-input"},p[7]||(p[7]=[_("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)]),8,Xs),_("div",en,[_("button",{class:"back-button",title:L(d)("modal.backButtonTitle"),onClick:p[1]||(p[1]=I=>v.$emit("close"))},p[8]||(p[8]=[_("span",{class:"vpi-arrow-left local-search-icon"},null,-1)]),8,tn)]),qt(_("input",{ref_key:"searchInput",ref:W,"onUpdate:modelValue":p[2]||(p[2]=I=>Ht(f)?f.value=I:null),"aria-activedescendant":M.value>-1?"localsearch-item-"+M.value:void 0,"aria-autocomplete":"both","aria-controls":(F=w.value)!=null&&F.length?"localsearch-list":void 0,"aria-labelledby":"localsearch-label",autocapitalize:"off",autocomplete:"off",autocorrect:"off",class:"search-input",id:"localsearch-input",enterkeyhint:"go",maxlength:"64",placeholder:x.value,spellcheck:"false",type:"search"},null,8,sn),[[Gt,L(f)]]),_("div",nn,[y.value?Se("",!0):(H(),Z("button",{key:0,class:nt(["toggle-layout-button",{"detailed-list":L(b)}]),type:"button",title:L(d)("modal.displayDetails"),onClick:p[3]||(p[3]=I=>M.value>-1&&(b.value=!L(b)))},p[9]||(p[9]=[_("span",{class:"vpi-layout-list local-search-icon"},null,-1)]),10,rn)),_("button",{class:"clear-button",type:"reset",disabled:V.value,title:L(d)("modal.resetButtonTitle"),onClick:T},p[10]||(p[10]=[_("span",{class:"vpi-delete local-search-icon"},null,-1)]),8,an)])],32),_("ul",{ref_key:"resultsEl",ref:n,id:(z=w.value)!=null&&z.length?"localsearch-list":void 0,role:(P=w.value)!=null&&P.length?"listbox":void 0,"aria-labelledby":(j=w.value)!=null&&j.length?"localsearch-label":void 0,class:"results",onMousemove:O},[(H(!0),Z(rt,null,it(w.value,(I,K)=>(H(),Z("li",{key:I.id,id:"localsearch-item-"+K,"aria-selected":M.value===K?"true":"false",role:"option"},[_("a",{href:I.id,class:nt(["result",{selected:M.value===K}]),"aria-label":[...I.titles,I.title].join(" > "),onMouseenter:ee=>!U.value&&(M.value=K),onFocusin:ee=>M.value=K,onClick:p[6]||(p[6]=ee=>v.$emit("close")),"data-index":K},[_("div",null,[_("div",un,[p[12]||(p[12]=_("span",{class:"title-icon"},"#",-1)),(H(!0),Z(rt,null,it(I.titles,(ee,ye)=>(H(),Z("span",{key:ye,class:"title"},[_("span",{class:"text",innerHTML:ee},null,8,dn),p[11]||(p[11]=_("span",{class:"vpi-chevron-right local-search-icon"},null,-1))]))),128)),_("span",hn,[_("span",{class:"text",innerHTML:I.title},null,8,fn)])]),L(b)?(H(),Z("div",pn,[I.text?(H(),Z("div",vn,[_("div",{class:"vp-doc",innerHTML:I.text},null,8,mn)])):Se("",!0),p[13]||(p[13]=_("div",{class:"excerpt-gradient-bottom"},null,-1)),p[14]||(p[14]=_("div",{class:"excerpt-gradient-top"},null,-1))])):Se("",!0)])],42,cn)],8,ln))),128)),L(f)&&!w.value.length&&R.value?(H(),Z("li",gn,[fe(pe(L(d)("modal.noResultsText"))+' "',1),_("strong",null,pe(L(f)),1),p[15]||(p[15]=fe('" '))])):Se("",!0)],40,on),_("div",bn,[_("span",null,[_("kbd",{"aria-label":L(d)("modal.footer.navigateUpKeyAriaLabel")},p[16]||(p[16]=[_("span",{class:"vpi-arrow-up navigate-icon"},null,-1)]),8,yn),_("kbd",{"aria-label":L(d)("modal.footer.navigateDownKeyAriaLabel")},p[17]||(p[17]=[_("span",{class:"vpi-arrow-down navigate-icon"},null,-1)]),8,wn),fe(" "+pe(L(d)("modal.footer.navigateText")),1)]),_("span",null,[_("kbd",{"aria-label":L(d)("modal.footer.selectKeyAriaLabel")},p[18]||(p[18]=[_("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)]),8,xn),fe(" "+pe(L(d)("modal.footer.selectText")),1)]),_("span",null,[_("kbd",{"aria-label":L(d)("modal.footer.closeKeyAriaLabel")},"esc",8,_n),fe(" "+pe(L(d)("modal.footer.closeText")),1)])])])],8,Ys)])}}}),Fn=ts(Sn,[["__scopeId","data-v-42e65fb9"]]);export{Fn as default}; diff --git a/previews/PR363/assets/chunks/framework.2yyKLD8d.js b/previews/PR363/assets/chunks/framework.2yyKLD8d.js new file mode 100644 index 00000000..ca6b963a --- /dev/null +++ b/previews/PR363/assets/chunks/framework.2yyKLD8d.js @@ -0,0 +1,18 @@ +/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Z={},Et=[],ke=()=>{},Ko=()=>!1,en=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Fs=e=>e.startsWith("onUpdate:"),ae=Object.assign,Hs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},qo=Object.prototype.hasOwnProperty,z=(e,t)=>qo.call(e,t),W=Array.isArray,Tt=e=>In(e)==="[object Map]",ii=e=>In(e)==="[object Set]",q=e=>typeof e=="function",re=e=>typeof e=="string",Xe=e=>typeof e=="symbol",ne=e=>e!==null&&typeof e=="object",oi=e=>(ne(e)||q(e))&&q(e.then)&&q(e.catch),li=Object.prototype.toString,In=e=>li.call(e),Go=e=>In(e).slice(8,-1),ci=e=>In(e)==="[object Object]",$s=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ct=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Nn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Yo=/-(\w)/g,Le=Nn(e=>e.replace(Yo,(t,n)=>n?n.toUpperCase():"")),Xo=/\B([A-Z])/g,st=Nn(e=>e.replace(Xo,"-$1").toLowerCase()),Fn=Nn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_n=Nn(e=>e?`on${Fn(e)}`:""),tt=(e,t)=>!Object.is(e,t),bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},vs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Jo=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let ar;const Hn=()=>ar||(ar=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ds(e){if(W(e)){const t={};for(let n=0;n{if(n){const s=n.split(Qo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function js(e){let t="";if(re(e))t=e;else if(W(e))for(let n=0;n!!(e&&e.__v_isRef===!0),sl=e=>re(e)?e:e==null?"":W(e)||ne(e)&&(e.toString===li||!q(e.toString))?ui(e)?sl(e.value):JSON.stringify(e,di,2):String(e),di=(e,t)=>ui(t)?di(e,t.value):Tt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[zn(s,i)+" =>"]=r,n),{})}:ii(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>zn(n))}:Xe(t)?zn(t):ne(t)&&!W(t)&&!ci(t)?String(t):t,zn=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class rl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(jt){let t=jt;for(jt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Dt;){let t=Dt;for(Dt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function yi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function vi(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),ks(s),ol(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function _s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(_i(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function _i(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Kt))return;e.globalVersion=Kt;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!_s(e)){e.flags&=-3;return}const n=te,s=Ne;te=e,Ne=!0;try{yi(e);const r=e.fn(e._value);(t.version===0||tt(r,e._value))&&(e._value=r,t.version++)}catch(r){throw t.version++,r}finally{te=n,Ne=s,vi(e),e.flags&=-3}}function ks(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)ks(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function ol(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ne=!0;const bi=[];function rt(){bi.push(Ne),Ne=!1}function it(){const e=bi.pop();Ne=e===void 0?!0:e}function fr(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=te;te=void 0;try{t()}finally{te=n}}}let Kt=0;class ll{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class $n{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!te||!Ne||te===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==te)n=this.activeLink=new ll(te,this),te.deps?(n.prevDep=te.depsTail,te.depsTail.nextDep=n,te.depsTail=n):te.deps=te.depsTail=n,wi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=te.depsTail,n.nextDep=void 0,te.depsTail.nextDep=n,te.depsTail=n,te.deps===n&&(te.deps=s)}return n}trigger(t){this.version++,Kt++,this.notify(t)}notify(t){Vs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Us()}}}function wi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)wi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Cn=new WeakMap,dt=Symbol(""),bs=Symbol(""),qt=Symbol("");function me(e,t,n){if(Ne&&te){let s=Cn.get(e);s||Cn.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new $n),r.map=s,r.key=n),r.track()}}function Ge(e,t,n,s,r,i){const o=Cn.get(e);if(!o){Kt++;return}const l=c=>{c&&c.trigger()};if(Vs(),t==="clear")o.forEach(l);else{const c=W(e),f=c&&$s(n);if(c&&n==="length"){const a=Number(s);o.forEach((h,y)=>{(y==="length"||y===qt||!Xe(y)&&y>=a)&&l(h)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),f&&l(o.get(qt)),t){case"add":c?f&&l(o.get("length")):(l(o.get(dt)),Tt(e)&&l(o.get(bs)));break;case"delete":c||(l(o.get(dt)),Tt(e)&&l(o.get(bs)));break;case"set":Tt(e)&&l(o.get(dt));break}}Us()}function cl(e,t){const n=Cn.get(e);return n&&n.get(t)}function _t(e){const t=J(e);return t===e?t:(me(t,"iterate",qt),Pe(e)?t:t.map(ye))}function Dn(e){return me(e=J(e),"iterate",qt),e}const al={__proto__:null,[Symbol.iterator](){return Zn(this,Symbol.iterator,ye)},concat(...e){return _t(this).concat(...e.map(t=>W(t)?_t(t):t))},entries(){return Zn(this,"entries",e=>(e[1]=ye(e[1]),e))},every(e,t){return We(this,"every",e,t,void 0,arguments)},filter(e,t){return We(this,"filter",e,t,n=>n.map(ye),arguments)},find(e,t){return We(this,"find",e,t,ye,arguments)},findIndex(e,t){return We(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return We(this,"findLast",e,t,ye,arguments)},findLastIndex(e,t){return We(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return We(this,"forEach",e,t,void 0,arguments)},includes(...e){return es(this,"includes",e)},indexOf(...e){return es(this,"indexOf",e)},join(e){return _t(this).join(e)},lastIndexOf(...e){return es(this,"lastIndexOf",e)},map(e,t){return We(this,"map",e,t,void 0,arguments)},pop(){return Ft(this,"pop")},push(...e){return Ft(this,"push",e)},reduce(e,...t){return ur(this,"reduce",e,t)},reduceRight(e,...t){return ur(this,"reduceRight",e,t)},shift(){return Ft(this,"shift")},some(e,t){return We(this,"some",e,t,void 0,arguments)},splice(...e){return Ft(this,"splice",e)},toReversed(){return _t(this).toReversed()},toSorted(e){return _t(this).toSorted(e)},toSpliced(...e){return _t(this).toSpliced(...e)},unshift(...e){return Ft(this,"unshift",e)},values(){return Zn(this,"values",ye)}};function Zn(e,t,n){const s=Dn(e),r=s[t]();return s!==e&&!Pe(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.value&&(i.value=n(i.value)),i}),r}const fl=Array.prototype;function We(e,t,n,s,r,i){const o=Dn(e),l=o!==e&&!Pe(e),c=o[t];if(c!==fl[t]){const h=c.apply(e,i);return l?ye(h):h}let f=n;o!==e&&(l?f=function(h,y){return n.call(this,ye(h),y,e)}:n.length>2&&(f=function(h,y){return n.call(this,h,y,e)}));const a=c.call(o,f,s);return l&&r?r(a):a}function ur(e,t,n,s){const r=Dn(e);let i=n;return r!==e&&(Pe(e)?n.length>3&&(i=function(o,l,c){return n.call(this,o,l,c,e)}):i=function(o,l,c){return n.call(this,o,ye(l),c,e)}),r[t](i,...s)}function es(e,t,n){const s=J(e);me(s,"iterate",qt);const r=s[t](...n);return(r===-1||r===!1)&&Ks(n[0])?(n[0]=J(n[0]),s[t](...n)):r}function Ft(e,t,n=[]){rt(),Vs();const s=J(e)[t].apply(e,n);return Us(),it(),s}const ul=Ns("__proto__,__v_isRef,__isVue"),Si=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function dl(e){Xe(e)||(e=String(e));const t=J(this);return me(t,"has",e),t.hasOwnProperty(e)}class xi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Sl:Ai:i?Ci:Ti).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=W(t);if(!r){let c;if(o&&(c=al[n]))return c;if(n==="hasOwnProperty")return dl}const l=Reflect.get(t,n,fe(t)?t:s);return(Xe(n)?Si.has(n):ul(n))||(r||me(t,"get",n),i)?l:fe(l)?o&&$s(n)?l:l.value:ne(l)?r?Vn(l):jn(l):l}}class Ei extends xi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._isShallow){const c=yt(i);if(!Pe(s)&&!yt(s)&&(i=J(i),s=J(s)),!W(t)&&fe(i)&&!fe(s))return c?!1:(i.value=s,!0)}const o=W(t)&&$s(n)?Number(n)e,cn=e=>Reflect.getPrototypeOf(e);function yl(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=Tt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),a=n?ws:t?Ss:ye;return!t&&me(i,"iterate",c?bs:dt),{next(){const{value:h,done:y}=f.next();return y?{value:h,done:y}:{value:l?[a(h[0]),a(h[1])]:a(h),done:y}},[Symbol.iterator](){return this}}}}function an(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function vl(e,t){const n={get(r){const i=this.__v_raw,o=J(i),l=J(r);e||(tt(r,l)&&me(o,"get",r),me(o,"get",l));const{has:c}=cn(o),f=t?ws:e?Ss:ye;if(c.call(o,r))return f(i.get(r));if(c.call(o,l))return f(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&me(J(r),"iterate",dt),Reflect.get(r,"size",r)},has(r){const i=this.__v_raw,o=J(i),l=J(r);return e||(tt(r,l)&&me(o,"has",r),me(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,c=J(l),f=t?ws:e?Ss:ye;return!e&&me(c,"iterate",dt),l.forEach((a,h)=>r.call(i,f(a),f(h),o))}};return ae(n,e?{add:an("add"),set:an("set"),delete:an("delete"),clear:an("clear")}:{add(r){!t&&!Pe(r)&&!yt(r)&&(r=J(r));const i=J(this);return cn(i).has.call(i,r)||(i.add(r),Ge(i,"add",r,r)),this},set(r,i){!t&&!Pe(i)&&!yt(i)&&(i=J(i));const o=J(this),{has:l,get:c}=cn(o);let f=l.call(o,r);f||(r=J(r),f=l.call(o,r));const a=c.call(o,r);return o.set(r,i),f?tt(i,a)&&Ge(o,"set",r,i):Ge(o,"add",r,i),this},delete(r){const i=J(this),{has:o,get:l}=cn(i);let c=o.call(i,r);c||(r=J(r),c=o.call(i,r)),l&&l.call(i,r);const f=i.delete(r);return c&&Ge(i,"delete",r,void 0),f},clear(){const r=J(this),i=r.size!==0,o=r.clear();return i&&Ge(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=yl(r,e,t)}),n}function Bs(e,t){const n=vl(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(z(n,r)&&r in s?n:s,r,i)}const _l={get:Bs(!1,!1)},bl={get:Bs(!1,!0)},wl={get:Bs(!0,!1)};const Ti=new WeakMap,Ci=new WeakMap,Ai=new WeakMap,Sl=new WeakMap;function xl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function El(e){return e.__v_skip||!Object.isExtensible(e)?0:xl(Go(e))}function jn(e){return yt(e)?e:Ws(e,!1,pl,_l,Ti)}function Tl(e){return Ws(e,!1,ml,bl,Ci)}function Vn(e){return Ws(e,!0,gl,wl,Ai)}function Ws(e,t,n,s,r){if(!ne(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=El(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function ht(e){return yt(e)?ht(e.__v_raw):!!(e&&e.__v_isReactive)}function yt(e){return!!(e&&e.__v_isReadonly)}function Pe(e){return!!(e&&e.__v_isShallow)}function Ks(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function wn(e){return!z(e,"__v_skip")&&Object.isExtensible(e)&&ai(e,"__v_skip",!0),e}const ye=e=>ne(e)?jn(e):e,Ss=e=>ne(e)?Vn(e):e;function fe(e){return e?e.__v_isRef===!0:!1}function oe(e){return Ri(e,!1)}function qs(e){return Ri(e,!0)}function Ri(e,t){return fe(e)?e:new Cl(e,t)}class Cl{constructor(t,n){this.dep=new $n,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:J(t),this._value=n?t:ye(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Pe(t)||yt(t);t=s?t:J(t),tt(t,n)&&(this._rawValue=t,this._value=s?t:ye(t),this.dep.trigger())}}function Oi(e){return fe(e)?e.value:e}const Al={get:(e,t,n)=>t==="__v_raw"?e:Oi(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return fe(r)&&!fe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Mi(e){return ht(e)?e:new Proxy(e,Al)}class Rl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new $n,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Ol(e){return new Rl(e)}class Ml{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return cl(J(this._object),this._key)}}class Pl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ll(e,t,n){return fe(e)?e:q(e)?new Pl(e):ne(e)&&arguments.length>1?Il(e,t,n):oe(e)}function Il(e,t,n){const s=e[t];return fe(s)?s:new Ml(e,t,n)}class Nl{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new $n(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Kt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&te!==this)return mi(this,!0),!0}get value(){const t=this.dep.track();return _i(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Fl(e,t,n=!1){let s,r;return q(e)?s=e:(s=e.get,r=e.set),new Nl(s,r,n)}const fn={},An=new WeakMap;let ft;function Hl(e,t=!1,n=ft){if(n){let s=An.get(n);s||An.set(n,s=[]),s.push(e)}}function $l(e,t,n=Z){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:c}=n,f=g=>r?g:Pe(g)||r===!1||r===0?Ye(g,1):Ye(g);let a,h,y,v,S=!1,_=!1;if(fe(e)?(h=()=>e.value,S=Pe(e)):ht(e)?(h=()=>f(e),S=!0):W(e)?(_=!0,S=e.some(g=>ht(g)||Pe(g)),h=()=>e.map(g=>{if(fe(g))return g.value;if(ht(g))return f(g);if(q(g))return c?c(g,2):g()})):q(e)?t?h=c?()=>c(e,2):e:h=()=>{if(y){rt();try{y()}finally{it()}}const g=ft;ft=a;try{return c?c(e,3,[v]):e(v)}finally{ft=g}}:h=ke,t&&r){const g=h,O=r===!0?1/0:r;h=()=>Ye(g(),O)}const K=hi(),N=()=>{a.stop(),K&&K.active&&Hs(K.effects,a)};if(i&&t){const g=t;t=(...O)=>{g(...O),N()}}let j=_?new Array(e.length).fill(fn):fn;const p=g=>{if(!(!(a.flags&1)||!a.dirty&&!g))if(t){const O=a.run();if(r||S||(_?O.some((F,$)=>tt(F,j[$])):tt(O,j))){y&&y();const F=ft;ft=a;try{const $=[O,j===fn?void 0:_&&j[0]===fn?[]:j,v];c?c(t,3,$):t(...$),j=O}finally{ft=F}}}else a.run()};return l&&l(p),a=new pi(h),a.scheduler=o?()=>o(p,!1):p,v=g=>Hl(g,!1,a),y=a.onStop=()=>{const g=An.get(a);if(g){if(c)c(g,4);else for(const O of g)O();An.delete(a)}},t?s?p(!0):j=a.run():o?o(p.bind(null,!0),!0):a.run(),N.pause=a.pause.bind(a),N.resume=a.resume.bind(a),N.stop=N,N}function Ye(e,t=1/0,n){if(t<=0||!ne(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,fe(e))Ye(e.value,t,n);else if(W(e))for(let s=0;s{Ye(s,t,n)});else if(ci(e)){for(const s in e)Ye(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Ye(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function tn(e,t,n,s){try{return s?e(...s):e()}catch(r){nn(r,t,n)}}function He(e,t,n,s){if(q(e)){const r=tn(e,t,n,s);return r&&oi(r)&&r.catch(i=>{nn(i,t,n)}),r}if(W(e)){const r=[];for(let i=0;i>>1,r=Se[s],i=Gt(r);i=Gt(n)?Se.push(e):Se.splice(jl(t),0,e),e.flags|=1,Li()}}function Li(){Rn||(Rn=Pi.then(Ii))}function Vl(e){W(e)?At.push(...e):Qe&&e.id===-1?Qe.splice(wt+1,0,e):e.flags&1||(At.push(e),e.flags|=1),Li()}function dr(e,t,n=Ve+1){for(;nGt(n)-Gt(s));if(At.length=0,Qe){Qe.push(...t);return}for(Qe=t,wt=0;wte.id==null?e.flags&2?-1:1/0:e.id;function Ii(e){try{for(Ve=0;Ve{s._d&&Ar(-1);const i=Mn(t);let o;try{o=e(...r)}finally{Mn(i),s._d&&Ar(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function _f(e,t){if(de===null)return e;const n=Gn(de),s=e.dirs||(e.dirs=[]);for(let r=0;re.__isTeleport,Vt=e=>e&&(e.disabled||e.disabled===""),hr=e=>e&&(e.defer||e.defer===""),pr=e=>typeof SVGElement<"u"&&e instanceof SVGElement,gr=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,xs=(e,t)=>{const n=e&&e.to;return re(n)?t?t(n):null:n},$i={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,i,o,l,c,f){const{mc:a,pc:h,pbc:y,o:{insert:v,querySelector:S,createText:_,createComment:K}}=f,N=Vt(t.props);let{shapeFlag:j,children:p,dynamicChildren:g}=t;if(e==null){const O=t.el=_(""),F=t.anchor=_("");v(O,n,s),v(F,n,s);const $=(R,b)=>{j&16&&(r&&r.isCE&&(r.ce._teleportTarget=R),a(p,R,b,r,i,o,l,c))},V=()=>{const R=t.target=xs(t.props,S),b=Di(R,t,_,v);R&&(o!=="svg"&&pr(R)?o="svg":o!=="mathml"&&gr(R)&&(o="mathml"),N||($(R,b),Sn(t,!1)))};N&&($(n,F),Sn(t,!0)),hr(t.props)?be(()=>{V(),t.el.__isMounted=!0},i):V()}else{if(hr(t.props)&&!e.el.__isMounted){be(()=>{$i.process(e,t,n,s,r,i,o,l,c,f),delete e.el.__isMounted},i);return}t.el=e.el,t.targetStart=e.targetStart;const O=t.anchor=e.anchor,F=t.target=e.target,$=t.targetAnchor=e.targetAnchor,V=Vt(e.props),R=V?n:F,b=V?O:$;if(o==="svg"||pr(F)?o="svg":(o==="mathml"||gr(F))&&(o="mathml"),g?(y(e.dynamicChildren,g,R,r,i,o,l),Qs(e,t,!0)):c||h(e,t,R,b,r,i,o,l,!1),N)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):un(t,n,O,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const I=t.target=xs(t.props,S);I&&un(t,I,null,f,0)}else V&&un(t,F,$,f,1);Sn(t,N)}},remove(e,t,n,{um:s,o:{remove:r}},i){const{shapeFlag:o,children:l,anchor:c,targetStart:f,targetAnchor:a,target:h,props:y}=e;if(h&&(r(f),r(a)),i&&r(c),o&16){const v=i||!Vt(y);for(let S=0;S{e.isMounted=!0}),Ki(()=>{e.isUnmounting=!0}),e}const Re=[Function,Array],ji={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Re,onEnter:Re,onAfterEnter:Re,onEnterCancelled:Re,onBeforeLeave:Re,onLeave:Re,onAfterLeave:Re,onLeaveCancelled:Re,onBeforeAppear:Re,onAppear:Re,onAfterAppear:Re,onAppearCancelled:Re},Vi=e=>{const t=e.subTree;return t.component?Vi(t.component):t},Wl={name:"BaseTransition",props:ji,setup(e,{slots:t}){const n=qn(),s=Bl();return()=>{const r=t.default&&Bi(t.default(),!0);if(!r||!r.length)return;const i=Ui(r),o=J(e),{mode:l}=o;if(s.isLeaving)return ts(i);const c=mr(i);if(!c)return ts(i);let f=Es(c,o,s,n,h=>f=h);c.type!==ve&&Yt(c,f);let a=n.subTree&&mr(n.subTree);if(a&&a.type!==ve&&!ut(c,a)&&Vi(n).type!==ve){let h=Es(a,o,s,n);if(Yt(a,h),l==="out-in"&&c.type!==ve)return s.isLeaving=!0,h.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete h.afterLeave,a=void 0},ts(i);l==="in-out"&&c.type!==ve?h.delayLeave=(y,v,S)=>{const _=ki(s,a);_[String(a.key)]=a,y[Ze]=()=>{v(),y[Ze]=void 0,delete f.delayedLeave,a=void 0},f.delayedLeave=()=>{S(),delete f.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return i}}};function Ui(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const Kl=Wl;function ki(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Es(e,t,n,s,r){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:a,onEnterCancelled:h,onBeforeLeave:y,onLeave:v,onAfterLeave:S,onLeaveCancelled:_,onBeforeAppear:K,onAppear:N,onAfterAppear:j,onAppearCancelled:p}=t,g=String(e.key),O=ki(n,e),F=(R,b)=>{R&&He(R,s,9,b)},$=(R,b)=>{const I=b[1];F(R,b),W(R)?R.every(x=>x.length<=1)&&I():R.length<=1&&I()},V={mode:o,persisted:l,beforeEnter(R){let b=c;if(!n.isMounted)if(i)b=K||c;else return;R[Ze]&&R[Ze](!0);const I=O[g];I&&ut(e,I)&&I.el[Ze]&&I.el[Ze](),F(b,[R])},enter(R){let b=f,I=a,x=h;if(!n.isMounted)if(i)b=N||f,I=j||a,x=p||h;else return;let B=!1;const se=R[dn]=le=>{B||(B=!0,le?F(x,[R]):F(I,[R]),V.delayedLeave&&V.delayedLeave(),R[dn]=void 0)};b?$(b,[R,se]):se()},leave(R,b){const I=String(e.key);if(R[dn]&&R[dn](!0),n.isUnmounting)return b();F(y,[R]);let x=!1;const B=R[Ze]=se=>{x||(x=!0,b(),se?F(_,[R]):F(S,[R]),R[Ze]=void 0,O[I]===e&&delete O[I])};O[I]=e,v?$(v,[R,B]):B()},clone(R){const b=Es(R,t,n,s,r);return r&&r(b),b}};return V}function ts(e){if(sn(e))return e=nt(e),e.children=null,e}function mr(e){if(!sn(e))return Hi(e.type)&&e.children?Ui(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&q(n.default))return n.default()}}function Yt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Yt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Bi(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;iXt(S,t&&(W(t)?t[_]:t),n,s,r));return}if(pt(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Xt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Gn(s.component):s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===Z?l.refs={}:l.refs,h=l.setupState,y=J(h),v=h===Z?()=>!1:S=>z(y,S);if(f!=null&&f!==c&&(re(f)?(a[f]=null,v(f)&&(h[f]=null)):fe(f)&&(f.value=null)),q(c))tn(c,l,12,[o,a]);else{const S=re(c),_=fe(c);if(S||_){const K=()=>{if(e.f){const N=S?v(c)?h[c]:a[c]:c.value;r?W(N)&&Hs(N,i):W(N)?N.includes(i)||N.push(i):S?(a[c]=[i],v(c)&&(h[c]=a[c])):(c.value=[i],e.k&&(a[e.k]=c.value))}else S?(a[c]=o,v(c)&&(h[c]=o)):_&&(c.value=o,e.k&&(a[e.k]=o))};o?(K.id=-1,be(K,n)):K()}}}let yr=!1;const bt=()=>{yr||(console.error("Hydration completed but contains mismatches."),yr=!0)},ql=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Gl=e=>e.namespaceURI.includes("MathML"),hn=e=>{if(e.nodeType===1){if(ql(e))return"svg";if(Gl(e))return"mathml"}},xt=e=>e.nodeType===8;function Yl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:f}}=e,a=(p,g)=>{if(!g.hasChildNodes()){n(null,p,g),On(),g._vnode=p;return}h(g.firstChild,p,null,null,null),On(),g._vnode=p},h=(p,g,O,F,$,V=!1)=>{V=V||!!g.dynamicChildren;const R=xt(p)&&p.data==="[",b=()=>_(p,g,O,F,$,R),{type:I,ref:x,shapeFlag:B,patchFlag:se}=g;let le=p.nodeType;g.el=p,se===-2&&(V=!1,g.dynamicChildren=null);let U=null;switch(I){case gt:le!==3?g.children===""?(c(g.el=r(""),o(p),p),U=p):U=b():(p.data!==g.children&&(bt(),p.data=g.children),U=i(p));break;case ve:j(p)?(U=i(p),N(g.el=p.content.firstChild,p,O)):le!==8||R?U=b():U=i(p);break;case kt:if(R&&(p=i(p),le=p.nodeType),le===1||le===3){U=p;const Y=!g.children.length;for(let D=0;D{V=V||!!g.dynamicChildren;const{type:R,props:b,patchFlag:I,shapeFlag:x,dirs:B,transition:se}=g,le=R==="input"||R==="option";if(le||I!==-1){B&&Ue(g,null,O,"created");let U=!1;if(j(p)){U=co(null,se)&&O&&O.vnode.props&&O.vnode.props.appear;const D=p.content.firstChild;U&&se.beforeEnter(D),N(D,p,O),g.el=p=D}if(x&16&&!(b&&(b.innerHTML||b.textContent))){let D=v(p.firstChild,g,p,O,F,$,V);for(;D;){pn(p,1)||bt();const he=D;D=D.nextSibling,l(he)}}else if(x&8){let D=g.children;D[0]===` +`&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(D=D.slice(1)),p.textContent!==D&&(pn(p,0)||bt(),p.textContent=g.children)}if(b){if(le||!V||I&48){const D=p.tagName.includes("-");for(const he in b)(le&&(he.endsWith("value")||he==="indeterminate")||en(he)&&!Ct(he)||he[0]==="."||D)&&s(p,he,null,b[he],void 0,O)}else if(b.onClick)s(p,"onClick",null,b.onClick,void 0,O);else if(I&4&&ht(b.style))for(const D in b.style)b.style[D]}let Y;(Y=b&&b.onVnodeBeforeMount)&&Oe(Y,O,g),B&&Ue(g,null,O,"beforeMount"),((Y=b&&b.onVnodeMounted)||B||U)&&go(()=>{Y&&Oe(Y,O,g),U&&se.enter(p),B&&Ue(g,null,O,"mounted")},F)}return p.nextSibling},v=(p,g,O,F,$,V,R)=>{R=R||!!g.dynamicChildren;const b=g.children,I=b.length;for(let x=0;x{const{slotScopeIds:R}=g;R&&($=$?$.concat(R):R);const b=o(p),I=v(i(p),g,b,O,F,$,V);return I&&xt(I)&&I.data==="]"?i(g.anchor=I):(bt(),c(g.anchor=f("]"),b,I),I)},_=(p,g,O,F,$,V)=>{if(pn(p.parentElement,1)||bt(),g.el=null,V){const I=K(p);for(;;){const x=i(p);if(x&&x!==I)l(x);else break}}const R=i(p),b=o(p);return l(p),n(null,g,b,R,O,F,hn(b),$),O&&(O.vnode.el=g.el,ho(O,g.el)),R},K=(p,g="[",O="]")=>{let F=0;for(;p;)if(p=i(p),p&&xt(p)&&(p.data===g&&F++,p.data===O)){if(F===0)return i(p);F--}return p},N=(p,g,O)=>{const F=g.parentNode;F&&F.replaceChild(p,g);let $=O;for(;$;)$.vnode.el===g&&($.vnode.el=$.subTree.el=p),$=$.parent},j=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[a,h]}const vr="data-allow-mismatch",Xl={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function pn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(vr);)e=e.parentElement;const n=e&&e.getAttribute(vr);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return t===0&&s.includes("children")?!0:n.split(",").includes(Xl[t])}}Hn().requestIdleCallback;Hn().cancelIdleCallback;function Jl(e,t){if(xt(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(xt(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const pt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function wf(e){q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,hydrate:i,timeout:o,suspensible:l=!0,onError:c}=e;let f=null,a,h=0;const y=()=>(h++,f=null,v()),v=()=>{let S;return f||(S=f=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),c)return new Promise((K,N)=>{c(_,()=>K(y()),()=>N(_),h+1)});throw _}).then(_=>S!==f&&f?f:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),a=_,_)))};return Ys({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(S,_,K){const N=i?()=>{const j=i(K,p=>Jl(S,p));j&&(_.bum||(_.bum=[])).push(j)}:K;a?N():v().then(()=>!_.isUnmounted&&N())},get __asyncResolved(){return a},setup(){const S=ue;if(Xs(S),a)return()=>ns(a,S);const _=p=>{f=null,nn(p,S,13,!s)};if(l&&S.suspense||Mt)return v().then(p=>()=>ns(p,S)).catch(p=>(_(p),()=>s?ce(s,{error:p}):null));const K=oe(!1),N=oe(),j=oe(!!r);return r&&setTimeout(()=>{j.value=!1},r),o!=null&&setTimeout(()=>{if(!K.value&&!N.value){const p=new Error(`Async component timed out after ${o}ms.`);_(p),N.value=p}},o),v().then(()=>{K.value=!0,S.parent&&sn(S.parent.vnode)&&S.parent.update()}).catch(p=>{_(p),N.value=p}),()=>{if(K.value&&a)return ns(a,S);if(N.value&&s)return ce(s,{error:N.value});if(n&&!j.value)return ce(n)}}})}function ns(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=ce(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const sn=e=>e.type.__isKeepAlive;function zl(e,t){Wi(e,"a",t)}function Ql(e,t){Wi(e,"da",t)}function Wi(e,t,n=ue){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(kn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)sn(r.parent.vnode)&&Zl(s,t,n,r),r=r.parent}}function Zl(e,t,n,s){const r=kn(t,e,s,!0);Bn(()=>{Hs(s[t],r)},n)}function kn(e,t,n=ue,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{rt();const l=rn(n),c=He(t,n,e,o);return l(),it(),c});return s?r.unshift(i):r.push(i),i}}const Je=e=>(t,n=ue)=>{(!Mt||e==="sp")&&kn(e,(...s)=>t(...s),n)},ec=Je("bm"),Lt=Je("m"),tc=Je("bu"),nc=Je("u"),Ki=Je("bum"),Bn=Je("um"),sc=Je("sp"),rc=Je("rtg"),ic=Je("rtc");function oc(e,t=ue){kn("ec",e,t)}const qi="components";function Sf(e,t){return Yi(qi,e,!0,t)||e}const Gi=Symbol.for("v-ndc");function xf(e){return re(e)?Yi(qi,e,!1)||e:e||Gi}function Yi(e,t,n=!0,s=!1){const r=de||ue;if(r){const i=r.type;{const l=Wc(i,!1);if(l&&(l===t||l===Le(t)||l===Fn(Le(t))))return i}const o=_r(r[e]||i[e],t)||_r(r.appContext[e],t);return!o&&s?i:o}}function _r(e,t){return e&&(e[t]||e[Le(t)]||e[Fn(Le(t))])}function Ef(e,t,n,s){let r;const i=n,o=W(e);if(o||re(e)){const l=o&&ht(e);let c=!1;l&&(c=!Pe(e),e=Dn(e)),r=new Array(e.length);for(let f=0,a=e.length;ft(l,c,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,f=l.length;czt(t)?!(t.type===ve||t.type===xe&&!Xi(t.children)):!0)?e:null}function Cf(e,t){const n={};for(const s in e)n[/[A-Z]/.test(s)?`on:${s}`:_n(s)]=e[s];return n}const Ts=e=>e?bo(e)?Gn(e):Ts(e.parent):null,Ut=ae(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ts(e.parent),$root:e=>Ts(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Js(e),$forceUpdate:e=>e.f||(e.f=()=>{Gs(e.update)}),$nextTick:e=>e.n||(e.n=Un.bind(e.proxy)),$watch:e=>Rc.bind(e)}),ss=(e,t)=>e!==Z&&!e.__isScriptSetup&&z(e,t),lc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(ss(s,t))return o[t]=1,s[t];if(r!==Z&&z(r,t))return o[t]=2,r[t];if((f=e.propsOptions[0])&&z(f,t))return o[t]=3,i[t];if(n!==Z&&z(n,t))return o[t]=4,n[t];Cs&&(o[t]=0)}}const a=Ut[t];let h,y;if(a)return t==="$attrs"&&me(e.attrs,"get",""),a(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==Z&&z(n,t))return o[t]=4,n[t];if(y=c.config.globalProperties,z(y,t))return y[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return ss(r,t)?(r[t]=n,!0):s!==Z&&z(s,t)?(s[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==Z&&z(e,o)||ss(t,o)||(l=i[0])&&z(l,o)||z(s,o)||z(Ut,o)||z(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Af(){return cc().slots}function cc(){const e=qn();return e.setupContext||(e.setupContext=So(e))}function br(e){return W(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Cs=!0;function ac(e){const t=Js(e),n=e.proxy,s=e.ctx;Cs=!1,t.beforeCreate&&wr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:h,mounted:y,beforeUpdate:v,updated:S,activated:_,deactivated:K,beforeDestroy:N,beforeUnmount:j,destroyed:p,unmounted:g,render:O,renderTracked:F,renderTriggered:$,errorCaptured:V,serverPrefetch:R,expose:b,inheritAttrs:I,components:x,directives:B,filters:se}=t;if(f&&fc(f,s,null),o)for(const Y in o){const D=o[Y];q(D)&&(s[Y]=D.bind(n))}if(r){const Y=r.call(n,n);ne(Y)&&(e.data=jn(Y))}if(Cs=!0,i)for(const Y in i){const D=i[Y],he=q(D)?D.bind(n,n):q(D.get)?D.get.bind(n,n):ke,on=!q(D)&&q(D.set)?D.set.bind(n):ke,ot=ie({get:he,set:on});Object.defineProperty(s,Y,{enumerable:!0,configurable:!0,get:()=>ot.value,set:De=>ot.value=De})}if(l)for(const Y in l)Ji(l[Y],s,n,Y);if(c){const Y=q(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(D=>{mc(D,Y[D])})}a&&wr(a,e,"c");function U(Y,D){W(D)?D.forEach(he=>Y(he.bind(n))):D&&Y(D.bind(n))}if(U(ec,h),U(Lt,y),U(tc,v),U(nc,S),U(zl,_),U(Ql,K),U(oc,V),U(ic,F),U(rc,$),U(Ki,j),U(Bn,g),U(sc,R),W(b))if(b.length){const Y=e.exposed||(e.exposed={});b.forEach(D=>{Object.defineProperty(Y,D,{get:()=>n[D],set:he=>n[D]=he})})}else e.exposed||(e.exposed={});O&&e.render===ke&&(e.render=O),I!=null&&(e.inheritAttrs=I),x&&(e.components=x),B&&(e.directives=B),R&&Xs(e)}function fc(e,t,n=ke){W(e)&&(e=As(e));for(const s in e){const r=e[s];let i;ne(r)?"default"in r?i=Ot(r.from||s,r.default,!0):i=Ot(r.from||s):i=Ot(r),fe(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function wr(e,t,n){He(W(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ji(e,t,n,s){let r=s.includes(".")?fo(n,s):()=>n[s];if(re(e)){const i=t[e];q(i)&&Fe(r,i)}else if(q(e))Fe(r,e.bind(n));else if(ne(e))if(W(e))e.forEach(i=>Ji(i,t,n,s));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&Fe(r,i,e)}}function Js(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>Pn(c,f,o,!0)),Pn(c,t,o)),ne(t)&&i.set(t,c),c}function Pn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Pn(e,i,n,!0),r&&r.forEach(o=>Pn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=uc[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const uc={data:Sr,props:xr,emits:xr,methods:$t,computed:$t,beforeCreate:_e,created:_e,beforeMount:_e,mounted:_e,beforeUpdate:_e,updated:_e,beforeDestroy:_e,beforeUnmount:_e,destroyed:_e,unmounted:_e,activated:_e,deactivated:_e,errorCaptured:_e,serverPrefetch:_e,components:$t,directives:$t,watch:hc,provide:Sr,inject:dc};function Sr(e,t){return t?e?function(){return ae(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function dc(e,t){return $t(As(e),As(t))}function As(e){if(W(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(s&&s.proxy):t}}const Qi={},Zi=()=>Object.create(Qi),eo=e=>Object.getPrototypeOf(e)===Qi;function yc(e,t,n,s=!1){const r={},i=Zi();e.propsDefaults=Object.create(null),to(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Tl(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function vc(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let f=!1;if((s||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[y,v]=no(h,t,!0);ae(o,y),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return ne(e)&&s.set(e,Et),Et;if(W(i))for(let a=0;ae[0]==="_"||e==="$stable",zs=e=>W(e)?e.map(Me):[Me(e)],bc=(e,t,n)=>{if(t._n)return t;const s=Ul((...r)=>zs(t(...r)),n);return s._c=!1,s},ro=(e,t,n)=>{const s=e._ctx;for(const r in e){if(so(r))continue;const i=e[r];if(q(i))t[r]=bc(r,i,s);else if(i!=null){const o=zs(i);t[r]=()=>o}}},io=(e,t)=>{const n=zs(t);e.slots.default=()=>n},oo=(e,t,n)=>{for(const s in t)(n||s!=="_")&&(e[s]=t[s])},wc=(e,t,n)=>{const s=e.slots=Zi();if(e.vnode.shapeFlag&32){const r=t._;r?(oo(s,t,n),n&&ai(s,"_",r,!0)):ro(t,s)}else t&&io(e,t)},Sc=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=Z;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:oo(r,t,n):(i=!t.$stable,ro(t,r)),o=t}else t&&(io(e,t),o={default:1});if(i)for(const l in r)!so(l)&&o[l]==null&&delete r[l]},be=go;function xc(e){return lo(e)}function Ec(e){return lo(e,Yl)}function lo(e,t){const n=Hn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:h,nextSibling:y,setScopeId:v=ke,insertStaticContent:S}=e,_=(u,d,m,T=null,w=null,E=null,P=void 0,M=null,A=!!d.dynamicChildren)=>{if(u===d)return;u&&!ut(u,d)&&(T=ln(u),De(u,w,E,!0),u=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:C,ref:k,shapeFlag:L}=d;switch(C){case gt:K(u,d,m,T);break;case ve:N(u,d,m,T);break;case kt:u==null&&j(d,m,T,P);break;case xe:x(u,d,m,T,w,E,P,M,A);break;default:L&1?O(u,d,m,T,w,E,P,M,A):L&6?B(u,d,m,T,w,E,P,M,A):(L&64||L&128)&&C.process(u,d,m,T,w,E,P,M,A,vt)}k!=null&&w&&Xt(k,u&&u.ref,E,d||u,!d)},K=(u,d,m,T)=>{if(u==null)s(d.el=l(d.children),m,T);else{const w=d.el=u.el;d.children!==u.children&&f(w,d.children)}},N=(u,d,m,T)=>{u==null?s(d.el=c(d.children||""),m,T):d.el=u.el},j=(u,d,m,T)=>{[u.el,u.anchor]=S(u.children,d,m,T,u.el,u.anchor)},p=({el:u,anchor:d},m,T)=>{let w;for(;u&&u!==d;)w=y(u),s(u,m,T),u=w;s(d,m,T)},g=({el:u,anchor:d})=>{let m;for(;u&&u!==d;)m=y(u),r(u),u=m;r(d)},O=(u,d,m,T,w,E,P,M,A)=>{d.type==="svg"?P="svg":d.type==="math"&&(P="mathml"),u==null?F(d,m,T,w,E,P,M,A):R(u,d,w,E,P,M,A)},F=(u,d,m,T,w,E,P,M)=>{let A,C;const{props:k,shapeFlag:L,transition:H,dirs:G}=u;if(A=u.el=o(u.type,E,k&&k.is,k),L&8?a(A,u.children):L&16&&V(u.children,A,null,T,w,rs(u,E),P,M),G&&Ue(u,null,T,"created"),$(A,u,u.scopeId,P,T),k){for(const ee in k)ee!=="value"&&!Ct(ee)&&i(A,ee,null,k[ee],E,T);"value"in k&&i(A,"value",null,k.value,E),(C=k.onVnodeBeforeMount)&&Oe(C,T,u)}G&&Ue(u,null,T,"beforeMount");const X=co(w,H);X&&H.beforeEnter(A),s(A,d,m),((C=k&&k.onVnodeMounted)||X||G)&&be(()=>{C&&Oe(C,T,u),X&&H.enter(A),G&&Ue(u,null,T,"mounted")},w)},$=(u,d,m,T,w)=>{if(m&&v(u,m),T)for(let E=0;E{for(let C=A;C{const M=d.el=u.el;let{patchFlag:A,dynamicChildren:C,dirs:k}=d;A|=u.patchFlag&16;const L=u.props||Z,H=d.props||Z;let G;if(m&<(m,!1),(G=H.onVnodeBeforeUpdate)&&Oe(G,m,d,u),k&&Ue(d,u,m,"beforeUpdate"),m&<(m,!0),(L.innerHTML&&H.innerHTML==null||L.textContent&&H.textContent==null)&&a(M,""),C?b(u.dynamicChildren,C,M,m,T,rs(d,w),E):P||D(u,d,M,null,m,T,rs(d,w),E,!1),A>0){if(A&16)I(M,L,H,m,w);else if(A&2&&L.class!==H.class&&i(M,"class",null,H.class,w),A&4&&i(M,"style",L.style,H.style,w),A&8){const X=d.dynamicProps;for(let ee=0;ee{G&&Oe(G,m,d,u),k&&Ue(d,u,m,"updated")},T)},b=(u,d,m,T,w,E,P)=>{for(let M=0;M{if(d!==m){if(d!==Z)for(const E in d)!Ct(E)&&!(E in m)&&i(u,E,d[E],null,w,T);for(const E in m){if(Ct(E))continue;const P=m[E],M=d[E];P!==M&&E!=="value"&&i(u,E,M,P,w,T)}"value"in m&&i(u,"value",d.value,m.value,w)}},x=(u,d,m,T,w,E,P,M,A)=>{const C=d.el=u?u.el:l(""),k=d.anchor=u?u.anchor:l("");let{patchFlag:L,dynamicChildren:H,slotScopeIds:G}=d;G&&(M=M?M.concat(G):G),u==null?(s(C,m,T),s(k,m,T),V(d.children||[],m,k,w,E,P,M,A)):L>0&&L&64&&H&&u.dynamicChildren?(b(u.dynamicChildren,H,m,w,E,P,M),(d.key!=null||w&&d===w.subTree)&&Qs(u,d,!0)):D(u,d,m,k,w,E,P,M,A)},B=(u,d,m,T,w,E,P,M,A)=>{d.slotScopeIds=M,u==null?d.shapeFlag&512?w.ctx.activate(d,m,T,P,A):se(d,m,T,w,E,P,A):le(u,d,A)},se=(u,d,m,T,w,E,P)=>{const M=u.component=Vc(u,T,w);if(sn(u)&&(M.ctx.renderer=vt),Uc(M,!1,P),M.asyncDep){if(w&&w.registerDep(M,U,P),!u.el){const A=M.subTree=ce(ve);N(null,A,d,m)}}else U(M,u,d,m,w,E,P)},le=(u,d,m)=>{const T=d.component=u.component;if(Ic(u,d,m))if(T.asyncDep&&!T.asyncResolved){Y(T,d,m);return}else T.next=d,T.update();else d.el=u.el,T.vnode=d},U=(u,d,m,T,w,E,P)=>{const M=()=>{if(u.isMounted){let{next:L,bu:H,u:G,parent:X,vnode:ee}=u;{const Te=ao(u);if(Te){L&&(L.el=ee.el,Y(u,L,P)),Te.asyncDep.then(()=>{u.isUnmounted||M()});return}}let Q=L,Ee;lt(u,!1),L?(L.el=ee.el,Y(u,L,P)):L=ee,H&&bn(H),(Ee=L.props&&L.props.onVnodeBeforeUpdate)&&Oe(Ee,X,L,ee),lt(u,!0);const pe=is(u),Ie=u.subTree;u.subTree=pe,_(Ie,pe,h(Ie.el),ln(Ie),u,w,E),L.el=pe.el,Q===null&&ho(u,pe.el),G&&be(G,w),(Ee=L.props&&L.props.onVnodeUpdated)&&be(()=>Oe(Ee,X,L,ee),w)}else{let L;const{el:H,props:G}=d,{bm:X,m:ee,parent:Q,root:Ee,type:pe}=u,Ie=pt(d);if(lt(u,!1),X&&bn(X),!Ie&&(L=G&&G.onVnodeBeforeMount)&&Oe(L,Q,d),lt(u,!0),H&&Jn){const Te=()=>{u.subTree=is(u),Jn(H,u.subTree,u,w,null)};Ie&&pe.__asyncHydrate?pe.__asyncHydrate(H,u,Te):Te()}else{Ee.ce&&Ee.ce._injectChildStyle(pe);const Te=u.subTree=is(u);_(null,Te,m,T,u,w,E),d.el=Te.el}if(ee&&be(ee,w),!Ie&&(L=G&&G.onVnodeMounted)){const Te=d;be(()=>Oe(L,Q,Te),w)}(d.shapeFlag&256||Q&&pt(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&be(u.a,w),u.isMounted=!0,d=m=T=null}};u.scope.on();const A=u.effect=new pi(M);u.scope.off();const C=u.update=A.run.bind(A),k=u.job=A.runIfDirty.bind(A);k.i=u,k.id=u.uid,A.scheduler=()=>Gs(k),lt(u,!0),C()},Y=(u,d,m)=>{d.component=u;const T=u.vnode.props;u.vnode=d,u.next=null,vc(u,d.props,T,m),Sc(u,d.children,m),rt(),dr(u),it()},D=(u,d,m,T,w,E,P,M,A=!1)=>{const C=u&&u.children,k=u?u.shapeFlag:0,L=d.children,{patchFlag:H,shapeFlag:G}=d;if(H>0){if(H&128){on(C,L,m,T,w,E,P,M,A);return}else if(H&256){he(C,L,m,T,w,E,P,M,A);return}}G&8?(k&16&&It(C,w,E),L!==C&&a(m,L)):k&16?G&16?on(C,L,m,T,w,E,P,M,A):It(C,w,E,!0):(k&8&&a(m,""),G&16&&V(L,m,T,w,E,P,M,A))},he=(u,d,m,T,w,E,P,M,A)=>{u=u||Et,d=d||Et;const C=u.length,k=d.length,L=Math.min(C,k);let H;for(H=0;Hk?It(u,w,E,!0,!1,L):V(d,m,T,w,E,P,M,A,L)},on=(u,d,m,T,w,E,P,M,A)=>{let C=0;const k=d.length;let L=u.length-1,H=k-1;for(;C<=L&&C<=H;){const G=u[C],X=d[C]=A?et(d[C]):Me(d[C]);if(ut(G,X))_(G,X,m,null,w,E,P,M,A);else break;C++}for(;C<=L&&C<=H;){const G=u[L],X=d[H]=A?et(d[H]):Me(d[H]);if(ut(G,X))_(G,X,m,null,w,E,P,M,A);else break;L--,H--}if(C>L){if(C<=H){const G=H+1,X=GH)for(;C<=L;)De(u[C],w,E,!0),C++;else{const G=C,X=C,ee=new Map;for(C=X;C<=H;C++){const Ce=d[C]=A?et(d[C]):Me(d[C]);Ce.key!=null&&ee.set(Ce.key,C)}let Q,Ee=0;const pe=H-X+1;let Ie=!1,Te=0;const Nt=new Array(pe);for(C=0;C=pe){De(Ce,w,E,!0);continue}let je;if(Ce.key!=null)je=ee.get(Ce.key);else for(Q=X;Q<=H;Q++)if(Nt[Q-X]===0&&ut(Ce,d[Q])){je=Q;break}je===void 0?De(Ce,w,E,!0):(Nt[je-X]=C+1,je>=Te?Te=je:Ie=!0,_(Ce,d[je],m,null,w,E,P,M,A),Ee++)}const lr=Ie?Tc(Nt):Et;for(Q=lr.length-1,C=pe-1;C>=0;C--){const Ce=X+C,je=d[Ce],cr=Ce+1{const{el:E,type:P,transition:M,children:A,shapeFlag:C}=u;if(C&6){ot(u.component.subTree,d,m,T);return}if(C&128){u.suspense.move(d,m,T);return}if(C&64){P.move(u,d,m,vt);return}if(P===xe){s(E,d,m);for(let L=0;LM.enter(E),w);else{const{leave:L,delayLeave:H,afterLeave:G}=M,X=()=>s(E,d,m),ee=()=>{L(E,()=>{X(),G&&G()})};H?H(E,X,ee):ee()}else s(E,d,m)},De=(u,d,m,T=!1,w=!1)=>{const{type:E,props:P,ref:M,children:A,dynamicChildren:C,shapeFlag:k,patchFlag:L,dirs:H,cacheIndex:G}=u;if(L===-2&&(w=!1),M!=null&&Xt(M,null,m,u,!0),G!=null&&(d.renderCache[G]=void 0),k&256){d.ctx.deactivate(u);return}const X=k&1&&H,ee=!pt(u);let Q;if(ee&&(Q=P&&P.onVnodeBeforeUnmount)&&Oe(Q,d,u),k&6)Wo(u.component,m,T);else{if(k&128){u.suspense.unmount(m,T);return}X&&Ue(u,null,d,"beforeUnmount"),k&64?u.type.remove(u,d,m,vt,T):C&&!C.hasOnce&&(E!==xe||L>0&&L&64)?It(C,d,m,!1,!0):(E===xe&&L&384||!w&&k&16)&&It(A,d,m),T&&ir(u)}(ee&&(Q=P&&P.onVnodeUnmounted)||X)&&be(()=>{Q&&Oe(Q,d,u),X&&Ue(u,null,d,"unmounted")},m)},ir=u=>{const{type:d,el:m,anchor:T,transition:w}=u;if(d===xe){Bo(m,T);return}if(d===kt){g(u);return}const E=()=>{r(m),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(u.shapeFlag&1&&w&&!w.persisted){const{leave:P,delayLeave:M}=w,A=()=>P(m,E);M?M(u.el,E,A):A()}else E()},Bo=(u,d)=>{let m;for(;u!==d;)m=y(u),r(u),u=m;r(d)},Wo=(u,d,m)=>{const{bum:T,scope:w,job:E,subTree:P,um:M,m:A,a:C}=u;Tr(A),Tr(C),T&&bn(T),w.stop(),E&&(E.flags|=8,De(P,u,d,m)),M&&be(M,d),be(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},It=(u,d,m,T=!1,w=!1,E=0)=>{for(let P=E;P{if(u.shapeFlag&6)return ln(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const d=y(u.anchor||u.el),m=d&&d[Fi];return m?y(m):d};let Yn=!1;const or=(u,d,m)=>{u==null?d._vnode&&De(d._vnode,null,null,!0):_(d._vnode||null,u,d,null,null,null,m),d._vnode=u,Yn||(Yn=!0,dr(),On(),Yn=!1)},vt={p:_,um:De,m:ot,r:ir,mt:se,mc:V,pc:D,pbc:b,n:ln,o:e};let Xn,Jn;return t&&([Xn,Jn]=t(vt)),{render:or,hydrate:Xn,createApp:gc(or,Xn)}}function rs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function lt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function co(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Qs(e,t,n=!1){const s=e.children,r=t.children;if(W(s)&&W(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function ao(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ao(t)}function Tr(e){if(e)for(let t=0;tOt(Cc);function Zs(e,t){return Wn(e,null,t)}function Rf(e,t){return Wn(e,null,{flush:"post"})}function Fe(e,t,n){return Wn(e,t,n)}function Wn(e,t,n=Z){const{immediate:s,deep:r,flush:i,once:o}=n,l=ae({},n),c=t&&s||!t&&i!=="post";let f;if(Mt){if(i==="sync"){const v=Ac();f=v.__watcherHandles||(v.__watcherHandles=[])}else if(!c){const v=()=>{};return v.stop=ke,v.resume=ke,v.pause=ke,v}}const a=ue;l.call=(v,S,_)=>He(v,a,S,_);let h=!1;i==="post"?l.scheduler=v=>{be(v,a&&a.suspense)}:i!=="sync"&&(h=!0,l.scheduler=(v,S)=>{S?v():Gs(v)}),l.augmentJob=v=>{t&&(v.flags|=4),h&&(v.flags|=2,a&&(v.id=a.uid,v.i=a))};const y=$l(e,t,l);return Mt&&(f?f.push(y):c&&y()),y}function Rc(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?fo(s,e):()=>s[e]:e.bind(s,s);let i;q(t)?i=t:(i=t.handler,n=t);const o=rn(this),l=Wn(r,i.bind(s),n);return o(),l}function fo(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;rt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${st(t)}Modifiers`];function Mc(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Z;let r=n;const i=t.startsWith("update:"),o=i&&Oc(s,t.slice(7));o&&(o.trim&&(r=n.map(a=>re(a)?a.trim():a)),o.number&&(r=n.map(vs)));let l,c=s[l=_n(t)]||s[l=_n(Le(t))];!c&&i&&(c=s[l=_n(st(t))]),c&&He(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,He(f,e,6,r)}}function uo(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!q(e)){const c=f=>{const a=uo(f,t,!0);a&&(l=!0,ae(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ne(e)&&s.set(e,null),null):(W(i)?i.forEach(c=>o[c]=null):ae(o,i),ne(e)&&s.set(e,o),o)}function Kn(e,t){return!e||!en(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,st(t))||z(e,t))}function is(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:a,props:h,data:y,setupState:v,ctx:S,inheritAttrs:_}=e,K=Mn(e);let N,j;try{if(n.shapeFlag&4){const g=r||s,O=g;N=Me(f.call(O,g,a,h,v,y,S)),j=l}else{const g=t;N=Me(g.length>1?g(h,{attrs:l,slots:o,emit:c}):g(h,null)),j=t.props?l:Pc(l)}}catch(g){Bt.length=0,nn(g,e,1),N=ce(ve)}let p=N;if(j&&_!==!1){const g=Object.keys(j),{shapeFlag:O}=p;g.length&&O&7&&(i&&g.some(Fs)&&(j=Lc(j,i)),p=nt(p,j,!1,!0))}return n.dirs&&(p=nt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Yt(p,n.transition),N=p,Mn(K),N}const Pc=e=>{let t;for(const n in e)(n==="class"||n==="style"||en(n))&&((t||(t={}))[n]=e[n]);return t},Lc=(e,t)=>{const n={};for(const s in e)(!Fs(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Ic(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Cr(s,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let h=0;he.__isSuspense;function go(e,t){t&&t.pendingBranch?W(e)?t.effects.push(...e):t.effects.push(e):Vl(e)}const xe=Symbol.for("v-fgt"),gt=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),kt=Symbol.for("v-stc"),Bt=[];let Ae=null;function Os(e=!1){Bt.push(Ae=e?null:[])}function Nc(){Bt.pop(),Ae=Bt[Bt.length-1]||null}let Jt=1;function Ar(e,t=!1){Jt+=e,e<0&&Ae&&t&&(Ae.hasOnce=!0)}function mo(e){return e.dynamicChildren=Jt>0?Ae||Et:null,Nc(),Jt>0&&Ae&&Ae.push(e),e}function Of(e,t,n,s,r,i){return mo(vo(e,t,n,s,r,i,!0))}function Ms(e,t,n,s,r){return mo(ce(e,t,n,s,r,!0))}function zt(e){return e?e.__v_isVNode===!0:!1}function ut(e,t){return e.type===t.type&&e.key===t.key}const yo=({key:e})=>e??null,xn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||fe(e)||q(e)?{i:de,r:e,k:t,f:!!n}:e:null);function vo(e,t=null,n=null,s=0,r=null,i=e===xe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&yo(t),ref:t&&xn(t),scopeId:Ni,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:de};return l?(er(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),Jt>0&&!o&&Ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ae.push(c),c}const ce=Fc;function Fc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Gi)&&(e=ve),zt(e)){const l=nt(e,t,!0);return n&&er(l,n),Jt>0&&!i&&Ae&&(l.shapeFlag&6?Ae[Ae.indexOf(e)]=l:Ae.push(l)),l.patchFlag=-2,l}if(Kc(e)&&(e=e.__vccOpts),t){t=Hc(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=js(l)),ne(c)&&(Ks(c)&&!W(c)&&(c=ae({},c)),t.style=Ds(c))}const o=re(e)?1:po(e)?128:Hi(e)?64:ne(e)?4:q(e)?2:0;return vo(e,t,n,s,r,o,i,!0)}function Hc(e){return e?Ks(e)||eo(e)?ae({},e):e:null}function nt(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?$c(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&yo(f),ref:t&&t.ref?n&&i?W(i)?i.concat(xn(t)):[i,xn(t)]:xn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nt(e.ssContent),ssFallback:e.ssFallback&&nt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Yt(a,c.clone(a)),a}function _o(e=" ",t=0){return ce(gt,null,e,t)}function Mf(e,t){const n=ce(kt,null,e);return n.staticCount=t,n}function Pf(e="",t=!1){return t?(Os(),Ms(ve,null,e)):ce(ve,null,e)}function Me(e){return e==null||typeof e=="boolean"?ce(ve):W(e)?ce(xe,null,e.slice()):zt(e)?et(e):ce(gt,null,String(e))}function et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nt(e)}function er(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(W(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),er(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!eo(t)?t._ctx=de:r===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:de},n=32):(t=String(t),s&64?(n=16,t=[_o(t)]):n=8);e.children=t,e.shapeFlag|=n}function $c(...e){const t={};for(let n=0;nue||de;let Ln,Ps;{const e=Hn(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Ln=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),Ps=t("__VUE_SSR_SETTERS__",n=>Mt=n)}const rn=e=>{const t=ue;return Ln(e),e.scope.on(),()=>{e.scope.off(),Ln(t)}},Rr=()=>{ue&&ue.scope.off(),Ln(null)};function bo(e){return e.vnode.shapeFlag&4}let Mt=!1;function Uc(e,t=!1,n=!1){t&&Ps(t);const{props:s,children:r}=e.vnode,i=bo(e);yc(e,s,i,t),wc(e,r,n);const o=i?kc(e,t):void 0;return t&&Ps(!1),o}function kc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lc);const{setup:s}=n;if(s){rt();const r=e.setupContext=s.length>1?So(e):null,i=rn(e),o=tn(s,e,0,[e.props,r]),l=oi(o);if(it(),i(),(l||e.sp)&&!pt(e)&&Xs(e),l){if(o.then(Rr,Rr),t)return o.then(c=>{Or(e,c,t)}).catch(c=>{nn(c,e,0)});e.asyncDep=o}else Or(e,o,t)}else wo(e,t)}function Or(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ne(t)&&(e.setupState=Mi(t)),wo(e,n)}let Mr;function wo(e,t,n){const s=e.type;if(!e.render){if(!t&&Mr&&!s.render){const r=s.template||Js(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,f=ae(ae({isCustomElement:i,delimiters:l},o),c);s.render=Mr(r,f)}}e.render=s.render||ke}{const r=rn(e);rt();try{ac(e)}finally{it(),r()}}}const Bc={get(e,t){return me(e,"get",""),e[t]}};function So(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Bc),slots:e.slots,emit:e.emit,expose:t}}function Gn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Mi(wn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ut)return Ut[n](e)},has(t,n){return n in t||n in Ut}})):e.proxy}function Wc(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function Kc(e){return q(e)&&"__vccOpts"in e}const ie=(e,t)=>Fl(e,t,Mt);function Ls(e,t,n){const s=arguments.length;return s===2?ne(t)&&!W(t)?zt(t)?ce(e,null,[t]):ce(e,t):ce(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&zt(n)&&(n=[n]),ce(e,t,n))}const qc="3.5.13";/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Is;const Pr=typeof window<"u"&&window.trustedTypes;if(Pr)try{Is=Pr.createPolicy("vue",{createHTML:e=>e})}catch{}const xo=Is?e=>Is.createHTML(e):e=>e,Gc="http://www.w3.org/2000/svg",Yc="http://www.w3.org/1998/Math/MathML",qe=typeof document<"u"?document:null,Lr=qe&&qe.createElement("template"),Xc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?qe.createElementNS(Gc,e):t==="mathml"?qe.createElementNS(Yc,e):n?qe.createElement(e,{is:n}):qe.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>qe.createTextNode(e),createComment:e=>qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Lr.innerHTML=xo(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Lr.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ze="transition",Ht="animation",Qt=Symbol("_vtc"),Eo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Jc=ae({},ji,Eo),zc=e=>(e.displayName="Transition",e.props=Jc,e),Lf=zc((e,{slots:t})=>Ls(Kl,Qc(e),t)),ct=(e,t=[])=>{W(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ir=e=>e?W(e)?e.some(t=>t.length>1):e.length>1:!1;function Qc(e){const t={};for(const x in e)x in Eo||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=o,appearToClass:a=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:y=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,S=Zc(r),_=S&&S[0],K=S&&S[1],{onBeforeEnter:N,onEnter:j,onEnterCancelled:p,onLeave:g,onLeaveCancelled:O,onBeforeAppear:F=N,onAppear:$=j,onAppearCancelled:V=p}=t,R=(x,B,se,le)=>{x._enterCancelled=le,at(x,B?a:l),at(x,B?f:o),se&&se()},b=(x,B)=>{x._isLeaving=!1,at(x,h),at(x,v),at(x,y),B&&B()},I=x=>(B,se)=>{const le=x?$:j,U=()=>R(B,x,se);ct(le,[B,U]),Nr(()=>{at(B,x?c:i),Ke(B,x?a:l),Ir(le)||Fr(B,s,_,U)})};return ae(t,{onBeforeEnter(x){ct(N,[x]),Ke(x,i),Ke(x,o)},onBeforeAppear(x){ct(F,[x]),Ke(x,c),Ke(x,f)},onEnter:I(!1),onAppear:I(!0),onLeave(x,B){x._isLeaving=!0;const se=()=>b(x,B);Ke(x,h),x._enterCancelled?(Ke(x,y),Dr()):(Dr(),Ke(x,y)),Nr(()=>{x._isLeaving&&(at(x,h),Ke(x,v),Ir(g)||Fr(x,s,K,se))}),ct(g,[x,se])},onEnterCancelled(x){R(x,!1,void 0,!0),ct(p,[x])},onAppearCancelled(x){R(x,!0,void 0,!0),ct(V,[x])},onLeaveCancelled(x){b(x),ct(O,[x])}})}function Zc(e){if(e==null)return null;if(ne(e))return[os(e.enter),os(e.leave)];{const t=os(e);return[t,t]}}function os(e){return Jo(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Qt]||(e[Qt]=new Set)).add(t)}function at(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Qt];n&&(n.delete(t),n.size||(e[Qt]=void 0))}function Nr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ea=0;function Fr(e,t,n,s){const r=e._endId=++ea,i=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=ta(e,t);if(!o)return s();const f=o+"end";let a=0;const h=()=>{e.removeEventListener(f,y),i()},y=v=>{v.target===e&&++a>=c&&h()};setTimeout(()=>{a(n[S]||"").split(", "),r=s(`${ze}Delay`),i=s(`${ze}Duration`),o=Hr(r,i),l=s(`${Ht}Delay`),c=s(`${Ht}Duration`),f=Hr(l,c);let a=null,h=0,y=0;t===ze?o>0&&(a=ze,h=o,y=i.length):t===Ht?f>0&&(a=Ht,h=f,y=c.length):(h=Math.max(o,f),a=h>0?o>f?ze:Ht:null,y=a?a===ze?i.length:c.length:0);const v=a===ze&&/\b(transform|all)(,|$)/.test(s(`${ze}Property`).toString());return{type:a,timeout:h,propCount:y,hasTransform:v}}function Hr(e,t){for(;e.length$r(n)+$r(e[s])))}function $r(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Dr(){return document.body.offsetHeight}function na(e,t,n){const s=e[Qt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const jr=Symbol("_vod"),sa=Symbol("_vsh"),ra=Symbol(""),ia=/(^|;)\s*display\s*:/;function oa(e,t,n){const s=e.style,r=re(n);let i=!1;if(n&&!r){if(t)if(re(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&En(s,l,"")}else for(const o in t)n[o]==null&&En(s,o,"");for(const o in n)o==="display"&&(i=!0),En(s,o,n[o])}else if(r){if(t!==n){const o=s[ra];o&&(n+=";"+o),s.cssText=n,i=ia.test(n)}}else t&&e.removeAttribute("style");jr in e&&(e[jr]=i?s.display:"",e[sa]&&(s.display="none"))}const Vr=/\s*!important$/;function En(e,t,n){if(W(n))n.forEach(s=>En(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=la(e,t);Vr.test(n)?e.setProperty(st(s),n.replace(Vr,""),"important"):e[s]=n}}const Ur=["Webkit","Moz","ms"],ls={};function la(e,t){const n=ls[t];if(n)return n;let s=Le(t);if(s!=="filter"&&s in e)return ls[t]=s;s=Fn(s);for(let r=0;rcs||(ua.then(()=>cs=0),cs=Date.now());function ha(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;He(pa(s,n.value),t,5,[s])};return n.value=e,n.attached=da(),n}function pa(e,t){if(W(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Gr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ga=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?na(e,s,o):t==="style"?oa(e,n,s):en(t)?Fs(t)||aa(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ma(e,t,s,o))?(Wr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Br(e,t,s,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!re(s))?Wr(e,Le(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Br(e,t,s,o))};function ma(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Gr(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Gr(t)&&re(n)?!1:t in e}const Yr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return W(t)?n=>bn(t,n):t};function ya(e){e.target.composing=!0}function Xr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const as=Symbol("_assign"),If={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[as]=Yr(r);const i=s||r.props&&r.props.type==="number";St(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=vs(l)),e[as](l)}),n&&St(e,"change",()=>{e.value=e.value.trim()}),t||(St(e,"compositionstart",ya),St(e,"compositionend",Xr),St(e,"change",Xr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[as]=Yr(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?vs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},va=["ctrl","shift","alt","meta"],_a={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>va.some(n=>e[`${n}Key`]&&!t.includes(n))},Nf=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=st(r.key);if(t.some(o=>o===i||ba[o]===i))return e(r)})},To=ae({patchProp:ga},Xc);let Wt,Jr=!1;function wa(){return Wt||(Wt=xc(To))}function Sa(){return Wt=Jr?Wt:Ec(To),Jr=!0,Wt}const Hf=(...e)=>{const t=wa().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ao(s);if(!r)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Co(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t},$f=(...e)=>{const t=Sa().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ao(s);if(r)return n(r,!0,Co(r))},t};function Co(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ao(e){return re(e)?document.querySelector(e):e}const Df=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},xa=window.__VP_SITE_DATA__;function tr(e){return hi()?(il(e),!0):!1}function Be(e){return typeof e=="function"?e():Oi(e)}const Ro=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const jf=e=>e!=null,Ea=Object.prototype.toString,Ta=e=>Ea.call(e)==="[object Object]",Zt=()=>{},zr=Ca();function Ca(){var e,t;return Ro&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Aa(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const Oo=e=>e();function Ra(e,t={}){let n,s,r=Zt;const i=l=>{clearTimeout(l),r(),r=Zt};return l=>{const c=Be(e),f=Be(t.maxWait);return n&&i(n),c<=0||f!==void 0&&f<=0?(s&&(i(s),s=null),Promise.resolve(l())):new Promise((a,h)=>{r=t.rejectOnCancel?h:a,f&&!s&&(s=setTimeout(()=>{n&&i(n),s=null,a(l())},f)),n=setTimeout(()=>{s&&i(s),s=null,a(l())},c)})}}function Oa(e=Oo){const t=oe(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:Vn(t),pause:n,resume:s,eventFilter:r}}function Ma(e){return qn()}function Mo(...e){if(e.length!==1)return Ll(...e);const t=e[0];return typeof t=="function"?Vn(Ol(()=>({get:t,set:Zt}))):oe(t)}function Po(e,t,n={}){const{eventFilter:s=Oo,...r}=n;return Fe(e,Aa(s,t),r)}function Pa(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Oa(s);return{stop:Po(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function nr(e,t=!0,n){Ma()?Lt(e,n):t?e():Un(e)}function Vf(e,t,n={}){const{debounce:s=0,maxWait:r=void 0,...i}=n;return Po(e,t,{...i,eventFilter:Ra(s,{maxWait:r})})}function Uf(e,t,n){let s;fe(n)?s={evaluating:n}:s={};const{lazy:r=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Zt}=s,c=oe(!r),f=o?qs(t):oe(t);let a=0;return Zs(async h=>{if(!c.value)return;a++;const y=a;let v=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const S=await e(_=>{h(()=>{i&&(i.value=!1),v||_()})});y===a&&(f.value=S)}catch(S){l(S)}finally{i&&y===a&&(i.value=!1),v=!0}}),r?ie(()=>(c.value=!0,f.value)):f}const $e=Ro?window:void 0;function Lo(e){var t;const n=Be(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Pt(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=$e):[t,n,s,r]=e,!t)return Zt;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],o=()=>{i.forEach(a=>a()),i.length=0},l=(a,h,y,v)=>(a.addEventListener(h,y,v),()=>a.removeEventListener(h,y,v)),c=Fe(()=>[Lo(t),Be(r)],([a,h])=>{if(o(),!a)return;const y=Ta(h)?{...h}:h;i.push(...n.flatMap(v=>s.map(S=>l(a,v,S,y))))},{immediate:!0,flush:"post"}),f=()=>{c(),o()};return tr(f),f}function La(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function kf(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=$e,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=La(t);return Pt(r,i,a=>{a.repeat&&Be(l)||c(a)&&n(a)},o)}function Ia(){const e=oe(!1),t=qn();return t&&Lt(()=>{e.value=!0},t),e}function Na(e){const t=Ia();return ie(()=>(t.value,!!e()))}function Io(e,t={}){const{window:n=$e}=t,s=Na(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const i=oe(!1),o=f=>{i.value=f.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",o):r.removeListener(o))},c=Zs(()=>{s.value&&(l(),r=n.matchMedia(Be(e)),"addEventListener"in r?r.addEventListener("change",o):r.addListener(o),i.value=r.matches)});return tr(()=>{c(),l(),r=void 0}),i}const gn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},mn="__vueuse_ssr_handlers__",Fa=Ha();function Ha(){return mn in gn||(gn[mn]=gn[mn]||{}),gn[mn]}function No(e,t){return Fa[e]||t}function sr(e){return Io("(prefers-color-scheme: dark)",e)}function $a(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Da={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Qr="vueuse-storage";function rr(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:a,window:h=$e,eventFilter:y,onError:v=b=>{console.error(b)},initOnMounted:S}=s,_=(a?qs:oe)(typeof t=="function"?t():t);if(!n)try{n=No("getDefaultStorage",()=>{var b;return(b=$e)==null?void 0:b.localStorage})()}catch(b){v(b)}if(!n)return _;const K=Be(t),N=$a(K),j=(r=s.serializer)!=null?r:Da[N],{pause:p,resume:g}=Pa(_,()=>F(_.value),{flush:i,deep:o,eventFilter:y});h&&l&&nr(()=>{n instanceof Storage?Pt(h,"storage",V):Pt(h,Qr,R),S&&V()}),S||V();function O(b,I){if(h){const x={key:e,oldValue:b,newValue:I,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",x):new CustomEvent(Qr,{detail:x}))}}function F(b){try{const I=n.getItem(e);if(b==null)O(I,null),n.removeItem(e);else{const x=j.write(b);I!==x&&(n.setItem(e,x),O(I,x))}}catch(I){v(I)}}function $(b){const I=b?b.newValue:n.getItem(e);if(I==null)return c&&K!=null&&n.setItem(e,j.write(K)),K;if(!b&&f){const x=j.read(I);return typeof f=="function"?f(x,K):N==="object"&&!Array.isArray(x)?{...K,...x}:x}else return typeof I!="string"?I:j.read(I)}function V(b){if(!(b&&b.storageArea!==n)){if(b&&b.key==null){_.value=K;return}if(!(b&&b.key!==e)){p();try{(b==null?void 0:b.newValue)!==j.write(_.value)&&(_.value=$(b))}catch(I){v(I)}finally{b?Un(g):g()}}}}function R(b){V(b.detail)}return _}const ja="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Va(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=$e,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:f,disableTransition:a=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},y=sr({window:r}),v=ie(()=>y.value?"dark":"light"),S=c||(o==null?Mo(s):rr(o,s,i,{window:r,listenToStorageChanges:l})),_=ie(()=>S.value==="auto"?v.value:S.value),K=No("updateHTMLAttrs",(g,O,F)=>{const $=typeof g=="string"?r==null?void 0:r.document.querySelector(g):Lo(g);if(!$)return;const V=new Set,R=new Set;let b=null;if(O==="class"){const x=F.split(/\s/g);Object.values(h).flatMap(B=>(B||"").split(/\s/g)).filter(Boolean).forEach(B=>{x.includes(B)?V.add(B):R.add(B)})}else b={key:O,value:F};if(V.size===0&&R.size===0&&b===null)return;let I;a&&(I=r.document.createElement("style"),I.appendChild(document.createTextNode(ja)),r.document.head.appendChild(I));for(const x of V)$.classList.add(x);for(const x of R)$.classList.remove(x);b&&$.setAttribute(b.key,b.value),a&&(r.getComputedStyle(I).opacity,document.head.removeChild(I))});function N(g){var O;K(t,n,(O=h[g])!=null?O:g)}function j(g){e.onChanged?e.onChanged(g,N):N(g)}Fe(_,j,{flush:"post",immediate:!0}),nr(()=>j(_.value));const p=ie({get(){return f?S.value:_.value},set(g){S.value=g}});try{return Object.assign(p,{store:S,system:v,state:_})}catch{return p}}function Ua(e={}){const{valueDark:t="dark",valueLight:n="",window:s=$e}=e,r=Va({...e,onChanged:(l,c)=>{var f;e.onChanged?(f=e.onChanged)==null||f.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=ie(()=>r.system?r.system.value:sr({window:s}).value?"dark":"light");return ie({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?r.value="auto":r.value=c}})}function fs(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Bf(e,t,n={}){const{window:s=$e}=n;return rr(e,t,s==null?void 0:s.localStorage,n)}function Fo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const us=new WeakMap;function Wf(e,t=!1){const n=oe(t);let s=null,r="";Fe(Mo(e),l=>{const c=fs(Be(l));if(c){const f=c;if(us.get(f)||us.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(r=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=fs(Be(e));!l||n.value||(zr&&(s=Pt(l,"touchmove",c=>{ka(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=fs(Be(e));!l||!n.value||(zr&&(s==null||s()),l.style.overflow=r,us.delete(l),n.value=!1)};return tr(o),ie({get(){return n.value},set(l){l?i():o()}})}function Kf(e,t,n={}){const{window:s=$e}=n;return rr(e,t,s==null?void 0:s.sessionStorage,n)}function qf(e={}){const{window:t=$e,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const s=oe(t.scrollX),r=oe(t.scrollY),i=ie({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),o=ie({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Pt(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function Gf(e={}){const{window:t=$e,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=oe(n),c=oe(s),f=()=>{t&&(o==="outer"?(l.value=t.outerWidth,c.value=t.outerHeight):i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(f(),nr(f),Pt("resize",f,{passive:!0}),r){const a=Io("(orientation: portrait)");Fe(a,()=>f())}return{width:l,height:c}}const ds={BASE_URL:"/Reactant.jl/previews/PR363/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};var hs={};const Ho=/^(?:[a-z]+:|\/\/)/i,Ba="vitepress-theme-appearance",Wa=/#.*$/,Ka=/[?#].*$/,qa=/(?:(^|\/)index)?\.(?:md|html)$/,ge=typeof document<"u",$o={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ga(e,t,n=!1){if(t===void 0)return!1;if(e=Zr(`/${e}`),n)return new RegExp(t).test(e);if(Zr(t)!==e)return!1;const s=t.match(Wa);return s?(ge?location.hash:"")===s[0]:!0}function Zr(e){return decodeURI(e).replace(Ka,"").replace(qa,"$1")}function Ya(e){return Ho.test(e)}function Xa(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!Ya(n)&&Ga(t,`/${n}/`,!0))||"root"}function Ja(e,t){var s,r,i,o,l,c,f;const n=Xa(e,t);return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:jo(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function Do(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=za(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function za(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Qa(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function jo(e,t){return[...e.filter(n=>!Qa(t,n)),...t]}const Za=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,ef=/^[a-z]:/i;function ei(e){const t=ef.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Za,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const ps=new Set;function tf(e){if(ps.size===0){const n=typeof process=="object"&&(hs==null?void 0:hs.VITE_EXTRA_EXTENSIONS)||(ds==null?void 0:ds.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>ps.add(s))}const t=e.split(".").pop();return t==null||!ps.has(t.toLowerCase())}function Yf(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const nf=Symbol(),mt=qs(xa);function Xf(e){const t=ie(()=>Ja(mt.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?oe(!0):n==="force-auto"?sr():n?Ua({storageKey:Ba,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),r=oe(ge?location.hash:"");return ge&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Fe(()=>e.data,()=>{r.value=ge?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>Do(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:s,hash:ie(()=>r.value)}}function sf(){const e=Ot(nf);if(!e)throw new Error("vitepress data not properly injected in app");return e}function rf(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function ti(e){return Ho.test(e)||!e.startsWith("/")?e:rf(mt.value.base,e)}function of(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ge){const n="/Reactant.jl/previews/PR363/";t=ei(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${ei(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Tn=[];function Jf(e){Tn.push(e),Bn(()=>{Tn=Tn.filter(t=>t!==e)})}function lf(){let e=mt.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=ni(e,n);else if(Array.isArray(e))for(const s of e){const r=ni(s,n);if(r){t=r;break}}return t}function ni(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const cf=Symbol(),Vo="http://a.com",af=()=>({path:"/",component:null,data:$o});function zf(e,t){const n=jn(af()),s={route:n,go:r};async function r(l=ge?location.href:"/"){var c,f;l=gs(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(ge&&l!==gs(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((f=s.onAfterRouteChanged)==null?void 0:f.call(s,l)))}let i=null;async function o(l,c=0,f=!1){var y,v;if(await((y=s.onBeforePageLoad)==null?void 0:y.call(s,l))===!1)return;const a=new URL(l,Vo),h=i=a.pathname;try{let S=await e(h);if(!S)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:_,__pageData:K}=S;if(!_)throw new Error(`Invalid route component: ${_}`);await((v=s.onAfterPageLoad)==null?void 0:v.call(s,l)),n.path=ge?h:ti(h),n.component=wn(_),n.data=wn(K),ge&&Un(()=>{let N=mt.value.base+K.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!mt.value.cleanUrls&&!N.endsWith("/")&&(N+=".html"),N!==a.pathname&&(a.pathname=N,l=N+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let j=null;try{j=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(p){console.warn(p)}if(j){si(j,a.hash);return}}window.scrollTo(0,c)})}}catch(S){if(!/fetch|Page not found/.test(S.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(S),!f)try{const _=await fetch(mt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await _.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=ge?h:ti(h),n.component=t?wn(t):null;const _=ge?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...$o,relativePath:_}}}}return ge&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const f=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(f==null)return;const{href:a,origin:h,pathname:y,hash:v,search:S}=new URL(f,c.baseURI),_=new URL(location.href);h===_.origin&&tf(y)&&(l.preventDefault(),y===_.pathname&&S===_.search?(v!==_.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:_.href,newURL:a}))),v?si(c,v,c.classList.contains("header-anchor")):window.scrollTo(0,0)):r(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(gs(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function ff(){const e=Ot(cf);if(!e)throw new Error("useRouter() is called without provider.");return e}function Uo(){return ff().route}function si(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-lf()+i;requestAnimationFrame(r)}}function gs(e){const t=new URL(e,Vo);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),mt.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const yn=()=>Tn.forEach(e=>e()),Qf=Ys({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Uo(),{frontmatter:n,site:s}=sf();return Fe(n,yn,{deep:!0,flush:"post"}),()=>Ls(e.as,s.value.contentProps??{style:{position:"relative"}},[t.component?Ls(t.component,{onVnodeMounted:yn,onVnodeUpdated:yn,onVnodeUnmounted:yn}):"404 Page Not Found"])}}),uf="modulepreload",df=function(e){return"/Reactant.jl/previews/PR363/"+e},ri={},Zf=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=df(c),c in ri)return;ri[c]=!0;const f=c.endsWith(".css"),a=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${a}`))return;const h=document.createElement("link");if(h.rel=f?"stylesheet":uf,f||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),f)return new Promise((y,v)=>{h.addEventListener("load",y),h.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},eu=Ys({setup(e,{slots:t}){const n=oe(!1);return Lt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function tu(){ge&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(f=>f.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function nu(){if(ge){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let f=c.textContent||"";o&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),hf(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function hf(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function su(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=ms(l);for(const f of document.head.children)if(f.isEqualNode(c)){s.push(f);return}});return}const o=i.map(ms);s.forEach((l,c)=>{const f=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));f!==-1?delete o[f]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};Zs(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],f=Do(o,i);f!==document.title&&(document.title=f);const a=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==a&&h.setAttribute("content",a):ms(["meta",{name:"description",content:a}]),r(jo(o.head,gf(c)))})}function ms([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&t.async==null&&(s.async=!1),s}function pf(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function gf(e){return e.filter(t=>!pf(t))}const ys=new Set,ko=()=>document.createElement("link"),mf=e=>{const t=ko();t.rel="prefetch",t.href=e,document.head.appendChild(t)},yf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let vn;const vf=ge&&(vn=ko())&&vn.relList&&vn.relList.supports&&vn.relList.supports("prefetch")?mf:yf;function ru(){if(!ge||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!ys.has(c)){ys.add(c);const f=of(c);f&&vf(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):ys.add(l))})})};Lt(s);const r=Uo();Fe(()=>r.path,s),Bn(()=>{n&&n.disconnect()})}export{Ki as $,lf as A,Sf as B,Ef as C,qs as D,Jf as E,xe as F,ce as G,xf as H,Ho as I,Uo as J,$c as K,Ot as L,Gf as M,Ds as N,kf as O,Un as P,qf as Q,ge as R,Vn as S,Lf as T,wf as U,Zf as V,Wf as W,mc as X,Ff as Y,Cf as Z,Df as _,_o as a,Nf as a0,Af as a1,Mf as a2,jn as a3,Ll as a4,Ls as a5,su as a6,cf as a7,Xf as a8,nf as a9,Qf as aa,eu as ab,mt as ac,$f as ad,zf as ae,of as af,ru as ag,nu as ah,tu as ai,Be as aj,Lo as ak,jf as al,tr as am,Uf as an,Kf as ao,Bf as ap,Vf as aq,ff as ar,Pt as as,_f as at,If as au,fe as av,bf as aw,wn as ax,Hf as ay,Yf as az,Ms as b,Of as c,Ys as d,Pf as e,tf as f,ti as g,ie as h,Ya as i,vo as j,Oi as k,Ga as l,Io as m,js as n,Os as o,oe as p,Fe as q,Tf as r,Zs as s,sl as t,sf as u,Lt as v,Ul as w,Bn as x,Rf as y,nc as z}; diff --git a/previews/PR363/assets/chunks/theme.BAmTG_EB.js b/previews/PR363/assets/chunks/theme.BAmTG_EB.js new file mode 100644 index 00000000..54376652 --- /dev/null +++ b/previews/PR363/assets/chunks/theme.BAmTG_EB.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.V5qolmxs.js","assets/chunks/framework.2yyKLD8d.js"])))=>i.map(i=>d[i]); +import{d as b,o as a,c as d,r as u,n as I,a as G,t as N,b as k,w as f,e as _,T as de,_ as $,u as Te,i as Ke,f as qe,g as pe,h as P,j as v,k as i,l as z,m as re,p as T,q as D,s as Z,v as F,x as ve,y as fe,z as We,A as Je,B as K,F as M,C as E,D as we,E as x,G as g,H,I as Ne,J as ee,K as j,L as W,M as Ye,N as Ie,O as ie,P as he,Q as Me,R as te,S as Qe,U as Xe,V as Ze,W as Ce,X as me,Y as xe,Z as et,$ as tt,a0 as nt,a1 as Ae,a2 as st,a3 as ot,a4 as at,a5 as Pe}from"./framework.2yyKLD8d.js";const rt=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),d("span",{class:I(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[G(N(e.text),1)])],2))}}),it={key:0,class:"VPBackdrop"},lt=b({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),k(de,{name:"fade"},{default:f(()=>[e.show?(a(),d("div",it)):_("",!0)]),_:1}))}}),ct=$(lt,[["__scopeId","data-v-b06cdb19"]]),L=Te;function ut(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ke(o)||o.startsWith("#")||!n.startsWith("http")||!qe(e))return o;const{site:r}=L(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return pe(l)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:r}=L(),l=P(()=>{var c,h;return{label:(c=e.value.locales[t.value])==null?void 0:c.label,link:((h=e.value.locales[t.value])==null?void 0:h.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:P(()=>Object.entries(e.value.locales).flatMap(([c,h])=>l.value.label===h.label?[]:{text:h.label,link:dt(h.link||(c==="root"?"/":`/${c}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function dt(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const pt={class:"NotFound"},vt={class:"code"},ft={class:"title"},ht={class:"quote"},mt={class:"action"},_t=["href","aria-label"],bt=b({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=Y();return(s,n)=>{var r,l,p,c,h;return a(),d("div",pt,[v("p",vt,N(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),v("h1",ft,N(((l=i(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=v("div",{class:"divider"},null,-1)),v("blockquote",ht,N(((p=i(e).notFound)==null?void 0:p.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",mt,[v("a",{class:"link",href:i(pe)(i(t).link),"aria-label":((c=i(e).notFound)==null?void 0:c.linkLabel)??"go to home"},N(((h=i(e).notFound)==null?void 0:h.linkText)??"Take me home"),9,_t)])])}}}),kt=$(bt,[["__scopeId","data-v-951cab6c"]]);function Ee(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?Q(s):Q(s.items,s.base)}function gt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function $t(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):z(o,e.link)?!0:e.items?ce(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=Q(s.items,n)),s})}function R(){const{frontmatter:o,page:e,theme:t}=L(),s=re("(min-width: 960px)"),n=T(!1),r=P(()=>{const A=t.value.sidebar,w=e.value.relativePath;return A?Ee(A,w):[]}),l=T(r.value);D(r,(A,w)=>{JSON.stringify(A)!==JSON.stringify(w)&&(l.value=r.value)});const p=P(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),c=P(()=>h?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),h=P(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),y=P(()=>p.value&&s.value),m=P(()=>p.value?gt(l.value):[]);function S(){n.value=!0}function V(){n.value=!1}function C(){n.value?V():S()}return{isOpen:n,sidebar:l,sidebarGroups:m,hasSidebar:p,hasAside:h,leftAside:c,isSidebarEnabled:y,open:S,close:V,toggle:C}}function yt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",s)}),ve(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function Pt(o){const{page:e,hash:t}=L(),s=T(!1),n=P(()=>o.value.collapsed!=null),r=P(()=>!!o.value.link),l=T(!1),p=()=>{l.value=z(e.value.relativePath,o.value.link)};D([e,o,t],p),F(p);const c=P(()=>l.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),h=P(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(l.value||c.value)&&(s.value=!1)});function y(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:c,hasChildren:h,toggle:y}}function St(){const{hasSidebar:o}=R(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:P(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Be(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Vt(t),link:"#"+t.id,level:s}});return Lt(e,o)}function Vt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Lt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return Nt(o,s,n)}function Tt(o,e){const{isAsideEnabled:t}=St(),s=ut(r,100);let n=null;F(()=>{requestAnimationFrame(r),window.addEventListener("scroll",s)}),We(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const p=window.scrollY,c=window.innerHeight,h=document.body.offsetHeight,y=Math.abs(p+c-h)<1,m=ue.map(({element:V,link:C})=>({link:C,top:wt(V)})).filter(({top:V})=>!Number.isNaN(V)).sort((V,C)=>V.top-C.top);if(!m.length){l(null);return}if(p<1){l(null);return}if(y){l(m[m.length-1].link);return}let S=null;for(const{link:V,top:C}of m){if(C>p+Je()+4)break;S=V}l(S)}function l(p){n&&n.classList.remove("active"),p==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const c=n;c?(c.classList.add("active"),e.value.style.top=c.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function wt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function Nt(o,e,t){ue.length=0;const s=[],n=[];return o.forEach(r=>{const l={...r,children:[]};let p=n[n.length-1];for(;p&&p.level>=l.level;)n.pop(),p=n[n.length-1];if(l.element.classList.contains("ignore-header")||p&&"shouldIgnore"in p){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level{const n=K("VPDocOutlineItem",!0);return a(),d("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),d(M,null,E(t.headers,({children:r,link:l,title:p})=>(a(),d("li",null,[v("a",{class:"outline-link",href:l,onClick:e,title:p},N(p),9,It),r!=null&&r.length?(a(),k(n,{key:0,headers:r},null,8,["headers"])):_("",!0)]))),256))],2)}}}),He=$(Mt,[["__scopeId","data-v-3f927ebe"]]),Ct={class:"content"},At={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Et=b({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=we([]);x(()=>{s.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return Tt(n,r),(l,p)=>(a(),d("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[v("div",Ct,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",At,N(i(Be)(i(t))),1),g(He,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Bt=$(Et,[["__scopeId","data-v-b38bf2ff"]]),Ht={class:"VPDocAsideCarbonAds"},Ot=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),d("div",Ht,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Dt={class:"VPDocAside"},Ft=b({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),d("div",Dt,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),g(Bt),u(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=v("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),k(Ot,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):_("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Rt=$(Ft,[["__scopeId","data-v-6d7b3c46"]]);function Ut(){const{theme:o,page:e}=L();return P(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function jt(){const{page:o,theme:e,frontmatter:t}=L();return P(()=>{var h,y,m,S,V,C,A,w;const s=Ee(e.value.sidebar,o.value.relativePath),n=$t(s),r=Gt(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>z(o.value.relativePath,B.link)),p=((h=e.value.docFooter)==null?void 0:h.prev)===!1&&!t.value.prev||t.value.prev===!1,c=((y=e.value.docFooter)==null?void 0:y.next)===!1&&!t.value.next||t.value.next===!1;return{prev:p?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((m=r[l-1])==null?void 0:m.docFooterText)??((S=r[l-1])==null?void 0:S.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((V=r[l-1])==null?void 0:V.link)},next:c?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((C=r[l+1])==null?void 0:C.docFooterText)??((A=r[l+1])==null?void 0:A.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=r[l+1])==null?void 0:w.link)}}})}function Gt(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const O=b({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=P(()=>e.tag??(e.href?"a":"span")),s=P(()=>e.href&&Ne.test(e.href)||e.target==="_blank");return(n,r)=>(a(),k(H(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[u(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),zt={class:"VPLastUpdated"},Kt=["datetime"],qt=b({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=L(),n=P(()=>new Date(t.value.lastUpdated)),r=P(()=>n.value.toISOString()),l=T("");return F(()=>{Z(()=>{var p,c,h;l.value=new Intl.DateTimeFormat((c=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&c.forceLocale?s.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(p,c)=>{var h;return a(),d("p",zt,[G(N(((h=i(e).lastUpdated)==null?void 0:h.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:r.value},N(l.value),9,Kt)])}}}),Wt=$(qt,[["__scopeId","data-v-475f71b8"]]),Jt={key:0,class:"VPDocFooter"},Yt={key:0,class:"edit-info"},Qt={key:0,class:"edit-link"},Xt={key:1,class:"last-updated"},Zt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},xt={class:"pager"},en=["innerHTML"],tn=["innerHTML"],nn={class:"pager"},sn=["innerHTML"],on=["innerHTML"],an=b({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=Ut(),r=jt(),l=P(()=>e.value.editLink&&s.value.editLink!==!1),p=P(()=>t.value.lastUpdated),c=P(()=>l.value||p.value||r.value.prev||r.value.next);return(h,y)=>{var m,S,V,C;return c.value?(a(),d("footer",Jt,[u(h.$slots,"doc-footer-before",{},void 0,!0),l.value||p.value?(a(),d("div",Yt,[l.value?(a(),d("div",Qt,[g(O,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:f(()=>[y[0]||(y[0]=v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),G(" "+N(i(n).text),1)]),_:1},8,["href"])])):_("",!0),p.value?(a(),d("div",Xt,[g(Wt)])):_("",!0)])):_("",!0),(m=i(r).prev)!=null&&m.link||(S=i(r).next)!=null&&S.link?(a(),d("nav",Zt,[y[1]||(y[1]=v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),v("div",xt,[(V=i(r).prev)!=null&&V.link?(a(),k(O,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var A;return[v("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,en),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,tn)]}),_:1},8,["href"])):_("",!0)]),v("div",nn,[(C=i(r).next)!=null&&C.link?(a(),k(O,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var A;return[v("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.next)||"Next page"},null,8,sn),v("span",{class:"title",innerHTML:i(r).next.text},null,8,on)]}),_:1},8,["href"])):_("",!0)])])):_("",!0)])):_("",!0)}}}),rn=$(an,[["__scopeId","data-v-4f9813fa"]]),ln={class:"container"},cn={class:"aside-container"},un={class:"aside-content"},dn={class:"content"},pn={class:"content-container"},vn={class:"main"},fn=b({__name:"VPDoc",setup(o){const{theme:e}=L(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:r}=R(),l=P(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,c)=>{const h=K("Content");return a(),d("div",{class:I(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[u(p.$slots,"doc-top",{},void 0,!0),v("div",ln,[i(n)?(a(),d("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[c[0]||(c[0]=v("div",{class:"aside-curtain"},null,-1)),v("div",cn,[v("div",un,[g(Rt,null,{"aside-top":f(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):_("",!0),v("div",dn,[v("div",pn,[u(p.$slots,"doc-before",{},void 0,!0),v("main",vn,[g(h,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(rn,null,{"doc-footer-before":f(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),hn=$(fn,[["__scopeId","data-v-83890dd9"]]),mn=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=P(()=>e.href&&Ne.test(e.href)),s=P(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),k(H(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?i(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[G(N(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),_n=$(mn,[["__scopeId","data-v-906d7fb4"]]),bn=["src","alt"],kn=b({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=K("VPImage",!0);return e.image?(a(),d(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),d("img",j({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,bn)):(a(),d(M,{key:1},[g(s,j({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(s,j({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):_("",!0)}}}),X=$(kn,[["__scopeId","data-v-35a7d0b8"]]),gn={class:"container"},$n={class:"main"},yn={key:0,class:"name"},Pn=["innerHTML"],Sn=["innerHTML"],Vn=["innerHTML"],Ln={key:0,class:"actions"},Tn={key:0,class:"image"},wn={class:"image-container"},Nn=b({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=W("hero-image-slot-exists");return(t,s)=>(a(),d("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[v("div",gn,[v("div",$n,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),d("h1",yn,[v("span",{innerHTML:t.name,class:"clip"},null,8,Pn)])):_("",!0),t.text?(a(),d("p",{key:1,innerHTML:t.text,class:"text"},null,8,Sn)):_("",!0),t.tagline?(a(),d("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Vn)):_("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),d("div",Ln,[(a(!0),d(M,null,E(t.actions,n=>(a(),d("div",{key:n.link,class:"action"},[g(_n,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):_("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),d("div",Tn,[v("div",wn,[s[0]||(s[0]=v("div",{class:"image-bg"},null,-1)),u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):_("",!0)],!0)])])):_("",!0)])],2))}}),In=$(Nn,[["__scopeId","data-v-955009fc"]]),Mn=b({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).hero?(a(),k(In,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):_("",!0)}}),Cn={class:"box"},An={key:0,class:"icon"},En=["innerHTML"],Bn=["innerHTML"],Hn=["innerHTML"],On={key:4,class:"link-text"},Dn={class:"link-text-value"},Fn=b({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),k(O,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[v("article",Cn,[typeof e.icon=="object"&&e.icon.wrap?(a(),d("div",An,[g(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),d("div",{key:2,class:"icon",innerHTML:e.icon},null,8,En)):_("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,Bn),e.details?(a(),d("p",{key:3,class:"details",innerHTML:e.details},null,8,Hn)):_("",!0),e.linkText?(a(),d("div",On,[v("p",Dn,[G(N(e.linkText)+" ",1),t[0]||(t[0]=v("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):_("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Rn=$(Fn,[["__scopeId","data-v-f5e9645b"]]),Un={key:0,class:"VPFeatures"},jn={class:"container"},Gn={class:"items"},zn=b({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=P(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),d("div",Un,[v("div",jn,[v("div",Gn,[(a(!0),d(M,null,E(s.features,r=>(a(),d("div",{key:r.title,class:I(["item",[t.value]])},[g(Rn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):_("",!0)}}),Kn=$(zn,[["__scopeId","data-v-d0a190d7"]]),qn=b({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).features?(a(),k(Kn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):_("",!0)}}),Wn=b({__name:"VPHomeContent",setup(o){const{width:e}=Ye({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),d("div",{class:"vp-doc container",style:Ie(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),Jn=$(Wn,[["__scopeId","data-v-7a48a447"]]),Yn={class:"VPHome"},Qn=b({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=K("Content");return a(),d("div",Yn,[u(t.$slots,"home-hero-before",{},void 0,!0),g(Mn,null,{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),g(qn),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),k(Jn,{key:0},{default:f(()=>[g(n)]),_:1})):(a(),k(n,{key:1}))])}}}),Xn=$(Qn,[["__scopeId","data-v-cbb6ec48"]]),Zn={},xn={class:"VPPage"};function es(o,e){const t=K("Content");return a(),d("div",xn,[u(o.$slots,"page-top"),g(t),u(o.$slots,"page-bottom")])}const ts=$(Zn,[["render",es]]),ns=b({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=R();return(n,r)=>(a(),d("div",{class:I(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(n.$slots,"not-found",{key:0},()=>[g(kt)],!0):i(t).layout==="page"?(a(),k(ts,{key:1},{"page-top":f(()=>[u(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),k(Xn,{key:2},{"home-hero-before":f(()=>[u(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),k(H(i(t).layout),{key:3})):(a(),k(hn,{key:4},{"doc-top":f(()=>[u(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[u(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[u(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[u(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[u(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ss=$(ns,[["__scopeId","data-v-91765379"]]),os={class:"container"},as=["innerHTML"],rs=["innerHTML"],is=b({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=R();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),d("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(s)}])},[v("div",os,[i(e).footer.message?(a(),d("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,as)):_("",!0),i(e).footer.copyright?(a(),d("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,rs)):_("",!0)])],2)):_("",!0)}}),ls=$(is,[["__scopeId","data-v-c970a860"]]);function cs(){const{theme:o,frontmatter:e}=L(),t=we([]),s=P(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const us={class:"menu-text"},ds={class:"header"},ps={class:"outline"},vs=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=T(!1),n=T(0),r=T(),l=T();function p(m){var S;(S=r.value)!=null&&S.contains(m.target)||(s.value=!1)}D(s,m=>{if(m){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),ie("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function c(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function h(m){m.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),he(()=>{s.value=!1}))}function y(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(m,S)=>(a(),d("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[m.headers.length>0?(a(),d("button",{key:0,onClick:c,class:I({open:s.value})},[v("span",us,N(i(Be)(i(t))),1),S[0]||(S[0]=v("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),d("button",{key:1,onClick:y},N(i(t).returnToTopLabel||"Return to top"),1)),g(de,{name:"flyout"},{default:f(()=>[s.value?(a(),d("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:h},[v("div",ds,[v("a",{class:"top-link",href:"#",onClick:y},N(i(t).returnToTopLabel||"Return to top"),1)]),v("div",ps,[g(He,{headers:m.headers},null,8,["headers"])])],512)):_("",!0)]),_:1})],4))}}),fs=$(vs,[["__scopeId","data-v-bc9dc845"]]),hs={class:"container"},ms=["aria-expanded"],_s={class:"menu-text"},bs=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=R(),{headers:n}=cs(),{y:r}=Me(),l=T(0);F(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=be(t.value.outline??e.value.outline)});const p=P(()=>n.value.length===0),c=P(()=>p.value&&!s.value),h=P(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:p.value,fixed:c.value}));return(y,m)=>i(t).layout!=="home"&&(!c.value||i(r)>=l.value)?(a(),d("div",{key:0,class:I(h.value)},[v("div",hs,[i(s)?(a(),d("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:m[0]||(m[0]=S=>y.$emit("open-menu"))},[m[1]||(m[1]=v("span",{class:"vpi-align-left menu-icon"},null,-1)),v("span",_s,N(i(e).sidebarMenuLabel||"Menu"),1)],8,ms)):_("",!0),g(fs,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):_("",!0)}}),ks=$(bs,[["__scopeId","data-v-070ab83d"]]);function gs(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=ee();return D(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const $s={},ys={class:"VPSwitch",type:"button",role:"switch"},Ps={class:"check"},Ss={key:0,class:"icon"};function Vs(o,e){return a(),d("button",ys,[v("span",Ps,[o.$slots.default?(a(),d("span",Ss,[u(o.$slots,"default",{},void 0,!0)])):_("",!0)])])}const Ls=$($s,[["render",Vs],["__scopeId","data-v-4a1c76db"]]),Ts=b({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=W("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),k(Ls,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:f(()=>l[0]||(l[0]=[v("span",{class:"vpi-sun sun"},null,-1),v("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=$(Ts,[["__scopeId","data-v-e40a8bb6"]]),ws={key:0,class:"VPNavBarAppearance"},Ns=b({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),d("div",ws,[g(ke)])):_("",!0)}}),Is=$(Ns,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ae=0;function Ms(o){const e=T(!1);if(te){!Oe&&Cs(),ae++;const t=D(ge,s=>{var n,r,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});ve(()=>{t(),ae--,ae||As()})}return Qe(e)}function Cs(){document.addEventListener("focusin",De),Oe=!0,ge.value=document.activeElement}function As(){document.removeEventListener("focusin",De)}function De(){ge.value=document.activeElement}const Es={class:"VPMenuLink"},Bs=["innerHTML"],Hs=b({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),d("div",Es,[g(O,{class:I({active:i(z)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,Bs)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Hs,[["__scopeId","data-v-acbfed09"]]),Os={class:"VPMenuGroup"},Ds={key:0,class:"title"},Fs=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),d("div",Os,[e.text?(a(),d("p",Ds,N(e.text),1)):_("",!0),(a(!0),d(M,null,E(e.items,s=>(a(),d(M,null,["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):_("",!0)],64))),256))]))}}),Rs=$(Fs,[["__scopeId","data-v-48c802d0"]]),Us={class:"VPMenu"},js={key:0,class:"items"},Gs=b({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),d("div",Us,[e.items?(a(),d("div",js,[(a(!0),d(M,null,E(e.items,s=>(a(),d(M,{key:JSON.stringify(s)},["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),k(H(s.component),j({key:1,ref_for:!0},s.props),null,16)):(a(),k(Rs,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):_("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),zs=$(Gs,[["__scopeId","data-v-7dd3104a"]]),Ks=["aria-expanded","aria-label"],qs={key:0,class:"text"},Ws=["innerHTML"],Js={key:1,class:"vpi-more-horizontal icon"},Ys={class:"menu"},Qs=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Ms({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),d("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=l=>e.value=!0),onMouseleave:r[2]||(r[2]=l=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),d("span",qs,[n.icon?(a(),d("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):_("",!0),n.button?(a(),d("span",{key:1,innerHTML:n.button},null,8,Ws)):_("",!0),r[3]||(r[3]=v("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),d("span",Js))],8,Ks),v("div",Ys,[g(zs,{items:n.items},{default:f(()=>[u(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(Qs,[["__scopeId","data-v-04f5c5e9"]]),Xs=["href","aria-label","innerHTML"],Zs=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=T();F(async()=>{var r;await he();const n=(r=t.value)==null?void 0:r.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=P(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),d("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,Xs))}}),xs=$(Zs,[["__scopeId","data-v-d26d30cb"]]),eo={class:"VPSocialLinks"},to=b({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),d("div",eo,[(a(!0),d(M,null,E(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),k(xs,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(to,[["__scopeId","data-v-ee7a9424"]]),no={key:0,class:"group translations"},so={class:"trans-title"},oo={key:1,class:"group"},ao={class:"item appearance"},ro={class:"label"},io={class:"appearance-action"},lo={key:2,class:"group"},co={class:"item social-links"},uo=b({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),r=P(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,p)=>r.value?(a(),k($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(s).length&&i(n).label?(a(),d("div",no,[v("p",so,N(i(n).label),1),(a(!0),d(M,null,E(i(s),c=>(a(),k(ne,{key:c.link,item:c},null,8,["item"]))),128))])):_("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),d("div",oo,[v("div",ao,[v("p",ro,N(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",io,[g(ke)])])])):_("",!0),i(t).socialLinks?(a(),d("div",lo,[v("div",co,[g(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):_("",!0)]),_:1})):_("",!0)}}),po=$(uo,[["__scopeId","data-v-925effce"]]),vo=["aria-expanded"],fo=b({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),d("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)]),10,vo))}}),ho=$(fo,[["__scopeId","data-v-5dea55bf"]]),mo=["innerHTML"],_o=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),k(O,{class:I({VPNavBarMenuLink:!0,active:i(z)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,mo)]),_:1},8,["class","href","target","rel","no-icon"]))}}),bo=$(_o,[["__scopeId","data-v-956ec74c"]]),Fe=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=r=>"component"in r?!1:"link"in r?z(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=P(()=>s(e.item));return(r,l)=>(a(),k($e,{class:I({VPNavBarMenuGroup:!0,active:i(z)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ko={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},go=b({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),d("nav",ko,[s[0]||(s[0]=v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),d(M,null,E(i(e).nav,n=>(a(),d(M,{key:JSON.stringify(n)},["link"in n?(a(),k(bo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(H(n.component),j({key:1,ref_for:!0},n.props),null,16)):(a(),k(Fe,{key:2,item:n},null,8,["item"]))],64))),128))])):_("",!0)}}),$o=$(go,[["__scopeId","data-v-e6d46098"]]);function yo(o){const{localeIndex:e,theme:t}=L();function s(n){var C,A,w;const r=n.split("."),l=(C=t.value.search)==null?void 0:C.options,p=l&&typeof l=="object",c=p&&((w=(A=l.locales)==null?void 0:A[e.value])==null?void 0:w.translations)||null,h=p&&l.translations||null;let y=c,m=h,S=o;const V=r.pop();for(const B of r){let U=null;const q=S==null?void 0:S[B];q&&(U=S=q);const se=m==null?void 0:m[B];se&&(U=m=se);const oe=y==null?void 0:y[B];oe&&(U=y=oe),q||(S=U),se||(m=U),oe||(y=U)}return(y==null?void 0:y[V])??(m==null?void 0:m[V])??(S==null?void 0:S[V])??""}return s}const Po=["aria-label"],So={class:"DocSearch-Button-Container"},Vo={class:"DocSearch-Button-Placeholder"},Se=b({__name:"VPNavBarSearchButton",setup(o){const t=yo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),d("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",So,[n[0]||(n[0]=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),v("span",Vo,N(i(t)("button.buttonText")),1)]),n[1]||(n[1]=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,Po))}}),Lo={class:"VPNavBarSearch"},To={id:"local-search"},wo={key:1,id:"docsearch"},No=b({__name:"VPNavBarSearch",setup(o){const e=Xe(()=>Ze(()=>import("./VPLocalSearchBox.V5qolmxs.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=T(!1),r=T(!1);F(()=>{});function l(){n.value||(n.value=!0,setTimeout(p,16))}function p(){const m=new Event("keydown");m.key="k",m.metaKey=!0,window.dispatchEvent(m),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||p()},16)}function c(m){const S=m.target,V=S.tagName;return S.isContentEditable||V==="INPUT"||V==="SELECT"||V==="TEXTAREA"}const h=T(!1);ie("k",m=>{(m.ctrlKey||m.metaKey)&&(m.preventDefault(),h.value=!0)}),ie("/",m=>{c(m)||(m.preventDefault(),h.value=!0)});const y="local";return(m,S)=>{var V;return a(),d("div",Lo,[i(y)==="local"?(a(),d(M,{key:0},[h.value?(a(),k(i(e),{key:0,onClose:S[0]||(S[0]=C=>h.value=!1)})):_("",!0),v("div",To,[g(Se,{onClick:S[1]||(S[1]=C=>h.value=!0)})])],64)):i(y)==="algolia"?(a(),d(M,{key:1},[n.value?(a(),k(i(t),{key:0,algolia:((V=i(s).search)==null?void 0:V.options)??i(s).algolia,onVnodeBeforeMount:S[2]||(S[2]=C=>r.value=!0)},null,8,["algolia"])):_("",!0),r.value?_("",!0):(a(),d("div",wo,[g(Se,{onClick:l})]))],64)):_("",!0)])}}}),Io=b({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),k(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Mo=$(Io,[["__scopeId","data-v-164c457f"]]),Co=["href","rel","target"],Ao=["innerHTML"],Eo={key:2},Bo=b({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=R(),{currentLang:n}=Y(),r=P(()=>{var c;return typeof t.value.logoLink=="string"?t.value.logoLink:(c=t.value.logoLink)==null?void 0:c.link}),l=P(()=>{var c;return typeof t.value.logoLink=="string"||(c=t.value.logoLink)==null?void 0:c.rel}),p=P(()=>{var c;return typeof t.value.logoLink=="string"||(c=t.value.logoLink)==null?void 0:c.target});return(c,h)=>(a(),d("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(s)}])},[v("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:p.value},[u(c.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),k(X,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):_("",!0),i(t).siteTitle?(a(),d("span",{key:1,innerHTML:i(t).siteTitle},null,8,Ao)):i(t).siteTitle===void 0?(a(),d("span",Eo,N(i(e).title),1)):_("",!0),u(c.$slots,"nav-bar-title-after",{},void 0,!0)],8,Co)],2))}}),Ho=$(Bo,[["__scopeId","data-v-0f4f798b"]]),Oo={class:"items"},Do={class:"title"},Fo=b({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),k($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[v("div",Oo,[v("p",Do,N(i(s).label),1),(a(!0),d(M,null,E(i(t),l=>(a(),k(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):_("",!0)}}),Ro=$(Fo,[["__scopeId","data-v-c80d9ad0"]]),Uo={class:"wrapper"},jo={class:"container"},Go={class:"title"},zo={class:"content"},Ko={class:"content-body"},qo=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Me(),{hasSidebar:s}=R(),{frontmatter:n}=L(),r=T({});return fe(()=>{r.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,p)=>(a(),d("div",{class:I(["VPNavBar",r.value])},[v("div",Uo,[v("div",jo,[v("div",Go,[g(Ho,null,{"nav-bar-title-before":f(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",zo,[v("div",Ko,[u(l.$slots,"nav-bar-content-before",{},void 0,!0),g(No,{class:"search"}),g($o,{class:"menu"}),g(Ro,{class:"translations"}),g(Is,{class:"appearance"}),g(Mo,{class:"social-links"}),g(po,{class:"extra"}),u(l.$slots,"nav-bar-content-after",{},void 0,!0),g(ho,{class:"hamburger",active:l.isScreenOpen,onClick:p[0]||(p[0]=c=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),p[1]||(p[1]=v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1))],2))}}),Wo=$(qo,[["__scopeId","data-v-822684d1"]]),Jo={key:0,class:"VPNavScreenAppearance"},Yo={class:"text"},Qo=b({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),d("div",Jo,[v("p",Yo,N(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):_("",!0)}}),Xo=$(Qo,[["__scopeId","data-v-ffb44008"]]),Zo=["innerHTML"],xo=b({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=W("close-screen");return(t,s)=>(a(),k(O,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,Zo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),ea=$(xo,[["__scopeId","data-v-735512b8"]]),ta=["innerHTML"],na=b({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=W("close-screen");return(t,s)=>(a(),k(O,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,ta)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Re=$(na,[["__scopeId","data-v-372ae7c0"]]),sa={class:"VPNavScreenMenuGroupSection"},oa={key:0,class:"title"},aa=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),d("div",sa,[e.text?(a(),d("p",oa,N(e.text),1)):_("",!0),(a(!0),d(M,null,E(e.items,s=>(a(),k(Re,{key:s.text,item:s},null,8,["item"]))),128))]))}}),ra=$(aa,[["__scopeId","data-v-4b8941ac"]]),ia=["aria-controls","aria-expanded"],la=["innerHTML"],ca=["id"],ua={key:0,class:"item"},da={key:1,class:"item"},pa={key:2,class:"group"},va=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=P(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),d("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:r.text},null,8,la),l[0]||(l[0]=v("span",{class:"vpi-plus button-icon"},null,-1))],8,ia),v("div",{id:s.value,class:"items"},[(a(!0),d(M,null,E(r.items,p=>(a(),d(M,{key:JSON.stringify(p)},["link"in p?(a(),d("div",ua,[g(Re,{item:p},null,8,["item"])])):"component"in p?(a(),d("div",da,[(a(),k(H(p.component),j({ref_for:!0},p.props,{"screen-menu":""}),null,16))])):(a(),d("div",pa,[g(ra,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,ca)],2))}}),Ue=$(va,[["__scopeId","data-v-875057a5"]]),fa={key:0,class:"VPNavScreenMenu"},ha=b({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),d("nav",fa,[(a(!0),d(M,null,E(i(e).nav,n=>(a(),d(M,{key:JSON.stringify(n)},["link"in n?(a(),k(ea,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(H(n.component),j({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(Ue,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):_("",!0)}}),ma=b({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),k(ye,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),_a={class:"list"},ba=b({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(r,l)=>i(e).length&&i(t).label?(a(),d("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[l[0]||(l[0]=v("span",{class:"vpi-languages icon lang"},null,-1)),G(" "+N(i(t).label)+" ",1),l[1]||(l[1]=v("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),v("ul",_a,[(a(!0),d(M,null,E(i(e),p=>(a(),d("li",{key:p.link,class:"item"},[g(O,{class:"link",href:p.link},{default:f(()=>[G(N(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):_("",!0)}}),ka=$(ba,[["__scopeId","data-v-362991c2"]]),ga={class:"container"},$a=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ce(te?document.body:null);return(s,n)=>(a(),k(de,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:f(()=>[s.open?(a(),d("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",ga,[u(s.$slots,"nav-screen-content-before",{},void 0,!0),g(ha,{class:"menu"}),g(ka,{class:"translations"}),g(Xo,{class:"appearance"}),g(ma,{class:"social-links"}),u(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):_("",!0)]),_:3}))}}),ya=$($a,[["__scopeId","data-v-833aabba"]]),Pa={key:0,class:"VPNav"},Sa=b({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=gs(),{frontmatter:n}=L(),r=P(()=>n.value.navbar!==!1);return me("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,p)=>r.value?(a(),d("header",Pa,[g(Wo,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":f(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(ya,{open:i(e)},{"nav-screen-content-before":f(()=>[u(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):_("",!0)}}),Va=$(Sa,[["__scopeId","data-v-f1e365da"]]),La=["role","tabindex"],Ta={key:1,class:"items"},wa=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:p,toggle:c}=Pt(P(()=>e.item)),h=P(()=>p.value?"section":"div"),y=P(()=>n.value?"a":"div"),m=P(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),S=P(()=>n.value?void 0:"button"),V=P(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":l.value}]);function C(w){"key"in w&&w.key!=="Enter"||!e.item.link&&c()}function A(){e.item.link&&c()}return(w,B)=>{const U=K("VPSidebarItem",!0);return a(),k(H(h.value),{class:I(["VPSidebarItem",V.value])},{default:f(()=>[w.item.text?(a(),d("div",j({key:0,class:"item",role:S.value},et(w.item.items?{click:C,keydown:C}:{},!0),{tabindex:w.item.items&&0}),[B[1]||(B[1]=v("div",{class:"indicator"},null,-1)),w.item.link?(a(),k(O,{key:0,tag:y.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),k(H(m.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(H(m.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),d("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:A,onKeydown:xe(A,["enter"]),tabindex:"0"},B[0]||(B[0]=[v("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):_("",!0)],16,La)):_("",!0),w.item.items&&w.item.items.length?(a(),d("div",Ta,[w.depth<5?(a(!0),d(M,{key:0},E(w.item.items,q=>(a(),k(U,{key:q.text,item:q,depth:w.depth+1},null,8,["item","depth"]))),128)):_("",!0)])):_("",!0)]),_:1},8,["class"])}}}),Na=$(wa,[["__scopeId","data-v-196b2e5f"]]),Ia=b({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return F(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),tt(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),d(M,null,E(s.items,r=>(a(),d("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[g(Na,{item:r,depth:0},null,8,["item"])],2))),128))}}),Ma=$(Ia,[["__scopeId","data-v-9e426adc"]]),Ca={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Aa=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=R(),s=o,n=T(null),r=Ce(te?document.body:null);D([s,n],()=>{var p;s.open?(r.value=!0,(p=n.value)==null||p.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=T(0);return D(e,()=>{l.value+=1},{deep:!0}),(p,c)=>i(t)?(a(),d("aside",{key:0,class:I(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:n,onClick:c[0]||(c[0]=nt(()=>{},["stop"]))},[c[2]||(c[2]=v("div",{class:"curtain"},null,-1)),v("nav",Ca,[c[1]||(c[1]=v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(Ma,{items:i(e),key:l.value},null,8,["items"])),u(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):_("",!0)}}),Ea=$(Aa,[["__scopeId","data-v-18756405"]]),Ba=b({__name:"VPSkipLink",setup(o){const e=ee(),t=T();D(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),d(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ha=$(Ba,[["__scopeId","data-v-c3508ec8"]]),Oa=b({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=R(),n=ee();D(()=>n.path,s),yt(e,s);const{frontmatter:r}=L(),l=Ae(),p=P(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",p),(c,h)=>{const y=K("Content");return i(r).layout!==!1?(a(),d("div",{key:0,class:I(["Layout",i(r).pageClass])},[u(c.$slots,"layout-top",{},void 0,!0),g(Ha),g(ct,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),g(Va,null,{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(ks,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Ea,{open:i(e)},{"sidebar-nav-before":f(()=>[u(c.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[u(c.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(ss,null,{"page-top":f(()=>[u(c.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(c.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[u(c.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[u(c.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(c.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(c.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(c.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(c.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(c.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(c.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(c.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(c.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[u(c.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(c.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(c.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[u(c.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(c.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[u(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(ls),u(c.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(y,{key:1}))}}}),Da=$(Oa,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Da,enhanceApp:({app:o})=>{o.component("Badge",rt)}},Fa={};function Ra(o,e){return e[0]||(e[0]=st('

Trusted by

Scientific Computing

Lux.jl

Machine Learning

Quantum Simulation

Tenet.jl

Tensor Networks

',4))}const Ua=$(Fa,[["render",Ra]]),ja=b({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(o){const e=T([]),t=T("Versions"),s=T(!1);Te();const n=()=>typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),r=()=>{if(typeof window>"u")return"";const{origin:c,pathname:h}=window.location;if(c.includes("github.io")){const y=h.split("/").filter(Boolean),m=y.length>0?`/${y[0]}/`:"/";return`${c}${m}`}else return c},l=()=>new Promise(c=>{if(n()){c(!1);return}const h=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(h),c(!0))},100);setTimeout(()=>{clearInterval(h),c(!1)},5e3)});return F(async()=>{if(!(typeof window>"u")){try{if(n()){const c=["dev"];e.value=c.map(h=>({text:h,link:"/"})),t.value="dev"}else{const c=await l(),h=P(()=>r());if(c&&window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION)e.value=window.DOC_VERSIONS.map(y=>({text:y,link:`${h.value}/${y}/`})),t.value=window.DOCUMENTER_CURRENT_VERSION;else{const y=["dev"];e.value=y.map(m=>({text:m,link:`${h.value}/${m}/`})),t.value="dev"}}}catch(c){console.warn("Error loading versions:",c);const h=["dev"],y=P(()=>r());e.value=h.map(m=>({text:m,link:`${y.value}/${m}/`})),t.value="dev"}s.value=!0}}),(c,h)=>s.value?(a(),d(M,{key:0},[!c.screenMenu&&e.value.length>0?(a(),k(Fe,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):c.screenMenu&&e.value.length>0?(a(),k(Ue,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):_("",!0)],64)):_("",!0)}}),Ga=$(ja,[["__scopeId","data-v-d483b3a6"]]),za=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const r=s(...n),l=o.value;if(!l)return r;const p=l.offsetTop-e.scrollTop;return await he(),e.scrollTop=l.offsetTop-p,r}}},je="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Ge="vitepress:tabsSharedState",Ka=()=>{const o=J==null?void 0:J.getItem(Ge);if(o)try{return JSON.parse(o)}catch{}return{}},qa=o=>{J&&J.setItem(Ge,JSON.stringify(o))},Wa=o=>{const e=ot({});D(()=>e.content,(t,s)=>{t&&s&&qa(t)},{deep:!0}),o.provide(je,e)},Ja=(o,e)=>{const t=W(je);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");F(()=>{t.content||(t.content=Ka())});const s=T(),n=P({get(){var c;const l=e.value,p=o.value;if(l){const h=(c=t.content)==null?void 0:c[l];if(h&&p.includes(h))return h}else{const h=s.value;if(h)return h}return p[0]},set(l){const p=e.value;p?t.content&&(t.content[p]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Le=0;const Ya=()=>(Le++,""+Le);function Qa(){const o=Ae();return P(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const ze="vitepress:tabSingleState",Xa=o=>{me(ze,o)},Za=()=>{const o=W(ze);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},xa={class:"plugin-tabs"},er=["id","aria-selected","aria-controls","tabindex","onClick"],tr=b({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Qa(),{selected:s,select:n}=Ja(t,at(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=za(r),p=l(n),c=T([]),h=m=>{var C;const S=t.value.indexOf(s.value);let V;m.key==="ArrowLeft"?V=S>=1?S-1:t.value.length-1:m.key==="ArrowRight"&&(V=S(a(),d("div",xa,[v("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(a(!0),d(M,null,E(i(t),V=>(a(),d("button",{id:`tab-${V}-${i(y)}`,ref_for:!0,ref_key:"buttonRefs",ref:c,key:V,role:"tab",class:"plugin-tabs--tab","aria-selected":V===i(s),"aria-controls":`panel-${V}-${i(y)}`,tabindex:V===i(s)?0:-1,onClick:()=>i(p)(V)},N(V),9,er))),128))],544),u(m.$slots,"default")]))}}),nr=["id","aria-labelledby"],sr=b({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Za();return(s,n)=>i(t)===s.label?(a(),d("div",{key:0,id:`panel-${s.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${i(e)}`},[u(s.$slots,"default",{},void 0,!0)],8,nr)):_("",!0)}}),or=$(sr,[["__scopeId","data-v-9b0d03d2"]]),ar=o=>{Wa(o),o.component("PluginTabs",tr),o.component("PluginTabsTab",or)},ir={extends:Ve,Layout(){return Pe(Ve.Layout,null,{"aside-ads-before":()=>Pe(Ua)})},enhanceApp({app:o}){ar(o),o.component("VersionPicker",Ga)}};export{ir as R,yo as c,L as u}; diff --git a/previews/PR363/assets/index.md.BxToCgvT.js b/previews/PR363/assets/index.md.BxToCgvT.js new file mode 100644 index 00000000..771faf9d --- /dev/null +++ b/previews/PR363/assets/index.md.BxToCgvT.js @@ -0,0 +1,6 @@ +import{_ as a,c as s,a2 as t,o as e}from"./chunks/framework.2yyKLD8d.js";const r=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Reactant.jl Docs","text":"Optimizing Julia Functions with MLIR","tagline":"Optimize Julia Functions With MLIR and XLA for High-Performance Execution on CPU, GPU, TPU and more.","actions":[{"theme":"brand","text":"Tutorials","link":"/tutorials"},{"theme":"alt","text":"API Reference 📚","link":"/api/api"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/EnzymeAD/Reactant.jl"}],"image":{"src":"/logo.svg","alt":"Reactant.jl"}},"features":[{"icon":"🚀","title":"Fast & Device Agnostic","details":"Effortlessly execute your code on CPU, GPU, and TPU with MLIR and XLA.","link":"/introduction"},{"icon":"∂","title":"Built-In MLIR AD","details":"Leverage Enzyme-Powered Automatic Differentiation to Differentiate MLIR Functions","link":"/introduction"},{"icon":"🧩","title":"Composable","details":"Executes and optimizes generic Julia code without requiring special rewriting","link":"/introduction"},{"icon":"⚡","title":"Compiler Optimizations","details":"Fancy MLIR Optimizations seamlessly optimize your Julia code","link":"/introduction"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),n={name:"index.md"};function l(h,i,p,k,d,o){return e(),s("div",null,i[0]||(i[0]=[t(`

How to Install Reactant.jl?

Its easy to install Reactant.jl. Since Reactant.jl is registered in the Julia General registry, you can simply run the following command in the Julia REPL:

julia
julia> using Pkg
+julia> Pkg.add("Reactant")

If you want to use the latest unreleased version of Reactant.jl, you can run the following command:

julia
julia> using Pkg
+julia> Pkg.add(url="https://github.com/EnzymeAD/Reactant.jl")

Select an Accelerator Backend

julia
using Reactant
+Reactant.set_default_backend("cpu")
julia
using Reactant
+Reactant.set_default_backend("gpu")
julia
using Reactant
+Reactant.set_default_backend("tpu")
`,7)]))}const u=a(n,[["render",l]]);export{r as __pageData,u as default}; diff --git a/previews/PR363/assets/index.md.BxToCgvT.lean.js b/previews/PR363/assets/index.md.BxToCgvT.lean.js new file mode 100644 index 00000000..771faf9d --- /dev/null +++ b/previews/PR363/assets/index.md.BxToCgvT.lean.js @@ -0,0 +1,6 @@ +import{_ as a,c as s,a2 as t,o as e}from"./chunks/framework.2yyKLD8d.js";const r=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Reactant.jl Docs","text":"Optimizing Julia Functions with MLIR","tagline":"Optimize Julia Functions With MLIR and XLA for High-Performance Execution on CPU, GPU, TPU and more.","actions":[{"theme":"brand","text":"Tutorials","link":"/tutorials"},{"theme":"alt","text":"API Reference 📚","link":"/api/api"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/EnzymeAD/Reactant.jl"}],"image":{"src":"/logo.svg","alt":"Reactant.jl"}},"features":[{"icon":"🚀","title":"Fast & Device Agnostic","details":"Effortlessly execute your code on CPU, GPU, and TPU with MLIR and XLA.","link":"/introduction"},{"icon":"∂","title":"Built-In MLIR AD","details":"Leverage Enzyme-Powered Automatic Differentiation to Differentiate MLIR Functions","link":"/introduction"},{"icon":"🧩","title":"Composable","details":"Executes and optimizes generic Julia code without requiring special rewriting","link":"/introduction"},{"icon":"⚡","title":"Compiler Optimizations","details":"Fancy MLIR Optimizations seamlessly optimize your Julia code","link":"/introduction"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),n={name:"index.md"};function l(h,i,p,k,d,o){return e(),s("div",null,i[0]||(i[0]=[t(`

How to Install Reactant.jl?

Its easy to install Reactant.jl. Since Reactant.jl is registered in the Julia General registry, you can simply run the following command in the Julia REPL:

julia
julia> using Pkg
+julia> Pkg.add("Reactant")

If you want to use the latest unreleased version of Reactant.jl, you can run the following command:

julia
julia> using Pkg
+julia> Pkg.add(url="https://github.com/EnzymeAD/Reactant.jl")

Select an Accelerator Backend

julia
using Reactant
+Reactant.set_default_backend("cpu")
julia
using Reactant
+Reactant.set_default_backend("gpu")
julia
using Reactant
+Reactant.set_default_backend("tpu")
`,7)]))}const u=a(n,[["render",l]]);export{r as __pageData,u as default}; diff --git a/previews/PR363/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/previews/PR363/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 new file mode 100644 index 00000000..b6b603d5 Binary files /dev/null and b/previews/PR363/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 differ diff --git a/previews/PR363/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/previews/PR363/assets/inter-italic-cyrillic.By2_1cv3.woff2 new file mode 100644 index 00000000..def40a4f Binary files /dev/null and b/previews/PR363/assets/inter-italic-cyrillic.By2_1cv3.woff2 differ diff --git a/previews/PR363/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/previews/PR363/assets/inter-italic-greek-ext.1u6EdAuj.woff2 new file mode 100644 index 00000000..e070c3d3 Binary files /dev/null and b/previews/PR363/assets/inter-italic-greek-ext.1u6EdAuj.woff2 differ diff --git a/previews/PR363/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/previews/PR363/assets/inter-italic-greek.DJ8dCoTZ.woff2 new file mode 100644 index 00000000..a3c16ca4 Binary files /dev/null and b/previews/PR363/assets/inter-italic-greek.DJ8dCoTZ.woff2 differ diff --git a/previews/PR363/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/previews/PR363/assets/inter-italic-latin-ext.CN1xVJS-.woff2 new file mode 100644 index 00000000..2210a899 Binary files /dev/null and b/previews/PR363/assets/inter-italic-latin-ext.CN1xVJS-.woff2 differ diff --git a/previews/PR363/assets/inter-italic-latin.C2AdPX0b.woff2 b/previews/PR363/assets/inter-italic-latin.C2AdPX0b.woff2 new file mode 100644 index 00000000..790d62dc Binary files /dev/null and b/previews/PR363/assets/inter-italic-latin.C2AdPX0b.woff2 differ diff --git a/previews/PR363/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/previews/PR363/assets/inter-italic-vietnamese.BSbpV94h.woff2 new file mode 100644 index 00000000..1eec0775 Binary files /dev/null and b/previews/PR363/assets/inter-italic-vietnamese.BSbpV94h.woff2 differ diff --git a/previews/PR363/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/previews/PR363/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 new file mode 100644 index 00000000..2cfe6153 Binary files /dev/null and b/previews/PR363/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 differ diff --git a/previews/PR363/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/previews/PR363/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 new file mode 100644 index 00000000..e3886dd1 Binary files /dev/null and b/previews/PR363/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 differ diff --git a/previews/PR363/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/previews/PR363/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 new file mode 100644 index 00000000..36d67487 Binary files /dev/null and b/previews/PR363/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 differ diff --git a/previews/PR363/assets/inter-roman-greek.BBVDIX6e.woff2 b/previews/PR363/assets/inter-roman-greek.BBVDIX6e.woff2 new file mode 100644 index 00000000..2bed1e85 Binary files /dev/null and b/previews/PR363/assets/inter-roman-greek.BBVDIX6e.woff2 differ diff --git a/previews/PR363/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/previews/PR363/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 new file mode 100644 index 00000000..9a8d1e2b Binary files /dev/null and b/previews/PR363/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 differ diff --git a/previews/PR363/assets/inter-roman-latin.Di8DUHzh.woff2 b/previews/PR363/assets/inter-roman-latin.Di8DUHzh.woff2 new file mode 100644 index 00000000..07d3c53a Binary files /dev/null and b/previews/PR363/assets/inter-roman-latin.Di8DUHzh.woff2 differ diff --git a/previews/PR363/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/previews/PR363/assets/inter-roman-vietnamese.BjW4sHH5.woff2 new file mode 100644 index 00000000..57bdc22a Binary files /dev/null and b/previews/PR363/assets/inter-roman-vietnamese.BjW4sHH5.woff2 differ diff --git a/previews/PR363/assets/introduction_index.md.DwLVSwK5.js b/previews/PR363/assets/introduction_index.md.DwLVSwK5.js new file mode 100644 index 00000000..8eb23cf0 --- /dev/null +++ b/previews/PR363/assets/introduction_index.md.DwLVSwK5.js @@ -0,0 +1,24 @@ +import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.2yyKLD8d.js";const E=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/index.md","filePath":"introduction/index.md","lastUpdated":null}'),e={name:"introduction/index.md"};function l(p,s,h,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Getting Started

Installation

Install Julia v1.10 or above. Reactant.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing add Reactant. Alternatively, you can also do

julia
import Pkg
+Pkg.add("Reactant")

Quick Start

Reactant provides two new array types at its core, a ConcreteRArray and a TracedRArray. A ConcreteRArray is an underlying buffer to whatever device data you wish to store and can be created by converting from a regular Julia Array.

julia
using Reactant
+
+julia_data = ones(2, 10)
+reactant_data = Reactant.ConcreteRArray(julia_data)
2×10 ConcreteRArray{Float64, 2}:
+ 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0
+ 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0

You can also create a ConcreteRArray-version of an arbitrary data type by tracing through the structure, like below.

julia
struct Pair{A,B}
+   x::A
+   y::B
+end
+
+pair = Pair(ones(3), ones(10))
+
+reactant_pair = Reactant.to_rarray(pair)
Main.Pair{ConcreteRArray{Float64, 1}, ConcreteRArray{Float64, 1}}(ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0]), ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))

To compile programs using ConcreteRArray's, one uses the compile function, like as follows:

julia
input1 = Reactant.ConcreteRArray(ones(10))
+input2 = Reactant.ConcreteRArray(ones(10))
+
+function sinsum_add(x, y)
+   return sum(sin.(x) .+ y)
+end
+
+f = @compile sinsum_add(input1,input2)
+
+# one can now run the program
+f(input1, input2)
ConcreteRNumber{Float64}(18.414709848078964)
`,14)]))}const c=i(e,[["render",l]]);export{E as __pageData,c as default}; diff --git a/previews/PR363/assets/introduction_index.md.DwLVSwK5.lean.js b/previews/PR363/assets/introduction_index.md.DwLVSwK5.lean.js new file mode 100644 index 00000000..8eb23cf0 --- /dev/null +++ b/previews/PR363/assets/introduction_index.md.DwLVSwK5.lean.js @@ -0,0 +1,24 @@ +import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.2yyKLD8d.js";const E=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/index.md","filePath":"introduction/index.md","lastUpdated":null}'),e={name:"introduction/index.md"};function l(p,s,h,k,r,d){return t(),a("div",null,s[0]||(s[0]=[n(`

Getting Started

Installation

Install Julia v1.10 or above. Reactant.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing add Reactant. Alternatively, you can also do

julia
import Pkg
+Pkg.add("Reactant")

Quick Start

Reactant provides two new array types at its core, a ConcreteRArray and a TracedRArray. A ConcreteRArray is an underlying buffer to whatever device data you wish to store and can be created by converting from a regular Julia Array.

julia
using Reactant
+
+julia_data = ones(2, 10)
+reactant_data = Reactant.ConcreteRArray(julia_data)
2×10 ConcreteRArray{Float64, 2}:
+ 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0
+ 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0

You can also create a ConcreteRArray-version of an arbitrary data type by tracing through the structure, like below.

julia
struct Pair{A,B}
+   x::A
+   y::B
+end
+
+pair = Pair(ones(3), ones(10))
+
+reactant_pair = Reactant.to_rarray(pair)
Main.Pair{ConcreteRArray{Float64, 1}, ConcreteRArray{Float64, 1}}(ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0]), ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))

To compile programs using ConcreteRArray's, one uses the compile function, like as follows:

julia
input1 = Reactant.ConcreteRArray(ones(10))
+input2 = Reactant.ConcreteRArray(ones(10))
+
+function sinsum_add(x, y)
+   return sum(sin.(x) .+ y)
+end
+
+f = @compile sinsum_add(input1,input2)
+
+# one can now run the program
+f(input1, input2)
ConcreteRNumber{Float64}(18.414709848078964)
`,14)]))}const c=i(e,[["render",l]]);export{E as __pageData,c as default}; diff --git a/previews/PR363/assets/style.De38R9aM.css b/previews/PR363/assets/style.De38R9aM.css new file mode 100644 index 00000000..a2f59aca --- /dev/null +++ b/previews/PR363/assets/style.De38R9aM.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/Reactant.jl/previews/PR363/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-b06cdb19]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-b06cdb19],.VPBackdrop.fade-leave-to[data-v-b06cdb19]{opacity:0}.VPBackdrop.fade-leave-active[data-v-b06cdb19]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-b06cdb19]{display:none}}.NotFound[data-v-951cab6c]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-951cab6c]{padding:96px 32px 168px}}.code[data-v-951cab6c]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-951cab6c]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-951cab6c]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-951cab6c]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-951cab6c]{padding-top:20px}.link[data-v-951cab6c]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-951cab6c]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-3f927ebe]{position:relative;z-index:1}.nested[data-v-3f927ebe]{padding-right:16px;padding-left:16px}.outline-link[data-v-3f927ebe]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-3f927ebe]:hover,.outline-link.active[data-v-3f927ebe]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-3f927ebe]{padding-left:13px}.VPDocAsideOutline[data-v-b38bf2ff]{display:none}.VPDocAsideOutline.has-outline[data-v-b38bf2ff]{display:block}.content[data-v-b38bf2ff]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-b38bf2ff]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-b38bf2ff]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-6d7b3c46]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-6d7b3c46]{flex-grow:1}.VPDocAside[data-v-6d7b3c46] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-6d7b3c46] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-6d7b3c46] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-475f71b8]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-475f71b8]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-4f9813fa]{margin-top:64px}.edit-info[data-v-4f9813fa]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-4f9813fa]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-4f9813fa]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-4f9813fa]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-4f9813fa]{margin-right:8px}.prev-next[data-v-4f9813fa]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-4f9813fa]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-4f9813fa]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-4f9813fa]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-4f9813fa]{margin-left:auto;text-align:right}.desc[data-v-4f9813fa]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-4f9813fa]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-83890dd9]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-83890dd9]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-83890dd9]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-83890dd9]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-83890dd9]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-83890dd9]{display:flex;justify-content:center}.VPDoc .aside[data-v-83890dd9]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-83890dd9]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-83890dd9]{max-width:1104px}}.container[data-v-83890dd9]{margin:0 auto;width:100%}.aside[data-v-83890dd9]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-83890dd9]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-83890dd9]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-83890dd9]::-webkit-scrollbar{display:none}.aside-curtain[data-v-83890dd9]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-83890dd9]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-83890dd9]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-83890dd9]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-83890dd9]{order:1;margin:0;min-width:640px}}.content-container[data-v-83890dd9]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-83890dd9]{max-width:688px}.VPButton[data-v-906d7fb4]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-906d7fb4]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-906d7fb4]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-906d7fb4]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-906d7fb4]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-906d7fb4]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-906d7fb4]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-906d7fb4]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-906d7fb4]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-906d7fb4]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-906d7fb4]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-906d7fb4]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-906d7fb4]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-35a7d0b8]{display:none}.dark .VPImage.light[data-v-35a7d0b8]{display:none}.VPHero[data-v-955009fc]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-955009fc]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-955009fc]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-955009fc]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-955009fc]{flex-direction:row}}.main[data-v-955009fc]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-955009fc]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-955009fc]{text-align:left}}@media (min-width: 960px){.main[data-v-955009fc]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-955009fc]{max-width:592px}}.name[data-v-955009fc],.text[data-v-955009fc]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-955009fc],.VPHero.has-image .text[data-v-955009fc]{margin:0 auto}.name[data-v-955009fc]{color:var(--vp-home-hero-name-color)}.clip[data-v-955009fc]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-955009fc],.text[data-v-955009fc]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-955009fc],.text[data-v-955009fc]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-955009fc],.VPHero.has-image .text[data-v-955009fc]{margin:0}}.tagline[data-v-955009fc]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-955009fc]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-955009fc]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-955009fc]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-955009fc]{margin:0}}.actions[data-v-955009fc]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-955009fc]{justify-content:center}@media (min-width: 640px){.actions[data-v-955009fc]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-955009fc]{justify-content:flex-start}}.action[data-v-955009fc]{flex-shrink:0;padding:6px}.image[data-v-955009fc]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-955009fc]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-955009fc]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-955009fc]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-955009fc]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-955009fc]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-955009fc]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-955009fc]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-955009fc]{width:320px;height:320px}}[data-v-955009fc] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-955009fc] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-955009fc] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-f5e9645b]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-f5e9645b]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-f5e9645b]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-f5e9645b]>.VPImage{margin-bottom:20px}.icon[data-v-f5e9645b]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-f5e9645b]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-f5e9645b]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-f5e9645b]{padding-top:8px}.link-text-value[data-v-f5e9645b]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-f5e9645b]{margin-left:6px}.VPFeatures[data-v-d0a190d7]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-d0a190d7]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-d0a190d7]{padding:0 64px}}.container[data-v-d0a190d7]{margin:0 auto;max-width:1152px}.items[data-v-d0a190d7]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-d0a190d7]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-d0a190d7],.item.grid-4[data-v-d0a190d7],.item.grid-6[data-v-d0a190d7]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-d0a190d7],.item.grid-4[data-v-d0a190d7]{width:50%}.item.grid-3[data-v-d0a190d7],.item.grid-6[data-v-d0a190d7]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-d0a190d7]{width:25%}}.container[data-v-7a48a447]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-7a48a447]{padding:0 48px}}@media (min-width: 960px){.container[data-v-7a48a447]{width:100%;padding:0 64px}}.vp-doc[data-v-7a48a447] .VPHomeSponsors,.vp-doc[data-v-7a48a447] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-7a48a447] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-7a48a447] .VPHomeSponsors a,.vp-doc[data-v-7a48a447] .VPTeamPage a{text-decoration:none}.VPHome[data-v-cbb6ec48]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-cbb6ec48]{margin-bottom:128px}}.VPContent[data-v-91765379]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-91765379]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-91765379]{margin:0}@media (min-width: 960px){.VPContent[data-v-91765379]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-91765379]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-91765379]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-c970a860]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-c970a860]{display:none}.VPFooter[data-v-c970a860] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-c970a860] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-c970a860]{padding:32px}}.container[data-v-c970a860]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-c970a860],.copyright[data-v-c970a860]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-bc9dc845]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-bc9dc845]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-bc9dc845]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-bc9dc845]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-bc9dc845]{color:var(--vp-c-text-1)}.icon[data-v-bc9dc845]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-bc9dc845]{font-size:14px}.icon[data-v-bc9dc845]{font-size:16px}}.open>.icon[data-v-bc9dc845]{transform:rotate(90deg)}.items[data-v-bc9dc845]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-bc9dc845]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-bc9dc845]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-bc9dc845]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-bc9dc845]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-bc9dc845]{transition:all .2s ease-out}.flyout-leave-active[data-v-bc9dc845]{transition:all .15s ease-in}.flyout-enter-from[data-v-bc9dc845],.flyout-leave-to[data-v-bc9dc845]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-070ab83d]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-070ab83d]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-070ab83d]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-070ab83d]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-070ab83d]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-070ab83d]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-070ab83d]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-070ab83d]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-070ab83d]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-070ab83d]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-070ab83d]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-070ab83d]{display:none}}.menu-icon[data-v-070ab83d]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-070ab83d]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-070ab83d]{padding:12px 32px 11px}}.VPSwitch[data-v-4a1c76db]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-4a1c76db]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-4a1c76db]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-4a1c76db]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-4a1c76db] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-4a1c76db] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-e40a8bb6]{opacity:1}.moon[data-v-e40a8bb6],.dark .sun[data-v-e40a8bb6]{opacity:0}.dark .moon[data-v-e40a8bb6]{opacity:1}.dark .VPSwitchAppearance[data-v-e40a8bb6] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-af096f4a]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-af096f4a]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-acbfed09]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-acbfed09]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-acbfed09]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-acbfed09]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-48c802d0]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-48c802d0]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-48c802d0]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-48c802d0]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-7dd3104a]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-7dd3104a] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-7dd3104a] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-7dd3104a] .group:last-child{padding-bottom:0}.VPMenu[data-v-7dd3104a] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-7dd3104a] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-7dd3104a] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-7dd3104a] .action{padding-left:24px}.VPFlyout[data-v-04f5c5e9]{position:relative}.VPFlyout[data-v-04f5c5e9]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-04f5c5e9]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-04f5c5e9]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-04f5c5e9]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-04f5c5e9]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-04f5c5e9]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-04f5c5e9],.button[aria-expanded=true]+.menu[data-v-04f5c5e9]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-04f5c5e9]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-04f5c5e9]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-04f5c5e9]{margin-right:0;font-size:16px}.text-icon[data-v-04f5c5e9]{margin-left:4px;font-size:14px}.icon[data-v-04f5c5e9]{font-size:20px;transition:fill .25s}.menu[data-v-04f5c5e9]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-d26d30cb]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-d26d30cb]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-d26d30cb]>svg,.VPSocialLink[data-v-d26d30cb]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-ee7a9424]{display:flex;justify-content:center}.VPNavBarExtra[data-v-925effce]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-925effce]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-925effce]{display:none}}.trans-title[data-v-925effce]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-925effce],.item.social-links[data-v-925effce]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-925effce]{min-width:176px}.appearance-action[data-v-925effce]{margin-right:-2px}.social-links-list[data-v-925effce]{margin:-4px -8px}.VPNavBarHamburger[data-v-5dea55bf]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-5dea55bf]{display:none}}.container[data-v-5dea55bf]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-5dea55bf]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-5dea55bf]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-5dea55bf]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-5dea55bf]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-5dea55bf]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-5dea55bf]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-5dea55bf],.VPNavBarHamburger.active:hover .middle[data-v-5dea55bf],.VPNavBarHamburger.active:hover .bottom[data-v-5dea55bf]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-5dea55bf],.middle[data-v-5dea55bf],.bottom[data-v-5dea55bf]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-5dea55bf]{top:0;left:0;transform:translate(0)}.middle[data-v-5dea55bf]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-5dea55bf]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-956ec74c]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-956ec74c],.VPNavBarMenuLink[data-v-956ec74c]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-e6d46098]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-e6d46098]{display:flex}}/*! @docsearch/css 3.8.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-164c457f]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-164c457f]{display:flex;align-items:center}}.title[data-v-0f4f798b]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-0f4f798b]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-0f4f798b]{border-bottom-color:var(--vp-c-divider)}}[data-v-0f4f798b] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-c80d9ad0]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-c80d9ad0]{display:flex;align-items:center}}.title[data-v-c80d9ad0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-822684d1]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-822684d1]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-822684d1]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-822684d1]:not(.home){background-color:transparent}.VPNavBar[data-v-822684d1]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-822684d1]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-822684d1]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-822684d1]{padding:0}}.container[data-v-822684d1]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-822684d1],.container>.content[data-v-822684d1]{pointer-events:none}.container[data-v-822684d1] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-822684d1]{max-width:100%}}.title[data-v-822684d1]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-822684d1]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-822684d1]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-822684d1]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-822684d1]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-822684d1]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-822684d1]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-822684d1]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-822684d1]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-822684d1]{column-gap:.5rem}}.menu+.translations[data-v-822684d1]:before,.menu+.appearance[data-v-822684d1]:before,.menu+.social-links[data-v-822684d1]:before,.translations+.appearance[data-v-822684d1]:before,.appearance+.social-links[data-v-822684d1]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-822684d1]:before,.translations+.appearance[data-v-822684d1]:before{margin-right:16px}.appearance+.social-links[data-v-822684d1]:before{margin-left:16px}.social-links[data-v-822684d1]{margin-right:-8px}.divider[data-v-822684d1]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-822684d1]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-822684d1]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-822684d1]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-822684d1]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-822684d1]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-822684d1]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-ffb44008]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-ffb44008]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-735512b8]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-735512b8]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-372ae7c0]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-372ae7c0]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-4b8941ac]{display:block}.title[data-v-4b8941ac]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-875057a5]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-875057a5]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-875057a5]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-875057a5]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-875057a5]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-875057a5]{transform:rotate(45deg)}.button[data-v-875057a5]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-875057a5]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-875057a5]{transition:transform .25s}.group[data-v-875057a5]:first-child{padding-top:0}.group+.group[data-v-875057a5],.group+.item[data-v-875057a5]{padding-top:4px}.VPNavScreenTranslations[data-v-362991c2]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-362991c2]{height:auto}.title[data-v-362991c2]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-362991c2]{font-size:16px}.icon.lang[data-v-362991c2]{margin-right:8px}.icon.chevron[data-v-362991c2]{margin-left:4px}.list[data-v-362991c2]{padding:4px 0 0 24px}.link[data-v-362991c2]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-833aabba]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-833aabba],.VPNavScreen.fade-leave-active[data-v-833aabba]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-833aabba],.VPNavScreen.fade-leave-active .container[data-v-833aabba]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-833aabba],.VPNavScreen.fade-leave-to[data-v-833aabba]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-833aabba],.VPNavScreen.fade-leave-to .container[data-v-833aabba]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-833aabba]{display:none}}.container[data-v-833aabba]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-833aabba],.menu+.appearance[data-v-833aabba],.translations+.appearance[data-v-833aabba]{margin-top:24px}.menu+.social-links[data-v-833aabba]{margin-top:16px}.appearance+.social-links[data-v-833aabba]{margin-top:16px}.VPNav[data-v-f1e365da]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-f1e365da]{position:fixed}}.VPSidebarItem.level-0[data-v-196b2e5f]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-196b2e5f]{padding-bottom:10px}.item[data-v-196b2e5f]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-196b2e5f]{cursor:pointer}.indicator[data-v-196b2e5f]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-196b2e5f],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-196b2e5f],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-196b2e5f],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-196b2e5f]{background-color:var(--vp-c-brand-1)}.link[data-v-196b2e5f]{display:flex;align-items:center;flex-grow:1}.text[data-v-196b2e5f]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-196b2e5f]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-196b2e5f],.VPSidebarItem.level-2 .text[data-v-196b2e5f],.VPSidebarItem.level-3 .text[data-v-196b2e5f],.VPSidebarItem.level-4 .text[data-v-196b2e5f],.VPSidebarItem.level-5 .text[data-v-196b2e5f]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-196b2e5f],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-196b2e5f],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-196b2e5f],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-196b2e5f],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-196b2e5f],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-196b2e5f]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-196b2e5f],.VPSidebarItem.level-1.has-active>.item>.text[data-v-196b2e5f],.VPSidebarItem.level-2.has-active>.item>.text[data-v-196b2e5f],.VPSidebarItem.level-3.has-active>.item>.text[data-v-196b2e5f],.VPSidebarItem.level-4.has-active>.item>.text[data-v-196b2e5f],.VPSidebarItem.level-5.has-active>.item>.text[data-v-196b2e5f],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-196b2e5f],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-196b2e5f],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-196b2e5f],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-196b2e5f],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-196b2e5f],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-196b2e5f]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-196b2e5f],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-196b2e5f],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-196b2e5f],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-196b2e5f],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-196b2e5f],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-196b2e5f]{color:var(--vp-c-brand-1)}.caret[data-v-196b2e5f]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-196b2e5f]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-196b2e5f]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-196b2e5f]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-196b2e5f]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-196b2e5f],.VPSidebarItem.level-2 .items[data-v-196b2e5f],.VPSidebarItem.level-3 .items[data-v-196b2e5f],.VPSidebarItem.level-4 .items[data-v-196b2e5f],.VPSidebarItem.level-5 .items[data-v-196b2e5f]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-196b2e5f]{display:none}.no-transition[data-v-9e426adc] .caret-icon{transition:none}.group+.group[data-v-9e426adc]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-9e426adc]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-18756405]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-18756405]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-18756405]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-18756405]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-18756405]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-18756405]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-18756405]{outline:0}.VPSkipLink[data-v-c3508ec8]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-c3508ec8]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-c3508ec8]{top:14px;left:16px}}.Layout[data-v-a9a9e638]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-db81191c]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-db81191c]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-db81191c]{margin:128px 0}}.VPHomeSponsors[data-v-db81191c]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-db81191c]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-db81191c]{padding:0 64px}}.container[data-v-db81191c]{margin:0 auto;max-width:1152px}.love[data-v-db81191c]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-db81191c]{display:inline-block}.message[data-v-db81191c]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-db81191c]{padding-top:32px}.action[data-v-db81191c]{padding-top:40px;text-align:center}.VPTeamPage[data-v-c2f8e101]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-c2f8e101]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-c2f8e101-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-c2f8e101-s],.VPTeamMembers+.VPTeamPageSection[data-v-c2f8e101-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-c2f8e101-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-c2f8e101-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-c2f8e101-s],.VPTeamMembers+.VPTeamPageSection[data-v-c2f8e101-s]{margin-top:96px}}.VPTeamMembers[data-v-c2f8e101-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-c2f8e101-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-c2f8e101-s]{padding:0 64px}}.VPTeamPageTitle[data-v-e277e15c]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-e277e15c]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-e277e15c]{padding:80px 64px 48px}}.title[data-v-e277e15c]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-e277e15c]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-e277e15c]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-e277e15c]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-d43bc49d]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-d43bc49d]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-d43bc49d]{padding:0 64px}}.title[data-v-d43bc49d]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-d43bc49d]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-d43bc49d]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-d43bc49d]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-d43bc49d]{padding-top:40px}.VPTeamMembersItem[data-v-f9987cb6]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-f9987cb6]{padding:32px}.VPTeamMembersItem.small .data[data-v-f9987cb6]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-f9987cb6]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-f9987cb6]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-f9987cb6]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-f9987cb6]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-f9987cb6]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-f9987cb6]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-f9987cb6]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-f9987cb6]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-f9987cb6]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-f9987cb6]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-f9987cb6]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-f9987cb6]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-f9987cb6]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-f9987cb6]{text-align:center}.avatar[data-v-f9987cb6]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-f9987cb6]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-f9987cb6]{margin:0;font-weight:600}.affiliation[data-v-f9987cb6]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-f9987cb6]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-f9987cb6]:hover{color:var(--vp-c-brand-1)}.desc[data-v-f9987cb6]{margin:0 auto}.desc[data-v-f9987cb6] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-f9987cb6]{display:flex;justify-content:center;height:56px}.sp-link[data-v-f9987cb6]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-f9987cb6]:hover,.sp .sp-link.link[data-v-f9987cb6]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-f9987cb6]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-fba19bad]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-fba19bad]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-fba19bad]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-fba19bad]{max-width:876px}.VPTeamMembers.medium .container[data-v-fba19bad]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-fba19bad]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-fba19bad]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-fba19bad]{max-width:760px}.container[data-v-fba19bad]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.enjoyer{margin-top:.5rem;margin-bottom:0rem;border-radius:14px;padding-top:.2rem;padding-bottom:.2rem;position:relative;font-size:.9rem;font-weight:700;line-height:1.1rem;display:flex;align-items:center;justify-content:center;width:100%;gap:1rem;background-color:var(--vp-c-bg-alt);border:2px solid var(--vp-c-bg-alt);transition:border-color .5s}.enjoyer:hover{border:2px solid var(--vp-c-brand-light)}.enjoyer img{transition:transform .5s;transform:scale(1.25)}.enjoyer:hover img{transform:scale(1.75)}.enjoyer .heading{background-image:linear-gradient(120deg,#b047ff 16%,var(--vp-c-brand-lighter),var(--vp-c-brand-lighter));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.enjoyer .extra-info{color:var(--vp-c-text-1);opacity:0;font-size:.7rem;padding-left:.1rem;transition:opacity .5s}.enjoyer:hover .extra-info{opacity:.9}.VPVersionPicker[data-v-d483b3a6] button .text{color:var(--vp-c-text-1)!important}.VPVersionPicker[data-v-d483b3a6]:hover button .text{color:var(--vp-c-text-2)!important}:root{--vp-plugin-tabs-tab-text-color: var(--vp-c-text-2);--vp-plugin-tabs-tab-active-text-color: var(--vp-c-text-1);--vp-plugin-tabs-tab-hover-text-color: var(--vp-c-text-1);--vp-plugin-tabs-tab-bg: var(--vp-c-bg-soft);--vp-plugin-tabs-tab-divider: var(--vp-c-divider);--vp-plugin-tabs-tab-active-bar-color: var(--vp-c-brand-1)}.plugin-tabs{margin:16px 0;background-color:var(--vp-plugin-tabs-tab-bg);border-radius:8px}.plugin-tabs--tab-list{position:relative;padding:0 12px;overflow-x:auto;overflow-y:hidden}.plugin-tabs--tab-list:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:var(--vp-plugin-tabs-tab-divider)}.plugin-tabs--tab{position:relative;padding:0 12px;line-height:48px;border-bottom:2px solid transparent;color:var(--vp-plugin-tabs-tab-text-color);font-size:14px;font-weight:500;white-space:nowrap;transition:color .25s}.plugin-tabs--tab[aria-selected=true]{color:var(--vp-plugin-tabs-tab-active-text-color)}.plugin-tabs--tab:hover{color:var(--vp-plugin-tabs-tab-hover-text-color)}.plugin-tabs--tab:after{content:"";position:absolute;bottom:-2px;left:8px;right:8px;height:2px;background-color:transparent;transition:background-color .25s;z-index:1}.plugin-tabs--tab[aria-selected=true]:after{background-color:var(--vp-plugin-tabs-tab-active-bar-color)}.plugin-tabs--content[data-v-9b0d03d2]{padding:16px}.plugin-tabs--content[data-v-9b0d03d2]>:first-child:first-child{margin-top:0}.plugin-tabs--content[data-v-9b0d03d2]>:last-child:last-child{margin-bottom:0}.plugin-tabs--content[data-v-9b0d03d2]>div[class*=language-]{border-radius:8px;margin:16px 0}:root:not(.dark) .plugin-tabs--content[data-v-9b0d03d2] div[class*=language-]{background-color:var(--vp-c-bg)}.VPHero .clip{white-space:pre;max-width:500px}@font-face{font-family:JuliaMono-Regular;src:url(https://cdn.jsdelivr.net/gh/cormullion/juliamono/webfonts/JuliaMono-Regular.woff2)}:root{--vp-font-family-base: "Barlow", "Inter var experimental", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--vp-font-family-mono: JuliaMono-Regular, monospace;font-feature-settings:"calt" 0}.mono pre,.mono code{font-family:JuliaMono-Light}:root{--julia-blue: #4063d8;--julia-purple: #9558b2;--julia-red: #cb3c33;--julia-green: #389826;--vp-c-brand: #389826;--vp-c-brand-light: #3dd027;--vp-c-brand-lighter: #9499ff;--vp-c-brand-lightest: #bcc0ff;--vp-c-brand-dark: #535bf2;--vp-c-brand-darker: #454ce1;--vp-c-brand-dimm: #212425}:root{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-light);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-light);--vp-button-brand-active-border: var(--vp-c-brand-light);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-button-brand-bg)}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient( 120deg, #9558b2 30%, #cb3c33 );--vp-home-hero-image-background-image: linear-gradient( -45deg, #9558b2 30%, #389826 30%, #cb3c33 );--vp-home-hero-image-filter: blur(40px)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(56px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(72px)}}:root.dark{--vp-custom-block-tip-border: var(--vp-c-brand);--vp-custom-block-tip-text: var(--vp-c-brand-lightest);--vp-custom-block-tip-bg: var(--vp-c-brand-dimm);--vp-c-black: hsl(220 20% 9%);--vp-c-black-pure: hsl(220, 24%, 4%);--vp-c-black-soft: hsl(220 16% 13%);--vp-c-black-mute: hsl(220 14% 17%);--vp-c-gray: hsl(220 8% 56%);--vp-c-gray-dark-1: hsl(220 10% 39%);--vp-c-gray-dark-2: hsl(220 12% 28%);--vp-c-gray-dark-3: hsl(220 12% 23%);--vp-c-gray-dark-4: hsl(220 14% 17%);--vp-c-gray-dark-5: hsl(220 16% 13%);--vp-custom-block-info-bg: hsl(220 14% 17%)}.DocSearch{--docsearch-primary-color: var(--vp-c-brand) !important}mjx-container>svg{display:block;margin:auto}mjx-container{padding:.5rem 0}mjx-container{display:inline;margin:auto 2px -2px}mjx-container>svg{margin:auto;display:inline}:root{--vp-c-brand-1: #cb3c33;--vp-c-brand-2: #cb3c33;--vp-c-brand-3: #cb3c33;--vp-c-sponsor: #ca2971;--vitest-c-sponsor-hover: #c13071}.dark{--vp-c-brand-1: #91dd33;--vp-c-brand-2: #91dd33;--vp-c-brand-3: #91dd33;--vp-c-sponsor: #91dd33;--vitest-c-sponsor-hover: #e51370}:root:not(.dark) .dark-only{display:none}:root:is(.dark) .light-only{display:none}.jldocstring.custom-block{border:1px solid var(--vp-c-gray-2);color:var(--vp-c-text-1)}.jldocstring.custom-block summary{font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;margin:0 0 8px}.VPLocalSearchBox[data-v-42e65fb9]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-42e65fb9]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-42e65fb9]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-42e65fb9]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-42e65fb9]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-42e65fb9]{padding:0 8px}}.search-bar[data-v-42e65fb9]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-42e65fb9]{display:block;font-size:18px}.navigate-icon[data-v-42e65fb9]{display:block;font-size:14px}.search-icon[data-v-42e65fb9]{margin:8px}@media (max-width: 767px){.search-icon[data-v-42e65fb9]{display:none}}.search-input[data-v-42e65fb9]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-42e65fb9]{padding:6px 4px}}.search-actions[data-v-42e65fb9]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-42e65fb9]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-42e65fb9]{display:none}}.search-actions button[data-v-42e65fb9]{padding:8px}.search-actions button[data-v-42e65fb9]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-42e65fb9]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-42e65fb9]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-42e65fb9]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-42e65fb9]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-42e65fb9]{display:none}}.search-keyboard-shortcuts kbd[data-v-42e65fb9]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-42e65fb9]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-42e65fb9]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-42e65fb9]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-42e65fb9]{margin:8px}}.titles[data-v-42e65fb9]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-42e65fb9]{display:flex;align-items:center;gap:4px}.title.main[data-v-42e65fb9]{font-weight:500}.title-icon[data-v-42e65fb9]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-42e65fb9]{opacity:.5}.result.selected[data-v-42e65fb9]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-42e65fb9]{position:relative}.excerpt[data-v-42e65fb9]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-42e65fb9]{opacity:1}.excerpt[data-v-42e65fb9] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-42e65fb9] mark,.excerpt[data-v-42e65fb9] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-42e65fb9] .vp-code-group .tabs{display:none}.excerpt[data-v-42e65fb9] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-42e65fb9]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-42e65fb9]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-42e65fb9],.result.selected .title-icon[data-v-42e65fb9]{color:var(--vp-c-brand-1)!important}.no-results[data-v-42e65fb9]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-42e65fb9]{flex:none} diff --git a/previews/PR363/assets/tutorials_index.md.DAxypxwT.js b/previews/PR363/assets/tutorials_index.md.DAxypxwT.js new file mode 100644 index 00000000..6fc251a0 --- /dev/null +++ b/previews/PR363/assets/tutorials_index.md.DAxypxwT.js @@ -0,0 +1 @@ +import{_ as e,c as r,j as t,a as o,o as s}from"./chunks/framework.2yyKLD8d.js";const f=JSON.parse('{"title":"Tutorials","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/index.md","filePath":"tutorials/index.md","lastUpdated":null}'),n={name:"tutorials/index.md"};function i(l,a,d,c,u,p){return s(),r("div",null,a[0]||(a[0]=[t("h1",{id:"tutorials",tabindex:"-1"},[o("Tutorials "),t("a",{class:"header-anchor",href:"#tutorials","aria-label":'Permalink to "Tutorials"'},"​")],-1),t("p",null,"We are currently working on adding tutorials to Reactant!! Please check back soon!",-1)]))}const x=e(n,[["render",i]]);export{f as __pageData,x as default}; diff --git a/previews/PR363/assets/tutorials_index.md.DAxypxwT.lean.js b/previews/PR363/assets/tutorials_index.md.DAxypxwT.lean.js new file mode 100644 index 00000000..6fc251a0 --- /dev/null +++ b/previews/PR363/assets/tutorials_index.md.DAxypxwT.lean.js @@ -0,0 +1 @@ +import{_ as e,c as r,j as t,a as o,o as s}from"./chunks/framework.2yyKLD8d.js";const f=JSON.parse('{"title":"Tutorials","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/index.md","filePath":"tutorials/index.md","lastUpdated":null}'),n={name:"tutorials/index.md"};function i(l,a,d,c,u,p){return s(),r("div",null,a[0]||(a[0]=[t("h1",{id:"tutorials",tabindex:"-1"},[o("Tutorials "),t("a",{class:"header-anchor",href:"#tutorials","aria-label":'Permalink to "Tutorials"'},"​")],-1),t("p",null,"We are currently working on adding tutorials to Reactant!! Please check back soon!",-1)]))}const x=e(n,[["render",i]]);export{f as __pageData,x as default}; diff --git a/previews/PR363/hashmap.json b/previews/PR363/hashmap.json new file mode 100644 index 00000000..1fd70a4f --- /dev/null +++ b/previews/PR363/hashmap.json @@ -0,0 +1 @@ +{"api_affine.md":"5iiZk8SU","api_api.md":"CxfFeNTq","api_arith.md":"DbkUJ4WC","api_builtin.md":"XATQzjrL","api_chlo.md":"CTmmK6a-","api_enzyme.md":"C8cSUFJK","api_func.md":"BwGv464S","api_mlirc.md":"DTBPo4z4","api_ops.md":"D2WkrkEn","api_stablehlo.md":"291Wh6jS","api_vhlo.md":"aTMfdx8r","api_xla.md":"CYk4IfH_","index.md":"BxToCgvT","introduction_index.md":"DwLVSwK5","tutorials_index.md":"DAxypxwT"} diff --git a/previews/PR363/index.html b/previews/PR363/index.html new file mode 100644 index 00000000..287d6f1c --- /dev/null +++ b/previews/PR363/index.html @@ -0,0 +1,33 @@ + + + + + + Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Reactant.jl Docs

Optimizing Julia Functions with MLIR

Optimize Julia Functions With MLIR and XLA for High-Performance Execution on CPU, GPU, TPU and more.

Reactant.jl

How to Install Reactant.jl?

Its easy to install Reactant.jl. Since Reactant.jl is registered in the Julia General registry, you can simply run the following command in the Julia REPL:

julia
julia> using Pkg
+julia> Pkg.add("Reactant")

If you want to use the latest unreleased version of Reactant.jl, you can run the following command:

julia
julia> using Pkg
+julia> Pkg.add(url="https://github.com/EnzymeAD/Reactant.jl")

Select an Accelerator Backend

julia
using Reactant
+Reactant.set_default_backend("cpu")
julia
using Reactant
+Reactant.set_default_backend("gpu")
julia
using Reactant
+Reactant.set_default_backend("tpu")
+ + + + \ No newline at end of file diff --git a/previews/PR363/introduction/index.html b/previews/PR363/introduction/index.html new file mode 100644 index 00000000..38a97901 --- /dev/null +++ b/previews/PR363/introduction/index.html @@ -0,0 +1,51 @@ + + + + + + Getting Started | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Getting Started

Installation

Install Julia v1.10 or above. Reactant.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing add Reactant. Alternatively, you can also do

julia
import Pkg
+Pkg.add("Reactant")

Quick Start

Reactant provides two new array types at its core, a ConcreteRArray and a TracedRArray. A ConcreteRArray is an underlying buffer to whatever device data you wish to store and can be created by converting from a regular Julia Array.

julia
using Reactant
+
+julia_data = ones(2, 10)
+reactant_data = Reactant.ConcreteRArray(julia_data)
2×10 ConcreteRArray{Float64, 2}:
+ 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0
+ 1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0

You can also create a ConcreteRArray-version of an arbitrary data type by tracing through the structure, like below.

julia
struct Pair{A,B}
+   x::A
+   y::B
+end
+
+pair = Pair(ones(3), ones(10))
+
+reactant_pair = Reactant.to_rarray(pair)
Main.Pair{ConcreteRArray{Float64, 1}, ConcreteRArray{Float64, 1}}(ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0]), ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))

To compile programs using ConcreteRArray's, one uses the compile function, like as follows:

julia
input1 = Reactant.ConcreteRArray(ones(10))
+input2 = Reactant.ConcreteRArray(ones(10))
+
+function sinsum_add(x, y)
+   return sum(sin.(x) .+ y)
+end
+
+f = @compile sinsum_add(input1,input2)
+
+# one can now run the program
+f(input1, input2)
ConcreteRNumber{Float64}(18.414709848078964)
+ + + + \ No newline at end of file diff --git a/previews/PR363/logo.svg b/previews/PR363/logo.svg new file mode 100644 index 00000000..8a78ccf4 --- /dev/null +++ b/previews/PR363/logo.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR363/siteinfo.js b/previews/PR363/siteinfo.js new file mode 100644 index 00000000..717d301a --- /dev/null +++ b/previews/PR363/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR363"; diff --git a/previews/PR363/tutorials/index.html b/previews/PR363/tutorials/index.html new file mode 100644 index 00000000..0342b78b --- /dev/null +++ b/previews/PR363/tutorials/index.html @@ -0,0 +1,28 @@ + + + + + + Tutorials | Reactant.jl + + + + + + + + + + + + + + + + + +
Skip to content

Tutorials

We are currently working on adding tutorials to Reactant!! Please check back soon!

+ + + + \ No newline at end of file diff --git a/previews/PR363/vp-icons.css b/previews/PR363/vp-icons.css new file mode 100644 index 00000000..017e1c13 --- /dev/null +++ b/previews/PR363/vp-icons.css @@ -0,0 +1 @@ +.vpi-social-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-slack{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M5.042 15.165a2.53 2.53 0 0 1-2.52 2.523A2.53 2.53 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.53 2.53 0 0 1 8.834 24a2.53 2.53 0 0 1-2.521-2.522zM8.834 5.042a2.53 2.53 0 0 1-2.521-2.52A2.53 2.53 0 0 1 8.834 0a2.53 2.53 0 0 1 2.521 2.522v2.52zm0 1.271a2.53 2.53 0 0 1 2.521 2.521a2.53 2.53 0 0 1-2.521 2.521H2.522A2.53 2.53 0 0 1 0 8.834a2.53 2.53 0 0 1 2.522-2.521zm10.122 2.521a2.53 2.53 0 0 1 2.522-2.521A2.53 2.53 0 0 1 24 8.834a2.53 2.53 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.53 2.53 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.53 2.53 0 0 1 2.523 2.522zm-2.523 10.122a2.53 2.53 0 0 1 2.523 2.522A2.53 2.53 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.53 2.53 0 0 1-2.522 2.523z'/%3E%3C/svg%3E")} \ No newline at end of file