AnalogInputNeuron.cpp

Go to the documentation of this file.
00001 
00002 #include "AnalogInputNeuron.h"
00003 
00004 #include <iostream>
00005 using std::cerr;
00006 using std::endl;
00007 
00008 AnalogInputNeuron::AnalogInputNeuron()
00009 {
00010     current = 0;
00011 }
00012 
00013 AnalogInputNeuron::AnalogInputNeuron(const vector<double> &values)
00014 {
00015   current = 0;
00016   this->values = values;
00017 }
00018 
00019 AnalogInputNeuron::~AnalogInputNeuron()
00020 {
00021 }
00022 
00023 void AnalogInputNeuron::setAnalogValues(const vector<double> &values)
00024 {
00025     this->values = values;
00026 }
00027 
00028 void AnalogInputNeuron::addAnalogValue(double v)
00029 {
00030     values.push_back(v);
00031 }
00032 
00033 const vector<double> & AnalogInputNeuron::getAnalogValues() const
00034 {
00035     return values;
00036 }
00037 
00038 double AnalogInputNeuron::getAnalogOutput(analog_port_id_t port) const
00039 {
00040     if (current < port) return 0;
00041     //cerr << "Inputer " << this << " : get analog output port = " << port << " v=" << values[current-port] << endl;
00042     return values[current-port];
00043 }
00044 
00045 
00046 int AnalogInputNeuron::advance(AdvanceInfo const &)
00047 {
00048         //cerr << " analog input neuron " << this << " advance " << endl;
00049     if ((unsigned)current >= values.size() - 1 )
00050         return 0;
00051 
00052     current++;
00053 
00054     Vm = values[current];
00055     return 0;
00056 }
00057 
00058 int AnalogInputNeuron::reset( double dt )
00059 {
00060     current = 0;
00061     Vm = values[0];
00062     return 0;
00063 }
00064 
00065 /* int AnalogInputNeuron::getFieldOffset(string fieldname)
00066 {
00067     if (fieldname == "Vm")
00068         return reinterpret_cast<char *>(&this->Vm) - reinterpret_cast<char *>(this);
00069     else {
00070         throw( PCSIM::ConstructionException("AnalogInputNeuron::getFieldOffset", "No field named \'" + fieldname + "\' in class " ) );
00071     }
00072 } */
00073 
00074 void AnalogInputNeuron::printAnalogValues() const
00075 {
00076         for (unsigned i = 0 ; i < values.size() ; ++i) {
00077         cerr << values[i] << " ";
00078     }
00079     cerr << endl;
00080 
00081 }
00082 

Generated on Wed Jul 9 16:34:38 2008 for PCSIM by  doxygen 1.5.5