Annotation of researchv10dc/cmd/map/map.h, revision 1.1

1.1     ! root        1: #include <math.h>
        !             2: #include <stdlib.h>
        !             3: #include <stdio.h>
        !             4: #include <string.h>
        !             5: #ifdef PLOT
        !             6: #include PLOT
        !             7: #else
        !             8: #include "iplot.h"
        !             9: #endif
        !            10: 
        !            11: #ifndef PI
        !            12: #define PI     3.1415926535897932384626433832795028841971693993751
        !            13: #endif
        !            14: 
        !            15: #define TWOPI (2*PI)
        !            16: #define RAD (PI/180)
        !            17: double hypot(double, double);  /* sqrt(a*a+b*b) */
        !            18: double tan(double);            /* not in K&R library */
        !            19: 
        !            20: #define ECC .08227185422       /* eccentricity of earth */
        !            21: #define EC2 .006768657997
        !            22: 
        !            23: #define FUZZ .0001
        !            24: #define UNUSED 0.0             /* a dummy double parameter */
        !            25: 
        !            26: struct coord {
        !            27:        double l;       /* lat or lon in radians*/
        !            28:        double s;       /* sin */
        !            29:        double c;       /* cos */
        !            30: };
        !            31: struct place {
        !            32:        struct coord nlat;
        !            33:        struct coord wlon;
        !            34: };
        !            35: 
        !            36: typedef int (*proj)(struct place *, double *, double *);
        !            37: 
        !            38: struct index {         /* index of known projections */
        !            39:        char *name;     /* name of projection */
        !            40:        proj (*prog)(double, double);
        !            41:                        /* pointer to projection function */
        !            42:        int npar;       /* number of params */
        !            43:        int (*cut)(struct place *, struct place *, double *);
        !            44:                        /* function that handles cuts--eg longitude 180 */
        !            45:        int poles;      /*1 S pole is a line, 2 N pole is, 3 both*/
        !            46:        int spheroid;   /* poles must be at 90 deg if nonzero */
        !            47: };
        !            48: 
        !            49: 
        !            50: proj   aitoff(void);
        !            51: proj   albers(double, double);
        !            52: int    Xazequalarea(struct place *, double *, double *);
        !            53: proj   azequalarea(void);
        !            54: int    Xazequidistant(struct place *, double *, double *);
        !            55: proj   azequidistant(void);
        !            56: proj   bicentric(double);
        !            57: proj   bonne(double);
        !            58: proj   conic(double);
        !            59: proj   cylequalarea(double);
        !            60: int    Xcylindrical(struct place *, double *, double *);
        !            61: proj   cylindrical(void);
        !            62: proj   elliptic(double);
        !            63: proj   fisheye(double);
        !            64: proj   gall(double);
        !            65: proj   globular(void);
        !            66: proj   gnomonic(void);
        !            67: int    guycut(struct place *, struct place *, double *);
        !            68: int    Xguyou(struct place *, double *, double *);
        !            69: proj   guyou(void);
        !            70: proj   harrison(double, double);
        !            71: int    hexcut(struct place *, struct place *, double *);
        !            72: proj   hex(void);
        !            73: proj   homing(double);
        !            74: proj   lagrange(void);
        !            75: proj   lambert(double, double);
        !            76: proj   laue(void);
        !            77: proj   loxodromic(double);     /* not in library */
        !            78: proj   mecca(double);
        !            79: proj   mercator(void);
        !            80: proj   mollweide(void);
        !            81: proj   newyorker(double);
        !            82: proj   ortelius(double, double);       /* not in library */
        !            83: int    Xorthographic(struct place *place, double *x, double *y);
        !            84: proj   orthographic(void);
        !            85: proj   perspective(double);
        !            86: int    Xpolyconic(struct place *, double *, double *);
        !            87: proj   polyconic(void);
        !            88: proj   rectangular(double);
        !            89: proj   simpleconic(double, double);
        !            90: int    Xsinusoidal(struct place *, double *, double *);
        !            91: proj   sinusoidal(void);
        !            92: proj   sp_albers(double, double);
        !            93: proj   sp_mercator(void);
        !            94: proj   square(void);
        !            95: int    Xstereographic(struct place *, double *, double *);
        !            96: proj   stereographic(void);
        !            97: int    Xtetra(struct place *, double *, double *);
        !            98: int    tetracut(struct place *, struct place *, double *);
        !            99: proj   tetra(void);
        !           100: proj   trapezoidal(double, double);
        !           101: proj   vandergrinten(void);
        !           102: proj   wreath(double, double); /* not in library */
        !           103: 
        !           104: void   findxy(double, double *, double *);
        !           105: void   albscale(double, double, double, double);
        !           106: void   invalb(double, double, double *, double *);
        !           107: 
        !           108: void   cdiv(double, double, double, double, double *, double *);
        !           109: void   cmul(double, double, double, double, double *, double *);
        !           110: void   csq(double, double, double *, double *);
        !           111: void   csqrt(double, double, double *, double *);
        !           112: void   ccubrt(double, double, double *, double *);
        !           113: double cubrt(double);
        !           114: int    elco2(double, double, double, double, double, double *, double *);
        !           115: void   cdiv2(double, double, double, double, double *, double *);
        !           116: void   csqr(double, double, double *, double *);
        !           117: 
        !           118: void   orient(double, double, double);
        !           119: void   latlon(double, double, struct place *);
        !           120: void   deg2rad(double, struct coord *);
        !           121: void   sincos(struct coord *);
        !           122: void   normalize(struct place *);
        !           123: void   invert(struct place *);
        !           124: void   norm(struct place *, struct place *, struct coord *);
        !           125: void   printp(struct place *);
        !           126: void   copyplace(struct place *, struct place *);
        !           127: 
        !           128: int    picut(struct place *, struct place *, double *);
        !           129: int    ckcut(struct place *, struct place *, double);
        !           130: double reduce(double);
        !           131: 
        !           132: void   getsyms(char *);
        !           133: int    putsym(struct place *, char *, double, int);
        !           134: void   filerror(char *s, char *f);
        !           135: void   error(char *s);
        !           136: int    doproj(struct place *, int *, int *);
        !           137: int    cpoint(int, int, int);
        !           138: int    plotpt(struct place *, int);
        !           139: int    nocut(struct place *, struct place *, double *);
        !           140: 
        !           141: extern int (*projection)(struct place *, double *, double *);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.