MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
reassoc.h File Reference
#include <optional>
#include <mim/phase.h>
Include dependency graph for reassoc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mim::plug::tensor::phase::Split
 One node of a bracketing: i … j splits after s. More...
struct  mim::plug::tensor::phase::Leaf
 A chain operand; the chain reads its transpose if t. More...
class  mim::plug::tensor::phase::Reassoc
 Reassociates chains of tensor.product_2d with the classic matrix-chain-order dynamic program, so that a chain is evaluated with the least number of vector-lane slots. More...

Namespaces

namespace  mim
namespace  mim::plug
namespace  mim::plug::tensor
 The tensor Plugin
namespace  mim::plug::tensor::phase

Typedefs

using mim::plug::tensor::phase::Splits = fe::Vector<Split>
 A bracketing of a matrix chain, innermost node first.
using mim::plug::tensor::phase::Leaves = fe::Vector<Leaf>

Class Documentation

◆ mim::plug::tensor::phase::Split

struct mim::plug::tensor::phase::Split

One node of a bracketing: i … j splits after s.

Spelling the fields out keeps size_t out of the type - it is not mim::u64 everywhere. A transposed node t is computed as the product of its operands' transposes, (Rᵀ · Lᵀ)ᵀ.

Definition at line 12 of file reassoc.h.

Class Members
u64 i
u64 j
u64 s
bool t = false

◆ mim::plug::tensor::phase::Leaf

struct mim::plug::tensor::phase::Leaf

A chain operand; the chain reads its transpose if t.

Definition at line 21 of file reassoc.h.

Class Members
const Def * def
bool t