//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="timeScale">The membrane time scale (ms).</param> /// <param name="resistance">The membrane resistance (Mohm).</param> /// <param name="restV">The membrane rest potential (mV).</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="rheobaseV">The membrane rheobase threshold (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="sharpnessDeltaT">The sharpness of membrane potential change (mV).</param> /// <param name="refractoryPeriods">The number of after-spike computation cycles while an input stimuli to be ignored (cycles).</param> /// <param name="solverMethod">The ODE numerical solver method to be used.</param> /// <param name="solverCompSteps">The number of computation sub-steps of the ODE numerical solver.</param> /// <param name="stimuliDuration">The duration of the membrane stimulation (ms).</param> public AFSpikingExpIFSettings(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.CloneOrCreate(timeScale, TypicalTimeScale); Resistance = URandomValueSettings.CloneOrCreate(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrCreate(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrCreate(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrCreate(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = URandomValueSettings.CloneOrCreate(sharpnessDeltaT, TypicalSharpnessDeltaT); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="recoveryTimeScale">The time scale of the recovery variable.</param> /// <param name="recoverySensitivity">The sensitivity of the recovery variable to the sub-threshold fluctuations of the membrane potential.</param> /// <param name="recoveryReset">The after-spike reset of the recovery variable.</param> /// <param name="restV">The membrane rest potential (mV).</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="refractoryPeriods">The number of after-spike computation cycles while an input stimuli to be ignored (cycles).</param> /// <param name="solverMethod">The ODE numerical solver method to be used.</param> /// <param name="solverCompSteps">The number of computation sub-steps of the ODE numerical solver.</param> /// <param name="stimuliDuration">The duration of the membrane stimulation (ms).</param> public AFSpikingIzhikevichIFSettings(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.CloneOrCreate(recoveryTimeScale, TypicalRecoveryTimeScale); RecoverySensitivity = URandomValueSettings.CloneOrCreate(recoverySensitivity, TypicalRecoverySensitivity); RecoveryReset = URandomValueSettings.CloneOrCreate(recoveryReset, TypicalRecoveryReset); RestV = RandomValueSettings.CloneOrCreate(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrCreate(resetV, TypicalResetV); FiringThresholdV = RandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="timeScale">The membrane time scale (ms).</param> /// <param name="resistance">The membrane resistance (Mohm).</param> /// <param name="restV">The membrane rest potential (mV).</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="rheobaseV">The membrane rheobase threshold (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="sharpnessDeltaT">The sharpness of membrane potential change (mV).</param> /// <param name="adaptationVoltageCoupling">The adaptation voltage coupling (nS).</param> /// <param name="adaptationTimeConstant">The adaptation time constant (ms).</param> /// <param name="adaptationSpikeTriggeredIncrement">The spike triggered adaptation increment (pA).</param> /// <param name="solverMethod">The ODE numerical solver method to be used.</param> /// <param name="solverCompSteps">The number of computation sub-steps of the ODE numerical solver.</param> /// <param name="stimuliDuration">The duration of the membrane stimulation (ms).</param> public AFSpikingAdExpIFSettings(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.CloneOrCreate(timeScale, TypicalTimeScale); Resistance = URandomValueSettings.CloneOrCreate(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrCreate(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrCreate(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrCreate(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = URandomValueSettings.CloneOrCreate(sharpnessDeltaT, TypicalSharpnessDeltaT); AdaptationVoltageCoupling = URandomValueSettings.CloneOrCreate(adaptationVoltageCoupling, TypicalAdaptationVoltageCoupling); AdaptationTimeConstant = URandomValueSettings.CloneOrCreate(adaptationTimeConstant, TypicalAdaptationTimeConstant); AdaptationSpikeTriggeredIncrement = URandomValueSettings.CloneOrCreate(adaptationSpikeTriggeredIncrement, TypicalAdaptationSpikeTriggeredIncrement); SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="resistance">The membrane resistance (Mohm).</param> /// <param name="decayRate">The membrane potential decay rate.</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="refractoryPeriods">The number of after-spike computation cycles while an input stimuli to be ignored (cycles).</param> public AFSpikingSimpleIFSettings(URandomValueSettings resistance = null, URandomValueSettings decayRate = null, URandomValueSettings resetV = null, URandomValueSettings firingThresholdV = null, int refractoryPeriods = 1 ) { Resistance = URandomValueSettings.CloneOrCreate(resistance, TypicalResistance); DecayRate = URandomValueSettings.CloneOrCreate(decayRate, TypicalDecayRate); ResetV = URandomValueSettings.CloneOrCreate(resetV, TypicalResetV); FiringThresholdV = URandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="slope">The slope of the curve.</param> public AFAnalogElliotSettings(URandomValueSettings slope = null) { Slope = URandomValueSettings.CloneOrCreate(slope, TypicalSlope); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="negSlope">The negative slope</param> public AFAnalogLeakyReLUSettings(URandomValueSettings negSlope = null) { NegSlope = URandomValueSettings.CloneOrCreate(negSlope, TypicalNegSlope); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="alpha">The Alpha</param> public AFAnalogSoftExponentialSettings(URandomValueSettings alpha = null) { Alpha = URandomValueSettings.CloneOrCreate(alpha, TypicalAlpha); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="alpha">The Alpha.</param> public AFAnalogISRUSettings(URandomValueSettings alpha = null) { Alpha = URandomValueSettings.CloneOrCreate(alpha, TypicalAlpha); return; }