Ejemplo n.º 1
0
void potential_Neuro(double *y, double *x, double *xh, int dy,  int dx, int time, int N, double *theta, double *result)
{
	int i,j,k;
	int npx=pow(dx,2);
	double lambda, fy;
	
	
	for(j=0;j<dy;j++)
	{
		fy=logfactorial((int)y[dy*time+j]);

		for(i=0;i<N;i++)
		{
			if(j==0)
			{
				result[i]=0;
			}
			lambda=theta[dx+j];
			for(k=0;k<dx;k++)
			{
				lambda+=theta[dx+dy+npx+j*dx+k]*x[dx*i+k];
			}
	
			if(lambda>700)
			{
				result[i]+=-exp(700)+y[dy*time+j]*lambda-fy;
			}
			else
			{
				result[i]+=-exp(lambda)+y[dy*time+j]*lambda-fy;
			}
		}
	}

}
Ejemplo n.º 2
0
double LogPoissonProb(double mean, unsigned n)
{
   return -1*mean + n*log(mean) - logfactorial(n);
}
Ejemplo n.º 3
0
double logchoose(int n, int k)
{
    return logfactorial(n)-logfactorial(k)-logfactorial(n-k);
}