/* ** cordic -- program to calculate various functions ** (e.g. trigonometric) using CORDIC techniques ** ** original author unknown ** modified by Joseph B. Evans, 11/15/91 ** evans@shannon.tisl.ukans.edu */ # define DEGREES 1 # define BITS 32 # define COSCALE 0x22c2dd1c /* 0.271572 */ # ifdef DEGREES /* MS 10 integral bits */ # define MSBITS 10 # define QUARTER (90 << (BITS-MSBITS)) # else # ifdef RADIANS /* MS 4 integral bits */ # define MSBITS 4 # define QUARTER ((int)(3.141592654 / 2.0 * (1 << (BITS-MSBITS)))) # else # define BRADS 1 /* MS 2 integral bits */ # define MSBITS 2 # define QUARTER (1 << (BITS-MSBITS)) # endif # endif extern frmul(long, long); extern fxatan2(long, long); extern fxcs(long *,long *,long); extern fxpolarize(long *, long*); extern fxprenorm(long *, long *); extern fxrotate(long *, long *, long); extern fxunitvec(long *, long *, long); extern pseudopolarize(long *, long *); extern pseudorotate(long *, long *, long);