short sin128(short degrees) { short newdeg; char neg=1; if(degrees<0) neg=-1; //abs(degrees) (domain changed to 2pi) newdeg=(degrees%360)*neg; if(newdeg>=0 && newdeg<=90) { return sin128_table[degrees]*neg; } if(newdeg>90 && newdeg<=180) { return sin128_table[180-degrees]*neg; } if(newdeg>180 && newdeg<=270) { return -sin128_table[degrees-180]*neg; } if(newdeg>270 && newdeg<360) { return -sin128_table[360-degrees]*neg; } return -129; }