public override double Eval(VarMap v, FuncMap f) { double[] values = new double[children.Length]; for (int i = 0; i < values.Length; i++) { values[i] = children[i].Eval(v, f); } return @operator.Eval(values); }
public override double Eval(VarMap v, FuncMap f) { double[] values = new double[children.Length]; //System.out.print("func children "+children.length); for (int i = 0; i < values.Length; i++) { values[i] = children[i].Eval(v, f); } return @operator.Eval(values); }
public virtual double Eval(VarMap v, FuncMap f) { double a = child.Eval(v, f); return @operator.Eval(new double[] { a }); }
public override double Eval(VarMap v, FuncMap f) { double value = children[0].Eval(v, f); //System.out.print("("+value+")"); return value; }
public virtual Expression ReduceExpression(VarMap v, FuncMap f) { if (this.IsLeaf()) { return null; } Expression newExpr = this.DeepCopy(); Expression reductase = DeepestReducableNode(newExpr); Expression replacement = new NumberNode(reductase.Eval(v, f)); //System.out.println("copy: " +newExpr); //System.out.println("rem " +reductase); //System.out.println("add "+ replacement); if (newExpr == reductase) { //System.out.println(" copy == high p"); return replacement; } else { //System.out.println("replacement"); ReplaceNodeInTree(newExpr, reductase, replacement); return newExpr; } }
/// <summary>Returns the result of evaluating the expression tree rooted at this node. /// </summary> /// <remarks>Returns the result of evaluating the expression tree rooted at this node. /// </remarks> public abstract double Eval(VarMap v, FuncMap f);
/// <summary>Returns the value.</summary> /// <remarks>Returns the value.</remarks> public override double Eval(VarMap v, FuncMap f) { return val; }
/// <summary>Returns the value.</summary> /// <remarks>Returns the value.</remarks> public override double Eval(VarMap v, FuncMap f) { return v.GetValue(name); }