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

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

?? smpl.cpp

?? smpl仿真函數庫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*

	%%%%%%%%%%%%%%%%%%%%   SMPL.c  %%%%%%%%%%%%%%%%%%%%%%%

*/

#include "smpl.h"
#include "rand.h"
#include <process.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
//#include <windows.h>


#define nl 256       /* element pool length                 */
#define ns 256       /* namespace length                    */
#define pl 58        /* printer page length   (lines used   */
#define sl 23        /* screen page length     by 'smpl')   */
#define FF 12        /* form feed                           */


static FILE
  *display=stdout,   /* screen display file                 */
  *opf=stdout;       /* current output destination          */

static int
  event,             /* current simulation event            */
  token,             /* last token dispatched               */
  blk,               /* next available block index          */
  avl,               /* available element list header       */
  evl,               /* event list header                   */
  fchn,              /* facility descriptor chain header    */
  avn,               /* next available namespace position   */
  tr,                /* event trace flag                    */
  mtr,               /* monitor activation flag             */
  lft=sl;            /* lines left on current page/screen   */



static real
  clock,             /* current simulation time             */
  start,             /* simulation interval start time      */
  tl;                /* last trace message issue time       */


static int
  L1[nl],
  L2[nl],            /*       facility descriptor,          */
  L3[nl];            /*            queue, &                 */
static real          /*           event list                */
  L4[nl],            /*          element pool               */
  L5[nl];

static char
  smpl_name[ns];          /* model and facility name space       */

/*--------------------*/
int  dump( void );
void dump_hdr(int );
void fdump(int );
void qdump(int );
void q_hdr( void );
void edump( void );
/*--------------------*/

/*---------------  INITIALIZE SIMULATION SUBSYSTEM  ------------------*/
void smpl( int m, char *s )
    {
      int i; static int rns=1;
      blk=1; avl=-1; avn=0;       /* element pool & namespace headers */
      evl=fchn=0;           /* event list & descriptor chain headers  */
      clock=start=tl=0.0;   /* sim., interval start, last trace times */
		event=tr=0;                 /* current event no. & trace flags  */
		for (i=0; i<nl; i++)  {L1[i]=L2[i]=L3[i]=0; L4[i]=L5[i]=0.0;}
		i=save_name(s,50);                   /* model name -> namespace */
		rns=stream(rns); rns=++rns>15? 1:rns;  /* set random no. stream */
      mtr=(m>0)? 1:0;                              /* set monitor flag */
	/* if (mtr) then {opf=display; init_mtr(1);} */
	 }

/*-----------------------  RESET MEASUREMENTS  -----------------------*/
void reset()
  {
    resetf(); start=clock;
  }

/*---------------------------  SAVE NAME  ----------------------------*/
int save_name( char *s, int m )
    {
      int i,n;
      n=strlen(s); if (n>m) then n=m;
      if (avn+n>ns) then error(2,NULL); /* namespace exhausted */
      i=avn; avn+=n+1; strncpy(&smpl_name[i],s,n);
      if (n==m) then smpl_name[avn++]='\0';
      return(i);
    }

/*-------------------------  GET MODEL NAME  -------------------------*/
char *mname(void)
  {
    return(smpl_name);
  }

/*------------------------  GET FACILITY NAME  -----------------------*/
char *fname( int f ) {
   return(&smpl_name[L3[f+1]]);
}

/*---------------------------  GET BLOCK  ----------------------------*/
static get_blk( int n ) {
      int i;
      if (blk==0) then error(3,NULL); /* block request after schedule */
      i=blk; blk+=n;
      if (blk>=nl) then error(1,NULL);      /* element pool exhausted */
      return(i);
    }

/*--------------------------  GET ELEMENT  ---------------------------*/
static get_elm ( void )
  {
    int i;
    if (avl<=0) then
      {
        if (avl==0) then error(1,NULL);     /* empty element list */
     /* if (mtr && !tr) then init_mtr(2); */
        /* build the free element list from the block of elements */
        /* remaining after all facilities have been defined       */
	for (i=blk; i<(nl-1); i++) L1[i]=i+1;
        avl=blk; blk=0;
      }
    i=avl; avl=L1[i];
    return(i);
  }

/*-------------------------  RETURN ELEMENT  -------------------------*/
void put_elm(int i )
    {
      L1[i]=avl; avl=i;
    }

