示例#1
0
int main(void)
{
  // create memory system with 256 words and a cache
  // with 8 sets, N lines per set and a block size of 4 words.
  void *a = initializeMemorySystem(SIZE, 1, 4, 8, N, 1);
  if (a == NULL)
  {
    fprintf(stderr, "initializeMemorySystem failed!\n");
    exit(-1);
  }

  int i, sum, sum2;

  // initialize the array
  for (i = 0; i < SIZE; i++)
  {
    writeInt(a, 0, i, i);
  }

  // now sum it
  sum = 0;
  sum2 = 0;
  for (i = 0; i < SIZE; i++)
  {
    int tmp = readInt(a, 0, i);
    // printf("# %d %d\n", tmp, i);
    sum += tmp;
    sum2 += i;
  }
  printf("sum is %d (should be %d)\n", sum, sum2);

  // print stats
  printf("\n");
  printStatistics(a);
  printf("\n");


  return 0;
}
示例#2
0
int main(void)
{
  // create memory system with 256 words and a direct-mapped cache
  // with 8 sets and a block size of 4 words.
  void *a = initializeMemorySystem(SIZE, 1, 4, 8, 1, 1);
  if (a == NULL)
  {
    fprintf(stderr, "initializeMemorySystem failed!\n");
    exit(-1);
  }

  int i;

  // initialize the array
  for (i = 0; i < SIZE; i++)
  {
    writeFloat(a, 0, i, (float) i);
  }

  // now sum it
  float sum = 0.0;
  float sum2 = 0.0;
  for (i = 0; i < SIZE; i++)
  {
    float tmp = readFloat(a, 0, i);
    sum += tmp;
    sum2 += ((float) i);
  }
  printf("sum is %f (should be %f)\n", sum, sum2);

  // print stats
  printf("\n");
  printStatistics(a);
  printf("\n");


  return 0;
}
void
MersenneTwister::printStats()
{
    if(sampleArgs->timing)
    {
        std::string strArray[4] =
        {
            "Generated Numbers",
            "Time(sec)",
            "[Transfer+Kernel]Time(sec)",
            "Numbers/sec"
        };
        std::string stats[4];

        sampleTimer->totalTime = setupTime + kernelTime;
        stats[0] = toString(height * width * mulFactor * 4, std::dec);
        stats[1] = toString(sampleTimer->totalTime, std::dec);
        stats[2] = toString(kernelTime, std::dec);
        stats[3] = toString(height * width * mulFactor * 4 / kernelTime, std::dec);

        printStatistics(strArray, stats, 4);
    }
}
示例#4
0
void
ComputeBench::printStats()
{
    std::string strArray[3];
    std::string stats[3];
    sampleArgs->timing = true;

    int sizeInBytesPerIter = (int) (NUM_READS * vectorSize * sizeof (
            cl_float) * globalThreads);
    std::cout << std::endl << std::setw(18) << std::left
            << "Vector width used " << ": " << ((vec3) ? 3 : vectorSize) << std::endl;
    std::cout << std::setw(18) << std::left
            << "Setup Time " << ": " << setupTime << " secs" << std::endl << std::endl;

    std::cout << "\n1.  Add" << std::endl;
    strArray[0] = "Times";
    stats[0] = toString(sizeInBytesPerIter, std::dec);
    strArray[1] = "Avg. Kernel Time (sec)";
    stats[1] = toString(KaddTime, std::dec);
    strArray[2] = "Avg Throughput ( GRPS )";
    stats[2] = toString(KaddGbps, std::dec);
    printStatistics(strArray, stats, 3);
}
示例#5
0
void
URNG::printStats()
{
    std::string strArray[4] =
    {
        "Width",
        "Height",
        "Time(sec)",
        "[Transfer+kernel]Time(sec)"
    };
    std::string stats[4];

    sampleTimer->totalTime = setupTime + kernelTime;

    stats[0] = toString(width, std::dec);
    stats[1] = toString(height, std::dec);
    stats[2] = toString(sampleTimer->totalTime, std::dec);
    stats[3] = toString(kernelTime, std::dec);

    if(sampleArgs->timing)
    {
        printStatistics(strArray, stats, 4);
    }
}
示例#6
0
void * compute_loop(void * data,int print_stats) {
    NbodyModel *theModel = (NbodyModel *)data;
    int first_time=1;
    int done=0;
    while (!done) {
        if(first_time) {
#ifdef HAS_MPI
            copy2X(theModel);
            MPI_Bcast(theModel->X,theModel->n*6,MPI_DOUBLE,0,MPI_COMM_WORLD);
            copy2xyz(theModel);
#endif
            first_time=0;
            if(rank==0&&print_stats) {
                printStatistics(theModel);
                energy = theModel->PE+theModel->KE;
            }
        } else {
            //if((rank==0&&drand(0.0,1.0)<0.5)||rank!=0) stepNbodyModel(theModel);
            stepNbodyModel(theModel);
            sleep(delay/1000000);
            usleep(delay%1000000);
            if(rank==0) {
                if((count_updates++)%skip_updates==0&&show_updates) {
                    updateNbodyModel(theModel,update_method);
                }
            }
            if(theModel->t>=theModel->tFinal) {
                done=1;
            }
        }
    }
#ifdef _USE_PTHREADS
    pthread_exit(NULL);
#endif
    return NULL;
}
示例#7
0
void 
CompilerOutputter::printFailureReport()
{
  printFailuresList();
  printStatistics();
}
示例#8
0
int main()
{
  uint32 i;
  SM_guardTest_Handle      sMachine;
  GuardTest_IfaceHandle*   interfaceHandle=0;

  uint32                   statesCount[st_GuardTest_MAX];

  SimElement*          simListe = NULL;
  ResElement*          resListe = NULL;

  /* create some triggers */

  /* Loop 1: trigger1 is set and value is correct */
  addSimElementVar(&simListe, 100, gValue, 3);
  addSimElementVar(&simListe, 100, out, 0);
  addSimElementTrig(&simListe, 100, trigger1);

  /* back */
  addSimElementTrig(&simListe, 200, trigger4);

  addResElementVar(&resListe, 100, startState, 0);
  addResElementVar(&resListe, 100, state1, 1);
  addResElementVar(&resListe, 100, state2, 0);
  addResElementVar(&resListe, 100, state3, 0);
  addResElementVar(&resListe, 100, state4, 0);
  addResElementVar(&resListe, 100, state5, 0);
  addResElementVar(&resListe, 100, state6, 0);
  addResElementVar(&resListe, 100, out, 0);



  /* Loop 2: trigger1 is set value is 1 */
  addSimElementVar(&simListe, 300, gValue, 5);
  addSimElementVar(&simListe, 300, out, 0);
  addSimElementTrig(&simListe, 300, trigger1);

  /* back */
  addSimElementTrig(&simListe, 400, trigger4);

  addResElementVar(&resListe, 300, startState, 0);
  addResElementVar(&resListe, 300, state1, 0);
  addResElementVar(&resListe, 300, state2, 1);
  addResElementVar(&resListe, 300, state3, 0);
  addResElementVar(&resListe, 300, state4, 0);
  addResElementVar(&resListe, 300, state5, 0);
  addResElementVar(&resListe, 300, state6, 0);
  addResElementVar(&resListe, 300, out, 0);



  /* Loop 3: trigger1 is set, value is 1 */
  addSimElementVar(&simListe, 500, gValue, 1);
  addSimElementVar(&simListe, 500, out, 0);
  addSimElementTrig(&simListe, 500, trigger2);

  /* back */
  addSimElementTrig(&simListe, 600, trigger4);

  addResElementVar(&resListe, 500, startState, 0);
  addResElementVar(&resListe, 500, state1, 0);
  addResElementVar(&resListe, 500, state2, 0);
  addResElementVar(&resListe, 500, state3, 1);
  addResElementVar(&resListe, 500, state4, 0);
  addResElementVar(&resListe, 500, state5, 0);
  addResElementVar(&resListe, 500, state6, 0);
  addResElementVar(&resListe, 500, out, 4);


  /* Loop 4: trigger1 is set and value is correct */
  addSimElementVar(&simListe, 700, gValue, 3);
  addSimElementVar(&simListe, 700, out, 0);
  addSimElementTrig(&simListe, 700, trigger2);

  /* back */
  addSimElementTrig(&simListe, 800, trigger4);

  addResElementVar(&resListe, 700, startState, 0);
  addResElementVar(&resListe, 700, state1, 1);
  addResElementVar(&resListe, 700, state2, 0);
  addResElementVar(&resListe, 700, state3, 0);
  addResElementVar(&resListe, 700, state4, 0);
  addResElementVar(&resListe, 700, state5, 0);
  addResElementVar(&resListe, 700, state6, 0);
  addResElementVar(&resListe, 700, out, 1);



  /* Loop 5: trigger1 is set value is 1 */
  addSimElementVar(&simListe, 900, gValue, 5);
  addSimElementVar(&simListe, 900, out, 0);
  addSimElementTrig(&simListe, 900, trigger2);

  /* back */
  addSimElementTrig(&simListe, 1000, trigger4);

  addResElementVar(&resListe, 900, startState, 0);
  addResElementVar(&resListe, 900, state1, 0);
  addResElementVar(&resListe, 900, state2, 1);
  addResElementVar(&resListe, 900, state3, 0);
  addResElementVar(&resListe, 900, state4, 0);
  addResElementVar(&resListe, 900, state5, 0);
  addResElementVar(&resListe, 900, state6, 0);
  addResElementVar(&resListe, 900, out, 2);



  /* Loop 6: trigger1 is set, value is 1 */
  addSimElementVar(&simListe, 1100, gValue, 2);
  addSimElementVar(&simListe, 1100, out, 0);
  addSimElementTrig(&simListe, 1100, trigger3);

  /* back */
  addSimElementTrig(&simListe, 1200, trigger4);

  addResElementVar(&resListe, 1100, startState, 0);
  addResElementVar(&resListe, 1100, state1, 0);
  addResElementVar(&resListe, 1100, state2, 0);
  addResElementVar(&resListe, 1100, state3, 1);
  addResElementVar(&resListe, 1100, state4, 0);
  addResElementVar(&resListe, 1100, state5, 0);
  addResElementVar(&resListe, 1100, state6, 0);
  addResElementVar(&resListe, 1100, out, 3);



  /* Loop 7: Test for wrong triggers */
  addSimElementVar(&simListe, 1300, gValue, 0);
  addSimElementVar(&simListe, 1300, out, 0);
  addSimElementTrig(&simListe, 1300, trigger4);

  addResElementVar(&resListe, 1300, startState, 1);
  addResElementVar(&resListe, 1300, state1, 0);
  addResElementVar(&resListe, 1300, state2, 0);
  addResElementVar(&resListe, 1300, state3, 0);
  addResElementVar(&resListe, 1300, state4, 0);
  addResElementVar(&resListe, 1300, state5, 0);
  addResElementVar(&resListe, 1300, state6, 0);
  addResElementVar(&resListe, 1300, out, 0);



  /* Loop 8: Test for wrong triggers */
  addSimElementVar(&simListe, 1400, gValue, 0);
  addSimElementVar(&simListe, 1400, out, 0);
  addSimElementTrig(&simListe, 1400, trigger5);

  addResElementVar(&resListe, 1400, startState, 1);
  addResElementVar(&resListe, 1400, state1, 0);
  addResElementVar(&resListe, 1400, state2, 0);
  addResElementVar(&resListe, 1400, state3, 0);
  addResElementVar(&resListe, 1400, state4, 0);
  addResElementVar(&resListe, 1400, state5, 0);
  addResElementVar(&resListe, 1400, state6, 0);
  addResElementVar(&resListe, 1400, out, 0);


  /* Loop 9: Test for reachability of state4 */
  addSimElementVar(&simListe, 1600, value1, 11);
  addSimElementVar(&simListe, 1600, value2, 3);
  /* addSimElementTrig(&simListe, 1600, trigger1); */
  addSimElementTrig(&simListe, 1800, trigger4);

  addResElementVar(&resListe, 1700, startState, 0);
  addResElementVar(&resListe, 1700, state1, 0);
  addResElementVar(&resListe, 1700, state2, 0);
  addResElementVar(&resListe, 1700, state3, 0);
  addResElementVar(&resListe, 1700, state4, 1);
  addResElementVar(&resListe, 1700, state5, 0);
  addResElementVar(&resListe, 1700, state6, 0);

  /* does the state machine returns back after trigger */
  addResElementVar(&resListe, 1900, startState, 1);
  addResElementVar(&resListe, 1900, state1, 0);
  addResElementVar(&resListe, 1900, state2, 0);
  addResElementVar(&resListe, 1900, state3, 0);
  addResElementVar(&resListe, 1900, state4, 0);
  addResElementVar(&resListe, 1900, state5, 0);
  addResElementVar(&resListe, 1900, state6, 0);



  /* Loop 10: Test for unreachability of state4 */
  addSimElementVar(&simListe, 2000, value1, 10);
  addSimElementVar(&simListe, 2000, value2, 3);

  addResElementVar(&resListe, 2000, startState, 1);
  addResElementVar(&resListe, 2000, state1, 0);
  addResElementVar(&resListe, 2000, state2, 0);
  addResElementVar(&resListe, 2000, state3, 0);
  addResElementVar(&resListe, 2000, state4, 0);
  addResElementVar(&resListe, 2000, state5, 0);
  addResElementVar(&resListe, 2000, state6, 0);



  /* Loop 11: Test for unreachability of state4 */
  addSimElementVar(&simListe, 2100, value1, 11);
  addSimElementVar(&simListe, 2100, value2, 2);

  addResElementVar(&resListe, 2100, startState, 1);
  addResElementVar(&resListe, 2100, state1, 0);
  addResElementVar(&resListe, 2100, state2, 0);
  addResElementVar(&resListe, 2100, state3, 0);
  addResElementVar(&resListe, 2100, state4, 0);
  addResElementVar(&resListe, 2100, state5, 0);
  addResElementVar(&resListe, 2100, state6, 0);




  /* Loop 12: Test Choice first path ( value1 > 100 ) */
  addSimElementVar(&simListe, 2200, value1, 110);
  addSimElementVar(&simListe, 2200, value2, 10);

  addResElementVar(&resListe, 2200, startState, 0);
  addResElementVar(&resListe, 2200, state1, 0);
  addResElementVar(&resListe, 2200, state2, 0);
  addResElementVar(&resListe, 2200, state3, 0);
  addResElementVar(&resListe, 2200, state4, 0);
  addResElementVar(&resListe, 2200, state5, 1);
  addResElementVar(&resListe, 2200, state6, 0);




  /* Loop 13: Test for Junction back to state 1 */
  addSimElementTrig(&simListe, 2300, trigger4);
  addSimElementVar(&simListe, 2300, value2, 0); /* should not met the value again */

  addResElementVar(&resListe, 2300, startState, 1);
  addResElementVar(&resListe, 2300, state1, 0);
  addResElementVar(&resListe, 2300, state2, 0);
  addResElementVar(&resListe, 2300, state3, 0);
  addResElementVar(&resListe, 2300, state4, 0);
  addResElementVar(&resListe, 2300, state5, 0);
  addResElementVar(&resListe, 2300, state6, 0);




  /* Loop 12: Test Choice first path ( value1 < 100 ) */
  addSimElementVar(&simListe, 2400, value1, 80);
  addSimElementVar(&simListe, 2400, value2, 10);

  addResElementVar(&resListe, 2400, startState, 0);
  addResElementVar(&resListe, 2400, state1, 0);
  addResElementVar(&resListe, 2400, state2, 0);
  addResElementVar(&resListe, 2400, state3, 0);
  addResElementVar(&resListe, 2400, state4, 0);
  addResElementVar(&resListe, 2400, state5, 0);
  addResElementVar(&resListe, 2400, state6, 1);




  /* Loop 13: Test for Junction back to state 1 */
  addSimElementTrig(&simListe, 2500, trigger4);
  addSimElementVar(&simListe, 2500, value2, 0); /* should not met the value again */

  addResElementVar(&resListe, 2500, startState, 1);
  addResElementVar(&resListe, 2500, state1, 0);
  addResElementVar(&resListe, 2500, state2, 0);
  addResElementVar(&resListe, 2500, state3, 0);
  addResElementVar(&resListe, 2500, state4, 0);
  addResElementVar(&resListe, 2500, state5, 0);
  addResElementVar(&resListe, 2500, state6, 0);


  /* carries the information, which state has been reached, and how often */
  for(i=0; i<st_GuardTest_MAX; ++i)
	  statesCount[i] = 0;

  guardTest_init(&sMachine, &interfaceHandle);

  guardTest_Iface_cleanTriggers(interfaceHandle);
  guardTest_Iface_cleanVariables(interfaceHandle);


  for(i=0; i<MAX_SIM_CYCLES; ++i) {

	  BOOL        stateMachineFinished = FALSE;

	  installChange(simListe, interfaceHandle,  sys_time());

	  GuardTest_timerIface_trigger(sys_time());

	  while (stateMachineFinished == FALSE) {
 		  stateMachineFinished = guardTest_runCycle(&sMachine);
		  guardTest_Iface_cleanInputTriggers(interfaceHandle);
	  }

	  compareResults(resListe, interfaceHandle, sys_time());

	  guardTest_Iface_cleanTriggers(interfaceHandle);

      statesCount[sMachine.state]++;

#ifdef DEBUG
      printf("\r  %d     ", i);
#endif

/*      printf(" %d ", *stateIDVar); */

      stepTime(10); /* add 10ms for the next cycle */
  }

  printf("\n\nFinished\n\n");

  for(i=0; i<st_GuardTest_MAX; ++i) {
	  printf(" State No. %d   -> %d\n",i, statesCount[i]);
  }

  printStatistics(resListe);

  return(0);
}
PerformanceCounter::~PerformanceCounter()
{
    printStatistics();
}
示例#10
0
int main(int argc, char *argv[])
{
	if ((argc < 4) || (argc > 6))
	{
		usage(argv[0]);
		exit(EXIT_FAILURE);
	}

	int arrayTraceOption = getIntArg(argv[1]);
	int wrapSize = getIntArg(argv[2]);
	int numWraps = getIntArg(argv[3]);

	if ((arrayTraceOption < 0) || (wrapSize < 0) || (numWraps < 0))
	{
		usage(argv[0]);
		exit(EXIT_FAILURE);
	}
	int wrapType;
	int wrapOptions;
	if (argc >= 5)
	{
		wrapType = getIntArg(argv[4]);
		if (wrapType < 0)
		{
			usage(argv[0]);
			exit(EXIT_FAILURE);
		}
		setWrapImpl((WrapImplType)wrapType);
		if (argc >= 6)
		{
			wrapOptions = getIntArg(argv[5]);
			if (wrapOptions < 0)
			{
				usage(argv[0]);
				exit(EXIT_FAILURE);
			}
			setWrapImplOptions(wrapOptions);
		}
	}

	//  Display memory attributes.
	printMemoryAttributes();

	if (arrayTraceOption == 0)
		arraySize = numWraps * wrapSize * IntsPerLine;
	else if (arrayTraceOption == 1)
		arraySize = numWraps * wrapSize;
	else if (arrayTraceOption == 2)
		arraySize = wrapSize*numWraps;
		//arraySize = dmax(BlockSize, wrapSize * numWraps);
	else if (arrayTraceOption == 3)
		arraySize = BlockSize /sizeof(int) * numWraps;
	else if (arrayTraceOption == 4)
		arraySize = (BlockSize / sizeof(int))*numWraps;
	else
		assert(0);

	StartPhysicalTracer();
	startStatistics();

	arraySize = 20000;

	int *data = (int *)pmalloc(arraySize * sizeof(int));
	printf("Array size=%d integers with start address: %p\n", arraySize, data);

	//init(data, arraysize, hotCache);

	if (arrayTraceOption == 4)
		blockCow(data, numWraps, wrapSize, arraySize);
	else
		trace(data, numWraps, wrapSize, IntsPerLine, arrayTraceOption);

	EndPhysicalTracer();

	printf("%s \t%s \t%s \t%s \t", argv[0], argv[1], argv[2], argv[3]);
	printStatistics(stdout);

	wrapCleanup();
	pfree(data);
	//  Shadow Paging cleanup.
	if (shadowPaging != NULL)
		pfree(shadowPaging);

	return 0;
}
示例#11
0
//1- porta
//2- modo (SEND | RECEIVE)
//3- filepath
int main(int argc, char **argv){

	//int fdesc = llopen(argv[1], SEND);
	//exit(-1);
	setbuf(stdout, NULL);

	ll.timeOut = 3;
	ll.sequenceNumber = 0;
	ll.numTransmissions  = 3;
	int mode;

	if(argc == 2 && !strcmp("--help", argv[1])){
		printTutorial();
		exit(0);
	}

	if(argc >= 3){
		if(!strcmp(argv[2], "send"))
			mode = 0;
		else if(!strcmp(argv[2], "receive")){
			mode = 1;
		}
		else{
			printUsage(argv[0]);
			exit(-1);
		}
	}
	else 
		exit(-1);
	if( (argc < 4 && mode == SEND) || (argc<3 && mode == RECEIVE) || strncmp(argv[1], "/dev/ttyS", strlen("dev/ttyS"))) {
		printUsage(argv[0]);
		exit(-1);
	}

	if((argc > 4 && mode == SEND) || (argc > 3 && mode == RECEIVE)){
		int i;
		for(i = 0; i < argc-(mode==SEND?4:3); i++){
			if(parseParams(argv[i+(mode==SEND?4:3)]) == -1)
				return -1;
		}
	}	
	

	int fd;
	if (mode == SEND && (fd = open(argv[3], O_RDONLY)) == ENOENT){
		perror("");
		exit(-1);
	}

	int serialPort = llopen(argv[1], mode);
	if (serialPort < 0){
		perror("");
		exit(-1);
	}

	int result;



	if (mode == SEND){

		result = sendFile(serialPort, fd, argv[3]);
	}
	else if (mode == RECEIVE){
		result = readFile(serialPort);
	}

	if(result){
		perror("could not transmit file");
		return result;
	}
	printStatistics(visMode);
	return 0;
}
示例#12
0
int main(int argc, char *argv[])
{
    pArgc = &argc;
    pArgv = argv;

    sdkCreateTimer(&frame_timer);
    sdkResetTimer(&frame_timer);

    sdkCreateTimer(&global_timer);
    sdkResetTimer(&global_timer);

    // parse the command line arguments
    parseCommandLineArguments(argc, argv);

    // create window (after we know the size of the input file size)
    WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
                      GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
                      sAppName, NULL
                    };
    RegisterClassEx(&wc);

    // Find out the video size
    g_bIsProgressive = loadVideoSource(sFileName.c_str(),
                                       g_nVideoWidth, g_nVideoHeight,
                                       g_nWindowWidth, g_nWindowHeight);

    // figure out the window size we must create to get a *client* area
    // that is of the size requested by m_dimensions.
    RECT adjustedWindowSize;
    DWORD dwWindowStyle;
    HWND hWnd = NULL;

    {
        dwWindowStyle = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
        SetRect(&adjustedWindowSize, 0, 0, g_nVideoWidth  , g_nVideoHeight);
        AdjustWindowRect(&adjustedWindowSize, dwWindowStyle, false);

        g_nWindowWidth  = adjustedWindowSize.right  - adjustedWindowSize.left;
        g_nWindowHeight = adjustedWindowSize.bottom - adjustedWindowSize.top;

        // Create the application's window
        hWnd = CreateWindow(wc.lpszClassName, sAppName,
                            dwWindowStyle,
                            0, 0,
                            g_nWindowWidth,
                            g_nWindowHeight,
                            NULL, NULL, wc.hInstance, NULL);
    }

    // Initialize CUDA
    cuInit(0);

    int bTCC = 0;

    // If we are using TCC driver, then always turn off interop
    if (bTCC)
    {
        g_bUseInterop = false;
    }

    if (g_bUseInterop)
    {
        // Initialize Direct3D
        if (initD3D9(hWnd, argc, argv, &bTCC) == false)
        {
            g_bAutoQuit = true;
            g_bWaived   = true;
            goto ExitApp;
        }
    }

    // Initialize CUDA/D3D9 context and other video memory resources
    if (initCudaResources(argc, argv, g_bUseInterop, bTCC) == E_FAIL)
    {
        g_bAutoQuit  = true;
        g_bException = true;
        g_bWaived    = true;
        goto ExitApp;
    }

    g_pVideoSource->start();
    g_bRunning = true;

    if (!g_bQAReadback && !bTCC)
    {
        ShowWindow(hWnd, SW_SHOWDEFAULT);
        UpdateWindow(hWnd);
    }

    // the main loop
    sdkStartTimer(&frame_timer);
    sdkStartTimer(&global_timer);
    sdkResetTimer(&global_timer);

    if (!g_bUseInterop)
    {
        // On this case we drive the display with a while loop (no openGL calls)
        while (g_pVideoSource->isStarted() && !g_pFrameQueue->isEndOfDecode())
        {
            renderVideoFrame(hWnd, g_bUseInterop);
        }
    }
    else
    {
        // Standard windows loop
        while (!g_bDone)
        {
            MSG msg;
            ZeroMemory(&msg, sizeof(msg));

            while (msg.message!=WM_QUIT)
            {
                if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
                {
                    TranslateMessage(&msg);
                    DispatchMessage(&msg);
                }
                else
                {
                    renderVideoFrame(hWnd, g_bUseInterop);
                }

                if (g_bAutoQuit && g_bDone)
                {
                    break;
                }
            }
        } // while loop
    }

    g_pFrameQueue->endDecode();
    g_pVideoSource->stop();

    printStatistics();

    // clean up CUDA and D3D resources
