Blob
1 #define RAD(x) ((x)*PI_180)2 #define DEG(x) ((x)/PI_180)3 #define ARCSECONDS_PER_RADIAN (DEG(1)*3600)4 #define input_nybble(infile) input_nbits(infile,4)6 typedef float Angle; /* in radians */8 enum9 {10 /*11 * parameters for plate12 */13 Pppo1 = 0,14 Pppo2,15 Pppo3,16 Pppo4,17 Pppo5,18 Pppo6,19 Pamdx1,20 Pamdx2,21 Pamdx3,22 Pamdx4,23 Pamdx5,24 Pamdx6,25 Pamdx7,26 Pamdx8,27 Pamdx9,28 Pamdx10,29 Pamdx11,30 Pamdx12,31 Pamdx13,32 Pamdx14,33 Pamdx15,34 Pamdx16,35 Pamdx17,36 Pamdx18,37 Pamdx19,38 Pamdx20,39 Pamdy1,40 Pamdy2,41 Pamdy3,42 Pamdy4,43 Pamdy5,44 Pamdy6,45 Pamdy7,46 Pamdy8,47 Pamdy9,48 Pamdy10,49 Pamdy11,50 Pamdy12,51 Pamdy13,52 Pamdy14,53 Pamdy15,54 Pamdy16,55 Pamdy17,56 Pamdy18,57 Pamdy19,58 Pamdy20,59 Ppltscale,60 Pxpixelsz,61 Pypixelsz,62 Ppltra,63 Ppltrah,64 Ppltram,65 Ppltras,66 Ppltdec,67 Ppltdecd,68 Ppltdecm,69 Ppltdecs,70 Pnparam71 };73 typedef struct Plate Plate;74 struct Plate75 {76 char rgn[7];77 char disk;78 Angle ra;79 Angle dec;80 };82 typedef struct Header Header;83 struct Header84 {85 float param[Pnparam];86 int amdflag;88 float x;89 float y;90 float xi;91 float eta;92 };93 typedef long Type;95 typedef struct Image Image;96 struct Image97 {98 int nx;99 int ny; /* ny is the fast-varying dimension */100 Type a[1];101 };103 int nplate;104 Plate plate[2000]; /* needs to go to 2000 when the north comes */105 double PI_180;106 double TWOPI;107 int debug;108 struct109 {110 float min;111 float max;112 float del;113 double gamma;114 int neg;115 } gam;117 char* hms(Angle);118 char* dms(Angle);119 double xsqrt(double);120 Angle dist(Angle, Angle, Angle, Angle);121 Header* getheader(char*);122 char* getword(char*, char*);123 void amdinv(Header*, Angle, Angle, float, float);124 void ppoinv(Header*, Angle, Angle);125 void xypos(Header*, Angle, Angle, float, float);126 void traneqstd(Header*, Angle, Angle);127 Angle getra(char*);128 Angle getdec(char*);129 void getplates(void);131 Image* dssread(char*);132 void hinv(Type*, int, int);133 int input_bit(Biobuf*);134 int input_nbits(Biobuf*, int);135 void qtree_decode(Biobuf*, Type*, int, int, int, int);136 void start_inputing_bits(void);137 Bitmap* image(Angle, Angle, Angle, Angle);138 int dogamma(int);