public int Visit(Gp gp) { return(Compile(gp, () => { int[] indices = new int[gp.Args.Length]; Compiled.InputEdge[] inputs = new Compiled.InputEdge[indices.Length]; for (int i = 0; i < indices.Length; i++) { indices[i] = gp.Args[i].Accept(this); inputs[i] = new Compiled.InputEdge { Index = indices[i] }; } var element = new Compiled.Gp { Terms = indices, Inputs = inputs, Gpr = gp.Gpr, dc = gp.DivCount, }; return element; })); }
public int Visit(Sum sum) { return(Compile(sum, () => { //replacement for linq code -- HS: int[] indices = new int[sum.Terms.Count]; Compiled.InputEdge[] inputs = new Compiled.InputEdge[indices.Length]; for (int i = 0; i < indices.Length; i++) { indices[i] = sum.Terms[i].Accept(this); inputs[i] = new Compiled.InputEdge { Index = indices[i] }; } var element = new Compiled.Sum { Terms = indices, Inputs = inputs, }; return element; })); }