|
|
|
@ -161,8 +161,8 @@ class CostGraph {
|
|
|
|
|
// Applying Triangle Elimination in DP algorithm. return the left_node
|
|
|
|
|
OperatorInfoPtr EliminationTriangle(const OperatorInfoPtr &elimi_op, const EdgePtr &edge_left_right);
|
|
|
|
|
void CreateTriangleEliminationCostList(const OperatorInfoPtr &, const CostPtrList &, const CostPtrList &,
|
|
|
|
|
const StrategyPtr&, const StrategyPtr&, const StrategyPtr&, const CostPtrList&,
|
|
|
|
|
const CostPtrList&, const CostPtrList&, CostPtrList*);
|
|
|
|
|
const StrategyPtr &, const StrategyPtr &, const StrategyPtr &,
|
|
|
|
|
const CostPtrList &, const CostPtrList &, const CostPtrList &, CostPtrList *);
|
|
|
|
|
// Given the relevant costlist, create the TriangleElimination cost
|
|
|
|
|
void CreateTriangleEliminationSubCostList(StrategyPtr, StrategyPtr, StrategyPtr, const CostPtr &, const CostPtrList &,
|
|
|
|
|
const CostPtrList &, const CostPtr &, const CostPtrList &, CostPtrList *);
|
|
|
|
@ -170,11 +170,11 @@ class CostGraph {
|
|
|
|
|
// Applying the Star Elimination in DP algorithm. Return the successive edges of this merged_op
|
|
|
|
|
// NOTE: this elimination MUST be performed only when the above 5 operation cannot be applied.
|
|
|
|
|
std::vector<EdgePtr> EliminationStar(const OperatorInfoPtr &op);
|
|
|
|
|
void CreateStarEliminationCostList(std::vector<EdgePtr>&, const StrategyPtr&, const CostPtrList&, const CostPtrList&,
|
|
|
|
|
const StrategyPtr&, const CostPtrList&, CostPtrList*);
|
|
|
|
|
void CreateStarEliminationSubCostList(const StrategyPtr&, const CostPtrList&, const CostPtrList&, const StrategyPtr&,
|
|
|
|
|
const CostPtrList&, std::vector<StrategyPtr>, CostPtrList&, CostPtrList&,
|
|
|
|
|
CostPtrList*);
|
|
|
|
|
void CreateStarEliminationCostList(std::vector<EdgePtr> &, const StrategyPtr &, const CostPtrList &,
|
|
|
|
|
const CostPtrList &, const StrategyPtr &, const CostPtrList &, CostPtrList *);
|
|
|
|
|
void CreateStarEliminationSubCostList(const StrategyPtr &, const CostPtrList &, const CostPtrList &,
|
|
|
|
|
const StrategyPtr &, const CostPtrList &, std::vector<StrategyPtr>,
|
|
|
|
|
CostPtrList &, CostPtrList &, CostPtrList *);
|
|
|
|
|
// When the input of a operator is neither a WEIGHT, nor a output of a subsequent operator involving WEIGHT, then
|
|
|
|
|
// the memory cost can be resused.
|
|
|
|
|
Status CalculateOpsMemoryCost();
|
|
|
|
|