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
correlated_normal_noise.h
Go to the documentation of this file.
1#pragma once
2
3
4
5
6#include "tools/math.h"
7#include "element.h"
8
10{
27 {
28 double amplitude;
29 double width;
30 bool circular;
31
37 double width = 1.0,
38 bool circular = true)
40 {}
41
43 {
44 constexpr double epsilon = 1e-6;
45 return std::abs(amplitude - other.amplitude) < epsilon &&
46 std::abs(width - other.width) < epsilon &&
47 circular == other.circular;
48 }
49
50 [[nodiscard]] std::string toString() const override
51 {
52 std::ostringstream result;
53 result << "Parameters: ["
54 << "Amplitude: " << std::fixed << std::setprecision(4) << amplitude << ", "
55 << "Width: " << std::fixed << std::setprecision(2) << width << ", "
56 << "Circular: " << (circular ? "true" : "false") << "]";
57 return result.str();
58 }
59 };
60
71 class CorrelatedNormalNoise final : public Element
72 {
73 private:
75 std::vector<double> correlationKernel;
76 std::vector<int> extIndex;
77 public:
81 CorrelatedNormalNoise(const ElementCommonParameters& elementCommonParameters,
83
84 void init() override;
85 void step(double t, double deltaT) override;
86 std::shared_ptr<Element> clone() const override;
87 std::string toString() const override;
88
89 void setParameters(const CorrelatedNormalNoiseParameters& parameters);
91 };
92}
Spatially correlated Gaussian noise source — cedar-compatible.
Definition correlated_normal_noise.h:72
void step(double t, double deltaT) override
Advance the element by one time step.
Definition correlated_normal_noise.cpp:52
void setParameters(const CorrelatedNormalNoiseParameters &parameters)
Definition correlated_normal_noise.cpp:88
CorrelatedNormalNoiseParameters getParameters() const
Definition correlated_normal_noise.cpp:94
std::shared_ptr< Element > clone() const override
Definition correlated_normal_noise.cpp:74
void init() override
Initialize the element (called once before the simulation loop).
Definition correlated_normal_noise.cpp:24
std::string toString() const override
Definition correlated_normal_noise.cpp:79
Abstract base class for all simulation elements.
Definition element.h:28
Definition element_parameters.h:10
Parameters for a spatially correlated Gaussian noise source.
Definition correlated_normal_noise.h:27
bool operator==(const CorrelatedNormalNoiseParameters &other) const
Definition correlated_normal_noise.h:42
double amplitude
Noise amplitude (standard deviation before convolution). Default 0.05.
Definition correlated_normal_noise.h:28
CorrelatedNormalNoiseParameters(double amplitude=0.05, double width=1.0, bool circular=true)
Construct CorrelatedNormalNoise parameters.
Definition correlated_normal_noise.h:36
bool circular
Use circular (toroidal) boundary for convolution. Default true.
Definition correlated_normal_noise.h:30
std::string toString() const override
Definition correlated_normal_noise.h:50
double width
Standard deviation of the Gaussian correlation kernel (in samples/indices). Default 1....
Definition correlated_normal_noise.h:29
Definition element_parameters.h:188
Definition element_parameters.h:206