Dynamic Neural Field Composer 0.0.0
A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.
Loading...
Searching...
No Matches
memory_trace.h
Go to the documentation of this file.
1#pragma once
2
3#include <cmath>
4#include <sstream>
5#include <iomanip>
6
7#include "element.h"
8
9
11{
15 {
16 double tauBuild;
17 double tauDecay;
18 double threshold;
19
24 explicit MemoryTraceParameters(const double tauBuild = 100.0,
25 const double tauDecay = 1000.0, const double threshold = 0.5)
27 {}
28
29 bool operator==(const MemoryTraceParameters& other) const
30 {
31 constexpr double epsilon = 1e-6;
32 return std::abs(tauBuild - other.tauBuild) < epsilon &&
33 std::abs(tauDecay - other.tauDecay) < epsilon &&
34 std::abs(threshold - other.threshold) < epsilon;
35 }
36
37 [[nodiscard]] std::string toString() const override
38 {
39 std::ostringstream result;
40 result << std::fixed << std::setprecision(2);
41 result << "Parameters: ["
42 << "TauBuild: " << tauBuild << ", "
43 << "TauDecay: " << tauDecay << ", "
44 << "Threshold: " << threshold
45 << "]";
46 return result.str();
47 }
48 };
49
59 class MemoryTrace final : public Element
60 {
61 private:
62 MemoryTraceParameters parameters;
63 public:
67 MemoryTrace(const ElementCommonParameters& elementCommonParameters,
68 const MemoryTraceParameters& parameters);
69
70 void init() override;
71 void step(double t, double deltaT) override;
72 std::string toString() const override;
73 std::shared_ptr<Element> clone() const override;
74
75 void setParameters(const MemoryTraceParameters& parameters);
77 };
78}
Abstract base class for all simulation elements.
Definition element.h:28
Persistent spatial memory that accumulates and decays field activity.
Definition memory_trace.h:60
MemoryTraceParameters getParameters() const
Definition memory_trace.cpp:54
std::shared_ptr< Element > clone() const override
Definition memory_trace.cpp:43
void setParameters(const MemoryTraceParameters &parameters)
Definition memory_trace.cpp:49
void init() override
Initialize the element (called once before the simulation loop).
Definition memory_trace.cpp:14
void step(double t, double deltaT) override
Advance the element by one time step.
Definition memory_trace.cpp:20
std::string toString() const override
Definition memory_trace.cpp:35
Definition element_parameters.h:10
Definition element_parameters.h:188
Definition element_parameters.h:206
Parameters governing MemoryTrace build-up and decay dynamics.
Definition memory_trace.h:15
std::string toString() const override
Definition memory_trace.h:37
double tauBuild
Time constant for trace accumulation (ms); smaller = faster build.
Definition memory_trace.h:16
MemoryTraceParameters(const double tauBuild=100.0, const double tauDecay=1000.0, const double threshold=0.5)
Construct MemoryTrace parameters.
Definition memory_trace.h:24
bool operator==(const MemoryTraceParameters &other) const
Definition memory_trace.h:29
double threshold
Minimum input value above which the trace accumulates.
Definition memory_trace.h:18
double tauDecay
Time constant for trace decay (ms); larger = longer retention.
Definition memory_trace.h:17