/* Header for module math, generated by p2c */ #ifndef MATH_H #define MATH_H #ifdef MATH_G # define vextern #else # define vextern extern #endif typedef union vector { struct { double i, j, k; } U1; double a[3]; } vector; typedef struct state_vector { vector r, v; } state_vector; typedef union dir_cosines { struct { vector row1, row2, row3; } U1; double m[3][3]; } dir_cosines; extern Void vector_init PP((double i, double j, double k, vector *result)); extern boolean vector_null_check PP((vector *v)); extern boolean vector_equal_check PP((vector *v1, vector *v2)); extern Void vector_negate PP((vector *v, vector *result)); extern double vector_mag PP((vector *v)); extern Void vector_unit PP((vector *v, vector *result)); extern Void vector_cross PP((vector *v1, vector *v2, vector *result)); extern double vector_dot PP((vector *v1, vector *v2)); extern Void vector_add PP((vector *v1, vector *v2, vector *result)); extern Void vector_subtract PP((vector *v1, vector *v2, vector *result)); extern Void dir_cosines_init PP((vector *v1, vector *v2, vector *v3, dir_cosines *dc)); extern Void dir_cosines_invert PP((dir_cosines *dc, dir_cosines *result)); extern Void dir_cosines_calc PP((vector *ivec, vector *up, dir_cosines *dc)); extern Void coordinate_transformation PP((vector *v, dir_cosines *dc, vector *result)); extern double modulo PP((double x, double y)); extern double pos_modulo PP((double x, double y)); extern double power PP((double x, double y)); extern double tan_ PP((double x)); extern double arcsin_ PP((double x)); extern double arccos_ PP((double x)); extern double arctan2 PP((double sinx, double cosx)); extern double sign PP((double a)); extern double bounds PP((double low, double value, double high)); extern long ibounds PP((int low, int value, int high)); extern double max PP((double v1, double v2)); extern double min PP((double v1, double v2)); extern long imax PP((int v1, int v2)); extern long imin PP((int v1, int v2)); extern Void swap_ PP((double *a, double *b)); #undef vextern #endif /*MATH_H*/ /* End. */