Exemplo n.º 1
0
 public static RPN.Node increaseExponent(RPN.Node node)
 {
     node.Replace(node[0], new RPN.Node(1));
     node.Replace(node[1, 0],
                  new RPN.Node(node[1, 0].GetNumber() + 1));
     return(node);
 }
Exemplo n.º 2
0
        public static RPN.Node GCD(RPN.Node node)
        {
            double num1 = node.Children[0].GetNumber();
            double num2 = node.Children[1].GetNumber();
            double gcd  = RPN.DoFunctions.Gcd(new double[] { num1, num2 });

            node.Replace(node.Children[0], new RPN.Node((num1 / gcd)));
            node.Replace(node.Children[1], new RPN.Node((num2 / gcd)));
            return(node);
        }
Exemplo n.º 3
0
 public static RPN.Node increaseExponentTwo(RPN.Node node)
 {
     RPN.Node temp = node.Children[0].Children[0];
     temp.Replace(temp.GetNumber() + 1);
     node.Children[1].Children[0].Remove(new RPN.Node(1));
     return(node);
 }
Exemplo n.º 4
0
 public static RPN.Node AdditionSwap(RPN.Node node)
 {
     node[1, 1].Replace(1);
     node.Swap(0, 1);
     node.Replace(new RPN.Token("-", 2, RPN.Type.Operator));
     return(node);
 }
Exemplo n.º 5
0
        public static RPN.Node dualNodeMultiplication(RPN.Node node)
        {
            double num1 = node[0, 1].GetNumber();
            double num2 = node[1].GetNumber();

            node[0].Replace(node[0, 1], new RPN.Node(1));
            node.Replace(node[1], new RPN.Node(num1 * num2));
            return(node);
        }
Exemplo n.º 6
0
 public static RPN.Node constantTimesNegative(RPN.Node node)
 {
     node.Replace(node[1], new RPN.Node(1));
     node.Replace(node[0], new RPN.Node(node[0].GetNumber() * -1));
     return(node);
 }
Exemplo n.º 7
0
 public static RPN.Node complexNegativeNegative(RPN.Node node)
 {
     node.Replace(node[0, 1], new RPN.Node(System.Math.Abs(node[0, 1].GetNumber())));
     node.Replace(node[1], new RPN.Node(System.Math.Abs(node[1].GetNumber())));
     return(node);
 }
Exemplo n.º 8
0
 public static RPN.Node AdditionToSubtractionRuleOne(RPN.Node node)
 {
     node.Replace("-");
     node[0].Replace(node[0, 1], new RPN.Node(1));
     return(node);
 }
Exemplo n.º 9
0
 public static RPN.Node AdditionToSubtractionRuleTwo(RPN.Node node)
 {
     node.Replace("-");
     node.Replace(node[0], new RPN.Node(System.Math.Abs(node[0].GetNumber())));
     return(node);
 }
Exemplo n.º 10
0
 public static RPN.Node AbsRaisedToPowerofTwo(RPN.Node node)
 {
     node.Replace(node[1], node[1, 0]);
     return(node);
 }
Exemplo n.º 11
0
 public static RPN.Node NegativeConstantRaisedToAPowerOfTwo(RPN.Node node)
 {
     node.Replace(node[1], new RPN.Node(-1 * node[1].GetNumber()));
     return(node);
 }
Exemplo n.º 12
0
Arquivo: Sum.cs Projeto: 65001/AbMath
 public static RPN.Node Propagation(RPN.Node node)
 {
     RPN.Node sum = new RPN.Node(new RPN.Node[] { node[0].Clone(), node[1].Clone(), node[2].Clone(), node[3, 1].Clone() }, _sum);
     node.Replace(node[3], node[3, 0]); //This saves a simplification step later
     return(new Add(node.Clone(), sum));
 }
Exemplo n.º 13
0
 public static RPN.Node CoefficientOneReduction(RPN.Node node)
 {
     node.Replace(node[0], new RPN.Node(0));
     node[1].Replace(node[1, 1], new RPN.Node(node[1, 1].GetNumber() - 1));
     return(node);
 }
Exemplo n.º 14
0
 public static RPN.Node FunctionToAddition(RPN.Node node)
 {
     node[0, 1].Replace(node[0, 1].GetNumber() * -1);
     node.Replace(new RPN.Token("+", 2, RPN.Type.Operator));
     return(node);
 }