Example #1
0
void nest::spike_generator::Parameters_::get(DictionaryDatum &d) const
{
    const size_t n_spikes = spike_stamps_.size();
    const size_t n_offsets = spike_offsets_.size();
    assert(   ( precise_times_ && n_offsets == n_spikes )
              || (!precise_times_ && n_offsets == 0        ) );

    std::vector<double_t>* times_ms = new std::vector<double_t>();
    times_ms->reserve(n_spikes);
    for ( size_t n = 0 ; n < n_spikes ; ++n )
    {
        times_ms->push_back(spike_stamps_[n].get_ms());
        if ( precise_times_ )
            (*times_ms)[n] -= spike_offsets_[n];
    }
    (*d)[names::spike_times] = DoubleVectorDatum(times_ms);
    (*d)["spike_weights"] = DoubleVectorDatum(new std::vector<double_t>(spike_weights_));
    (*d)[names::precise_times] = BoolDatum(precise_times_);
    (*d)["allow_offgrid_spikes"] = BoolDatum(allow_offgrid_spikes_);
    (*d)["shift_now_spikes"] = BoolDatum(shift_now_spikes_);
}
/*BeginDocumentation

  Name: topology::Inside - test if a point is inside a mask

  Synopsis:
  point mask Inside -> bool

  Parameters:
  point - array of coordinates
  mask - mask object

  Returns:
  bool - true if the point is inside the mask
*/
void
TopologyModule::Inside_a_MFunction::execute( SLIInterpreter* i ) const
{
  i->assert_stack_load( 2 );

  std::vector< double_t > point = getValue< std::vector< double_t > >( i->OStack.pick( 1 ) );
  MaskDatum mask = getValue< MaskDatum >( i->OStack.pick( 0 ) );

  bool ret = inside( point, mask );

  i->OStack.pop( 2 );
  i->OStack.push( Token( BoolDatum( ret ) ) );
  i->EStack.pop();
}