// Sine/Cosine lookup tables (c)1998 James Shaughnessy // Created with SCBUILD.EXE See http://www.netyaroze-europe.com/~shaughnj long SIN[360] = { 0, 71, 142, 214, 285, 356, 428, 499, 570, 640, 711, 781, 851, 921, 990, 1060, 1129, 1197, 1265, 1333, 1400, 1467, 1534, 1600, 1665, 1731, 1795, 1859, 1922, 1985, 2047, 2109, 2170, 2230, 2290, 2349, 2407, 2465, 2521, 2577, 2632, 2687, 2740, 2793, 2845, 2896, 2946, 2995, 3043, 3091, 3137, 3183, 3227, 3271, 3313, 3355, 3395, 3435, 3473, 3510, 3547, 3582, 3616, 3649, 3681, 3712, 3741, 3770, 3797, 3823, 3848, 3872, 3895, 3917, 3937, 3956, 3974, 3991, 4006, 4020, 4033, 4045, 4056, 4065, 4073, 4080, 4086, 4090, 4093, 4095, 4096, 4095, 4093, 4090, 4086, 4080, 4073, 4065, 4056, 4045, 4033, 4020, 4006, 3991, 3974, 3956, 3937, 3917, 3895, 3872, 3848, 3823, 3797, 3770, 3741, 3712, 3681, 3649, 3616, 3582, 3547, 3510, 3473, 3435, 3395, 3355, 3313, 3271, 3227, 3183, 3137, 3091, 3043, 2995, 2946, 2896, 2845, 2793, 2740, 2687, 2632, 2577, 2521, 2465, 2407, 2349, 2290, 2230, 2170, 2109, 2047, 1985, 1922, 1859, 1795, 1731, 1665, 1600, 1534, 1467, 1400, 1333, 1265, 1197, 1129, 1060, 990, 921, 851, 781, 711, 640, 570, 499, 428, 356, 285, 214, 142, 71, 0, -71, -142, -214, -285, -356, -428, -499, -570, -640, -711, -781, -851, -921, -990, -1060, -1129, -1197, -1265, -1333, -1400, -1467, -1534, -1600, -1665, -1731, -1795, -1859, -1922, -1985, -2047, -2109, -2170, -2230, -2290, -2349, -2407, -2465, -2521, -2577, -2632, -2687, -2740, -2793, -2845, -2896, -2946, -2995, -3043, -3091, -3137, -3183, -3227, -3271, -3313, -3355, -3395, -3435, -3473, -3510, -3547, -3582, -3616, -3649, -3681, -3712, -3741, -3770, -3797, -3823, -3848, -3872, -3895, -3917, -3937, -3956, -3974, -3991, -4006, -4020, -4033, -4045, -4056, -4065, -4073, -4080, -4086, -4090, -4093, -4095, -4096, -4095, -4093, -4090, -4086, -4080, -4073, -4065, -4056, -4045, -4033, -4020, -4006, -3991, -3974, -3956, -3937, -3917, -3895, -3872, -3848, -3823, -3797, -3770, -3741, -3712, -3681, -3649, -3616, -3582, -3547, -3510, -3473, -3435, -3395, -3355, -3313, -3271, -3227, -3183, -3137, -3091, -3043, -2995, -2946, -2896, -2845, -2793, -2740, -2687, -2632, -2577, -2521, -2465, -2407, -2349, -2290, -2230, -2170, -2109, -2048, -1985, -1922, -1859, -1795, -1731, -1665, -1600, -1534, -1467, -1400, -1333, -1265, -1197, -1129, -1060, -990, -921, -851, -781, -711, -640, -570, -499, -428, -356, -285, -214, -142, -71 }; long COS[360] = { 4096, 4095, 4093, 4090, 4086, 4080, 4073, 4065, 4056, 4045, 4033, 4020, 4006, 3991, 3974, 3956, 3937, 3917, 3895, 3872, 3848, 3823, 3797, 3770, 3741, 3712, 3681, 3649, 3616, 3582, 3547, 3510, 3473, 3435, 3395, 3355, 3313, 3271, 3227, 3183, 3137, 3091, 3043, 2995, 2946, 2896, 2845, 2793, 2740, 2687, 2632, 2577, 2521, 2465, 2407, 2349, 2290, 2230, 2170, 2109, 2048, 1985, 1922, 1859, 1795, 1731, 1665, 1600, 1534, 1467, 1400, 1333, 1265, 1197, 1129, 1060, 990, 921, 851, 781, 711, 640, 570, 499, 428, 356, 285, 214, 142, 71, 0, -71, -142, -214, -285, -356, -428, -499, -570, -640, -711, -781, -851, -921, -990, -1060, -1129, -1197, -1265, -1333, -1400, -1467, -1534, -1600, -1665, -1731, -1795, -1859, -1922, -1985, -2047, -2109, -2170, -2230, -2290, -2349, -2407, -2465, -2521, -2577, -2632, -2687, -2740, -2793, -2845, -2896, -2946, -2995, -3043, -3091, -3137, -3183, -3227, -3271, -3313, -3355, -3395, -3435, -3473, -3510, -3547, -3582, -3616, -3649, -3681, -3712, -3741, -3770, -3797, -3823, -3848, -3872, -3895, -3917, -3937, -3956, -3974, -3991, -4006, -4020, -4033, -4045, -4056, -4065, -4073, -4080, -4086, -4090, -4093, -4095, -4096, -4095, -4093, -4090, -4086, -4080, -4073, -4065, -4056, -4045, -4033, -4020, -4006, -3991, -3974, -3956, -3937, -3917, -3895, -3872, -3848, -3823, -3797, -3770, -3741, -3712, -3681, -3649, -3616, -3582, -3547, -3510, -3473, -3435, -3395, -3355, -3313, -3271, -3227, -3183, -3137, -3091, -3043, -2995, -2946, -2896, -2845, -2793, -2740, -2687, -2632, -2577, -2521, -2465, -2407, -2349, -2290, -2230, -2170, -2109, -2048, -1985, -1922, -1859, -1795, -1731, -1665, -1600, -1534, -1467, -1400, -1333, -1265, -1197, -1129, -1060, -990, -921, -851, -781, -711, -640, -570, -499, -428, -356, -285, -214, -142, -71, 0, 71, 142, 214, 285, 356, 428, 499, 570, 640, 711, 781, 851, 921, 990, 1060, 1129, 1197, 1265, 1333, 1400, 1467, 1534, 1600, 1665, 1731, 1795, 1859, 1922, 1985, 2048, 2109, 2170, 2230, 2290, 2349, 2407, 2465, 2521, 2577, 2632, 2687, 2740, 2793, 2845, 2896, 2946, 2995, 3043, 3091, 3137, 3183, 3227, 3271, 3313, 3355, 3395, 3435, 3473, 3510, 3547, 3582, 3616, 3649, 3681, 3712, 3741, 3770, 3797, 3823, 3848, 3872, 3895, 3917, 3937, 3956, 3974, 3991, 4006, 4020, 4033, 4045, 4056, 4065, 4073, 4080, 4086, 4090, 4093, 4095 };