コード例 #1
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
void put_entier_tst()
{
  int i, j ;
  struct bitstream *bs ;

  bs = open_bitstream("xxx", "w") ;
  for(i=0; i<TAILLE(t); i++)
    put_entier(bs, t[i].entier) ;
  close_bitstream(bs) ;

  bs = open_bitstream("xxx", "r") ;
  for(i=0; i<TAILLE(t); i++)
    {
      for(j=0; t[i].chaine[j]; j++)
	if ( get_bit(bs) != t[i].chaine[j] - '0' )
	  {
	    eprintf("Ecriture de l'entier %d (%s en binaire)\n",
			t[i].entier, t[i].chaine) ;
	    eprintf("Mauvaise écriture du bit numero %d (a partir de 0)\n",
			j) ;
	    return ;
	  }
    }
  close_bitstream(bs) ;
}
コード例 #2
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
void put_entier_signe_tst()
{
  int i ;
  struct bitstream *bs ;

  bs = open_bitstream("xxx", "w") ;
  for(i=0; i<TAILLE(t); i++)
    {
      put_entier_signe(bs, t[i].entier) ;
      put_entier_signe(bs, -t[i].entier) ;
    }
  close_bitstream(bs) ;

  bs = open_bitstream("xxx", "r") ;
  for(i=0; i<TAILLE(t); i++)
    {
      if ( get_bit(bs) )
	{
	  eprintf("Mauvais bit de signe en écriture (positif) pour %d\n", i) ;
	  return ;
	}
      if ( get_entier(bs) != t[i].entier)
	{
	  eprintf("Mauvaise écriture de l'entier %d\n", i) ;
	  return ;
	}
      if ( i != 0 )
	{
	  if ( !get_bit(bs) )
	    {
	      eprintf("Mauvais bit de signe en écriture (negatif) %d\n", i) ;
	      return ;
	    }
	  if ( get_entier(bs) != t[i].entier-1 )
	    {
	      eprintf("Mauvaise écriture de l'entier %d\n", -i) ;
	      return ;
	    }
	}
      else
	{
	  if ( get_bit(bs) )
	    {
	      eprintf("Mauvais bit de signe pour 0\n") ;
	      return ;
	    }
	  if ( get_entier(bs) != 0 )
	    {
	      eprintf("Mauvaise valeur pour 0\n") ;
	      return ;
	    }
	}
    }
  close_bitstream(bs) ;
}
コード例 #3
0
ファイル: ocl.c プロジェクト: synrg-labs/bfgminer
FILE *opencl_open_kernel(const char * const filename)
{
	char *fullpath = alloca(PATH_MAX);
	FILE *f;

	/* Try in the optional kernel path or installed prefix first */
	f = open_bitstream("opencl", filename);
	if (!f) {
		/* Then try from the path BFGMiner was called */
		strcpy(fullpath, cgminer_path);
		strcat(fullpath, filename);
		f = fopen(fullpath, "rb");
	}
	/* Finally try opening it directly */
	if (!f)
		f = fopen(filename, "rb");
	
	return f;
}
コード例 #4
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
void get_entier_tst()
{
  int i, j ;
  struct bitstream *bs ;

  put_entier_tst() ;

  bs = open_bitstream("xxx", "r") ;
  for(i=0; i<TAILLE(t); i++)
    {
    j = get_entier(bs) ;
    if ( j != t[i].entier )
	  {
	    eprintf("Lecture de l'entier %d (%s en binaire)\n",
			t[i].entier, t[i].chaine) ;
	    eprintf("Je recois %d\n", j) ;
	    return ;
	  }
    }
  close_bitstream(bs) ;
}
コード例 #5
0
ファイル: entier_tst.c プロジェクト: Apolerag/TP_DCT
void get_entier_signe_tst()
{
  int i ;
  struct bitstream *bs ;

  put_entier_signe_tst() ;

  bs = open_bitstream("xxx", "r") ;
  for(i=0; i<TAILLE(t); i++)
    {
      if ( get_entier_signe(bs) != t[i].entier )
	{
	  eprintf("Mauvaise lecture de l'entier signe %d\n", i) ;
	  return ;
	}
      if ( get_entier_signe(bs) != -t[i].entier )
	{
	  eprintf("Mauvaise lecture de l'entier signe %d\n", -i) ;
	  return ;
	}
    }
  close_bitstream(bs) ;
}