//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="recoveryTimeScale">Time scale of the recovery variable</param> /// <param name="recoverySensitivity">Sensitivity of the recovery variable to the subthreshold fluctuations of the membrane potential</param> /// <param name="recoveryReset">After-spike reset of the recovery variable</param> /// <param name="restV">Membrane rest potential (mV)</param> /// <param name="resetV">Membrane reset potential (mV)</param> /// <param name="firingThresholdV">Membrane firing threshold (mV)</param> /// <param name="refractoryPeriods">Number of after spike computation cycles while an input stimuli is ignored (ms)</param> /// <param name="solverMethod">ODE numerical solver method</param> /// <param name="solverCompSteps">ODE numerical solver computation steps of the time step</param> /// <param name="stimuliDuration">Duration of the stimulation</param> public IzhikevichIFSettings(URandomValueSettings recoveryTimeScale = null, URandomValueSettings recoverySensitivity = null, URandomValueSettings recoveryReset = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings firingThresholdV = null, int refractoryPeriods = ActivationFactory.DefaultRefractoryPeriods, ODENumSolver.Method solverMethod = ActivationFactory.DefaultSolverMethod, int solverCompSteps = ActivationFactory.DefaultSolverCompSteps, double stimuliDuration = ActivationFactory.DefaultStimuliDuration ) { RecoveryTimeScale = URandomValueSettings.CloneOrDefault(recoveryTimeScale, TypicalRecoveryTimeScale); RecoverySensitivity = URandomValueSettings.CloneOrDefault(recoverySensitivity, TypicalRecoverySensitivity); RecoveryReset = URandomValueSettings.CloneOrDefault(recoveryReset, TypicalRecoveryReset); RestV = RandomValueSettings.CloneOrDefault(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="timeScale">Membrane time scale (ms)</param> /// <param name="resistance">Membrane resistance (Mohm)</param> /// <param name="restV">Membrane rest potential (mV)</param> /// <param name="resetV">Membrane reset potential (mV)</param> /// <param name="rheobaseV">Membrane rheobase threshold (mV)</param> /// <param name="firingThresholdV">Membrane firing threshold (mV)</param> /// <param name="sharpnessDeltaT">Sharpness of membrane potential change (mV)</param> /// <param name="adaptationVoltageCoupling">Adaptation voltage coupling (nS)</param> /// <param name="adaptationTimeConstant">Adaptation time constant (ms)</param> /// <param name="adaptationSpikeTriggeredIncrement">Spike triggered adaptation increment (pA)</param> /// <param name="solverMethod">ODE numerical solver method</param> /// <param name="solverCompSteps">ODE numerical solver computation steps of the time step</param> /// <param name="stimuliDuration">Duration of the stimulation</param> public AdExpIFSettings(URandomValueSettings timeScale = null, URandomValueSettings resistance = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings rheobaseV = null, RandomValueSettings firingThresholdV = null, URandomValueSettings sharpnessDeltaT = null, URandomValueSettings adaptationVoltageCoupling = null, URandomValueSettings adaptationTimeConstant = null, URandomValueSettings adaptationSpikeTriggeredIncrement = null, ODENumSolver.Method solverMethod = ActivationFactory.DefaultSolverMethod, int solverCompSteps = ActivationFactory.DefaultSolverCompSteps, double stimuliDuration = ActivationFactory.DefaultStimuliDuration ) { TimeScale = URandomValueSettings.CloneOrDefault(timeScale, TypicalTimeScale); Resistance = URandomValueSettings.CloneOrDefault(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrDefault(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrDefault(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = URandomValueSettings.CloneOrDefault(sharpnessDeltaT, TypicalSharpnessDeltaT); AdaptationVoltageCoupling = URandomValueSettings.CloneOrDefault(adaptationVoltageCoupling, TypicalAdaptationVoltageCoupling); AdaptationTimeConstant = URandomValueSettings.CloneOrDefault(adaptationTimeConstant, TypicalAdaptationTimeConstant); AdaptationSpikeTriggeredIncrement = URandomValueSettings.CloneOrDefault(adaptationSpikeTriggeredIncrement, TypicalAdaptationSpikeTriggeredIncrement); SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="timeScale">Membrane time scale (ms)</param> /// <param name="resistance">Membrane resistance (Mohm)</param> /// <param name="restV">Membrane rest potential (mV)</param> /// <param name="resetV">Membrane reset potential (mV)</param> /// <param name="rheobaseV">Membrane rheobase threshold (mV)</param> /// <param name="firingThresholdV">Membrane firing threshold (mV)</param> /// <param name="sharpnessDeltaT">Sharpness of membrane potential change (mV)</param> /// <param name="refractoryPeriods">Number of after spike computation cycles while an input stimuli is ignored (ms)</param> /// <param name="solverMethod">ODE numerical solver method</param> /// <param name="solverCompSteps">ODE numerical solver computation steps of the time step</param> /// <param name="stimuliDuration">Duration of the stimulation</param> public ExpIFSettings(URandomValueSettings timeScale = null, URandomValueSettings resistance = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings rheobaseV = null, RandomValueSettings firingThresholdV = null, URandomValueSettings sharpnessDeltaT = null, int refractoryPeriods = ActivationFactory.DefaultRefractoryPeriods, ODENumSolver.Method solverMethod = ActivationFactory.DefaultSolverMethod, int solverCompSteps = ActivationFactory.DefaultSolverCompSteps, double stimuliDuration = ActivationFactory.DefaultStimuliDuration ) { TimeScale = URandomValueSettings.CloneOrDefault(timeScale, TypicalTimeScale); Resistance = URandomValueSettings.CloneOrDefault(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrDefault(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrDefault(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = URandomValueSettings.CloneOrDefault(sharpnessDeltaT, TypicalSharpnessDeltaT); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="resistance">Membrane resistance (Mohm)</param> /// <param name="decayRate">Membrane potential decay rate</param> /// <param name="resetV">Membrane reset potential (mV)</param> /// <param name="firingThresholdV">Membrane firing threshold (mV)</param> /// <param name="refractoryPeriods">Number of after spike computation cycles while an input stimuli is ignored (ms)</param> public SimpleIFSettings(URandomValueSettings resistance = null, URandomValueSettings decayRate = null, URandomValueSettings resetV = null, URandomValueSettings firingThresholdV = null, int refractoryPeriods = 1 ) { Resistance = URandomValueSettings.CloneOrDefault(resistance, TypicalResistance); DecayRate = URandomValueSettings.CloneOrDefault(decayRate, TypicalDecayRate); ResetV = URandomValueSettings.CloneOrDefault(resetV, TypicalResetV); FiringThresholdV = URandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="slope">Slope of the curve</param> public ElliotSettings(URandomValueSettings slope = null) { Slope = URandomValueSettings.CloneOrDefault(slope, TypicalSlope); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="alpha">The Alpha</param> public SoftExponentialSettings(URandomValueSettings alpha = null) { Alpha = URandomValueSettings.CloneOrDefault(alpha, TypicalAlpha); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="negSlope">The negative slope</param> public LeakyReLUSettings(URandomValueSettings negSlope = null) { NegSlope = URandomValueSettings.CloneOrDefault(negSlope, TypicalNegSlope); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="alpha">The Alpha</param> public ISRUSettings(URandomValueSettings alpha = null) { Alpha = URandomValueSettings.CloneOrDefault(alpha, TypicalAlpha); return; }