public static bool TrigIdentitySinPlusCosRunnable(RPN.Node node) { return(node.IsAddition() && node[0].IsExponent() && node[1].IsExponent() && node[0, 0].IsNumber(2) && node[1, 0].IsNumber(2) && (node[0, 1].IsFunction("cos") || node[0, 1].IsFunction("sin")) && (node[1, 1].IsFunction("sin") || node[1, 1].IsFunction("cos")) && !node.ChildrenAreIdentical() && !node.ContainsDomainViolation() && node[0, 1, 0].Matches(node[1, 1, 0])); }
public static bool multiplicationByZeroRunnable(RPN.Node node) { return((node[1].IsNumber(0) || node[0].IsNumber(0)) && !node.ContainsDomainViolation()); }
public static bool SameFunctionRunnable(RPN.Node node) { return(node.ChildrenAreIdentical() && !node.ContainsDomainViolation()); }