Struct melior::dialect::ods::sparse_tensor::CompressOperation
source · pub struct CompressOperation<'c> { /* private fields */ }
Expand description
A compress
operation. Compressed an access pattern for insertion.
Finishes a single access pattern expansion by moving inserted elements
into the sparse storage scheme of the given tensor with the given
level-coordinates. The arity of lvlCoords
is one less than the
level-rank of the tensor, with the coordinate of the innermost
level defined through the added
array. The values
and filled
arrays are reset in a sparse fashion by only iterating over set
elements through an indirection using the added
array, so that
the operations are kept proportional to the number of nonzeros.
See the sparse_tensor.expand
operation for more details.
Note that this operation is “impure” in the sense that even though the result is modeled through an SSA value, the insertion is eventually done “in place”, and referencing the old SSA value is undefined behavior.
Example:
%result = sparse_tensor.compress %values, %filled, %added, %count into %tensor[%i]
: memref<?xf64>, memref<?xi1>, memref<?xindex>, tensor<4x4xf64, #CSR>
Implementations§
source§impl<'c> CompressOperation<'c>
impl<'c> CompressOperation<'c>
sourcepub fn as_operation(&self) -> &Operation<'c>
pub fn as_operation(&self) -> &Operation<'c>
Returns a generic operation.
sourcepub fn builder(
context: &'c Context,
location: Location<'c>
) -> CompressOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> CompressOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset, Unset, Unset>
Creates a builder.