<filename>geoid.c</filename> Functions:-Provides conversion between the ECEF and WGS84 co-ordinate reference systems. Notes based on $Id: geoid.c 4257 2007-01-18 03:56:43Z ckuethe $ static double bilinear(double x1, double y1, double x2, double y2, double x, double y, double z11, double z12, double z21, double z22) This is a piece of mathematical manipulation only used internally in this code, so wrestle with it if you will! double wgs84_separation(double lat, double lon) This is used by drivers to get the separation of MSL from the WGS84 datum at a pair of Latitude/Longitude co-ordinates. The data is in a pre-defined table. void ecef_to_wgs84fix(struct gps_data_t *gpsdata, double x, double y, double z, double vx, double vy, double vz) This does exactly what it says! Co-ordinate system conversion from ecef to the wgs84 equivalent. static double fix_minuz(double d) This forces a value of -0.0 to be the same as 0.0 so that certain trig functions act in a predictable manner. int main(int argc, char **argv) This is a local test routine which exercises the other code for debugging purposes. It is normally shut off by an #ifdef.