MLIR  20.0.0git
Classes | Namespaces | Macros
Storage.h File Reference
#include "mlir/Dialect/SparseTensor/IR/Enums.h"
#include "mlir/ExecutionEngine/Float16bits.h"
#include "mlir/ExecutionEngine/SparseTensor/ArithmeticUtils.h"
#include "mlir/ExecutionEngine/SparseTensor/COO.h"
#include "mlir/ExecutionEngine/SparseTensor/MapRef.h"

Go to the source code of this file.

Classes

class  mlir::sparse_tensor::SparseTensorStorageBase
 Abstract base class for SparseTensorStorage<P,C,V>. More...
 
class  mlir::sparse_tensor::SparseTensorStorage< P, C, V >
 A memory-resident sparse tensor using a storage scheme based on per-level sparse/dense annotations. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::sparse_tensor
 

Macros

#define DECL_GETPOSITIONS(PNAME, P)    virtual void getPositions(std::vector<P> **, uint64_t);
 Gets positions-overhead storage for the given level. More...
 
#define DECL_GETCOORDINATES(INAME, C)    virtual void getCoordinates(std::vector<C> **, uint64_t);
 Gets coordinates-overhead storage for the given level. More...
 
#define DECL_GETCOORDINATESBUFFER(INAME, C)    virtual void getCoordinatesBuffer(std::vector<C> **, uint64_t);
 Gets coordinates-overhead storage buffer for the given level. More...
 
#define DECL_GETVALUES(VNAME, V)   virtual void getValues(std::vector<V> **);
 Gets primary storage. More...
 
#define DECL_LEXINSERT(VNAME, V)   virtual void lexInsert(const uint64_t *, V);
 Element-wise insertion in lexicographic coordinate order. More...
 
#define DECL_EXPINSERT(VNAME, V)
 Expanded insertion. More...
 

Macro Definition Documentation

◆ DECL_EXPINSERT

#define DECL_EXPINSERT (   VNAME,
 
)
Value:
virtual void expInsert(uint64_t *, V *, bool *, uint64_t *, uint64_t, \
uint64_t);

Expanded insertion.

Note that this method resets the values/filled-switch array back to all-zero/false while only iterating over the nonzero elements.

Definition at line 166 of file Storage.h.

◆ DECL_GETCOORDINATES

#define DECL_GETCOORDINATES (   INAME,
 
)     virtual void getCoordinates(std::vector<C> **, uint64_t);

Gets coordinates-overhead storage for the given level.

Definition at line 141 of file Storage.h.

◆ DECL_GETCOORDINATESBUFFER

#define DECL_GETCOORDINATESBUFFER (   INAME,
 
)     virtual void getCoordinatesBuffer(std::vector<C> **, uint64_t);

Gets coordinates-overhead storage buffer for the given level.

Definition at line 147 of file Storage.h.

◆ DECL_GETPOSITIONS

#define DECL_GETPOSITIONS (   PNAME,
 
)     virtual void getPositions(std::vector<P> **, uint64_t);

Gets positions-overhead storage for the given level.

Definition at line 135 of file Storage.h.

◆ DECL_GETVALUES

#define DECL_GETVALUES (   VNAME,
 
)    virtual void getValues(std::vector<V> **);

Gets primary storage.

Definition at line 153 of file Storage.h.

◆ DECL_LEXINSERT

#define DECL_LEXINSERT (   VNAME,
 
)    virtual void lexInsert(const uint64_t *, V);

Element-wise insertion in lexicographic coordinate order.

The first argument is the level-coordinates for the value being inserted.

Definition at line 159 of file Storage.h.