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

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

?? mem.c

?? 高階sigma-delta調制器設計matlab工具包, 半波帶濾波器設計工具包
?? C
字號:
/* mem.c - memory management routines for qhull   This is a standalone program.      To initialize memory:     qh_meminit (stderr);  /    qh_meminitbuffers (qh IStracing, qh_MEMalign, 7, qh_MEMbufsize,qh_MEMinitbuf);    qh_memsize(sizeof(facetT));    qh_memsize(sizeof(facetT));    ...    qh_memsetup();       To free up all memory buffers:    qh_memfreeshort (&curlong, &totlong);               uses Quickfit algorithm (freelists for commonly allocated sizes)   assumes small sizes for freelists (it discards the tail of memory buffers)      see README and mem.h   see global.c (qh_initbuffers) for an example of using mem.c    if qh_NOmem, malloc/free is used instead of mem.c      copyright (c) 1993-1995 The Geometry Center*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include "mem.h"#ifndef qhDEFqhullvoid    qh_errexit(int exitcode, void *, void *);#endif/* ============ -global data structure ==============    see mem.h for definition*/qhmemT qhmem= {0};     /* remove "= {0}" if this causes a compiler error */#ifndef qh_NOmem/* internal functions */  static int qh_intcompare(const void *i, const void *j);/*========== functions in alphabetical order ======== *//*--------------------------------------------------intcompare- used by qsort and bsearch to compare two integers*/static int qh_intcompare(const void *i, const void *j) {  return(*((int *)i) - *((int *)j));} /* intcompare *//*--------------------------------------------------memalloc- allocates memory for object from qhmemreturns: pointer to allocated memory (errors if insufficient memory)notes:  use qh_memalloc_() for inline code for quick allocations  use explicit type conversion to avoid type warnings on some compilers*/void *qh_memalloc(int insize) {  void **freelistp, *newbuffer;  int index, size;  int outsize, bufsize;  void *object;  if ((unsigned) insize <= (unsigned) qhmem.LASTsize) {    index= qhmem.indextable[insize];    freelistp= qhmem.freelists+index;    if ((object= *freelistp)) {      qhmem.cntquick++;        *freelistp= *((void **)*freelistp);  /* replace freelist with next object */      return (object);    }else {      outsize= qhmem.sizetable[index];      qhmem.cntshort++;      if (outsize > qhmem .freesize) {	if (!qhmem.curbuffer)	  bufsize= qhmem.BUFinit;        else	  bufsize= qhmem.BUFsize;        qhmem.totshort += bufsize;	if (!(newbuffer= malloc(bufsize))) {	  fprintf(qhmem.ferr, "qhull error (qh_memalloc): insufficient memory\n");	  qh_errexit(qhmem_ERRmem, NULL, NULL);	} 	*((void **)newbuffer)= qhmem.curbuffer;  /* prepend newbuffer to curbuffer 						    list */	qhmem.curbuffer= newbuffer;        size= (sizeof(void **) + qhmem.ALIGNmask) & ~qhmem.ALIGNmask;	qhmem.freemem= (void *)((char *)newbuffer+size);	qhmem.freesize= bufsize - size;      }      object= qhmem.freemem;      qhmem.freemem= (void *)((char *)qhmem.freemem + outsize);      qhmem.freesize -= outsize;      return object;    }  }else {                     /* long allocation */    if (!qhmem.indextable) {      fprintf (qhmem.ferr, "qhull internal error (qh_memalloc): qhmem has not been initialized.\n");      qh_errexit(qhmem_ERRqhull, NULL, NULL);    }    outsize= insize;    qhmem .cntlong++;    qhmem .curlong++;    qhmem .totlong += outsize;    if (qhmem.maxlong < qhmem.totlong)      qhmem.maxlong= qhmem.totlong;    if (!(object= malloc(outsize))) {      fprintf(qhmem.ferr, "qhull error (qh_memalloc): insufficient memory\n");      qh_errexit(qhmem_ERRmem, NULL, NULL);    }    if (qhmem.IStracing >= 5)      fprintf (qhmem.ferr, "qh_memalloc long: %d bytes at %p\n", outsize, object);  }  return (object);} /* memalloc *//*--------------------------------------------------memfree- frees memory object (may be NULL)  size is insize from qh_memalloc  type checking warns if using (void **)object  qh_memfree_()- in-line code for quick free's*/void qh_memfree(void *object, int size) {  void **freelistp;  if (!object)    return;  if (size <= qhmem.LASTsize) {    qhmem .freeshort++;    freelistp= qhmem.freelists + qhmem.indextable[size];    *((void **)object)= *freelistp;    *freelistp= object;  }else {    qhmem .freelong++;    qhmem .totlong -= size;    free (object);    if (qhmem.IStracing >= 5)      fprintf (qhmem.ferr, "qh_memfree long: %d bytes at %p\n", size, object);  }} /* memfree *//*--------------------------------------------------memfreeshort- frees up all short and qhmem memory allocationsreturns: number and size of current long allocations*/void qh_memfreeshort (int *curlong, int *totlong) {  void *buffer, *nextbuffer;  *curlong= qhmem .cntlong - qhmem .freelong;  *totlong= qhmem .totlong;  for(buffer= qhmem.curbuffer; buffer; buffer= nextbuffer) {    nextbuffer= *((void **) buffer);    free(buffer);  }  qhmem.curbuffer= NULL;  if (qhmem .LASTsize) {    free (qhmem .indextable);    free (qhmem .freelists);    free (qhmem .sizetable);  }  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */} /* memfreeshort *//*--------------------------------------------------meminit- initialize memory (memalloc errors until memsetup)*/void qh_meminit (FILE *ferr) {    memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */  qhmem.ferr= ferr;  if (sizeof(void*) < sizeof(int)) {    fprintf (ferr, "qhull internal error (qh_meminit): sizeof(void*) < sizeof(int).  set.c will not work\n");    exit (1);  /* can not use qh_errexit() */  }} /* meminit *//*--------------------------------------------------meminitbuffers- initialize memory buffers*/void qh_meminitbuffers (int tracelevel, int alignment, int numsizes, int bufsize, int bufinit) {  qhmem.IStracing= tracelevel;  qhmem.NUMsizes= numsizes;  qhmem.BUFsize= bufsize;  qhmem.BUFinit= bufinit;  qhmem.ALIGNmask= alignment-1;  if (qhmem.ALIGNmask & ~qhmem.ALIGNmask) {    fprintf (qhmem.ferr, "qhull internal error (qh_meminit): memory alignment %d is not a power of 2\n", alignment);    qh_errexit (qhmem_ERRqhull, NULL, NULL);  }  qhmem.sizetable= (int *) calloc (numsizes, sizeof(int));  qhmem.freelists= (void **) calloc (numsizes, sizeof(void *));  if (!qhmem.sizetable || !qhmem.freelists) {    fprintf(qhmem.ferr, "qhull error (qh_meminit): insufficient memory\n");    qh_errexit (qhmem_ERRmem, NULL, NULL);  }  if (qhmem.IStracing >= 1)    fprintf (qhmem.ferr, "qh_meminitbuffers: memory initialized with alignment %d\n", alignment);} /* meminitbuffers *//*--------------------------------------------------memsetup- set up memory after running memsize()*/void qh_memsetup (void) {  int k,i;  qsort(qhmem.sizetable, qhmem.TABLEsize, sizeof(int), qh_intcompare);  qhmem.LASTsize= qhmem.sizetable[qhmem.TABLEsize-1];  if (qhmem .LASTsize >= qhmem .BUFsize || qhmem.LASTsize >= qhmem .BUFinit) {    fprintf (qhmem.ferr, "qhull error (qh_memsetup): largest mem size %d is >= buffer size %d or initial buffer size %d\n",            qhmem .LASTsize, qhmem .BUFsize, qhmem .BUFinit);    qh_errexit(qhmem_ERRmem, NULL, NULL);  }  if (!(qhmem.indextable= (int *)malloc((qhmem.LASTsize+1) * sizeof(int)))) {    fprintf(qhmem.ferr, "qhull error (qh_memsetup): insufficient memory\n");    qh_errexit(qhmem_ERRmem, NULL, NULL);  }  for(k=qhmem.LASTsize+1; k--; )    qhmem.indextable[k]= k;  i= 0;  for(k= 0; k <= qhmem.LASTsize; k++) {    if (qhmem.indextable[k] <= qhmem.sizetable[i])      qhmem.indextable[k]= i;    else      qhmem.indextable[k]= ++i;  }} /* memsetup *//*--------------------------------------------------memsize- define a free list for this size*/void qh_memsize(int size) {  int k;  if (qhmem .LASTsize) {    fprintf (qhmem .ferr, "qhull error (qh_memsize): called after qhmem_setup\n");    qh_errexit (qhmem_ERRqhull, NULL, NULL);  }  size= (size + qhmem.ALIGNmask) & ~qhmem.ALIGNmask;  for(k= qhmem.TABLEsize; k--; ) {    if (qhmem.sizetable[k] == size)      return;  }  if (qhmem.TABLEsize < qhmem.NUMsizes)    qhmem.sizetable[qhmem.TABLEsize++]= size;  else    fprintf(qhmem.ferr, "qhull warning (memsize): free list table has room for only %d sizes\n", qhmem.NUMsizes);} /* memsize *//*--------------------------------------------------memstatistics-  print out memory statistics  does not account for wasted memory at the end of each block*/void qh_memstatistics (FILE *fp) {  int i, count, totfree= 0;  void *object;    for (i=0; i<qhmem.TABLEsize; i++) {    count=0;    for (object= qhmem .freelists[i]; object; object= *((void **)object))      count++;    totfree += qhmem.sizetable[i] * count;  }  fprintf (fp, "\nmemory statistics:\n\%7d quick allocations\n\%7d short allocations\n\%7d long allocations\n\%7d short frees\n\%7d long frees\n\%7d bytes of short memory in use\n\%7d bytes of short memory in freelists\n\%7d bytes of long memory allocated (except for input)\n\%7d bytes of long memory in use (in %d pieces)\n\%7d bytes per memory buffer (initially %d bytes)\n",	   qhmem .cntquick, qhmem.cntshort, qhmem.cntlong,	   qhmem .freeshort, qhmem.freelong, 	   qhmem .totshort - qhmem .freesize - totfree,	   totfree,	   qhmem .maxlong, qhmem .totlong, qhmem .cntlong - qhmem .freelong,	   qhmem .BUFsize, qhmem .BUFinit);  if (qhmem.cntlarger) {    fprintf (fp, "%7d calls to qh_setlarger\n%7.2g     average copy size\n",	   qhmem.cntlarger, ((float) qhmem.totlarger)/ qhmem.cntlarger);    fprintf (fp, "  freelists (bytes->count):");  }  for (i=0; i<qhmem.TABLEsize; i++) {    count=0;    for (object= qhmem .freelists[i]; object; object= *((void **)object))      count++;    fprintf (fp, " %d->%d", qhmem.sizetable[i], count);  }  fprintf (fp, "\n\n");} /* memstatistics */#else /* qh_NOmem, use malloc/free instead */void *qh_memalloc(int insize) {  void *object;  if (!(object= malloc(insize))) {    fprintf(qhmem.ferr, "qhull error (qh_memalloc): insufficient memory\n");    qh_errexit(qhmem_ERRmem, NULL, NULL);  }  if (qhmem.IStracing >= 5)    fprintf (qhmem.ferr, "qh_memalloc long: %d bytes at %p\n", insize, object);  return object;}void qh_memfree(void *object, int size) {  if (!object)    return;  free (object);  if (qhmem.IStracing >= 5)    fprintf (qhmem.ferr, "qh_memfree long: %d bytes at %p\n", size, object);}void qh_memfreeshort (int *curlong, int *totlong) {  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */  *curlong= 0;  *totlong= 0;}void qh_meminit (FILE *ferr) {  memset((char *)&qhmem, 0, sizeof qhmem);  /* every field is 0, FALSE, NULL */  qhmem.ferr= ferr;  if (sizeof(void*) < sizeof(int)) {    fprintf (ferr, "qhull internal error (qh_meminit): sizeof(void*) < sizeof(int).  set.c will not work\n");    qh_errexit (qhmem_ERRqhull, NULL, NULL);  }}void qh_meminitbuffers (int tracelevel, int alignment, int numsizes, int bufsize, int bufinit) {  qhmem.IStracing= tracelevel;}void qh_memsetup (void) {}void qh_memsize(int size) {}void qh_memstatistics (FILE *fp) {}#endif /* qh_NOmem */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久| 久久久久久9999| 成人性生交大片免费看在线播放| 午夜婷婷国产麻豆精品| 一区二区三区四区乱视频| 中文字幕精品综合| 国产午夜亚洲精品不卡| 欧美精品一区二区三区很污很色的| 欧美日韩免费观看一区二区三区| 色综合久久88色综合天天免费| 91丝袜国产在线播放| 91免费看`日韩一区二区| 99视频精品免费视频| 99久久久精品| 欧美老女人第四色| 欧美va亚洲va在线观看蝴蝶网| 欧美成人aa大片| 久久精品视频网| 国产精品二三区| 亚洲激情自拍偷拍| 肉肉av福利一精品导航| 精品一区二区在线观看| 风间由美性色一区二区三区| 白白色 亚洲乱淫| 色8久久精品久久久久久蜜| 欧美一二三区在线| 国产欧美一区二区精品婷婷 | 精品1区2区3区| 欧美日韩精品免费观看视频 | 狠狠色丁香婷婷综合| 粉嫩一区二区三区性色av| 色综合天天综合网天天狠天天| 精品视频1区2区| 国产日韩欧美精品电影三级在线| 久久婷婷国产综合国色天香| 亚洲欧洲av在线| 麻豆一区二区三| 色婷婷一区二区| 精品美女在线播放| 一区二区三区在线影院| 韩国精品一区二区| 欧美亚洲动漫制服丝袜| 久久久www成人免费毛片麻豆 | 人人精品人人爱| 丁香婷婷综合激情五月色| 欧美日韩一区二区在线观看视频| 精品国产一区二区三区av性色| 伊人色综合久久天天| 精品一区二区三区久久| 在线观看av一区| 欧美激情一区不卡| 麻豆精品久久久| 欧美日韩色一区| 国产精品色婷婷久久58| 麻豆91精品91久久久的内涵| 色综合一区二区| 亚洲国产成人在线| 久久国产精品99久久久久久老狼| 欧美日韩一区二区欧美激情 | 欧美日韩国产欧美日美国产精品| 久久日韩粉嫩一区二区三区| 五月激情综合婷婷| 91视频在线观看免费| 国产亚洲综合在线| 日韩av午夜在线观看| 在线观看91视频| 亚洲人123区| 大白屁股一区二区视频| 国产亚洲欧美中文| 国产精品白丝av| 欧美国产欧美综合| 国产一区二区0| 久久日一线二线三线suv| 久久97超碰色| 久久这里只有精品首页| 久久国产精品露脸对白| 欧美一二三四在线| 狠狠色狠狠色合久久伊人| 26uuu国产在线精品一区二区| 蜜臀99久久精品久久久久久软件| 91精品国产日韩91久久久久久| 亚洲成人在线免费| 日韩一区二区电影| 精品亚洲aⅴ乱码一区二区三区| 日韩欧美你懂的| 国产精品88av| 亚洲色图一区二区三区| 欧美在线免费播放| 日韩精品色哟哟| 欧美草草影院在线视频| 国产凹凸在线观看一区二区| 亚洲国产高清不卡| 欧美专区亚洲专区| 日韩黄色小视频| 久久一日本道色综合| 懂色av中文字幕一区二区三区| 国产精品久久99| 欧美日韩一卡二卡三卡 | 91国产免费看| 爽好久久久欧美精品| 久久你懂得1024| 91亚洲午夜精品久久久久久| 亚洲小说欧美激情另类| 日韩精品中午字幕| 成人黄色免费短视频| 亚洲午夜视频在线| 久久一留热品黄| 精品视频123区在线观看| 国产精品一区二区三区乱码| 自拍偷在线精品自拍偷无码专区| 欧美日韩免费在线视频| 国产成人精品免费一区二区| 一区二区三区波多野结衣在线观看| 欧美日韩精品一区二区三区| 懂色中文一区二区在线播放| 视频一区二区三区在线| 亚洲国产精品99久久久久久久久| 欧美久久久久久蜜桃| 成人美女在线视频| 麻豆国产一区二区| 亚洲精品美腿丝袜| 国产亚洲一区二区三区在线观看| 在线视频一区二区三| 国产成人高清视频| 日韩精品欧美成人高清一区二区| 欧美国产精品一区二区| 精品99一区二区| 欧美高清dvd| 欧洲一区在线电影| 99久久777色| 国产白丝精品91爽爽久久| 蜜桃av一区二区在线观看| 亚洲国产视频一区| 中文字幕在线一区二区三区| 欧美成人精品福利| 日韩一级片网站| 777奇米四色成人影色区| 日本久久一区二区| a4yy欧美一区二区三区| 激情小说欧美图片| 免费成人av在线| 人人狠狠综合久久亚洲| 日韩影院免费视频| 亚洲电影第三页| 亚洲成人你懂的| 亚洲资源在线观看| 一区二区三区在线视频观看| 日韩毛片精品高清免费| 中文字幕av免费专区久久| 国产网站一区二区| 国产三级精品三级在线专区| 久久久99精品免费观看不卡| 亚洲精品一区二区三区精华液| 欧美一级精品大片| 欧美va在线播放| 久久人人爽人人爽| 中文字幕高清不卡| 国产精品久久二区二区| 亚洲精品视频一区| 日韩精品色哟哟| 日日欢夜夜爽一区| 免费xxxx性欧美18vr| 国产伦精品一区二区三区免费| 国内精品伊人久久久久av影院| 久草热8精品视频在线观看| 久久精品噜噜噜成人av农村| 日本欧美大码aⅴ在线播放| 伦理电影国产精品| 国产91丝袜在线播放九色| av资源网一区| 精品婷婷伊人一区三区三| 欧美一区二区三区男人的天堂| 91精品国产综合久久精品性色| 日韩欧美国产三级电影视频| 国产午夜精品美女毛片视频| 综合亚洲深深色噜噜狠狠网站| 亚洲激情综合网| 黄色小说综合网站| 色哟哟欧美精品| 日韩欧美一区在线| 中文字幕欧美国产| 一个色妞综合视频在线观看| 天天综合网 天天综合色| 国产一区美女在线| 在线视频综合导航| 2020国产精品自拍| 亚洲自拍偷拍九九九| 国产精品1024| 精品婷婷伊人一区三区三| 久久久久久久久久电影| 一区二区三区影院| 国产在线麻豆精品观看| 在线观看日韩av先锋影音电影院| 欧美tk—视频vk| 依依成人综合视频| 风流少妇一区二区| 日韩一区二区免费高清| 亚洲男女一区二区三区| 国产呦精品一区二区三区网站| 欧美三级中文字幕|