public void Load(int inputCount, int outputCount, IBitInput logic) { InputCount = inputCount; OutputCount = outputCount; neurons = new List <INeuron>(outputCount); int neuronLogicLength = logic.Length / outputCount; for (int i = 0; i < outputCount; i++) { DigitalNeuron neuron = new DigitalNeuron(); IBitInput neuronLogic = logic.Copy(i * neuronLogicLength, neuronLogicLength); neuron.Load(inputCount, neuronLogic); neurons.Add(neuron); } }
public void Load(int inputCount, IBitInput logic) { InputCount = inputCount; OutputCount = 1; logicOperations = new LogicOperation[inputCount]; // Load neuron state InitValue = logic[0]; Negative = logic[1]; for (int inputNr = 0; inputNr < inputCount; inputNr++) { IBitInput operationBits = logic.Copy(Settings.NeuronStateBitCount + inputNr * Settings.LogicOperationBitCount, Settings.LogicOperationBitCount); logicOperations[inputNr] = Settings.GetLogicOperation(operationBits); } }