public void CalcTotalEmphasis() { float value = 0; if (ParallelExecution) { lock (Layers.SyncObject) { value = Layers.AsParallel().Sum(C => C.Neurons.Sum(N => N.Synapses.Sum(S => (float)S.Emphasis))); } } else { foreach (IBrainLayer layer in Layers) { foreach (Neuron neuron in layer.Neurons) { foreach (Synapse s in neuron.Synapses) { value += (float)s.Emphasis; } } } } globals.m_TotalEmphasis = value; }
public void CalcConnectionCount() { int count = 0; if (ParallelExecution) { lock (Layers.SyncObject) { count = Layers.AsParallel().Sum(C => C.Neurons.Sum(N => N.Synapses.Count)); } } else { foreach (IBrainLayer layer in Layers) { foreach (Neuron neuron in layer.Neurons) { count += neuron.Synapses.Count; } } } globals.m_ConnectionCount = count; }