亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bitset_stats.c

?? bison 2.0 主要可以用來做語法分析用的
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Bitset statistics.   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.   Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*//* This file is a wrapper bitset implementation for the other bitset   implementations.  It provides bitset compatibility checking and   statistics gathering without having to instrument the bitset   implementations.  When statistics gathering is enabled, the bitset   operations get vectored through here and we then call the appropriate   routines.*/#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "bbitset.h"#include "abitset.h"#include "ebitset.h"#include "lbitset.h"#include "vbitset.h"#include "bitset_stats.h"#include <stdlib.h>#include <string.h>#include <stdio.h>#include "gettext.h"#define _(Msgid)  gettext (Msgid)/* Configuration macros.  */#define BITSET_STATS_FILE "bitset.dat"#define BITSET_LOG_COUNT_BINS 10#define BITSET_LOG_SIZE_BINS  16#define BITSET_DENSITY_BINS  20/* Accessor macros.  */#define BITSET_STATS_ALLOCS_INC(TYPE)	 		\    bitset_stats_info->types[(TYPE)].allocs++#define BITSET_STATS_FREES_INC(BSET) 			\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].frees++#define BITSET_STATS_SETS_INC(BSET) 			\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].sets++#define BITSET_STATS_CACHE_SETS_INC(BSET) 		\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].cache_sets++#define BITSET_STATS_RESETS_INC(BSET) 			\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].resets++#define BITSET_STATS_CACHE_RESETS_INC(BSET) 		\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].cache_resets++#define BITSET_STATS_TESTS_INC(BSET) 			\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].tests++#define BITSET_STATS_CACHE_TESTS_INC(BSET) 		\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].cache_tests++#define BITSET_STATS_LISTS_INC(BSET) 			\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].lists++#define BITSET_STATS_LIST_COUNTS_INC(BSET, I) 		\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].list_counts[(I)]++#define BITSET_STATS_LIST_SIZES_INC(BSET, I) 		\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].list_sizes[(I)]++#define BITSET_STATS_LIST_DENSITY_INC(BSET, I) 		\    bitset_stats_info->types[BITSET_TYPE_ (BSET)].list_density[(I)]++struct bitset_type_info_struct{  unsigned int allocs;  unsigned int frees;  unsigned int lists;  unsigned int sets;  unsigned int cache_sets;  unsigned int resets;  unsigned int cache_resets;  unsigned int tests;  unsigned int cache_tests;  unsigned int list_counts[BITSET_LOG_COUNT_BINS];  unsigned int list_sizes[BITSET_LOG_SIZE_BINS];  unsigned int list_density[BITSET_DENSITY_BINS];};struct bitset_stats_info_struct{  unsigned int runs;  struct bitset_type_info_struct types[BITSET_TYPE_NUM];};struct bitset_stats_info_struct bitset_stats_info_data;struct bitset_stats_info_struct *bitset_stats_info;bool bitset_stats_enabled = false;/* Print a percentage histogram with message MSG to FILE.  */static voidbitset_percent_histogram_print (FILE *file, const char *name, const char *msg,				unsigned int n_bins, unsigned int *bins){  unsigned int i;  unsigned int total;  total = 0;  for (i = 0; i < n_bins; i++)    total += bins[i];  if (!total)    return;  fprintf (file, "%s %s", name, msg);  for (i = 0; i < n_bins; i++)    fprintf (file, "%.0f-%.0f%%\t%8u (%5.1f%%)\n",	     i * 100.0 / n_bins,	     (i + 1) * 100.0 / n_bins, bins[i],	     (100.0 * bins[i]) / total);}/* Print a log histogram with message MSG to FILE.  */static voidbitset_log_histogram_print (FILE *file, const char *name, const char *msg,			    unsigned int n_bins, unsigned int *bins){  unsigned int i;  unsigned int total;  unsigned int max_width;  total = 0;  for (i = 0; i < n_bins; i++)    total += bins[i];  if (!total)    return;  /* Determine number of useful bins.  */  for (i = n_bins; i > 3 && ! bins[i - 1]; i--)     continue;  n_bins = i;  /* 2 * ceil (log10 (2) * (N - 1)) + 1.  */  max_width = 2 * (unsigned int) (0.30103 * (n_bins - 1) + 0.9999) + 1;  fprintf (file, "%s %s", name, msg);  for (i = 0; i < 2; i++)    fprintf (file, "%*d\t%8u (%5.1f%%)\n",	     max_width, i, bins[i], 100.0 * bins[i] / total);  for (; i < n_bins; i++)    fprintf (file, "%*lu-%lu\t%8u (%5.1f%%)\n",	     max_width - ((unsigned int) (0.30103 * (i) + 0.9999) + 1),	     1UL << (i - 1),	     (1UL << i) - 1,	     bins[i],	     (100.0 * bins[i]) / total);}/* Print bitset statistics to FILE.  */static voidbitset_stats_print_1 (FILE *file, const char *name,		      struct bitset_type_info_struct *stats){  if (!stats)    return;  fprintf (file, "%s:\n", name);  fprintf (file, _("%u bitset_allocs, %u freed (%.2f%%).\n"),	   stats->allocs, stats->frees,	   stats->allocs ? 100.0 * stats->frees / stats->allocs : 0);  fprintf (file, _("%u bitset_sets, %u cached (%.2f%%)\n"),	   stats->sets, stats->cache_sets,	   stats->sets ? 100.0 * stats->cache_sets / stats->sets : 0);  fprintf (file, _("%u bitset_resets, %u cached (%.2f%%)\n"),	   stats->resets, stats->cache_resets,	   stats->resets ? 100.0 * stats->cache_resets / stats->resets : 0);  fprintf (file, _("%u bitset_tests, %u cached (%.2f%%)\n"),	   stats->tests, stats->cache_tests,	   stats->tests ? 100.0 * stats->cache_tests / stats->tests : 0);  fprintf (file, _("%u bitset_lists\n"), stats->lists);  bitset_log_histogram_print (file, name, _("count log histogram\n"),			      BITSET_LOG_COUNT_BINS, stats->list_counts);  bitset_log_histogram_print (file, name, _("size log histogram\n"),			      BITSET_LOG_SIZE_BINS, stats->list_sizes);  bitset_percent_histogram_print (file, name, _("density histogram\n"),				  BITSET_DENSITY_BINS, stats->list_density);}/* Print all bitset statistics to FILE.  */static voidbitset_stats_print (FILE *file, bool verbose ATTRIBUTE_UNUSED){  int i;  if (!bitset_stats_info)    return;  fprintf (file, _("Bitset statistics:\n\n"));  if (bitset_stats_info->runs > 1)    fprintf (file, _("Accumulated runs = %u\n"), bitset_stats_info->runs);  for (i = 0; i < BITSET_TYPE_NUM; i++)    bitset_stats_print_1 (file, bitset_type_names[i],			  &bitset_stats_info->types[i]);}/* Initialise bitset statistics logging.  */voidbitset_stats_enable (void){  if (!bitset_stats_info)    bitset_stats_info = &bitset_stats_info_data;  bitset_stats_enabled = true;}voidbitset_stats_disable (void){  bitset_stats_enabled = false;}/* Read bitset statistics file.  */voidbitset_stats_read (const char *filename){  FILE *file;  if (!bitset_stats_info)    return;  if (!filename)    filename = BITSET_STATS_FILE;  file = fopen (filename, "r");  if (file)    {      if (fread (&bitset_stats_info_data, sizeof (bitset_stats_info_data),		 1, file) != 1)	{	  if (ferror (file))	    perror (_("Could not read stats file."));	  else	    fprintf (stderr, _("Bad stats file size.\n"));	}      if (fclose (file) != 0)	perror (_("Could not read stats file."));    }  bitset_stats_info_data.runs++;}/* Write bitset statistics file.  */voidbitset_stats_write (const char *filename){  FILE *file;  if (!bitset_stats_info)    return;  if (!filename)    filename = BITSET_STATS_FILE;  file = fopen (filename, "w");  if (file)    {      if (fwrite (&bitset_stats_info_data, sizeof (bitset_stats_info_data),		  1, file) != 1)	perror (_("Could not write stats file."));      if (fclose (file) != 0)	perror (_("Could not write stats file."));    }  else    perror (_("Could not open stats file for writing."));}/* Dump bitset statistics to FILE.  */voidbitset_stats_dump (FILE *file){  bitset_stats_print (file, false);}/* Function to be called from debugger to print bitset stats.  */voiddebug_bitset_stats (void){  bitset_stats_print (stderr, true);}static voidbitset_stats_set (bitset dst, bitset_bindex bitno){  bitset bset = dst->s.bset;  bitset_windex wordno = bitno / BITSET_WORD_BITS;  bitset_windex offset = wordno - bset->b.cindex;  BITSET_STATS_SETS_INC (bset);  if (offset < bset->b.csize)    {      bset->b.cdata[offset] |= (bitset_word) 1 << (bitno % BITSET_WORD_BITS);      BITSET_STATS_CACHE_SETS_INC (bset);    }  else    BITSET_SET_ (bset, bitno);}static voidbitset_stats_reset (bitset dst, bitset_bindex bitno){  bitset bset = dst->s.bset;  bitset_windex wordno = bitno / BITSET_WORD_BITS;  bitset_windex offset = wordno - bset->b.cindex;  BITSET_STATS_RESETS_INC (bset);  if (offset < bset->b.csize)    {      bset->b.cdata[offset] &=	~((bitset_word) 1 << (bitno % BITSET_WORD_BITS));      BITSET_STATS_CACHE_RESETS_INC (bset);    }  else    BITSET_RESET_ (bset, bitno);}static boolbitset_stats_toggle (bitset src, bitset_bindex bitno){    return BITSET_TOGGLE_ (src->s.bset, bitno);}static boolbitset_stats_test (bitset src, bitset_bindex bitno){  bitset bset = src->s.bset;  bitset_windex wordno = bitno / BITSET_WORD_BITS;  bitset_windex offset = wordno - bset->b.cindex;  BITSET_STATS_TESTS_INC (bset);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产导航| 亚洲精品中文在线观看| 亚洲丝袜美腿综合| 日本成人超碰在线观看| 成人丝袜视频网| 日韩限制级电影在线观看| 亚洲欧洲国产专区| 国产福利一区二区三区视频 | 6080yy午夜一二三区久久| 欧美激情综合五月色丁香 | 亚洲午夜av在线| 成人av在线一区二区三区| 日韩欧美一级片| 午夜国产精品影院在线观看| 成人国产免费视频| 久久精品视频在线免费观看| 蜜桃av噜噜一区| 这里只有精品电影| 天天综合天天做天天综合| 在线视频国内一区二区| 亚洲美女在线国产| 99综合电影在线视频| 亚洲国产精品99久久久久久久久 | 天堂午夜影视日韩欧美一区二区| 成年人国产精品| 中文字幕一区二区日韩精品绯色| 国产精品一区二区男女羞羞无遮挡| 欧美一区二区三区在线观看| 日韩黄色免费电影| 538在线一区二区精品国产| 亚洲成人第一页| 欧美精品自拍偷拍| 首页综合国产亚洲丝袜| 欧美一区二区三区啪啪| 日韩av中文字幕一区二区三区| 欧美丰满美乳xxx高潮www| 亚洲成人免费在线观看| 欧美二区三区的天堂| 日韩av中文在线观看| 欧美电视剧免费观看| 美女视频一区在线观看| 久久人人爽人人爽| 国产精品1区2区3区| 中文字幕不卡一区| 91看片淫黄大片一级在线观看| 亚洲免费观看高清在线观看| 欧美曰成人黄网| 日韩av不卡在线观看| 精品久久久久久久久久久久久久久 | 日韩三级电影网址| 激情av综合网| 国产欧美日韩三区| 色婷婷亚洲精品| 亚洲国产精品久久久男人的天堂| 在线精品视频小说1| 天堂精品中文字幕在线| 久久青草欧美一区二区三区| 白白色 亚洲乱淫| 亚洲制服丝袜av| 日韩一区二区麻豆国产| 成人精品鲁一区一区二区| 亚洲精品欧美专区| 欧美成人午夜电影| 色综合中文字幕国产 | 国产精品99久久久| 亚洲欧美日韩国产中文在线| 欧美电影一区二区| 国产a级毛片一区| 一二三区精品福利视频| 精品91自产拍在线观看一区| 91在线视频免费91| 麻豆91免费观看| 一区二区三区四区精品在线视频| 日韩欧美视频一区| 成人福利在线看| 亚洲va中文字幕| 国产精品私房写真福利视频| 这里只有精品免费| 91日韩精品一区| 国产真实乱偷精品视频免| 亚洲资源在线观看| 亚洲国产高清不卡| 日韩视频一区二区| 色婷婷综合久久久| 粗大黑人巨茎大战欧美成人| 香蕉影视欧美成人| 亚洲人成亚洲人成在线观看图片 | 成+人+亚洲+综合天堂| 三级成人在线视频| 亚洲色图制服丝袜| 国产色产综合产在线视频| 日韩写真欧美这视频| 欧美色男人天堂| 97精品久久久久中文字幕 | 欧美在线不卡一区| 91丨porny丨中文| 国产精品一区二区久久不卡| 日韩二区三区在线观看| 一区二区免费看| 国产精品不卡在线| 国产无人区一区二区三区| 欧美成人艳星乳罩| 日韩三级在线观看| 欧美一区二区三区人| 911精品国产一区二区在线| 色综合久久精品| av中文一区二区三区| 成人午夜av电影| 成人国产在线观看| 不卡的av在线播放| 成人动漫中文字幕| 成人精品高清在线| jlzzjlzz国产精品久久| va亚洲va日韩不卡在线观看| 成人免费毛片app| 成人美女在线视频| av一本久道久久综合久久鬼色| 国产老肥熟一区二区三区| 激情综合一区二区三区| 经典三级视频一区| 国产乱码精品一品二品| 国产一区二区调教| 国产精品资源网站| 国产激情精品久久久第一区二区 | 国产精品一区专区| 成人性生交大片免费看视频在线 | 国产日韩欧美在线一区| 欧美国产一区视频在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲国产精品高清| 中文字幕日韩一区| 亚洲二区在线观看| 久久精品国产免费看久久精品| 久久99热狠狠色一区二区| 国产成人aaa| 在线免费观看一区| 欧美一区二区三区爱爱| 国产亚洲成aⅴ人片在线观看| 欧美国产丝袜视频| 亚洲一区二区三区四区的| 日韩电影在线观看网站| 国产成人精品一区二区三区四区| gogo大胆日本视频一区| 欧美美女黄视频| 久久久久久久久一| 亚洲欧美国产三级| 男女男精品视频| av综合在线播放| 日韩一二三区视频| 中文字幕一区二区三| 日本特黄久久久高潮| 不卡视频在线看| 欧美一级日韩不卡播放免费| 国产欧美日韩在线| 日韩av午夜在线观看| 成人毛片在线观看| 欧美日本精品一区二区三区| 国产日韩欧美在线一区| 视频一区视频二区中文字幕| 成人精品免费视频| 日韩欧美一区二区不卡| 亚洲伦在线观看| 狠狠色综合播放一区二区| 91在线视频播放地址| 欧美成人一区二区三区在线观看| 亚洲欧美日韩精品久久久久| 国产一区二区三区国产| 5月丁香婷婷综合| 一级中文字幕一区二区| youjizz久久| 久久久亚洲综合| 免费精品视频最新在线| 欧美中文字幕不卡| 亚洲色图欧美在线| 国产成人综合在线播放| 日韩三级视频中文字幕| 亚洲777理论| 欧美无砖专区一中文字| 亚洲欧洲日本在线| 成人综合婷婷国产精品久久| 精品国产一区二区精华| 免费高清成人在线| 欧美一区二区性放荡片| 午夜精品福利一区二区三区蜜桃| 97久久精品人人爽人人爽蜜臀 | 精品日韩欧美一区二区| 亚洲成人精品一区| 99精品视频中文字幕| 久久久五月婷婷| 日韩—二三区免费观看av| 欧美美女视频在线观看| 亚洲精品视频在线看| 91热门视频在线观看| 欧美国产一区视频在线观看| 美日韩一区二区| 日韩天堂在线观看| 亚洲图片自拍偷拍| 91丨九色丨蝌蚪富婆spa| 最新国产成人在线观看| 粉嫩欧美一区二区三区高清影视|