Esempio n. 1
0
SkeletonState::SkeletonState()
{
    if(g_mpiRank == 0)
    {
        // create display group interface
        boost::shared_ptr<DisplayGroupJoystick> dgj(new DisplayGroupJoystick(g_displayGroupManager));
        displayGroup_ = dgj;

        // default mode is focused interaction
        focusInteraction_ = true;

        // not in control
        control_ = false;

        // hands inactive
        leftHandActive_ = rightHandActive_ = false;

        // don't have an active window
        activeWindow_ = false;

        // start timers
        modeChangeTimeOut_.start();
    }
}
Esempio n. 2
0
main(){
  int np,n,i;
  double *z,*w,*p,sum=0,alpha,beta;
  double **d,**dt;

  z  = dvector(0,NPUPPER-1);
  w  = dvector(0,NPUPPER-1);
  p  = dvector(0,NPUPPER-1);
  
  d  = dmatrix(0,NPUPPER-1,0,NPUPPER-1);
  dt = dmatrix(0,NPUPPER-1,0,NPUPPER-1);

#if GAUSS_INT
  /* Gauss Integration */
  printf("Begin checking Gauss integration\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwgj(z,w,np,alpha,beta);
	fprintf(stdout,"%lf \n",sum);
	for(n = 2; n < 2*np-1; ++n){
	  jacobf(np,z,p,n,alpha,beta);
	  sum = ddot(np,w,1,p,1);
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d integal was %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
      }
  printf("Finished checking Gauss Integration\n");
#endif

#if GAUSS_RADAU_INT
  /* Gauss Radau Integration */
  printf("Begin checking Gauss Radau Integration\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){
      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwgrj(z,w,np,alpha,beta);
	for(n = 2; n < 2*np-2; ++n){
	  jacobf(np,z,p,n,alpha,beta);
	  sum = ddot(np,w,1,p,1);
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d integal was %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Radau Integration\n");
#endif

#if GAUSS_LOBATTO_INT
  /* Gauss Lobatto Integration */
  printf("Begin checking Gauss Lobatto integration\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwglj(z,w,np,alpha,beta);
	for(n = 2; n < 2*np-3; ++n){
	  jacobf(np,z,p,n,alpha,beta);
	  sum = ddot(np,w,1,p,1);
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d integal was %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
        
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Lobatto Integration\n");
#endif

#if GAUSS_DIFF
  printf("Begin checking differentiation through Gauss points\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwgj(z,w,np,alpha,beta);
	for(n = 2; n < np-1; ++n){
	  dgj(d,dt,z,np,alpha,beta);
	  for(i = 0; i < np; ++i) p[i] = pow(z[i],n);
	  sum = 0;
	  for(i = 0; i < np; ++i) 
	    sum += fabs(ddot(np,d[i],1,p,1) - n*pow(z[i],n-1));
	  sum /= np;
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d difference %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Jacobi differentiation\n");
#endif

#if GAUSS_RADAU_DIFF
  printf("Begin checking differentiation through Gauss Radau points\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){


      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwgrj(z,w,np,alpha,beta);
	for(n = 2; n < np-1; ++n){
	  dgrj(d,dt,z,np,alpha,beta);
	  for(i = 0; i < np; ++i) p[i] = pow(z[i],n);
	  sum = 0;
	  for(i = 0; i < np; ++i) 
	    sum += fabs(ddot(np,d[i],1,p,1) - n*pow(z[i],n-1));
	  sum /= np;
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d difference %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Radau differentiation\n");
#endif

#if GAUSS_LOBATTO_DIFF
  printf("Begin checking differentiation through Gauss Lobatto points\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwglj(z,w,np,alpha,beta);
	for(n = 2; n < np-1; ++n){
	  dglj(d,dt,z,np,alpha,beta);
	  for(i = 0; i < np; ++i) p[i] = pow(z[i],n);
	  sum = 0;
	  for(i = 0; i < np; ++i) 
	    sum += fabs(ddot(np,d[i],1,p,1) - n*pow(z[i],n-1));
	  sum /= np;
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d difference %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Lobatto differentiation\n");
#endif

  /* check interpolation routines */
#if GAUSS_INTERP
  printf("Begin checking Interpolation through Gauss points\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwgj(z,w,np,alpha,beta);
	for(n = 2; n < np-1; ++n){
	  for(i = 0; i < np; ++i) {
	    w[i] = 2.0*i/(double)(np-1)-1.0;
	    p[i] = pow(z[i],n);
	  }
	  igjm(d,z,w,np,np,alpha,beta);
	  sum = 0;
	  for(i = 0; i < np; ++i) 
	    sum += fabs(ddot(np,d[i],1,p,1) - pow(w[i],n));
	  sum /= np;
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d difference %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Jacobi differentiation\n");
#endif

#if GAUSS_RADAU_INTERP
  printf("Begin checking Interpolation through Gauss Radau points\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwgrj(z,w,np,alpha,beta);
	for(n = 2; n < np-1; ++n){
	  for(i = 0; i < np; ++i) {
	    w[i] = 2.0*i/(double)(np-1)-1.0;
	    p[i] = pow(z[i],n);
	  }
	  igrjm(d,z,w,np,np,alpha,beta);
	  sum = 0;
	  for(i = 0; i < np; ++i) 
	    sum += fabs(ddot(np,d[i],1,p,1) - pow(w[i],n));
	  sum /= np;
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d difference %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Jacobi differentiation\n");
#endif

#if GAUSS_LOBATTO_INTERP
  printf("Begin checking Interpolation through Gauss Lobatto points\n");
  alpha = -0.5;
  while(alpha <= 5.0){
    beta = -0.5;
    while(beta <= 5.0){

      for(np = NPLOWER; np <= NPUPPER; ++np){
	zwglj(z,w,np,alpha,beta);
	for(n = 2; n < np-1; ++n){
	  for(i = 0; i < np; ++i) {
	    w[i] = 2.0*i/(double)(np-1)-1.0;
	    p[i] = pow(z[i],n);
	  }
	  igljm(d,z,w,np,np,alpha,beta);
	  sum = 0;
	  for(i = 0; i < np; ++i) 
	    sum += fabs(ddot(np,d[i],1,p,1) - pow(w[i],n));
	  sum /= np;
	  if(fabs(sum)>EPS)
	    printf("alpha = %lf, beta = %lf, np = %d, n = %d difference %lg\n"
		   ,alpha,beta,np,n,sum);
	}
      }
      beta += 0.5;
    }
    printf("finished checking all beta values for alpha = %lf\n",alpha);
    alpha += 0.5;
  }
  printf("Finished checking Gauss Lobatto differentiation\n");
#endif


  free(z); free(w); free(p);
  free_dmatrix(d,0,0); free_dmatrix(dt,0,0);
}