36 #ifndef CYPRESS_CORE_NETWORK_HPP 37 #define CYPRESS_CORE_NETWORK_HPP 64 public ViewableMixin<Population<T>, PopulationView<T>, Accessor>,
65 public DataMixin<Population<T>, Accessor, typename T::Parameters,
72 typename T::Parameters,
typename T::Signals>;
81 using IterableMixin_::operator();
82 using ViewableMixin_::operator();
89 : m_population(population)
107 const typename T::Parameters ¶ms =
typename T::Parameters(),
108 const typename T::Signals &
signals =
typename T::Signals(),
109 const char *
name =
"");
125 const typename T::Parameters ¶ms,
const char *
name)
126 :
Population(network, size, params, typename T::Signals(), name)
166 template <
typename T>
168 :
public IterableMixin<PopulationView<T>, Neuron<T>, Accessor>,
169 public ViewableMixin<PopulationView<T>, PopulationView<T>, Accessor>,
170 public DataMixin<PopulationView<T>, Accessor, typename T::Parameters,
171 typename T::Signals>,
182 using IterableMixin_::operator();
183 using ViewableMixin_::operator();
200 : m_view(network, pid, nid0, nid1)
205 "2nd Neuron index " + std::to_string(nid1) +
206 "is either bigger than Population size or start neuron id");
256 template <
typename T>
259 public ViewableMixin<Neuron<T>, PopulationViewBase, Accessor>,
260 public DataMixin<Neuron<T>, Accessor, typename T::Parameters,
261 typename T::Signals>,
265 typename T::Signals>;
273 using IterableMixin_::operator();
274 using ViewableMixin_::operator();
293 template <
typename Parent>
295 : m_neuron(parent, nid)
342 template <
typename PopulationType>
351 template <
typename T>
354 template <
typename T>
355 size_t create_population_index(
size_t size,
356 const typename T::Parameters ¶ms,
357 const typename T::Signals &
signals,
358 const std::string &
name = std::string())
398 template <
typename T>
400 const std::string &
name = std::string())
402 std::vector<Population<T>> res;
421 auto pops = populations(
name);
424 std::string(
"Population with name \"") +
name +
425 "\" does not exist");
439 template <
typename T>
442 auto pops = populations<T>(
name);
445 std::string(
"Population of type \"") + T::inst().
name +
446 "\" with name \"" +
name +
"\" does not exist");
451 template <
typename T>
453 const typename T::Parameters ¶ms,
454 const typename T::Signals &signals,
455 const char *
name =
"")
460 template <
typename T>
463 const typename T::Parameters ¶ms =
typename T::Parameters(),
464 const char *
name =
"")
473 template <
typename T>
475 const char *
name,
size_t size,
const typename T::Parameters ¶ms,
476 const typename T::Signals &signals =
typename T::Signals())
482 template <
typename Source,
typename Target>
484 std::unique_ptr<Connector> connector,
const char *name =
"")
488 std::move(connector), name);
532 int argc = 0,
const char *argv[] =
nullptr)
543 template <
typename T>
545 const typename T::Parameters ¶ms,
546 const typename T::Signals &signals,
549 size, params, signals, name)))
553 template <
typename T>
559 template <
typename T>
562 return Network(m_view.network());
565 template <
typename T>
568 return Network(m_neuron.network());
572 template <
typename PopulationType>
Definition: neurons_base.hpp:54
PopulationIndex pid() const
Definition: network.hpp:331
NeuronIndex nid() const
Definition: network.hpp:338
Network & operator=(const NetworkBase &o)
Definition: network.hpp:383
Population< T > population() const
Definition: network.hpp:323
Network network() const
Definition: network.hpp:560
PopulationBase population(PopulationIndex pid)
Definition: network_base.hpp:67
Definition: network_base_objects.hpp:103
Definition: network_base_objects.hpp:241
const NeuronType & type() const
Definition: network.hpp:310
int32_t NeuronIndex
Definition: types.hpp:74
Definition: network_base.hpp:64
Definition: backend.hpp:50
Population(const PopulationBase &population)
Definition: network.hpp:88
NeuronIndex nid_end() const
Definition: network_base_objects.hpp:162
Network network() const
Definition: network.hpp:554
Definition: network.hpp:54
Definition: network_base.hpp:70
Neuron(const Parent &parent, NeuronIndex nid)
Definition: network.hpp:294
Definition: exceptions.hpp:65
const T::Signals signals() const
Definition: network_mixins.hpp:253
Definition: network.hpp:50
double Real
Definition: types.hpp:56
auto resolve_population(Network &net, const std::string &str)
Definition: network.hpp:585
Definition: network_mixins.hpp:103
Population(Network &network, size_t size, const typename T::Parameters ¶ms, const char *name)
Definition: network.hpp:124
PopulationIndex pid() const
Definition: network_base_objects.hpp:151
PopulationIndex pid() const
Definition: network_base_objects.hpp:96
PopulationView(const NetworkBase &network, PopulationIndex pid, NeuronIndex nid0, NeuronIndex nid1)
Definition: network.hpp:198
NeuronIndex nid() const
Definition: network_base_objects.hpp:230
Population< T > create_population(size_t size, const typename T::Parameters ¶ms=typename T::Parameters(), const char *name="")
Definition: network.hpp:461
Network & run(const std::string &backend_id, Real duration=0.0, int argc=0, const char *argv[]=nullptr)
Definition: network.hpp:531
Definition: network_base_objects.hpp:169
NetworkBase network() const
Definition: network_base_objects.hpp:89
PopulationIndex create_population_index(size_t size, const NeuronType &type, const NeuronParameters ¶ms, const NeuronSignals &signals, const std::string &name)
size_t size() const
Definition: network_mixins.hpp:81
Definition: network_base.hpp:116
NeuronIndex nid_begin() const
Definition: network_base_objects.hpp:156
Definition: network_base_objects.hpp:53
Network & add_connection(const Source &source, const Target &target, std::unique_ptr< Connector > connector, const char *name="")
Definition: network.hpp:483
Population< T > create_population(size_t size, const typename T::Parameters ¶ms, const typename T::Signals &signals, const char *name="")
Definition: network.hpp:452
const std::vector< PopulationBase > populations(const std::string &name=std::string(), const NeuronType &type=NullNeuron::inst()) const
PopulationIndex pid() const
Definition: network.hpp:158
std::vector< Population< T > > populations(const std::string &name=std::string())
Definition: network.hpp:399
Definition: network.hpp:349
Network & add_population(const char *name, size_t size, const typename T::Parameters ¶ms, const typename T::Signals &signals=typename T::Signals())
Definition: network.hpp:474
Population< T > population(const std::string &name=std::string())
Definition: network.hpp:440
NeuronIndex nid_end() const
Definition: network.hpp:249
NetworkBase network() const
Definition: network_base_objects.hpp:207
Network & run(const Backend &backend, Real duration=0.0)
Definition: network.hpp:504
Definition: brainscales_lib.hpp:39
const std::string & name() const
Definition: network_mixins.hpp:66
const NeuronType & type() const
Definition: network.hpp:143
void run(const Backend &backend, Real duration=0.0)
PopulationIndex pid() const
Definition: network_base_objects.hpp:223
Definition: network_mixins.hpp:363
Neuron(const NeuronBase &neuron)
Definition: network.hpp:283
PopulationBase population(const std::string &name=std::string())
Definition: network.hpp:419
NeuronIndex nid_begin() const
Definition: network.hpp:243
Definition: network_mixins.hpp:268
Network network() const
Definition: network.hpp:566
int32_t PopulationIndex
Definition: types.hpp:75
Definition: exceptions.hpp:38
PopulationIndex pid() const
Definition: network.hpp:238
const NeuronType & type() const
Definition: network.hpp:223
Definition: network.hpp:52
auto resolve_population(Network &, PopulationType p)
Definition: network.hpp:573