#pragma once #include "./BasisFunction.h" namespace NeuralNetwork { namespace BasisFunction { class Radial: public BasisFunction { public: Radial() {} virtual float operator()(const std::vector& weights, const std::vector& input) const override { float sum = 0.0; for(std::size_t i=0;i clone() const override { return std::unique_ptr(new Radial()); } virtual SimpleJSON::Type::Object serialize() const override { return {{"class", "NeuralNetwork::BasisFunction::Radial"}}; } static std::unique_ptr deserialize(const SimpleJSON::Type::Object &) { return std::unique_ptr(new Radial()); } NEURAL_NETWORK_REGISTER_BASIS_FUNCTION(NeuralNetwork::BasisFunction::Radial, deserialize) }; } }