/*-------------------------------------------------------------------------- Author: Thomas Nowotny Institute: Institute for Nonlinear Dynamics University of California San Diego La Jolla, CA 92093-0402 email to: tnowotny@ucsd.edu initial version: 2005-08-17 --------------------------------------------------------------------------*/ #ifndef CN_DATA_CC #define CN_DATA_CC #include "CN_neuron.cc" Data::Data(int inlabel, char *name, double *the_p= Data_p): neuron(inlabel, Data_IVARNO, DATA, the_p, Data_PNO) { double data; ifstream *is= new ifstream(name); cerr << name << endl; assert(is->good()); cnt= 0; while (!is->eof()) { *is >> data; cnt++; } dA= new double[cnt]; delete is; is= new ifstream(name); for (int i= 0; i < cnt; i++) { *is >> dA[i]; } } Data::~Data() { delete[] dA; } inline double Data::E(double *x) { static int pos; pos= (int) ((x[0]-p[0])/p[1]); if (pos < cnt) return dA[pos]; else return 0.0; } #endif