Cypress  1.0
C++ Spiking Neural Network Simulation Framework
Public Types | Public Member Functions | List of all members
cypress::Population< T > Class Template Reference

#include <network.hpp>

Inheritance diagram for cypress::Population< T >:
Inheritance graph
[legend]
Collaboration diagram for cypress::Population< T >:
Collaboration graph
[legend]

Public Types

using iterator = iterator_< 1, false >
 
using const_iterator = iterator_< 1, true >
 
using reverse_iterator = iterator_<-1, false >
 
using const_reverse_iterator = iterator_<-1, true >
 

Public Member Functions

 Population (const PopulationBase &population)
 
 Population (Network &network, size_t size, const typename T::Parameters &params=typename T::Parameters(), const typename T::Signals &signals=typename T::Signals(), const char *name="")
 
 Population (Network &network, size_t size, const typename T::Parameters &params, const char *name)
 
 operator PopulationBase () const
 
 operator const PopulationBase & () const
 
 operator PopulationBase & ()
 
const NeuronTypetype () const
 
Network network () const
 
PopulationIndex pid () const
 
Neuron< T > operator[] (NeuronIndex i)
 
const Neuron< T > operator[] (NeuronIndex i) const
 
Neuron< T > operator() (NeuronIndex i)
 
const Neuron< T > operator() (NeuronIndex i) const
 
size_t size ()
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
const PopulationView< T > range (NeuronIndex begin, NeuronIndex end) const
 
PopulationView< T > range (NeuronIndex begin, NeuronIndex end)
 
const PopulationView< T > operator() (NeuronIndex begin, NeuronIndex end) const
 
PopulationView< T > operator() (NeuronIndex begin, NeuronIndex end)
 
bool operator== (const Other &o) const
 
bool operator!= (const Other &o) const
 
bool operator< (const Other &o) const
 
bool operator<= (const Other &o) const
 
bool operator> (const Other &o) const
 
bool operator>= (const Other &o) const
 
const T::Parameters parameters () const
 
T::Parameters parameters ()
 
const T::Signals signals () const
 
T::Signals signals ()
 
const std::string & name () const
 
Population< T > & name (const std::string &name)
 
size_t size () const
 
bool homogeneous_parameters () const
 
bool homogeneous_record () const
 
bool homogeneous_data () const
 
Population< T > & connect_to (TargetIterator tar_begin, TargetIterator tar_end, std::unique_ptr< Connector > connector, const char *name="")
 
Population< T > & connect_to (const Target &tar, std::unique_ptr< Connector > connector, const char *name="")
 

Detailed Description

template<typename T>
class cypress::Population< T >

The Population class represents a set of neurons with the given type.

Template Parameters
Tis the type of the neurons within the population.

Member Typedef Documentation

using cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::const_iterator = iterator_<1, true>
inherited
using cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::const_reverse_iterator = iterator_<-1, true>
inherited
using cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::iterator = iterator_<1, false>
inherited
using cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::reverse_iterator = iterator_<-1, false>
inherited

Constructor & Destructor Documentation

template<typename T>
cypress::Population< T >::Population ( const PopulationBase population)
inlineexplicit

Creates a population as a handle pointing at an already existing population object.

template<typename T >
cypress::Population< T >::Population ( Network network,
size_t  size,
const typename T::Parameters &  params = typename T::Parameters(),
const typename T::Signals &  signals = typename T::Signals(),
const char *  name = "" 
)
inline

Creates a new population in the given network.

Parameters
networkis the network in which the population should be instantiated.
sizeis the number of neurons in the population.
paramsis a vector of parameters with one entry for each neuron in the population. Pass an empty vector if the default parameters should be used. Set a single argument to share the same parameters between all neurons.
signalsdescribes from which signals should be recorded.
nameis the (optional) name of the population.
template<typename T>
cypress::Population< T >::Population ( Network network,
size_t  size,
const typename T::Parameters &  params,
const char *  name 
)
inline

Creates a new population in the given network.