/*-------------------------  SCHEDULE EVENT  -------------------------*/
void schedule( int ev, real te, int tkn)
    {
      int i;
      if (te<0.0) then error(4,NULL); /* negative event time */
      i=get_elm(); L2[i]=tkn; L3[i]=ev; L4[i]=0.0; L5[i]=clock+te;
      enlist(&evl,i);
      if (tr) then msg(1,tkn,"",ev,0);
    }

/*---------------------------  CAUSE EVENT  --------------------------*/
void cause(int *ev, int *tkn)
    {
      int i;
      if (evl==0) then error(5,NULL);       /* empty event list  */
      i=evl; *tkn=token=L2[i]; *ev=event=L3[i]; clock=L5[i];
      evl=L1[i]; put_elm(i);  /* delink element & return to pool */
      if (tr) then msg(2,*tkn,"",event,0);
   /* if (mtr && (tr!=3)) then mtr(tr,0); */
    }

/*--------------------------  RETURN TIME  ---------------------------*/
real time()
  {
    return(clock);
  }

/*--------------------------  CANCEL EVENT  --------------------------*/
cancel( int ev)
    {
      int pred,succ=evl,tkn;
      while((succ!=0) && (L3[succ]!=ev)) {pred=succ; succ=L1[pred];}
      if (succ==0) then return(-1);
      tkn=L2[succ]; if (tr) then msg(3,tkn,"",L3[succ],0);
      if (succ==evl)
        then evl=L1[succ];                 /* unlink  event */
        else L1[pred]=L1[succ];            /* list entry &  */
      put_elm(succ);                       /* deallocate it */
      return(tkn);
    }

/*-------------------------  SUSPEND EVENT  --------------------------*/
static suspend( int tkn )
    {
      int pred,succ=evl;
      while((succ!=0) && (L2[succ]!=tkn)) {pred=succ; succ=L1[pred];}
      if (succ==0) then error(6,NULL);  /* no event scheduled for tkn */
      if (succ==evl)
        then evl=L1[succ];       /* unlink  event */
        else L1[pred]=L1[succ];  /* list entry    */
      if (tr) then msg(6,-1,"",L3[succ],0);
      return(succ);
    }

/*--------------  ENTER ELEMENT IN QUEUE OR EVENT LIST  --------------*/
void enlist( int *head, int elm)
    { /* 'head' points to head of queue/event list */
      int pred,succ; real arg,v;
      arg=L5[elm]; succ=*head;
      while(1)
        { /* scan for position to insert entry:  event list is order- */
	  /* ed in ascending 'arg' values, queues in descending order */
          if (succ==0)
            then break;  /* end of list */
            else
              {
                v=L5[succ];
                if (*head==evl)
                  then
                    { /* event list  */
                      if (v>arg) then break;
                    }
                  else
                    { /* queue: if entry is for a preempted token-    */
                      /* (L4, the remaining event time, >0), insert   */
		      /* entry at beginning of its priority class;    */
                      /* otherwise, insert it at the end              */
                      if ((v<arg) || ((v==arg) && (L4[elm]>0.0)))
			then break;
                    }
              }
	  pred=succ; succ=L1[pred];
        }
      L1[elm]=succ; if (succ!=*head) then L1[pred]=elm; else *head=elm;
    }

/*-------------------------  DEFINE FACILITY  ------------------------*/
facility ( char *s, int n )
    {
      int f,i;
      f=get_blk(n+2); L1[f]=n; L3[f+1]=save_name(s,(n>1 ? 14:17));
      if (fchn==0)
        then fchn=f;
        else {i=fchn; while(L2[i+1]) i=L2[i+1]; L2[i+1]=f;}
      L2[f+1]=0;
      if (tr) then msg(13,-1,fname(f),f,0);
      return(f);
    }

/*--------------------- RETURN FACILITY SEQUENCE ----------------------*/
int getfacility ( int f ) {
  if ( f == 0 ) return ( fchn );
  return ( L2 [ f + 1 ] );
}

/*--------------------- RETURN CURRENTE TOKEN ----------------------*/
int gettoken ( void ) {
  return ( token );
}

/*--------------------- RETURN CURRENTE EVENT ----------------------*/
int getevent ( void ) {
  return ( event );
}

/*--------------------- RETURN CURRENTE EVT ----------------------*/
int getevl ( void ) {
  return ( evl );
}

/*--------------------- RETURN FACILITY DESCRIPTOR ----------------------*/
int getfdes ( int f ) {
  return ( L1 [ f ] );
}


