NEST  2.6.0,not_revisioned_source_dir@0
parameter.h
Go to the documentation of this file.
1 /*
2  * parameter.h
3  *
4  * This file is part of NEST.
5  *
6  * Copyright (C) 2004 The NEST Initiative
7  *
8  * NEST is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * NEST is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with NEST. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef PARAMETER_H
24 #define PARAMETER_H
25 
26 #include <limits>
27 #include "nest.h"
28 #include "randomgen.h"
29 #include "nest_names.h"
30 #include "topology_names.h"
31 #include "position.h"
32 #include "dictdatum.h"
33 #include "dictutils.h"
34 #include "topologymodule.h"
35 #include "normal_randomdev.h"
36 
37 namespace nest
38 {
39  class TopologyModule;
40 
44  class Parameter
45  {
46  public:
51  cutoff_(-std::numeric_limits<double>::infinity())
52  {}
53 
59  {}
60 
68  cutoff_(-std::numeric_limits<double>::infinity())
69  {
70  updateValue<double_t>(d, names::cutoff, cutoff_);
71  }
72 
76  virtual ~Parameter()
77  {}
78 
83  {
84  double_t val = raw_value(p,rng);
85  if (val<cutoff_)
86  return 0.0;
87  else
88  return val;
89  }
90 
95  {
96  double_t val = raw_value(p,rng);
97  if (val<cutoff_)
98  return 0.0;
99  else
100  return val;
101  }
102 
108  {
109  throw KernelException("Parameter not valid for 2D layer");
110  }
111 
117  {
118  throw KernelException("Parameter not valid for 3D layer");
119  }
120 
124  double_t value(const std::vector<double_t> &pt, librandom::RngPtr& rng) const;
125 
130  virtual Parameter * clone() const = 0;
131 
136  virtual Parameter* multiply_parameter(const Parameter & other) const;
141  virtual Parameter* divide_parameter(const Parameter & other) const;
146  virtual Parameter* add_parameter(const Parameter & other) const;
151  virtual Parameter* subtract_parameter(const Parameter & other) const;
152 
153  private:
155  };
156 
158 
163  {
164  public:
166  {}
167 
173  {
174  value_ = getValue<double_t>(d, "value");
175  }
176 
178  {}
179 
184  { return value_; }
186  { return value_; }
187 
188  Parameter * clone() const
189  { return new ConstantParameter(value_); }
190 
191  private:
193  };
194 
198  class RadialParameter : public Parameter
199  {
200  public:
202  {}
203 
205  {}
206 
208  {}
209 
210  virtual double_t raw_value(double_t) const = 0;
211 
213  { return raw_value(p.length()); }
215  { return raw_value(p.length()); }
216 
217  };
218 
223  {
224  public:
231  RadialParameter(d),
232  a_(1.0),
233  c_(0.0)
234  {
235  updateValue<double_t>(d, names::a, a_);
236  updateValue<double_t>(d, names::c, c_);
237  }
238 
240  {
241  return a_*x + c_;
242  }
243 
244  Parameter * clone() const
245  { return new LinearParameter(*this); }
246 
247  private:
249  };
250 
251 
256  {
257  public:
265  RadialParameter(d),
266  a_(1.0),
267  c_(0.0),
268  tau_(1.0)
269  {
270  updateValue<double_t>(d, names::a, a_);
271  updateValue<double_t>(d, names::c, c_);
272  updateValue<double_t>(d, names::tau, tau_);
273  if ( tau_ <= 0 )
274  throw BadProperty("topology::ExponentialParameter: "
275  "tau > 0 required.");
276  }
277 
279  {
280  return c_ + a_*std::exp(-x/tau_);
281  }
282 
283  Parameter * clone() const
284  { return new ExponentialParameter(*this); }
285 
286  private:
288  };
289 
290 
295  {
296  public:
305  RadialParameter(d),
306  c_(0.0),
307  p_center_(1.0),
308  mean_(0.0),
309  sigma_(1.0)
310  {
311  updateValue<double_t>(d, names::c, c_);
312  updateValue<double_t>(d, names::p_center, p_center_);
313  updateValue<double_t>(d, names::mean, mean_);
314  updateValue<double_t>(d, names::sigma, sigma_);
315  if ( sigma_ <= 0 )
316  throw BadProperty("topology::GaussianParameter: "
317  "sigma > 0 required.");
318  }
319 
321  {
322  return c_ + p_center_*
323  std::exp(-std::pow(x - mean_,2)/(2*std::pow(sigma_,2)));
324  }
325 
326  Parameter * clone() const
327  { return new GaussianParameter(*this); }
328 
329  private:
331  };
332 
333 
341  {
342  public:
354 
356  {
357  return c_ +
358  p_center_*std::exp(- ( (pos[0]-mean_x_)*(pos[0]-mean_x_)/(sigma_x_*sigma_x_)
359  + (pos[1]-mean_y_)*(pos[1]-mean_y_)/(sigma_y_*sigma_y_)
360  - 2.*rho_*(pos[0]-mean_x_)*(pos[1]-mean_y_)/(sigma_x_*sigma_y_) )
361  /(2.*(1.-rho_*rho_)) );
362  }
363 
365  {
366  return raw_value(Position<2>(pos[0],pos[1]),rng);
367  }
368 
369  Parameter * clone() const
370  { return new Gaussian2DParameter(*this); }
371 
372  private:
374  };
375 
376 
380  class UniformParameter: public Parameter {
381  public:
382  public:
389  Parameter(d),
390  lower_(0.0),
391  range_(1.0)
392  {
393  updateValue<double_t>(d, names::min, lower_);
394  updateValue<double_t>(d, names::max, range_);
395 
396  if ( lower_ >= range_ )
397  throw BadProperty("topology::UniformParameter: "
398  "min < max required.");
399 
400  range_ -= lower_;
401  }
402 
404  {
405  return lower_ + rng->drand()*range_;
406  }
407 
409  {
410  return lower_ + rng->drand()*range_;
411  }
412 
413  Parameter * clone() const
414  { return new UniformParameter(*this); }
415 
416  private:
418  };
419 
420 
425  class NormalParameter: public Parameter {
426  public:
427  public:
436  Parameter(d),
437  mean_(0.0),
438  sigma_(1.0),
439  min_(-std::numeric_limits<double>::infinity()),
440  max_(std::numeric_limits<double>::infinity()),
441  rdev()
442  {
443  updateValue<double_t>(d, names::mean, mean_);
444  updateValue<double_t>(d, names::sigma, sigma_);
445  updateValue<double_t>(d, names::min, min_);
446  updateValue<double_t>(d, names::max, max_);
447 
448  if ( sigma_ <= 0 )
449  throw BadProperty("topology::NormalParameter: "
450  "sigma > 0 required.");
451  if ( min_ >= max_ )
452  throw BadProperty("topology::NormalParameter: "
453  "min < max required.");
454  }
455 
457  {
458  double_t val;
459  do {
460  val = mean_ + rdev(rng)*sigma_;
461  } while ((val<min_) or (val>=max_));
462  return val;
463  }
464 
466  {
467  return raw_value(rng);
468  }
469 
471  {
472  return raw_value(rng);
473  }
474 
475  Parameter * clone() const
476  { return new NormalParameter(*this); }
477 
478  private:
481  };
482 
483 
489  public:
490  public:
499  Parameter(d),
500  mu_(0.0),
501  sigma_(1.0),
502  min_(-std::numeric_limits<double>::infinity()),
503  max_(std::numeric_limits<double>::infinity()),
504  rdev()
505  {
506  updateValue<double_t>(d, names::mu, mu_);
507  updateValue<double_t>(d, names::sigma, sigma_);
508  updateValue<double_t>(d, names::min, min_);
509  updateValue<double_t>(d, names::max, max_);
510 
511  if ( sigma_ <= 0 )
512  throw BadProperty("topology::LognormalParameter: "
513  "sigma > 0 required.");
514  if ( min_ >= max_ )
515  throw BadProperty("topology::LognormalParameter: "
516  "min < max required.");
517  }
518 
520  {
521  double_t val;
522  do {
523  val = std::exp(mu_ + rdev(rng)*sigma_);
524  } while ((val<min_) or (val>=max_));
525  return val;
526  }
527 
529  {
530  return raw_value(rng);
531  }
532 
534  {
535  return raw_value(rng);
536  }
537 
538  Parameter * clone() const
539  { return new LognormalParameter(*this); }
540 
541  private:
544  };
545 
546 
550  template<int D>
551  class AnchoredParameter : public Parameter {
552  public:
554  Parameter(p),
555  p_(p.clone()), anchor_(anchor)
556  {}
557 
559  Parameter(p), p_(p.p_->clone()), anchor_(p.anchor_)
560  {}
561 
563  { delete p_; }
564 
566  { throw BadProperty("Incorrect dimension."); }
567 
569  {
570  return p_->raw_value(p-anchor_, rng);
571  }
572 
573  Parameter * clone() const
574  { return new AnchoredParameter(*this); }
575 
576  private:
579  };
580 
584  class ProductParameter : public Parameter {
585  public:
586 
591  ProductParameter(const Parameter &m1, const Parameter &m2):
592  Parameter(),
593  parameter1_(m1.clone()), parameter2_(m2.clone())
594  {}
595 
600  Parameter(p),
602  {}
603 
605  { delete parameter1_; delete parameter2_; }
606 
611  { return parameter1_->value(p,rng) * parameter2_->value(p,rng); }
613  { return parameter1_->value(p,rng) * parameter2_->value(p,rng); }
614 
615  Parameter * clone() const
616  { return new ProductParameter(*this); }
617 
618  protected:
620  };
621 
625  class QuotientParameter : public Parameter {
626  public:
627 
632  QuotientParameter(const Parameter &m1, const Parameter &m2):
633  Parameter(),
634  parameter1_(m1.clone()), parameter2_(m2.clone())
635  {}
636 
641  Parameter(p),
643  {}
644 
646  { delete parameter1_; delete parameter2_; }
647 
652  { return parameter1_->value(p,rng) / parameter2_->value(p,rng); }
654  { return parameter1_->value(p,rng) / parameter2_->value(p,rng); }
655 
656  Parameter * clone() const
657  { return new QuotientParameter(*this); }
658 
659  protected:
661  };
662 
666  class SumParameter : public Parameter {
667  public:
668 
673  SumParameter(const Parameter &m1, const Parameter &m2):
674  Parameter(),
675  parameter1_(m1.clone()), parameter2_(m2.clone())
676  {}
677 
682  Parameter(p),
684  {}
685 
687  { delete parameter1_; delete parameter2_; }
688 
693  { return parameter1_->value(p,rng) + parameter2_->value(p,rng); }
695  { return parameter1_->value(p,rng) + parameter2_->value(p,rng); }
696 
697  Parameter * clone() const
698  { return new SumParameter(*this); }
699 
700  protected:
702  };
703 
708  public:
709 
714  DifferenceParameter(const Parameter &m1, const Parameter &m2):
715  Parameter(),
716  parameter1_(m1.clone()), parameter2_(m2.clone())
717  {}
718 
723  Parameter(p),
725  {}
726 
728  { delete parameter1_; delete parameter2_; }
729 
734  { return parameter1_->value(p,rng) - parameter2_->value(p,rng); }
736  { return parameter1_->value(p,rng) - parameter2_->value(p,rng); }
737 
738  Parameter * clone() const
739  { return new DifferenceParameter(*this); }
740 
741  protected:
743  };
744 
748  class ConverseParameter : public Parameter {
749  public:
750 
756  Parameter(p),
757  p_(p.clone())
758  {}
759 
764  Parameter(p), p_(p.p_->clone())
765  {}
766 
768  { delete p_; }
769 
774  { return p_->raw_value(-p,rng); }
776  { return p_->raw_value(-p,rng); }
777 
778  Parameter * clone() const
779  { return new ConverseParameter(*this); }
780 
781  protected:
783  };
784 
785  inline
787  {
788  return new ProductParameter(*this,other);
789  }
790 
791  inline
793  {
794  return new QuotientParameter(*this,other);
795  }
796 
797  inline
799  {
800  return new SumParameter(*this,other);
801  }
802 
803  inline
805  {
806  return new DifferenceParameter(*this,other);
807  }
808 
809 
810 } // namespace nest
811 
812 #endif
double_t c_
Definition: parameter.h:287
double_t raw_value(const Position< 3 > &, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:470
Parameter * clone() const
Clone method.
Definition: parameter.h:615
GaussianParameter(const DictionaryDatum &d)
Parameters: c - constant offset p_center - value at center of gaussian mean - distance to center sigm...
Definition: parameter.h:304
Definition: position.h:43
double_t sigma_
Definition: parameter.h:479
Parameter * clone() const
Clone method.
Definition: parameter.h:413
Parameter()
Default constructor.
Definition: parameter.h:50
Position< D > anchor_
Definition: parameter.h:578
Abstract base class for parameters only depending on distance.
Definition: parameter.h:198
double_t max_
Definition: parameter.h:479
double_t raw_value(const Position< 2 > &p, librandom::RngPtr &) const
Raw value disregarding cutoff.
Definition: parameter.h:212
double_t raw_value(const Position< 3 > &p, librandom::RngPtr &) const
Raw value disregarding cutoff.
Definition: parameter.h:214
virtual Parameter * clone() const =0
Clone method.
double_t raw_value(librandom::RngPtr &rng) const
Definition: parameter.h:456
double_t a_
Definition: parameter.h:287
double_t max_
Definition: parameter.h:542
Parameter(const DictionaryDatum &d)
Constructor Parameter that can be set in the Dictionary: cutoff - Values less than the cutoff are set...
Definition: parameter.h:67
~DifferenceParameter()
Definition: parameter.h:727
AnchoredParameter(const Parameter &p, const Position< D > &anchor)
Definition: parameter.h:553
double_t sigma_y_
Definition: parameter.h:373
double_t sigma_
Definition: parameter.h:330
double_t raw_value(double_t x) const
Definition: parameter.h:278
Parameter * clone() const
Clone method.
Definition: parameter.h:369
double_t raw_value(const Position< 2 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:610
double_t p_center_
Definition: parameter.h:373
double_t a_
Definition: parameter.h:248
const Name d("d")
Specific to Izhikevich 2003.
Definition: nest_names.h:83
Parameter * parameter1_
Definition: parameter.h:701
Parameter * clone() const
Clone method.
Definition: parameter.h:188
double_t mean_x_
Definition: parameter.h:373
double_t raw_value(const Position< 2 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:733
double_t mean_
Definition: parameter.h:479
RadialParameter()
Definition: parameter.h:201
QuotientParameter(const QuotientParameter &p)
Copy constructor.
Definition: parameter.h:640
Gaussian2DParameter(const DictionaryDatum &d)
Parameters: c - constant offset p_center - value at center mean_x - x-coordinate of center mean_y - y...
Definition: parameter.cpp:40
Parameter * parameter2_
Definition: parameter.h:619
Parameter class representing the sum of two parameters.
Definition: parameter.h:666
Parameter * p_
Definition: parameter.h:782
Parameter class representing the difference of two parameters.
Definition: parameter.h:707
virtual Parameter * divide_parameter(const Parameter &other) const
Create the quotient of this parameter with another.
Definition: parameter.h:792
Parameter class representing the quotient of two parameters.
Definition: parameter.h:625
double_t min_
Definition: parameter.h:542
Parameter * parameter1_
Definition: parameter.h:660
double_t mu_
Definition: parameter.h:542
Create normal (Gaussian) random numbers with uniform variance.
Definition: normal_randomdev.h:59
double_t min_
Definition: parameter.h:479
double_t mean_y_
Definition: parameter.h:373
Parameter * clone() const
Clone method.
Definition: parameter.h:326
Linear (affine) parameter p(d) = c + a*d.
Definition: parameter.h:222
Parameter * p_
Definition: parameter.h:577
Exponential parameter p(d) = c + a*exp(-d/tau).
Definition: parameter.h:255
const Name tau("tau")
Definition: topology_names.h:71
double_t raw_value(const Position< 2 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:773
Parameter * parameter2_
Definition: parameter.h:742
const Name a("a")
Specific to Brette & Gerstner 2005 (aeif_cond-*)
Definition: nest_names.h:41
virtual Parameter * subtract_parameter(const Parameter &other) const
Create the difference of this parameter with another.
Definition: parameter.h:804
Parameter * clone() const
Clone method.
Definition: parameter.h:573
double_t p_center_
Definition: parameter.h:330
virtual double_t raw_value(const Position< 3 > &, librandom::RngPtr &) const
Raw value disregarding cutoff.
Definition: parameter.h:116
Abstract base class for parameters.
Definition: parameter.h:44
Parameter with constant value.
Definition: parameter.h:162
double_t raw_value(const Position< 2 > &, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:403
DifferenceParameter(const DifferenceParameter &p)
Copy constructor.
Definition: parameter.h:722
double_t raw_value(const Position< 2 > &, librandom::RngPtr &) const
Definition: parameter.h:183
double_t raw_value(const Position< 3 > &p, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:653
const Name std("std")
Miscellaneous parameters.
Definition: nest_names.h:265
double_t raw_value(const Position< 3 > &p, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:775
double_t lower_
Definition: parameter.h:417
const Name anchor("anchor")
Definition: topology_names.h:50
AnchoredParameter(const AnchoredParameter &p)
Definition: parameter.h:558
double_t raw_value(librandom::RngPtr &rng) const
Definition: parameter.h:519
RadialParameter(double_t cutoff)
Definition: parameter.h:204
~SumParameter()
Definition: parameter.h:686
Parameter * clone() const
Clone method.
Definition: parameter.h:738
double_t rho_
Definition: parameter.h:373
ExponentialParameter(const DictionaryDatum &d)
Parameters: a - coefficient of exponential term tau - length scale factor c - constant offset...
Definition: parameter.h:264
const Name other("other")
Node type.
Definition: nest_names.h:216
Base class for all Kernel exceptions.
Definition: exceptions.h:54
Parameter * clone() const
Clone method.
Definition: parameter.h:778
RadialParameter(const DictionaryDatum &d)
Definition: parameter.h:207
double_t mean_
Definition: parameter.h:330
double_t raw_value(const Position< D xor 1 > &, librandom::RngPtr &) const
Definition: parameter.h:565
NormalParameter(const DictionaryDatum &d)
Parameters: mean - mean value sigma - standard distribution min - minimum value max - maximum value...
Definition: parameter.h:435
virtual ~Parameter()
Virtual destructor.
Definition: parameter.h:76
SumParameter(const SumParameter &p)
Copy constructor.
Definition: parameter.h:681
const Name p_center("p_center")
Definition: topology_names.h:72
double_t raw_value(const Position< 3 > &pos, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:364
double_t raw_value(const Position< 3 > &p, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:694
LinearParameter(const DictionaryDatum &d)
Parameters: a - coefficient of linear function c - constant offset.
Definition: parameter.h:230
double_t raw_value(double_t x) const
Definition: parameter.h:320
ProductParameter(const Parameter &m1, const Parameter &m2)
Construct the product of the two given parameters.
Definition: parameter.h:591
~ConverseParameter()
Definition: parameter.h:767
lockPTRDatum< Parameter,&TopologyModule::ParameterType > ParameterDatum
Definition: parameter.h:157
Random parameter with uniform distribution in [min,max)
Definition: parameter.h:380
double_t value(const Position< 2 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:82
double_t sigma_x_
Definition: parameter.h:373
double_t raw_value(const Position< 2 > &, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:465
double_t value(const Position< 3 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:94
double_t raw_value(const Position< 2 > &, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:528
double_t c_
Definition: parameter.h:248
const Name x("x")
current scaling factor of the synaptic weight [0...1] (Tsodyks2_connection)
Definition: nest_names.h:356
Exception to be thrown if a status parameter is incomplete or inconsistent.
Definition: exceptions.h:420
const Name mean("mean")
Miscellaneous parameters.
Definition: nest_names.h:194
Parameter * parameter1_
Definition: parameter.h:619
Gaussian parameter p(d) = c + p_center*exp(-(d-mean)^2/(2*sigma^2))
Definition: parameter.h:294
ConstantParameter(double_t value)
Definition: parameter.h:165
~ProductParameter()
Definition: parameter.h:604
Parameter class representing the product of two parameters.
Definition: parameter.h:584
const Name min("min")
Definition: topology_names.h:74
double_t sigma_
Definition: parameter.h:542
librandom::NormalRandomDev rdev
Definition: parameter.h:480
double_t raw_value(double_t x) const
Definition: parameter.h:239
Parameter * parameter1_
Definition: parameter.h:742
double double_t
Double precision floating point numbers.
Definition: nest.h:93
double_t raw_value(const Position< 3 > &p, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:735
SumParameter(const Parameter &m1, const Parameter &m2)
Construct the sum of the two given parameters.
Definition: parameter.h:673
virtual double_t raw_value(double_t) const =0
LognormalParameter(const DictionaryDatum &d)
Parameters: mu - mean value of logarithm sigma - standard distribution of logarithm min - minimum val...
Definition: parameter.h:498
double_t raw_value(const Position< 3 > &p, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:612
double_t value_
Definition: parameter.h:192
Parameter * parameter2_
Definition: parameter.h:660
const Name max("max")
Definition: topology_names.h:75
double_t raw_value(const Position< 2 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:651
Random parameter with normal distribution, optionally truncated to [min,max).
Definition: parameter.h:425
const Name sigma("sigma")
Definition: topology_names.h:73
virtual Parameter * add_parameter(const Parameter &other) const
Create the sum of this parameter with another.
Definition: parameter.h:798
Parameter * clone() const
Clone method.
Definition: parameter.h:244
ConverseParameter(const ConverseParameter &p)
Copy constructor.
Definition: parameter.h:763
double_t c_
Definition: parameter.h:373
DifferenceParameter(const Parameter &m1, const Parameter &m2)
Construct the difference of the two given parameters.
Definition: parameter.h:714
QuotientParameter(const Parameter &m1, const Parameter &m2)
Construct the quotient of the two given parameters.
Definition: parameter.h:632
Default types used by the NEST kernel.
double_t c_
Definition: parameter.h:330
Random parameter with lognormal distribution, optionally truncated to [min,max).
Definition: parameter.h:488
double_t raw_value(const Position< 3 > &, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:408
librandom::NormalRandomDev rdev
Definition: parameter.h:543
const Name cutoff("cutoff")
Definition: topology_names.h:93
ConstantParameter(const DictionaryDatum &d)
Parameters: value - constant value of this parameter.
Definition: parameter.h:172
const Name mu("mu")
Definition: topology_names.h:94
ProductParameter(const ProductParameter &p)
Copy constructor.
Definition: parameter.h:599
double_t raw_value(const Position< 3 > &, librandom::RngPtr &) const
Raw value disregarding cutoff.
Definition: parameter.h:185
Parameter * clone() const
Clone method.
Definition: parameter.h:697
virtual double_t raw_value(const Position< 2 > &, librandom::RngPtr &) const
Raw value disregarding cutoff.
Definition: parameter.h:107
T length() const
Length of Position vector.
Definition: position.h:671
double_t raw_value(const Position< 2 > &p, librandom::RngPtr &rng) const
Definition: parameter.h:692
Parameter * clone() const
Clone method.
Definition: parameter.h:538
const Name p("p")
current release probability (Tsodyks2_connection)
Definition: nest_names.h:218
const Name c("c")
Specific to Izhikevich 2003.
Definition: nest_names.h:62
~AnchoredParameter()
Definition: parameter.h:562
~ConstantParameter()
Definition: parameter.h:177
Parameter * clone() const
Clone method.
Definition: parameter.h:656
~QuotientParameter()
Definition: parameter.h:645
Parameter class for a parameter oriented in the opposite direction.
Definition: parameter.h:748
ConverseParameter(const Parameter &p)
Construct the converse of the given parameter.
Definition: parameter.h:755
Parameter class representing a parameter centered at an anchor position.
Definition: parameter.h:551
Parameter * clone() const
Clone method.
Definition: parameter.h:283
Parameter * clone() const
Clone method.
Definition: parameter.h:475
virtual Parameter * multiply_parameter(const Parameter &other) const
Create the product of this parameter with another.
Definition: parameter.h:786
Bivariate Gaussian parameter p(x,y) = c + p_center*exp( -( (x-mean_x)^2/sigma_x^2 + (y-mean_y)^2/sigm...
Definition: parameter.h:340
UniformParameter(const DictionaryDatum &d)
Parameters: min - minimum value max - maximum value.
Definition: parameter.h:388
Parameter(double_t cutoff)
Constructor.
Definition: parameter.h:58
double_t raw_value(const Position< 2 > &pos, librandom::RngPtr &) const
Raw value disregarding cutoff.
Definition: parameter.h:355
double_t cutoff_
Definition: parameter.h:154
double_t raw_value(const Position< D > &p, librandom::RngPtr &rng) const
Definition: parameter.h:568
double_t raw_value(const Position< 3 > &, librandom::RngPtr &rng) const
Raw value disregarding cutoff.
Definition: parameter.h:533
double_t tau_
Definition: parameter.h:287
Parameter * parameter2_
Definition: parameter.h:701
double_t range_
Definition: parameter.h:417