//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> public AdExpIFSettings(RandomValueSettings timeScale = null, RandomValueSettings resistance = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings rheobaseV = null, RandomValueSettings firingThresholdV = null, RandomValueSettings sharpnessDeltaT = null, RandomValueSettings adaptationVoltageCoupling = null, RandomValueSettings adaptationTimeConstant = null, RandomValueSettings adaptationSpikeTriggeredIncrement = null, ODENumSolver.Method solverMethod = ODENumSolver.Method.Euler, int solverCompSteps = 2 ) { TimeScale = RandomValueSettings.CloneOrDefault(timeScale, TypicalTimeScale); Resistance = RandomValueSettings.CloneOrDefault(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrDefault(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrDefault(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = RandomValueSettings.CloneOrDefault(sharpnessDeltaT, TypicalSharpnessDeltaT); AdaptationVoltageCoupling = RandomValueSettings.CloneOrDefault(adaptationVoltageCoupling, TypicalAdaptationVoltageCoupling); AdaptationTimeConstant = RandomValueSettings.CloneOrDefault(adaptationTimeConstant, TypicalAdaptationTimeConstant); AdaptationSpikeTriggeredIncrement = RandomValueSettings.CloneOrDefault(adaptationSpikeTriggeredIncrement, TypicalAdaptationSpikeTriggeredIncrement); SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; return; }
//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(RandomValueSettings resistance = null, RandomValueSettings decayRate = null, RandomValueSettings resetV = null, RandomValueSettings firingThresholdV = null, int refractoryPeriods = 1 ) { Resistance = RandomValueSettings.CloneOrDefault(resistance, TypicalResistance); DecayRate = RandomValueSettings.CloneOrDefault(decayRate, TypicalDecayRate); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; 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="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> public LeakyIFSettings(RandomValueSettings timeScale = null, RandomValueSettings resistance = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings firingThresholdV = null, int refractoryPeriods = 1, ODENumSolver.Method solverMethod = ODENumSolver.Method.Euler, int solverCompSteps = 2 ) { TimeScale = RandomValueSettings.CloneOrDefault(timeScale, TypicalTimeScale); Resistance = RandomValueSettings.CloneOrDefault(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrDefault(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; return; }
//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> public IzhikevichIFSettings(RandomValueSettings recoveryTimeScale = null, RandomValueSettings recoverySensitivity = null, RandomValueSettings recoveryReset = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings firingThresholdV = null, int refractoryPeriods = 1, ODENumSolver.Method solverMethod = ODENumSolver.Method.Euler, int solverCompSteps = 2 ) { RecoveryTimeScale = RandomValueSettings.CloneOrDefault(recoveryTimeScale, TypicalRecoveryTimeScale); RecoverySensitivity = RandomValueSettings.CloneOrDefault(recoverySensitivity, TypicalRecoverySensitivity); RecoveryReset = RandomValueSettings.CloneOrDefault(recoveryReset, TypicalRecoveryReset); RestV = RandomValueSettings.CloneOrDefault(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrDefault(resetV, TypicalResetV); FiringThresholdV = RandomValueSettings.CloneOrDefault(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="negSlope">The negative slope</param> public LeakyReLUSettings(RandomValueSettings negSlope = null) { NegSlope = RandomValueSettings.CloneOrDefault(negSlope, TypicalNegSlope); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="alpha">The Alpha</param> public ISRUSettings(RandomValueSettings alpha = null) { Alpha = RandomValueSettings.CloneOrDefault(alpha, TypicalAlpha); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="alpha">The Alpha</param> public SoftExponentialSettings(RandomValueSettings alpha = null) { Alpha = RandomValueSettings.CloneOrDefault(alpha, TypicalAlpha); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="slope">Slope of the curve</param> public ElliotSettings(RandomValueSettings slope = null) { Slope = RandomValueSettings.CloneOrDefault(slope, TypicalSlope); return; }