int usage(int retval, bool brief) {
  if (brief)
    ( retval ? std::cerr : std::cout ) << "Usage:\n"
"    Conformal3Proj [ -r ] [ -t a b c | -e b e2 k2 kp2 ] [ -tx ax bx cx |\n"
"    -ex bx e2x k2x kp2x ] [ -d | -: ] [ -w ] [ -p prec ] [\n"
"    --comment-delimiter commentdelim ] [ --version | -h | --help ] [\n"
"    --input-file infile | --input-string instring ] [ --line-separator\n"
"    linesep ] [ --output-file outfile ]\n"
"\n"
"For full documentation type:\n"
"    Conformal3Proj --help\n"
"or visit:\n"
"    https://geographiclib.sourceforge.io/C++/2.7/Conformal3Proj.1.html\n";
  else
    ( retval ? std::cerr : std::cout ) << "Man page:\n"
"\n"
"SYNOPSIS\n"
"       Conformal3Proj [ -r ] [ -t a b c | -e b e2 k2 kp2 ] [ -tx ax bx cx |\n"
"       -ex bx e2x k2x kp2x ] [ -d | -: ] [ -w ] [ -p prec ] [\n"
"       --comment-delimiter commentdelim ] [ --version | -h | --help ] [\n"
"       --input-file infile | --input-string instring ] [ --line-separator\n"
"       linesep ] [ --output-file outfile ]\n"
"\n"
"DESCRIPTION\n"
"       Project points using the Jacobi conformal projection.  By default, the\n"
"       coordinates of points on a triaxial ellipsoid are read from standard\n"
"       input as ellipsoidal latitude and longitude and the projected points\n"
"       are written to standard output as easting and northing.  The scale of\n"
"       the projection is appended to the output.  Specifying -r causes the\n"
"       reverse projection to be performed.\n"
"\n"
"       If either -tx or -ex is given, then this describes a target ellipsoid\n"
"       onto which the points are conformally mapped via the Jacobi projections\n"
"       to intermediate spheres.  In this case, the meridian convergence and\n"
"       the scale are appended to the output.\n"
"\n"
"OPTIONS\n"
"       -r  perform the reverse projection.\n"
"\n"
"       -t a b c\n"
"           specify the ellipsoid via its major semiaxis a, median semiaxis b,\n"
"           and minor semixis c.  By default, we have a = 6378172 m, b =\n"
"           6378102 m, c = 6356752 m, an approximate triaxial model of the\n"
"           earth.  (With this model omg = 0deg, corresponds to lon =\n"
"           -14.93deg.\n"
"\n"
"       -e b e2 k2 kp2\n"
"           specify the ellipsoid via the median semiaxis, b and the shape\n"
"           parameters e2 = (a^2 - c^2)/b^2, k2 = (b^2 - c^2)/(a^2 - c^2), and\n"
"           kp2 = (a^2 - b^2)/(a^2 - c^2).  Simple fractions are allowed for\n"
"           e2, k2, and kp2.  Internally, the supplied values of k2 and kp2 are\n"
"           normalized so that k2 + kp2 = 1.\n"
"\n"
"       -tx ax bx cx\n"
"           specify the target ellipsoid via its semiaxes.\n"
"\n"
"       -ex bx e2x k2x kp2x\n"
"           specify the target ellipsoid via its median semiaxes and shape\n"
"           parameters.\n"
"\n"
"       -d  output angles as degrees, minutes, seconds instead of decimal\n"
"           degrees.\n"
"\n"
"       -:  like -d, except use : as a separator instead of the d, ', and \"\n"
"           delimiters.\n"
"\n"
"       -w  toggle the longitude first flag (it starts off); if the flag is on,\n"
"           then on input and output, longitude precedes latitude (except that,\n"
"           on input, this can be overridden by a hemisphere designator, N, S,\n"
"           E, W).\n"
"\n"
"       -p prec\n"
"           set the output precision to prec (default 3).  For distances, prec\n"
"           is the number of digits after the decimal point for ellipsoids\n"
"           which are approximately the same size as the Earth; for other\n"
"           ellipsoids the precision is adjusted to retain the same relative\n"
"           precision.  For latitudes and longitudes (in degrees), the number\n"
"           of digits after the decimal point is prec + 5.  For the scale, the\n"
"           precision is prec + 7.\n"
"\n"
"       --comment-delimiter commentdelim\n"
"           set the comment delimiter to commentdelim (e.g., \"#\" or \"//\").  If\n"
"           set, the input lines will be scanned for this delimiter and, if\n"
"           found, the delimiter and the rest of the line will be removed prior\n"
"           to processing and subsequently appended to the output line\n"
"           (separated by a space).\n"
"\n"
"       --version\n"
"           print version and exit.\n"
"\n"
"       -h  print usage and exit.\n"
"\n"
"       --help\n"
"           print full documentation and exit.\n"
"\n"
"       --input-file infile\n"
"           read input from the file infile instead of from standard input; a\n"
"           file name of \"-\" stands for standard input.\n"
"\n"
"       --input-string instring\n"
"           read input from the string instring instead of from standard input.\n"
"           All occurrences of the line separator character (default is a\n"
"           semicolon) in instring are converted to newlines before the reading\n"
"           begins.\n"
"\n"
"       --line-separator linesep\n"
"           set the line separator character to linesep.  By default this is a\n"
"           semicolon.\n"
"\n"
"       --output-file outfile\n"
"           write output to the file outfile instead of to standard output; a\n"
"           file name of \"-\" stands for standard output.\n"
"\n"
"EXAMPLES\n"
"          echo 33.3 44.4 | Conformal3Proj\n"
"          -5077732.396 3922571.859 1.1970343759\n"
"          echo -5077732.396 3922571.859 | Conformal3Proj -r\n"
"          33.30000000 44.40000000 1.1970343759\n"
"\n"
"ERRORS\n"
"       An illegal line of input will print an error message to standard output\n"
"       beginning with \"ERROR:\" and causes Conformal3Proj to return an exit\n"
"       code of 1.  However, an error does not cause Conformal3Proj to\n"
"       terminate; following lines will be converted.\n"
"\n"
"SEE ALSO\n"
"       Ellipsoidal coordinates are documented in Section 2 of C. F. F. Karney,\n"
"       Jacobi's solution for geodesics on a triaxial ellipsoid, Technical\n"
"       Report, SRI International, Nov. 2025,\n"
"       <https://arxiv.org/abs/2511.nnnnn>.\n"
"\n"
"       The Wikipedia page, Geodesics on an ellipsoid,\n"
"       <https://en.wikipedia.org/wiki/Geodesics_on_an_ellipsoid>.\n"
"\n"
"AUTHOR\n"
"       Conformal3Proj was written by Charles Karney.\n"
"\n"
"HISTORY\n"
;
  return retval;
}
