summaryrefslogtreecommitdiff
path: root/src/brain/neuron.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/brain/neuron.cpp')
-rw-r--r--src/brain/neuron.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/brain/neuron.cpp b/src/brain/neuron.cpp
index f4fa12f..d1dd338 100644
--- a/src/brain/neuron.cpp
+++ b/src/brain/neuron.cpp
@@ -3,24 +3,26 @@
double Neuron::sigmoid(double input) const
{
- double slope = 4.924273;
+ const double slope = 4.924273;
return (1/(1+(std::exp(-(slope*input)))));
}
-void Neuron::calculateActivation()
+bool Neuron::calculateActivation()
{
double newActivation = 0;
for (auto const& link : _inputLinks)
{
- newActivation += link->weightedActivation();
+ newActivation += link.weightedActivation();
}
newActivation = sigmoid(newActivation);
- _activationChanged = newActivation != _activation;
+ const double errorMargin = 0.000001;
+ bool activationChanged = std::abs(newActivation - _activation) > errorMargin;
_activation = newActivation;
+ return activationChanged;
}
-void Neuron::addInput(std::unique_ptr<NeuralLink>&& link)
+void Neuron::addInput(NeuralLink&& link)
{
_inputLinks.push_back(std::move(link));
}