//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="delayMethod">The synaptic delay method.</param> /// <param name="maxDelay">The maximum synaptic delay.</param> /// <param name="relShare">The relative share.</param> /// <param name="analogSourceCfg">The configuration of the synapse connecting analog presynaptic neuron.</param> /// <param name="spikingSourceCfg">The configuration of the synapse connecting spiking presynaptic neuron.</param> public SynapseSTInhibitorySettings(Synapse.SynapticDelayMethod delayMethod = DefaultDelayMethod, int maxDelay = DefaultMaxDelay, double relShare = DefaultRelShare, AnalogSourceSettings analogSourceCfg = null, SpikingSourceSTInhibitorySettings spikingSourceCfg = null ) { DelayMethod = delayMethod; MaxDelay = maxDelay; RelShare = relShare; AnalogSourceCfg = analogSourceCfg == null ? new AnalogSourceSettings() : (AnalogSourceSettings)analogSourceCfg.DeepClone(); SpikingSourceCfg = spikingSourceCfg == null ? new SpikingSourceSTInhibitorySettings() : (SpikingSourceSTInhibitorySettings)spikingSourceCfg.DeepClone(); Check(); return; }
/// <summary> /// Creates an initialized instance. /// </summary> /// <param name="elem">A xml element containing the configuration data.</param> public SynapseSTInhibitorySettings(XElement elem) { //Validation XElement settingsElem = Validate(elem, XsdTypeName); //Parsing DelayMethod = (Synapse.SynapticDelayMethod)Enum.Parse(typeof(Synapse.SynapticDelayMethod), settingsElem.Attribute("delayMethod").Value, true); MaxDelay = int.Parse(settingsElem.Attribute("maxDelay").Value, CultureInfo.InvariantCulture); RelShare = double.Parse(settingsElem.Attribute("relShare").Value, CultureInfo.InvariantCulture); XElement analogSourceElem = settingsElem.Elements("analogSource").FirstOrDefault(); AnalogSourceCfg = analogSourceElem == null ? new AnalogSourceSettings() : new AnalogSourceSettings(analogSourceElem); XElement spikingSourceElem = settingsElem.Elements("spikingSource").FirstOrDefault(); SpikingSourceCfg = spikingSourceElem == null ? new SpikingSourceSTInhibitorySettings() : new SpikingSourceSTInhibitorySettings(spikingSourceElem); Check(); return; }
/// <summary> /// The deep copy constructor /// </summary> /// <param name="source">Source instance</param> public SpikingSourceSTInhibitorySettings(SpikingSourceSTInhibitorySettings source) : this(source.WeightCfg, source.PlasticityCfg) { return; }