/* ** 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 /* 583195932 or 0.271571768 * 2^31 */ # if 0 # ifdef DEGREES # define MSBITS 10 /* MS 10 integral bits */ # define QUARTER (90 << (BITS-MSBITS)) # endif # ifdef RADIANS # define MSBITS 4 /* MS 4 integral bits */ # define QUARTER ((int)(3.141592654 / 2.0 * (1 << (BITS-MSBITS)))) # endif # ifdef BRADS # define MSBITS 2 /* MS 2 integral bits */ # define QUARTER (1 << (BITS-MSBITS)) # endif # endif extern long frmul(long, long); extern long fxatan2(long, long, int); extern void fxpolarize(long *, long*, int); extern int fxprenorm(long *, long *, int); extern void fxrotate(long *, long *, long, int); extern void fxunitvec(long *, long *, long, int); extern void pseudopolarize(long *, long *, int); extern void pseudorotate(long *, long *, long, int);