/* loops */
#include	<stdio.h>
#include	<time.h>
#include	<math.h>

#define tc1 t1=clock()
#define tc2 t2=clock()
#define get_t tt=(t2-t1)

int		func()
{
	return(0);
}

void	main()
{
		
	int		a,b;
	int		t1,t2;
	int		i;
	int		tt;
	double	f;

	b=CLK_TCK;
	printf("ベンチマークを開始します。単位は%d分の一秒です\n",b);

	
	tc1;
	for (i=0;i<1000000;i++)
	{;}										/* 何もしない */
	tc2;
	get_t;
	printf("百万回ループ...%d\n",tt);
	
	tc1;
	for (i=0;i<1000000;i++)
		a=a+2;
	tc2;
	get_t;
	printf("加算百万回...%d\n",tt);
	
	tc1;
	for (i=0;i<1000000;i++)
		a=a+2;
	tc2;
	get_t;
	printf("減算百万回...%d\n",tt);
	
	tc1;
	for (i=0;i<10000;i++)
		f=f*1.00001;
	tc2;
	get_t;
	printf("小数点乗算一万回...%d\n",tt);
	
	tc1;
	for (i=0;i<10000;i++)
		f=f/1.00001;
	tc2;
	get_t;
	printf("小数点除算一万回...%d\n",tt);
	
	a=0;
	tc1;
	for (i=0;i<1000000;i++)
		a=a*2;
	tc2;
	get_t;
	printf("整数乗算百万回...%d\n",tt);
	
	tc1;
	for (i=0;i<1000000;i++)
		a=a/2;
	tc2;
	get_t;
	printf("整数除算百万回...%d\n",tt);


	tc1;
	i=0;
	ifloop:;
	if (i!=100000)
	{
		i++;
		goto ifloop;
	}
	tc2;
	get_t;
	printf("ｉｆ文によるループ十万回...%d\n",tt);
	
	tc1;
	for (i=0;i<100000;i++)
		func();
	tc2;
	get_t;
	printf("関数の呼出し十万回...%d\n",tt);
	
	tc1;
	for (i=0;i<1000;i++)
		f=sin(1);
	tc2;
	get_t;
	printf("サイン関数千回...%d\n",tt);
	
	tc1;
	for (i=0;i<1000;i++)
		f=cos(1);
	tc2;
	get_t;
	printf("コサイン関数千回...%d\n",tt);
	
	tc1;
	for (i=0;i<1000;i++)
		f=tan(1);
	tc2;
	get_t;
	printf("タンジェント関数千回...%d\n",tt);
	
	
	
	return;
}

