Beispiel #1
0
 //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;
 }
Beispiel #2
0
 //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;
 }
Beispiel #3
0
 //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;
 }
Beispiel #4
0
 //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;
 }
Beispiel #5
0
 //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;
 }
Beispiel #6
0
 //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;
 }
Beispiel #7
0
 //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;
 }
Beispiel #8
0
 //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;
 }
Beispiel #9
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="alpha">The Alpha</param>
 public ISRUSettings(RandomValueSettings alpha = null)
 {
     Alpha = RandomValueSettings.CloneOrDefault(alpha, TypicalAlpha);
     return;
 }
Beispiel #10
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="alpha">The Alpha</param>
 public SoftExponentialSettings(RandomValueSettings alpha = null)
 {
     Alpha = RandomValueSettings.CloneOrDefault(alpha, TypicalAlpha);
     return;
 }
Beispiel #11
0
 //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;
 }