// -*- text -*-
/**
 * \file geodesic-c.dox
 * \brief Documentation for geodesic routines implemented in C
 *
 * Written by Charles Karney <charles@karney.com> and licensed under the
 * MIT/X11 License.  For more information, see
 * http://geographiclib.sourceforge.net/
 **********************************************************************/

/**
\mainpage Geodesic routines implemented in C
\author Charles F. F. Karney (charles@karney.com)
\version 1.30
\date 2013-mm-dd

\section abstract Abstract

This is a C implementation of the geodesic algorithms from <a
href="http://geographiclib.sf.net">GeographicLib</a>.  This is a
self-contained library (requiring only the standard C math library)
which makes it easy to do geodesic computations for an ellipsoid of
revolution in a C program.  It uses ANSI C as described in
B. W. Kernigan and D. M. Ritchie, The C Programming Language, 2nd
Ed. (Prentice Hall, 1988), and so should compile correctly with just
about any C compiler.

\section download Downloading the source

The C library is part of %GeographicLib which available for download at
- <a href="http://sf.net/projects/geographiclib/files/distrib/GeographicLib-1.30.tar.gz">
  GeographicLib-1.30.tar.gz</a>
- <a href="http://sf.net/projects/geographiclib/files/distrib/GeographicLib-1.30.zip">
  GeographicLib-1.30.zip</a>
.
as either a compressed tar file (tar.gz) or a zip file.  After unpacking
the source, the C library can be found in GeographicLib-1.30/legacy/C.
The library consists of two files geodesic.c and geodesic.h.

\section doc Library documentation

The interface to the library is documented via doxygen in the header
file.  To access this, see geodesic.h.

\section samples Sample programs

Also included are 3 small test programs:
 - direct.c is a simple command line utility for solving the
   direct geodesic problem;
 - inverse.c is a simple command line utility for solving the
   inverse geodesic problem;
 - planimeter.c is a simple command line utility for computing the
   area of a geodesic polygon given its vertices.
 .
Here, for example, is inverse.c
\include inverse.c
To compile and link this, you would typically run \verbatim
cc -o inverse inverse.c geodesic.c -lm \endverbatim
These sample programs can also be built with the supplied cmake file,
CMakeLists.txt.

\section library Using the library

- Put @verbatim
  #include "geodesic.h" @endverbatim
  in your source code.
- Include calls to the geodesic routines in your code.  The interface to
  the library is documented in geodesic.h.
- Compile and link as described above.

\section external External links

- These algorithms are derived in C. F. F. Karney,
  <a href="http://dx.doi.org/10.1007/s00190-012-0578-z">
  Algorithms for geodesics</a>,
  J. Geodesy <b>87</b>, 43--55 (2013)
  (<a href="http://geographiclib.sf.net/geod-addenda.html"> addenda</a>).
- A longer paper on geodesics: C. F. F. Karney,
   <a href="http://arxiv.org/abs/1102.1215v1">Geodesics
   on an ellipsoid of revolution</a>,
   Feb. 2011
   (<a href="http://geographiclib.sf.net/geod-addenda.html#geod-errata">
   errata</a>).
- <a href="http://geographiclib.sf.net">The GeographicLib web site</a>.
- <a href="../index.html">The C++ library</a>.
- Documentation on the C++ classes: GeographicLib::Geodesic,
  GeographicLib::GeodesicLine, GeographicLib::PolygonArea.
- The section in the %GeographicLib documentation on geodesics: \ref
  geodesic.
- <a href="http://geographiclib.sf.net/geodesic-papers/biblio.html">
  An online geodesic bibliography</a>.
**********************************************************************/
