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