Parameters
networkis the network in which the population should be instantiated.
sizeis the number of neurons in the population.
paramsis a vector of parameters with one entry for each neuron in the population. Pass an empty vector if the default parameters should be used. Set a single argument to share the same parameters between all neurons.
signalsdescribes from which signals should be recorded.
nameis the (optional) name of the population.

Member Function Documentation

iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::begin ( )
inlineinherited

Returns an iterator at the first neuron in the population. For neurons, returns an iterator pointing at the neuron itself.

const_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::begin ( ) const
inlineinherited
const_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::cbegin ( ) const
inlineinherited
const_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::cend ( ) const
inlineinherited
Population< T > & cypress::ConnectableMixin< Population< T > , Accessor >::connect_to ( TargetIterator  tar_begin,
TargetIterator  tar_end,
std::unique_ptr< Connector connector,
const char *  name = "" 
)
inlineinherited

Connects all neurons in this Population, PopulationView or Neuron with a range of neurons indicated by the given iterators.

Parameters
tar_beginis an iterator pointing at the first neuron in the target population that should be connected.
tar_endis an iterator pointing at the last neuron in the target population that should be connected.
connectoris the object establishing the actual connections.
Returns
a reference at this object for function chaining.
Population< T > & cypress::ConnectableMixin< Population< T > , Accessor >::connect_to ( const Target &  tar,
std::unique_ptr< Connector connector,
const char *  name = "" 
)
inlineinherited

Connects all neurons in this Population, PopulationView or Neuron with the given target, which may be a Population, PopulationView or a single neuron.

Parameters
taris the object this object should be connected with.
connectoris the object establishing the actual connections.
Returns
a reference at this object for function chaining.
const_reverse_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::crbegin ( ) const
inlineinherited
const_reverse_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::crend ( ) const
inlineinherited
iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::end ( )
inlineinherited

Returns an iterator at the last-plus-one neuron in the population.

const_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::end ( ) const
inlineinherited
bool cypress::PopulationMixin< Population< T > , Accessor >::homogeneous_data ( ) const
inlineinherited

Returns true if the population possesses homogeneous data.

bool cypress::PopulationMixin< Population< T > , Accessor >::homogeneous_parameters ( ) const
inlineinherited

Returns true if the population possesses homogeneous neuron parameters.

bool cypress::PopulationMixin< Population< T > , Accessor >::homogeneous_record ( ) const
inlineinherited

Returns true if the population possesses homogeneous record flags.

const std::string& cypress::PopulationMixin< Population< T > , Accessor >::name ( ) const
inlineinherited

Returns the name of the population.

Population< T > & cypress::PopulationMixin< Population< T > , Accessor >::name ( const std::string &  name)
inlineinherited

Sets the name of the population and returns a reference at the population object.

template<typename T >
Network cypress::Population< T >::network ( ) const
inline

Returns a handle pointing at the network this population is located in.

Returns
a Network object representing the network this population is located in.
template<typename T>
cypress::Population< T >::operator const PopulationBase & ( ) const
inline
template<typename T>
cypress::Population< T >::operator PopulationBase ( ) const
inline

This class can be implicitly converted to PopulationBase, loosing the neuron type information.

template<typename T>
cypress::Population< T >::operator PopulationBase & ( )
inline
bool cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::operator!= ( const Other &  o) const
inlineinherited
const PopulationView< T > cypress::ViewableMixin< Population< T > , PopulationView< T > , Accessor >::operator() ( NeuronIndex  begin,
NeuronIndex  end 
) const
inlineinherited

Returns a constant View object representing a range of neurons relative to this object.

Parameters
beginis the index of the first neuron in the resulting view, relative to the first neuron in this object.
endis the index of the last-plus-one neuron in the resulting view, relative to the first neuron in this object.
Returns
a new view representing only the given range of neurons.
PopulationView< T > cypress::ViewableMixin< Population< T > , PopulationView< T > , Accessor >::operator() ( NeuronIndex  begin,
NeuronIndex  end 
)
inlineinherited

