private static void AddNode(Racr.AstNode n) { Racr.AstNode c = FlipCoin() ? n.GetOp1() : n.GetOp2(); if (c.IsBudNode()) { c.RewriteSubtree(NewNode()); } else { AddNode(c); } }
private static void InitialiseLeafes(Racr.AstNode n, int constants) { foreach (var c in new Racr.AstNode[] { n.GetOp1(), n.GetOp2() }) { if (!c.IsBudNode()) { InitialiseLeafes(c, constants); } else if (FlipCoin()) { c.RewriteSubtree(CL.CreateAst("Number", (double)RandomInteger(1, 10))); } else { c.RewriteSubtree(CL.CreateAst("Constant", "d" + RandomInteger(0, constants))); } } }
private static double EvalAddExp(Racr.AstNode node) { return(node.GetOp1().Eval() + node.GetOp2().Eval()); }