tvm
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tvm::relax::SameShapeConstraintNode Class Reference

A pattern that asserting multiple root patterns have the same shape. More...

#include <dataflow_pattern.h>

Inheritance diagram for tvm::relax::SameShapeConstraintNode:
Collaboration diagram for tvm::relax::SameShapeConstraintNode:

Public Member Functions

Array< DFPatternGetDependentPatterns () const override
 Return the patterns on which the constraint depends. More...
 
std::tuple< PrimExpr, bool > AsPrimExpr (std::function< Optional< Var >(const DFPatternNode *)> match_state) const override
 Convert the constraint to a PrimExpr. More...
 
 TVM_DECLARE_FINAL_OBJECT_INFO (SameShapeConstraintNode, DFConstraintNode)
 
- Public Member Functions inherited from tvm::relax::DFConstraintNode
 TVM_DECLARE_BASE_OBJECT_INFO (DFConstraintNode, Object)
 

Static Public Member Functions

static void RegisterReflection ()
 

Public Attributes

Array< DFPatternargs
 

Static Public Attributes

static constexpr const char * _type_key = "relax.dpl.SameShapeConstraint"
 
- Static Public Attributes inherited from tvm::relax::DFConstraintNode
static constexpr const char * _type_key = "DFConstraintNode"
 
static constexpr const uint32_t _type_child_slots = 1
 

Detailed Description

A pattern that asserting multiple root patterns have the same shape.

See also
SameShapePattern

Member Function Documentation

◆ AsPrimExpr()

std::tuple<PrimExpr, bool> tvm::relax::SameShapeConstraintNode::AsPrimExpr ( std::function< Optional< Var >(const DFPatternNode *)>  match_state) const
overridevirtual

Convert the constraint to a PrimExpr.

If the returned boolean parameter is true, then the returned expression is a necessary-and-sufficient condition for evaluating the constraint. In this case, the matcher may either mark the constraint as satisfied (no need to re-check later), or as failed (need to back-track).

If the returned boolean parameter is false, then the returned expression is a necessary-but-not-sufficient condition for evaluating the constraint. In this case, the matcher may start backtracking as a result of a failed condition, but may not mark the constraint as satisfied. This typically occurs when the constraint involves a parameter that the matcher has not yet filled.

Parameters
match_stateA function that can be called to check the current state of the match. The function takes as argument a pattern on which the constraint depends, and returns the relax variable matched by that pattern, or std::nullopt if the pattern has not yet been matched.
Returns
A tuple of PrimExpr and bool. The first element is a necessary condition for the constraint to be satisfied. The second tuple element indicates whether the condition is also sufficient for the constraint to be satisfied.

Implements tvm::relax::DFConstraintNode.

◆ GetDependentPatterns()

Array<DFPattern> tvm::relax::SameShapeConstraintNode::GetDependentPatterns ( ) const
inlineoverridevirtual

Return the patterns on which the constraint depends.

Implements tvm::relax::DFConstraintNode.

◆ RegisterReflection()

static void tvm::relax::SameShapeConstraintNode::RegisterReflection ( )
inlinestatic

◆ TVM_DECLARE_FINAL_OBJECT_INFO()

tvm::relax::SameShapeConstraintNode::TVM_DECLARE_FINAL_OBJECT_INFO ( SameShapeConstraintNode  ,
DFConstraintNode   
)

Member Data Documentation

◆ _type_key

constexpr const char* tvm::relax::SameShapeConstraintNode::_type_key = "relax.dpl.SameShapeConstraint"
staticconstexpr

◆ args

Array<DFPattern> tvm::relax::SameShapeConstraintNode::args

The patterns with matching shapes


The documentation for this class was generated from the following file: