The replication of timeseries to a vector length nodes for Q is redundant when there is no explicit space to them. A single number would be all that needs to be returned with mapping to nodes done in Timeseries::fire(). The current exception is for noise, where we want a different random sequence at each point in space and typically it is applied to all nodes anyway. To maintain a consistent interface, it is probably best to have the vector returned by the individual TIMESERIES fire() methods be of length the number of nodes that the stimulus will be applied to... This becomes more important for higher resolution surfaces, where currently applying a stimulus to a single node of a 1000x1000 surface will produce a million element vector, rather than the single number that is required...
The replication of timeseries to a vector length nodes for Q is redundant when there is no explicit space to them. A single number would be all that needs to be returned with mapping to nodes done in Timeseries::fire(). The current exception is for noise, where we want a different random sequence at each point in space and typically it is applied to all nodes anyway. To maintain a consistent interface, it is probably best to have the vector returned by the individual TIMESERIES fire() methods be of length the number of nodes that the stimulus will be applied to... This becomes more important for higher resolution surfaces, where currently applying a stimulus to a single node of a 1000x1000 surface will produce a million element vector, rather than the single number that is required...