Miind
LifNeuralDynamics.hpp
Go to the documentation of this file.
1 // Copyright (c) 2005 - 2014 Marc de Kamps
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 //
6 // * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 // * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation
8 // and/or other materials provided with the distribution.
9 // * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software
10 // without specific prior written permission.
11 //
12 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
13 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
14 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
15 // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
16 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
17 //
18 // If you use this software in work leading to a scientific publication, you should include a reference there to
19 // the 'currently valid reference', which can be found at http://miind.sourceforge.net
21 
22 #ifndef _CODE_LIBS_GEOMLIB_LIFNEURALDYNAMICS
23 #define _CODE_LIBS_GEOMLIB_LIFNEURALDYNAMICS
24 
25 namespace GeomLib {
26 
28 
32 
33 
35  public:
36 
40  (
41  const OdeParameter&,
42  double lambda
43  );
44 
46  virtual ~LifNeuralDynamics();
47 
49  virtual Potential
51  (
54  ) const;
55 
57  virtual MPILib::Time TStep() const;
58 
61  virtual MPILib::Time TPeriod() const { return _t_period; }
62 
64  virtual LifNeuralDynamics* Clone() const;
65 
69  virtual std::vector<Potential> InterpretationArray() const;
70 
72  Number NumberOfBins() const {return _N_pos + _N_neg;}
73 
75  Number Npos() const { return _N_pos; }
76 
78  Number Nneg() const { return _N_neg; }
79 
80  private:
81 
82  Number Nposinit() const;
83  Number Nneginit() const;
84  MPILib::Time TimePeriod() const;
85 
86  double _lambda;
87 
92  };
93 
94 }
95 
96 
97 
98 
99 #endif /* LIFNEURALDYNAMICS_H_ */
virtual ~LifNeuralDynamics()
Destructor; required to be virtual.
double Potential
virtual MPILib::Time TStep() const
Fundamental time step by which mass is shifted through the geometric bins.
Number Nneg() const
Number of bins below the reversal bin.
Contains the parameters necessary to configure a concrete OdeSystem instance. See AbstractOdeSystem a...
unsigned int Number
double Time
The configuration of a GeomAlgorithm requires that the neural dynamics is defined somewhere...
Number Npos() const
Number of bins above the reversal bin.
MPILib::Time TimePeriod() const
Leaky-integrate-and-fire dynamics for LeakingOdeSystem.
LifNeuralDynamics(const OdeParameter &, double lambda)
The lambda parameter is creating the artificial period necessary for implementing a 'period' in leaky...
Number NumberOfBins() const
Number of bins in the grid.
virtual MPILib::Time TPeriod() const
Time it takes for probability mass to go full cycle. For LIF dynamics this is close to the time it ta...
virtual std::vector< Potential > InterpretationArray() const
Produce an array that contains the bin limits. The are contains the lower bin limits the highest bin ...
virtual LifNeuralDynamics * Clone() const
Virtual constructor mechanism.
virtual Potential EvolvePotential(MPILib::Potential, MPILib::Time) const
Evolution according to leaky-integrate-and-fire dynamics.