Example #1
0
    private void CalculateStrength(Neuron owningNeuron = null)
    {
        var StrengthTemp = Strength;

        SVDataPacket.Susceptibility = Susceptibility;
        SVDataPacket.NeuronOutput   = owningNeuron.Value;
        SVDataPacket.State          = owningNeuron.State;
        SVDataPacket.STW            = STW;

        Profiler.BeginSample("Strength check");

        var StrengthGainCheck = DendriteGene.Dynamics.StrengthGainSVRule.Evaluate(SVDataPacket);

        Profiler.EndSample();

        if (StrengthGainCheck > 0)
        {
            StrengthTemp = Relaxer.Relax(1, DendriteGene.Dynamics.StrengthGain, Strength, 255f);
        }

        Profiler.BeginSample("Strength check 2");
        if (Strength > 0)
        {
            var StrengthLossCheck = DendriteGene.Dynamics.StrengthLossSVRule.Evaluate(SVDataPacket);

            if (StrengthLossCheck > 0)
            {
                StrengthTemp = Relaxer.Relax(1, DendriteGene.Dynamics.StrengthGain, Strength, 0f);
            }
        }
        Strength = StrengthTemp;
        Profiler.EndSample();
    }
Example #2
0
 private float ProcessLeakage()
 {
     if (Gene.Leakage == 0)
     {
         return(Gene.RestState);
     }
     else
     {
         return(Relaxer.Relax(6, Gene.Leakage, State, Gene.RestState));
     }
 }
Example #3
0
 private void RelaxSusceptibility()
 {
     Susceptibility = Relaxer.Relax(RelaxationModifier, DendriteGene.Dynamics.SusceptibilityRelaxRate, Susceptibility, 0);
 }
Example #4
0
 private void RelaxSTWtoLTW()
 {
     STW = Relaxer.Relax(RelaxationModifier, DendriteGene.Dynamics.STWGainRate, STW, LTW);
 }
Example #5
0
 private void RelaxLTWToSTW()
 {
     LTW = Relaxer.Relax(RelaxationModifier, DendriteGene.Dynamics.LTWGainRate, LTW, STW);
 }