예제 #1
0
 //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;
 }
예제 #2
0
 //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;
 }
예제 #3
0
 //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;
 }
예제 #4
0
 //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;
 }
예제 #5
0
 //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;
 }
예제 #6
0
 //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;
 }
예제 #7
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance.
 /// </summary>
 /// <param name="alpha">The Alpha</param>
 public AFAnalogSoftExponentialSettings(URandomValueSettings alpha = null)
 {
     Alpha = URandomValueSettings.CloneOrCreate(alpha, TypicalAlpha);
     return;
 }
예제 #8
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance.
 /// </summary>
 /// <param name="alpha">The Alpha.</param>
 public AFAnalogISRUSettings(URandomValueSettings alpha = null)
 {
     Alpha = URandomValueSettings.CloneOrCreate(alpha, TypicalAlpha);
     return;
 }