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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mex.c

?? 高階sigma-delta調(diào)制器設(shè)計(jì)matlab工具包, 半波帶濾波器設(shè)計(jì)工具包
?? C
字號(hào):
/* hull.c - A MEX-file interface to qhull Returns vertices, edges, normals and offsets.*/#include "qhull_a.h" #include "mex.h"char qh_version[] = "mex interface to qhull V2.2 by R. Schreier 95.12.21";/* Fill up the return matrices, keeping everything in order */Matrix* stuff2D( double *v, double *n, double *o){    Matrix *E = mxCreateFull(2, qh num_vertices, REAL);    double *e = mxGetPr(E);    vertexT *vertex = qh vertex_list;    facetT *facet;    coordT *coord;    int i,j;    qh_vertexneighbors();    qh visit_id++;    for( i=0; i< qh num_vertices; ++i ){        coord = vertex->point;        for( j=0; j< qh hull_dim; j++)            *v++ = *coord++;        vertex->visitid = qh visit_id;        *e++ = i+1;        if( i == qh num_vertices-1 )            *e = 1;        else            *e++ = i+2;        facet = (facetT *)(SETfirst_(vertex->neighbors));        if( facet->visitid == qh visit_id )            facet = (facetT *)(SETsecond_(vertex->neighbors));        facet->visitid = qh visit_id;        coord = facet->normal;        for( j=0; j< qh hull_dim; j++)            *n++ = *coord++;        *o++ = facet->offset;        vertex = (vertexT *)(SETfirst_(facet->vertices));        if( vertex->visitid == qh visit_id )            vertex = (vertexT *)(SETsecond_(facet->vertices));    }    return E;}/* Fill up the return matrices for the 3D case */Matrix *stuff3D( double *v, double *n, double *o){    Matrix *E;    double *e;    facetT *facet, *neighbor;    ridgeT **ridgep, *ridge;	/* needed by the FOREACHridge_ macro */    vertexT *vertex;    coordT *coord;    int i, vi=1, *vertex_numbers;    char string[256];    vertex_numbers = (int*)mxCalloc(qh vertex_id, sizeof(int));    FORALLvertices{        for( i=0, coord = vertex->point; i< qh hull_dim; i++)            *v++ = *coord++;        if( vertex->id >= qh vertex_id ){            sprintf(string,"Internal Error. vertex->id=%d, qh vertex_id=%d.", vertex->id, qh vertex_id );            mexErrMsgTxt(string);        }        vertex_numbers[vertex->id] = vi++;    }    {    int num_edges = 0;    FORALLfacets	if (facet->simplicial)	    num_edges += qh hull_dim;	else	    num_edges += qh_setsize(facet->ridges);    E = mxCreateFull(2, num_edges/2 , REAL);    }    e = mxGetPr(E);    qh visit_id++;    FORALLfacets{        facet->visitid = qh visit_id;        if( facet->simplicial )            qh_makeridges(facet); /* creates explicit ridges for simplicial facets*/        FOREACHridge_(facet->ridges){            neighbor = otherfacet_(ridge, facet);            if (neighbor->visitid != qh visit_id) {                vertex = (vertexT*)SETfirst_(ridge->vertices);                *e++ = vertex_numbers[vertex->id];                vertex = (vertexT*)SETsecond_(ridge->vertices);                *e++ = vertex_numbers[vertex->id];            }        } /* FOREACHridge() */    }    FORALLfacets{        for( i=0, coord = facet->normal; i< qh hull_dim; i++)            *n++ = *coord++;        *o++ = facet->offset;    }    return E;} /* stuff3D(...) */mexPrintPoint( double *x, char *fmt ){    int i;    for(i=0; i<qh hull_dim; ++i)	mexPrintf(fmt,*x++);}int note_edge( int **connect, int vi, int vj, int id){    int *conn;    if( vi<vj ) 	conn = &connect[vj][vi];    else	conn = &connect[vi][vj];    if( *conn == 0 ){	/* New edge. Mark it. */	*conn = id;	return 1;    } else if( *conn == id ) {		/* Duplicate edge. Delete it */	*conn = 0;	return -1;    } else 	/* Edge seen from intersection of another facet pair. Do nothing. */	return 0;}/* Return an int that is unique to the (m,n)/(n,m) pair.  m,n >=0, m!=n. */int id_number( int m, int n ){    if( n>m )	return n*(n-1)/2 +m;    else	return m*(m-1)/2 +n;}/* Fill up the return matrices for the 4D case */Matrix *stuff4D( double *v, double *n, double *o){    Matrix *E;    double *e;    int num_edges = 0;    facetT *facet, *neighbor;    ridgeT **ridgep, *ridge;	/* needed by the FOREACHridge_ macro */    vertexT **vertexp, *vertex;	/* needed by the FOREACHvertex_ macro */    coordT *coord;    coordT centrum[4], centrum_1, centrum_2, n1[4], n2[4];    int i, j, vi=1, vj, *vertex_numbers;    char string[256];    int **connect, conn_id;    /* Fill the vertex array */    vertex_numbers = (int*)mxCalloc(qh vertex_id, sizeof(int));    FORALLvertices{        for( i=0, coord = vertex->point; i< qh hull_dim; i++)            *v++ = *coord++;        if( vertex->id >= qh vertex_id ){            sprintf(string,"Internal Error. vertex->id=%d, qh vertex_id=%d.", vertex->id, qh vertex_id );            mexErrMsgTxt(string);        }        vertex_numbers[vertex->id] = vi++;    }    /* Fill the normal and offset arrays */    FORALLfacets{        for( i=0, coord = facet->normal; i< qh hull_dim; i++)            *n++ = *coord++;        *o++ = facet->offset;    }    /* Initialize the connection matrix */    connect = (int**)mxCalloc(qh num_vertices, sizeof(int*));    connect[0] = (int*)mxCalloc((qh num_vertices-1)*(qh num_vertices)/2, sizeof(int));    for( i=0; i<qh num_vertices -1; ++i)	connect[i+1] = connect[i] + i;    /* Fill the connection matrix and keep track of the number of edges */    qh visit_id++;    FORALLfacets{	facet->visitid = qh visit_id;	if( facet->simplicial )	    qh_makeridges(facet); /* creates explicit ridges for simplicial facets*/	FOREACHridge_(facet->ridges){	    int vi, vip, vi0=-1;	    neighbor = otherfacet_(ridge, facet);	    conn_id = id_number(facet->id, neighbor->id);	    if (neighbor->visitid == qh visit_id) /* Ridge already seen */		continue;	    FOREACHvertex_(ridge->vertices){		vi = vertex_numbers[vertex->id]-1;		if( vi0 == -1 )		    vi0 = vi;		else		    num_edges += note_edge(connect,vi,vip,conn_id);		vip = vi;	    }	    num_edges += note_edge(connect,vi,vi0,conn_id);	} /* FOREACHridge() */    } /* FORALLfacets */    /* Use the connection matrix to fill the edge list */    E = mxCreateFull(2, num_edges, REAL);    e = mxGetPr(E);    for(i=1; i<qh num_vertices ; ++i){	for(j=0; j<i; ++j){	    if( connect[i][j] ){                *e++ = i+1;                *e++ = j+1;	    }	}    }    return E;} /* stuff4D(...) */void cleanup(){    int curlong, totlong;    qh_freeqhull(!qh_ALL);    qh_memfreeshort (&curlong, &totlong);    if (curlong || totlong)      /* optional */        fprintf (stderr, "qhull internal warning (main): did not free %d bytes of long memory (%d pieces)\n",            totlong, curlong);}void mexFunction(int nlhs, Matrix *plhs[], int nrhs, Matrix *prhs[]){    Matrix *V, *E, *N, *O;    double *Vp, *Np, *Op;    int exitcode, dim;    char *cmd = "qhull(mex) Qcx C0.001 A0.999", string[256];    /* check the arguments */    if( nrhs > 2 )        mexErrMsgTxt("hull error: only two input arguments are allowed.");    if( nrhs < 1 )        mexErrMsgTxt("hull error: no input argument.");    if( mxIsNumeric(prhs[0]) != 1 )        mexErrMsgTxt("hull error: The first argument is not numeric.");    if( nrhs > 1 ){	/* Use arg2 as the argument string for qhull */	Matrix *str = prhs[1];	int strlen = mxGetM(str)*mxGetN(str)+1;	if( mxIsString(str) != 1 )	    mexErrMsgTxt("hull error: the second argument is not a string.");	cmd = mxCalloc(strlen,sizeof(char));	mxGetString(str, cmd, strlen);	}    if( nlhs != 4 )        mexErrMsgTxt("hull error: 4 left-hand arguments are needed.");    dim = mxGetM( prhs[0] );    if( dim > 4 )        mexErrMsgTxt("hull error: Unable to handle dimension >4.");    qh_meminit (stderr);    qh_initqhull_start (stdin, stdout, stderr);    if (!(exitcode= setjmp (qh errexit))) {        strcat (qh rbox_command, "hull");    /* for qh_printstatistics() */        strcat (qh qhull_command, cmd);    /* Needed to set parameters */        qh_initflags (qh qhull_command);        qh_initqhull_globals (mxGetPr(prhs[0]), mxGetN(prhs[0]), dim, False);        qh_initqhull_mem();        qh_initqhull_buffers();        qh_qhull();        V = plhs[0] = mxCreateFull(dim, qh num_vertices, REAL);        N = plhs[2] = mxCreateFull(dim, qh num_facets, REAL);        O = plhs[3] = mxCreateFull(1, qh num_facets, REAL);	Vp = mxGetPr(V);	Np = mxGetPr(N);	Op = mxGetPr(O);/* DBG qh_printfacetlist(qh facet_list, NULL, True);*/        switch(dim){        case 2:            E = plhs[1] = stuff2D(Vp,Np,Op);            break;        case 3:            E = plhs[1] = stuff3D(Vp,Np,Op);            break;        case 4:            E = plhs[1] = stuff4D(Vp,Np,Op);            break;        default:            break;        }        exitcode= qh_ERRnone;    }    qh NOerrexit= True;    cleanup();} /* mexFunction *//*--------------------------------------------errexit- return exitcode to system after an error  assumes exitcode non-zero  prints useful information  see qh_errexit2() in qhull.c for 2 facets*/void qh_errexit(int exitcode, facetT *facet, ridgeT *ridge) {    if (qh ERREXITcalled) {        fprintf (qh ferr, "\nqhull error while processing previous error.  Exit program\n");        exit(1);    }    qh ERREXITcalled= True;    if (!qh QHULLfinished)        qh hulltime= clock() - qh hulltime;    qh_errprint("ERRONEOUS", facet, NULL, ridge, NULL);    fprintf (qh ferr, "\nWhile executing: %s | %s\n", qh rbox_command, qh qhull_command);    if (qh furthest_id) {        fprintf(qh ferr, "Last point added to hull was p%d.", qh furthest_id);        if (zzval_(Ztotmerge))            fprintf(qh ferr, "  Last merge was #%d.", zzval_(Ztotmerge));    }    if (qh ROTATErandom > 0)        fprintf(qh ferr, "  Repeat with 'QR%d'.", qh ROTATErandom);    if (qh furthest_id || qh ROTATErandom > 0)        fprintf (qh ferr, "\n");    if (qh FORCEoutput && (qh QHULLfinished || (!facet && !ridge)))        qh_produce_output();    else {        if (exitcode != qh_ERRsingular && zzval_(Zsetplane) > qh hull_dim+1) {            fprintf (qh ferr, "\nAt error exit:\n");            qh_printsummary (qh ferr);            if (qh PRINTstatistics) {                qh_collectstatistics();                qh_printstatistics(qh ferr, "at error exit");                qh_memstatistics (qh ferr);            }        }        if (qh PRINTprecision)            qh_printstats (qh ferr, qhstat precision, NULL);    }    if (!exitcode)        exitcode= qh_ERRqhull;    else if (exitcode == qh_ERRsingular)        qh_printhelp_singular(qh ferr);    else if (exitcode == qh_ERRprec && !qh PREmerge)        qh_printhelp_degenerate (qh ferr);    if (qh NOerrexit) {        fprintf (qh ferr, "qhull error while ending program.  Exit program\n");        exit(1);    }    qh NOerrexit= True;    longjmp(qh errexit, exitcode);} /* errexit *//*--------------------------------------------errprint- prints out the information of the erroneous object    any parameter may be NULL, also prints neighbors and geomview output*/void qh_errprint(char *string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex) {    int i;    if (atfacet) {        fprintf(qh ferr, "%s FACET:\n", string);        qh_printfacet(qh ferr, atfacet);    }    if (otherfacet) {        fprintf(qh ferr, "%s OTHER FACET:\n", string);        qh_printfacet(qh ferr, otherfacet);    }    if (atridge) {        fprintf(qh ferr, "%s RIDGE:\n", string);        qh_printridge(qh ferr, atridge);        if (atridge->top && atridge->top != atfacet && atridge->top != otherfacet)            qh_printfacet(qh ferr, atridge->top);        if (atridge->bottom            && atridge->bottom != atfacet && atridge->bottom != otherfacet)            qh_printfacet(qh ferr, atridge->bottom);        if (!atfacet)            atfacet= atridge->top;        if (!otherfacet)            otherfacet= otherfacet_(atridge, atfacet);    }    if (atvertex) {        fprintf(qh ferr, "%s VERTEX:\n", string);        qh_printvertex (qh ferr, atvertex);    }    if (qh FORCEoutput && atfacet && !qh QHULLfinished) {        fprintf(qh ferr, "ERRONEOUS and NEIGHBORING FACETS to output\n");        for (i= 0; i< qh_PRINTEND; i++)            qh_printneighborhood (qh fout, qh PRINTout[i], atfacet, otherfacet,                !qh_ALL);    }} /* errprint *//*------------------------------------------printfacetlist- print all fields for a list and/or set of facets to .ferr  includes all vertices  if !printall, only prints good facets*/void qh_printfacetlist(facetT *facetlist, setT *facets, boolT printall) {    facetT *facet, **facetp;    qh_printbegin (qh ferr, qh_PRINTfacets, facetlist, facets, printall);    FORALLfacet_(facetlist)        qh_printafacet(qh ferr, qh_PRINTfacets, facet, printall);    FOREACHfacet_(facets)        qh_printafacet(qh ferr, qh_PRINTfacets, facet, printall);    qh_printend (qh ferr, qh_PRINTfacets, facetlist, facets, printall);} /* printfacetlist *//*------------------------------------------user_memsizes- allocate up to 10 additional, quick allocation sizes*/void qh_user_memsizes (void) {    /* qh_memsize (size); */} /* user_memsizes */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线观看 | 另类小说图片综合网| 亚洲欧美偷拍卡通变态| 国产精品妹子av| 国产精品久久久久一区| 国产精品欧美综合在线| 中文字幕av一区二区三区免费看| 久久久久久久久久久电影| 2017欧美狠狠色| 日本一区二区不卡视频| 国产欧美日韩另类一区| 国产日韩欧美精品在线| 国产精品视频看| 日韩理论片一区二区| 一区二区三区加勒比av| 亚洲成人激情av| 日产国产高清一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 久久国产精品一区二区| 国产一区二区日韩精品| 成人精品视频一区| 色一情一伦一子一伦一区| 色综合中文字幕国产 | 93久久精品日日躁夜夜躁欧美| av一区二区三区| 在线视频一区二区三| 亚洲国产高清aⅴ视频| 一区在线中文字幕| 亚洲国产精品久久一线不卡| 另类小说视频一区二区| 风间由美一区二区三区在线观看 | 久久先锋影音av鲁色资源| 国产网站一区二区三区| 亚洲精品中文在线影院| 日韩国产精品久久| 国产宾馆实践打屁股91| 欧美性色黄大片手机版| 久久综合色综合88| 亚洲欧美福利一区二区| 日韩高清不卡一区二区三区| 国产高清视频一区| 在线亚洲人成电影网站色www| 555夜色666亚洲国产免| 国产亚洲一二三区| 一区二区三区中文在线| 久久精品久久精品| 一本到三区不卡视频| 欧美大胆人体bbbb| 亚洲欧美日韩国产中文在线| 日韩av网站免费在线| gogo大胆日本视频一区| 亚洲成a人v欧美综合天堂| 国产美女精品一区二区三区| 色婷婷国产精品| 久久精品一区二区三区不卡牛牛 | 奇米精品一区二区三区在线观看一 | 亚洲天堂精品在线观看| 日韩高清电影一区| 91免费视频网址| 精品国产乱码久久久久久1区2区| 亚洲日本丝袜连裤袜办公室| 精品一区二区三区欧美| 91色乱码一区二区三区| 精品国产自在久精品国产| 亚洲国产精品麻豆| av高清不卡在线| 26uuu色噜噜精品一区二区| 亚洲成人免费视频| heyzo一本久久综合| 久久一二三国产| 日本欧美韩国一区三区| 91精品福利视频| 国产精品污网站| 激情综合亚洲精品| 欧美一级搡bbbb搡bbbb| 亚洲精品久久久久久国产精华液| 国产高清无密码一区二区三区| 51精品国自产在线| 亚洲一区二区三区美女| 91看片淫黄大片一级在线观看| 久久久久久久久久久久久久久99 | 免费的成人av| 欧美三级一区二区| 亚洲免费观看高清完整| 成人中文字幕电影| 国产亚洲一区二区三区四区| 久久国产生活片100| 91精品国产综合久久香蕉的特点 | 久久电影网电视剧免费观看| 制服丝袜成人动漫| 亚洲国产成人高清精品| 欧美性videosxxxxx| 亚洲精品国产无天堂网2021| 91女神在线视频| 亚洲黄一区二区三区| 色综合久久99| 亚洲综合一区二区三区| 色天天综合久久久久综合片| 自拍偷自拍亚洲精品播放| 成人短视频下载 | 国产不卡在线播放| 久久美女高清视频| 国产一二三精品| 久久久亚洲高清| 国产精品996| 久久精品在线观看| 成人国产精品免费观看| 一色屋精品亚洲香蕉网站| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲成精国产精品女| 欧美伊人久久久久久久久影院| 亚洲综合丝袜美腿| 欧美日韩一区二区三区高清| 午夜精品久久久久久久99水蜜桃| 精品视频色一区| 日韩中文字幕不卡| 欧美大片一区二区三区| 国产毛片精品国产一区二区三区| 久久精品人人做人人爽人人| 福利视频网站一区二区三区| 亚洲天堂2014| 欧美性大战久久| 免费高清在线一区| 国产日产欧美一区二区三区| 成人综合在线视频| 亚洲一区二区影院| 91麻豆精品国产综合久久久久久| 久久精品免费观看| 久久这里只有精品首页| 成人激情免费网站| 一区二区三区精密机械公司| 91精品国产综合久久婷婷香蕉| 国产一区91精品张津瑜| 日韩毛片在线免费观看| 4438x成人网最大色成网站| 国产在线视视频有精品| 亚洲日韩欧美一区二区在线| 欧美男同性恋视频网站| 国产毛片精品一区| 亚洲精品欧美二区三区中文字幕| 欧美一区二区在线观看| 国产福利一区二区三区视频在线 | 成人高清视频在线观看| 亚洲一二三区在线观看| 欧美不卡视频一区| 99久久er热在这里只有精品15| 亚洲成av人片在线观看| 国产日韩欧美不卡在线| 欧美日韩一级二级| 国产精品99久| 日韩影院精彩在线| 国产精品初高中害羞小美女文| 3d动漫精品啪啪1区2区免费| 粉嫩av一区二区三区粉嫩| 五月天久久比比资源色| 欧美极品另类videosde| 欧美日韩美少妇| 成人听书哪个软件好| 亚洲电影欧美电影有声小说| 国产日产欧美一区| 3d动漫精品啪啪一区二区竹菊| 国产成人99久久亚洲综合精品| 亚洲国产精品一区二区www| 国产女主播一区| 日韩欧美在线网站| 色婷婷综合五月| 国产精品亚洲а∨天堂免在线| 香蕉av福利精品导航| 国产精品色眯眯| 日韩女优av电影| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 蜜臀久久久99精品久久久久久| 亚洲免费毛片网站| 国产欧美日韩在线视频| 日韩一级片网站| 亚洲精品国产成人久久av盗摄| 精品日韩在线一区| 欧美日韩精品一区二区三区| 成人福利视频网站| 国产剧情一区二区| 男女视频一区二区| 亚洲国产精品一区二区www| 中文字幕日韩精品一区| 国产欧美久久久精品影院| 日韩精品一区二区三区四区| 欧美日韩你懂的| 色噜噜久久综合| 97se狠狠狠综合亚洲狠狠| 国产精品一二二区| 经典三级视频一区| 日韩二区三区在线观看| 亚洲国产日韩在线一区模特| 中文字幕在线不卡视频| 国产欧美精品国产国产专区| 久久午夜免费电影| 日韩精品中午字幕| 日韩欧美精品三级| 日韩精品中文字幕一区二区三区| 欧美乱妇一区二区三区不卡视频| 欧美性猛交xxxx黑人交|