Exemplo n.º 1
0
test_camac16()
{
   int ext;
   short buff[SIZE];
   int cb[4] = {SIZE,0,0,0};
   int i;
   
   /* QSTP transfers */
   cdreg(&ext, BRANCH, CRATE, SLOT, SUBADDRESS);
   for (i=0; i<MAX_LOOPS; i++) {
      csubc(FUNCTION, ext, buff, cb);
      if (cb[0] != cb[1]) {
         printf("Error - loop=%d, desired transfer size=%d, actual=%d\n",
            i,cb[0],cb[1]);
      }
   }
}
Exemplo n.º 2
0
void psychfft(int n,int mode,float t,int nexp,Complex *w,Complex *x)
{
	Complex c1,c2;
	int k,mm,ll,j,jj,kk,i,nn,nv2,nm1;
	float s;
	mm=1;
	ll=n;
	for(k=1;k<=nexp;k++)
	{
		nn=ll/2;
		jj=mm+1;
		for(i=1;i<=n;i=i+ll)
		{
			kk=i+nn;
			c1=caddc(x[i],x[kk]);
			x[kk]=csubc(x[i],x[kk]);
			x[i]=c1;
		}
		if(nn==1)
			continue;
		else
		{
			for(j=2;j<=nn;j++)
			{
				c2=w[jj];
				for(i=j;i<=n;i=i+ll)
				{
					kk=i+nn;
					c1=caddc(x[i],x[kk]);
					x[kk]=cmulc(csubc(x[i],x[kk]),c2);
					x[i]=c1;
				}
				jj=jj+mm;
			}
			ll=nn;
			mm=mm*2;
		}
	}
	nv2=n/2;
	nm1=n-1;
	j=1;
	for(i=1;i<nm1;i++)
	{
		if(i>=j);
		else
		{
			c1=x[j];
			x[j]=x[i];
			x[i]=c1;
		}
		k=nv2;
		do
		{
			if(k>=j)
				break;
			else
			{
				j=j-k;
				k=k/2;
			}
		}while(1);
		j=j+k;
	}
	if(mode==0)
		s=t;
	else
		s=1./(t*(float)n);
	for(i=1;i<=n;i++)
		x[i]=cmulf(x[i],s);
}