public ReciprocalOperation(HlslTreeNode value) { AddInput(value); }
public override bool Match(HlslTreeNode node) { return(node is SubtractOperation subtract && ((_templateMatcher.IsZero(subtract.Minuend) && !_templateMatcher.IsZero(subtract.Subtrahend)) || (!_templateMatcher.IsZero(subtract.Minuend) && _templateMatcher.IsZero(subtract.Subtrahend)))); }
public CosineOperation(HlslTreeNode value) { AddInput(value); }
public PowerOperation(HlslTreeNode value, HlslTreeNode power) { AddInput(value); AddInput(power); }
public SubtractOperation(HlslTreeNode minuend, HlslTreeNode subtrahend) { AddInput(minuend); AddInput(subtrahend); }
public MultiplyOperation(HlslTreeNode factor1, HlslTreeNode factor2) { AddInput(factor1); AddInput(factor2); }
public LinearInterpolateOperation(HlslTreeNode amount, HlslTreeNode value1, HlslTreeNode value2) { AddInput(amount); AddInput(value1); AddInput(value2); }
public override bool Match(HlslTreeNode node) { return(node is AddOperation add && add.Addend1 == add.Addend2); }
public override bool Match(HlslTreeNode node) { return(node is NegateOperation negate && negate.Value is NegateOperation); }
public override bool Match(HlslTreeNode node) { return(node is SubtractOperation subtract && subtract.Subtrahend is NegateOperation); }
public override bool Match(HlslTreeNode node) { return(node is NegateOperation negate && _templateMatcher.IsConstant(negate.Value)); }
public HlslTreeNode Reduce(HlslTreeNode node, IGroupContext groupContext) { var lengthContext = groupContext as LengthContext; return(new LengthOperation(lengthContext.Value)); }
public virtual bool Match(HlslTreeNode node) { return(node is T); }
public HlslTreeNode Reduce(HlslTreeNode node) { return(Reduce(node as T)); }
public DivisionOperation(HlslTreeNode dividend, HlslTreeNode divisor) { AddInput(dividend); AddInput(divisor); }
public NegateOperation(HlslTreeNode value) { AddInput(value); }
public ReciprocalSquareRootOperation(HlslTreeNode value) { AddInput(value); }
public override bool Match(HlslTreeNode node) { return(node is MultiplyOperation multiply && (_templateMatcher.IsOne(multiply.Factor1) || _templateMatcher.IsOne(multiply.Factor2))); }
public MultiplyAddOperation(HlslTreeNode factor1, HlslTreeNode factor2, HlslTreeNode addend) { AddInput(factor1); AddInput(factor2); AddInput(addend); }
public HlslTreeNode Reduce(HlslTreeNode node, IGroupContext groupContext) { var dotProductContext = groupContext as DotProductContext; return(new DotProductOperation(dotProductContext.Value1, dotProductContext.Value2)); }
public IGroupContext Match(HlslTreeNode node) { return(MatchDotProduct3(node)); }
public override bool Match(HlslTreeNode node) { return(node is MultiplyOperation multiply && _templateMatcher.IsConstant(multiply.Factor1) && _templateMatcher.IsConstant(multiply.Factor2)); }
public SignLessOperation(HlslTreeNode value1, HlslTreeNode value2) { AddInput(value1); AddInput(value2); }
public FractionalOperation(HlslTreeNode value) { AddInput(value); }
public CompareOperation(HlslTreeNode value, HlslTreeNode lessValue, HlslTreeNode greaterEqualValue) { AddInput(value); AddInput(lessValue); AddInput(greaterEqualValue); }
public MaximumOperation(HlslTreeNode value1, HlslTreeNode value2) { AddInput(value1); AddInput(value2); }
public AbsoluteOperation(HlslTreeNode value) { AddInput(value); }
public MoveOperation(HlslTreeNode value) { AddInput(value); }
public AddOperation(HlslTreeNode addend1, HlslTreeNode addend2) { AddInput(addend1); AddInput(addend2); }
public SignGreaterOrEqualOperation(HlslTreeNode value1, HlslTreeNode value2) { AddInput(value1); AddInput(value2); }