#include <stdio.h>

#define ILOOP 2500

extern double tan(), atan(), exp(), log(), sqrt();

/************************************************************************/

sync_ticks()
{
	struct TIME
	{
		long days,minutes,ticks;
	} t;
	long ticks;

	DateStamp(&t);
	ticks = t.ticks;

	do
	{
		DateStamp(&t);
	} while (t.ticks == ticks);

	return(3000*t.minutes + t.ticks);
}

/************************************************************************/

cur_ticks()
{
	struct TIME
	{
		long days,minutes,ticks;
	} t;

	DateStamp(&t);
	return(3000*t.minutes + t.ticks);
}

/************************************************************************/

print_ticks_as_seconds(ticks)
int ticks;
{
	printf("%d.%02d seconds", ticks/50, (ticks%50)*2);
}

/************************************************************************/

main()
{
	int	i;
	double	a;
	int	start, end;

	printf("%d iterations:\n", ILOOP);
	start = sync_ticks();

	a = 1.0;

	for (i=1; i<ILOOP; i++)
		a = tan(atan(exp(log(sqrt(a*a))))) + 1.0;

	end = cur_ticks();

	printf("a = %20.14lf\n", a);
	printf("Done in ");
	print_ticks_as_seconds(end - start);
	printf(".\n");
}

