Beispiel #1
0
ArrayDatum
get_children( const index node_id, const DictionaryDatum& params, const bool include_remotes )
{
  Subnet* subnet = dynamic_cast< Subnet* >( kernel().node_manager.get_node( node_id ) );
  if ( subnet == NULL )
  {
    throw SubnetExpected();
  }

  LocalChildList localnodes( *subnet );
  ArrayDatum result;

  std::vector< MPIManager::NodeAddressingData > globalnodes;
  if ( params->empty() )
  {
    kernel().mpi_manager.communicate( localnodes, globalnodes, include_remotes );
  }
  else
  {
    kernel().mpi_manager.communicate( localnodes, globalnodes, params, include_remotes );
  }
  result.reserve( globalnodes.size() );
  for ( std::vector< MPIManager::NodeAddressingData >::iterator n = globalnodes.begin();
        n != globalnodes.end();
        ++n )
  {
    result.push_back( new IntegerDatum( n->get_gid() ) );
  }

  return result;
}
Beispiel #2
0
ArrayDatum
get_nodes( const index node_id,
  const DictionaryDatum& params,
  const bool include_remotes,
  const bool return_gids_only )
{
  Subnet* subnet = dynamic_cast< Subnet* >( kernel().node_manager.get_node( node_id ) );
  if ( subnet == NULL )
    throw SubnetExpected();

  LocalNodeList localnodes( *subnet );
  std::vector< MPIManager::NodeAddressingData > globalnodes;
  if ( params->empty() )
  {
    kernel().mpi_manager.communicate( localnodes, globalnodes, include_remotes );
  }
  else
  {
    kernel().mpi_manager.communicate( localnodes, globalnodes, params, include_remotes );
  }

  ArrayDatum result;
  result.reserve( globalnodes.size() );
  for ( std::vector< MPIManager::NodeAddressingData >::iterator n = globalnodes.begin();
        n != globalnodes.end();
        ++n )
  {
    if ( return_gids_only )
    {
      result.push_back( new IntegerDatum( n->get_gid() ) );
    }
    else
    {
      DictionaryDatum* node_info = new DictionaryDatum( new Dictionary );
      ( **node_info )[ names::global_id ] = n->get_gid();
      ( **node_info )[ names::vp ] = n->get_vp();
      ( **node_info )[ names::parent ] = n->get_parent_gid();
      result.push_back( node_info );
    }
  }

  return result;
}
ArrayDatum
ConnectionManager::get_connections( DictionaryDatum params ) const
{
  ArrayDatum connectome;

  const Token& source_t = params->lookup( names::source );
  const Token& target_t = params->lookup( names::target );
  const Token& syn_model_t = params->lookup( names::synapse_model );
  const TokenArray* source_a = 0;
  const TokenArray* target_a = 0;

  if ( not source_t.empty() )
    source_a = dynamic_cast< TokenArray const* >( source_t.datum() );
  if ( not target_t.empty() )
    target_a = dynamic_cast< TokenArray const* >( target_t.datum() );

  size_t syn_id = 0;

#ifdef _OPENMP
  std::string msg;
  msg = String::compose( "Setting OpenMP num_threads to %1.", net_.get_num_threads() );
  net_.message( SLIInterpreter::M_DEBUG, "ConnectionManager::get_connections", msg );
  omp_set_num_threads( net_.get_num_threads() );
#endif

  // First we check, whether a synapse model is given.
  // If not, we will iterate all.
  if ( not syn_model_t.empty() )
  {
    Name synmodel_name = getValue< Name >( syn_model_t );
    const Token synmodel = synapsedict_->lookup( synmodel_name );
    if ( !synmodel.empty() )
      syn_id = static_cast< size_t >( synmodel );
    else
      throw UnknownModelName( synmodel_name.toString() );
    get_connections( connectome, source_a, target_a, syn_id );
  }
  else
  {
    for ( syn_id = 0; syn_id < prototypes_[ 0 ].size(); ++syn_id )
    {
      ArrayDatum conn;
      get_connections( conn, source_a, target_a, syn_id );
      if ( conn.size() > 0 )
        connectome.push_back( new ArrayDatum( conn ) );
    }
  }

  return connectome;
}
void
nest::correlomatrix_detector::State_::get( DictionaryDatum& d ) const
{
  ( *d )[ names::n_events ] = IntVectorDatum( new std::vector< long_t >( n_events_ ) );

  ArrayDatum* C = new ArrayDatum;
  ArrayDatum* CountC = new ArrayDatum;
  for ( size_t i = 0; i < covariance_.size(); ++i )
  {
    ArrayDatum* C_i = new ArrayDatum;
    ArrayDatum* CountC_i = new ArrayDatum;
    for ( size_t j = 0; j < covariance_[ i ].size(); ++j )
    {
      C_i->push_back(
        new DoubleVectorDatum( new std::vector< double_t >( covariance_[ i ][ j ] ) ) );
      CountC_i->push_back(
        new IntVectorDatum( new std::vector< long_t >( count_covariance_[ i ][ j ] ) ) );
    }
    C->push_back( *C_i );
    CountC->push_back( *CountC_i );
  }
  ( *d )[ names::covariance ] = C;
  ( *d )[ names::count_covariance ] = CountC;
}
Beispiel #5
0
void
ModelsModule::init( SLIInterpreter* )
{
  register_model< iaf_neuron >( net_, "iaf_neuron" );
  register_model< iaf_chs_2007 >( net_, "iaf_chs_2007" );
  register_model< iaf_psc_alpha >( net_, "iaf_psc_alpha" );
  register_model< iaf_psc_alpha_multisynapse >( net_, "iaf_psc_alpha_multisynapse" );
  register_model< iaf_psc_delta >( net_, "iaf_psc_delta" );
  register_model< iaf_psc_exp >( net_, "iaf_psc_exp" );
  register_model< iaf_psc_exp_multisynapse >( net_, "iaf_psc_exp_multisynapse" );
  register_model< iaf_tum_2000 >( net_, "iaf_tum_2000" );
  register_model< amat2_psc_exp >( net_, "amat2_psc_exp" );
  register_model< mat2_psc_exp >( net_, "mat2_psc_exp" );
  register_model< parrot_neuron >( net_, "parrot_neuron" );
  register_model< pp_psc_delta >( net_, "pp_psc_delta" );
  register_model< pp_pop_psc_delta >( net_, "pp_pop_psc_delta" );

  register_model< ac_generator >( net_, "ac_generator" );
  register_model< dc_generator >( net_, "dc_generator" );
  register_model< spike_generator >( net_, "spike_generator" );
  register_model< poisson_generator >( net_, "poisson_generator" );
  register_model< pulsepacket_generator >( net_, "pulsepacket_generator" );
  register_model< noise_generator >( net_, "noise_generator" );
  register_model< step_current_generator >( net_, "step_current_generator" );
  register_model< mip_generator >( net_, "mip_generator" );
  register_model< sinusoidal_poisson_generator >( net_, "sinusoidal_poisson_generator" );
  register_model< ppd_sup_generator >( net_, "ppd_sup_generator" );
  register_model< gamma_sup_generator >( net_, "gamma_sup_generator" );
  register_model< sli_neuron >( net_, "sli_neuron" );
  register_model< ginzburg_neuron >( net_, "ginzburg_neuron" );
  register_model< mcculloch_pitts_neuron >( net_, "mcculloch_pitts_neuron" );
  register_model< izhikevich >( net_, "izhikevich" );
  register_model< spike_dilutor >( net_, "spike_dilutor" );

  register_model< spike_detector >( net_, "spike_detector" );
  register_model< spin_detector >( net_, "spin_detector" );
  register_model< Multimeter >( net_, "multimeter" );
  register_model< correlation_detector >( net_, "correlation_detector" );
  register_model< correlomatrix_detector >( net_, "correlomatrix_detector" );
  register_model< correlospinmatrix_detector >( net_, "correlospinmatrix_detector" );
  register_model< volume_transmitter >( net_, "volume_transmitter" );

  // Create voltmeter as a multimeter pre-configured to record V_m.
  /*BeginDocumentation
  Name: voltmeter - Device to record membrane potential from neurons.
  Synopsis: voltmeter Create

  Description:
  A voltmeter records the membrane potential (V_m) of connected nodes
  to memory, file or stdout.

  By default, voltmeters record values once per ms. Set the parameter
  /interval to change this. The recording interval cannot be smaller
  than the resolution.

  Results are returned in the /events entry of the status dictionary,
  which contains membrane potential as vector /V_m and pertaining
  times as vector /times and node GIDs as /senders, if /withtime and
  /withgid are set, respectively.

  Accumulator mode:
  Voltmeter can operate in accumulator mode. In this case, values for all recorded
  variables are added across all recorded nodes (but kept separate in time). This can
  be useful to record average membrane potential in a population.

  To activate accumulator mode, either set /to_accumulator to true, or set
  /record_to [ /accumulator ].  In accumulator mode, you cannot record to file,
  to memory, to screen, with GID or with weight. You must activate accumulator mode
  before simulating. Accumulator data is never written to file. You must extract it
  from the device using GetStatus.

  Remarks:
   - The voltmeter model is implemented as a multimeter preconfigured to
     record /V_m.
   - The set of variables to record and the recording interval must be set
     BEFORE the voltmeter is connected to any node, and cannot be changed
     afterwards.
   - A voltmeter cannot be frozen.
   - If you record with voltmeter in accumulator mode and some of the nodes
     you record from are frozen and others are not, data will only be collected
     from the unfrozen nodes. Most likely, this will lead to confusing results,
     so you should not use voltmeter with frozen nodes.

  Parameters:
       The following parameter can be set in the status dictionary:
       interval     double - Recording interval in ms

  Examples:
  SLI ] /iaf_cond_alpha Create /n Set
  SLI ] /voltmeter Create /vm Set
  SLI ] vm << /interval 0.5 >> SetStatus
  SLI ] vm n Connect
  SLI ] 10 Simulate
  SLI ] vm /events get info
  --------------------------------------------------
  Name                     Type                Value
  --------------------------------------------------
  senders                  intvectortype       <intvectortype>
  times                    doublevectortype    <doublevectortype>
  V_m                      doublevectortype    <doublevectortype>
  --------------------------------------------------
  Total number of entries: 3


  Sends: DataLoggingRequest

  SeeAlso: Device, RecordingDevice, multimeter
  */
  Dictionary vmdict;
  ArrayDatum ad;
  ad.push_back( LiteralDatum( names::V_m.toString() ) );
  vmdict[ names::record_from ] = ad;
  register_preconf_model< Multimeter >( net_, "voltmeter", vmdict );

#ifdef HAVE_GSL
  register_model< iaf_chxk_2008 >( net_, "iaf_chxk_2008" );
  register_model< iaf_cond_alpha >( net_, "iaf_cond_alpha" );
  register_model< iaf_cond_exp >( net_, "iaf_cond_exp" );
  register_model< iaf_cond_exp_sfa_rr >( net_, "iaf_cond_exp_sfa_rr" );
  register_model< iaf_cond_alpha_mc >( net_, "iaf_cond_alpha_mc" );
  register_model< hh_psc_alpha >( net_, "hh_psc_alpha" );
  register_model< hh_psc_alpha_gap >( net_, "hh_psc_alpha_gap" );
  register_model< hh_cond_exp_traub >( net_, "hh_cond_exp_traub" );
  register_model< sinusoidal_gamma_generator >( net_, "sinusoidal_gamma_generator" );
#endif

#ifdef HAVE_GSL_1_11
  register_model< aeif_cond_alpha >( net_, "aeif_cond_alpha" );
  register_model< aeif_cond_exp >( net_, "aeif_cond_exp" );
  register_model< ht_neuron >( net_, "ht_neuron" );
#endif
  // This version of the AdEx model does not depend on GSL.
  register_model< aeif_cond_alpha_RK5 >( net_, "aeif_cond_alpha_RK5" );
  register_model< aeif_cond_alpha_multisynapse >( net_, "aeif_cond_alpha_multisynapse" );

#ifdef HAVE_MUSIC
  //// proxies for inter-application communication using MUSIC
  register_model< music_event_in_proxy >( net_, "music_event_in_proxy" );
  register_model< music_event_out_proxy >( net_, "music_event_out_proxy" );
  register_model< music_cont_in_proxy >( net_, "music_cont_in_proxy" );
  register_model< music_message_in_proxy >( net_, "music_message_in_proxy" );
#endif

  // register synapses

  /* BeginDocumentation
     Name: static_synapse_hpc - Variant of static_synapse with low memory consumption.

     Description:
     hpc synapses store the target neuron in form of a 2 Byte index instead of an
     8 Byte pointer. This limits the number of thread local neurons to 65,536.
     No support for different receptor types.
     Otherwise identical to static_synapse.

     SeeAlso: synapsedict, static_synapse
  */
  register_connection_model< StaticConnection< TargetIdentifierPtrRport > >(
    net_, "static_synapse" );
  register_connection_model< StaticConnection< TargetIdentifierIndex > >(
    net_, "static_synapse_hpc" );


  /* BeginDocumentation
     Name: static_synapse_hom_w_hpc - Variant of static_synapse_hom_w with low memory consumption.
     SeeAlso: synapsedict, static_synapse_hom_w, static_synapse_hpc
  */
  register_connection_model< StaticConnectionHomW< TargetIdentifierPtrRport > >(
    net_, "static_synapse_hom_w" );
  register_connection_model< StaticConnectionHomW< TargetIdentifierIndex > >(
    net_, "static_synapse_hom_w_hpc" );

  /* BeginDocumentation
     Name: gap_junction - Connection model for gap junctions.
     SeeAlso: synapsedict
  */
  register_secondary_connection_model< GapJunction< TargetIdentifierPtrRport > >(
    net_, "gap_junction", false );


  /* BeginDocumentation
     Name: stdp_synapse_hpc - Variant of stdp_synapse with low memory consumption.
     SeeAlso: synapsedict, stdp_synapse, static_synapse_hpc
  */
  register_connection_model< STDPConnection< TargetIdentifierPtrRport > >( net_, "stdp_synapse" );
  register_connection_model< STDPConnection< TargetIdentifierIndex > >( net_, "stdp_synapse_hpc" );


  /* BeginDocumentation
     Name: stdp_pl_synapse_hom_hpc - Variant of stdp_pl_synapse_hom with low memory consumption.
     SeeAlso: synapsedict, stdp_pl_synapse_hom, static_synapse_hpc
  */
  register_connection_model< STDPPLConnectionHom< TargetIdentifierPtrRport > >(
    net_, "stdp_pl_synapse_hom" );
  register_connection_model< STDPPLConnectionHom< TargetIdentifierIndex > >(
    net_, "stdp_pl_synapse_hom_hpc" );


  /* BeginDocumentation
     Name: stdp_triplet_synapse_hpc - Variant of stdp_triplet_synapse with low memory consumption.
     SeeAlso: synapsedict, stdp_synapse, static_synapse_hpc
  */
  register_connection_model< STDPTripletConnection< TargetIdentifierPtrRport > >(
    net_, "stdp_triplet_synapse" );
  register_connection_model< STDPTripletConnection< TargetIdentifierIndex > >(
    net_, "stdp_triplet_synapse_hpc" );


  /* BeginDocumentation
     Name: quantal_stp_synapse_hpc - Variant of quantal_stp_synapse with low memory consumption.
     SeeAlso: synapsedict, quantal_stp_synapse, static_synapse_hpc
  */
  register_connection_model< Quantal_StpConnection< TargetIdentifierPtrRport > >(
    net_, "quantal_stp_synapse" );
  register_connection_model< Quantal_StpConnection< TargetIdentifierIndex > >(
    net_, "quantal_stp_synapse_hpc" );


  /* BeginDocumentation
     Name: stdp_synapse_hom_hpc - Variant of quantal_stp_synapse with low memory consumption.
     SeeAlso: synapsedict, stdp_synapse_hom, static_synapse_hpc
  */
  register_connection_model< STDPConnectionHom< TargetIdentifierPtrRport > >(
    net_, "stdp_synapse_hom" );
  register_connection_model< STDPConnectionHom< TargetIdentifierIndex > >(
    net_, "stdp_synapse_hom_hpc" );


  /* BeginDocumentation
     Name: stdp_facetshw_synapse_hom_hpc - Variant of stdp_facetshw_synapse_hom with low memory
     consumption.
     SeeAlso: synapsedict, stdp_facetshw_synapse_hom, static_synapse_hpc
  */
  register_connection_model< STDPFACETSHWConnectionHom< TargetIdentifierPtrRport > >(
    net_, "stdp_facetshw_synapse_hom" );
  register_connection_model< STDPFACETSHWConnectionHom< TargetIdentifierIndex > >(
    net_, "stdp_facetshw_synapse_hom_hpc" );


  /* BeginDocumentation
     Name: cont_delay_synapse_hpc - Variant of cont_delay_synapse with low memory consumption.
     SeeAlso: synapsedict, cont_delay_synapse, static_synapse_hpc
  */
  register_connection_model< ContDelayConnection< TargetIdentifierPtrRport > >(
    net_, "cont_delay_synapse" );
  register_connection_model< ContDelayConnection< TargetIdentifierIndex > >(
    net_, "cont_delay_synapse_hpc" );


  /* BeginDocumentation
     Name: tsodyks_synapse_hpc - Variant of tsodyks_synapse with low memory consumption.
     SeeAlso: synapsedict, tsodyks_synapse, static_synapse_hpc
  */
  register_connection_model< TsodyksConnection< TargetIdentifierPtrRport > >(
    net_, "tsodyks_synapse" );
  register_connection_model< TsodyksConnection< TargetIdentifierIndex > >(
    net_, "tsodyks_synapse_hpc" );


  /* BeginDocumentation
     Name: tsodyks_synapse_hom_hpc - Variant of tsodyks_synapse_hom with low memory consumption.
     SeeAlso: synapsedict, tsodyks_synapse_hom, static_synapse_hpc
  */
  register_connection_model< TsodyksConnectionHom< TargetIdentifierPtrRport > >(
    net_, "tsodyks_synapse_hom" );
  register_connection_model< TsodyksConnectionHom< TargetIdentifierIndex > >(
    net_, "tsodyks_synapse_hom_hpc" );


  /* BeginDocumentation
     Name: tsodyks2_synapse_hpc - Variant of tsodyks2_synapse with low memory consumption.
     SeeAlso: synapsedict, tsodyks2_synapse, static_synapse_hpc
  */
  register_connection_model< Tsodyks2Connection< TargetIdentifierPtrRport > >(
    net_, "tsodyks2_synapse" );
  register_connection_model< Tsodyks2Connection< TargetIdentifierIndex > >(
    net_, "tsodyks2_synapse_hpc" );


  /* BeginDocumentation
     Name: ht_synapse_hpc - Variant of ht_synapse with low memory consumption.
     SeeAlso: synapsedict, ht_synapse, static_synapse_hpc
  */
  register_connection_model< HTConnection< TargetIdentifierPtrRport > >( net_, "ht_synapse" );
  register_connection_model< HTConnection< TargetIdentifierIndex > >( net_, "ht_synapse_hpc" );


  /* BeginDocumentation
     Name: stdp_dopamine_synapse_hpc - Variant of stdp_dopamine_synapse with low memory consumption.
     SeeAlso: synapsedict, stdp_dopamine_synapse, static_synapse_hpc
  */
  register_connection_model< STDPDopaConnection< TargetIdentifierPtrRport > >(
    net_, "stdp_dopamine_synapse" );
  register_connection_model< STDPDopaConnection< TargetIdentifierIndex > >(
    net_, "stdp_dopamine_synapse_hpc" );

  /* BeginDocumentation
     Name: stdp_serotonine_synapse
  */
  register_connection_model< STDPH5Connection< TargetIdentifierPtrRport > >(
     net_, "stdp_serotonine_synapse" );
}
  void ModelsModule::init(SLIInterpreter *)
  {
    register_model<iaf_neuron>(net_,                 "iaf_neuron");
    register_model<iaf_chs_2007>(net_,               "iaf_chs_2007");
    register_model<iaf_psc_alpha>(net_,              "iaf_psc_alpha");
    register_model<iaf_psc_alpha_multisynapse>(net_, "iaf_psc_alpha_multisynapse");
    register_model<iaf_psc_delta>(net_,              "iaf_psc_delta");
    register_model<iaf_psc_exp>(net_,                "iaf_psc_exp");
    register_model<iaf_psc_exp_multisynapse>(net_, "iaf_psc_exp_multisynapse");
    register_model<iaf_tum_2000>(net_,               "iaf_tum_2000");
    register_model<amat2_psc_exp>(net_,              "amat2_psc_exp");
    register_model<mat2_psc_exp>(net_,               "mat2_psc_exp");
    register_model<parrot_neuron>(net_,              "parrot_neuron");
    register_model<pp_psc_delta>(net_,               "pp_psc_delta");
    register_model<pp_pop_psc_delta>(net_,           "pp_pop_psc_delta");

    register_model<ac_generator>(net_,           "ac_generator");
    register_model<dc_generator>(net_,           "dc_generator");
    register_model<spike_generator>(net_,        "spike_generator");
    register_model<poisson_generator>(net_,      "poisson_generator");
    register_model<pulsepacket_generator>(net_,  "pulsepacket_generator");
    register_model<noise_generator>(net_,        "noise_generator");
    register_model<step_current_generator>(net_, "step_current_generator");
    register_model<mip_generator>(net_,          "mip_generator");
    register_model<sinusoidal_poisson_generator>(net_,"sinusoidal_poisson_generator");
    register_model<ppd_sup_generator>(net_,      "ppd_sup_generator");
    register_model<gamma_sup_generator>(net_,    "gamma_sup_generator");
    register_model<sli_neuron>(net_,             "sli_neuron");
    register_model<ginzburg_neuron>(net_,        "ginzburg_neuron");
    register_model<mcculloch_pitts_neuron>(net_, "mcculloch_pitts_neuron");
    register_model<izhikevich>(net_,             "izhikevich");

    register_model<spike_detector>(net_,       "spike_detector");
    register_model<spin_detector>(net_,       "spin_detector");
    register_model<Multimeter>(net_,           "multimeter");
    register_model<correlation_detector>(net_, "correlation_detector");
    register_model<correlomatrix_detector>(net_, "correlomatrix_detector");
    register_model<volume_transmitter>(net_, "volume_transmitter");

    // Create voltmeter as a multimeter pre-configured to record V_m.
    Dictionary vmdict;
    ArrayDatum ad;
    ad.push_back(LiteralDatum(names::V_m.toString())); 
    vmdict[names::record_from] = ad;
    register_preconf_model<Multimeter>(net_, "voltmeter", vmdict);

#ifdef HAVE_GSL
    register_model<iaf_chxk_2008>(net_,       "iaf_chxk_2008");
    register_model<iaf_cond_alpha>(net_,      "iaf_cond_alpha");
    register_model<iaf_cond_exp>(net_,        "iaf_cond_exp");
    register_model<iaf_cond_exp_sfa_rr>(net_, "iaf_cond_exp_sfa_rr");
    register_model<iaf_cond_alpha_mc>(net_,   "iaf_cond_alpha_mc");
    register_model<hh_psc_alpha>(net_,        "hh_psc_alpha");
    register_model<hh_cond_exp_traub>(net_,   "hh_cond_exp_traub");
    register_model<sinusoidal_gamma_generator>(net_,"sinusoidal_gamma_generator");
#endif

#ifdef HAVE_GSL_1_11
    register_model<aeif_cond_alpha>(net_, "aeif_cond_alpha");
    register_model<aeif_cond_exp>(net_, "aeif_cond_exp");
    register_model<ht_neuron>(net_,       "ht_neuron");
#endif
    // This version of the AdEx model does not depend on GSL.
    register_model<aeif_cond_alpha_RK5>(net_, "aeif_cond_alpha_RK5");
    register_model<aeif_cond_alpha_multisynapse>(net_, "aeif_cond_alpha_multisynapse");

#ifdef HAVE_MUSIC 
    //// proxies for inter-application communication using MUSIC
    register_model<music_event_in_proxy>(net_, "music_event_in_proxy");
    register_model<music_event_out_proxy>(net_, "music_event_out_proxy");
    register_model<music_cont_in_proxy>(net_, "music_cont_in_proxy");
    register_model<music_message_in_proxy>(net_, "music_message_in_proxy");
#endif

    // register synapses

/* BeginDocumentation
   Name: static_synapse_hpc - Variant of static_synapse with low memory consumption.

   Description:
   hpc synapses store the target neuron in form of a 2 Byte index instead of an
   8 Byte pointer. This limits the number of thread local neurons to 65,536.
   No support for different receptor types.
   Otherwise identical to static_synapse.

   SeeAlso: synapsedict, static_synapse
*/
    register_connection_model < StaticConnection<TargetIdentifierPtrRport> > (net_,    "static_synapse");  
    register_connection_model < StaticConnection<TargetIdentifierIndex> > (net_,    "static_synapse_hpc");
  

/* BeginDocumentation
   Name: static_synapse_hom_w_hpc - Variant of static_synapse_hom_w with low memory consumption.
   SeeAlso: synapsedict, static_synapse_hom_w, static_synapse_hpc
*/
    register_connection_model < StaticConnectionHomW<TargetIdentifierPtrRport> > (net_, "static_synapse_hom_w");
    register_connection_model < StaticConnectionHomW<TargetIdentifierIndex> > (net_, "static_synapse_hom_w_hpc");


/* BeginDocumentation
   Name: stdp_synapse_hpc - Variant of stdp_synapse with low memory consumption.
   SeeAlso: synapsedict, stdp_synapse, static_synapse_hpc
*/
    register_connection_model < STDPConnection<TargetIdentifierPtrRport> > (net_,      "stdp_synapse");
    register_connection_model < STDPConnection<TargetIdentifierIndex> > (net_,      "stdp_synapse_hpc");


/* BeginDocumentation
   Name: stdp_pl_synapse_hom_hpc - Variant of stdp_pl_synapse_hom with low memory consumption.
   SeeAlso: synapsedict, stdp_pl_synapse_hom, static_synapse_hpc
*/
    register_connection_model < STDPPLConnectionHom<TargetIdentifierPtrRport> > (net_, "stdp_pl_synapse_hom");
    register_connection_model < STDPPLConnectionHom<TargetIdentifierIndex> > (net_, "stdp_pl_synapse_hom_hpc");


/* BeginDocumentation
   Name: quantal_stp_synapse_hpc - Variant of quantal_stp_synapse with low memory consumption.
   SeeAlso: synapsedict, quantal_stp_synapse, static_synapse_hpc
*/
    register_connection_model < Quantal_StpConnection<TargetIdentifierPtrRport> > (net_, "quantal_stp_synapse");
    register_connection_model < Quantal_StpConnection<TargetIdentifierIndex> > (net_, "quantal_stp_synapse_hpc");


/* BeginDocumentation
   Name: stdp_synapse_hom_hpc - Variant of quantal_stp_synapse with low memory consumption.
   SeeAlso: synapsedict, stdp_synapse_hom, static_synapse_hpc
*/    
    register_connection_model < STDPConnectionHom<TargetIdentifierPtrRport> > (net_, "stdp_synapse_hom");
    register_connection_model < STDPConnectionHom<TargetIdentifierIndex> > (net_, "stdp_synapse_hom_hpc");


/* BeginDocumentation
   Name: stdp_facetshw_synapse_hom_hpc - Variant of stdp_facetshw_synapse_hom with low memory consumption.
   SeeAlso: synapsedict, stdp_facetshw_synapse_hom, static_synapse_hpc
*/
    register_connection_model < STDPFACETSHWConnectionHom<TargetIdentifierPtrRport> > (net_, "stdp_facetshw_synapse_hom");
    register_connection_model < STDPFACETSHWConnectionHom<TargetIdentifierIndex> > (net_, "stdp_facetshw_synapse_hom_hpc");


/* BeginDocumentation
   Name: cont_delay_synapse_hpc - Variant of cont_delay_synapse with low memory consumption.
   SeeAlso: synapsedict, cont_delay_synapse, static_synapse_hpc
*/
    register_connection_model < ContDelayConnection<TargetIdentifierPtrRport> > (net_, "cont_delay_synapse");
    register_connection_model < ContDelayConnection<TargetIdentifierIndex> > (net_, "cont_delay_synapse_hpc");


/* BeginDocumentation
   Name: tsodyks_synapse_hpc - Variant of tsodyks_synapse with low memory consumption.
   SeeAlso: synapsedict, tsodyks_synapse, static_synapse_hpc
*/
    register_connection_model < TsodyksConnection<TargetIdentifierPtrRport> > (net_,    "tsodyks_synapse");
    register_connection_model < TsodyksConnection<TargetIdentifierIndex> > (net_,    "tsodyks_synapse_hpc");


/* BeginDocumentation
   Name: tsodyks2_synapse_hpc - Variant of tsodyks2_synapse with low memory consumption.
   SeeAlso: synapsedict, tsodyks2_synapse, static_synapse_hpc
*/
    register_connection_model < Tsodyks2Connection<TargetIdentifierPtrRport> > (net_,    "tsodyks2_synapse");
    register_connection_model < Tsodyks2Connection<TargetIdentifierIndex> > (net_,    "tsodyks2_synapse_hpc");


/* BeginDocumentation
   Name: ht_synapse_hpc - Variant of ht_synapse with low memory consumption.
   SeeAlso: synapsedict, ht_synapse, static_synapse_hpc
*/
    register_connection_model < HTConnection<TargetIdentifierPtrRport> > (net_,    "ht_synapse");
    register_connection_model < HTConnection<TargetIdentifierIndex> > (net_,    "ht_synapse_hpc"); 


/* BeginDocumentation
   Name: stdp_dopamine_synapse_hpc - Variant of stdp_dopamine_synapse with low memory consumption.
   SeeAlso: synapsedict, stdp_dopamine_synapse, static_synapse_hpc
*/
    register_connection_model < STDPDopaConnection<TargetIdentifierPtrRport> > (net_, "stdp_dopamine_synapse");
    register_connection_model < STDPDopaConnection<TargetIdentifierIndex> > (net_, "stdp_dopamine_synapse_hpc");
  }