package automenta.spacenet.plugin.neural.brainz; import java.util.LinkedList; import java.util.List; /** * see archneuronz.h */ public class NeuronBuilder { // inhibitory neuron by flag boolean isInhibitory; // Consistent Synapses flag boolean hasConsistentSynapses; // inhibitory synapses flag boolean hasInhibitorySynapses; // neuron firing potential double firingThreshold; // dendridic branches double maxDendridicBranches; // motor neuron ability (excititatory only) flag //boolean isMotor; //isMotor if motor!=null // function MotorNeuron motor; // synaptic plasticity by flag boolean isPlastic; // factors double plasticityStrengthen; double plasticityWeaken; List<SynapseBuilder> synapseBuilders = new LinkedList(); public InterNeuron newNeuron(int maxSynapses) { InterNeuron ni = new InterNeuron(); ni.maxSynapses = maxSynapses; ni.isInhibitory = isInhibitory; ni.firingThreshold = firingThreshold; ni.dendridicBranches = maxDendridicBranches; ni.motor = motor; ni.isPlastic = isPlastic; ni.plasticityStrengthen = 1.0f + (1.0f / plasticityStrengthen); ni.plasticityWeaken = 1.0f - (1.0f / plasticityWeaken); ni.synapseBuilders = synapseBuilders; return ni; } }