| #define RAD(x) ((x)*PI_180) |
| #define DEG(x) ((x)/PI_180) |
| #define ARCSECONDS_PER_RADIAN (DEG(1)*3600) |
| #define input_nybble(infile) input_nbits(infile,4) |
| |
| typedef float Angle; /* in radians */ |
| |
| enum |
| { |
| /* |
| * parameters for plate |
| */ |
| Pppo1 = 0, |
| Pppo2, |
| Pppo3, |
| Pppo4, |
| Pppo5, |
| Pppo6, |
| Pamdx1, |
| Pamdx2, |
| Pamdx3, |
| Pamdx4, |
| Pamdx5, |
| Pamdx6, |
| Pamdx7, |
| Pamdx8, |
| Pamdx9, |
| Pamdx10, |
| Pamdx11, |
| Pamdx12, |
| Pamdx13, |
| Pamdx14, |
| Pamdx15, |
| Pamdx16, |
| Pamdx17, |
| Pamdx18, |
| Pamdx19, |
| Pamdx20, |
| Pamdy1, |
| Pamdy2, |
| Pamdy3, |
| Pamdy4, |
| Pamdy5, |
| Pamdy6, |
| Pamdy7, |
| Pamdy8, |
| Pamdy9, |
| Pamdy10, |
| Pamdy11, |
| Pamdy12, |
| Pamdy13, |
| Pamdy14, |
| Pamdy15, |
| Pamdy16, |
| Pamdy17, |
| Pamdy18, |
| Pamdy19, |
| Pamdy20, |
| Ppltscale, |
| Pxpixelsz, |
| Pypixelsz, |
| Ppltra, |
| Ppltrah, |
| Ppltram, |
| Ppltras, |
| Ppltdec, |
| Ppltdecd, |
| Ppltdecm, |
| Ppltdecs, |
| Pnparam |
| }; |
| |
| typedef struct Plate Plate; |
| struct Plate |
| { |
| char rgn[7]; |
| char disk; |
| Angle ra; |
| Angle dec; |
| }; |
| |
| typedef struct Header Header; |
| struct Header |
| { |
| float param[Pnparam]; |
| int amdflag; |
| |
| float x; |
| float y; |
| float xi; |
| float eta; |
| }; |
| typedef int32 Type; |
| |
| typedef struct Image Image; |
| struct Image |
| { |
| int nx; |
| int ny; /* ny is the fast-varying dimension */ |
| Type a[1]; |
| }; |
| |
| int nplate; |
| Plate plate[2000]; /* needs to go to 2000 when the north comes */ |
| double PI_180; |
| double TWOPI; |
| int debug; |
| struct |
| { |
| float min; |
| float max; |
| float del; |
| double gamma; |
| int neg; |
| } gam; |
| |
| char* hms(Angle); |
| char* dms(Angle); |
| double xsqrt(double); |
| Angle dist(Angle, Angle, Angle, Angle); |
| Header* getheader(char*); |
| char* getword(char*, char*); |
| void amdinv(Header*, Angle, Angle, float, float); |
| void ppoinv(Header*, Angle, Angle); |
| void xypos(Header*, Angle, Angle, float, float); |
| void traneqstd(Header*, Angle, Angle); |
| Angle getra(char*); |
| Angle getdec(char*); |
| void getplates(void); |
| |
| Image* dssread(char*); |
| void hinv(Type*, int, int); |
| int input_bit(Biobuf*); |
| int input_nbits(Biobuf*, int); |
| void qtree_decode(Biobuf*, Type*, int, int, int, int); |
| void start_inputing_bits(void); |
| Bitmap* image(Angle, Angle, Angle, Angle); |
| int dogamma(int); |