private static List <List <KeyValuePair <double, double> > > getActivatedSignal(Signal signal, Network network) { List <List <KeyValuePair <double, double> > > activatedSignal = new List <List <KeyValuePair <double, double> > >(); List <Signal> weightedSum = new List <Signal>(); Signal input = new Signal(signal); for (int i = 0; i < network.Count; i++) { weightedSum.Add(Layer.GetWeightedSum(input, network[i])); activatedSignal.Add(new List <KeyValuePair <double, double> >()); for (int j = 0; j < weightedSum[i].Count; j++) { activatedSignal[i].Add(new KeyValuePair <double, double>(LogisticFunction(weightedSum[i][j]), LogisticFunctionDerivative(weightedSum[i][j]))); } input.Clear(); foreach (KeyValuePair <double, double> pair in activatedSignal[i]) { input.Add(pair.Key); } } return(activatedSignal); }