Returns a View object representing a range of neurons relative to this object.

Parameters
beginis the index of the first neuron in the resulting view, relative to the first neuron in this object.
endis the index of the last-plus-one neuron in the resulting view, relative to the first neuron in this object.
Returns
a new view representing only the given range of neurons.
Neuron< T > cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::operator() ( NeuronIndex  i)
inlineinherited

Returns a reference at the i-th neuron in the Population or PopulationView. For neurons, only the index zero is allowed, providing access at the neuron itself.

const Neuron< T > cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::operator() ( NeuronIndex  i) const
inlineinherited

Returns a const-reference at the i-th neuron. For neurons, only the index zero is allowed, providing access at the neuron itself.

bool cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::operator< ( const Other &  o) const
inlineinherited
bool cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::operator<= ( const Other &  o) const
inlineinherited
bool cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::operator== ( const Other &  o) const
inlineinherited
bool cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::operator> ( const Other &  o) const
inlineinherited
bool cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::operator>= ( const Other &  o) const
inlineinherited
Neuron< T > cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::operator[] ( NeuronIndex  i)
inlineinherited

Returns a reference at the i-th neuron in the Population or PopulationView. For neurons, only the index zero is allowed, providing access at the neuron itself.

const Neuron< T > cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::operator[] ( NeuronIndex  i) const
inlineinherited

Returns a const-reference at the i-th neuron. For neurons, only the index zero is allowed, providing access at the neuron itself.

const T::Parameters cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::parameters ( ) const
inlineinherited

Returns an object which can be used for reading the parameters of the neurons represented by this object. Note that read access may be constrained when the parameters in the underlying neurons do not possess the same parameters.

T::Parameters cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::parameters ( )
inlineinherited

Returns an object which can be used for setting the parameters of the neurons. Note that read access may be constrained when the parameters in the underlying neurons do not possess the same parameters.

template<typename T>
PopulationIndex cypress::Population< T >::pid ( ) const
inline

Returns the population index of this population.

Returns
the population index of this population.
const PopulationView< T > cypress::ViewableMixin< Population< T > , PopulationView< T > , Accessor >::range ( NeuronIndex  begin,
NeuronIndex  end 
) const
inlineinherited

Returns a constant View object representing a range of neurons relative to this object.

Parameters
beginis the index of the first neuron in the resulting view, relative to the first neuron in this object.
endis the index of the last-plus-one neuron in the resulting view, relative to the first neuron in this object.
Returns
a new view representing only the given range of neurons.
PopulationView< T > cypress::ViewableMixin< Population< T > , PopulationView< T > , Accessor >::range ( NeuronIndex  begin,
NeuronIndex  end 
)
inlineinherited

Returns a View object representing a range of neurons relative to this object.

Parameters
beginis the index of the first neuron in the resulting view, relative to the first neuron in this object.
endis the index of the last-plus-one neuron in the resulting view, relative to the first neuron in this object.
Returns
a new view representing only the given range of neurons.
reverse_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::rbegin ( )
inlineinherited
const_reverse_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::rbegin ( ) const
inlineinherited
reverse_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::rend ( )
inlineinherited
const_reverse_iterator cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::rend ( ) const
inlineinherited
const T::Signals cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::signals ( ) const
inlineinherited

Returns an object which can be used for reading the record flags and the recorded data.

T::Signals cypress::DataMixin< Population< T > , Accessor, T::Parameters , T::Signals >::signals ( )
inlineinherited

Returns an object which can be used for reading and writing the record flags and the recorded data.

size_t cypress::PopulationMixin< Population< T > , Accessor >::size ( ) const
inlineinherited

Returns the number of neurons in the population.

size_t cypress::IterableMixin< Population< T > , Neuron< T > , Accessor >::size ( )
inlineinherited

Returns the size of the population or population view. For single neurons the size is always one.

template<typename T>
const NeuronType& cypress::Population< T >::type ( ) const
inline

Returns the type of the population.

Returns
a reference at the neuron type descriptor.

The documentation for this class was generated from the following file: