21 #ifndef SNABSUITE_SNABS_OUTPUT_BENCH_HPP 22 #define SNABSUITE_SNABS_OUTPUT_BENCH_HPP 24 #include <cypress/cypress.hpp> 35 cypress::PopulationBase m_pop;
40 void run_netw(cypress::Network &netw)
override;
41 std::vector<std::array<cypress::Real, 4>>
evaluate()
override;
42 std::shared_ptr<SNABBase>
clone()
override 44 return std::make_shared<OutputFrequencySingleNeuron>(
m_backend,
56 cypress::PopulationBase m_pop;
57 std::vector<std::vector<cypress::Real>> m_spikes;
62 void run_netw(cypress::Network &netw)
override;
63 std::vector<std::array<cypress::Real, 4>>
evaluate()
override;
64 std::shared_ptr<SNABBase>
clone()
override 66 return std::make_shared<OutputFrequencySingleNeuron2>(
m_backend,
79 cypress::PopulationBase m_pop;
80 size_t m_num_neurons = 0;
86 void run_netw(cypress::Network &netw)
override;
87 std::vector<std::array<cypress::Real, 4>>
evaluate()
override;
88 std::shared_ptr<SNABBase>
clone()
override 90 return std::make_shared<OutputFrequencyMultipleNeurons>(
m_backend,
std::shared_ptr< SNABBase > clone() override
Virtual method cloning the SNAB without knowing which SNAB it is.
cypress::Network & build_netw(cypress::Network &netw) override
Building the neural network for benchmarking. If you want to use an external network, you should use the first version of building (and the corresponding run function), for the member network use the second function. The implementation is contained in the first one.
std::string m_backend
String which contains the name of the simulation backend.
std::vector< std::array< cypress::Real, 4 > > evaluate() override
This should contain the evaluation process and return the result in order of those in names()...
Virtual Base class for SNABs(Benchmarks). All SNABs should have seperate building of networks...
OutputFrequencySingleNeuron(const std::string backend, size_t bench_index)
std::shared_ptr< SNABBase > clone() override
Virtual method cloning the SNAB without knowing which SNAB it is.
const size_t m_bench_index
std::shared_ptr< SNABBase > clone() override
Virtual method cloning the SNAB without knowing which SNAB it is.
void run_netw(cypress::Network &netw) override