/**********************************************************************/
/*
Calculate speed tables.

Author: Dave Micon, 12/15/2004
*/
/**********************************************************************/
#include <stdio.h>
#include <math.h>
#define MAX_SPEED 400.0	// maximum output speed in 1/10 deg
#define MIN_SPEED 5.0 // min output speed in 1/10 deg
#define MAX_INPUT_SPEED 63 // max input speed value
#define MIN_INPUT_SPEED 7 /* min input speed value after flat minimum speed */
void main(void)
	{
	int i;
	FILE *outfile;
	double multiplier, multiplyvalue;
	double adder, addvalue;
	double value;

	outfile = fopen("temp.tmp", "w");
	adder = (MAX_SPEED - MIN_SPEED) / (MAX_INPUT_SPEED - MIN_INPUT_SPEED + 1);
	multiplier = pow(MAX_SPEED - MIN_SPEED, 1.0 / (MAX_INPUT_SPEED - MIN_INPUT_SPEED + 1));
	addvalue = multiplyvalue = MIN_SPEED;
	value = (addvalue + multiplyvalue) / 2.0;
	for (i = 0; i < MIN_INPUT_SPEED; i++)
		{
		printf("%4.0f", value);
		fprintf(outfile, "%4.0f", value);
		printf(",");
		fprintf(outfile, ",");
		if (i % 8 == 7)
			{
			printf("\n");
			fprintf(outfile, "\n");
			}
		}
	addvalue = adder;
	multiplyvalue = multiplier;
	for (i = MIN_INPUT_SPEED; i <= MAX_INPUT_SPEED; i++)
		{
		value = (addvalue + multiplyvalue) / 2.0;
		printf("%4.0f", value + MIN_SPEED);
		fprintf(outfile, "%4.0f", value + MIN_SPEED);
		if (i != MAX_INPUT_SPEED)
			{
			printf(",");
			fprintf(outfile, ",");
			}
		if (i % 8 == 7)
			{
			printf("\n");
			fprintf(outfile, "\n");
			}
		addvalue += adder;
		multiplyvalue *= multiplier;
		}
	fclose(outfile);
	}