54class BipartiteConnBuilder;
91 const std::vector< Dictionary >& syn_specs );
99 throw KernelException(
"Can only retrieve synapse model when one synapse per connection is used." );
110 throw KernelException(
"Can only retrieve default delay when one synapse per connection is used." );
171 throw NotImplemented(
"This connection rule is not implemented for structural plasticity." );
177 throw NotImplemented(
"This disconnection rule is not implemented." );
183 throw NotImplemented(
"This connection rule is not implemented for structural plasticity." );
349 const std::vector< Dictionary >& syn_specs );
423 const std::vector< Dictionary >& syn_specs );
467 const std::vector< Dictionary >& syn_specs );
483 const std::string& third_rule,
489 const std::map< std::string, std::vector< Dictionary > >& syn_specs );
517 const std::vector< Dictionary >& );
571 const std::vector< Dictionary >& syn_specs );
619 const std::vector< Dictionary >& syn_specs )
674 const std::vector< Dictionary >& );
691 const std::vector< Dictionary >& );
707 const std::vector< Dictionary >& );
723 const std::vector< Dictionary >& );
740 const std::vector< Dictionary >& );
757 const std::vector< Dictionary >& );
788 const std::vector< Dictionary >& syn_spec );
824 void sp_connect(
const std::vector< size_t >& sources,
const std::vector< size_t >& targets );
840 void connect_(
const std::vector< size_t >& sources,
const std::vector< size_t >& targets );
859 ( *it )->skip( target_thread, n_skip );
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Create new bipartite builder.
Definition conn_builder.h:613
void sp_connect_() override
Connect two nodes in a AllToAll fashion with structural plasticity.
Definition conn_builder.cpp:1260
bool is_symmetric() const override
Return true if rule automatically creates symmetric connectivity.
Definition conn_builder.h:625
void sp_disconnect_() override
Disconnect two nodes connected in a AllToAll fashion with structural plasticity.
Definition conn_builder.cpp:1354
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1172
bool requires_proxies() const override
Return true if rule is applicable only to nodes with proxies.
Definition conn_builder.h:631
AllToAllBuilder(NodeCollectionPTR sources, NodeCollectionPTR targets, ThirdOutBuilder *third_out, const Dictionary &conn_spec, const std::vector< Dictionary > &syn_specs)
Definition conn_builder.h:615
void disconnect_() override
Disconnecti two nodes connected in a AllToAll fashion without structural plasticity.
Definition conn_builder.cpp:1305
void inner_connect_(const int, RngPtr, Node *, size_t, bool)
Definition conn_builder.cpp:1227
Base class for RNG engine wrappers.
Definition random_generators.h:67
Definition conn_builder.h:717
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1883
void inner_connect_(const int, RngPtr, Node *, size_t)
Definition conn_builder.cpp:1939
ParameterPTR p_
connection probability
Definition conn_builder.h:730
Abstract base class for Bipartite ConnBuilders which form the components of ConnBuilder.
Definition conn_builder.h:69
void set_structural_plasticity_parameters(const std::vector< Dictionary > &syn_specs)
Set structural plasticity parameters (if provided)
Definition conn_builder.cpp:585
virtual void disconnect_()
Definition conn_builder.h:175
virtual void connect()
Connect with or without structural plasticity.
Definition conn_builder.cpp:269
bool use_structural_plasticity_
Definition conn_builder.h:236
void update_param_dict_(size_t snode_id, Node &target, size_t target_thread, RngPtr rng, size_t indx)
Definition conn_builder.cpp:357
void set_synapse_params(const Dictionary &syn_defaults, const Dictionary &syn_params, const size_t indx)
Definition conn_builder.cpp:545
std::string post_synaptic_element_name_
Definition conn_builder.h:234
void reset_delays_()
Definition conn_builder.cpp:637
void reset_weights_()
Reset weight and delay pointers.
Definition conn_builder.cpp:625
size_t get_synapse_model() const
Definition conn_builder.h:95
bool loop_over_targets_() const
Returns true if conventional looping over targets is indicated.
Definition conn_builder.cpp:487
NodeCollectionPTR sources_
Population to connect from.
Definition conn_builder.h:219
bool allows_autapses() const
Definition conn_builder.h:144
std::vector< bool > default_weight_and_delay_
indicate that weight and delay should not be set per synapse
Definition conn_builder.h:256
bool allow_autapses_
Definition conn_builder.h:224
std::vector< std::vector< Dictionary > > param_dicts_
Dictionaries to pass to connect function, one per thread for every syn_spec.
Definition conn_builder.h:250
virtual ~BipartiteConnBuilder()
Definition conn_builder.cpp:201
std::vector< bool > default_delay_
indicate that delay should not be set per synapse
Definition conn_builder.h:262
bool get_default_delay() const
Definition conn_builder.h:106
void set_synapse_model_(const Dictionary &syn_params, const size_t indx)
Set synapse specific parameters.
Definition conn_builder.cpp:494
void skip_conn_parameter_(size_t, size_t n_skip=1)
Moves pointer in parameter array.
Definition conn_builder.h:853
bool change_connected_synaptic_elements(size_t snode_id, size_t tnode_id, const size_t tid, int update)
Updates the number of connected synaptic elements in the target and the source.
Definition conn_builder.cpp:223
virtual void connect_()=0
Implements the actual connection algorithm.
virtual bool requires_proxies() const
Return true if rule is applicable only to nodes with proxies.
Definition conn_builder.h:157
void register_parameters_requiring_skipping_(ConnParameter ¶m)
Collects all array parameters in a vector.
Definition conn_builder.h:844
std::vector< ConnParameter * > delays_
Definition conn_builder.h:266
std::vector< ConnParameter * > parameters_requiring_skipping_
Pointers to connection parameters specified as arrays.
Definition conn_builder.h:239
NodeCollectionPTR targets_
Population to connect to.
Definition conn_builder.h:220
std::vector< ConnParameter * > weights_
Definition conn_builder.h:265
std::vector< bool > default_weight_
indicate that weight should not be set per synapse
Definition conn_builder.h:259
bool creates_symmetric_connections_
Definition conn_builder.h:227
bool all_parameters_scalar_() const
Definition conn_builder.cpp:455
void set_default_weight_or_delay_(const Dictionary &syn_params, const size_t indx)
Definition conn_builder.cpp:510
virtual void disconnect()
Delete synapses with or without structural plasticity.
Definition conn_builder.cpp:335
bool allow_multapses_
Definition conn_builder.h:225
std::vector< std::exception_ptr > exceptions_raised_
buffer for exceptions raised in threads
Definition conn_builder.h:230
bool allows_multapses() const
Definition conn_builder.h:150
ThirdOutBuilder * third_out_
To be triggered when primary connection is created.
Definition conn_builder.h:222
void set_synaptic_element_names(const std::string &pre_name, const std::string &post_name)
Definition conn_builder.cpp:441
virtual void sp_disconnect_()
Definition conn_builder.h:181
std::string pre_synaptic_element_name_
Definition conn_builder.h:233
virtual bool supports_symmetric() const
Return true if rule allows creation of symmetric connectivity.
Definition conn_builder.h:131
virtual bool is_symmetric() const
Return true if rule automatically creates symmetric connectivity.
Definition conn_builder.h:138
virtual void sp_connect_()
Definition conn_builder.h:169
void single_connect_(size_t, Node &, size_t, RngPtr)
Create connection between given nodes, fill parameter values.
Definition conn_builder.cpp:381
void single_disconnect_(size_t, Node &, size_t)
Definition conn_builder_impl.h:36
std::set< std::string > skip_syn_params_
synapse-specific parameters that should be skipped when we set default synapse parameters
Definition conn_builder.h:272
std::vector< ConnParameterMap > synapse_params_
all other parameters, mapping name to value representation
Definition conn_builder.h:269
bool make_symmetric_
Definition conn_builder.h:226
std::vector< size_t > synapse_model_id_
Definition conn_builder.h:241
std::map< std::string, ConnParameter * > ConnParameterMap
Definition conn_builder.h:253
Class representing a connection builder which may be bi- or tripartite.
Definition conn_builder.h:452
void disconnect()
Delete synapses with or without structural plasticity.
Definition conn_builder.cpp:106
void connect()
Connect with or without structural plasticity.
Definition conn_builder.cpp:96
BipartiteConnBuilder * primary_builder_
Definition conn_builder.h:503
ThirdOutBuilder * third_out_builder_
Definition conn_builder.h:502
~ConnBuilder()
Definition conn_builder.cpp:88
ThirdInBuilder * third_in_builder_
Definition conn_builder.h:501
Definition conn_parameter.h:50
virtual bool is_array() const =0
Definition conn_builder.h:668
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1450
ParameterPTR indegree_
Definition conn_builder.h:681
void inner_connect_(const int, RngPtr, Node *, size_t, bool, long)
Definition conn_builder.cpp:1510
Definition conn_builder.h:685
ParameterPTR outdegree_
Definition conn_builder.h:697
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1615
Definition conn_builder.h:701
long N_
Definition conn_builder.h:713
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:1723
Base class for all Kernel exceptions.
Definition exceptions.h:65
Base class for all NEST network objects.
Definition node.h:99
Exception to be thrown if a feature is unavailable.
Definition exceptions.h:108
Definition conn_builder.h:565
bool supports_symmetric() const override
Return true if rule allows creation of symmetric connectivity.
Definition conn_builder.h:574
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:962
void disconnect_() override
Disconnecti two nodes connected in a OneToOne fashion without structural plasticity.
Definition conn_builder.cpp:1040
void sp_connect_() override
Connect two nodes in a OneToOne fashion with structural plasticity.
Definition conn_builder.cpp:1087
bool requires_proxies() const override
Return true if rule is applicable only to nodes with proxies.
Definition conn_builder.h:580
void sp_disconnect_() override
Disconnect two nodes connected in a OneToOne fashion with structural plasticity.
Definition conn_builder.cpp:1133
Definition conn_builder.h:734
void inner_connect_(const int, RngPtr, Node *, size_t)
Definition conn_builder.cpp:2055
ParameterPTR pairwise_avg_num_conns_
Mean number of connections.
Definition conn_builder.h:747
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:2002
Definition conn_builder.h:773
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:2257
const std::string & get_post_synaptic_element_name() const
Definition conn_builder.h:797
void set_name(const std::string &name)
Definition conn_builder.h:803
const std::string & get_pre_synaptic_element_name() const
Definition conn_builder.h:791
std::string get_name() const
Definition conn_builder.h:809
std::string name_
The name of the SPBuilder; used to identify its properties in the structural_plasticity_synapses kern...
Definition conn_builder.h:828
void sp_connect(const std::vector< size_t > &sources, const std::vector< size_t > &targets)
Definition conn_builder.cpp:2242
void update_delay(long &d) const
Writes the default delay of the connection model, if the SPBuilder only uses the default delay.
Definition conn_builder.cpp:2231
Definition conn_builder.h:751
void connect_() override
Implements the actual connection algorithm.
Definition conn_builder.cpp:2123
bool supports_symmetric() const override
Return true if rule allows creation of symmetric connectivity.
Definition conn_builder.h:760
double p_
connection probability
Definition conn_builder.h:769
Build third-factor connectivity based on Bernoulli trials, selecting third factor nodes from a fixed ...
Definition conn_builder.h:511
~ThirdBernoulliWithPoolBuilder()
Definition conn_builder.cpp:868
bool random_pool_
random or block pool?
Definition conn_builder.h:537
double p_
probability of creating a third-factor connection
Definition conn_builder.h:536
size_t get_first_pool_index_(const size_t target_index) const
For block pool, return index of first pool element for given target node.
Definition conn_builder.cpp:936
void third_connect(size_t source_gid, Node &target) override
Create third-factor connection for given primary connection.
Definition conn_builder.cpp:892
void connect_() override
only call third_connect()
Definition conn_builder.h:524
std::vector< NodeIDTriple > PoolType_
Type for single pool of third-factor nodes.
Definition conn_builder.h:546
std::vector< TgtPoolMap_ * > pools_
Thread-specific pools of third-factor nodes.
Definition conn_builder.h:560
size_t pool_size_
number of nodes per pool
Definition conn_builder.h:538
std::map< size_t, PoolType_ > TgtPoolMap_
Type mapping target GID to pool for this target.
Definition conn_builder.h:549
size_t targets_per_third_
number of target nodes per third-factor node
Definition conn_builder.h:539
Builder creating "thÃrd in" connections based on data from "third out" builder.
Definition conn_builder.h:333
std::vector< std::vector< size_t > * > source_third_counts_
Number of source-third pairs to send. Outer dimension is writing thread, inner dimension MPI rank to ...
Definition conn_builder.h:394
std::vector< BlockVector< SourceThirdInfo_ > * > source_third_gids_
Container for register source-third connections, one per thread via pointer for collision free operat...
Definition conn_builder.h:391
void register_connection(size_t primary_source_id, size_t third_node_id)
Register required source node to third-factor node connection.
Definition conn_builder.cpp:675
void connect_() override
Exchange required connection info via MPI and create needed connections locally.
Definition conn_builder.cpp:685
~ThirdInBuilder()
Definition conn_builder.cpp:664
Builder for connections from third-factor nodes to primary target populations.
Definition conn_builder.h:408
virtual void third_connect(size_t source_gid, Node &target)=0
Create third-factor connection for given primary connection.
void connect() override final
Only call third_connect() on ThirdOutBuilder.
Definition conn_builder.h:427
ThirdInBuilder * third_in_
Definition conn_builder.h:441
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
std::shared_ptr< Parameter > ParameterPTR
Definition parameter.h:40
std::shared_ptr< NodeCollection > NodeCollectionPTR
Definition node_collection.h:50
Provide information on connections from primary source to third-factor population.
Definition conn_builder.h:370
SourceThirdInfo_()
Definition conn_builder.h:371
size_t third_gid
GID of third-factor node to connect to.
Definition conn_builder.h:385
size_t third_rank
Rank of third-factor node (stored locally as it is needed multiple times)
Definition conn_builder.h:386
SourceThirdInfo_(size_t src, size_t trd, size_t rank)
Definition conn_builder.h:377
size_t source_gid
GID of source node to connect from.
Definition conn_builder.h:384