ExitApp:
    cleanup(g_bWaived ? false : true);

    if (!g_bQAReadback)
    {
        // Unregister windows class
        UnregisterClass(wc.lpszClassName, wc.hInstance);
    }

    if (g_bAutoQuit)
    {
        PostQuitMessage(0);
    }

    if (hWnd)
    {
        DestroyWindow(hWnd);
    }

    if (g_bWaived)
    {
        exit(EXIT_WAIVED);
    }
    else
    {
        exit(g_bException ? EXIT_FAILURE : EXIT_SUCCESS);
    }
}
/**
 * returns the accuracy
 */
float LacSupervised::predict(Trainning &trainning, char *ftest, AssociationRule*  associationRule){
	ui ntransactions = 0;
	ui nhits = 0;
	ui totalRules = 0;

	FILE* file=fopen(ftest,"r");
	if(file==NULL) {
		fprintf(stderr,"Test set %s not found.\n\n", ftest);
		exit(-1);
	}

	SymbolTable* featureTable = SymbolTable::FeaturesTable();
	SymbolTable* classesTable = SymbolTable::ClassesTable();

	vector<pair<string, ui> > classes;
	classesTable->getTableName(classes);

	unordered_set<ui> featureIds;
	const ui bufferSize = 200*1024;
	char line[bufferSize];

	ui tid, classId;

	ui nclasses = trainning.getNumberOfClasses();
	vector<float> scores(nclasses);
	ui defaultClass = trainning.getMostFrequentClass();

	while(fgets(line, bufferSize, file)){
		++ntransactions;
		classId = 10000000;
		processLineInput(line, featureTable, classesTable, tid, classId, featureIds);
		if(classId == 10000000){
			throw  string("Class Id not found: ") + line ;
		}

		Projection* projection = trainning.geProjection(featureIds);
		fill_n(scores.begin(), scores.size(), 0.0f);
		float totalScore = 0.0f;
		ui nrules = 0;
		ui prediction = defaultClass;
		AssociationRule::RulesResult result =  associationRule->induceRules(projection, minSupport, iminSupport, nclasses);
		for(ui classId = 0; classId < nclasses; ++classId){
			nrules += result.classesNRules[classId];
			float score = result.score(classId);
			totalScore += score;
			scores[classId] = score;
			if(cmp(scores[prediction], score) < 0){
				prediction = classId;
			}
		}
		totalRules += nrules;
	    nhits += prediction == classId;;
		printStatistics(trainning, tid, classesTable, classes, classId, prediction, scores, totalScore, nrules);

		delete projection;
	}

	fclose(file);

	//printf("%u\n", totalRules);

	return ntransactions == 0 ? 1.0 : static_cast<float>(nhits)/static_cast<float>(ntransactions);
}
示例#14
0
int main(int argc, char **argv) {
#ifdef USE_MPI
	MPI_Init(&argc, &argv);
#endif

	if (argc != 5) {
		LOG_ERROR("I want width, height, zombies, iterations.\n");
#ifdef USE_MPI
		MPI_Finalize();
#endif
		exit(1);
	}

	int width = atoi(argv[1]);
	int height = atoi(argv[2]);

	int people = (int) (width * height * INITIAL_DENSITY);
	int zombies = atoi(argv[3]);

	int iters = atoi(argv[4]);

	initRandom(0);

	WorldPtr input, output;
	double ratio = divideWorld(&width, &height, &input, &output);

	// there should not be any output prior to this point
#ifdef REDIRECT
	initRedirectToFiles(input);
#endif

	LOG_DEBUG("World size is %d x %d at position [%d, %d] of %d x %d\n",
			input->localWidth, input->localHeight, input->globalX,
			input->globalY, input->globalColumns, input->globalRows);

	if (input->globalX == 0 && input->globalY == 0) {
		randomDistribution(input, people * ratio, zombies, 0);
	} else {
		// no zombies elsewhere
		randomDistribution(input, people * ratio, 0, 0);
	}

#ifndef NIMAGES
	printWorld(input, false);
#endif

	Timer timer = startTimer();

	Stats cumulative = NO_STATS;
	for (int i = 0; i < iters; i++) {
		simulateStep(input, output);

		output->stats.clock = cumulative.clock = output->clock;
		Stats stats = output->stats;
		mergeStats(&cumulative, stats, false);
		printStatistics(output, cumulative);

		WorldPtr temp = input;
		input = output;
		output = temp;
		input->stats = stats;
	}

	double elapsedTime = getElapsedTime(timer);

#ifdef _OPENMP
	int numThreads = omp_get_max_threads();
#else
	int numThreads = 1;
#endif
	LOG_TIME("Simulation took %f milliseconds with %d threads\n", elapsedTime,
			numThreads);

	// this is a clean up
	// we destroy both worlds
	destroyWorld(input);
	destroyWorld(output);

	destroyRandom();

#ifdef REDIRECT
	finishRedirectToFiles();
#endif

#ifdef USE_MPI
	MPI_Finalize();
#endif
}
示例#15
0
文件: update.cpp 项目: zeux/qgrep
bool updateProject(Output* output, const char* path)
{
	auto start = std::chrono::high_resolution_clock::now();

    output->print("Updating %s:\n", path);

	std::unique_ptr<ProjectGroup> group = parseProject(output, path);
	if (!group)
		return false;

	removeFile(replaceExtension(path, ".qgc").c_str());

	output->print("Scanning project...\r");

	std::vector<FileInfo> files = getProjectGroupFiles(output, group.get());

	output->print("Building file table...\r");

	if (!buildFiles(output, path, files))
		return false;
	
	std::string targetPath = replaceExtension(path, ".qgd");
	std::string tempPath = targetPath + "_";

	UpdateStatistics stats = {};
	unsigned int totalChunks = 0;

	{
		BuildContext* builder = buildStart(output, tempPath.c_str(), files.size());
		if (!builder)
			return false;

		UpdateFileIterator fileit = {files, 0};

		// update contents using existing database (if any)
		if (!processFile(output, builder, fileit, stats, targetPath.c_str()))
		{
			buildFinish(builder);
			return false;
		}

		// update all unprocessed files
		while (fileit)
		{
			buildAppendFile(builder, fileit->path.c_str(), fileit->timeStamp, fileit->fileSize);
			++fileit;
			stats.filesAdded++;
		}

		totalChunks = buildFinish(builder);
	}

	output->print("\n");

	auto time = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - start);

	printStatistics(output, stats, totalChunks, time.count() / 1e3);
	
	if (!renameFile(tempPath.c_str(), targetPath.c_str()))
	{
		output->error("Error saving data file %s\n", targetPath.c_str());
		return false;
	}

	return true;
}
示例#16
0
int main(int argc, char ** argv) { 

    NbodyModel *theModel = NULL;
    int n=500;
    double tStep = 0.1; // My
    double tFinal = 1000.0; // My
    double rotation_factor=0.0;
    double initial_v=0.0;
    double soft_fac=0.0;
    double srad_fac=5.0;
    double treeRangeCoefficient=1.2;
    double scale=13.0;//parsecs
    double mass=800.0; //solar masses
    int color=0; // color code in old style galaxsee format
    double G=0.0044994; //pc^3/solar_mass/Myr^2
    int i;
    time_t begin;
    time_t end;
    int int_method = INT_METHOD_RK4;
    int force_method = FORCE_METHOD_DIRECT;
    int ngrid = 32;
    double drag=0.0;
    double expansion=0.0;
    double anisotropy=0.01;
    double pointsize=0.02;
    double ksigma=2.0;
    double knear=1.0;
    int seed=-1;
    int distribution = DISTRIBUTION_SPHERICAL_RANDOM;
    double distribution_z_scale = 1.0;
    FILE *fp;
    char file_line[READLINE_MAX];
    char tag[READLINE_MAX];
    char value[READLINE_MAX];
    char prefix[READLINE_MAX];
    char g2gprefix[READLINE_MAX];
    char g2gpath[READLINE_MAX];
    double g2glength=1.0;
    double g2gmass=1.0;
    double g2gvelocity=1.0;
    int print_stats=0;
		int stats_size = 0; 
    double force_total_sum=0.0;
#ifdef _USE_PTHREADS
    pthread_t compute_thread;
#endif

#ifdef STAT_KIT
	startTimer();
#endif

    time(&begin);

    strcpy(prefix,"out");
    strcpy(g2gprefix,"");
    strcpy(g2gpath,"");

#ifdef HAS_MPI
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    MPI_Comm_size(MPI_COMM_WORLD,&size);
		stats_size = size;
#else
    rank=0;
    size=1;
#endif

    // command line arguments
    if(rank==0) {
        printf("USAGE: galaxsee [filename]\n");
        printf("USAGE:     if no filename is entered input is assumed to be stdin\n");
    }
    fp=NULL;
    if(argc>1) {
        fp=fopen(argv[1],"r");
        if(fp==NULL) {
            printf("ERROR OPENING INPUT FILE\n");
            exit(0);
        }
    } else {
        fp=stdin;
    }

    while(readline(file_line,READLINE_MAX,fp)) {
        gettagline_rl(file_line,tag,value);
        if(stricmp_rl(tag,"UPDATE_METHOD")==0) getint_rl(value,&update_method);
        else if(stricmp_rl(tag,"SHOW_DISPLAY")==0) getint_rl(value,&show_updates);
        else if(stricmp_rl(tag,"SKIP_UPDATES")==0) getint_rl(value,&skip_updates);
        else if(stricmp_rl(tag,"SRAD_FACTOR")==0) getdouble_rl(value,&srad_fac);
        else if(stricmp_rl(tag,"SOFT_FACTOR")==0) getdouble_rl(value,&soft_fac);
        else if(stricmp_rl(tag,"TIMESTEP")==0) getdouble_rl(value,&tStep);
        else if(stricmp_rl(tag,"TREE_RANGE_COEFFICIENT")==0) getdouble_rl(value,&treeRangeCoefficient);
        else if(stricmp_rl(tag,"FORCE_METHOD")==0) getint_rl(value,&force_method);
        else if(stricmp_rl(tag,"INT_METHOD")==0) getint_rl(value,&int_method);
        else if(stricmp_rl(tag,"INITIAL_V")==0) getdouble_rl(value,&initial_v);
        else if(stricmp_rl(tag,"ROTATION_FACTOR")==0) getdouble_rl(value,&rotation_factor);
        else if(stricmp_rl(tag,"TFINAL")==0) getdouble_rl(value,&tFinal);
        else if(stricmp_rl(tag,"N")==0) getint_rl(value,&n);
        else if(stricmp_rl(tag,"SCALE")==0) getdouble_rl(value,&scale);
        else if(stricmp_rl(tag,"MASS")==0) getdouble_rl(value,&mass);
        else if(stricmp_rl(tag,"COLOR")==0) getint_rl(value,&color);
        else if(stricmp_rl(tag,"G")==0) getdouble_rl(value,&G);
        else if(stricmp_rl(tag,"NGRID")==0) getint_rl(value,&ngrid);
        else if(stricmp_rl(tag,"DELAY")==0) getint_rl(value,&delay);
        else if(stricmp_rl(tag,"SEED")==0) getint_rl(value,&seed);
        else if(stricmp_rl(tag,"DRAG_COEFFICIENT")==0) getdouble_rl(value,&drag);
        else if(stricmp_rl(tag,"EXPANSION")==0) getdouble_rl(value,&expansion);
        else if(stricmp_rl(tag,"ANISOTROPY")==0) getdouble_rl(value,&anisotropy);
        else if(stricmp_rl(tag,"KSIGMA")==0) getdouble_rl(value,&ksigma);
        else if(stricmp_rl(tag,"KNEAR")==0) getdouble_rl(value,&knear);
        else if(stricmp_rl(tag,"FILE_PREFIX")==0) getword_rl(value,prefix);
        else if(stricmp_rl(tag,"GADGET2_PREFIX")==0) getword_rl(value,g2gprefix);
        else if(stricmp_rl(tag,"GADGET2_PATH")==0) getword_rl(value,g2gpath);
        else if(stricmp_rl(tag,"GADGET2_LENGTH")==0) getdouble_rl(value,&g2glength);
        else if(stricmp_rl(tag,"GADGET2_MASS")==0) getdouble_rl(value,&g2gmass);
        else if(stricmp_rl(tag,"GADGET2_VELOCITY")==0) getdouble_rl(value,&g2gvelocity);
        else if(stricmp_rl(tag,"DISTRIBUTION")==0) getint_rl(value,&distribution);
        else if(stricmp_rl(tag,"DISTRIBUTION_Z_SCALE")==0) getdouble_rl(value,&distribution_z_scale);
        else if(stricmp_rl(tag,"POINTSIZE")==0) getdouble_rl(value,&pointsize);
        else if(stricmp_rl(tag,"PRINT_STATISTICS")==0) getint_rl(value,&print_stats);
        else if(stricmp_rl(tag,"COORDS")==0) 0; // ignore for now
        else {
            printf("WARNING, difficulty parsing line\n  -- %s\n",file_line);
        }
    }
    if(fp!=NULL&&fp!=stdin) rewind(fp);


    if(rank==0) {
        printf("Model Summary\n");
        printf("N = %d\n",n);
        printf("TFINAL = %lf\n",tFinal);
        printf("TIMESTEP = %lf\n",tStep);
        printf("INITIAL_V = %lf\n",initial_v);
        printf("ROTATION_FACTOR = %lf\n",rotation_factor);
        printf("DRAG_COEFFICIENT = %lf\n",drag);
        printf("SCALE = %lf\n",scale);
        printf("MASS = %lf\n",mass);
        printf("G = %lf\n",G);
        printf("EXPANSION = %lf\n",expansion);
        printf("INT_METHOD = %d\n",int_method);
        printf("FORCE_METHOD = %d\n",force_method);
        printf("TREE_RANGE_COEFFICIENT = %lf\n",treeRangeCoefficient);
        printf("NGRID = %d\n",ngrid);
        printf("KSIGMA = %lf\n",ksigma);
        printf("KNEAR = %lf\n",knear);
        printf("DISTRIBUTION = %d\n",distribution);
        printf("DISTRIBUTION_Z_SCALE = %lf\n",distribution_z_scale);
        printf("ANISOTROPY = %lf\n",anisotropy);
        printf("POINTSIZE = %lf\n",pointsize);
        printf("SRAD_FAC = %lf\n",srad_fac);
        printf("SOFT_FAC = %lf\n",soft_fac);
        printf("MPI_SIZE = %d\n",size);
        printf("FILE_PREFIX = %s\n",prefix);
        printf("DELAY = %d\n",delay);
        if (seed<0) {
            printf("SEED = TIME BASED\n");
        } else {
            printf("SEED = %d\n",seed);
        }
    }

    theModel = allocateNbodyModel(n,ngrid);
    setPointsizeNbodyModel(theModel,pointsize);
    setAnisotropyNbodyModel(theModel,anisotropy);
    setDistributionNbodyModel(theModel,distribution);
    setDistributionZScaleNbodyModel(theModel,distribution_z_scale);
    setPPPMCoeffsNbodyModel(theModel,ksigma,knear);
    setExpansionNbodyModel(theModel,expansion);
    setDragNbodyModel(theModel,drag);
    setPrefixNbodyModel(theModel,prefix);
    setSradNbodyModel(theModel,srad_fac);
    setSofteningNbodyModel(theModel,soft_fac);
    setScaleNbodyModel(theModel,scale); // parsecs
    setMassNbodyModel(theModel,mass/(double)n); // solar masses
    setColorNbodyModel(theModel,color); 
    setGNbodyModel(theModel,G); // pc^3/solar_mass/My^2
    setRotationFactor(theModel,rotation_factor);
    setInitialV(theModel,initial_v);
    setTFinal(theModel,tFinal);
    setTStep(theModel,tStep);
    setIntMethod(theModel,int_method);
    setForceMethod(theModel,force_method);
    setTreeRangeCoefficient(theModel,treeRangeCoefficient);

    initializeNbodyModel(theModel);
    if (theModel->rotation_factor>0.0) {
        spinNbodyModel(theModel);
    }
    if (theModel->initial_v>0.0) {
        speedNbodyModel(theModel);
    }

    i=0;
    while(readline(file_line,READLINE_MAX,fp)) {
        gettagline_rl(file_line,tag,value);
        if(stricmp_rl(tag,"COORDS")==0) {
            if(i<theModel->n) {
                sscanf(value,"%lf %lf %lf %lf %lf %lf %lf %d",&(theModel->x[i]),
                    &(theModel->y[i]),&(theModel->z[i]),
                    &(theModel->vx[i]),&(theModel->vy[i]),&(theModel->vz[i]),
                    &(theModel->mass[i]),&(theModel->color[i]));
            } else {
                printf("WARNING, NUMBER OF COORDINATES IN INPUT FILE \n");
                printf("EXCEED VALUE OF N = %d\n",theModel->n);
            }
            i++;
        }
    }
    if(i>0&&i!=theModel->n) {
        printf("WARNING, COORDINATES ENTERED IN INPUT FILE (%d) \n",i);
        printf("NOT EQUAL TO N (%d) \n",theModel->n);
    }

    if(fp!=NULL&&fp!=stdin) fclose(fp);

    if(seed<0) {
        seed_by_time(0);
    } else {
        srand(seed);
    }

    if(strcmp(g2gprefix,"")) {
        gal2gad2(theModel,(const char *)g2gprefix,(const char *)g2gpath,g2glength, g2gmass, g2gvelocity);
        exit(0);
    }

#ifdef _USE_PTHREADS
    pthread_create(&compute_thread,NULL,compute_loop,theModel);
    if(rank==0) {
        while(theModel->t<theModel->tFinal) {
            nbodyEvents(theModel,update_method);
        }
    }
    pthread_join(compute_thread,NULL);
#else
    compute_loop(theModel,print_stats);
#endif

    time(&end);
#ifdef HAS_MPI
    MPI_Reduce(&(theModel->force_total),&force_total_sum,1,MPI_DOUBLE,
        MPI_SUM, 0, MPI_COMM_WORLD);
    if(rank==0) {
#endif
        printf("\n");
        if(print_stats) {
            printStatistics(theModel);
            energy = ((theModel->PE+theModel->KE)-energy)/fabs(energy)*100.0;
            printf("Energy Loss--Gain = %lf percent \n",energy);
        }
        printf("Wall Time Elapsed = %8.lf seconds\n",difftime(end,begin));
        printf("Time in Force Calculation, root node = %8.lf seconds\n",
            theModel->force_total);
#ifdef HAS_MPI
        printf("Time in Force Calculation, all nodes = %8.lf seconds\n",
            force_total_sum);
    }
#endif

    freeNbodyModel(theModel);
#ifdef HAS_MPI
    MPI_Finalize();
#endif


#ifdef STAT_KIT
	printStats("galaxsee-v2", stats_size, "mpi", n, "2.0",0, 0);
#endif
	
	return 1;

}
示例#17
0
int main(int argc, char *argv[])
{
	if ((argc < 6) || (argc > 9))
	{
		usage(argv[0]);
		exit(EXIT_FAILURE);
	}
	//mtarray numThreads threadMemSize rwRatio maxWrapSize numWraps [wrapType [options]
	numThreads = getIntArg(argv[1]);
	threadMemSize = getIntArg(argv[2]);
	rwRatio = getIntArg(argv[3]);
	wrapSize = getIntArg(argv[4]);
	numWraps = getIntArg(argv[5]);
	delay = getIntArg(argv[6]);

	if ((numThreads < 0) || (threadMemSize < 0) || (delay < 0) || (rwRatio < 0) || (wrapSize < 0) || (numWraps < 0))
	{
		usage(argv[0]);
		exit(EXIT_FAILURE);
	}
	int wrapType;
	int wrapOptions;
	if (argc >= 8)
	{
		wrapType = getIntArg(argv[7]);
		if (wrapType < 0)
		{
			usage(argv[0]);
			exit(EXIT_FAILURE);
		}
		if (wrapType == Wrap_Software)
		{
			setAliasTableWorkers(numThreads);
		}
		setWrapImpl((WrapImplType)wrapType);
		if (argc >= 9)
		{
			wrapOptions = getIntArg(argv[8]);
			if (wrapOptions < 0)
			{
				usage(argv[0]);
				exit(EXIT_FAILURE);
			}
			setWrapImplOptions(wrapOptions);
		}
	}

	//  Display memory attributes.
	printMemoryAttributes();

	arraySize = numThreads * threadMemSize;

	StartPhysicalTracer();
	startStatistics();

	//data = (int *)pmalloc(arraySize * sizeof(int));
	//printf("Array size=%d integers with start address: %p\n", arraySize, data);

	//  Create the test threads
	pthread_t *testers = (pthread_t *)malloc(numThreads * sizeof(pthread_t));
	for (int i = 0; i < numThreads; i++)
	{
		pthread_create(&testers[i], NULL, test, (void*)(int64_t)i);
	}

	printf("joining\n");
	for (int i = 0; i < numThreads; i++)
	{
		pthread_join(testers[i], NULL);
	}
	free(testers);

	EndPhysicalTracer();

	printf("%s \t%s \t%s \t%s \t", argv[0], argv[1], argv[2], argv[3]);
	printStatistics(stdout);

	wrapCleanup();

	return 0;
}
示例#18
0
/*..........................................................................*/
int main(int argc, char *argv[]) {

    int j;
    QHsmTst_ctor();                                  /* instantiate the HSM */

    if (argc > 1) {                                  /* file name provided? */
        l_outFile = fopen(argv[1], "w");
    }

    if (l_outFile == (FILE *)0) {                   /* interactive version? */
        l_outFile = stdout;            /* use the stdout as the output file */

        printf("QHsmTst example, built on %s at %s,\n"
               "QP-nano: %s.\nPress ESC to quit...\n",
               __DATE__, __TIME__, QP_getVersion());

        QHsm_init((QHsm *)&HSM_QHsmTst);    /* take the initial transitioin */

        for (;;) {                                            /* event loop */
            int c;

            printf("\n>");
            c = getchar();
            printf(": ");
            /*
            if ('a' <= c && c <= 'i') {                        // in range?
                Q_SIG((QHsm *)&HSM_QHsmTst) = (QSignal)(c - 'a' + A_SIG);
            }
	else if ('A' <= c && c <= 'I') {                   // in range?
                Q_SIG((QHsm *)&HSM_QHsmTst) = (QSignal)(c - 'A' + A_SIG);
            }
            else if (c == '\33') {                          // the ESC key?
                Q_SIG((QHsm *)&HSM_QHsmTst) = TERMINATE_SIG;
            }
            else {
                Q_SIG((QHsm *)&HSM_QHsmTst) = IGNORE_SIG;
            }
            */

            //QHsm_dispatch((QHsm *)&HSM_QHsmTst);      /* dispatch the event */
        }
    }
    else {                                                 /* batch version */
        printf("QHsmTst example, built on %s at %s, QP-nano %s\n"
               "output saved to %s\n",
               __DATE__, __TIME__, QP_getVersion(),
               argv[1]);

        fprintf(l_outFile, "QHsmTst example, QP-nano %s\n",
        		QP_getVersion());

        QHsm_init((QHsm *)&HSM_QHsmTst);    /* take the initial transitioin */
	
        extern storeWait waiting [5];

	//init
	int iterations;
        int timerCheckPoint = 0;
        direct = NA;
        maxFloor = 4;
	for ( ; timePassed < 3000000; ){
        	timerCheckPoint = timePassed;
		//Controller loop
        	switch (direct){
        	case UP: {
        		if (ordersExistInDir(UP)){
        			dispatch(GO_UP);
        			dispatch(FLOOR_REACHED);
        		}
        		else {
        			direct = NA;
        		}
        		break;
        	}
        	case DOWN: {
        		if (ordersExistInDir(DOWN)){
        			dispatch(GO_DOWN);
        			dispatch(FLOOR_REACHED);
        		}
        		else {
        			direct = NA;
        		}
        		break;
        	}
        	case NA: {
        		if (ordersExistInDir(UP)){
        			dispatch(GO_UP);
        			dispatch(FLOOR_REACHED);
        		}
        		else if (ordersExistInDir(DOWN)){
        			dispatch(GO_DOWN);
        			dispatch(FLOOR_REACHED);
        		}
        		break;
        	}
        	}

		//To make the time go if nothing has been done in the elevator
        	if (timerCheckPoint == timePassed){
        		tick5();
        	}
        	
		//printStatus(waiting);
        	//printf("iteration no: %d",iterations);
		assert(currentFloor <= maxFloor && currentFloor >= 0);
        }
        printStatistics(waiting);
        fclose(l_outFile);
    }

    return 0;
}