public static Network CopyNetwork(Network original) { Network ret = new Network(original.Transform); original.UpdateIndices(); //Creating Neurons for (int i = 0; i < original.Inputs.Count; i++) { ret.CreatePerceptron(original.Inputs[i].Transform); } for (int i = 0; i < original.Body.Count; i++) { ret.CreateNeuron(original.Body[i].Threshhold, original.Body[i].Transform); } for (int i = 0; i < original.Outputs.Count; i++) { ret.CreateConsolidator(original.Outputs[i].Transform); } //Creating connections for(int i = 0; i < ret.Neurons.Count; i++) { Neuron orig = original.Neurons[i]; Neuron inp = ret.Neurons[i]; for(int j = 0; j < orig.Outputs.Count; j++) { Neuron outp = ret.Neurons[orig.Outputs[j].Output.GlobIndex]; ret.CreateDendron(inp, outp, orig.Outputs[j].Factor); } } return ret; }