/*--------------------- RETURN POOL DESCRIPTOR ----------------------*/
int getpdes ( int f ) {
  return ( L4 [ f ] );
}

/*--------------------- RETURN START TIME ---------------------------*/
real getstart ( void ) {
  return ( start );
}

/*---------------  RESET FACILITY & QUEUE MEASUREMENTS  --------------*/
void resetf(void)
  {
    int i=fchn,j;
      while(i)
        {
          L4[i]=L4[i+1]=L5[i+1]=0.0;
          for (j=i+2; j<=(i+L1[i]+1); j++) {L3[j]=0; L4[j]=0.0;}
          i=L2[i+1];  /* advance to next facility */
        }
  }

/*------------------------  REQUEST FACILITY  ------------------------*/
request ( int f, int tkn, int pri )
    {
      int i,r;
      if (L2[f]<L1[f])
        then
          { /* facility nonbusy - reserve 1st-found nonbusy server    */
            for (i=f+2; L1[i]!=0; i++);
	    L1[i]=tkn; L2[i]=pri; L5[i]=clock; L2[f]++; r=0;
          }
        else
          { /* facility busy - enqueue token marked w/event, priority */
            enqueue(f,tkn,pri,event,0.0); r=1;
          }
      if (tr) then msg(7,tkn,fname(f),r,L3[f]);
      return(r);
    }

/*-------------------------  ENQUEUE TOKEN  --------------------------*/
void enqueue( int f, int j, int pri, int ev, real te)
    {
      int i;
      L5[f+1]+=L3[f]*(clock-L5[f]); L3[f]++; L5[f]=clock;
      i=get_elm(); L2[i]=j; L3[i]=ev; L4[i]=te; L5[i]=(real)pri;
      enlist(&L1[f+1],i);
    }

