/*
 * Math lib 
 */

#include "math.h"

static char near _sin_table[] ={
  0,1,3,5,6,8,10,12,13,15,17,19,20,22,24,
  25,27,29,30,32,34,35,37,39,40,42,43,45,46,48,
  49,51,52,54,55,57,58,60,61,62,64,65,66,68,69,
  70,71,73,74,75,76,77,78,79,80,81,82,83,84,85,
  86,87,88,89,89,90,91,92,92,93,93,94,95,95,96,
  96,97,97,97,98,98,98,99,99,99,99,99,99,99,99
};

int
sin(int deg_)
{
  int s;
  if (deg_ < 0 || deg_ >= 360) {
    /* normalize */
    deg_ = abs(deg_);
    deg_ %= 360;
  }
  if (deg_ < 90) {
    s = _sin_table[deg_];
  } else if (deg_ == 90) {
    s = 100;
  } else if (deg_ < 180) {
    s = _sin_table[180 - deg_];
  } else if (deg_ < 270) {
    s = -_sin_table[deg_ - 180];
  } else if (deg_ == 270) {
    s = -100;
  } else {
    s = -_sin_table[360 - deg_];
  }
  return s;
}
