#include "Connectivity.h"
Connectivity::Connectivity(){bol2D=0;bol1D=0;}
Connectivity::Connectivity(int a,int b,double p)
{
bol2D=1;
Nrow=a;
Ncolumn=b;
P=p; //probability of connectivity
Twodarray=new double*[Nrow];
for(int i=0;i<Nrow;i++)
Twodarray[i]=new double[Ncolumn];
for (int i=0;i<Nrow;i++)
for (int j=0;j<Ncolumn;j++)
Twodarray[i][j]=0;
seed=time(NULL);
}
Connectivity::Connectivity(int a,double p)
{
int32 seed1;
int gen;
bol1D=1;
TRandomMersenne rg1 (seed1);
gen=rg1.IRandom(0,99);
P=p;
srow=a;
Onedarray=new double[a];
for (int i=0;i<srow;i++)
Onedarray[i]=0;
seed=time(NULL)+gen;
}
Connectivity::~Connectivity()
{
//cout<<"Entered the destructor file"<<endl;
if (bol2D==1)
{
for (int i=0;i<Nrow;i++)
delete Twodarray[i];
delete[]Twodarray;
}
//if (bol1D==1)delete Onedarray;
}
void Connectivity::setRandomOned()
{
double gen;
TRandomMersenne rg (seed);
for(int i=0;i<srow;i++)
{
gen=rg.Random();
if(gen>P)
Onedarray[i]=1;
else
Onedarray[i]=0;
}
}
void Connectivity::setRandomTwod()
{
double gen;
int32 seed1=time(NULL);
TRandomMersenne rg (seed1);
for(int i=0;i<Nrow;i++)
for(int j=0;j<Ncolumn;j++)
{
gen=rg.Random();
if(gen>P)
{
Twodarray[i][j]=1;
}
else
Twodarray[i][j]=0;
}
}
void Connectivity::setRandomTwodSym() //Symmetric connectivity matrix for gap junction coupling
{
double gen;
int32 seed1=time(NULL);
TRandomMersenne rg (seed1);
for(int i=0;i<Nrow;i++)
{
for(int j=0;j<Ncolumn;j++)
{
gen=rg.Random();
if(gen>P)
{
Twodarray[i][j]=1;
Twodarray[j][i]=1;
}
}
}
for (int i=0;i<Nrow;i++)
for (int j=0;j<Ncolumn;j++)
{
if (i==j)
Twodarray[i][j]=0;
}
}
void Connectivity::setStaticOned(vector<int>&A)
{
if (A.size()!=(unsigned int)srow)
{
cout<<"Error in one d array setStatic OneD"<<endl;
exit(1);
}
for (int i=0;i<srow;i++)
if (A[i]==1)
Onedarray[i]=1;
else
Onedarray[i]=0;
}
void Connectivity::setStaticTwod(double **A)
{
for (int i=0;i<Nrow;i++)
for (int j=0;j<Ncolumn;j++)
{
Twodarray[i][j]=A[i][j];
/* if (A[i][j]==1)
Twodarray[i][j]=1;
else
Twodarray[i][j]=0;
*/
}
}
void Connectivity::Print()
{
for (int i=0;i<Nrow;i++)
{
for (int j=0;j<Ncolumn;j++)
cout<<Twodarray[i][j]<<" ";
cout<<endl;
}
}