/*------------------------  PREEMPT FACILITY  ------------------------*/
int preempt( int f, int tkn, int pri )
    {
      int ev,i,j,k,r; real te;
      if (L2[f]<L1[f])
        then
          { /* facility nonbusy - locate 1st-found nonbusy server     */
            for (k=f+2; L1[k]!=0; k++); r=0;
            if (tr) then msg(8,tkn,fname(f),0,0);
          }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费免费| 7777精品伊人久久久大香线蕉的 | 国产日韩综合av| 精油按摩中文字幕久久| 国产丝袜在线精品| 成人性视频网站| 一区二区三区不卡在线观看 | 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品久久久久天堂| 91香蕉视频污| 午夜精品爽啪视频| 精品久久久久久最新网址| 国产乱码一区二区三区| 国产精品美女久久久久av爽李琼 | 亚洲精品国产品国语在线app| 色噜噜偷拍精品综合在线| 午夜精品在线视频一区| 久久综合色8888| 成人精品鲁一区一区二区| 亚洲日本免费电影| 日韩欧美在线网站| 福利电影一区二区| 亚洲精品欧美二区三区中文字幕| 精品视频在线看| 精久久久久久久久久久| 亚洲视频一区二区在线| 日韩一区二区三区在线视频| 豆国产96在线|亚洲| 亚洲国产综合在线| 久久久av毛片精品| 在线视频亚洲一区| 国产成人综合在线| 亚洲aⅴ怡春院| 欧美激情中文不卡| 欧美一区二区三区在线电影| 国产白丝精品91爽爽久久| 舔着乳尖日韩一区| 亚洲欧洲一区二区三区| 日韩亚洲国产中文字幕欧美| 99精品桃花视频在线观看| 免费成人美女在线观看.| 亚洲精品国产无天堂网2021| 久久在线观看免费| 欧美日本国产一区| 91碰在线视频| 国产成人精品一区二| 日本午夜一区二区| 有坂深雪av一区二区精品| 欧美国产精品一区二区三区| 日韩一区二区三区观看| 欧美性一区二区| 91麻豆蜜桃一区二区三区| 国产在线播放一区| 奇米色777欧美一区二区| 亚洲精品久久嫩草网站秘色| 国产精品理论片| 精品欧美一区二区久久| 欧美日韩国产高清一区二区 | 欧美日韩一区高清| 97久久超碰国产精品| 粉嫩一区二区三区性色av| 国产一区二区三区国产| 精品亚洲成a人在线观看| 日韩经典中文字幕一区| 亚洲一区日韩精品中文字幕| 亚洲男人都懂的| 亚洲视频在线一区| 中文字幕日本不卡| 国产精品区一区二区三区| 久久免费电影网| 久久青草国产手机看片福利盒子| 欧美一级一级性生活免费录像| 欧美日韩精品三区| 欧美嫩在线观看| 91精品欧美久久久久久动漫| 这里只有精品99re| 欧美一区二区精品在线| 日韩精品影音先锋| 精品剧情v国产在线观看在线| 日韩一区二区影院| 久久这里只精品最新地址| 久久精品人人做人人综合| 欧美国产日韩a欧美在线观看| 国产亚洲污的网站| 国产精品区一区二区三| 亚洲男人的天堂一区二区| 亚洲伦理在线免费看| 亚洲综合色丁香婷婷六月图片| 一区二区欧美精品| 日韩av电影免费观看高清完整版| 欧美aⅴ一区二区三区视频| 久久精品理论片| 国产一区二区在线看| 大陆成人av片| 色婷婷久久久亚洲一区二区三区| 欧美日韩一级二级| 日韩三级高清在线| 国产亚洲精品超碰| 亚洲免费三区一区二区| 日日夜夜一区二区| 国产九色精品成人porny| 99久久婷婷国产精品综合| 欧美日韩国产色站一区二区三区| 欧美一区二区三区视频| 国产女主播视频一区二区| 亚洲欧美日韩国产一区二区三区 | 中文乱码免费一区二区| 亚洲精品视频自拍| 免费av成人在线| a4yy欧美一区二区三区| 欧美日韩国产美| 国产色一区二区| 亚洲国产精品久久久久婷婷884| 久久精品99国产精品| av亚洲精华国产精华精华| 欧洲日韩一区二区三区| www久久久久| 一区二区三区免费在线观看| 蜜臀av一区二区在线免费观看| 国产69精品一区二区亚洲孕妇| 欧美日韩黄色一区二区| 26uuu亚洲综合色| 夜夜夜精品看看| 国产老肥熟一区二区三区| 欧美日韩中文字幕一区| 中文字幕av一区二区三区高| 日本不卡视频在线| 色综合天天视频在线观看| 精品福利在线导航| 香蕉久久一区二区不卡无毒影院| 国产成人福利片| 欧美一区二区三区思思人| 亚洲少妇屁股交4| 国产一区二区调教| 欧美日本不卡视频| 一区二区三区四区在线免费观看| 国产成人精品网址| 欧美第一区第二区| 婷婷丁香久久五月婷婷| 色综合咪咪久久| 国产精品麻豆视频| 国产**成人网毛片九色| 精品日韩欧美在线| 日韩精品视频网| 欧美日韩高清在线播放| 日韩一区在线免费观看| 成人禁用看黄a在线| 久久青草欧美一区二区三区| 日韩高清国产一区在线| 欧美日韩一区二区欧美激情| 亚洲三级在线播放| www.亚洲免费av| 国产精品国产精品国产专区不蜜| 国产精品一区二区在线播放| 亚洲精品在线观| 久久成人18免费观看| 日韩午夜激情免费电影| 美国十次综合导航| 欧美一个色资源| 蜜臀精品久久久久久蜜臀| 欧美一区二区三区白人| 日本欧美大码aⅴ在线播放| 欧美日韩亚洲综合在线| 午夜精品久久久| 51精品秘密在线观看| 日本vs亚洲vs韩国一区三区| 日韩一区二区影院| 美女在线观看视频一区二区| 精品日本一线二线三线不卡| 国产综合久久久久久鬼色| 精品免费国产一区二区三区四区| 久久av老司机精品网站导航| 欧美不卡123| 国产精品亚洲成人| 国产视频一区二区在线| 不卡欧美aaaaa| 亚洲摸摸操操av| 777久久久精品| 久久99久久久欧美国产| 亚洲国产岛国毛片在线| 91在线高清观看| 亚洲成人一区在线| 日韩写真欧美这视频| 国产成人在线免费观看| 亚洲欧洲99久久| 欧美亚洲国产一区二区三区| 免费人成在线不卡| 国产日韩一级二级三级| 色综合欧美在线| 日韩高清电影一区| 国产网站一区二区| 成人ar影院免费观看视频| 亚洲一区二区精品视频| 日韩精品一区二区三区视频 | 色88888久久久久久影院按摩| 亚洲成人高清在线| 久久色在线观看| 色综合久久久久综合体| 美女视频免费一区| 国产精品久久久久一区二区三区 |