⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timefunc.c

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 C
字号:
/* timefunc.c,v 1.3 2000/09/22 19:30:37 brunsch Exp *//************************************************************************** *									  * * 		 Copyright (C) 1995 Silicon Graphics, Inc.		  * *									  * *  These coded instructions, statements, and computer programs were	  * *  developed by SGI for public use.  If any changes are made to this code* *  please try to get the changes back to the author.  Feel free to make  * *  modifications and changes to the code and release it.		  * *									  * **************************************************************************//* FUZZ: disable check_for_math_include */#ifndef WIN32#include <netdb.h>#include <sys/time.h>#include <sys/param.h>#else#include <windows.h>#include <winsock.h>#include <time.h>#endif /* WIN32 */#include <math.h>#include <stdio.h>#include "sysdep.h"#include "bench.h"doubletimevaldouble(struct timeval *tin){    return ((double)tin->tv_sec + ((double)tin->tv_usec / USECINSEC));}voiddoubletimeval(const double tin, struct timeval *tout){    tout->tv_sec = (long)floor(tin);	    tout->tv_usec = (long)((tin - tout->tv_sec) * USECINSEC );}voidaddtime(struct timeval *OrigTime, struct timeval *NewTime){    OrigTime->tv_usec += NewTime->tv_usec;    if(OrigTime->tv_usec >= USECINSEC)    {        /*         * NEED TO CARRY 1.         */        OrigTime->tv_sec++;        OrigTime->tv_usec -= USECINSEC;    }    OrigTime->tv_sec += NewTime->tv_sec;}voidcompdifftime(struct timeval *EndTime, struct timeval *StartTime, struct timeval *DiffTime){    struct timeval endtime = *EndTime;      if((endtime.tv_usec - StartTime->tv_usec) < 0)      {         /*          * NEED TO BORROW.          */          endtime.tv_usec += USECINSEC;          endtime.tv_sec--;      }      DiffTime->tv_usec = endtime.tv_usec - StartTime->tv_usec;      DiffTime->tv_sec =  endtime.tv_sec  - StartTime->tv_sec;}voidmintime(struct timeval *CurrMinTime, struct timeval *CheckMinTime){    if(CheckMinTime->tv_sec < CurrMinTime->tv_sec)    {       *CurrMinTime = *CheckMinTime;       return;    }    if(CheckMinTime->tv_sec == CurrMinTime->tv_sec)    {        if(CheckMinTime->tv_usec < CurrMinTime->tv_usec)        {           *CurrMinTime = *CheckMinTime;           return;        }    }}voidmaxtime(struct timeval *CurrMaxTime, struct timeval *CheckMaxTime){    if(CheckMaxTime->tv_sec > CurrMaxTime->tv_sec)    {       *CurrMaxTime = *CheckMaxTime;       return;    }    if(CheckMaxTime->tv_sec == CurrMaxTime->tv_sec)    {        if(CheckMaxTime->tv_usec > CurrMaxTime->tv_usec)        {           *CurrMaxTime = *CheckMaxTime;           return;        }    }}voidavgtime(struct timeval *TotalTime, int NumTimes, struct timeval *AvgTime){    double	meantime;    meantime = mean(timevaldouble(TotalTime), NumTimes);    doubletimeval(meantime, AvgTime);}voidsqtime(struct timeval *Time, struct timeval *SqTime){    double 	sec;    sec = timevaldouble(Time);    sec *= sec;	 /* square */    doubletimeval(sec, SqTime);}voidvariancetime(struct timeval *SumTime, double SumSquareTime, int NumTimes, struct timeval *VarianceTime){    double	result;    result = variance(timevaldouble(SumTime), SumSquareTime, NumTimes);    doubletimeval(result, VarianceTime);}voidstddevtime(struct timeval *SumTime, double SumSquareTime,	   int NumTimes, struct timeval *StdDevTime){    double	result;    result = stddev(timevaldouble(SumTime), SumSquareTime, NumTimes);    doubletimeval(result, StdDevTime);}doublethruputpersec(const double n, struct timeval *t){    double tv;        tv = timevaldouble(t);    if (tv != 0)	return n / timevaldouble(t);    else	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -