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_2d.h
Go to the documentation of this file.
1#pragma once
2
3#include <cmath>
4#include <sstream>
5#include <iomanip>
6#include <numeric>
7
8#include "tools/math.h"
9#include "element.h"
10
12{
14 {
15 double amplitude;
16 double width;
18
20 double width = 1.0,
21 bool circular = true)
23 {}
24
26 {
27 constexpr double epsilon = 1e-6;
28 return std::abs(amplitude - other.amplitude) < epsilon &&
29 std::abs(width - other.width) < epsilon &&
30 circular == other.circular;
31 }
32
33 [[nodiscard]] std::string toString() const override
34 {
35 std::ostringstream result;
36 result << "Parameters: ["
37 << "Amplitude: " << std::fixed << std::setprecision(4) << amplitude << ", "
38 << "Width: " << std::fixed << std::setprecision(2) << width << ", "
39 << "Circular: " << (circular ? "true" : "false") << "]";
40 return result.str();
41 }
42 };
43
44 class CorrelatedNormalNoise2D final : public Element
45 {
46 private:
48 std::vector<double> correlationKernel_x;
49 std::vector<double> correlationKernel_y;
50 std::vector<int> extIndex_x;
51 std::vector<int> extIndex_y;
52 std::vector<double> scratchTmp_;
53 std::vector<double> scratchConv_;
54 public:
55 CorrelatedNormalNoise2D(const ElementCommonParameters& elementCommonParameters,
56 const CorrelatedNormalNoise2DParameters& parameters);
57
58 void init() override;
59 void step(double t, double deltaT) override;
60 std::string toString() const override;
61 std::shared_ptr<Element> clone() const override;
62
65 };
66}
Definition correlated_normal_noise_2d.h:45
std::shared_ptr< Element > clone() const override
Definition correlated_normal_noise_2d.cpp:85
void step(double t, double deltaT) override
Advance the element by one time step.
Definition correlated_normal_noise_2d.cpp:59
std::string toString() const override
Definition correlated_normal_noise_2d.cpp:77
CorrelatedNormalNoise2DParameters getParameters() const
Definition correlated_normal_noise_2d.cpp:96
void setParameters(const CorrelatedNormalNoise2DParameters &parameters)
Definition correlated_normal_noise_2d.cpp:90
void init() override
Initialize the element (called once before the simulation loop).
Definition correlated_normal_noise_2d.cpp:26
Abstract base class for all simulation elements.
Definition element.h:28
Definition element_parameters.h:10
Definition correlated_normal_noise_2d.h:14
bool circular
Definition correlated_normal_noise_2d.h:17
double width
Definition correlated_normal_noise_2d.h:16
double amplitude
Definition correlated_normal_noise_2d.h:15
CorrelatedNormalNoise2DParameters(double amplitude=0.05, double width=1.0, bool circular=true)
Definition correlated_normal_noise_2d.h:19
std::string toString() const override
Definition correlated_normal_noise_2d.h:33
bool operator==(const CorrelatedNormalNoise2DParameters &other) const
Definition correlated_normal_noise_2d.h:25
Definition element_parameters.h:188
Definition element_parameters.h:206