#include "tables.h"

struct vecinfo  vectab[] =
{
	{15.9688, 0.0, 0.9981, 86.4237},
	{15.8764, 0.0, 1.9846, 82.8750},
	{15.7260, 0.0, 2.9486, 79.3803},
	{15.5223, 0.0, 3.8806, 75.9638},
	{15.2717, 0.0, 4.7724, 72.6460},
	{14.9813, 0.0, 5.6180, 69.4440},
	{14.6585, 0.0, 6.4131, 66.3706},
	{14.3108, 0.0, 7.1554, 63.4349},
	{13.9452, 0.0, 7.8442, 60.6422},
	{13.5680, 0.0, 8.4800, 57.9946},
	{13.1847, 0.0, 9.0645, 55.4915},
	{12.8000, 0.0, 9.6000, 53.1301},
	{12.4178, 0.0, 10.0895, 50.9061},
	{12.0412, 0.0, 10.5361, 48.8141},
	{11.6726, 0.0, 10.9431, 46.8476},
	{11.3137, 0.0, 11.3137, 45.0000},
	{10.9431, 0.0, 11.6726, 43.1524},
	{10.5361, 0.0, 12.0412, 41.1859},
	{10.0895, 0.0, 12.4178, 39.0939},
	{9.6000, 0.0, 12.8000, 36.8699},
	{9.0645, 0.0, 13.1847, 34.5085},
	{8.4800, 0.0, 13.5680, 32.0054},
	{7.8442, 0.0, 13.9452, 29.3578},
	{7.1554, 0.0, 14.3108, 26.5651},
	{6.4131, 0.0, 14.6585, 23.6294},
	{5.6180, 0.0, 14.9813, 20.5560},
	{4.7724, 0.0, 15.2717, 17.3540},
	{3.8806, 0.0, 15.5223, 14.0362},
	{2.9486, 0.0, 15.7260, 10.6197},
	{1.9846, 0.0, 15.8764, 7.1250},
	{0.9981, 0.0, 15.9688, 3.5763},
	{0.0, 0.0, 16.0000, 0.0000},
	{0.0, 0.9981, 15.9688, -3.5763},
	{0.0, 1.9846, 15.8764, -7.1250},
	{0.0, 2.9486, 15.7260, -10.6197},
	{0.0, 3.8806, 15.5223, -14.0362},
	{0.0, 4.7724, 15.2717, -17.3540},
	{0.0, 5.6180, 14.9813, -20.5560},
	{0.0, 6.4131, 14.6585, -23.6294},
	{0.0, 7.1554, 14.3108, -26.5651},
	{0.0, 7.8442, 13.9452, -29.3578},
	{0.0, 8.4800, 13.5680, -32.0054},
	{0.0, 9.0645, 13.1847, -34.5085},
	{0.0, 9.6000, 12.8000, -36.8699},
	{0.0, 10.0895, 12.4178, -39.0939},
	{0.0, 10.5361, 12.0412, -41.1859},
	{0.0, 10.9431, 11.6726, -43.1524},
	{0.0, 11.3137, 11.3137, -45.0000},
	{0.0, 11.6726, 10.9431, -46.8476},
	{0.0, 12.0412, 10.5361, -48.8141},
	{0.0, 12.4178, 10.0895, -50.9061},
	{0.0, 12.8000, 9.6000, -53.1301},
	{0.0, 13.1847, 9.0645, -55.4915},
	{0.0, 13.5680, 8.4800, -57.9946},
	{0.0, 13.9452, 7.8442, -60.6422},
	{0.0, 14.3108, 7.1554, -63.4349},
	{0.0, 14.6585, 6.4131, -66.3706},
	{0.0, 14.9813, 5.6180, -69.4440},
	{0.0, 15.2717, 4.7724, -72.6460},
	{0.0, 15.5223, 3.8806, -75.9638},
	{0.0, 15.7260, 2.9486, -79.3803},
	{0.0, 15.8764, 1.9846, -82.8750},
	{0.0, 15.9688, 0.9981, -86.4237},
	{8.0000, 0.0, 0.0, 90.0000},
	{7.9382, 0.0, 0.9923, 82.8750},
	{7.7611, 0.0, 1.9403, 75.9638},
	{7.4906, 0.0, 2.8090, 69.4440},
	{7.1554, 0.0, 3.5777, 63.4349},
	{6.7840, 0.0, 4.2400, 57.9946},
	{6.4000, 0.0, 4.8000, 53.1301},
	{6.0206, 0.0, 5.2680, 48.8141},
	{5.6569, 0.0, 5.6569, 45.0000},
	{5.2680, 0.0, 6.0206, 41.1859},
	{4.8000, 0.0, 6.4000, 36.8699},
	{4.2400, 0.0, 6.7840, 32.0054},
	{3.5777, 0.0, 7.1554, 26.5651},
	{2.8090, 0.0, 7.4906, 20.5560},
	{1.9403, 0.0, 7.7611, 14.0362},
	{0.9923, 0.0, 7.9382, 7.1250},
	{0.0, 0.0, 8.0000, 0.0000},
	{0.0, 0.9923, 7.9382, -7.1250},
	{0.0, 1.9403, 7.7611, -14.0362},
	{0.0, 2.8090, 7.4906, -20.5560},
	{0.0, 3.5777, 7.1554, -26.5651},
	{0.0, 4.2400, 6.7840, -32.0054},
	{0.0, 4.8000, 6.4000, -36.8699},
	{0.0, 5.2680, 6.0206, -41.1859},
	{0.0, 5.6569, 5.6569, -45.0000},
	{0.0, 6.0206, 5.2680, -48.8141},
	{0.0, 6.4000, 4.8000, -53.1301},
	{0.0, 6.7840, 4.2400, -57.9946},
	{0.0, 7.1554, 3.5777, -63.4349},
	{0.0, 7.4906, 2.8090, -69.4440},
	{0.0, 7.7611, 1.9403, -75.9638},
	{0.0, 7.9382, 0.9923, -82.8750},
	{0.0, 8.0000, 0.0, -90.0000},
	{4.0000, 0.0, 0.0, 90.0000},
	{3.8806, 0.0, 0.9701, 75.9638},
	{3.5777, 0.0, 1.7889, 63.4349},
	{3.2000, 0.0, 2.4000, 53.1301},
	{2.8284, 0.0, 2.8284, 45.0000},
	{2.4000, 0.0, 3.2000, 36.8699},
	{1.7889, 0.0, 3.5777, 26.5651},
	{0.9701, 0.0, 3.8806, 14.0362},
	{0.0, 0.0, 4.0000, 0.0000},
	{0.0, 0.9701, 3.8806, -14.0362},
	{0.0, 1.7889, 3.5777, -26.5651},
	{0.0, 2.4000, 3.2000, -36.8699},
	{0.0, 2.8284, 2.8284, -45.0000},
	{0.0, 3.2000, 2.4000, -53.1301},
	{0.0, 3.5777, 1.7889, -63.4349},
	{0.0, 3.8806, 0.9701, -75.9638},
	{0.0, 4.0000, 0.0, -90.0000},
	{2.0000, 0.0, 0.0, 90.0000},
	{1.7889, 0.0, 0.8944, 63.4349},
	{1.4142, 0.0, 1.4142, 45.0000},
	{0.8944, 0.0, 1.7889, 26.5651},
	{0.0, 0.0, 2.0000, 0.0000},
	{0.0, 0.8944, 1.7889, -26.5651},
	{0.0, 1.4142, 1.4142, -45.0000},
	{0.0, 1.7889, 0.8944, -63.4349},
	{0.0, 2.0000, 0.0, -90.0000},
	{1.0000, 0.0, 0.0, 90.0000},
	{0.7071, 0.0, 0.7071, 45.0000},
	{0.0, 0.0, 1.0000, 0.0000},
	{0.0, 0.7071, 0.7071, -45.0000},
	{0.0, 1.0000, 0.0, -90.0000},
	{0.0, 0.0, 0.0, -90.0000},
};

double          catrommtx[4][4] =
{
	-0.5, 1.5, -1.5, 0.5,
	1.0, -2.5, 2.0, -0.5,
	-0.5, 0.0, 0.5, 0.0,
	0.0, 1.0, 0.0, 0.0,
};

double          bsplmtx[4][4] =
{
	-1.0 / 6.0, 0.5, -0.5, 1.0 / 6.0,
	0.5, -1.0, 0.5, 0.0,
	-0.5, 0.0, 0.5, 0.0,
	1.0 / 6.0, 2.0 / 3.0, 1.0 / 6.0, 0.0,
};

double          cardmtx[4][4] =
{
	-1.0, 1.0, -1.0, 1.0,
	2.0, -2.0, 1.0, -1.0,
	-1.0, 0.0, 1.0, 0.0,
	0.0, 1.0, 0.0, 0.0,
};