#ifndef PROTO

#ifdef __STDC__
# define	PROTO(s) s
#else
# define PROTO(s) ()
#endif

/* aasincos.c */
double aasin PROTO((double v ));
double aacos PROTO((double v ));
double asqrt PROTO((double v ));

/* adjlon.c */
double adjlon PROTO((double lon ));

/* bchgen.c */
int bchgen PROTO((UV a , UV b , int nu , int nv , UV **f , UV (*func )(UV )));

/* dmstor.c */
double dmstor PROTO((const char *is , char **rs ));

/* emess.c */
void emess PROTO((int code , char *fmt , ...));

/* file1.c */

/* gen_cheby.c */
int gen_cheby PROTO((int inverse , UV proj (), char *s , PJ *P , int iargc , char **iargv ));

/* pj_auth.c */
double *pj_authset PROTO((double es ));
double pj_authlat PROTO((double beta , double *APA ));

/* pj_deriv.c */
DERIVS *pj_deriv PROTO((LP lp , double h , PJ *P ));

/* pj_ellps.c */

/* pj_factors.c */
void pj_factors PROTO((LP lp , PJ *P ));

/* pj_fwd.c */
XY pj_fwd PROTO((LP lp , PJ *P ));

/* pj_init.c */
PVALUE *pj_param PROTO((char *opt , char *def ));
PJ *pj_init PROTO((int argc , char **argv ));
void pj_free PROTO((PJ *P ));
void pj_pr_list PROTO((PJ *P ));

/* pj_inv.c */
LP pj_inv PROTO((XY xy , PJ *P ));

/* pj_list.c */

/* pj_mlfn.c */
double *pj_enfn PROTO((double es ));
double pj_mlfn PROTO((double phi , double sphi , double cphi , double *en ));
double pj_inv_mlfn PROTO((double arg , double es , double *en ));

/* pj_msfn.c */
double pj_msfn PROTO((double sinphi , double cosphi , double es ));

/* pj_ninvrs.c */
LP pj_ninvrs PROTO((XY xy , LP lp , PJ *P ));

/* pj_phi2.c */
double pj_phi2 PROTO((double ts , double e ));

/* pj_qsfn.c */
double pj_qsfn PROTO((double sinphi , double e , double one_es ));

/* pj_tsfn.c */
double pj_tsfn PROTO((double phi , double sinphi , double e ));

/* proj.c */
void main PROTO((int argc , char **argv ));

/* rtodms.c */
void set_rtodms PROTO((int fract , int con_w ));
char *rtodms PROTO((char *s , double r , int pos , int neg ));

#endif
