29 struct MexicanHatKernelParameters final : ElementSpecificParameters
51 constexpr double epsilon = 1e-6;
53 return std::abs(
widthExc - other.widthExc) < epsilon &&
55 std::abs(
widthInh - other.widthInh) < epsilon &&
62 [[nodiscard]] std::string
toString()
const override
64 std::ostringstream result;
65 result << std::fixed << std::setprecision(2);
66 result <<
"Parameters: ["
67 <<
"Width exc.: " <<
widthExc <<
", "
69 <<
"Width inh.: " <<
widthInh <<
", "
72 <<
"Circular: " << (
circular ?
"true" :
"false") <<
", "
73 <<
"Normalized: " << (
normalized ?
"true" :
"false") <<
"]";
88 std::vector<double> scratchExtended;
89 std::vector<double> scratchConvolution;
98 void step(
double t,
double deltaT)
override;
99 std::string
toString()
const override;
100 std::shared_ptr<Element>
clone()
const override;
Abstract base class for all convolution-based interaction kernels.
Definition kernel.h:17
Difference-of-Gaussians convolution kernel for DFT lateral interactions.
Definition mexican_hat_kernel.h:85
void setParameters(const MexicanHatKernelParameters &mhk_parameters)
Definition mexican_hat_kernel.cpp:91
MexicanHatKernelParameters getParameters() const
Definition mexican_hat_kernel.cpp:97
std::shared_ptr< Element > clone() const override
Definition mexican_hat_kernel.cpp:85
void step(double t, double deltaT) override
Advance the element by one time step.
Definition mexican_hat_kernel.cpp:56
std::string toString() const override
Definition mexican_hat_kernel.cpp:77
void init() override
Initialize the element (called once before the simulation loop).
Definition mexican_hat_kernel.cpp:13
Definition element_parameters.h:10
Definition element_parameters.h:188
Parameters for a Mexican-hat lateral interaction kernel.
Definition mexican_hat_kernel_parameters.h:10
bool operator==(const MexicanHatKernelParameters &other) const
Definition mexican_hat_kernel.h:49
double widthInh
σ of the inhibitory Gaussian.
Definition mexican_hat_kernel_parameters.h:13
bool circular
Enable circular (toroidal) convolution.
Definition mexican_hat_kernel_parameters.h:15
std::string toString() const override
Definition mexican_hat_kernel.h:62
bool normalized
Normalise both Gaussians before differencing.
Definition mexican_hat_kernel_parameters.h:16
double amplitudeExc
Peak amplitude of the excitatory Gaussian.
Definition mexican_hat_kernel_parameters.h:12
double amplitudeGlobal
Spatially uniform inhibition added after convolution.
Definition mexican_hat_kernel.h:35
MexicanHatKernelParameters(const double widthExc=2.5, const double amplitudeExc=11.0, const double widthInh=5.0, const double amplitudeInh=15.0, const double amplitudeGlobal=-0.1, const bool circular=true, const bool normalized=true)
Definition mexican_hat_kernel.h:39
double amplitudeInh
Peak amplitude of the inhibitory Gaussian.
Definition mexican_hat_kernel_parameters.h:14
double widthExc
σ of the excitatory Gaussian.
Definition mexican_hat_kernel_parameters.h:11