[gts] 09/25: Import Upstream version 0.7.6+darcs080704

Andreas Tille tille at debian.org
Tue Jan 31 12:40:37 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository gts.

commit b50c24dd57faf6c3265a55d95aa80ac47971e2ce
Author: Andreas Tille <tille at debian.org>
Date:   Tue Jan 31 11:38:46 2017 +0100

    Import Upstream version 0.7.6+darcs080704
---
 AUTHORS                                            |     3 +-
 ChangeLog                                          |    86 +
 Makefile.am                                        |     1 +
 Makefile.in                                        |    13 +-
 aclocal.m4                                         |  1372 +-
 config.guess                                       |    78 +-
 config.sub                                         |   109 +-
 configure                                          | 13972 +++++++++----------
 configure.in                                       |     2 +-
 doc/Makefile.in                                    |    12 +-
 doc/html/book1.html                                |   194 +-
 doc/html/{c10545.html => c12.html}                 |    41 +-
 doc/html/c12206.html                               |   180 -
 doc/html/{c17114.html => c14.html}                 |    55 +-
 doc/html/{c15264.html => c16.html}                 |    51 +-
 doc/html/{c10545.html => c18.html}                 |    55 +-
 doc/html/c4.html                                   |    49 +-
 doc/html/{c2915.html => c6.html}                   |    81 +-
 doc/html/gts-binary-heaps.html                     |  1071 --
 doc/html/gts-boolean-operations.html               |  1631 ---
 doc/html/gts-bounding-boxes-trees.html             |  5621 --------
 doc/html/gts-containee-classes.html                |  1075 --
 doc/html/gts-container-classes.html                |  1447 --
 ...ay-and-constrained-delaunay-triangulations.html |  2046 ---
 doc/html/gts-differential-geometry-operators.html  |   960 --
 doc/html/gts-edges.html                            |  2651 ----
 doc/html/gts-extended-binary-heaps.html            |  2091 ---
 doc/html/gts-faces.html                            |  1593 ---
 doc/html/gts-first-in-first-out-heaps.html         |  1167 --
 doc/html/gts-graph-class.html                      |  5154 -------
 doc/html/gts-graph-partitioning.html               |  2392 ----
 doc/html/gts-hierarchical-surfaces.html            |  1520 --
 doc/html/gts-hierarchical-vertex-split.html        |  1088 --
 doc/html/gts-isosurfaces-from-3d-functions.html    |  2550 ----
 doc/html/gts-kd-trees.html                         |   528 -
 .../gts-miscellaneous-macros-and-functions.html    |  1946 ---
 doc/html/gts-object-class.html                     |  2838 ----
 doc/html/gts-out-of-core-simplification.html       |  2086 ---
 doc/html/gts-points.html                           |  4021 ------
 doc/html/gts-progressive-graph.html                |  2498 ----
 doc/html/gts-progressive-surfaces.html             |  2559 ----
 doc/html/gts-segments.html                         |  1647 ---
 doc/html/gts-simple-statistics.html                |   823 --
 .../gts-surface-simplification-and-refinement.html |  2302 ---
 doc/html/gts-surfaces.html                         |  5639 --------
 doc/html/gts-triangles.html                        |  4554 ------
 doc/html/gts-vectors-and-matrices.html             |  3819 -----
 doc/html/gts-vertex-split.html                     |  1822 ---
 doc/html/gts-vertices.html                         |  2528 ----
 doc/html/gts-weighted-graph.html                   |  1399 --
 doc/html/index.sgml                                |     0
 examples/Makefile.in                               |    12 +-
 examples/cartesian.c                               |     3 +-
 examples/cleanup.c                                 |     3 +-
 examples/coarsen.c                                 |     3 +-
 examples/delaunay.c                                |     3 +-
 examples/happrox.c                                 |     3 +-
 examples/iso.c                                     |     3 +-
 examples/merge.c                                   |     1 +
 examples/optimize.c                                |     3 +-
 examples/partition.c                               |     3 +-
 examples/refine.c                                  |     3 +-
 examples/set.c                                     |    46 +-
 examples/smooth.c                                  |     3 +-
 examples/sphere.c                                  |     3 +-
 examples/split.c                                   |     3 +-
 examples/stripe.c                                  |     3 +-
 examples/transform.c                               |     1 +
 examples/traverse.c                                |     3 +-
 examples/volume.c                                  |     9 +-
 gts.pc.in                                          |     2 +-
 ltmain.sh                                          |   774 +-
 src/Makefile.in                                    |    12 +-
 src/edge.c                                         |     6 +-
 src/eheap.c                                        |    15 +-
 src/gts.def                                        |     1 +
 src/gts.h                                          |    17 +-
 src/object.c                                       |    59 -
 src/partition.c                                    |     2 +
 src/point.c                                        |    28 +
 test/Makefile.in                                   |    12 +-
 test/boolean/Makefile.in                           |    12 +-
 test/coarsen/Makefile.in                           |    12 +-
 test/delaunay/Makefile.in                          |    12 +-
 tools/Makefile.in                                  |    12 +-
 tools/gts2oogl.c                                   |     3 +-
 tools/gts2stl.c                                    |     3 +-
 tools/gtscheck.c                                   |     3 +-
 tools/gtscompare.c                                 |     3 +-
 tools/stl2gts.c                                    |     3 +-
 90 files changed, 8903 insertions(+), 83619 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 2d9a203..833dde4 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -11,5 +11,6 @@ Jerome Benoit: surface tesselation.
 Wagner Toledo Correa: triangle strips.
 Marcelo E. Magallon: Debian packages.
 Wayne C Gramlich, Michael Loehr: 4x4 GtsMatrix implementation.
-Tim F.: "dual" marching tetrahedra.
+Tim Fenn: "dual" marching tetrahedra.
 Tomas Akenine-Moller: fast triangle-box intersection test.
+Ivan Adam Vari: RPM packages.
diff --git a/ChangeLog b/ChangeLog
index 7844d00..c3e51d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,89 @@
+Fri Jul  4 14:40:33 NZST 2008  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed typos in RPM spec file (I. Vari)
+
+Tue Jul  1 16:02:02 NZST 2008  Stephane Popinet <s.popinet at niwa.co.nz>
+  * RPM spec updated for Fedora (I. Vari)
+
+Tue Jan  8 09:45:25 NZDT 2008  Stephane Popinet <s.popinet at niwa.co.nz>
+  * RPM build fix (I. Vari)
+  
+  Removed %{?_smp_mflags} from make due to intermittent
+  build errors on some SMP systems.
+
+Wed Dec 19 12:31:01 NZDT 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * RPM spec file fix (Ivan Vari)
+
+Mon Nov 12 15:48:48 NZDT 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed package (install) dependencies
+
+Tue Oct 30 14:53:14 NZDT 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added specs for RPM packaging (thanks to Ivan Vari)
+
+Tue Oct 30 15:53:28 NZDT 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added math library for netpbm library check.
+
+Fri Sep 14 09:56:41 NZST 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Explicit check when trying to partition a graph with too few nodes
+
+Wed Sep 12 16:23:28 NZST 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * example/volume also computes the area
+
+Wed Sep 12 16:22:39 NZST 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New "all" option for example/set
+  
+  For outputting all combinations of boolean operations.
+
+Fri Apr 13 16:02:10 NZST 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added math lib to gts.pc
+
+Thu Feb 22 17:01:21 NZDT 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Force regeneration of ChangeLog before creating debian package
+
+Wed Feb 14 14:50:50 NZDT 2007  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for getopt_long and unknown arguments
+
+Tue Jan 23 11:48:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+  * New function gts_point_in_sphere()
+
+Fri Nov 24 16:04:32 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed function inlining mess
+  
+  I made all inlined functions "static inline" in the gts.h header file.
+  This should fix the problem when linking GTS with non-optimised objects.
+
+Wed Oct 25 15:28:12 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Removed g_ptr_array_foreach() call for compatibility with glib-1.2
+
+Thu Oct 19 10:32:43 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified Debian package dependencies
+  
+  To make them compatible with Ubuntu. It's a bit messy though as I am not sure
+  what the issues are with binary compatibility of Ubuntu/Debian libraries etc...
+
+Wed Oct 18 16:45:35 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for memory leak in GtsEHeap with glib >= 2.10
+  
+  The GMemChunk glib structure previously used for allocating GtsEHeapPair is 
+  deprecated in glib 2.10.
+  
+  Furthermore, it seems that the new slice allocator in glib 2.10 is not 
+  backward compatible with GMemChunk (despite what is said in the doc). This 
+  causes massive memory leaks.
+  
+  The solution is to use good old g_malloc instead.
+
+Fri Oct  6 13:20:31 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed autogen.sh for Mac OSX
+
+Thu Jul 13 10:00:55 NZST 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix in gts_edge_swap() (thanks to Oliver Burghard)
+
+Wed Mar 29 16:43:17 NZST 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged release_0_7_6
+
+Wed Mar 29 16:03:21 NZST 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated NEWS for release 0.7.6
+
 Fri Mar 24 11:47:26 NZST 2006  Stephane Popinet <s.popinet at niwa.co.nz>
   * Changed 'gtstransform' to 'transform' in Debian package
 
diff --git a/Makefile.am b/Makefile.am
index 0185e62..ab33213 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,6 +9,7 @@ ChangeLog:
 	darcs changes > ChangeLog
 
 debian-snapshot:
+	darcs changes > ChangeLog
 	sh debian/changelog.sh
 	dpkg-buildpackage -rfakeroot -b
 	rm -f debian/repo/*
diff --git a/Makefile.in b/Makefile.in
index 87b6aa6..087f9eb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -113,6 +113,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -147,16 +148,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -171,6 +170,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -183,17 +185,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
@@ -653,6 +659,7 @@ ChangeLog:
 	darcs changes > ChangeLog
 
 debian-snapshot:
+	darcs changes > ChangeLog
 	sh debian/changelog.sh
 	dpkg-buildpackage -rfakeroot -b
 	rm -f debian/repo/*
diff --git a/aclocal.m4 b/aclocal.m4
index 110bf8d..d2fa947 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -44,20 +44,13 @@ AC_ARG_ENABLE(glibtest, [  --disable-glibtest      do not try to compile and run
       esac
   done
 
-  AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+  PKG_PROG_PKG_CONFIG([0.7])
 
   no_glib=""
 
-  if test x$PKG_CONFIG != xno ; then
-    if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
-      :
-    else
-      echo *** pkg-config too old; version 0.7 or better required.
-      no_glib=yes
-      PKG_CONFIG=no
-    fi
-  else
+  if test "x$PKG_CONFIG" = x ; then
     no_glib=yes
+    PKG_CONFIG=no
   fi
 
   min_glib_version=ifelse([$1], ,2.0.0,$1)
@@ -229,7 +222,7 @@ main ()
 
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 
-# serial 47 Debian 1.5.20-2 AC_PROG_LIBTOOL
+# serial 51 Debian 1.5.24-1ubuntu1 AC_PROG_LIBTOOL
 
 
 # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
@@ -379,6 +372,7 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 test -z "$AS" && AS=as
 test -z "$CC" && CC=cc
 test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
 test -z "$DLLTOOL" && DLLTOOL=dlltool
 test -z "$LD" && LD=ld
 test -z "$LN_S" && LN_S="ln -s"
@@ -391,17 +385,17 @@ test -z "$STRIP" && STRIP=:
 test -z "$ac_objext" && ac_objext=o
 
 # Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
 old_postinstall_cmds='chmod 644 $oldlib'
 old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
     ;;
   *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
     ;;
   esac
   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
@@ -449,6 +443,9 @@ AC_DEFUN([_LT_AC_SYS_COMPILER],
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 ])# _LT_AC_SYS_COMPILER
@@ -475,9 +472,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 # Check for compiler boilerplate output or warnings with
 # the simple compiler test code.
 AC_DEFUN([_LT_COMPILER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_compiler_boilerplate=`cat conftest.err`
 $rm conftest*
 ])# _LT_COMPILER_BOILERPLATE
@@ -488,9 +486,10 @@ $rm conftest*
 # Check for linker boilerplate output or warnings with
 # the simple link test code.
 AC_DEFUN([_LT_LINKER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
 $rm conftest*
 ])# _LT_LINKER_BOILERPLATE
@@ -505,12 +504,20 @@ $rm conftest*
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
 AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 ])# _LT_AC_SYS_LIBPATH_AIX
 
@@ -741,13 +748,17 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *32-bit*)
       case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_i386_fbsd"
+          ;;
         x86_64-*linux*)
           LD="${LD-ld} -m elf_i386"
           ;;
@@ -764,6 +775,9 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
       ;;
     *64-bit*)
       case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_x86_64_fbsd"
+          ;;
         x86_64-*linux*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
@@ -796,6 +810,22 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)    LD="${LD-ld} -64" ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
 AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
 [*-*-cygwin* | *-*-mingw* | *-*-pw32*)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
@@ -819,7 +849,7 @@ AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
 AC_CACHE_CHECK([$1], [$2],
   [$2=no
   ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$3"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -838,9 +868,9 @@ AC_CACHE_CHECK([$1], [$2],
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
      fi
    fi
@@ -860,19 +890,20 @@ fi
 # ------------------------------------------------------------
 # Check whether the given compiler option works
 AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
   [$2=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
      # The linker can only warn and ignore the option if not recognized
      # So say no if there are warnings
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
-       $SED '/^$/d' conftest.err >conftest.er2
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
        fi
@@ -947,6 +978,12 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -960,25 +997,39 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       esac
     fi
     ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ 	]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
   *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-    while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
 	       = "XX$teststring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+	      new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	      lt_cv_sys_max_cmd_len=$new_result &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on massive
+      # amounts of additional arguments before passing them to the linker.
+      # It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
     ;;
   esac
 ])
@@ -991,7 +1042,7 @@ fi
 
 
 # _LT_AC_CHECK_DLFCN
-# --------------------
+# ------------------
 AC_DEFUN([_LT_AC_CHECK_DLFCN],
 [AC_CHECK_HEADERS(dlfcn.h)dnl
 ])# _LT_AC_CHECK_DLFCN
@@ -999,7 +1050,7 @@ AC_DEFUN([_LT_AC_CHECK_DLFCN],
 
 # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
 #                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
+# ---------------------------------------------------------------------
 AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
 [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
 if test "$cross_compiling" = yes; then :
@@ -1065,6 +1116,8 @@ int main ()
       else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
       /* dlclose (self); */
     }
+  else
+    puts (dlerror ());
 
     exit (status);
 }]
@@ -1075,7 +1128,7 @@ EOF
     case x$lt_status in
       x$lt_dlno_uscore) $1 ;;
       x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
+      x$lt_dlunknown|x*) $3 ;;
     esac
   else :
     # compilation failed
@@ -1087,7 +1140,7 @@ rm -fr conftest*
 
 
 # AC_LIBTOOL_DLOPEN_SELF
-# -------------------
+# ----------------------
 AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
 [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
 if test "x$enable_dlopen" != xyes; then
@@ -1158,7 +1211,7 @@ else
     test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
     save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
@@ -1171,7 +1224,7 @@ else
     ])
 
     if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
     	  lt_cv_dlopen_self_static, [dnl
 	  _LT_AC_TRY_DLOPEN_SELF(
@@ -1203,7 +1256,8 @@ fi
 # ---------------------------------
 # Check to see if options -c and -o are simultaneously supported by compiler
 AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
 AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
   [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
   [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
@@ -1211,7 +1265,7 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    mkdir conftest
    cd conftest
    mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
    lt_compiler_flag="-o out/conftest2.$ac_objext"
    # Insert the option either (1) after the last *FLAGS variable, or
@@ -1231,9 +1285,9 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
-     $SED '/^$/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
      fi
    fi
@@ -1351,6 +1405,7 @@ else
    darwin*)
        if test -n "$STRIP" ; then
          striplib="$STRIP -x"
+         old_striplib="$STRIP -S"
          AC_MSG_RESULT([yes])
        else
   AC_MSG_RESULT([no])
@@ -1368,7 +1423,8 @@ fi
 # -----------------------------
 # PORTME Fill in your ld.so characteristics
 AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -1382,20 +1438,58 @@ shlibpath_overrides_runpath=unknown
 version_type=none
 dynamic_linker="$host_os ld.so"
 sys_lib_dlsearch_path_spec="/lib /usr/lib"
+m4_if($1,[],[
 if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
   else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`echo $lt_search_path_spec`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+fi])
 need_lib_prefix=unknown
 hardcode_into_libs=no
 
@@ -1552,12 +1646,8 @@ darwin* | rhapsody*)
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
+  m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 
   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
   ;;
 
@@ -1574,18 +1664,6 @@ freebsd1*)
   dynamic_linker=no
   ;;
 
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -1618,10 +1696,15 @@ freebsd* | dragonfly*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
-  *) # from 3.2 on
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
     shlibpath_overrides_runpath=no
     hardcode_into_libs=yes
     ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
   esac
   ;;
 
@@ -1681,6 +1764,18 @@ hpux9* | hpux10* | hpux11*)
   postinstall_cmds='chmod 555 $lib'
   ;;
 
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
@@ -1724,7 +1819,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux*)
+linux* | k*bsd*-gnu)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -1740,7 +1835,7 @@ linux*)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -1765,18 +1860,6 @@ netbsdelf*-gnu)
   dynamic_linker='NetBSD ld.elf_so'
   ;;
 
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -1814,6 +1897,7 @@ nto-qnx*)
 
 openbsd*)
   version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
   need_lib_prefix=no
   # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
   case $host_os in
@@ -1857,11 +1941,8 @@ osf3* | osf4* | osf5*)
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
   ;;
 
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
+rdos*)
+  dynamic_linker=no
   ;;
 
 solaris*)
@@ -1889,7 +1970,7 @@ sunos4*)
   need_version=yes
   ;;
 
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+sysv4 | sysv4.3*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -1922,6 +2003,29 @@ sysv4*MP*)
   fi
   ;;
 
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
 uts4*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -1935,13 +2039,19 @@ uts4*)
 esac
 AC_MSG_RESULT([$dynamic_linker])
 test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
 ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
 
 
 # _LT_AC_TAGCONFIG
 # ----------------
 AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_ARG_WITH([tags],
     [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
         [include additional configurations @<:@automatic@:>@])],
     [tagnames="$withval"])
@@ -1959,6 +2069,9 @@ if test -f "$ltmain" && test -n "$tagnames"; then
       AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
     fi
   fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
 
   # Extract list of available tagged configurations in $ofile.
   # Note that this assumes the entire list is on one line.
@@ -2087,7 +2200,7 @@ AC_ARG_ENABLE([shared],
 
 # AC_DISABLE_SHARED
 # -----------------
-#- set the default shared flag to --disable-shared
+# set the default shared flag to --disable-shared
 AC_DEFUN([AC_DISABLE_SHARED],
 [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
 AC_ENABLE_SHARED(no)
@@ -2199,7 +2312,7 @@ m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
 
 # AC_PATH_TOOL_PREFIX
 # -------------------
-# find a file program which can recognise shared library
+# find a file program which can recognize shared library
 AC_DEFUN([AC_PATH_TOOL_PREFIX],
 [AC_REQUIRE([AC_PROG_EGREP])dnl
 AC_MSG_CHECKING([for $1])
@@ -2262,7 +2375,7 @@ fi
 
 # AC_PATH_MAGIC
 # -------------
-# find a file program which can recognise a shared library
+# find a file program which can recognize a shared library
 AC_DEFUN([AC_PATH_MAGIC],
 [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
 if test -z "$lt_cv_path_MAGIC_CMD"; then
@@ -2395,7 +2508,7 @@ reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   darwin*)
     if test "$GCC" = yes; then
-      reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
@@ -2409,7 +2522,7 @@ esac
 # how to check for library dependencies
 #  -- PORTME fill in with the dynamic library characteristics
 AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
+[AC_CACHE_CHECK([how to recognize dependent libraries],
 lt_cv_deplibs_check_method,
 [lt_cv_file_magic_cmd='$MAGIC_CMD'
 lt_cv_file_magic_test_file=
@@ -2448,16 +2561,22 @@ cygwin*)
 
 mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
   ;;
 
 darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-freebsd* | kfreebsd*-gnu | dragonfly*)
+freebsd* | dragonfly*)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     case $host_cpu in
     i*86 )
@@ -2495,6 +2614,11 @@ hpux10.20* | hpux11*)
   esac
   ;;
 
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
 irix5* | irix6* | nonstopux*)
   case $LD in
   *-32|*"-32 ") libmagic=32-bit;;
@@ -2506,11 +2630,11 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux*)
+linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -2540,7 +2664,7 @@ osf3* | osf4* | osf5*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-sco3.2v5*)
+rdos*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -2548,7 +2672,7 @@ solaris*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+sysv4 | sysv4.3*)
   case $host_vendor in
   motorola)
     lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
@@ -2569,10 +2693,13 @@ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
   siemens)
     lt_cv_deplibs_check_method=pass_all
     ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
   esac
   ;;
 
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 esac
@@ -2592,36 +2719,43 @@ AC_DEFUN([AC_PROG_NM],
   # Let the user override the test.
   lt_cv_path_NM="$NM"
 else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
 	  break
 	  ;;
 	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
 	  ;;
 	esac
-      esac
-    fi
+      fi
+    done
+    IFS="$lt_save_ifs"
   done
-  IFS="$lt_save_ifs"
   test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
 fi])
 NM="$lt_cv_path_NM"
@@ -2727,7 +2861,7 @@ _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
 ])# _LT_AC_LANG_CXX
 
 # _LT_AC_PROG_CXXCPP
-# ---------------
+# ------------------
 AC_DEFUN([_LT_AC_PROG_CXXCPP],
 [
 AC_REQUIRE([AC_PROG_CXX])
@@ -2776,7 +2910,7 @@ _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
 
 
 # AC_LIBTOOL_RC
-# --------------
+# -------------
 # enable support for Windows resource files
 AC_DEFUN([AC_LIBTOOL_RC],
 [AC_REQUIRE([LT_AC_PROG_RC])
@@ -2802,10 +2936,10 @@ objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
+lt_simple_link_test_code='int main(){return(0);}'
 
 _LT_AC_SYS_COMPILER
 
@@ -2813,37 +2947,6 @@ _LT_AC_SYS_COMPILER
 _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
-    ;;
-  esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ 	]]" >/dev/null; then :
-  else
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
 AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
 AC_LIBTOOL_PROG_COMPILER_PIC($1)
 AC_LIBTOOL_PROG_CC_C_O($1)
@@ -2852,9 +2955,9 @@ AC_LIBTOOL_PROG_LD_SHLIBS($1)
 AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
 AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
 AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
+AC_LIBTOOL_DLOPEN_SELF
 
-# Report which librarie types wil actually be built
+# Report which library types will actually be built
 AC_MSG_CHECKING([if libtool supports shared libraries])
 AC_MSG_RESULT([$can_build_shared])
 
@@ -2913,6 +3016,7 @@ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
 _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
 _LT_AC_TAGVAR(hardcode_automatic, $1)=no
 _LT_AC_TAGVAR(module_cmds, $1)=
 _LT_AC_TAGVAR(module_expsym_cmds, $1)=
@@ -2937,10 +3041,10 @@ objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_AC_SYS_COMPILER
@@ -2959,12 +3063,12 @@ lt_save_path_LD=$lt_cv_path_LD
 if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
   lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
 else
-  unset lt_cv_prog_gnu_ld
+  $as_unset lt_cv_prog_gnu_ld
 fi
 if test -n "${lt_cv_path_LDCXX+set}"; then
   lt_cv_path_LD=$lt_cv_path_LDCXX
 else
-  unset lt_cv_path_LD
+  $as_unset lt_cv_path_LD
 fi
 test -z "${LDCXX+set}" || LD=$LDCXX
 CC=${CXX-"c++"}
@@ -3059,6 +3163,7 @@ case $host_os in
 	    ;;
 	  esac
 	done
+	;;
       esac
 
       exp_sym_flag='-bexport'
@@ -3085,7 +3190,7 @@ case $host_os in
 	   strings "$collect2name" | grep resolve_lib_name >/dev/null
 	then
 	  # We have reworked collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  :
 	else
 	  # We have old collect2
 	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
@@ -3096,6 +3201,7 @@ case $host_os in
 	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
 	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
 	fi
+	;;
       esac
       shared_flag='-shared'
       if test "$aix_use_runtimelinking" = yes; then
@@ -3127,12 +3233,12 @@ case $host_os in
       _LT_AC_SYS_LIBPATH_AIX
       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
      else
       if test "$host_cpu" = ia64; then
 	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
 	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
       else
 	# Determine the default libpath from the value encoded in an empty executable.
 	_LT_AC_SYS_LIBPATH_AIX
@@ -3141,16 +3247,26 @@ case $host_os in
 	# -berok will link without error, but may produce a broken library.
 	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
 	# Exported symbols can be pulled into shared objects from archives
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
 	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
 	# This is similar to how AIX traditionally builds its shared libraries.
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
       fi
     fi
     ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
   chorus*)
     case $cc_basename in
       *)
@@ -3160,7 +3276,6 @@ case $host_os in
     esac
     ;;
 
-
   cygwin* | mingw* | pw32*)
     # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
     # as there is no search path for DLLs.
@@ -3170,7 +3285,7 @@ case $host_os in
     _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 
     if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       # If the export-symbols file already is a .def file (1st line
       # is EXPORTS), use it as is; otherwise, prepend...
       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
@@ -3179,7 +3294,7 @@ case $host_os in
 	echo EXPORTS > $output_objdir/$soname.def;
 	cat $export_symbols >> $output_objdir/$soname.def;
       fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
     else
       _LT_AC_TAGVAR(ld_shlibs, $1)=no
     fi
@@ -3234,10 +3349,10 @@ case $host_os in
       case $cc_basename in
         xlc*)
          output_verbose_link_cmd='echo'
-          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
           _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           ;;
        *)
@@ -3271,7 +3386,7 @@ case $host_os in
   freebsd-elf*)
     _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
     ;;
-  freebsd* | kfreebsd*-gnu | dragonfly*)
+  freebsd* | dragonfly*)
     # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
     # conventions
     _LT_AC_TAGVAR(ld_shlibs, $1)=yes
@@ -3316,34 +3431,21 @@ case $host_os in
     ;;
   hpux10*|hpux11*)
     if test $with_gnu_ld = no; then
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
       case $host_cpu in
-      hppa*64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-        ;;
-      ia64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        ;;
+      hppa*64*|ia64*) ;;
       *)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
 	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
         ;;
       esac
     fi
     case $host_cpu in
-    hppa*64*)
+    hppa*64*|ia64*)
       _LT_AC_TAGVAR(hardcode_direct, $1)=no
       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
-    ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
     *)
       _LT_AC_TAGVAR(hardcode_direct, $1)=yes
       _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
@@ -3359,8 +3461,11 @@ case $host_os in
 	;;
       aCC*)
 	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	  ;;
 	*)
 	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
@@ -3380,8 +3485,11 @@ case $host_os in
 	if test "$GXX" = yes; then
 	  if test $with_gnu_ld = no; then
 	    case $host_cpu in
-	    ia64*|hppa*64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	    hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	      ;;
 	    *)
 	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
@@ -3395,6 +3503,20 @@ case $host_os in
 	;;
     esac
     ;;
+  interix[[3-9]]*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
   irix5* | irix6*)
     case $cc_basename in
       CC*)
@@ -3421,7 +3543,7 @@ case $host_os in
     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
     _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
     ;;
-  linux*)
+  linux* | k*bsd*-gnu)
     case $cc_basename in
       KCC*)
 	# Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -3501,6 +3623,29 @@ case $host_os in
 	# dependencies.
 	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
 	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C++ 5.9
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+	  # Not sure whether something based on
+	  # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	  # would be better.
+	  output_verbose_link_cmd='echo'
+
+	  # Archives containing C++ object files must be created using
+	  # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	  # necessary to make sure instantiated templates are included
+	  # in the archive.
+	  _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	  ;;
+	esac
+	;;
     esac
     ;;
   lynxos*)
@@ -3523,7 +3668,7 @@ case $host_os in
 	;;
     esac
     ;;
-  netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+  netbsd* | netbsdelf*-gnu)
     if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
       wlarc=
@@ -3539,16 +3684,20 @@ case $host_os in
     _LT_AC_TAGVAR(ld_shlibs, $1)=no
     ;;
   openbsd*)
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    if test -f /usr/libexec/ld.so; then
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      fi
+      output_verbose_link_cmd='echo'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
     fi
-    output_verbose_link_cmd='echo'
     ;;
   osf3*)
     case $cc_basename in
@@ -3677,19 +3826,6 @@ case $host_os in
     # FIXME: insert proper C++ library support
     _LT_AC_TAGVAR(ld_shlibs, $1)=no
     ;;
-  sco*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case $cc_basename in
-      CC*)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
   sunos4*)
     case $cc_basename in
       CC*)
@@ -3723,15 +3859,10 @@ case $host_os in
 	case $host_os in
 	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
 	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker. We must also pass each convience library through
-	    # to the system linker between allextract/defaultextract.
-	    # The C++ compiler will combine linker options so we
-	    # cannot just pass the convience library names through
-	    # without $wl.
+	    # The compiler driver will combine and reorder linker options,
+	    # but understands `-z linker_flag'.
 	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
 	    ;;
 	esac
 	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
@@ -3778,12 +3909,69 @@ case $host_os in
 	  fi
 
 	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	  case $host_os in
+	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	  *)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	  esac
 	fi
 	;;
     esac
     ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
     _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
     ;;
   tandem*)
     case $cc_basename in
@@ -3820,8 +4008,6 @@ AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
 AC_LIBTOOL_PROG_LD_SHLIBS($1)
 AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
 AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
 
 AC_LIBTOOL_CONFIG($1)
 
@@ -3839,7 +4025,7 @@ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
 ])# AC_LIBTOOL_LANG_CXX_CONFIG
 
 # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------
+# ------------------------------------
 # Figure out "hidden" library dependencies from verbose
 # compiler output when linking a shared library.
 # Parse the compiler output and extract the necessary
@@ -3972,15 +4158,57 @@ $rm -f confest.$objext
 # PORTME: override above test on systems where it is broken
 ifelse([$1],[CXX],
 [case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_AC_TAGVAR(predep_objects,$1)=
+  _LT_AC_TAGVAR(postdep_objects,$1)=
+  _LT_AC_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+    #
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
 solaris*)
   case $cc_basename in
   CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
     # Adding this requires a known-good setup of shared libraries for
     # Sun compiler versions before 5.6, else PIC objects from an old
     # archive will be linked into the output, leading to subtle bugs.
-    _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
     ;;
   esac
+  ;;
 esac
 ])
 
@@ -3990,7 +4218,7 @@ esac
 ])# AC_LIBTOOL_POSTDEP_PREDEP
 
 # AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
+# --------------------------
 # Ensure that the configuration vars for the C compiler are
 # suitably defined.  Those variables are subsequently used by
 # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
@@ -4026,10 +4254,17 @@ objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
+lt_simple_link_test_code="\
+      program t
+      end
+"
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_AC_SYS_COMPILER
@@ -4074,8 +4309,6 @@ AC_MSG_CHECKING([whether to build static libraries])
 test "$enable_shared" = yes || enable_static=yes
 AC_MSG_RESULT([$enable_static])
 
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
 _LT_AC_TAGVAR(GCC, $1)="$G77"
 _LT_AC_TAGVAR(LD, $1)="$LD"
 
@@ -4085,8 +4318,6 @@ AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
 AC_LIBTOOL_PROG_LD_SHLIBS($1)
 AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
 AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-
 
 AC_LIBTOOL_CONFIG($1)
 
@@ -4112,10 +4343,10 @@ objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
+lt_simple_compile_test_code="class foo {}"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_AC_SYS_COMPILER
@@ -4143,8 +4374,6 @@ AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
 AC_LIBTOOL_PROG_LD_SHLIBS($1)
 AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
 AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
 
 AC_LIBTOOL_CONFIG($1)
 
@@ -4154,7 +4383,7 @@ CC="$lt_save_CC"
 
 
 # AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
+# -------------------------
 # Ensure that the configuration vars for the Windows resource compiler are
 # suitably defined.  Those variables are subsequently used by
 # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
@@ -4170,7 +4399,7 @@ objext=o
 _LT_AC_TAGVAR(objext, $1)=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
 
 # Code to be used in simple link tests
 lt_simple_link_test_code="$lt_simple_compile_test_code"
@@ -4217,7 +4446,7 @@ if test -f "$ltmain"; then
   # Now quote all the things that may contain metacharacters while being
   # careful not to overquote the AC_SUBSTed values.  We take copies of the
   # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
     SED SHELL STRIP \
     libname_spec library_names_spec soname_spec extract_expsyms_cmds \
     old_striplib striplib file_magic_cmd finish_cmds finish_eval \
@@ -4259,6 +4488,7 @@ if test -f "$ltmain"; then
     _LT_AC_TAGVAR(module_cmds, $1) \
     _LT_AC_TAGVAR(module_expsym_cmds, $1) \
     _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(fix_srcfile_path, $1) \
     _LT_AC_TAGVAR(exclude_expsyms, $1) \
     _LT_AC_TAGVAR(include_expsyms, $1); do
 
@@ -4305,7 +4535,7 @@ ifelse([$1], [],
 # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Libtool:
@@ -4386,6 +4616,9 @@ AR_FLAGS=$lt_AR_FLAGS
 # A C compiler.
 LTCC=$lt_LTCC
 
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
 # A language-specific compiler.
 CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
 
@@ -4627,7 +4860,7 @@ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
 # Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+fix_srcfile_path=$lt_fix_srcfile_path
 
 # Set to yes if exported symbols are required.
 always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
@@ -4710,6 +4943,7 @@ fi
 # ---------------------------------
 AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
 [AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([LT_AC_PROG_SED])
 AC_REQUIRE([AC_PROG_NM])
 AC_REQUIRE([AC_OBJEXT])
 # Check for command to grab the raw symbol name followed by C symbol from nm.
@@ -4746,7 +4980,7 @@ hpux*) # Its linker distinguishes data from code symbols
   lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
   lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
   ;;
-linux*)
+linux* | k*bsd*-gnu)
   if test "$host_cpu" = ia64; then
     symcode='[[ABCDGIRSTW]]'
     lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
@@ -4759,9 +4993,18 @@ irix* | nonstopux*)
 osf*)
   symcode='[[BCDEGQRST]]'
   ;;
-solaris* | sysv5*)
+solaris*)
   symcode='[[BDRT]]'
   ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
 sysv4)
   symcode='[[DFNSTU]]'
   ;;
@@ -4927,12 +5170,14 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       # like `-m68040'.
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
       ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
-    mingw* | os2* | pw32*)
+    mingw* | cygwin* | os2* | pw32*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
       ;;
     darwin* | rhapsody*)
@@ -4944,6 +5189,10 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       # DJGPP does not support shared libraries at all
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
     sysv4*MP*)
       if test -d /usr/nec; then
 	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
@@ -5006,21 +5255,21 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    ;;
 	esac
 	;;
-      freebsd* | kfreebsd*-gnu | dragonfly*)
+      freebsd* | dragonfly*)
 	# FreeBSD uses GNU C++
 	;;
       hpux9* | hpux10* | hpux11*)
 	case $cc_basename in
 	  CC*)
 	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
 	    if test "$host_cpu" != ia64; then
 	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
 	    fi
 	    ;;
 	  aCC*)
 	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
 	    case $host_cpu in
 	    hppa*64*|ia64*)
 	      # +Z the default
@@ -5034,6 +5283,10 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    ;;
 	esac
 	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
       irix5* | irix6* | nonstopux*)
 	case $cc_basename in
 	  CC*)
@@ -5045,7 +5298,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    ;;
 	esac
 	;;
-      linux*)
+      linux* | k*bsd*-gnu)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -5072,6 +5325,14 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
 	    ;;
 	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
 	    ;;
 	esac
 	;;
@@ -5088,7 +5349,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    ;;
 	esac
 	;;
-      netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+      netbsd* | netbsdelf*-gnu)
 	;;
       osf3* | osf4* | osf5*)
 	case $cc_basename in
@@ -5113,15 +5374,6 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	;;
       psos*)
 	;;
-      sco*)
-	case $cc_basename in
-	  CC*)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
       solaris*)
 	case $cc_basename in
 	  CC*)
@@ -5163,7 +5415,14 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
 	    ;;
 	esac
 	;;
-      unixware*)
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
 	;;
       vxworks*)
 	;;
@@ -5194,13 +5453,15 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
       ;;
 
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
       ;;
 
@@ -5210,6 +5471,11 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
     msdosdjgpp*)
       # Just because we use GCC doesn't mean we suddenly get shared libraries
       # on systems that don't support them.
@@ -5263,7 +5529,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
@@ -5296,7 +5562,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       ;;
 
-    linux*)
+    linux* | k*bsd*-gnu)
       case $cc_basename in
       icc* | ecc*)
 	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -5315,6 +5581,22 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
         # All Alpha code is PIC.
         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
       esac
       ;;
 
@@ -5324,9 +5606,8 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    sco3.2v5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+    rdos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
     solaris*)
@@ -5346,7 +5627,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       ;;
 
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -5359,6 +5640,12 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       fi
       ;;
 
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
     unicos*)
       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
       _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
@@ -5400,6 +5687,16 @@ case $host_os in
     _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
 ])
 
 
@@ -5407,7 +5704,8 @@ esac
 # ------------------------------------
 # See if the linker supports building shared libraries.
 AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 ifelse([$1],[CXX],[
   _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
@@ -5424,9 +5722,9 @@ ifelse([$1],[CXX],[
     _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
   ;;
   cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
   ;;
-  linux*)
+  linux* | k*bsd*-gnu)
     _LT_AC_TAGVAR(link_all_deplibs, $1)=no
   ;;
   *)
@@ -5481,6 +5779,10 @@ ifelse([$1],[CXX],[
       with_gnu_ld=no
     fi
     ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
   openbsd*)
     with_gnu_ld=no
     ;;
@@ -5562,10 +5864,10 @@ EOF
       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_AC_TAGVAR(always_export_symbols, $1)=no
       _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	# If the export-symbols file already is a .def file (1st line
 	# is EXPORTS), use it as is; otherwise, prepend...
 	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
@@ -5574,13 +5876,28 @@ EOF
 	  echo EXPORTS > $output_objdir/$soname.def;
 	  cat $export_symbols >> $output_objdir/$soname.def;
 	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	_LT_AC_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
-    linux*)
+    interix[[3-9]]*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | k*bsd*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
 	tmp_addflag=
 	case $cc_basename,$host_cpu in
@@ -5598,13 +5915,22 @@ EOF
 	ifc* | ifort*)			# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	esac
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
 	if test $supports_anon_versioning = yes; then
 	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
   $echo "local: *; };" >> $output_objdir/$libname.ver~
-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
 	fi
 	_LT_AC_TAGVAR(link_all_deplibs, $1)=no
       else
@@ -5612,7 +5938,7 @@ EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -5622,7 +5948,7 @@ EOF
       fi
       ;;
 
-    solaris* | sysv5*)
+    solaris*)
       if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
 	_LT_AC_TAGVAR(ld_shlibs, $1)=no
 	cat <<EOF 1>&2
@@ -5643,6 +5969,33 @@ EOF
       fi
       ;;
 
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
     sunos4*)
       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       wlarc=
@@ -5676,7 +6029,7 @@ EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
 	# Neither direct hardcoding nor static linking is supported with a
 	# broken collect2.
 	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
@@ -5710,6 +6063,7 @@ EOF
   	    break
   	  fi
 	  done
+	  ;;
 	esac
 
 	exp_sym_flag='-bexport'
@@ -5736,7 +6090,7 @@ EOF
   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
 	  then
   	  # We have reworked collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+  	  :
 	  else
   	  # We have old collect2
   	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
@@ -5747,6 +6101,7 @@ EOF
   	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
   	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
 	  fi
+	  ;;
 	esac
 	shared_flag='-shared'
 	if test "$aix_use_runtimelinking" = yes; then
@@ -5759,11 +6114,11 @@ EOF
   	# chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
 	else
-  	if test "$aix_use_runtimelinking" = yes; then
+	  if test "$aix_use_runtimelinking" = yes; then
 	    shared_flag='${wl}-G'
 	  else
 	    shared_flag='${wl}-bM:SRE'
-  	fi
+	  fi
 	fi
       fi
 
@@ -5777,12 +6132,12 @@ EOF
        # Determine the default libpath from the value encoded in an empty executable.
        _LT_AC_SYS_LIBPATH_AIX
        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
        else
 	if test "$host_cpu" = ia64; then
 	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
 	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an empty executable.
 	 _LT_AC_SYS_LIBPATH_AIX
@@ -5791,13 +6146,11 @@ EOF
 	  # -berok will link without error, but may produce a broken library.
 	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
 	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
 	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
 	fi
       fi
       ;;
@@ -5830,7 +6183,7 @@ EOF
       # The linker will automatically build a .lib file if we build a DLL.
       _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
       # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
       _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
       _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
       ;;
@@ -5872,10 +6225,10 @@ EOF
       case $cc_basename in
         xlc*)
          output_verbose_link_cmd='echo'
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           ;;
        *)
@@ -5915,7 +6268,7 @@ EOF
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
+    freebsd* | dragonfly*)
       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_AC_TAGVAR(hardcode_direct, $1)=yes
@@ -5938,47 +6291,62 @@ EOF
       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
       ;;
 
-    hpux10* | hpux11*)
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
       if test "$GCC" = yes -a "$with_gnu_ld" = no; then
 	case $host_cpu in
-	hppa*64*|ia64*)
+	hppa*64*)
 	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
 	*)
 	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
 	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       fi
       if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
 	case $host_cpu in
-	hppa*64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	hppa*64*|ia64*)
 	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
 	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
 	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
 	  ;;
 	*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
 	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
 	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
 
@@ -6002,7 +6370,7 @@ EOF
       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -6022,24 +6390,28 @@ EOF
       ;;
 
     openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      if test -f /usr/libexec/ld.so; then
+	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
       else
-       case $host_os in
-	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	   ;;
-	 *)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	   ;;
-       esac
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
@@ -6080,14 +6452,6 @@ EOF
       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
       ;;
 
-    sco3.2v5*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
     solaris*)
       _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
       if test "$GCC" = yes; then
@@ -6106,17 +6470,16 @@ EOF
       case $host_os in
       solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
       *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
  	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
+	if test "$GCC" = yes; then
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
       esac
       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
       ;;
@@ -6173,36 +6536,45 @@ EOF
       fi
       ;;
 
-    sysv4.2uw2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
+      runpath_var='LD_RUN_PATH'
 
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
       if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    sysv5*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
       runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
       ;;
 
     uts4*)
@@ -6220,11 +6592,6 @@ EOF
 AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
 test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
 
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
 #
 # Do we need to explicitly link libc?
 #
@@ -6244,7 +6611,7 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       AC_MSG_CHECKING([whether -lc should be explicitly linked in])
       $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
         soname=conftest
@@ -6252,6 +6619,7 @@ x|xyes)
         libobjs=conftest.$ac_objext
         deplibs=
         wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
         compiler_flags=-v
         linker_flags=-v
         verstring=
@@ -6346,6 +6714,30 @@ AC_DEFUN([LT_AC_PROG_RC],
 [AC_CHECK_TOOL(RC, windres, no)
 ])
 
+
+# Cheap backport of AS_EXECUTABLE_P and required macros
+# from Autoconf 2.59; we should not use $as_executable_p directly.
+
+# _AS_TEST_PREPARE
+# ----------------
+m4_ifndef([_AS_TEST_PREPARE],
+[m4_defun([_AS_TEST_PREPARE],
+[if test -x / >/dev/null 2>&1; then
+  as_executable_p='test -x'
+else
+  as_executable_p='test -f'
+fi
+])])# _AS_TEST_PREPARE
+
+# AS_EXECUTABLE_P
+# ---------------
+# Check whether a file is executable.
+m4_ifndef([AS_EXECUTABLE_P],
+[m4_defun([AS_EXECUTABLE_P],
+[AS_REQUIRE([_AS_TEST_PREPARE])dnl
+$as_executable_p $1[]dnl
+])])# AS_EXECUTABLE_P
+
 # NOTE: This macro has been submitted for inclusion into   #
 #  GNU Autoconf as AC_PROG_SED.  When it is available in   #
 #  a released version of Autoconf we should remove this    #
@@ -6366,12 +6758,13 @@ do
   test -z "$as_dir" && as_dir=.
   for lt_ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+      if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then
         lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
       fi
     done
   done
 done
+IFS=$as_save_IFS
 lt_ac_max=0
 lt_ac_count=0
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -6404,9 +6797,168 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
 done
 ])
 SED=$lt_cv_path_SED
+AC_SUBST([SED])
 AC_MSG_RESULT([$SED])
 ])
 
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# 
+# Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+		
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$PKG_CONFIG"; then
+    if test -n "$$1"; then
+        pkg_cv_[]$1="$$1"
+    else
+        PKG_CHECK_EXISTS([$3],
+                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+			 [pkg_failed=yes])
+    fi
+else
+	pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+		[AC_MSG_RESULT([no])
+                $4])
+elif test $pkg_failed = untried; then
+	ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+		[$4])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
 #                                                        -*- Autoconf -*-
 # Copyright (C) 2002, 2003  Free Software Foundation, Inc.
 # Generated from amversion.in; do not edit by hand.
diff --git a/config.guess b/config.guess
index ad5281e..0f0fe71 100755
--- a/config.guess
+++ b/config.guess
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2005-08-03'
+timestamp='2007-03-06'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -106,7 +107,7 @@ set_cc_for_build='
 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 : ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -160,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
@@ -206,8 +208,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
 	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
     macppc:MirBSD:*:*)
-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
 	exit ;;
     *:MirBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
@@ -764,12 +769,19 @@ EOF
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 	exit ;;
     *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
 	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
-    i*:MINGW*:*)
+    *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
     i*:windows32*:*)
@@ -779,9 +791,15 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit ;;
+    *:Interix*:[3456]*)
+    	case ${UNAME_MACHINE} in
+	    x86) 
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
@@ -817,6 +835,9 @@ EOF
     arm*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
 	exit ;;
@@ -851,7 +872,11 @@ EOF
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
@@ -870,7 +895,11 @@ EOF
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
@@ -919,9 +948,15 @@ EOF
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
+    xtensa:Linux:*:*)
+    	echo xtensa-unknown-linux-gnu
+	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
@@ -964,7 +999,7 @@ EOF
 	LIBC=gnulibc1
 	# endif
 	#else
-	#ifdef __INTEL_COMPILER
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
 	LIBC=gnu
 	#else
 	LIBC=gnuaout
@@ -974,7 +1009,11 @@ EOF
 	LIBC=dietlibc
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
 	test x"${LIBC}" != x && {
 		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 		exit
@@ -1176,6 +1215,15 @@ EOF
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
 	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
@@ -1185,7 +1233,6 @@ EOF
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
-	    *86) UNAME_PROCESSOR=i686 ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1264,6 +1311,9 @@ EOF
     i*86:skyos:*:*)
 	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
 	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
diff --git a/config.sub b/config.sub
index 1c366df..5defff6 100755
--- a/config.sub
+++ b/config.sub
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2005-07-08'
+timestamp='2007-01-18'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -119,8 +120,9 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -171,6 +173,10 @@ case $os in
 	-hiux*)
 		os=-hiuxwe2
 		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco5)
 		os=-sco3.2v5
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -187,6 +193,10 @@ case $os in
 		# Don't forget version if it is 3.2v4 or newer.
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco*)
 		os=-sco3.2v2
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -231,15 +241,16 @@ case $basic_machine in
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
+	| fido | fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -257,28 +268,27 @@ case $basic_machine in
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
-	| ms1 \
+	| mt \
 	| msp430 \
+	| nios | nios2 \
 	| ns16k | ns32k \
 	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b \
-	| strongarm \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 	| z8k)
 		basic_machine=$basic_machine-unknown
 		;;
-	m32c)
-		basic_machine=$basic_machine-unknown
-		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
@@ -286,6 +296,9 @@ case $basic_machine in
 		;;
 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
 		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
 
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
@@ -305,18 +318,18 @@ case $basic_machine in
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
+	| avr-* | avr32-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
-	| m32r-* | m32rle-* \
+	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 	| m88110-* | m88k-* | maxq-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
@@ -336,31 +349,30 @@ case $basic_machine in
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
-	| ms1-* \
+	| mt-* \
 	| msp430-* \
+	| nios-* | nios2-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 	| xstormy16-* | xtensa-* \
 	| ymp-* \
 	| z8k-*)
 		;;
-	m32c-*)
-		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -696,6 +708,9 @@ case $basic_machine in
 		basic_machine=i386-pc
 		os=-msdos
 		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
 	mvs)
 		basic_machine=i370-ibm
 		os=-mvs
@@ -803,6 +818,12 @@ case $basic_machine in
 	pc532 | pc532-*)
 		basic_machine=ns32k-pc532
 		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	pentium | p5 | k5 | k6 | nexgen | viac3)
 		basic_machine=i586-pc
 		;;
@@ -859,6 +880,10 @@ case $basic_machine in
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
 	rom68k)
 		basic_machine=m68k-rom68k
 		os=-coff
@@ -885,6 +910,10 @@ case $basic_machine in
 	sb1el)
 		basic_machine=mipsisa64sb1el-unknown
 		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
 	sei)
 		basic_machine=mips-sei
 		os=-seiux
@@ -896,6 +925,9 @@ case $basic_machine in
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
 	sh64)
 		basic_machine=sh64-unknown
 		;;
@@ -1101,7 +1133,7 @@ case $basic_machine in
 	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b)
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
 		basic_machine=sparc-sun
 		;;
 	cydra)
@@ -1174,21 +1206,23 @@ case $os in
 	      | -aos* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1340,6 +1374,12 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
 	*-acorn)
 		os=-riscix1.2
 		;;
@@ -1349,9 +1389,9 @@ case $basic_machine in
 	arm*-semi)
 		os=-aout
 		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
@@ -1377,6 +1417,9 @@ case $basic_machine in
 	m68*-cisco)
 		os=-aout
 		;;
+        mep-*)
+		os=-elf
+		;;
 	mips*-cisco)
 		os=-elf
 		;;
diff --git a/configure b/configure
index 8c5b846..2318e71 100755
--- a/configure
+++ b/configure
@@ -1,25 +1,54 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
+# Generated by GNU Autoconf 2.61.
 #
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
 
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
 fi
-DUALCASE=1; export DUALCASE # for MKS sh
 
 # Support unset when possible.
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
@@ -29,8 +58,43 @@ else
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
 # Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
@@ -44,18 +108,19 @@ do
   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
-    $as_unset $as_var
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   fi
 done
 
 # Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
@@ -63,157 +128,388 @@ fi
 
 
 # Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+# CDPATH.
+$as_unset CDPATH
 
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
 fi
 
+  if test $as_have_required = yes && 	 (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
 
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
+  case $as_dir in
 	 /*)
-	   if ("$as_dir/$as_base" -c '
+	   for as_base in sh bash ksh sh5; do
+	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	   done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+	 # Try only shells that exist, to save several forks.
+	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		{ ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+	       as_have_required=yes
+	       if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
   as_lineno_1=$LINENO
   as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+        done
+        export CONFIG_SHELL
+        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell autoconf at gnu.org about your system,
+  echo including any error possibly output before this
+  echo message
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
+  chmod +x "$as_me.lineno" ||
     { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
 rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
 echo >conf$$.file
 if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
     as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
 elif ln conf$$.file conf$$ 2>/dev/null; then
   as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.file
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
@@ -222,7 +518,28 @@ else
   as_mkdir_p=false
 fi
 
-as_executable_p="test -f"
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -231,15 +548,6 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
 
 
 # Check that we are running under the correct shell.
@@ -395,29 +703,26 @@ tagnames=${tagnames+${tagnames},}CXX
 
 tagnames=${tagnames+${tagnames},}F77
 
+exec 7<&0 </dev/null 6>&1
+
 # Name of the host.
 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
-exec 6>&1
-
 #
 # Initializations.
 #
 ac_default_prefix=/usr/local
+ac_clean_files=
 ac_config_libobj_dir=.
+LIBOBJS=
 cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
 # Identity of this package.
 PACKAGE_NAME=
 PACKAGE_TARNAME=
@@ -429,42 +734,185 @@ ac_unique_file="src/gts.h"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
-#if HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
 # include <sys/types.h>
 #endif
-#if HAVE_SYS_STAT_H
+#ifdef HAVE_SYS_STAT_H
 # include <sys/stat.h>
 #endif
-#if STDC_HEADERS
+#ifdef STDC_HEADERS
 # include <stdlib.h>
 # include <stddef.h>
 #else
-# if HAVE_STDLIB_H
+# ifdef HAVE_STDLIB_H
 #  include <stdlib.h>
 # endif
 #endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
 #  include <memory.h>
 # endif
 # include <string.h>
 #endif
-#if HAVE_STRINGS_H
+#ifdef HAVE_STRINGS_H
 # include <strings.h>
 #endif
-#if HAVE_INTTYPES_H
+#ifdef HAVE_INTTYPES_H
 # include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
 #endif
-#if HAVE_UNISTD_H
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS GTS_MAJOR_VERSION GTS_MINOR_VERSION GTS_MICRO_VERSION GTS_VERSION LT_RELEASE LT_CURRENT LT_REVISION LT_AGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DA [...]
+ac_subst_vars='SHELL
+PATH_SEPARATOR
+PACKAGE_NAME
+PACKAGE_TARNAME
+PACKAGE_VERSION
+PACKAGE_STRING
+PACKAGE_BUGREPORT
+exec_prefix
+prefix
+program_transform_name
+bindir
+sbindir
+libexecdir
+datarootdir
+datadir
+sysconfdir
+sharedstatedir
+localstatedir
+includedir
+oldincludedir
+docdir
+infodir
+htmldir
+dvidir
+pdfdir
+psdir
+libdir
+localedir
+mandir
+DEFS
+ECHO_C
+ECHO_N
+ECHO_T
+LIBS
+build_alias
+host_alias
+target_alias
+GTS_MAJOR_VERSION
+GTS_MINOR_VERSION
+GTS_MICRO_VERSION
+GTS_VERSION
+LT_RELEASE
+LT_CURRENT
+LT_REVISION
+LT_AGE
+INSTALL_PROGRAM
+INSTALL_SCRIPT
+INSTALL_DATA
+CYGPATH_W
+PACKAGE
+VERSION
+ACLOCAL
+AUTOCONF
+AUTOMAKE
+AUTOHEADER
+MAKEINFO
+AMTAR
+install_sh
+STRIP
+INSTALL_STRIP_PROGRAM
+mkdir_p
+AWK
+SET_MAKE
+am__leading_dot
+build
+build_cpu
+build_vendor
+build_os
+host
+host_cpu
+host_vendor
+host_os
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+ac_ct_CC
+EXEEXT
+OBJEXT
+DEPDIR
+am__include
+am__quote
+AMDEP_TRUE
+AMDEP_FALSE
+AMDEPBACKSLASH
+CCDEPMODE
+am__fastdepCC_TRUE
+am__fastdepCC_FALSE
+SED
+GREP
+EGREP
+LN_S
+ECHO
+AR
+RANLIB
+CPP
+CXX
+CXXFLAGS
+ac_ct_CXX
+CXXDEPMODE
+am__fastdepCXX_TRUE
+am__fastdepCXX_FALSE
+CXXCPP
+F77
+FFLAGS
+ac_ct_F77
+LIBTOOL
+MAINTAINER_MODE_TRUE
+MAINTAINER_MODE_FALSE
+MAINT
+HAS_NETPBM_TRUE
+HAS_NETPBM_FALSE
+PKG_CONFIG
+GLIB_CFLAGS
+GLIB_LIBS
+GLIB_GENMARSHAL
+GOBJECT_QUERY
+GLIB_MKENUMS
+GLIB_CONFIG
+glib_cflags
+glib_libs
+glib_thread_cflags
+glib_thread_libs
+glib_module_cflags
+glib_module_libs
+GLIB_DEPLIBS
+LIBOBJS
+LTLIBOBJS'
 ac_subst_files=''
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+CXX
+CXXFLAGS
+CCC
+CXXCPP
+F77
+FFLAGS
+PKG_CONFIG'
+
 
 # Initialize some variables set by options.
 ac_init_help=
@@ -491,34 +939,48 @@ x_libraries=NONE
 # and all the variables that are supposed to be based on exec_prefix
 # by default will actually change.
 # Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
 
 ac_prev=
+ac_dashdash=
 for ac_option
 do
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
+    eval $ac_prev=\$ac_option
     ac_prev=
     continue
   fi
 
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+  case $ac_option in
+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)	ac_optarg=yes ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case $ac_option in
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
@@ -540,33 +1002,45 @@ do
   --config-cache | -C)
     cache_file=config.cache ;;
 
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+  -datadir | --datadir | --datadi | --datad)
     ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
     datadir=$ac_optarg ;;
 
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+    eval enable_$ac_feature=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
 
   -enable-* | --enable-*)
     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+    eval enable_$ac_feature=\$ac_optarg ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -593,6 +1067,12 @@ do
   -host=* | --host=* | --hos=* | --ho=*)
     host_alias=$ac_optarg ;;
 
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
@@ -617,13 +1097,16 @@ do
   | --libexe=* | --libex=* | --libe=*)
     libexecdir=$ac_optarg ;;
 
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
   -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
+  | --localstate | --localstat | --localsta | --localst | --locals)
     ac_prev=localstatedir ;;
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
     localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
@@ -688,6 +1171,16 @@ do
   | --progr-tra=* | --program-tr=* | --program-t=*)
     program_transform_name=$ac_optarg ;;
 
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
@@ -740,24 +1233,20 @@ do
   -with-* | --with-*)
     ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+    eval with_$ac_package=\$ac_optarg ;;
 
   -without-* | --without-*)
     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+    eval with_$ac_package=no ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -788,8 +1277,7 @@ Try \`$0 --help' for more information." >&2
     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
+    eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
   *)
@@ -809,27 +1297,19 @@ if test -n "$ac_prev"; then
    { (exit 1); exit 1; }; }
 fi
 
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
+# Be sure to have absolute directory names.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
 do
-  eval ac_val=$`echo $ac_var`
+  eval ac_val=\$$ac_var
   case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
+  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -856,94 +1336,76 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias-
 test "$silent" = yes && exec 6>/dev/null
 
 
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { echo "$as_me: error: Working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$0" ||
 $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$0" : 'X\(//\)[^/]' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
   srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
+  if test ! -r "$srcdir/$ac_unique_file"; then
     srcdir=..
   fi
 else
   ac_srcdir_defaulted=no
 fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
-  fi
 fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
    { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-ac_env_CXX_set=${CXX+set}
-ac_env_CXX_value=$CXX
-ac_cv_env_CXX_set=${CXX+set}
-ac_cv_env_CXX_value=$CXX
-ac_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_env_CXXFLAGS_value=$CXXFLAGS
-ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_cv_env_CXXFLAGS_value=$CXXFLAGS
-ac_env_CXXCPP_set=${CXXCPP+set}
-ac_env_CXXCPP_value=$CXXCPP
-ac_cv_env_CXXCPP_set=${CXXCPP+set}
-ac_cv_env_CXXCPP_value=$CXXCPP
-ac_env_F77_set=${F77+set}
-ac_env_F77_value=$F77
-ac_cv_env_F77_set=${F77+set}
-ac_cv_env_F77_value=$F77
-ac_env_FFLAGS_set=${FFLAGS+set}
-ac_env_FFLAGS_value=$FFLAGS
-ac_cv_env_FFLAGS_set=${FFLAGS+set}
-ac_cv_env_FFLAGS_value=$FFLAGS
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
 
 #
 # Report the --help message.
@@ -972,9 +1434,6 @@ Configuration:
   -n, --no-create         do not create output files
       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 
-_ACEOF
-
-  cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
 			  [$ac_default_prefix]
@@ -992,15 +1451,22 @@ Fine tuning of the installation directories:
   --bindir=DIR           user executables [EPREFIX/bin]
   --sbindir=DIR          system admin executables [EPREFIX/sbin]
   --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
   --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
   --libdir=DIR           object code libraries [EPREFIX/lib]
   --includedir=DIR       C header files [PREFIX/include]
   --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
+  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR          info documentation [DATAROOTDIR/info]
+  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR           man documentation [DATAROOTDIR/man]
+  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR          html documentation [DOCDIR]
+  --dvidir=DIR           dvi documentation [DOCDIR]
+  --pdfdir=DIR           pdf documentation [DOCDIR]
+  --psdir=DIR            ps documentation [DOCDIR]
 _ACEOF
 
   cat <<\_ACEOF
@@ -1023,10 +1489,8 @@ if test -n "$ac_init_help"; then
 Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-shared[=PKGS]
-                          build shared libraries [default=yes]
-  --enable-static[=PKGS]
-                          build static libraries [default=yes]
+  --enable-shared[=PKGS]  build shared libraries [default=yes]
+  --enable-static[=PKGS]  build static libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-dependency-tracking  speeds up one-time build
@@ -1043,8 +1507,7 @@ Optional Packages:
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
-  --with-tags[=TAGS]
-                          include additional configurations [automatic]
+  --with-tags[=TAGS]      include additional configurations [automatic]
   --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)
   --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)
 
@@ -1053,131 +1516,101 @@ Some influential environment variables:
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
   CPP         C preprocessor
   CXX         C++ compiler command
   CXXFLAGS    C++ compiler flags
   CXXCPP      C++ preprocessor
   F77         Fortran 77 compiler command
   FFLAGS      Fortran 77 compiler flags
+  PKG_CONFIG  path to pkg-config utility
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
 _ACEOF
+ac_status=$?
 fi
 
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
+    test -d "$ac_dir" || continue
     ac_builddir=.
 
-if test "$ac_dir" != .; then
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
 
 case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
+  .)  # We are building in place.
     ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd "$ac_popdir"
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
   done
 fi
 
-test -n "$ac_init_help" && exit 0
+test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.61
 
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
-  exit 0
+  exit
 fi
-exec 5>config.log
-cat >&5 <<_ACEOF
+cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
+generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
 
 _ACEOF
+exec 5>>config.log
 {
 cat <<_ASUNAME
 ## --------- ##
@@ -1196,7 +1629,7 @@ uname -v = `(uname -v) 2>/dev/null || echo unknown`
 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
@@ -1210,6 +1643,7 @@ do
   test -z "$as_dir" && as_dir=.
   echo "PATH: $as_dir"
 done
+IFS=$as_save_IFS
 
 } >&5
 
@@ -1231,7 +1665,6 @@ _ACEOF
 ac_configure_args=
 ac_configure_args0=
 ac_configure_args1=
-ac_sep=
 ac_must_keep_next=false
 for ac_pass in 1 2
 do
@@ -1242,7 +1675,7 @@ do
     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    *\'*)
       ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
@@ -1264,9 +1697,7 @@ do
 	  -* ) ac_must_keep_next=true ;;
 	esac
       fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
+      ac_configure_args="$ac_configure_args '$ac_arg'"
       ;;
     esac
   done
@@ -1277,8 +1708,8 @@ $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
 # would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
   # Save into config.log some information that might help in debugging.
   {
@@ -1291,20 +1722,34 @@ trap 'exit_status=$?
 _ASBOX
     echo
     # The following way of writing the cache mishandles newlines in values,
-{
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
   (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
       sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
     *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
-    esac;
-}
+    esac |
+    sort
+)
     echo
 
     cat <<\_ASBOX
@@ -1315,22 +1760,28 @@ _ASBOX
     echo
     for ac_var in $ac_subst_vars
     do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
       cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
 _ASBOX
       echo
       for ac_var in $ac_subst_files
       do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
@@ -1342,26 +1793,24 @@ _ASBOX
 ## ----------- ##
 _ASBOX
       echo
-      sed "/^$/d" confdefs.h | sort
+      cat confdefs.h
       echo
     fi
     test "$ac_signal" != 0 &&
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
-     ' 0
+' 0
 for ac_signal in 1 2 13 15; do
   trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
+rm -f -r conftest* confdefs.h
 
 # Predefined preprocessor variables.
 
@@ -1392,14 +1841,17 @@ _ACEOF
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
+if test -n "$CONFIG_SITE"; then
+  set x "$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+else
+  set x "$ac_default_prefix/share/config.site" \
+	"$ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in $CONFIG_SITE; do
+shift
+for ac_site_file
+do
   if test -r "$ac_site_file"; then
     { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
 echo "$as_me: loading site script $ac_site_file" >&6;}
@@ -1415,8 +1867,8 @@ if test -r "$cache_file"; then
     { echo "$as_me:$LINENO: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
     esac
   fi
 else
@@ -1428,12 +1880,11 @@ fi
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+for ac_var in $ac_precious_vars; do
   eval ac_old_set=\$ac_cv_env_${ac_var}_set
   eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
       { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
@@ -1458,8 +1909,7 @@ echo "$as_me:   current value: $ac_new_val" >&2;}
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1476,12 +1926,6 @@ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start ov
    { (exit 1); exit 1; }; }
 fi
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
 
 
 
@@ -1498,6 +1942,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
@@ -1540,29 +1989,35 @@ PACKAGE=gts
 
 am__api_version="1.8"
 ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
     break
-  elif test -f $ac_dir/install.sh; then
+  elif test -f "$ac_dir/install.sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
-  elif test -f $ac_dir/shtool; then
+  elif test -f "$ac_dir/shtool"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/shtool install -c"
     break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -1577,8 +2032,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1600,7 +2055,7 @@ case $as_dir/ in
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
@@ -1619,21 +2074,22 @@ case $as_dir/ in
     ;;
 esac
 done
+IFS=$as_save_IFS
 
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
     INSTALL=$ac_cv_path_install
   else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
+    # removed, or if the value is a relative name.
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
+{ echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -1643,8 +2099,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
@@ -1686,20 +2142,20 @@ echo "$as_me: error: newly created file is older than distributed files!
 Check your system clock" >&2;}
    { (exit 1); exit 1; }; }
 fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 test "$program_prefix" != NONE &&
-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 # Double any \ or $.  echo might interpret backslashes.
 # By default was `s,x,x', remove it if useless.
 cat <<\_ACEOF >conftest.sed
 s/[\\$]/&&/g;s/;s,x,x,$//
 _ACEOF
 program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
+rm -f conftest.sed
 
 # expand $ac_aux_dir to an absolute path
 am_aux_dir=`cd $ac_aux_dir && pwd`
@@ -1743,8 +2199,8 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_AWK+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1757,54 +2213,57 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
+  { echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$AWK" && break
 done
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
+set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
 all:
-	@echo 'ac_maketemp="$(MAKE)"'
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
 rm -f conftest.make
 fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
   SET_MAKE=
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -1869,8 +2328,8 @@ if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1883,32 +2342,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
+  { echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1921,27 +2382,41 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  STRIP=$ac_ct_STRIP
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
 else
   STRIP="$ac_cv_prog_STRIP"
 fi
@@ -1956,7 +2431,7 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
 
 
 # Specify a configuration file
-          ac_config_headers="$ac_config_headers config.h"
+ac_config_headers="$ac_config_headers config.h"
 
 
 
@@ -1985,10 +2460,9 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-# Check whether --enable-shared or --disable-shared was given.
+# Check whether --enable-shared was given.
 if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  p=${PACKAGE-default}
+  enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
     no) enable_shared=no ;;
@@ -2007,12 +2481,12 @@ if test "${enable_shared+set}" = set; then
     esac
 else
   enable_shared=yes
-fi;
+fi
 
-# Check whether --enable-static or --disable-static was given.
+
+# Check whether --enable-static was given.
 if test "${enable_static+set}" = set; then
-  enableval="$enable_static"
-  p=${PACKAGE-default}
+  enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
     no) enable_static=no ;;
@@ -2031,12 +2505,12 @@ if test "${enable_static+set}" = set; then
     esac
 else
   enable_static=yes
-fi;
+fi
 
-# Check whether --enable-fast-install or --disable-fast-install was given.
+
+# Check whether --enable-fast-install was given.
 if test "${enable_fast_install+set}" = set; then
-  enableval="$enable_fast_install"
-  p=${PACKAGE-default}
+  enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
     no) enable_fast_install=no ;;
@@ -2055,65 +2529,95 @@ if test "${enable_fast_install+set}" = set; then
     esac
 else
   enable_fast_install=yes
-fi;
+fi
+
 
 # Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
 if test "${ac_cv_build+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
   { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
 echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+echo "$as_me: error: invalid value of canonical build" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
 build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
 if test "${ac_cv_host+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
+fi
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+echo "$as_me: error: invalid value of canonical host" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
 host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 DEPDIR="${am__leading_dot}deps"
 
-          ac_config_commands="$ac_config_commands depfiles"
+ac_config_commands="$ac_config_commands depfiles"
 
 
 am_make=${MAKE-make}
@@ -2123,8 +2627,8 @@ am__doit:
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
 am__include="#"
 am__quote=
 _am_result=none
@@ -2151,15 +2655,15 @@ if test "$am__include" = "#"; then
 fi
 
 
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
+{ echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6; }
 rm -f confinc confmf
 
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+# Check whether --enable-dependency-tracking was given.
 if test "${enable_dependency_tracking+set}" = set; then
-  enableval="$enable_dependency_tracking"
+  enableval=$enable_dependency_tracking;
+fi
 
-fi;
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -2184,8 +2688,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2198,32 +2702,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2236,36 +2742,51 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 else
   CC="$ac_cv_prog_CC"
 fi
 
 if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2278,74 +2799,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
 
+  fi
 fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2359,7 +2840,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -2370,6 +2851,7 @@ do
   fi
 done
 done
+IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
@@ -2387,22 +2869,23 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$CC"; then
   if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
+  for ac_prog in cl.exe
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2415,36 +2898,38 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$CC" && break
   done
 fi
 if test -z "$CC"; then
   ac_ct_CC=$CC
-  for ac_prog in cl
+  for ac_prog in cl.exe
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2457,29 +2942,45 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_CC" && break
 done
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 fi
 
 fi
@@ -2492,21 +2993,35 @@ See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
+echo "$as_me:$LINENO: checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
@@ -2531,47 +3046,77 @@ ac_clean_files="$ac_clean_files a.out a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
+#
+# List of possible output files, starting from the most likely.
+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
+# only as a last resort.  b.out is created by i960 compilers.
+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
+#
+# The IRIX 6 linker writes into existing files which may not be
+# executable, retaining their permissions.  Remove them first so a
+# subsequent execution test works.
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link_default") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
 do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-	;;
-    conftest.$ac_ext )
-	# This is the source file.
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
 	;;
     [ab].out )
 	# We found the default executable, but exeext='' is most
 	# certainly right.
 	break;;
     *.* )
-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	# FIXME: I believe we export ac_cv_exeext for Libtool,
-	# but it would be cool to find out if it's true.  Does anybody
-	# maintain Libtool? --akim.
-	export ac_cv_exeext
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
 	break;;
     * )
 	break;;
   esac
 done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
 else
+  ac_file=''
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6; }
+if test -z "$ac_file"; then
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
@@ -2583,19 +3128,21 @@ See \`config.log' for more details." >&2;}
 fi
 
 ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
 
-# Check the compiler produces executables we can run.  If not, either
+# Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2614,22 +3161,27 @@ See \`config.log' for more details." >&2;}
     fi
   fi
 fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 rm -f a.out a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
+# Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6; }
+
+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
@@ -2640,9 +3192,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  export ac_cv_exeext
 	  break;;
     * ) break;;
   esac
@@ -2656,14 +3207,14 @@ See \`config.log' for more details." >&2;}
 fi
 
 rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
 if test "${ac_cv_objext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2683,14 +3234,20 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
@@ -2708,12 +3265,12 @@ fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2736,49 +3293,49 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+	ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2794,37 +3351,118 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cc_g=no
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
@@ -2840,12 +3478,12 @@ else
     CFLAGS=
   fi
 fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_prog_cc_stdc=no
+  ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -2879,12 +3517,17 @@ static char *f (char * (*g) (char **, int), char **p, ...)
 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
    function prototypes and stuff, but not '\xHH' hex character constants.
    These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std1 is added to get
+   as 'x'.  The following induces an error, until -std is added to get
    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
    array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std1.  */
+   that's true only with -std.  */
 int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -2899,201 +3542,57 @@ return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
   return 0;
 }
 _ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
-rm -f conftest.$ac_ext conftest.$ac_objext
+rm -f conftest.$ac_ext
 CC=$ac_save_CC
 
 fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
   *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3102,8 +3601,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CC"   am_compiler_list=
 
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3192,8 +3691,8 @@ else
 fi
 
 fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
 
@@ -3209,8 +3708,8 @@ else
 fi
 
 
-echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
 if test "${lt_cv_path_SED+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3223,12 +3722,13 @@ do
   test -z "$as_dir" && as_dir=.
   for lt_ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+      if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then
         lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
       fi
     done
   done
 done
+IFS=$as_save_IFS
 lt_ac_max=0
 lt_ac_count=0
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -3263,37 +3763,185 @@ done
 fi
 
 SED=$lt_cv_path_SED
-echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6
 
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
+{ echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6; }
+
+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Extract the first word of "grep ggrep" to use in msg output
+if test -z "$GREP"; then
+set dummy grep ggrep; ac_prog_name=$2
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_GREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in grep ggrep; do
+  for ac_exec_ext in '' $ac_executable_extensions; do
+    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+    # Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_GREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+GREP="$ac_cv_path_GREP"
+if test -z "$GREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     # Extract the first word of "egrep" to use in msg output
+if test -z "$EGREP"; then
+set dummy egrep; ac_prog_name=$2
+if test "${ac_cv_path_EGREP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
+  ac_path_EGREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in egrep; do
+  for ac_exec_ext in '' $ac_executable_extensions; do
+    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+    # Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
     fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_EGREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+EGREP="$ac_cv_path_EGREP"
+if test -z "$EGREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+
+   fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
 
 
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
+# Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then
-  withval="$with_gnu_ld"
-  test "$withval" = no || with_gnu_ld=yes
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
-fi;
+fi
+
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return which upsets mingw
@@ -3322,11 +3970,11 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
 else
-  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
 fi
 if test "${lt_cv_path_LD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3359,17 +4007,17 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
+  { echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3383,20 +4031,20 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
-echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
 if test "${lt_cv_ld_reload_flag+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
 "" | " "*) ;;
@@ -3406,15 +4054,15 @@ reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
   darwin*)
     if test "$GCC" = yes; then
-      reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
     ;;
 esac
 
-echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
 if test "${lt_cv_path_NM+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3422,56 +4070,63 @@ else
   # Let the user override the test.
   lt_cv_path_NM="$NM"
 else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
 	  break
 	  ;;
 	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
 	  ;;
 	esac
-      esac
-    fi
+      fi
+    done
+    IFS="$lt_save_ifs"
   done
-  IFS="$lt_save_ifs"
   test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
 fi
 fi
-echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6; }
 NM="$lt_cv_path_NM"
 
-echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 else
-  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6
+  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6; }
 fi
 
-echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
 if test "${lt_cv_deplibs_check_method+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3512,16 +4167,22 @@ cygwin*)
 
 mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
   ;;
 
 darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-freebsd* | kfreebsd*-gnu | dragonfly*)
+freebsd* | dragonfly*)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     case $host_cpu in
     i*86 )
@@ -3559,6 +4220,11 @@ hpux10.20* | hpux11*)
   esac
   ;;
 
+interix[3-9]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
 irix5* | irix6* | nonstopux*)
   case $LD in
   *-32|*"-32 ") libmagic=32-bit;;
@@ -3570,11 +4236,11 @@ irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux*)
+linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -3604,7 +4270,7 @@ osf3* | osf4* | osf5*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-sco3.2v5*)
+rdos*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -3612,7 +4278,7 @@ solaris*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+sysv4 | sysv4.3*)
   case $host_vendor in
   motorola)
     lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
@@ -3633,17 +4299,20 @@ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
   siemens)
     lt_cv_deplibs_check_method=pass_all
     ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
   esac
   ;;
 
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 esac
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -3654,15 +4323,18 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 
 
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+# Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then
-  enableval="$enable_libtool_lock"
+  enableval=$enable_libtool_lock;
+fi
 
-fi;
 test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 
 # Some flags need to be propagated to the compiler or linker for good
@@ -3689,7 +4361,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 3692 "configure"' > conftest.$ac_ext
+  echo '#line 4364 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -3724,7 +4396,8 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
@@ -3735,6 +4408,9 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
     case `/usr/bin/file conftest.o` in
     *32-bit*)
       case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_i386_fbsd"
+          ;;
         x86_64-*linux*)
           LD="${LD-ld} -m elf_i386"
           ;;
@@ -3751,6 +4427,9 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
       ;;
     *64-bit*)
       case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_x86_64_fbsd"
+          ;;
         x86_64-*linux*)
           LD="${LD-ld} -m elf_x86_64"
           ;;
@@ -3774,8 +4453,8 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
 if test "${lt_cv_cc_needs_belf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3801,34 +4480,32 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   lt_cv_cc_needs_belf=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-lt_cv_cc_needs_belf=no
+	lt_cv_cc_needs_belf=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -3837,13 +4514,33 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)    LD="${LD-ld} -64" ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
 
 esac
 
@@ -3855,8 +4552,8 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -3890,24 +4587,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -3916,9 +4611,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3928,24 +4624,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   # Broken: success on invalid input.
 continue
 else
@@ -3956,6 +4650,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -3973,8 +4668,8 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
+{ echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
@@ -3997,24 +4692,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -4023,9 +4716,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4035,24 +4729,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   # Broken: success on invalid input.
 continue
 else
@@ -4063,6 +4755,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -4085,8 +4778,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4110,34 +4803,31 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_stdc=no
+	ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
@@ -4193,6 +4883,7 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ctype.h>
+#include <stdlib.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
@@ -4212,18 +4903,27 @@ main ()
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
 	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+      return 2;
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4236,12 +4936,14 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
 fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -4264,9 +4966,9 @@ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 		  inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -4280,37 +4982,35 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_Header=no"
+	eval "$as_ac_Header=no"
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
@@ -4325,18 +5025,19 @@ done
 for ac_header in dlfcn.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -4347,40 +5048,37 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -4389,24 +5087,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -4414,9 +5110,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -4440,25 +5137,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -4470,18 +5161,22 @@ fi
 
 done
 
-ac_ext=cc
+ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4494,36 +5189,38 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
+  { echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$CXX" && break
   done
 fi
 if test -z "$CXX"; then
   ac_ct_CXX=$CXX
-  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4536,55 +5233,85 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_CXX" && break
 done
-test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
 
-  CXX=$ac_ct_CXX
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
 fi
 
-
+  fi
+fi
 # Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C++ compiler version" >&5
+echo "$as_me:$LINENO: checking for C++ compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4607,49 +5334,49 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+	ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
 GXX=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_cxx_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4665,157 +5392,134 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cxx_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
+	CXXFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
+
 int
 main ()
 {
-exit (42);
+
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   :
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
+	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_declaration
+
 int
 main ()
 {
-exit (42);
+
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cxx_g=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-ac_ext=cc
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -4823,8 +5527,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4913,8 +5617,8 @@ else
 fi
 
 fi
-echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
+{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
 
@@ -4935,13 +5639,13 @@ fi
 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
     ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
     (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cc
+  ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
 if test -z "$CXXCPP"; then
   if test "${ac_cv_prog_CXXCPP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4971,24 +5675,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -4997,9 +5699,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5009,24 +5712,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   # Broken: success on invalid input.
 continue
 else
@@ -5037,6 +5738,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -5054,8 +5756,8 @@ fi
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6
+{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6; }
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
 do
@@ -5078,24 +5780,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -5104,9 +5804,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5116,24 +5817,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   # Broken: success on invalid input.
 continue
 else
@@ -5144,6 +5843,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -5159,7 +5859,7 @@ See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-ac_ext=cc
+ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -5173,12 +5873,12 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
 ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_f77_compiler_gnu
 if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_F77+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5191,36 +5891,38 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 F77=$ac_cv_prog_F77
 if test -n "$F77"; then
-  echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6
+  { echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$F77" && break
   done
 fi
 if test -z "$F77"; then
   ac_ct_F77=$F77
-  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5233,48 +5935,78 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_F77="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_F77=$ac_cv_prog_ac_ct_F77
 if test -n "$ac_ct_F77"; then
-  echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_F77" && break
 done
 
-  F77=$ac_ct_F77
+  if test "x$ac_ct_F77" = x; then
+    F77=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    F77=$ac_ct_F77
+  fi
 fi
 
 
 # Provide some information about the compiler.
-echo "$as_me:5263:" \
-     "checking for Fortran 77 compiler version" >&5
+echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
@@ -5284,8 +6016,8 @@ rm -f a.out
 # input file.  (Note that this only needs to work for GNU compilers.)
 ac_save_ext=$ac_ext
 ac_ext=F
-echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
 if test "${ac_cv_f77_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5298,45 +6030,42 @@ else
       end
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+	ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_f77_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
 ac_ext=$ac_save_ext
 ac_test_FFLAGS=${FFLAGS+set}
 ac_save_FFLAGS=$FFLAGS
 FFLAGS=
-echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_f77_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5347,38 +6076,35 @@ cat >conftest.$ac_ext <<_ACEOF
       end
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_f77_g=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_f77_g=no
+	ac_cv_prog_f77_g=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
 if test "$ac_test_FFLAGS" = set; then
   FFLAGS=$ac_save_FFLAGS
 elif test $ac_cv_prog_f77_g = yes; then
@@ -5407,8 +6133,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
 
 # find the maximum length of command line arguments
-echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
 if test "${lt_cv_sys_max_cmd_len+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5461,6 +6187,12 @@ else
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -5474,44 +6206,59 @@ else
       esac
     fi
     ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ 	]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
   *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-    while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
 	       = "XX$teststring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+	      new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	      lt_cv_sys_max_cmd_len=$new_result &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on massive
+      # amounts of additional arguments before passing them to the linker.
+      # It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
     ;;
   esac
 
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
+  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
 else
-  echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6
+  { echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6; }
 fi
 
 
 
 
+
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5546,7 +6293,7 @@ hpux*) # Its linker distinguishes data from code symbols
   lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
   lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
   ;;
-linux*)
+linux* | k*bsd*-gnu)
   if test "$host_cpu" = ia64; then
     symcode='[ABCDGIRSTW]'
     lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
@@ -5559,9 +6306,18 @@ irix* | nonstopux*)
 osf*)
   symcode='[BCDEGQRST]'
   ;;
-solaris* | sysv5*)
+solaris*)
   symcode='[BDRT]'
   ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
 sysv4)
   symcode='[DFNSTU]'
   ;;
@@ -5706,15 +6462,15 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6
+  { echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6; }
 else
-  echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6
+  { echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6; }
 fi
 
-echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
 if test "${lt_cv_objdir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5728,8 +6484,8 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
 
@@ -5780,8 +6536,8 @@ with_gnu_ld="$lt_cv_prog_gnu_ld"
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5794,32 +6550,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
+  { echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5832,27 +6590,41 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
 fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  AR=$ac_ct_AR
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
 else
   AR="$ac_cv_prog_AR"
 fi
@@ -5860,8 +6632,8 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5874,32 +6646,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
+  { echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5912,27 +6686,41 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  RANLIB=$ac_ct_RANLIB
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
 else
   RANLIB="$ac_cv_prog_RANLIB"
 fi
@@ -5940,8 +6728,8 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5954,32 +6742,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
+  { echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5992,27 +6782,41 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  STRIP=$ac_ct_STRIP
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
 else
   STRIP="$ac_cv_prog_STRIP"
 fi
@@ -6027,6 +6831,7 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 test -z "$AS" && AS=as
 test -z "$CC" && CC=cc
 test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
 test -z "$DLLTOOL" && DLLTOOL=dlltool
 test -z "$LD" && LD=ld
 test -z "$LN_S" && LN_S="ln -s"
@@ -6039,17 +6844,17 @@ test -z "$STRIP" && STRIP=:
 test -z "$ac_objext" && ac_objext=o
 
 # Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
 old_postinstall_cmds='chmod 644 $oldlib'
 old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
     ;;
   *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
     ;;
   esac
   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
@@ -6070,8 +6875,8 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6123,17 +6928,17 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
+  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6
+    { echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6; }
 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6185,11 +6990,11 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
+  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
   else
@@ -6204,21 +7009,21 @@ esac
 enable_dlopen=no
 enable_win32_dll=no
 
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+# Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then
-  enableval="$enable_libtool_lock"
+  enableval=$enable_libtool_lock;
+fi
 
-fi;
 test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 
 
-# Check whether --with-pic or --without-pic was given.
+# Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then
-  withval="$with_pic"
-  pic_mode="$withval"
+  withval=$with_pic; pic_mode="$withval"
 else
   pic_mode=default
-fi;
+fi
+
 test -z "$pic_mode" && pic_mode=default
 
 # Use C for the default configuration in the libtool script
@@ -6239,98 +7044,36 @@ objext=o
 objext=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
+lt_simple_link_test_code='int main(){return(0);}'
 
 
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 
 
 # save warnings/boilerplate of simple test code
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_compiler_boilerplate=`cat conftest.err`
 $rm conftest*
 
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
 $rm conftest*
 
 
-#
-# Check for any special shared library compilation flags.
-#
-lt_prog_cc_shlib=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    lt_prog_cc_shlib='-belf'
-    ;;
-  esac
-fi
-if test -n "$lt_prog_cc_shlib"; then
-  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
-echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
-  if echo "$old_CC $old_CFLAGS " | grep "[ 	]$lt_prog_cc_shlib[ 	]" >/dev/null; then :
-  else
-    { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
-echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
-    lt_cv_prog_cc_can_build_shared=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
-       $SED '/^$/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works=yes
-       fi
-     else
-       lt_prog_compiler_static_works=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
-
-if test x"$lt_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
 
 lt_prog_compiler_no_builtin_flag=
 
@@ -6338,14 +7081,14 @@ if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
 
-echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="-fno-rtti -fno-exceptions"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -6356,25 +7099,25 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6359: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7102: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6363: \$? = $ac_status" >&5
+   echo "$as_me:7106: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
      fi
    fi
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -6388,8 +7131,8 @@ lt_prog_compiler_wl=
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -6411,13 +7154,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
       ;;
 
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
       lt_prog_compiler_pic='-DDLL_EXPORT'
       ;;
 
@@ -6427,6 +7172,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_pic='-fno-common'
       ;;
 
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
     msdosdjgpp*)
       # Just because we use GCC doesn't mean we suddenly get shared libraries
       # on systems that don't support them.
@@ -6480,7 +7230,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic='-DDLL_EXPORT'
@@ -6513,7 +7263,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static='-Bstatic'
       ;;
 
-    linux*)
+    linux* | k*bsd*-gnu)
       case $cc_basename in
       icc* | ecc*)
 	lt_prog_compiler_wl='-Wl,'
@@ -6532,6 +7282,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
         # All Alpha code is PIC.
         lt_prog_compiler_static='-non_shared'
         ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl=''
+	  ;;
+	esac
+	;;
       esac
       ;;
 
@@ -6541,9 +7307,8 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    sco3.2v5*)
-      lt_prog_compiler_pic='-Kpic'
-      lt_prog_compiler_static='-dn'
+    rdos*)
+      lt_prog_compiler_static='-non_shared'
       ;;
 
     solaris*)
@@ -6563,7 +7328,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static='-Bstatic'
       ;;
 
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       lt_prog_compiler_wl='-Wl,'
       lt_prog_compiler_pic='-KPIC'
       lt_prog_compiler_static='-Bstatic'
@@ -6576,6 +7341,12 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       fi
       ;;
 
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
     unicos*)
       lt_prog_compiler_wl='-Wl,'
       lt_prog_compiler_can_build_shared=no
@@ -6592,22 +7363,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
     esac
   fi
 
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
 
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
 if test "${lt_prog_compiler_pic_works+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_prog_compiler_pic_works=no
   ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -6618,25 +7389,25 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6621: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7392: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6625: \$? = $ac_status" >&5
+   echo "$as_me:7396: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_prog_compiler_pic_works=yes
      fi
    fi
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
 
 if test x"$lt_prog_compiler_pic_works" = xyes; then
     case $lt_prog_compiler_pic in
@@ -6659,17 +7430,59 @@ case $host_os in
     ;;
 esac
 
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_cv_prog_compiler_c_o=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
+  lt_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works=yes
+       fi
+     else
+       lt_prog_compiler_static_works=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
    mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
    lt_compiler_flag="-o out/conftest2.$ac_objext"
    # Insert the option either (1) after the last *FLAGS variable, or
@@ -6680,18 +7493,18 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6683: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7496: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:6687: \$? = $ac_status" >&5
+   echo "$as_me:7500: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
-     $SED '/^$/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
      fi
    fi
@@ -6706,23 +7519,23 @@ else
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
   if test "$hard_links" = no; then
     { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
@@ -6732,8 +7545,8 @@ else
   need_locks=no
 fi
 
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 
   runpath_var=
   allow_undefined_flag=
@@ -6791,6 +7604,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
       with_gnu_ld=no
     fi
     ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
   openbsd*)
     with_gnu_ld=no
     ;;
@@ -6872,10 +7689,10 @@ EOF
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	# If the export-symbols file already is a .def file (1st line
 	# is EXPORTS), use it as is; otherwise, prepend...
 	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
@@ -6884,13 +7701,28 @@ EOF
 	  echo EXPORTS > $output_objdir/$soname.def;
 	  cat $export_symbols >> $output_objdir/$soname.def;
 	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	ld_shlibs=no
       fi
       ;;
 
-    linux*)
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | k*bsd*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
 	tmp_addflag=
 	case $cc_basename,$host_cpu in
@@ -6908,13 +7740,22 @@ EOF
 	ifc* | ifort*)			# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	esac
-	archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
 	if test $supports_anon_versioning = yes; then
 	  archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
   $echo "local: *; };" >> $output_objdir/$libname.ver~
-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
 	fi
 	link_all_deplibs=no
       else
@@ -6922,7 +7763,7 @@ EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -6932,7 +7773,7 @@ EOF
       fi
       ;;
 
-    solaris* | sysv5*)
+    solaris*)
       if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
 	ld_shlibs=no
 	cat <<EOF 1>&2
@@ -6953,6 +7794,33 @@ EOF
       fi
       ;;
 
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
+
     sunos4*)
       archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       wlarc=
@@ -6986,7 +7854,7 @@ EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
 	# Neither direct hardcoding nor static linking is supported with a
 	# broken collect2.
 	hardcode_direct=unsupported
@@ -7020,6 +7888,7 @@ EOF
   	    break
   	  fi
 	  done
+	  ;;
 	esac
 
 	exp_sym_flag='-bexport'
@@ -7046,7 +7915,7 @@ EOF
   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
 	  then
   	  # We have reworked collect2
-  	  hardcode_direct=yes
+  	  :
 	  else
   	  # We have old collect2
   	  hardcode_direct=unsupported
@@ -7057,6 +7926,7 @@ EOF
   	  hardcode_libdir_flag_spec='-L$libdir'
   	  hardcode_libdir_separator=
 	  fi
+	  ;;
 	esac
 	shared_flag='-shared'
 	if test "$aix_use_runtimelinking" = yes; then
@@ -7069,11 +7939,11 @@ EOF
   	# chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
 	else
-  	if test "$aix_use_runtimelinking" = yes; then
+	  if test "$aix_use_runtimelinking" = yes; then
 	    shared_flag='${wl}-G'
 	  else
 	    shared_flag='${wl}-bM:SRE'
-  	fi
+	  fi
 	fi
       fi
 
@@ -7101,48 +7971,54 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
        else
 	if test "$host_cpu" = ia64; then
 	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
 	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an empty executable.
 	 cat >conftest.$ac_ext <<_ACEOF
@@ -7161,38 +8037,44 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
@@ -7201,13 +8083,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	  # -berok will link without error, but may produce a broken library.
 	  no_undefined_flag=' ${wl}-bernotok'
 	  allow_undefined_flag=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  always_export_symbols=yes
 	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec=' '
+	  whole_archive_flag_spec='$convenience'
 	  archive_cmds_need_lc=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
 	fi
       fi
       ;;
@@ -7240,7 +8120,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # The linker will automatically build a .lib file if we build a DLL.
       old_archive_From_new_cmds='true'
       # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
       fix_srcfile_path='`cygpath -w "$srcfile"`'
       enable_shared_with_static_runtimes=yes
       ;;
@@ -7282,10 +8162,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $cc_basename in
         xlc*)
          output_verbose_link_cmd='echo'
-         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
          module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           ;;
        *)
@@ -7325,7 +8205,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
+    freebsd* | dragonfly*)
       archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
@@ -7348,47 +8228,62 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       export_dynamic_flag_spec='${wl}-E'
       ;;
 
-    hpux10* | hpux11*)
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	hardcode_direct=yes
+	export_dynamic_flag_spec='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
       if test "$GCC" = yes -a "$with_gnu_ld" = no; then
 	case $host_cpu in
-	hppa*64*|ia64*)
+	hppa*64*)
 	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
 	*)
 	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
 	case $host_cpu in
-	hppa*64*|ia64*)
-	  archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hppa*64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       fi
       if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
 	case $host_cpu in
-	hppa*64*)
-	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hppa*64*|ia64*)
 	  hardcode_libdir_flag_spec_ld='+b $libdir'
-	  hardcode_libdir_separator=:
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	ia64*)
-	  hardcode_libdir_flag_spec='-L$libdir'
 	  hardcode_direct=no
 	  hardcode_shlibpath_var=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
 	  ;;
 	*)
-	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator=:
 	  hardcode_direct=yes
 	  export_dynamic_flag_spec='${wl}-E'
 
@@ -7412,7 +8307,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -7432,24 +8327,28 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     openbsd*)
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec='${wl}-E'
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct=yes
+	hardcode_shlibpath_var=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
       else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	   ;;
-       esac
+	ld_shlibs=no
       fi
       ;;
 
@@ -7490,14 +8389,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       hardcode_libdir_separator=:
       ;;
 
-    sco3.2v5*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
     solaris*)
       no_undefined_flag=' -z text'
       if test "$GCC" = yes; then
@@ -7516,17 +8407,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $host_os in
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
  	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+	fi
+	;;
       esac
       link_all_deplibs=yes
       ;;
@@ -7583,36 +8473,45 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       fi
       ;;
 
-    sysv4.2uw2*)
-      archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=no
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
+      runpath_var='LD_RUN_PATH'
 
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag='${wl}-z ${wl}text'
       if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
       ;;
 
-    sysv5*)
-      no_undefined_flag=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec=
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
       hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
       runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
       ;;
 
     uts4*)
@@ -7627,15 +8526,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6
+{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
 #
 # Do we need to explicitly link libc?
 #
@@ -7653,10 +8547,10 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
       $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
@@ -7668,6 +8562,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         libobjs=conftest.$ac_objext
         deplibs=
         wl=$lt_prog_compiler_wl
+	pic_flag=$lt_prog_compiler_pic
         compiler_flags=-v
         linker_flags=-v
         verstring=
@@ -7690,16 +8585,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -7713,17 +8608,55 @@ shlibpath_overrides_runpath=unknown
 version_type=none
 dynamic_linker="$host_os ld.so"
 sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
 if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
   else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[lt_foo]++; }
+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`echo $lt_search_path_spec`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -7883,12 +8816,8 @@ darwin* | rhapsody*)
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
+
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
   ;;
 
@@ -7905,18 +8834,6 @@ freebsd1*)
   dynamic_linker=no
   ;;
 
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -7949,10 +8866,15 @@ freebsd* | dragonfly*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
-  *) # from 3.2 on
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
     shlibpath_overrides_runpath=no
     hardcode_into_libs=yes
     ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
   esac
   ;;
 
@@ -8012,6 +8934,18 @@ hpux9* | hpux10* | hpux11*)
   postinstall_cmds='chmod 555 $lib'
   ;;
 
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
@@ -8055,7 +8989,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux*)
+linux* | k*bsd*-gnu)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -8071,7 +9005,7 @@ linux*)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -8096,18 +9030,6 @@ netbsdelf*-gnu)
   dynamic_linker='NetBSD ld.elf_so'
   ;;
 
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -8145,6 +9067,7 @@ nto-qnx*)
 
 openbsd*)
   version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
   need_lib_prefix=no
   # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
   case $host_os in
@@ -8188,11 +9111,8 @@ osf3* | osf4* | osf5*)
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
   ;;
 
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
+rdos*)
+  dynamic_linker=no
   ;;
 
 solaris*)
@@ -8220,7 +9140,7 @@ sunos4*)
   need_version=yes
   ;;
 
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+sysv4 | sysv4.3*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -8253,6 +9173,29 @@ sysv4*MP*)
   fi
   ;;
 
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
 uts4*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -8264,12 +9207,17 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" || \
    test -n "$runpath_var" || \
@@ -8293,8 +9241,8 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6
+{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink; then
   # Fast installation is not supported
@@ -8307,29 +9255,30 @@ fi
 
 striplib=
 old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
    darwin*)
        if test -n "$STRIP" ; then
          striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+         old_striplib="$STRIP -S"
+         { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
        else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
        ;;
    *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
     ;;
   esac
 fi
@@ -8361,8 +9310,8 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8375,55 +9324,53 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dlopen ();
 int
 main ()
 {
-dlopen ();
+return dlopen ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_dl_dlopen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dl_dlopen=no
+	ac_cv_lib_dl_dlopen=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 if test $ac_cv_lib_dl_dlopen = yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
@@ -8437,8 +9384,8 @@ fi
    ;;
 
   *)
-    echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+    { echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
 if test "${ac_cv_func_shl_load+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8465,72 +9412,64 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef shl_load
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char shl_load ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
+#if defined __stub_shl_load || defined __stub___shl_load
 choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != shl_load;
+return shl_load ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_func_shl_load=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_shl_load=no
+	ac_cv_func_shl_load=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
 if test $ac_cv_func_shl_load = yes; then
   lt_cv_dlopen="shl_load"
 else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dld_shl_load+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8543,60 +9482,58 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char shl_load ();
 int
 main ()
 {
-shl_load ();
+return shl_load ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_dld_shl_load=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dld_shl_load=no
+	ac_cv_lib_dld_shl_load=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
 if test $ac_cv_lib_dld_shl_load = yes; then
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
 else
-  echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
 if test "${ac_cv_func_dlopen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8623,72 +9560,64 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef dlopen
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dlopen ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
+#if defined __stub_dlopen || defined __stub___dlopen
 choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != dlopen;
+return dlopen ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_func_dlopen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_dlopen=no
+	ac_cv_func_dlopen=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
 if test $ac_cv_func_dlopen = yes; then
   lt_cv_dlopen="dlopen"
 else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8701,60 +9630,58 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dlopen ();
 int
 main ()
 {
-dlopen ();
+return dlopen ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_dl_dlopen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dl_dlopen=no
+	ac_cv_lib_dl_dlopen=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 if test $ac_cv_lib_dl_dlopen = yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
 if test "${ac_cv_lib_svld_dlopen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8767,60 +9694,58 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dlopen ();
 int
 main ()
 {
-dlopen ();
+return dlopen ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_svld_dlopen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_svld_dlopen=no
+	ac_cv_lib_svld_dlopen=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
 if test $ac_cv_lib_svld_dlopen = yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dld_dld_link+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8833,55 +9758,53 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dld_link ();
 int
 main ()
 {
-dld_link ();
+return dld_link ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_dld_dld_link=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dld_dld_link=no
+	ac_cv_lib_dld_dld_link=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
 if test $ac_cv_lib_dld_dld_link = yes; then
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
 fi
@@ -8916,13 +9839,13 @@ fi
     test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
     save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
 if test "${lt_cv_dlopen_self+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8932,7 +9855,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 8935 "configure"
+#line 9858 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -8989,6 +9912,8 @@ int main ()
       else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
       /* dlclose (self); */
     }
+  else
+    puts (dlerror ());
 
     exit (status);
 }
@@ -9003,7 +9928,7 @@ EOF
     case x$lt_status in
       x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
       x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
     esac
   else :
     # compilation failed
@@ -9014,13 +9939,13 @@ rm -fr conftest*
 
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
 if test "${lt_cv_dlopen_self_static+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9030,7 +9955,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9033 "configure"
+#line 9958 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9087,6 +10012,8 @@ int main ()
       else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
       /* dlclose (self); */
     }
+  else
+    puts (dlerror ());
 
     exit (status);
 }
@@ -9101,7 +10028,7 @@ EOF
     case x$lt_status in
       x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
       x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
     esac
   else :
     # compilation failed
@@ -9112,8 +10039,8 @@ rm -fr conftest*
 
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
     fi
 
     CPPFLAGS="$save_CPPFLAGS"
@@ -9134,14 +10061,14 @@ echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
 fi
 
 
-# Report which librarie types wil actually be built
-echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6
+# Report which library types will actually be built
+{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6; }
 
-echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
 test "$can_build_shared" = "no" && enable_shared=no
 
 # On AIX, shared libraries and static libraries use the same namespace, and
@@ -9161,15 +10088,15 @@ aix4* | aix5*)
   fi
     ;;
 esac
-echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6
+{ echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6; }
 
-echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
 # Make sure either enable_shared or enable_static is yes.
 test "$enable_shared" = yes || enable_static=yes
-echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6
+{ echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6; }
 
 # The else clause should only fire when bootstrapping the
 # libtool distribution, otherwise you forgot to ship ltmain.sh
@@ -9184,7 +10111,7 @@ if test -f "$ltmain"; then
   # Now quote all the things that may contain metacharacters while being
   # careful not to overquote the AC_SUBSTed values.  We take copies of the
   # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
     SED SHELL STRIP \
     libname_spec library_names_spec soname_spec extract_expsyms_cmds \
     old_striplib striplib file_magic_cmd finish_cmds finish_eval \
@@ -9226,6 +10153,7 @@ if test -f "$ltmain"; then
     module_cmds \
     module_expsym_cmds \
     lt_cv_prog_compiler_c_o \
+    fix_srcfile_path \
     exclude_expsyms \
     include_expsyms; do
 
@@ -9270,7 +10198,7 @@ echo "$as_me: creating $ofile" >&6;}
 # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Libtool:
@@ -9350,6 +10278,9 @@ AR_FLAGS=$lt_AR_FLAGS
 # A C compiler.
 LTCC=$lt_LTCC
 
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
 # A language-specific compiler.
 CC=$lt_compiler
 
@@ -9591,7 +10522,7 @@ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
 # Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
+fix_srcfile_path=$lt_fix_srcfile_path
 
 # Set to yes if exported symbols are required.
 always_export_symbols=$always_export_symbols
@@ -9658,11 +10589,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 CC="$lt_save_CC"
 
 
-# Check whether --with-tags or --without-tags was given.
+# Check whether --with-tags was given.
 if test "${with_tags+set}" = set; then
-  withval="$with_tags"
-  tagnames="$withval"
-fi;
+  withval=$with_tags; tagnames="$withval"
+fi
+
 
 if test -f "$ltmain" && test -n "$tagnames"; then
   if test ! -f "${ofile}"; then
@@ -9680,6 +10611,9 @@ echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script
 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
     fi
   fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
 
   # Extract list of available tagged configurations in $ofile.
   # Note that this assumes the entire list is on one line.
@@ -9713,7 +10647,7 @@ echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
 	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
 	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
 	    (test "X$CXX" != "Xg++"))) ; then
-	  ac_ext=cc
+	  ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -9732,6 +10666,7 @@ hardcode_libdir_flag_spec_CXX=
 hardcode_libdir_flag_spec_ld_CXX=
 hardcode_libdir_separator_CXX=
 hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
 hardcode_automatic_CXX=no
 module_cmds_CXX=
 module_expsym_cmds_CXX=
@@ -9756,30 +10691,33 @@ objext=o
 objext_CXX=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 
 
 # save warnings/boilerplate of simple test code
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_compiler_boilerplate=`cat conftest.err`
 $rm conftest*
 
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
 $rm conftest*
 
@@ -9794,12 +10732,12 @@ lt_save_path_LD=$lt_cv_path_LD
 if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
   lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
 else
-  unset lt_cv_prog_gnu_ld
+  $as_unset lt_cv_prog_gnu_ld
 fi
 if test -n "${lt_cv_path_LDCXX+set}"; then
   lt_cv_path_LD=$lt_cv_path_LDCXX
 else
-  unset lt_cv_path_LD
+  $as_unset lt_cv_path_LD
 fi
 test -z "${LDCXX+set}" || LD=$LDCXX
 CC=${CXX-"c++"}
@@ -9828,18 +10766,18 @@ if test "$GXX" = yes; then
   # Set up default GNU C++ configuration
 
 
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
+# Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then
-  withval="$with_gnu_ld"
-  test "$withval" = no || with_gnu_ld=yes
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
-fi;
+fi
+
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return which upsets mingw
@@ -9868,11 +10806,11 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
 else
-  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
 fi
 if test "${lt_cv_path_LD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9905,17 +10843,17 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
+  { echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9929,8 +10867,8 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
@@ -9980,8 +10918,8 @@ else
 fi
 
 # PORTME: fill in a description of your system's C++ link characteristics
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 ld_shlibs_CXX=yes
 case $host_os in
   aix3*)
@@ -10010,6 +10948,7 @@ case $host_os in
 	    ;;
 	  esac
 	done
+	;;
       esac
 
       exp_sym_flag='-bexport'
@@ -10036,7 +10975,7 @@ case $host_os in
 	   strings "$collect2name" | grep resolve_lib_name >/dev/null
 	then
 	  # We have reworked collect2
-	  hardcode_direct_CXX=yes
+	  :
 	else
 	  # We have old collect2
 	  hardcode_direct_CXX=unsupported
@@ -10047,6 +10986,7 @@ case $host_os in
 	  hardcode_libdir_flag_spec_CXX='-L$libdir'
 	  hardcode_libdir_separator_CXX=
 	fi
+	;;
       esac
       shared_flag='-shared'
       if test "$aix_use_runtimelinking" = yes; then
@@ -10091,49 +11031,55 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
       hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
      else
       if test "$host_cpu" = ia64; then
 	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
 	allow_undefined_flag_CXX="-z nodefs"
-	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
       else
 	# Determine the default libpath from the value encoded in an empty executable.
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10152,38 +11098,44 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
@@ -10192,16 +11144,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	# -berok will link without error, but may produce a broken library.
 	no_undefined_flag_CXX=' ${wl}-bernotok'
 	allow_undefined_flag_CXX=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	always_export_symbols_CXX=yes
 	# Exported symbols can be pulled into shared objects from archives
-	whole_archive_flag_spec_CXX=' '
+	whole_archive_flag_spec_CXX='$convenience'
 	archive_cmds_need_lc_CXX=yes
 	# This is similar to how AIX traditionally builds its shared libraries.
-	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
       fi
     fi
     ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      allow_undefined_flag_CXX=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+    ;;
+
   chorus*)
     case $cc_basename in
       *)
@@ -10211,7 +11173,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
     ;;
 
-
   cygwin* | mingw* | pw32*)
     # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
     # as there is no search path for DLLs.
@@ -10221,7 +11182,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     enable_shared_with_static_runtimes_CXX=yes
 
     if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       # If the export-symbols file already is a .def file (1st line
       # is EXPORTS), use it as is; otherwise, prepend...
       archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
@@ -10230,7 +11191,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	echo EXPORTS > $output_objdir/$soname.def;
 	cat $export_symbols >> $output_objdir/$soname.def;
       fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
     else
       ld_shlibs_CXX=no
     fi
@@ -10285,10 +11246,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $cc_basename in
         xlc*)
          output_verbose_link_cmd='echo'
-          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
           module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           ;;
        *)
@@ -10322,7 +11283,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   freebsd-elf*)
     archive_cmds_need_lc_CXX=no
     ;;
-  freebsd* | kfreebsd*-gnu | dragonfly*)
+  freebsd* | dragonfly*)
     # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
     # conventions
     ld_shlibs_CXX=yes
@@ -10367,33 +11328,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     ;;
   hpux10*|hpux11*)
     if test $with_gnu_ld = no; then
+      hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_CXX=:
+
       case $host_cpu in
-      hppa*64*)
-	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
-	hardcode_libdir_separator_CXX=:
-        ;;
-      ia64*)
-	hardcode_libdir_flag_spec_CXX='-L$libdir'
-        ;;
+      hppa*64*|ia64*) ;;
       *)
-	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator_CXX=:
 	export_dynamic_flag_spec_CXX='${wl}-E'
         ;;
       esac
     fi
     case $host_cpu in
-    hppa*64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      ;;
-    ia64*)
+    hppa*64*|ia64*)
       hardcode_direct_CXX=no
       hardcode_shlibpath_var_CXX=no
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
       ;;
     *)
       hardcode_direct_CXX=yes
@@ -10410,8 +11358,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	;;
       aCC*)
 	case $host_cpu in
-	hppa*64*|ia64*)
-	  archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	hppa*64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	  ;;
 	*)
 	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
@@ -10431,8 +11382,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	if test "$GXX" = yes; then
 	  if test $with_gnu_ld = no; then
 	    case $host_cpu in
-	    ia64*|hppa*64*)
-	      archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	    hppa*64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	      ;;
 	    *)
 	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
@@ -10446,6 +11400,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	;;
     esac
     ;;
+  interix[3-9]*)
+    hardcode_direct_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
   irix5* | irix6*)
     case $cc_basename in
       CC*)
@@ -10472,7 +11440,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
     hardcode_libdir_separator_CXX=:
     ;;
-  linux*)
+  linux* | k*bsd*-gnu)
     case $cc_basename in
       KCC*)
 	# Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -10552,6 +11520,29 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	# dependencies.
 	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
 	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C++ 5.9
+	  no_undefined_flag_CXX=' -zdefs'
+	  archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	  hardcode_libdir_flag_spec_CXX='-R$libdir'
+	  whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+	  # Not sure whether something based on
+	  # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	  # would be better.
+	  output_verbose_link_cmd='echo'
+
+	  # Archives containing C++ object files must be created using
+	  # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	  # necessary to make sure instantiated templates are included
+	  # in the archive.
+	  old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	  ;;
+	esac
+	;;
     esac
     ;;
   lynxos*)
@@ -10574,7 +11565,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	;;
     esac
     ;;
-  netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+  netbsd* | netbsdelf*-gnu)
     if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
       archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
       wlarc=
@@ -10590,16 +11581,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     ld_shlibs_CXX=no
     ;;
   openbsd*)
-    hardcode_direct_CXX=yes
-    hardcode_shlibpath_var_CXX=no
-    archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-      export_dynamic_flag_spec_CXX='${wl}-E'
-      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    if test -f /usr/libexec/ld.so; then
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	export_dynamic_flag_spec_CXX='${wl}-E'
+	whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      fi
+      output_verbose_link_cmd='echo'
+    else
+      ld_shlibs_CXX=no
     fi
-    output_verbose_link_cmd='echo'
     ;;
   osf3*)
     case $cc_basename in
@@ -10728,19 +11723,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     # FIXME: insert proper C++ library support
     ld_shlibs_CXX=no
     ;;
-  sco*)
-    archive_cmds_need_lc_CXX=no
-    case $cc_basename in
-      CC*)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
   sunos4*)
     case $cc_basename in
       CC*)
@@ -10774,15 +11756,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	case $host_os in
 	  solaris2.[0-5] | solaris2.[0-5].*) ;;
 	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker. We must also pass each convience library through
-	    # to the system linker between allextract/defaultextract.
-	    # The C++ compiler will combine linker options so we
-	    # cannot just pass the convience library names through
-	    # without $wl.
+	    # The compiler driver will combine and reorder linker options,
+	    # but understands `-z linker_flag'.
 	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
 	    ;;
 	esac
 	link_all_deplibs_CXX=yes
@@ -10829,12 +11806,69 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	  fi
 
 	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	  case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	  esac
 	fi
 	;;
     esac
     ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+    no_undefined_flag_CXX='${wl}-z,text'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    no_undefined_flag_CXX='${wl}-z,text'
+    allow_undefined_flag_CXX='${wl}-z,nodefs'
     archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+    export_dynamic_flag_spec_CXX='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
     ;;
   tandem*)
     case $cc_basename in
@@ -10858,8 +11892,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     ld_shlibs_CXX=no
     ;;
 esac
-echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6
+{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
 GCC_CXX="$GXX"
@@ -10969,15 +12003,57 @@ $rm -f confest.$objext
 
 # PORTME: override above test on systems where it is broken
 case $host_os in
+interix[3-9]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  predep_objects_CXX=
+  postdep_objects_CXX=
+  postdeps_CXX=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+    #
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+    if test "$solaris_use_stlport4" != yes; then
+      postdeps_CXX='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
 solaris*)
   case $cc_basename in
   CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
     # Adding this requires a known-good setup of shared libraries for
     # Sun compiler versions before 5.6, else PIC objects from an old
     # archive will be linked into the output, leading to subtle bugs.
-    postdeps_CXX='-lCstd -lCrun'
+    if test "$solaris_use_stlport4" != yes; then
+      postdeps_CXX='-library=Cstd -library=Crun'
+    fi
     ;;
   esac
+  ;;
 esac
 
 
@@ -10989,8 +12065,8 @@ lt_prog_compiler_wl_CXX=
 lt_prog_compiler_pic_CXX=
 lt_prog_compiler_static_CXX=
 
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -11011,12 +12087,14 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       # like `-m68040'.
       lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
       ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
-    mingw* | os2* | pw32*)
+    mingw* | cygwin* | os2* | pw32*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
       lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
       ;;
     darwin* | rhapsody*)
@@ -11028,6 +12106,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       # DJGPP does not support shared libraries at all
       lt_prog_compiler_pic_CXX=
       ;;
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
     sysv4*MP*)
       if test -d /usr/nec; then
 	lt_prog_compiler_pic_CXX=-Kconform_pic
@@ -11090,21 +12172,21 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	    ;;
 	esac
 	;;
-      freebsd* | kfreebsd*-gnu | dragonfly*)
+      freebsd* | dragonfly*)
 	# FreeBSD uses GNU C++
 	;;
       hpux9* | hpux10* | hpux11*)
 	case $cc_basename in
 	  CC*)
 	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
 	    if test "$host_cpu" != ia64; then
 	      lt_prog_compiler_pic_CXX='+Z'
 	    fi
 	    ;;
 	  aCC*)
 	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
 	    case $host_cpu in
 	    hppa*64*|ia64*)
 	      # +Z the default
@@ -11118,6 +12200,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	    ;;
 	esac
 	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
       irix5* | irix6* | nonstopux*)
 	case $cc_basename in
 	  CC*)
@@ -11129,7 +12215,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	    ;;
 	esac
 	;;
-      linux*)
+      linux* | k*bsd*-gnu)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -11156,6 +12242,14 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	    lt_prog_compiler_static_CXX='-non_shared'
 	    ;;
 	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      lt_prog_compiler_pic_CXX='-KPIC'
+	      lt_prog_compiler_static_CXX='-Bstatic'
+	      lt_prog_compiler_wl_CXX='-Qoption ld '
+	      ;;
+	    esac
 	    ;;
 	esac
 	;;
@@ -11172,7 +12266,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	    ;;
 	esac
 	;;
-      netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+      netbsd* | netbsdelf*-gnu)
 	;;
       osf3* | osf4* | osf5*)
 	case $cc_basename in
@@ -11197,15 +12291,6 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	;;
       psos*)
 	;;
-      sco*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
       solaris*)
 	case $cc_basename in
 	  CC*)
@@ -11247,7 +12332,14 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 	    ;;
 	esac
 	;;
-      unixware*)
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	esac
 	;;
       vxworks*)
 	;;
@@ -11257,22 +12349,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
     esac
   fi
 
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_CXX"; then
 
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_prog_compiler_pic_works_CXX=no
   ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -11283,25 +12375,25 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11286: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12378: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:11290: \$? = $ac_status" >&5
+   echo "$as_me:12382: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_prog_compiler_pic_works_CXX=yes
      fi
    fi
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
 
 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
     case $lt_prog_compiler_pic_CXX in
@@ -11324,8 +12416,50 @@ case $host_os in
     ;;
 esac
 
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_CXX=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_CXX=yes
+       fi
+     else
+       lt_prog_compiler_static_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+    :
+else
+    lt_prog_compiler_static_CXX=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11334,7 +12468,7 @@ else
    mkdir conftest
    cd conftest
    mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
    lt_compiler_flag="-o out/conftest2.$ac_objext"
    # Insert the option either (1) after the last *FLAGS variable, or
@@ -11345,18 +12479,18 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11348: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12482: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11352: \$? = $ac_status" >&5
+   echo "$as_me:12486: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
-     $SED '/^$/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_CXX=yes
      fi
    fi
@@ -11371,23 +12505,23 @@ else
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
   if test "$hard_links" = no; then
     { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
@@ -11397,8 +12531,8 @@ else
   need_locks=no
 fi
 
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
@@ -11415,9 +12549,9 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
     export_symbols_cmds_CXX="$ltdll_cmds"
   ;;
   cygwin* | mingw*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
   ;;
-  linux*)
+  linux* | k*bsd*-gnu)
     link_all_deplibs_CXX=no
   ;;
   *)
@@ -11425,15 +12559,10 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   ;;
   esac
 
-echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6
+{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
 #
 # Do we need to explicitly link libc?
 #
@@ -11451,10 +12580,10 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
       $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
@@ -11466,6 +12595,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         libobjs=conftest.$ac_objext
         deplibs=
         wl=$lt_prog_compiler_wl_CXX
+	pic_flag=$lt_prog_compiler_pic_CXX
         compiler_flags=-v
         linker_flags=-v
         verstring=
@@ -11488,16 +12618,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -11511,20 +12641,7 @@ shlibpath_overrides_runpath=unknown
 version_type=none
 dynamic_linker="$host_os ld.so"
 sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+
 need_lib_prefix=unknown
 hardcode_into_libs=no
 
@@ -11681,12 +12798,7 @@ darwin* | rhapsody*)
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
+
   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
   ;;
 
@@ -11703,18 +12815,6 @@ freebsd1*)
   dynamic_linker=no
   ;;
 
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -11747,10 +12847,15 @@ freebsd* | dragonfly*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
-  *) # from 3.2 on
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
     shlibpath_overrides_runpath=no
     hardcode_into_libs=yes
     ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
   esac
   ;;
 
@@ -11810,6 +12915,18 @@ hpux9* | hpux10* | hpux11*)
   postinstall_cmds='chmod 555 $lib'
   ;;
 
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
@@ -11853,7 +12970,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux*)
+linux* | k*bsd*-gnu)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -11869,7 +12986,7 @@ linux*)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -11894,18 +13011,6 @@ netbsdelf*-gnu)
   dynamic_linker='NetBSD ld.elf_so'
   ;;
 
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -11943,6 +13048,7 @@ nto-qnx*)
 
 openbsd*)
   version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
   need_lib_prefix=no
   # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
   case $host_os in
@@ -11986,11 +13092,8 @@ osf3* | osf4* | osf5*)
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
   ;;
 
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
+rdos*)
+  dynamic_linker=no
   ;;
 
 solaris*)
@@ -12018,7 +13121,7 @@ sunos4*)
   need_version=yes
   ;;
 
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+sysv4 | sysv4.3*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -12051,6 +13154,29 @@ sysv4*MP*)
   fi
   ;;
 
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
 uts4*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -12062,12 +13188,17 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
 hardcode_action_CXX=
 if test -n "$hardcode_libdir_flag_spec_CXX" || \
    test -n "$runpath_var_CXX" || \
@@ -12091,8 +13222,8 @@ else
   # directories.
   hardcode_action_CXX=unsupported
 fi
-echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6
+{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6; }
 
 if test "$hardcode_action_CXX" = relink; then
   # Fast installation is not supported
@@ -12103,1196 +13234,372 @@ elif test "$shlibpath_overrides_runpath" = yes ||
   enable_fast_install=needless
 fi
 
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
 
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_CXX \
+    CC_CXX \
+    LD_CXX \
+    lt_prog_compiler_wl_CXX \
+    lt_prog_compiler_pic_CXX \
+    lt_prog_compiler_static_CXX \
+    lt_prog_compiler_no_builtin_flag_CXX \
+    export_dynamic_flag_spec_CXX \
+    thread_safe_flag_spec_CXX \
+    whole_archive_flag_spec_CXX \
+    enable_shared_with_static_runtimes_CXX \
+    old_archive_cmds_CXX \
+    old_archive_from_new_cmds_CXX \
+    predep_objects_CXX \
+    postdep_objects_CXX \
+    predeps_CXX \
+    postdeps_CXX \
+    compiler_lib_search_path_CXX \
+    archive_cmds_CXX \
+    archive_expsym_cmds_CXX \
+    postinstall_cmds_CXX \
+    postuninstall_cmds_CXX \
+    old_archive_from_expsyms_cmds_CXX \
+    allow_undefined_flag_CXX \
+    no_undefined_flag_CXX \
+    export_symbols_cmds_CXX \
+    hardcode_libdir_flag_spec_CXX \
+    hardcode_libdir_flag_spec_ld_CXX \
+    hardcode_libdir_separator_CXX \
+    hardcode_automatic_CXX \
+    module_cmds_CXX \
+    module_expsym_cmds_CXX \
+    lt_cv_prog_compiler_c_o_CXX \
+    fix_srcfile_path_CXX \
+    exclude_expsyms_CXX \
+    include_expsyms_CXX; do
 
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
+    case $var in
+    old_archive_cmds_CXX | \
+    old_archive_from_new_cmds_CXX | \
+    archive_cmds_CXX | \
+    archive_expsym_cmds_CXX | \
+    module_cmds_CXX | \
+    module_expsym_cmds_CXX | \
+    old_archive_from_expsyms_cmds_CXX | \
+    export_symbols_cmds_CXX | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
     ;;
+  esac
 
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
+cfgfile="$ofile"
 
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
 
-  darwin*)
-  # if libdl is installed we need to link against it
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
 
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
 
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
 
-fi
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
 
-   ;;
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
 
-  *)
-    echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
-#undef shl_load
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
-#endif
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
 
-int
-main ()
-{
-return f != shl_load;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# A C compiler.
+LTCC=$lt_LTCC
 
-ac_cv_func_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# A language-specific compiler.
+CC=$lt_compiler_CXX
 
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+# An ERE matcher.
+EGREP=$lt_EGREP
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+# The linker used to build libraries.
+LD=$lt_LD_CXX
 
-#undef dlopen
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
-#endif
+# A BSD-compatible nm program.
+NM=$lt_NM
 
-int
-main ()
-{
-return f != dlopen;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# A symbol stripping program
+STRIP=$lt_STRIP
 
-ac_cv_func_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
 
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# Used on cygwin: assembler.
+AS="$AS"
 
-ac_cv_lib_svld_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dld_link ();
-int
-main ()
-{
-dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
 
-ac_cv_lib_dld_dld_link=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
 
+# Object file suffix (normally "o").
+objext="$ac_objext"
 
-fi
+# Old archive suffix (normally "a").
+libext="$libext"
 
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
 
-fi
+# Executable file suffix (normally "").
+exeext="$exeext"
 
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
 
-fi
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
 
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
 
-fi
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
 
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
 
-fi
+# Do we need a version for libraries?
+need_version=$need_version
 
-    ;;
-  esac
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
 
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
 
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
 
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
 
-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 12733 "configure"
-#include "confdefs.h"
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
 
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
 
-#include <stdio.h>
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
 
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
+# Library versioning type.
+version_type=$version_type
 
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
 
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
 
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
 
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
 
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 12831 "configure"
-#include "confdefs.h"
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
 
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
 
-#include <stdio.h>
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
 
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
 
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
 
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
 
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
 
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
 
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
 
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
-    fi
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
 
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
 
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
 
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
 
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_CXX \
-    CC_CXX \
-    LD_CXX \
-    lt_prog_compiler_wl_CXX \
-    lt_prog_compiler_pic_CXX \
-    lt_prog_compiler_static_CXX \
-    lt_prog_compiler_no_builtin_flag_CXX \
-    export_dynamic_flag_spec_CXX \
-    thread_safe_flag_spec_CXX \
-    whole_archive_flag_spec_CXX \
-    enable_shared_with_static_runtimes_CXX \
-    old_archive_cmds_CXX \
-    old_archive_from_new_cmds_CXX \
-    predep_objects_CXX \
-    postdep_objects_CXX \
-    predeps_CXX \
-    postdeps_CXX \
-    compiler_lib_search_path_CXX \
-    archive_cmds_CXX \
-    archive_expsym_cmds_CXX \
-    postinstall_cmds_CXX \
-    postuninstall_cmds_CXX \
-    old_archive_from_expsyms_cmds_CXX \
-    allow_undefined_flag_CXX \
-    no_undefined_flag_CXX \
-    export_symbols_cmds_CXX \
-    hardcode_libdir_flag_spec_CXX \
-    hardcode_libdir_flag_spec_ld_CXX \
-    hardcode_libdir_separator_CXX \
-    hardcode_automatic_CXX \
-    module_cmds_CXX \
-    module_expsym_cmds_CXX \
-    lt_cv_prog_compiler_c_o_CXX \
-    exclude_expsyms_CXX \
-    include_expsyms_CXX; do
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 
-    case $var in
-    old_archive_cmds_CXX | \
-    old_archive_from_new_cmds_CXX | \
-    archive_cmds_CXX | \
-    archive_expsym_cmds_CXX | \
-    module_cmds_CXX | \
-    module_expsym_cmds_CXX | \
-    old_archive_from_expsyms_cmds_CXX | \
-    export_symbols_cmds_CXX | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
 
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
 
-cfgfile="$ofile"
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
 
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
 
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
 
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
 
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
 
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
 
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
 
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
 
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
 
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_CXX
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_CXX
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_CXX
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
 
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs_CXX
@@ -13304,7 +13611,7 @@ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
 # Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_CXX"
+fix_srcfile_path=$lt_fix_srcfile_path
 
 # Set to yes if exported symbols are required.
 always_export_symbols=$always_export_symbols_CXX
@@ -13395,30 +13702,40 @@ objext=o
 objext_F77=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
+lt_simple_link_test_code="\
+      program t
+      end
+"
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 
 
 # save warnings/boilerplate of simple test code
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_compiler_boilerplate=`cat conftest.err`
 $rm conftest*
 
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
 $rm conftest*
 
@@ -13439,13 +13756,13 @@ done
 cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
 
-echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6
+{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6; }
 
-echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
 test "$can_build_shared" = "no" && enable_shared=no
 
 # On AIX, shared libraries and static libraries use the same namespace, and
@@ -13464,17 +13781,15 @@ aix4* | aix5*)
   fi
   ;;
 esac
-echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6
+{ echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6; }
 
-echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
 # Make sure either enable_shared or enable_static is yes.
 test "$enable_shared" = yes || enable_static=yes
-echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6
-
-test "$ld_shlibs_F77" = no && can_build_shared=no
+{ echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6; }
 
 GCC_F77="$G77"
 LD_F77="$LD"
@@ -13483,8 +13798,8 @@ lt_prog_compiler_wl_F77=
 lt_prog_compiler_pic_F77=
 lt_prog_compiler_static_F77=
 
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_F77='-Wl,'
@@ -13506,13 +13821,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
       ;;
 
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
       lt_prog_compiler_pic_F77='-DDLL_EXPORT'
       ;;
 
@@ -13522,6 +13839,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_pic_F77='-fno-common'
       ;;
 
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
     msdosdjgpp*)
       # Just because we use GCC doesn't mean we suddenly get shared libraries
       # on systems that don't support them.
@@ -13575,7 +13897,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_F77='-DDLL_EXPORT'
@@ -13608,7 +13930,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static_F77='-Bstatic'
       ;;
 
-    linux*)
+    linux* | k*bsd*-gnu)
       case $cc_basename in
       icc* | ecc*)
 	lt_prog_compiler_wl_F77='-Wl,'
@@ -13627,6 +13949,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
         # All Alpha code is PIC.
         lt_prog_compiler_static_F77='-non_shared'
         ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic_F77='-KPIC'
+	  lt_prog_compiler_static_F77='-Bstatic'
+	  lt_prog_compiler_wl_F77='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic_F77='-KPIC'
+	  lt_prog_compiler_static_F77='-Bstatic'
+	  lt_prog_compiler_wl_F77=''
+	  ;;
+	esac
+	;;
       esac
       ;;
 
@@ -13636,9 +13974,8 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static_F77='-non_shared'
       ;;
 
-    sco3.2v5*)
-      lt_prog_compiler_pic_F77='-Kpic'
-      lt_prog_compiler_static_F77='-dn'
+    rdos*)
+      lt_prog_compiler_static_F77='-non_shared'
       ;;
 
     solaris*)
@@ -13658,7 +13995,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static_F77='-Bstatic'
       ;;
 
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       lt_prog_compiler_wl_F77='-Wl,'
       lt_prog_compiler_pic_F77='-KPIC'
       lt_prog_compiler_static_F77='-Bstatic'
@@ -13671,9 +14008,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       fi
       ;;
 
-    unicos*)
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
       lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_can_build_shared_F77=no
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_can_build_shared_F77=no
       ;;
 
     uts4*)
@@ -13687,22 +14030,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
     esac
   fi
 
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_F77"; then
 
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_prog_compiler_pic_works_F77=no
   ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_F77"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -13713,25 +14056,25 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13716: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14059: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13720: \$? = $ac_status" >&5
+   echo "$as_me:14063: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_prog_compiler_pic_works_F77=yes
      fi
    fi
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
 
 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
     case $lt_prog_compiler_pic_F77 in
@@ -13754,8 +14097,50 @@ case $host_os in
     ;;
 esac
 
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_F77=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_F77=yes
+       fi
+     else
+       lt_prog_compiler_static_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
+
+if test x"$lt_prog_compiler_static_works_F77" = xyes; then
+    :
+else
+    lt_prog_compiler_static_F77=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13764,7 +14149,7 @@ else
    mkdir conftest
    cd conftest
    mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
    lt_compiler_flag="-o out/conftest2.$ac_objext"
    # Insert the option either (1) after the last *FLAGS variable, or
@@ -13775,18 +14160,18 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13778: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14163: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13782: \$? = $ac_status" >&5
+   echo "$as_me:14167: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
-     $SED '/^$/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_F77=yes
      fi
    fi
@@ -13801,23 +14186,23 @@ else
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
   if test "$hard_links" = no; then
     { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
@@ -13827,8 +14212,8 @@ else
   need_locks=no
 fi
 
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 
   runpath_var=
   allow_undefined_flag_F77=
@@ -13886,6 +14271,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
       with_gnu_ld=no
     fi
     ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
   openbsd*)
     with_gnu_ld=no
     ;;
@@ -13967,10 +14356,10 @@ EOF
       allow_undefined_flag_F77=unsupported
       always_export_symbols_F77=no
       enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	# If the export-symbols file already is a .def file (1st line
 	# is EXPORTS), use it as is; otherwise, prepend...
 	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
@@ -13979,13 +14368,28 @@ EOF
 	  echo EXPORTS > $output_objdir/$soname.def;
 	  cat $export_symbols >> $output_objdir/$soname.def;
 	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	ld_shlibs_F77=no
       fi
       ;;
 
-    linux*)
+    interix[3-9]*)
+      hardcode_direct_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_F77='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | k*bsd*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
 	tmp_addflag=
 	case $cc_basename,$host_cpu in
@@ -14003,13 +14407,22 @@ EOF
 	ifc* | ifort*)			# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	esac
-	archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
 	if test $supports_anon_versioning = yes; then
 	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
   $echo "local: *; };" >> $output_objdir/$libname.ver~
-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
 	fi
 	link_all_deplibs_F77=no
       else
@@ -14017,7 +14430,7 @@ EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -14027,7 +14440,7 @@ EOF
       fi
       ;;
 
-    solaris* | sysv5*)
+    solaris*)
       if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
 	ld_shlibs_F77=no
 	cat <<EOF 1>&2
@@ -14048,6 +14461,33 @@ EOF
       fi
       ;;
 
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_F77=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_F77=no
+	  fi
+	;;
+      esac
+      ;;
+
     sunos4*)
       archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       wlarc=
@@ -14081,7 +14521,7 @@ EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       hardcode_minus_L_F77=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
 	# Neither direct hardcoding nor static linking is supported with a
 	# broken collect2.
 	hardcode_direct_F77=unsupported
@@ -14115,6 +14555,7 @@ EOF
   	    break
   	  fi
 	  done
+	  ;;
 	esac
 
 	exp_sym_flag='-bexport'
@@ -14141,7 +14582,7 @@ EOF
   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
 	  then
   	  # We have reworked collect2
-  	  hardcode_direct_F77=yes
+  	  :
 	  else
   	  # We have old collect2
   	  hardcode_direct_F77=unsupported
@@ -14152,6 +14593,7 @@ EOF
   	  hardcode_libdir_flag_spec_F77='-L$libdir'
   	  hardcode_libdir_separator_F77=
 	  fi
+	  ;;
 	esac
 	shared_flag='-shared'
 	if test "$aix_use_runtimelinking" = yes; then
@@ -14164,11 +14606,11 @@ EOF
   	# chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
 	else
-  	if test "$aix_use_runtimelinking" = yes; then
+	  if test "$aix_use_runtimelinking" = yes; then
 	    shared_flag='${wl}-G'
 	  else
 	    shared_flag='${wl}-bM:SRE'
-  	fi
+	  fi
 	fi
       fi
 
@@ -14186,48 +14628,54 @@ EOF
       end
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
        hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
        else
 	if test "$host_cpu" = ia64; then
 	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
 	  allow_undefined_flag_F77="-z nodefs"
-	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an empty executable.
 	 cat >conftest.$ac_ext <<_ACEOF
@@ -14236,38 +14684,44 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       end
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
@@ -14276,13 +14730,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	  # -berok will link without error, but may produce a broken library.
 	  no_undefined_flag_F77=' ${wl}-bernotok'
 	  allow_undefined_flag_F77=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  always_export_symbols_F77=yes
 	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_F77=' '
+	  whole_archive_flag_spec_F77='$convenience'
 	  archive_cmds_need_lc_F77=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
 	fi
       fi
       ;;
@@ -14315,7 +14767,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # The linker will automatically build a .lib file if we build a DLL.
       old_archive_From_new_cmds_F77='true'
       # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
       fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
       enable_shared_with_static_runtimes_F77=yes
       ;;
@@ -14357,10 +14809,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $cc_basename in
         xlc*)
          output_verbose_link_cmd='echo'
-         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
          module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           ;;
        *)
@@ -14400,7 +14852,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
+    freebsd* | dragonfly*)
       archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec_F77='-R$libdir'
       hardcode_direct_F77=yes
@@ -14423,47 +14875,62 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       export_dynamic_flag_spec_F77='${wl}-E'
       ;;
 
-    hpux10* | hpux11*)
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
+
+	hardcode_direct_F77=yes
+	export_dynamic_flag_spec_F77='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_F77=yes
+      fi
+      ;;
+
+    hpux11*)
       if test "$GCC" = yes -a "$with_gnu_ld" = no; then
 	case $host_cpu in
-	hppa*64*|ia64*)
+	hppa*64*)
 	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
 	*)
 	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
 	case $host_cpu in
-	hppa*64*|ia64*)
-	  archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hppa*64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       fi
       if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
+
 	case $host_cpu in
-	hppa*64*)
-	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hppa*64*|ia64*)
 	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
-	  hardcode_libdir_separator_F77=:
-	  hardcode_direct_F77=no
-	  hardcode_shlibpath_var_F77=no
-	  ;;
-	ia64*)
-	  hardcode_libdir_flag_spec_F77='-L$libdir'
 	  hardcode_direct_F77=no
 	  hardcode_shlibpath_var_F77=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_F77=yes
 	  ;;
 	*)
-	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_F77=:
 	  hardcode_direct_F77=yes
 	  export_dynamic_flag_spec_F77='${wl}-E'
 
@@ -14487,7 +14954,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_F77=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -14507,24 +14974,28 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     openbsd*)
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_F77='${wl}-E'
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct_F77=yes
+	hardcode_shlibpath_var_F77=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec_F77='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec_F77='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
       else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec_F77='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-	   ;;
-       esac
+	ld_shlibs_F77=no
       fi
       ;;
 
@@ -14565,14 +15036,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       hardcode_libdir_separator_F77=:
       ;;
 
-    sco3.2v5*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
     solaris*)
       no_undefined_flag_F77=' -z text'
       if test "$GCC" = yes; then
@@ -14591,17 +15054,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $host_os in
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
  	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract'
+	fi
+	;;
       esac
       link_all_deplibs_F77=yes
       ;;
@@ -14658,36 +15120,45 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       fi
       ;;
 
-    sysv4.2uw2*)
-      archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=no
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag_F77='${wl}-z,text'
+      archive_cmds_need_lc_F77=no
       hardcode_shlibpath_var_F77=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
+      runpath_var='LD_RUN_PATH'
 
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_F77='${wl}-z ${wl}text'
       if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
       ;;
 
-    sysv5*)
-      no_undefined_flag_F77=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_F77=
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_F77='${wl}-z,text'
+      allow_undefined_flag_F77='${wl}-z,nodefs'
+      archive_cmds_need_lc_F77=no
       hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-Bexport'
       runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
       ;;
 
     uts4*)
@@ -14702,15 +15173,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6
+{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6; }
 test "$ld_shlibs_F77" = no && can_build_shared=no
 
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
 #
 # Do we need to explicitly link libc?
 #
@@ -14728,10 +15194,10 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
       $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
@@ -14743,6 +15209,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         libobjs=conftest.$ac_objext
         deplibs=
         wl=$lt_prog_compiler_wl_F77
+	pic_flag=$lt_prog_compiler_pic_F77
         compiler_flags=-v
         linker_flags=-v
         verstring=
@@ -14765,16 +15232,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -14788,20 +15255,7 @@ shlibpath_overrides_runpath=unknown
 version_type=none
 dynamic_linker="$host_os ld.so"
 sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+
 need_lib_prefix=unknown
 hardcode_into_libs=no
 
@@ -14958,12 +15412,7 @@ darwin* | rhapsody*)
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
+
   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
   ;;
 
@@ -14980,18 +15429,6 @@ freebsd1*)
   dynamic_linker=no
   ;;
 
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -15024,10 +15461,15 @@ freebsd* | dragonfly*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
-  *) # from 3.2 on
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
     shlibpath_overrides_runpath=no
     hardcode_into_libs=yes
     ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
   esac
   ;;
 
@@ -15087,6 +15529,18 @@ hpux9* | hpux10* | hpux11*)
   postinstall_cmds='chmod 555 $lib'
   ;;
 
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
@@ -15130,7 +15584,7 @@ linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux*)
+linux* | k*bsd*-gnu)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -15146,7 +15600,7 @@ linux*)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -15171,18 +15625,6 @@ netbsdelf*-gnu)
   dynamic_linker='NetBSD ld.elf_so'
   ;;
 
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -15220,6 +15662,7 @@ nto-qnx*)
 
 openbsd*)
   version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
   need_lib_prefix=no
   # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
   case $host_os in
@@ -15263,11 +15706,8 @@ osf3* | osf4* | osf5*)
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
   ;;
 
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
+rdos*)
+  dynamic_linker=no
   ;;
 
 solaris*)
@@ -15295,7 +15735,7 @@ sunos4*)
   need_version=yes
   ;;
 
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+sysv4 | sysv4.3*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -15328,6 +15768,29 @@ sysv4*MP*)
   fi
   ;;
 
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
 uts4*)
   version_type=linux
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -15339,12 +15802,17 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
 hardcode_action_F77=
 if test -n "$hardcode_libdir_flag_spec_F77" || \
    test -n "$runpath_var_F77" || \
@@ -15368,8 +15836,8 @@ else
   # directories.
   hardcode_action_F77=unsupported
 fi
-echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6
+{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6; }
 
 if test "$hardcode_action_F77" = relink; then
   # Fast installation is not supported
@@ -15380,36 +15848,6 @@ elif test "$shlibpath_overrides_runpath" = yes ||
   enable_fast_install=needless
 fi
 
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
-
-
 
 # The else clause should only fire when bootstrapping the
 # libtool distribution, otherwise you forgot to ship ltmain.sh
@@ -15424,7 +15862,7 @@ if test -f "$ltmain"; then
   # Now quote all the things that may contain metacharacters while being
   # careful not to overquote the AC_SUBSTed values.  We take copies of the
   # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
     SED SHELL STRIP \
     libname_spec library_names_spec soname_spec extract_expsyms_cmds \
     old_striplib striplib file_magic_cmd finish_cmds finish_eval \
@@ -15466,6 +15904,7 @@ if test -f "$ltmain"; then
     module_cmds_F77 \
     module_expsym_cmds_F77 \
     lt_cv_prog_compiler_c_o_F77 \
+    fix_srcfile_path_F77 \
     exclude_expsyms_F77 \
     include_expsyms_F77; do
 
@@ -15542,6 +15981,9 @@ AR_FLAGS=$lt_AR_FLAGS
 # A C compiler.
 LTCC=$lt_LTCC
 
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
 # A language-specific compiler.
 CC=$lt_compiler_F77
 
@@ -15783,7 +16225,7 @@ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
 # Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
+fix_srcfile_path=$lt_fix_srcfile_path
 
 # Set to yes if exported symbols are required.
 always_export_symbols=$always_export_symbols_F77
@@ -15833,7 +16275,6 @@ CC="$lt_save_CC"
 	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
 
 
-
 # Source file extension for Java test sources.
 ac_ext=java
 
@@ -15842,30 +16283,33 @@ objext=o
 objext_GCJ=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
+lt_simple_compile_test_code="class foo {}"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }'
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 
 
 # save warnings/boilerplate of simple test code
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_compiler_boilerplate=`cat conftest.err`
 $rm conftest*
 
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
 $rm conftest*
 
@@ -15898,14 +16342,14 @@ if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
 
 
-echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="-fno-rtti -fno-exceptions"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -15916,25 +16360,25 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15919: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16363: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15923: \$? = $ac_status" >&5
+   echo "$as_me:16367: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
      fi
    fi
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
     lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
@@ -15948,8 +16392,8 @@ lt_prog_compiler_wl_GCJ=
 lt_prog_compiler_pic_GCJ=
 lt_prog_compiler_static_GCJ=
 
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_GCJ='-Wl,'
@@ -15971,13 +16415,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
       ;;
 
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
       lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
       ;;
 
@@ -15987,6 +16433,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_pic_GCJ='-fno-common'
       ;;
 
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
     msdosdjgpp*)
       # Just because we use GCC doesn't mean we suddenly get shared libraries
       # on systems that don't support them.
@@ -16040,7 +16491,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
@@ -16073,7 +16524,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static_GCJ='-Bstatic'
       ;;
 
-    linux*)
+    linux* | k*bsd*-gnu)
       case $cc_basename in
       icc* | ecc*)
 	lt_prog_compiler_wl_GCJ='-Wl,'
@@ -16092,8 +16543,24 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
         # All Alpha code is PIC.
         lt_prog_compiler_static_GCJ='-non_shared'
         ;;
-      esac
-      ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic_GCJ='-KPIC'
+	  lt_prog_compiler_static_GCJ='-Bstatic'
+	  lt_prog_compiler_wl_GCJ='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic_GCJ='-KPIC'
+	  lt_prog_compiler_static_GCJ='-Bstatic'
+	  lt_prog_compiler_wl_GCJ=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
 
     osf3* | osf4* | osf5*)
       lt_prog_compiler_wl_GCJ='-Wl,'
@@ -16101,9 +16568,8 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static_GCJ='-non_shared'
       ;;
 
-    sco3.2v5*)
-      lt_prog_compiler_pic_GCJ='-Kpic'
-      lt_prog_compiler_static_GCJ='-dn'
+    rdos*)
+      lt_prog_compiler_static_GCJ='-non_shared'
       ;;
 
     solaris*)
@@ -16123,7 +16589,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       lt_prog_compiler_static_GCJ='-Bstatic'
       ;;
 
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       lt_prog_compiler_wl_GCJ='-Wl,'
       lt_prog_compiler_pic_GCJ='-KPIC'
       lt_prog_compiler_static_GCJ='-Bstatic'
@@ -16136,6 +16602,12 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       fi
       ;;
 
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
     unicos*)
       lt_prog_compiler_wl_GCJ='-Wl,'
       lt_prog_compiler_can_build_shared_GCJ=no
@@ -16152,22 +16624,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
     esac
   fi
 
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_GCJ"; then
 
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   lt_prog_compiler_pic_works_GCJ=no
   ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
@@ -16178,25 +16650,25 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16181: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16653: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16185: \$? = $ac_status" >&5
+   echo "$as_me:16657: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
-     $SED '/^$/d' conftest.err >conftest.er2
-     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_prog_compiler_pic_works_GCJ=yes
      fi
    fi
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
 
 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
     case $lt_prog_compiler_pic_GCJ in
@@ -16219,8 +16691,50 @@ case $host_os in
     ;;
 esac
 
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_GCJ=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_GCJ=yes
+       fi
+     else
+       lt_prog_compiler_static_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
+
+if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+    :
+else
+    lt_prog_compiler_static_GCJ=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16229,7 +16743,7 @@ else
    mkdir conftest
    cd conftest
    mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
    lt_compiler_flag="-o out/conftest2.$ac_objext"
    # Insert the option either (1) after the last *FLAGS variable, or
@@ -16240,18 +16754,18 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16243: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16757: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16247: \$? = $ac_status" >&5
+   echo "$as_me:16761: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
-     $SED '/^$/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_GCJ=yes
      fi
    fi
@@ -16266,23 +16780,23 @@ else
    $rm conftest*
 
 fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
   if test "$hard_links" = no; then
     { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
@@ -16292,8 +16806,8 @@ else
   need_locks=no
 fi
 
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
 
   runpath_var=
   allow_undefined_flag_GCJ=
@@ -16351,6 +16865,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
       with_gnu_ld=no
     fi
     ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
   openbsd*)
     with_gnu_ld=no
     ;;
@@ -16432,10 +16950,10 @@ EOF
       allow_undefined_flag_GCJ=unsupported
       always_export_symbols_GCJ=no
       enable_shared_with_static_runtimes_GCJ=yes
-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	# If the export-symbols file already is a .def file (1st line
 	# is EXPORTS), use it as is; otherwise, prepend...
 	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
@@ -16444,13 +16962,28 @@ EOF
 	  echo EXPORTS > $output_objdir/$soname.def;
 	  cat $export_symbols >> $output_objdir/$soname.def;
 	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	ld_shlibs_GCJ=no
       fi
       ;;
 
-    linux*)
+    interix[3-9]*)
+      hardcode_direct_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | k*bsd*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
 	tmp_addflag=
 	case $cc_basename,$host_cpu in
@@ -16468,13 +17001,22 @@ EOF
 	ifc* | ifort*)			# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	esac
-	archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
 	if test $supports_anon_versioning = yes; then
 	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
   cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
   $echo "local: *; };" >> $output_objdir/$libname.ver~
-	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
 	fi
 	link_all_deplibs_GCJ=no
       else
@@ -16482,7 +17024,7 @@ EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -16492,7 +17034,7 @@ EOF
       fi
       ;;
 
-    solaris* | sysv5*)
+    solaris*)
       if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
 	ld_shlibs_GCJ=no
 	cat <<EOF 1>&2
@@ -16513,6 +17055,33 @@ EOF
       fi
       ;;
 
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_GCJ=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_GCJ=no
+	  fi
+	;;
+      esac
+      ;;
+
     sunos4*)
       archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       wlarc=
@@ -16546,7 +17115,7 @@ EOF
       # Note: this linker hardcodes the directories in LIBPATH if there
       # are no directories specified by -L.
       hardcode_minus_L_GCJ=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
 	# Neither direct hardcoding nor static linking is supported with a
 	# broken collect2.
 	hardcode_direct_GCJ=unsupported
@@ -16580,6 +17149,7 @@ EOF
   	    break
   	  fi
 	  done
+	  ;;
 	esac
 
 	exp_sym_flag='-bexport'
@@ -16606,7 +17176,7 @@ EOF
   	   strings "$collect2name" | grep resolve_lib_name >/dev/null
 	  then
   	  # We have reworked collect2
-  	  hardcode_direct_GCJ=yes
+  	  :
 	  else
   	  # We have old collect2
   	  hardcode_direct_GCJ=unsupported
@@ -16617,6 +17187,7 @@ EOF
   	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
   	  hardcode_libdir_separator_GCJ=
 	  fi
+	  ;;
 	esac
 	shared_flag='-shared'
 	if test "$aix_use_runtimelinking" = yes; then
@@ -16629,11 +17200,11 @@ EOF
   	# chokes on -Wl,-G. The following line is correct:
 	  shared_flag='-G'
 	else
-  	if test "$aix_use_runtimelinking" = yes; then
+	  if test "$aix_use_runtimelinking" = yes; then
 	    shared_flag='${wl}-G'
 	  else
 	    shared_flag='${wl}-bM:SRE'
-  	fi
+	  fi
 	fi
       fi
 
@@ -16661,48 +17232,54 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
        hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
        else
 	if test "$host_cpu" = ia64; then
 	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
 	  allow_undefined_flag_GCJ="-z nodefs"
-	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an empty executable.
 	 cat >conftest.$ac_ext <<_ACEOF
@@ -16721,38 +17298,44 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 # Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
@@ -16761,13 +17344,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	  # -berok will link without error, but may produce a broken library.
 	  no_undefined_flag_GCJ=' ${wl}-bernotok'
 	  allow_undefined_flag_GCJ=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  always_export_symbols_GCJ=yes
 	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_GCJ=' '
+	  whole_archive_flag_spec_GCJ='$convenience'
 	  archive_cmds_need_lc_GCJ=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
 	fi
       fi
       ;;
@@ -16800,7 +17381,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # The linker will automatically build a .lib file if we build a DLL.
       old_archive_From_new_cmds_GCJ='true'
       # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs'
       fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
       enable_shared_with_static_runtimes_GCJ=yes
       ;;
@@ -16842,10 +17423,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $cc_basename in
         xlc*)
          output_verbose_link_cmd='echo'
-         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
          module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
           # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
           ;;
        *)
@@ -16885,7 +17466,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu | dragonfly*)
+    freebsd* | dragonfly*)
       archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec_GCJ='-R$libdir'
       hardcode_direct_GCJ=yes
@@ -16908,47 +17489,62 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       export_dynamic_flag_spec_GCJ='${wl}-E'
       ;;
 
-    hpux10* | hpux11*)
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	hardcode_direct_GCJ=yes
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_GCJ=yes
+      fi
+      ;;
+
+    hpux11*)
       if test "$GCC" = yes -a "$with_gnu_ld" = no; then
 	case $host_cpu in
-	hppa*64*|ia64*)
+	hppa*64*)
 	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
 	*)
 	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
 	case $host_cpu in
-	hppa*64*|ia64*)
-	  archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       fi
       if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
 	case $host_cpu in
-	hppa*64*)
-	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hppa*64*|ia64*)
 	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
-	  hardcode_libdir_separator_GCJ=:
-	  hardcode_direct_GCJ=no
-	  hardcode_shlibpath_var_GCJ=no
-	  ;;
-	ia64*)
-	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
 	  hardcode_direct_GCJ=no
 	  hardcode_shlibpath_var_GCJ=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_GCJ=yes
 	  ;;
 	*)
-	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_GCJ=:
 	  hardcode_direct_GCJ=yes
 	  export_dynamic_flag_spec_GCJ='${wl}-E'
 
@@ -16972,7 +17568,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_GCJ=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu | knetbsd*-gnu)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -16992,24 +17588,28 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     openbsd*)
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_GCJ='${wl}-E'
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct_GCJ=yes
+	hardcode_shlibpath_var_GCJ=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec_GCJ='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
       else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-	   ;;
-       esac
+	ld_shlibs_GCJ=no
       fi
       ;;
 
@@ -17050,14 +17650,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       hardcode_libdir_separator_GCJ=:
       ;;
 
-    sco3.2v5*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
     solaris*)
       no_undefined_flag_GCJ=' -z text'
       if test "$GCC" = yes; then
@@ -17076,17 +17668,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $host_os in
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *)
- 	# The compiler driver will combine linker options so we
- 	# cannot just pass the convience library names through
- 	# without $wl, iff we do not link with $LD.
- 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
  	# Supported since Solaris 2.6 (maybe 2.5.1?)
- 	case $wlarc in
- 	'')
- 	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
- 	*)
- 	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- 	esac ;;
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract'
+	fi
+	;;
       esac
       link_all_deplibs_GCJ=yes
       ;;
@@ -17143,36 +17734,45 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       fi
       ;;
 
-    sysv4.2uw2*)
-      archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=no
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag_GCJ='${wl}-z,text'
+      archive_cmds_need_lc_GCJ=no
       hardcode_shlibpath_var_GCJ=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
+      runpath_var='LD_RUN_PATH'
 
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_GCJ='${wl}-z ${wl}text'
       if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       else
-	archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
       fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
       ;;
 
-    sysv5*)
-      no_undefined_flag_GCJ=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_GCJ=
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_GCJ='${wl}-z,text'
+      allow_undefined_flag_GCJ='${wl}-z,nodefs'
+      archive_cmds_need_lc_GCJ=no
       hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
       runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
       ;;
 
     uts4*)
@@ -17187,15 +17787,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
 test "$ld_shlibs_GCJ" = no && can_build_shared=no
 
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
 #
 # Do we need to explicitly link libc?
 #
@@ -17213,10 +17808,10 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
       $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
@@ -17228,6 +17823,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         libobjs=conftest.$ac_objext
         deplibs=
         wl=$lt_prog_compiler_wl_GCJ
+	pic_flag=$lt_prog_compiler_pic_GCJ
         compiler_flags=-v
         linker_flags=-v
         verstring=
@@ -17250,16 +17846,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -17273,20 +17869,7 @@ shlibpath_overrides_runpath=unknown
 version_type=none
 dynamic_linker="$host_os ld.so"
 sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+
 need_lib_prefix=unknown
 hardcode_into_libs=no
 
@@ -17349,1348 +17932,534 @@ aix4* | aix5*)
   ;;
 
 amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_GCJ=
-if test -n "$hardcode_libdir_flag_spec_GCJ" || \
-   test -n "$runpath_var_GCJ" || \
-   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_GCJ" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
-     test "$hardcode_minus_L_GCJ" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_GCJ=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_GCJ=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_GCJ=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6
-
-if test "$hardcode_action_GCJ" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != shl_load;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != dlopen;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_svld_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dld_link ();
-int
-main ()
-{
-dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_dld_link=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
 
-fi
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
 
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
 
-fi
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
 
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
 
-fi
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
 
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
 
-fi
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
 
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
 
-fi
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
 
-    ;;
-  esac
+freebsd1*)
+  dynamic_linker=no
+  ;;
 
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
   else
-    enable_dlopen=no
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
   fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
 
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
 
-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 18495 "configure"
-#include "confdefs.h"
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
 
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
 
-#include <stdio.h>
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
 
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
 
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
 
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
 
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
 
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
   fi
-fi
-rm -fr conftest*
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
 
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
 
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 18593 "configure"
-#include "confdefs.h"
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
 
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
 
-#include <stdio.h>
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
 
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
+rdos*)
+  dynamic_linker=no
+  ;;
 
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
 
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
 
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
 
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
     esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
   fi
-fi
-rm -fr conftest*
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
 
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
 
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
-    fi
 
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+   test -n "$runpath_var_GCJ" || \
+   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
 
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_GCJ" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+     test "$hardcode_minus_L_GCJ" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_GCJ=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_GCJ=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_GCJ=unsupported
+fi
+{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
 
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
+if test "$hardcode_action_GCJ" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
 fi
 
 
@@ -18707,7 +18476,7 @@ if test -f "$ltmain"; then
   # Now quote all the things that may contain metacharacters while being
   # careful not to overquote the AC_SUBSTed values.  We take copies of the
   # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
     SED SHELL STRIP \
     libname_spec library_names_spec soname_spec extract_expsyms_cmds \
     old_striplib striplib file_magic_cmd finish_cmds finish_eval \
@@ -18749,6 +18518,7 @@ if test -f "$ltmain"; then
     module_cmds_GCJ \
     module_expsym_cmds_GCJ \
     lt_cv_prog_compiler_c_o_GCJ \
+    fix_srcfile_path_GCJ \
     exclude_expsyms_GCJ \
     include_expsyms_GCJ; do
 
@@ -18825,6 +18595,9 @@ AR_FLAGS=$lt_AR_FLAGS
 # A C compiler.
 LTCC=$lt_LTCC
 
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
 # A language-specific compiler.
 CC=$lt_compiler_GCJ
 
@@ -19066,7 +18839,7 @@ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
 # Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
+fix_srcfile_path=$lt_fix_srcfile_path
 
 # Set to yes if exported symbols are required.
 always_export_symbols=$always_export_symbols_GCJ
@@ -19115,7 +18888,6 @@ CC="$lt_save_CC"
       RC)
 
 
-
 # Source file extension for RC test sources.
 ac_ext=rc
 
@@ -19124,7 +18896,7 @@ objext=o
 objext_RC=$objext
 
 # Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
 
 # Code to be used in simple link tests
 lt_simple_link_test_code="$lt_simple_compile_test_code"
@@ -19134,20 +18906,23 @@ lt_simple_link_test_code="$lt_simple_compile_test_code"
 # If no C compiler was specified, use CC.
 LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
 # Allow CC to be a program name with arguments.
 compiler=$CC
 
 
 # save warnings/boilerplate of simple test code
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_compiler_boilerplate=`cat conftest.err`
 $rm conftest*
 
 ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
 _lt_linker_boilerplate=`cat conftest.err`
 $rm conftest*
 
@@ -19182,7 +18957,7 @@ if test -f "$ltmain"; then
   # Now quote all the things that may contain metacharacters while being
   # careful not to overquote the AC_SUBSTed values.  We take copies of the
   # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
     SED SHELL STRIP \
     libname_spec library_names_spec soname_spec extract_expsyms_cmds \
     old_striplib striplib file_magic_cmd finish_cmds finish_eval \
@@ -19224,6 +18999,7 @@ if test -f "$ltmain"; then
     module_cmds_RC \
     module_expsym_cmds_RC \
     lt_cv_prog_compiler_c_o_RC \
+    fix_srcfile_path_RC \
     exclude_expsyms_RC \
     include_expsyms_RC; do
 
@@ -19300,6 +19076,9 @@ AR_FLAGS=$lt_AR_FLAGS
 # A C compiler.
 LTCC=$lt_LTCC
 
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
 # A language-specific compiler.
 CC=$lt_compiler_RC
 
@@ -19541,7 +19320,7 @@ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
 # Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
+fix_srcfile_path=$lt_fix_srcfile_path
 
 # Set to yes if exported symbols are required.
 always_export_symbols=$always_export_symbols_RC
@@ -19641,17 +19420,17 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
+    # Check whether --enable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
-  enableval="$enable_maintainer_mode"
-  USE_MAINTAINER_MODE=$enableval
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 else
   USE_MAINTAINER_MODE=no
-fi;
-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+fi
+
+  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
 
 
 if test $USE_MAINTAINER_MODE = yes; then
@@ -19674,8 +19453,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19688,32 +19467,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19726,36 +19507,51 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 else
   CC="$ac_cv_prog_CC"
 fi
 
 if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19768,74 +19564,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
 
+  fi
 fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19849,7 +19605,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -19860,6 +19616,7 @@ do
   fi
 done
 done
+IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
@@ -19877,22 +19634,23 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$CC"; then
   if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
+  for ac_prog in cl.exe
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19905,36 +19663,38 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$CC" && break
   done
 fi
 if test -z "$CC"; then
   ac_ct_CC=$CC
-  for ac_prog in cl
+  for ac_prog in cl.exe
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19947,29 +19707,45 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_CC" && break
 done
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 fi
 
 fi
@@ -19982,27 +19758,41 @@ See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
+echo "$as_me:$LINENO: checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -20025,49 +19815,49 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+	ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -20083,37 +19873,118 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cc_g=no
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
@@ -20129,12 +20000,12 @@ else
     CFLAGS=
   fi
 fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_prog_cc_stdc=no
+  ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -20168,12 +20039,17 @@ static char *f (char * (*g) (char **, int), char **p, ...)
 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
    function prototypes and stuff, but not '\xHH' hex character constants.
    These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std1 is added to get
+   as 'x'.  The following induces an error, until -std is added to get
    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
    array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std1.  */
+   that's true only with -std.  */
 int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -20188,201 +20064,57 @@ return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
   return 0;
 }
 _ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
-rm -f conftest.$ac_ext conftest.$ac_objext
+rm -f conftest.$ac_ext
 CC=$ac_save_CC
 
 fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
   *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20391,8 +20123,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CC"   am_compiler_list=
 
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -20481,8 +20213,8 @@ else
 fi
 
 fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
 
@@ -20507,8 +20239,8 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_AWK+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -20521,35 +20253,36 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
+  { echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$AWK" && break
 done
 
-echo "$as_me:$LINENO: checking for library containing strerror" >&5
-echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for library containing strerror" >&5
+echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; }
 if test "${ac_cv_search_strerror+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_func_search_save_LIBS=$LIBS
-ac_cv_search_strerror=no
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20557,118 +20290,78 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char strerror ();
 int
 main ()
 {
-strerror ();
+return strerror ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+for ac_lib in '' cposix; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="none required"
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_strerror=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_strerror" = no; then
-  for ac_lib in cposix; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-int
-main ()
-{
-strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="-l$ac_lib"
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+fi
 
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_strerror+set}" = set; then
+  break
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-  done
+done
+if test "${ac_cv_search_strerror+set}" = set; then
+  :
+else
+  ac_cv_search_strerror=no
 fi
+rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
-echo "${ECHO_T}$ac_cv_search_strerror" >&6
-if test "$ac_cv_search_strerror" != no; then
-  test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
+{ echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+echo "${ECHO_T}$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -20692,34 +20385,31 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_stdc=no
+	ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
@@ -20775,6 +20465,7 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ctype.h>
+#include <stdlib.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
@@ -20794,18 +20485,27 @@ main ()
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
 	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+      return 2;
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -20818,12 +20518,14 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
 fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -20833,13 +20535,13 @@ _ACEOF
 fi
 
 
-echo "$as_me:$LINENO: checking for pgm_init in -lnetpbm" >&5
-echo $ECHO_N "checking for pgm_init in -lnetpbm... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for pgm_init in -lnetpbm" >&5
+echo $ECHO_N "checking for pgm_init in -lnetpbm... $ECHO_C" >&6; }
 if test "${ac_cv_lib_netpbm_pgm_init+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnetpbm  $LIBS"
+LIBS="-lnetpbm -lm $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20847,55 +20549,53 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char pgm_init ();
 int
 main ()
 {
-pgm_init ();
+return pgm_init ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_netpbm_pgm_init=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_netpbm_pgm_init=no
+	ac_cv_lib_netpbm_pgm_init=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_netpbm_pgm_init" >&5
-echo "${ECHO_T}$ac_cv_lib_netpbm_pgm_init" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_netpbm_pgm_init" >&5
+echo "${ECHO_T}$ac_cv_lib_netpbm_pgm_init" >&6; }
 if test $ac_cv_lib_netpbm_pgm_init = yes; then
   netpbm="true"
 else
@@ -20914,13 +20614,13 @@ else
 fi
 
 
-# Check whether --enable-glibtest or --disable-glibtest was given.
+# Check whether --enable-glibtest was given.
 if test "${enable_glibtest+set}" = set; then
-  enableval="$enable_glibtest"
-
+  enableval=$enable_glibtest;
 else
   enable_glibtest=yes
-fi;
+fi
+
 
   pkg_config_args=glib-2.0
   for module in . gthread gmodule
@@ -20941,10 +20641,14 @@ fi;
       esac
   done
 
-  # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -20959,46 +20663,115 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-
 if test -n "$PKG_CONFIG"; then
-  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 
-  no_glib=""
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
 
-  if test x$PKG_CONFIG != xno ; then
-    if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
-      :
-    else
-      echo *** pkg-config too old; version 0.7 or better required.
-      no_glib=yes
-      PKG_CONFIG=no
-    fi
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
   else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.7
+	{ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	else
+		{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+		PKG_CONFIG=""
+	fi
+
+fi
+
+  no_glib=""
+
+  if test "x$PKG_CONFIG" = x ; then
     no_glib=yes
+    PKG_CONFIG=no
   fi
 
   min_glib_version=2.4.0
-  echo "$as_me:$LINENO: checking for GLIB - version >= $min_glib_version" >&5
-echo $ECHO_N "checking for GLIB - version >= $min_glib_version... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for GLIB - version >= $min_glib_version" >&5
+echo $ECHO_N "checking for GLIB - version >= $min_glib_version... $ECHO_C" >&6; }
 
   if test x$PKG_CONFIG != xno ; then
     ## don't try to run the test against uninstalled libtool libs
@@ -21116,13 +20889,22 @@ main ()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -21135,19 +20917,21 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 no_glib=yes
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
        CFLAGS="$ac_save_CFLAGS"
        LIBS="$ac_save_LIBS"
      fi
   fi
   if test "x$no_glib" = x ; then
-     echo "$as_me:$LINENO: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5
-echo "${ECHO_T}yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6
+     { echo "$as_me:$LINENO: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5
+echo "${ECHO_T}yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; }
      has_glib2=yes
   else
-     echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+     { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
      if test "$PKG_CONFIG" = "no" ; then
        echo "*** A new enough version of pkg-config was not found."
        echo "*** See http://www.freedesktop.org/software/pkgconfig/"
@@ -21179,26 +20963,23 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
    echo "*** The test program compiled, but did not run. This usually means"
           echo "*** that the run-time linker is not finding GLIB or finding the wrong"
           echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
@@ -21212,10 +20993,11 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
- echo "*** The test program failed to compile or link. See the file config.log for the"
+	 echo "*** The test program failed to compile or link. See the file config.log for the"
           echo "*** exact error that occured. This usually means GLIB is incorrectly installed."
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
           CFLAGS="$ac_save_CFLAGS"
           LIBS="$ac_save_LIBS"
@@ -21258,28 +21040,28 @@ echo "$as_me: error:
 
     GLIB_REQUIRED_VERSION=1.2.8
 
-# Check whether --with-glib-prefix or --without-glib-prefix was given.
+# Check whether --with-glib-prefix was given.
 if test "${with_glib_prefix+set}" = set; then
-  withval="$with_glib_prefix"
-  glib_config_prefix="$withval"
+  withval=$with_glib_prefix; glib_config_prefix="$withval"
 else
   glib_config_prefix=""
-fi;
+fi
 
-# Check whether --with-glib-exec-prefix or --without-glib-exec-prefix was given.
+
+# Check whether --with-glib-exec-prefix was given.
 if test "${with_glib_exec_prefix+set}" = set; then
-  withval="$with_glib_exec_prefix"
-  glib_config_exec_prefix="$withval"
+  withval=$with_glib_exec_prefix; glib_config_exec_prefix="$withval"
 else
   glib_config_exec_prefix=""
-fi;
-# Check whether --enable-glibtest or --disable-glibtest was given.
-if test "${enable_glibtest+set}" = set; then
-  enableval="$enable_glibtest"
+fi
 
+# Check whether --enable-glibtest was given.
+if test "${enable_glibtest+set}" = set; then
+  enableval=$enable_glibtest;
 else
   enable_glibtest=yes
-fi;
+fi
+
 
   if test x$glib_config_exec_prefix != x ; then
      glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
@@ -21308,8 +21090,8 @@ fi;
 
   # Extract the first word of "glib-config", so it can be a program name with args.
 set dummy glib-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_GLIB_CONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -21324,31 +21106,32 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GLIB_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GLIB_CONFIG" && ac_cv_path_GLIB_CONFIG="no"
   ;;
 esac
 fi
 GLIB_CONFIG=$ac_cv_path_GLIB_CONFIG
-
 if test -n "$GLIB_CONFIG"; then
-  echo "$as_me:$LINENO: result: $GLIB_CONFIG" >&5
-echo "${ECHO_T}$GLIB_CONFIG" >&6
+  { echo "$as_me:$LINENO: result: $GLIB_CONFIG" >&5
+echo "${ECHO_T}$GLIB_CONFIG" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   min_glib_version=$GLIB_REQUIRED_VERSION
-  echo "$as_me:$LINENO: checking for GLIB - version >= $min_glib_version" >&5
-echo $ECHO_N "checking for GLIB - version >= $min_glib_version... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for GLIB - version >= $min_glib_version" >&5
+echo $ECHO_N "checking for GLIB - version >= $min_glib_version... $ECHO_C" >&6; }
   no_glib=""
   if test "$GLIB_CONFIG" = "no" ; then
     no_glib=yes
@@ -21451,13 +21234,22 @@ main ()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -21470,19 +21262,21 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 no_glib=yes
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
        CFLAGS="$ac_save_CFLAGS"
        LIBS="$ac_save_LIBS"
      fi
   fi
   if test "x$no_glib" = x ; then
-     echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+     { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
      :
   else
-     echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+     { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
      if test "$GLIB_CONFIG" = "no" ; then
        echo "*** The glib-config script installed by GLIB could not be found"
        echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
@@ -21514,26 +21308,23 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
    echo "*** The test program compiled, but did not run. This usually means"
           echo "*** that the run-time linker is not finding GLIB or finding the wrong"
           echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
@@ -21552,12 +21343,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
- echo "*** The test program failed to compile or link. See the file config.log for the"
+	 echo "*** The test program failed to compile or link. See the file config.log for the"
           echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
           echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
           echo "*** may want to edit the glib-config script: $GLIB_CONFIG"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
           CFLAGS="$ac_save_CFLAGS"
           LIBS="$ac_save_LIBS"
@@ -21642,7 +21434,7 @@ LDFLAGS="$LDFLAGS $glib_libs"
 
 
 
-          ac_config_commands="$ac_config_commands default-1"
+ac_config_commands="$ac_config_commands default-1"
 
 
 cat >conftest.$ac_ext <<_ACEOF
@@ -21663,26 +21455,22 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
 
 cat >>confdefs.h <<\_ACEOF
 #define CPP_HAS_WARNING 1
@@ -21692,28 +21480,30 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ echo "$as_me:$LINENO: WARNING: \"C preprocessor does not support warning directive.\"" >&5
+	{ echo "$as_me:$LINENO: WARNING: \"C preprocessor does not support warning directive.\"" >&5
 echo "$as_me: WARNING: \"C preprocessor does not support warning directive.\"" >&2;}
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
 
 for ac_header in fpu_control.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -21724,40 +21514,37 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -21766,24 +21553,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -21791,9 +21576,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -21817,25 +21603,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -21854,18 +21634,19 @@ done
 for ac_header in floatingpoint.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -21876,40 +21657,37 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -21918,24 +21696,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -21943,9 +21719,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -21969,25 +21746,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -22006,18 +21777,19 @@ done
 for ac_header in unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -22028,40 +21800,37 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -22070,24 +21839,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -22095,9 +21862,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -22121,25 +21889,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -22158,18 +21920,19 @@ done
 for ac_header in getopt.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -22180,40 +21943,37 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -22222,24 +21982,22 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -22247,9 +22005,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -22273,25 +22032,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -22311,9 +22064,9 @@ done
 for ac_func in getopt_long
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -22339,67 +22092,60 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -22409,7 +22155,7 @@ fi
 done
 
 
-                                                                                                                        ac_config_files="$ac_config_files Makefile gts.pc gts.spec src/Makefile src/gts-config tools/Makefile doc/Makefile examples/Makefile test/Makefile test/boolean/Makefile test/delaunay/Makefile test/coarsen/Makefile"
+ac_config_files="$ac_config_files Makefile gts.pc gts.spec src/Makefile src/gts-config tools/Makefile doc/Makefile examples/Makefile test/Makefile test/boolean/Makefile test/delaunay/Makefile test/coarsen/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -22429,39 +22175,58 @@ _ACEOF
 
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
+# So, we kill variables containing newlines.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-{
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
   (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
       # `set' does not quote correctly, so add quotes (double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \).
       sed -n \
 	"s/'/'\\\\''/g;
 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
+      ;; #(
     *)
       # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
-    esac;
-} |
+    esac |
+    sort
+) |
   sed '
+     /^ac_cv_env_/b end
      t clear
-     : clear
+     :clear
      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
      t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    echo "not updating unwritable cache $cache_file"
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -22470,32 +22235,18 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
 DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
@@ -22568,17 +22319,45 @@ cat >>$CONFIG_STATUS <<\_ACEOF
 ## M4sh Initialization.  ##
 ## --------------------- ##
 
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
 fi
-DUALCASE=1; export DUALCASE # for MKS sh
 
 # Support unset when possible.
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
@@ -22588,8 +22367,43 @@ else
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
 # Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
@@ -22603,18 +22417,19 @@ do
   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
-    $as_unset $as_var
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   fi
 done
 
 # Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
@@ -22622,159 +22437,120 @@ fi
 
 
 # Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
+# CDPATH.
+$as_unset CDPATH
 
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
 
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
   as_lineno_1=$LINENO
   as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
 rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
 echo >conf$$.file
 if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
     as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
 elif ln conf$$.file conf$$ 2>/dev/null; then
   as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.file
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
@@ -22783,7 +22559,28 @@ else
   as_mkdir_p=false
 fi
 
-as_executable_p="test -f"
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -22791,32 +22588,15 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 # Sed expression to map a string onto a valid variable name.
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
+generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -22824,30 +22604,20 @@ generated by GNU Autoconf 2.59.  Invocation command line was
   CONFIG_COMMANDS = $CONFIG_COMMANDS
   $ $0 $@
 
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
 _ACEOF
 
+cat >>$CONFIG_STATUS <<_ACEOF
 # Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
 
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
+_ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
-
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
@@ -22855,7 +22625,7 @@ current configuration.
 Usage: $0 [OPTIONS] [FILE]...
 
   -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
+  -V, --version    print version number and configuration settings, then exit
   -q, --quiet      do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
@@ -22874,19 +22644,21 @@ Configuration commands:
 $config_commands
 
 Report bugs to <bug-autoconf at gnu.org>."
-_ACEOF
 
+_ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.61,
+  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 2006 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
@@ -22897,39 +22669,24 @@ while test $# != 0
 do
   case $1 in
   --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
-  -*)
+  *)
     ac_option=$1
     ac_optarg=$2
     ac_shift=shift
     ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
   esac
 
   case $ac_option in
   # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
@@ -22939,18 +22696,24 @@ Try \`$0 --help' for more information." >&2;}
     $ac_shift
     CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
     ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    { echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
+  -*) { echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; } ;;
 
-  *) ac_config_targets="$ac_config_targets $1" ;;
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
 
   esac
   shift
@@ -22966,17 +22729,28 @@ fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  CONFIG_SHELL=$SHELL
+  export CONFIG_SHELL
+  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 fi
 
 _ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  echo "$ac_log"
+} >&5
 
+_ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 #
-# INIT-COMMANDS section.
+# INIT-COMMANDS
 #
-
 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 	gts_defines="
@@ -22988,34 +22762,35 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 _ACEOF
 
-
-
 cat >>$CONFIG_STATUS <<\_ACEOF
+
+# Handling of arguments.
 for ac_config_target in $ac_config_targets
 do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "gts.pc" ) CONFIG_FILES="$CONFIG_FILES gts.pc" ;;
-  "gts.spec" ) CONFIG_FILES="$CONFIG_FILES gts.spec" ;;
-  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-  "src/gts-config" ) CONFIG_FILES="$CONFIG_FILES src/gts-config" ;;
-  "tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
-  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-  "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
-  "test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
-  "test/boolean/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/boolean/Makefile" ;;
-  "test/delaunay/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/delaunay/Makefile" ;;
-  "test/coarsen/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/coarsen/Makefile" ;;
-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "gts.pc") CONFIG_FILES="$CONFIG_FILES gts.pc" ;;
+    "gts.spec") CONFIG_FILES="$CONFIG_FILES gts.spec" ;;
+    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+    "src/gts-config") CONFIG_FILES="$CONFIG_FILES src/gts-config" ;;
+    "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
+    "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+    "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
+    "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
+    "test/boolean/Makefile") CONFIG_FILES="$CONFIG_FILES test/boolean/Makefile" ;;
+    "test/delaunay/Makefile") CONFIG_FILES="$CONFIG_FILES test/delaunay/Makefile" ;;
+    "test/coarsen/Makefile") CONFIG_FILES="$CONFIG_FILES test/coarsen/Makefile" ;;
+
   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
 done
 
+
 # If the user did not use the arguments to specify the items to instantiate,
 # then the envvar interface is used.  Set only those that are not.
 # We use the long form for the default assignment because of an extremely
@@ -23027,377 +22802,483 @@ if $ac_need_defaults; then
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
+# simply because there is no reason against having it here, and in addition,
 # creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
   trap '{ (exit 1); exit 1; }' 1 2 13 15
 }
-
 # Create a (secure) tmp directory for tmp files.
 
 {
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
 } ||
 {
    echo "$me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
 #
-# CONFIG_FILES section.
+# Set up the sed scripts for CONFIG_FILES section.
 #
 
 # No need to generate the scripts if there are no CONFIG_FILES.
 # This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s, at SHELL@,$SHELL,;t t
-s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s, at exec_prefix@,$exec_prefix,;t t
-s, at prefix@,$prefix,;t t
-s, at program_transform_name@,$program_transform_name,;t t
-s, at bindir@,$bindir,;t t
-s, at sbindir@,$sbindir,;t t
-s, at libexecdir@,$libexecdir,;t t
-s, at datadir@,$datadir,;t t
-s, at sysconfdir@,$sysconfdir,;t t
-s, at sharedstatedir@,$sharedstatedir,;t t
-s, at localstatedir@,$localstatedir,;t t
-s, at libdir@,$libdir,;t t
-s, at includedir@,$includedir,;t t
-s, at oldincludedir@,$oldincludedir,;t t
-s, at infodir@,$infodir,;t t
-s, at mandir@,$mandir,;t t
-s, at build_alias@,$build_alias,;t t
-s, at host_alias@,$host_alias,;t t
-s, at target_alias@,$target_alias,;t t
-s, at DEFS@,$DEFS,;t t
-s, at ECHO_C@,$ECHO_C,;t t
-s, at ECHO_N@,$ECHO_N,;t t
-s, at ECHO_T@,$ECHO_T,;t t
-s, at LIBS@,$LIBS,;t t
-s, at GTS_MAJOR_VERSION@,$GTS_MAJOR_VERSION,;t t
-s, at GTS_MINOR_VERSION@,$GTS_MINOR_VERSION,;t t
-s, at GTS_MICRO_VERSION@,$GTS_MICRO_VERSION,;t t
-s, at GTS_VERSION@,$GTS_VERSION,;t t
-s, at LT_RELEASE@,$LT_RELEASE,;t t
-s, at LT_CURRENT@,$LT_CURRENT,;t t
-s, at LT_REVISION@,$LT_REVISION,;t t
-s, at LT_AGE@,$LT_AGE,;t t
-s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s, at INSTALL_DATA@,$INSTALL_DATA,;t t
-s, at CYGPATH_W@,$CYGPATH_W,;t t
-s, at PACKAGE@,$PACKAGE,;t t
-s, at VERSION@,$VERSION,;t t
-s, at ACLOCAL@,$ACLOCAL,;t t
-s, at AUTOCONF@,$AUTOCONF,;t t
-s, at AUTOMAKE@,$AUTOMAKE,;t t
-s, at AUTOHEADER@,$AUTOHEADER,;t t
-s, at MAKEINFO@,$MAKEINFO,;t t
-s, at AMTAR@,$AMTAR,;t t
-s, at install_sh@,$install_sh,;t t
-s, at STRIP@,$STRIP,;t t
-s, at ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s, at INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s, at mkdir_p@,$mkdir_p,;t t
-s, at AWK@,$AWK,;t t
-s, at SET_MAKE@,$SET_MAKE,;t t
-s, at am__leading_dot@,$am__leading_dot,;t t
-s, at build@,$build,;t t
-s, at build_cpu@,$build_cpu,;t t
-s, at build_vendor@,$build_vendor,;t t
-s, at build_os@,$build_os,;t t
-s, at host@,$host,;t t
-s, at host_cpu@,$host_cpu,;t t
-s, at host_vendor@,$host_vendor,;t t
-s, at host_os@,$host_os,;t t
-s, at CC@,$CC,;t t
-s, at CFLAGS@,$CFLAGS,;t t
-s, at LDFLAGS@,$LDFLAGS,;t t
-s, at CPPFLAGS@,$CPPFLAGS,;t t
-s, at ac_ct_CC@,$ac_ct_CC,;t t
-s, at EXEEXT@,$EXEEXT,;t t
-s, at OBJEXT@,$OBJEXT,;t t
-s, at DEPDIR@,$DEPDIR,;t t
-s, at am__include@,$am__include,;t t
-s, at am__quote@,$am__quote,;t t
-s, at AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s, at AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s, at AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s, at CCDEPMODE@,$CCDEPMODE,;t t
-s, at am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
-s, at am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s, at EGREP@,$EGREP,;t t
-s, at LN_S@,$LN_S,;t t
-s, at ECHO@,$ECHO,;t t
-s, at AR@,$AR,;t t
-s, at ac_ct_AR@,$ac_ct_AR,;t t
-s, at RANLIB@,$RANLIB,;t t
-s, at ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s, at CPP@,$CPP,;t t
-s, at CXX@,$CXX,;t t
-s, at CXXFLAGS@,$CXXFLAGS,;t t
-s, at ac_ct_CXX@,$ac_ct_CXX,;t t
-s, at CXXDEPMODE@,$CXXDEPMODE,;t t
-s, at am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
-s, at am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
-s, at CXXCPP@,$CXXCPP,;t t
-s, at F77@,$F77,;t t
-s, at FFLAGS@,$FFLAGS,;t t
-s, at ac_ct_F77@,$ac_ct_F77,;t t
-s, at LIBTOOL@,$LIBTOOL,;t t
-s, at MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
-s, at MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
-s, at MAINT@,$MAINT,;t t
-s, at HAS_NETPBM_TRUE@,$HAS_NETPBM_TRUE,;t t
-s, at HAS_NETPBM_FALSE@,$HAS_NETPBM_FALSE,;t t
-s, at PKG_CONFIG@,$PKG_CONFIG,;t t
-s, at GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
-s, at GLIB_LIBS@,$GLIB_LIBS,;t t
-s, at GLIB_GENMARSHAL@,$GLIB_GENMARSHAL,;t t
-s, at GOBJECT_QUERY@,$GOBJECT_QUERY,;t t
-s, at GLIB_MKENUMS@,$GLIB_MKENUMS,;t t
-s, at GLIB_CONFIG@,$GLIB_CONFIG,;t t
-s, at glib_cflags@,$glib_cflags,;t t
-s, at glib_libs@,$glib_libs,;t t
-s, at glib_thread_cflags@,$glib_thread_cflags,;t t
-s, at glib_thread_libs@,$glib_thread_libs,;t t
-s, at glib_module_cflags@,$glib_module_cflags,;t t
-s, at glib_module_libs@,$glib_module_libs,;t t
-s, at GLIB_DEPLIBS@,$GLIB_DEPLIBS,;t t
-s, at LIBOBJS@,$LIBOBJS,;t t
-s, at LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
+if test -n "$CONFIG_FILES"; then
 
 _ACEOF
 
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+SHELL!$SHELL$ac_delim
+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
+PACKAGE_NAME!$PACKAGE_NAME$ac_delim
+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
+PACKAGE_STRING!$PACKAGE_STRING$ac_delim
+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
+exec_prefix!$exec_prefix$ac_delim
+prefix!$prefix$ac_delim
+program_transform_name!$program_transform_name$ac_delim
+bindir!$bindir$ac_delim
+sbindir!$sbindir$ac_delim
+libexecdir!$libexecdir$ac_delim
+datarootdir!$datarootdir$ac_delim
+datadir!$datadir$ac_delim
+sysconfdir!$sysconfdir$ac_delim
+sharedstatedir!$sharedstatedir$ac_delim
+localstatedir!$localstatedir$ac_delim
+includedir!$includedir$ac_delim
+oldincludedir!$oldincludedir$ac_delim
+docdir!$docdir$ac_delim
+infodir!$infodir$ac_delim
+htmldir!$htmldir$ac_delim
+dvidir!$dvidir$ac_delim
+pdfdir!$pdfdir$ac_delim
+psdir!$psdir$ac_delim
+libdir!$libdir$ac_delim
+localedir!$localedir$ac_delim
+mandir!$mandir$ac_delim
+DEFS!$DEFS$ac_delim
+ECHO_C!$ECHO_C$ac_delim
+ECHO_N!$ECHO_N$ac_delim
+ECHO_T!$ECHO_T$ac_delim
+LIBS!$LIBS$ac_delim
+build_alias!$build_alias$ac_delim
+host_alias!$host_alias$ac_delim
+target_alias!$target_alias$ac_delim
+GTS_MAJOR_VERSION!$GTS_MAJOR_VERSION$ac_delim
+GTS_MINOR_VERSION!$GTS_MINOR_VERSION$ac_delim
+GTS_MICRO_VERSION!$GTS_MICRO_VERSION$ac_delim
+GTS_VERSION!$GTS_VERSION$ac_delim
+LT_RELEASE!$LT_RELEASE$ac_delim
+LT_CURRENT!$LT_CURRENT$ac_delim
+LT_REVISION!$LT_REVISION$ac_delim
+LT_AGE!$LT_AGE$ac_delim
+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+INSTALL_DATA!$INSTALL_DATA$ac_delim
+CYGPATH_W!$CYGPATH_W$ac_delim
+PACKAGE!$PACKAGE$ac_delim
+VERSION!$VERSION$ac_delim
+ACLOCAL!$ACLOCAL$ac_delim
+AUTOCONF!$AUTOCONF$ac_delim
+AUTOMAKE!$AUTOMAKE$ac_delim
+AUTOHEADER!$AUTOHEADER$ac_delim
+MAKEINFO!$MAKEINFO$ac_delim
+AMTAR!$AMTAR$ac_delim
+install_sh!$install_sh$ac_delim
+STRIP!$STRIP$ac_delim
+INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
+mkdir_p!$mkdir_p$ac_delim
+AWK!$AWK$ac_delim
+SET_MAKE!$SET_MAKE$ac_delim
+am__leading_dot!$am__leading_dot$ac_delim
+build!$build$ac_delim
+build_cpu!$build_cpu$ac_delim
+build_vendor!$build_vendor$ac_delim
+build_os!$build_os$ac_delim
+host!$host$ac_delim
+host_cpu!$host_cpu$ac_delim
+host_vendor!$host_vendor$ac_delim
+host_os!$host_os$ac_delim
+CC!$CC$ac_delim
+CFLAGS!$CFLAGS$ac_delim
+LDFLAGS!$LDFLAGS$ac_delim
+CPPFLAGS!$CPPFLAGS$ac_delim
+ac_ct_CC!$ac_ct_CC$ac_delim
+EXEEXT!$EXEEXT$ac_delim
+OBJEXT!$OBJEXT$ac_delim
+DEPDIR!$DEPDIR$ac_delim
+am__include!$am__include$ac_delim
+am__quote!$am__quote$ac_delim
+AMDEP_TRUE!$AMDEP_TRUE$ac_delim
+AMDEP_FALSE!$AMDEP_FALSE$ac_delim
+AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
+CCDEPMODE!$CCDEPMODE$ac_delim
+am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
+am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
+SED!$SED$ac_delim
+GREP!$GREP$ac_delim
+EGREP!$EGREP$ac_delim
+LN_S!$LN_S$ac_delim
+ECHO!$ECHO$ac_delim
+AR!$AR$ac_delim
+RANLIB!$RANLIB$ac_delim
+CPP!$CPP$ac_delim
+CXX!$CXX$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
-fi # test -n "$CONFIG_FILES"
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+CXXFLAGS!$CXXFLAGS$ac_delim
+ac_ct_CXX!$ac_ct_CXX$ac_delim
+CXXDEPMODE!$CXXDEPMODE$ac_delim
+am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
+am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
+CXXCPP!$CXXCPP$ac_delim
+F77!$F77$ac_delim
+FFLAGS!$FFLAGS$ac_delim
+ac_ct_F77!$ac_ct_F77$ac_delim
+LIBTOOL!$LIBTOOL$ac_delim
+MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
+MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
+MAINT!$MAINT$ac_delim
+HAS_NETPBM_TRUE!$HAS_NETPBM_TRUE$ac_delim
+HAS_NETPBM_FALSE!$HAS_NETPBM_FALSE$ac_delim
+PKG_CONFIG!$PKG_CONFIG$ac_delim
+GLIB_CFLAGS!$GLIB_CFLAGS$ac_delim
+GLIB_LIBS!$GLIB_LIBS$ac_delim
+GLIB_GENMARSHAL!$GLIB_GENMARSHAL$ac_delim
+GOBJECT_QUERY!$GOBJECT_QUERY$ac_delim
+GLIB_MKENUMS!$GLIB_MKENUMS$ac_delim
+GLIB_CONFIG!$GLIB_CONFIG$ac_delim
+glib_cflags!$glib_cflags$ac_delim
+glib_libs!$glib_libs$ac_delim
+glib_thread_cflags!$glib_thread_cflags$ac_delim
+glib_thread_libs!$glib_thread_libs$ac_delim
+glib_module_cflags!$glib_module_cflags$ac_delim
+glib_module_libs!$glib_module_libs$ac_delim
+GLIB_DEPLIBS!$GLIB_DEPLIBS$ac_delim
+LIBOBJS!$LIBOBJS$ac_delim
+LTLIBOBJS!$LTLIBOBJS$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 31; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
 
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+:end
+s/|#_!!_#|//g
+CEOF$ac_eof
 _ACEOF
+
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[	 ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
 cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+fi # test -n "$CONFIG_FILES"
+
+
+for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      ac_file_inputs="$ac_file_inputs $ac_f"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input="Generated from "`IFS=:
+	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    fi
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin";;
+    esac
+    ;;
   esac
 
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+  ac_dir=`$as_dirname -- "$ac_file" ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
     as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
     done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
-
   ac_builddir=.
 
-if test "$ac_dir" != .; then
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
 
 case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
+  .)  # We are building in place.
     ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
 
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
 
   case $INSTALL in
   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
   esac
+_ACEOF
 
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
 
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
+case `sed -n '/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+' $ac_file_inputs` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
 _ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
 cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
 $extrasub
@@ -23405,248 +23286,130 @@ _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s, at configure_input@,$configure_input,;t t
-s, at srcdir@,$ac_srcdir,;t t
-s, at abs_srcdir@,$ac_abs_srcdir,;t t
-s, at top_srcdir@,$ac_top_srcdir,;t t
-s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s, at builddir@,$ac_builddir,;t t
-s, at abs_builddir@,$ac_abs_builddir,;t t
-s, at top_builddir@,$ac_top_builddir,;t t
-s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
-s, at INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
-ac_dB='[	 ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+s&@configure_input@&$configure_input&;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
+
+  rm -f "$tmp/stdin"
   case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+  -) cat "$tmp/out"; rm -f "$tmp/out";;
+  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
   esac
-
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 # Do quote $f, to prevent DOS paths from being IFS'd.
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
-
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
 _ACEOF
 
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
+# Transform confdefs.h into a sed script `conftest.defines', that
+# substitutes the proper values into config.h.in to produce config.h.
+rm -f conftest.defines conftest.tail
+# First, append a space to every undef/define line, to ease matching.
+echo 's/$/ /' >conftest.defines
+# Then, protect against being on the right side of a sed subst, or in
+# an unquoted here document, in config.status.  If some macros were
+# called several times there might be several #defines for the same
+# symbol, which is useless.  But do not sort them, since the last
+# AC_DEFINE must be honored.
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
+# NAME is the cpp macro being defined, VALUE is the value it is being given.
+# PARAMS is the parameter list in the macro definition--in most cases, it's
+# just an empty string.
+ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
+ac_dB='\\)[	 (].*,\\1define\\2'
+ac_dC=' '
+ac_dD=' ,'
+
+uniq confdefs.h |
+  sed -n '
+	t rset
+	:rset
+	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
+	t ok
+	d
+	:ok
+	s/[\\&,]/\\&/g
+	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
+	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
+  ' >>conftest.defines
+
+# Remove the space that was appended to ease matching.
+# Then replace #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
+# (The regexp can be short, since the line contains either #define or #undef.)
+echo 's/ $//
+s,^[	 #]*u.*,/* & */,' >>conftest.defines
+
+# Break up conftest.defines:
+ac_max_sed_lines=50
+
+# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
+# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
+# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
+# et cetera.
+ac_in='$ac_file_inputs'
+ac_out='"$tmp/out1"'
+ac_nxt='"$tmp/out2"'
+
+while :
 do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  # Write a here document:
+    cat >>$CONFIG_STATUS <<_ACEOF
+    # First, check the format of the line:
+    cat >"\$tmp/defines.sed" <<\\CEOF
+/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
+/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
+b
+:def
+_ACEOF
+  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
   echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
+  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
+  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
+  grep . conftest.tail >/dev/null || break
   rm -f conftest.defines
   mv conftest.tail conftest.defines
 done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
+rm -f conftest.defines conftest.tail
 
+echo "ac_result=$ac_in" >>$CONFIG_STATUS
 cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
   if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+    echo "/* $configure_input  */" >"$tmp/config.h"
+    cat "$ac_result" >>"$tmp/config.h"
+    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
       { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
       rm -f $ac_file
-      mv $tmp/config.h $ac_file
+      mv "$tmp/config.h" $ac_file
     fi
   else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
+    echo "/* $configure_input  */"
+    cat "$ac_result"
   fi
+  rm -f "$tmp/out12"
 # Compute $ac_file's index in $config_headers.
 _am_stamp_count=1
 for _am_header in $config_headers :; do
@@ -23657,135 +23420,39 @@ for _am_header in $config_headers :; do
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+echo "timestamp for $ac_file" >`$as_dirname -- $ac_file ||
 $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X$ac_file : 'X\(//\)[^/]' \| \
 	 X$ac_file : 'X\(//\)$' \| \
-	 X$ac_file : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X$ac_file : 'X\(/\)' \| . 2>/dev/null ||
 echo X$ac_file |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`/stamp-h$_am_stamp_count
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
 
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
+  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
+echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
 
 
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
   # Strip MF so we end up with the name of the file.
   mf=`echo "$mf" | sed -e 's/:.*$//'`
   # Check whether this is an Automake generated Makefile or not.
@@ -23795,18 +23462,29 @@ echo "$as_me: executing $ac_dest commands" >&6;}
   # each Makefile.in and add a new line on top of each file to say so.
   # So let's grep whole file.
   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-    dirpart=`(dirname "$mf") 2>/dev/null ||
+    dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \
 	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
   else
     continue
   fi
@@ -23834,49 +23512,76 @@ echo X"$mf" |
        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
     # Make sure the directory exists.
     test -f "$dirpart/$file" && continue
-    fdir=`(dirname "$file") 2>/dev/null ||
+    fdir=`$as_dirname -- "$file" ||
 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$file" : 'X\(//\)[^/]' \| \
 	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    { if $as_mkdir_p; then
-    mkdir -p $dirpart/$fdir
-  else
-    as_dir=$dirpart/$fdir
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    { as_dir=$dirpart/$fdir
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
     as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
     done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
-
     # echo "creating $dirpart/$file"
     echo '# dummy' > "$dirpart/$file"
   done
 done
  ;;
-    default-1 )
+    "default-1":C)
 	echo creating src/gtsconfig.h
 	cat >src/gtsconfig.h <<\__EOF
 /* gtsconfig.h
@@ -23936,11 +23641,10 @@ $gts_defines
 #endif /* GTSCONFIG_H */
 __EOF
  ;;
+
   esac
-done
-_ACEOF
+done # for ac_tag
 
-cat >>$CONFIG_STATUS <<\_ACEOF
 
 { (exit 0); exit 0; }
 _ACEOF
diff --git a/configure.in b/configure.in
index a2b2196..7322fea 100644
--- a/configure.in
+++ b/configure.in
@@ -68,7 +68,7 @@ AC_ISC_POSIX
 AC_HEADER_STDC
 
 AC_CHECK_LIB(netpbm, pgm_init, netpbm="true",
-  AC_MSG_WARN([libnetpbm not found. Some programs will not be available.]))
+  AC_MSG_WARN([libnetpbm not found. Some programs will not be available.]), [-lm])
 AM_CONDITIONAL(HAS_NETPBM, test x$netpbm = xtrue)
 
 AM_PATH_GLIB_2_0(2.4.0, has_glib2=yes, has_glib2=no, gthread gmodule)
diff --git a/doc/Makefile.in b/doc/Makefile.in
index f648a01..23e89b7 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -83,6 +83,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -117,16 +118,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -141,6 +140,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -153,17 +155,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/doc/html/book1.html b/doc/html/book1.html
index f8d8335..dfe8c5e 100644
--- a/doc/html/book1.html
+++ b/doc/html/book1.html
@@ -80,215 +80,31 @@ CLASS="TOC"
 HREF="c4.html"
 >Basic Macros, functions and data structures</A
 ></DT
-><DD
-><DL
-><DT
-><A
-HREF="gts-binary-heaps.html"
->Binary heaps</A
-> -- efficient data structure for priority heaps.</DT
-><DT
-><A
-HREF="gts-extended-binary-heaps.html"
->Extended binary heaps</A
-> -- efficient data structure for priority heaps allowing removal of elements.</DT
 ><DT
 ><A
-HREF="gts-first-in-first-out-heaps.html"
->First In First Out heaps</A
-> -- </DT
-><DT
-><A
-HREF="gts-vectors-and-matrices.html"
->Vectors and matrices</A
-> -- simple operations on vectors and matrices.</DT
-><DT
-><A
-HREF="gts-simple-statistics.html"
->Simple statistics</A
-> -- a basic structure for computing min, max, average and variance.</DT
-><DT
-><A
-HREF="gts-miscellaneous-macros-and-functions.html"
->Miscellaneous macros and functions</A
-> -- Various utilities.</DT
-></DL
-></DD
-><DT
-><A
-HREF="c2915.html"
+HREF="c6.html"
 >Geometrical Object Hierarchy</A
 ></DT
-><DD
-><DL
-><DT
-><A
-HREF="gts-object-class.html"
->Object class</A
-> -- parent class for all GTS objects.</DT
-><DT
-><A
-HREF="gts-container-classes.html"
->Container classes</A
-> -- </DT
 ><DT
 ><A
-HREF="gts-containee-classes.html"
->Containee classes</A
-> -- </DT
-><DT
-><A
-HREF="gts-points.html"
->Points</A
-> -- point object and related functions.</DT
-><DT
-><A
-HREF="gts-vertices.html"
->Vertices</A
-> -- vertex object and related functions.</DT
-><DT
-><A
-HREF="gts-segments.html"
->Segments</A
-> -- segment object and related functions.</DT
-><DT
-><A
-HREF="gts-edges.html"
->Edges</A
-> -- edge object and related functions.</DT
-><DT
-><A
-HREF="gts-triangles.html"
->Triangles</A
-> -- triangle object and related functions.</DT
-><DT
-><A
-HREF="gts-faces.html"
->Faces</A
-> -- face object and related functions.</DT
-><DT
-><A
-HREF="gts-surfaces.html"
->Surfaces</A
-> -- surface object and related functions.</DT
-></DL
-></DD
-><DT
-><A
-HREF="c10545.html"
+HREF="c12.html"
 >Geometrical data structures</A
 ></DT
-><DD
-><DL
-><DT
-><A
-HREF="gts-kd-trees.html"
->Kd-Trees</A
-> -- an efficient way of doing point location queries.</DT
 ><DT
 ><A
-HREF="gts-bounding-boxes-trees.html"
->Bounding boxes trees</A
-> -- implementation of axis-aligned bounding-box trees.</DT
-></DL
-></DD
-><DT
-><A
-HREF="c12206.html"
+HREF="c14.html"
 >Surface operations</A
 ></DT
-><DD
-><DL
 ><DT
 ><A
-HREF="gts-boolean-operations.html"
->Boolean operations</A
-> -- set operations between surfaces: union, intersection, difference.</DT
-><DT
-><A
-HREF="gts-surface-simplification-and-refinement.html"
->Surface simplification and refinement</A
-> -- reducing or increasing the number of edges of a triangulated surface.</DT
-><DT
-><A
-HREF="gts-out-of-core-simplification.html"
->Out-of-core simplification</A
-> -- objects for simplification based on vertex clustering.</DT
-><DT
-><A
-HREF="gts-isosurfaces-from-3d-functions.html"
->Isosurfaces from 3D functions</A
-> -- computing triangulated isosurfaces of a given function f(x,y,z).</DT
-><DT
-><A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"
->Delaunay and constrained Delaunay triangulations</A
-> -- implementation of a dynamic Delaunay triangulation algorithm.</DT
-><DT
-><A
-HREF="gts-differential-geometry-operators.html"
->Differential geometry operators</A
-> -- </DT
-></DL
-></DD
-><DT
-><A
-HREF="c15264.html"
+HREF="c16.html"
 >Progressive and Hierarchical surfaces</A
 ></DT
-><DD
-><DL
 ><DT
 ><A
-HREF="gts-vertex-split.html"
->Vertex split</A
-> -- object encoding a reversible edge-collapse operation.</DT
-><DT
-><A
-HREF="gts-progressive-surfaces.html"
->Progressive surfaces</A
-> -- continuous level-of-detail for surfaces.</DT
-><DT
-><A
-HREF="gts-hierarchical-vertex-split.html"
->Hierarchical vertex split</A
-> -- hierarchical extension of the vertex split.</DT
-><DT
-><A
-HREF="gts-hierarchical-surfaces.html"
->Hierarchical surfaces</A
-> -- extension of progressive surfaces allowing arbitrary sequences of vertex split or collapse.</DT
-></DL
-></DD
-><DT
-><A
-HREF="c17114.html"
+HREF="c18.html"
 >Graph and operations on graphs</A
 ></DT
-><DD
-><DL
-><DT
-><A
-HREF="gts-graph-class.html"
->Graph class</A
-> -- </DT
-><DT
-><A
-HREF="gts-weighted-graph.html"
->Weighted graph</A
-> -- </DT
-><DT
-><A
-HREF="gts-progressive-graph.html"
->Progressive graph</A
-> -- </DT
-><DT
-><A
-HREF="gts-graph-partitioning.html"
->Graph partitioning</A
-> -- </DT
-></DL
-></DD
 ></DL
 ></DIV
 ></DIV
diff --git a/doc/html/c10545.html b/doc/html/c12.html
similarity index 75%
copy from doc/html/c10545.html
copy to doc/html/c12.html
index fbb1b15..eed6467 100644
--- a/doc/html/c10545.html
+++ b/doc/html/c12.html
@@ -10,11 +10,11 @@ REL="HOME"
 TITLE="GTS Library Reference Manual"
 HREF="book1.html"><LINK
 REL="PREVIOUS"
-TITLE="Surfaces"
-HREF="gts-surfaces.html"><LINK
+TITLE="Geometrical Object Hierarchy"
+HREF="c6.html"><LINK
 REL="NEXT"
-TITLE="Kd-Trees"
-HREF="gts-kd-trees.html"><STYLE
+TITLE="Surface operations"
+HREF="c14.html"><STYLE
 TYPE="text/css"
 >.synopsis, .classsynopsis {
     background: #eeeeee;
@@ -64,7 +64,7 @@ VALIGN="middle"
 ><TD
 ><A
 ACCESSKEY="p"
-HREF="gts-surfaces.html"
+HREF="c6.html"
 ><IMG
 SRC="left.png"
 WIDTH="24"
@@ -90,7 +90,7 @@ align="center"
 ><TD
 ><A
 ACCESSKEY="n"
-HREF="gts-kd-trees.html"
+HREF="c14.html"
 ><IMG
 SRC="right.png"
 WIDTH="24"
@@ -104,28 +104,9 @@ ALT="Next"></A
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="AEN10545"
+NAME="AEN12"
 ></A
 >Geometrical data structures</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-kd-trees.html"
->Kd-Trees</A
-> -- an efficient way of doing point location queries.</DT
-><DT
-><A
-HREF="gts-bounding-boxes-trees.html"
->Bounding boxes trees</A
-> -- implementation of axis-aligned bounding-box trees.</DT
-></DL
-></DIV
 ></DIV
 ><TABLE
 CLASS="navigation"
@@ -139,18 +120,18 @@ VALIGN="middle"
 ALIGN="left"
 ><A
 ACCESSKEY="p"
-HREF="gts-surfaces.html"
+HREF="c6.html"
 ><B
-><<< Surfaces</B
+><<< Geometrical Object Hierarchy</B
 ></A
 ></TD
 ><TD
 ALIGN="right"
 ><A
 ACCESSKEY="n"
-HREF="gts-kd-trees.html"
+HREF="c14.html"
 ><B
->Kd-Trees >>></B
+>Surface operations >>></B
 ></A
 ></TD
 ></TR
diff --git a/doc/html/c12206.html b/doc/html/c12206.html
deleted file mode 100644
index a34300e..0000000
--- a/doc/html/c12206.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Surface operations</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="PREVIOUS"
-TITLE="Bounding boxes trees"
-HREF="gts-bounding-boxes-trees.html"><LINK
-REL="NEXT"
-TITLE="Boolean operations"
-HREF="gts-boolean-operations.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="CHAPTER"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-bounding-boxes-trees.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-boolean-operations.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><DIV
-CLASS="CHAPTER"
-><H1
-><A
-NAME="AEN12206"
-></A
->Surface operations</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-boolean-operations.html"
->Boolean operations</A
-> -- set operations between surfaces: union, intersection, difference.</DT
-><DT
-><A
-HREF="gts-surface-simplification-and-refinement.html"
->Surface simplification and refinement</A
-> -- reducing or increasing the number of edges of a triangulated surface.</DT
-><DT
-><A
-HREF="gts-out-of-core-simplification.html"
->Out-of-core simplification</A
-> -- objects for simplification based on vertex clustering.</DT
-><DT
-><A
-HREF="gts-isosurfaces-from-3d-functions.html"
->Isosurfaces from 3D functions</A
-> -- computing triangulated isosurfaces of a given function f(x,y,z).</DT
-><DT
-><A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"
->Delaunay and constrained Delaunay triangulations</A
-> -- implementation of a dynamic Delaunay triangulation algorithm.</DT
-><DT
-><A
-HREF="gts-differential-geometry-operators.html"
->Differential geometry operators</A
-> -- </DT
-></DL
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-bounding-boxes-trees.html"
-><B
-><<< Bounding boxes trees</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-boolean-operations.html"
-><B
->Boolean operations >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/c17114.html b/doc/html/c14.html
similarity index 68%
rename from doc/html/c17114.html
rename to doc/html/c14.html
index 9e32eda..436db79 100644
--- a/doc/html/c17114.html
+++ b/doc/html/c14.html
@@ -2,7 +2,7 @@
 <HTML
 ><HEAD
 ><TITLE
->Graph and operations on graphs</TITLE
+>Surface operations</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
@@ -10,11 +10,11 @@ REL="HOME"
 TITLE="GTS Library Reference Manual"
 HREF="book1.html"><LINK
 REL="PREVIOUS"
-TITLE="Hierarchical surfaces"
-HREF="gts-hierarchical-surfaces.html"><LINK
+TITLE="Geometrical data structures"
+HREF="c12.html"><LINK
 REL="NEXT"
-TITLE="Graph class"
-HREF="gts-graph-class.html"><STYLE
+TITLE="Progressive and Hierarchical surfaces"
+HREF="c16.html"><STYLE
 TYPE="text/css"
 >.synopsis, .classsynopsis {
     background: #eeeeee;
@@ -64,7 +64,7 @@ VALIGN="middle"
 ><TD
 ><A
 ACCESSKEY="p"
-HREF="gts-hierarchical-surfaces.html"
+HREF="c12.html"
 ><IMG
 SRC="left.png"
 WIDTH="24"
@@ -90,7 +90,7 @@ align="center"
 ><TD
 ><A
 ACCESSKEY="n"
-HREF="gts-graph-class.html"
+HREF="c16.html"
 ><IMG
 SRC="right.png"
 WIDTH="24"
@@ -104,38 +104,9 @@ ALT="Next"></A
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="AEN17114"
+NAME="AEN14"
 ></A
->Graph and operations on graphs</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-graph-class.html"
->Graph class</A
-> -- </DT
-><DT
-><A
-HREF="gts-weighted-graph.html"
->Weighted graph</A
-> -- </DT
-><DT
-><A
-HREF="gts-progressive-graph.html"
->Progressive graph</A
-> -- </DT
-><DT
-><A
-HREF="gts-graph-partitioning.html"
->Graph partitioning</A
-> -- </DT
-></DL
-></DIV
+>Surface operations</H1
 ></DIV
 ><TABLE
 CLASS="navigation"
@@ -149,18 +120,18 @@ VALIGN="middle"
 ALIGN="left"
 ><A
 ACCESSKEY="p"
-HREF="gts-hierarchical-surfaces.html"
+HREF="c12.html"
 ><B
-><<< Hierarchical surfaces</B
+><<< Geometrical data structures</B
 ></A
 ></TD
 ><TD
 ALIGN="right"
 ><A
 ACCESSKEY="n"
-HREF="gts-graph-class.html"
+HREF="c16.html"
 ><B
->Graph class >>></B
+>Progressive and Hierarchical surfaces >>></B
 ></A
 ></TD
 ></TR
diff --git a/doc/html/c15264.html b/doc/html/c16.html
similarity index 63%
rename from doc/html/c15264.html
rename to doc/html/c16.html
index 1876bcf..0ec85ab 100644
--- a/doc/html/c15264.html
+++ b/doc/html/c16.html
@@ -10,11 +10,11 @@ REL="HOME"
 TITLE="GTS Library Reference Manual"
 HREF="book1.html"><LINK
 REL="PREVIOUS"
-TITLE="Differential geometry operators"
-HREF="gts-differential-geometry-operators.html"><LINK
+TITLE="Surface operations"
+HREF="c14.html"><LINK
 REL="NEXT"
-TITLE="Vertex split"
-HREF="gts-vertex-split.html"><STYLE
+TITLE="Graph and operations on graphs"
+HREF="c18.html"><STYLE
 TYPE="text/css"
 >.synopsis, .classsynopsis {
     background: #eeeeee;
@@ -64,7 +64,7 @@ VALIGN="middle"
 ><TD
 ><A
 ACCESSKEY="p"
-HREF="gts-differential-geometry-operators.html"
+HREF="c14.html"
 ><IMG
 SRC="left.png"
 WIDTH="24"
@@ -90,7 +90,7 @@ align="center"
 ><TD
 ><A
 ACCESSKEY="n"
-HREF="gts-vertex-split.html"
+HREF="c18.html"
 ><IMG
 SRC="right.png"
 WIDTH="24"
@@ -104,38 +104,9 @@ ALT="Next"></A
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="AEN15264"
+NAME="AEN16"
 ></A
 >Progressive and Hierarchical surfaces</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-vertex-split.html"
->Vertex split</A
-> -- object encoding a reversible edge-collapse operation.</DT
-><DT
-><A
-HREF="gts-progressive-surfaces.html"
->Progressive surfaces</A
-> -- continuous level-of-detail for surfaces.</DT
-><DT
-><A
-HREF="gts-hierarchical-vertex-split.html"
->Hierarchical vertex split</A
-> -- hierarchical extension of the vertex split.</DT
-><DT
-><A
-HREF="gts-hierarchical-surfaces.html"
->Hierarchical surfaces</A
-> -- extension of progressive surfaces allowing arbitrary sequences of vertex split or collapse.</DT
-></DL
-></DIV
 ></DIV
 ><TABLE
 CLASS="navigation"
@@ -149,18 +120,18 @@ VALIGN="middle"
 ALIGN="left"
 ><A
 ACCESSKEY="p"
-HREF="gts-differential-geometry-operators.html"
+HREF="c14.html"
 ><B
-><<< Differential geometry operators</B
+><<< Surface operations</B
 ></A
 ></TD
 ><TD
 ALIGN="right"
 ><A
 ACCESSKEY="n"
-HREF="gts-vertex-split.html"
+HREF="c18.html"
 ><B
->Vertex split >>></B
+>Graph and operations on graphs >>></B
 ></A
 ></TD
 ></TR
diff --git a/doc/html/c10545.html b/doc/html/c18.html
similarity index 66%
rename from doc/html/c10545.html
rename to doc/html/c18.html
index fbb1b15..e51f888 100644
--- a/doc/html/c10545.html
+++ b/doc/html/c18.html
@@ -2,7 +2,7 @@
 <HTML
 ><HEAD
 ><TITLE
->Geometrical data structures</TITLE
+>Graph and operations on graphs</TITLE
 ><META
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
@@ -10,11 +10,8 @@ REL="HOME"
 TITLE="GTS Library Reference Manual"
 HREF="book1.html"><LINK
 REL="PREVIOUS"
-TITLE="Surfaces"
-HREF="gts-surfaces.html"><LINK
-REL="NEXT"
-TITLE="Kd-Trees"
-HREF="gts-kd-trees.html"><STYLE
+TITLE="Progressive and Hierarchical surfaces"
+HREF="c16.html"><STYLE
 TYPE="text/css"
 >.synopsis, .classsynopsis {
     background: #eeeeee;
@@ -64,7 +61,7 @@ VALIGN="middle"
 ><TD
 ><A
 ACCESSKEY="p"
-HREF="gts-surfaces.html"
+HREF="c16.html"
 ><IMG
 SRC="left.png"
 WIDTH="24"
@@ -87,45 +84,15 @@ ALT="Home"></A
 WIDTH="100%"
 align="center"
 >GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-kd-trees.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
 ></TR
 ></TABLE
 ><DIV
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="AEN10545"
+NAME="AEN18"
 ></A
->Geometrical data structures</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-kd-trees.html"
->Kd-Trees</A
-> -- an efficient way of doing point location queries.</DT
-><DT
-><A
-HREF="gts-bounding-boxes-trees.html"
->Bounding boxes trees</A
-> -- implementation of axis-aligned bounding-box trees.</DT
-></DL
-></DIV
+>Graph and operations on graphs</H1
 ></DIV
 ><TABLE
 CLASS="navigation"
@@ -139,19 +106,13 @@ VALIGN="middle"
 ALIGN="left"
 ><A
 ACCESSKEY="p"
-HREF="gts-surfaces.html"
+HREF="c16.html"
 ><B
-><<< Surfaces</B
+><<< Progressive and Hierarchical surfaces</B
 ></A
 ></TD
 ><TD
 ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-kd-trees.html"
-><B
->Kd-Trees >>></B
-></A
 ></TD
 ></TR
 ></TABLE
diff --git a/doc/html/c4.html b/doc/html/c4.html
index 4218524..920e17c 100644
--- a/doc/html/c4.html
+++ b/doc/html/c4.html
@@ -13,8 +13,8 @@ REL="PREVIOUS"
 TITLE="GTS Library Reference Manual"
 HREF="book1.html"><LINK
 REL="NEXT"
-TITLE="Binary heaps"
-HREF="gts-binary-heaps.html"><STYLE
+TITLE="Geometrical Object Hierarchy"
+HREF="c6.html"><STYLE
 TYPE="text/css"
 >.synopsis, .classsynopsis {
     background: #eeeeee;
@@ -90,7 +90,7 @@ align="center"
 ><TD
 ><A
 ACCESSKEY="n"
-HREF="gts-binary-heaps.html"
+HREF="c6.html"
 ><IMG
 SRC="right.png"
 WIDTH="24"
@@ -107,45 +107,6 @@ CLASS="CHAPTER"
 NAME="AEN4"
 ></A
 >Basic Macros, functions and data structures</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-binary-heaps.html"
->Binary heaps</A
-> -- efficient data structure for priority heaps.</DT
-><DT
-><A
-HREF="gts-extended-binary-heaps.html"
->Extended binary heaps</A
-> -- efficient data structure for priority heaps allowing removal of elements.</DT
-><DT
-><A
-HREF="gts-first-in-first-out-heaps.html"
->First In First Out heaps</A
-> -- </DT
-><DT
-><A
-HREF="gts-vectors-and-matrices.html"
->Vectors and matrices</A
-> -- simple operations on vectors and matrices.</DT
-><DT
-><A
-HREF="gts-simple-statistics.html"
->Simple statistics</A
-> -- a basic structure for computing min, max, average and variance.</DT
-><DT
-><A
-HREF="gts-miscellaneous-macros-and-functions.html"
->Miscellaneous macros and functions</A
-> -- Various utilities.</DT
-></DL
-></DIV
 ></DIV
 ><TABLE
 CLASS="navigation"
@@ -168,9 +129,9 @@ HREF="book1.html"
 ALIGN="right"
 ><A
 ACCESSKEY="n"
-HREF="gts-binary-heaps.html"
+HREF="c6.html"
 ><B
->Binary heaps >>></B
+>Geometrical Object Hierarchy >>></B
 ></A
 ></TD
 ></TR
diff --git a/doc/html/c2915.html b/doc/html/c6.html
similarity index 70%
rename from doc/html/c2915.html
rename to doc/html/c6.html
index 18de2db..d63d485 100644
--- a/doc/html/c2915.html
+++ b/doc/html/c6.html
@@ -10,11 +10,11 @@ REL="HOME"
 TITLE="GTS Library Reference Manual"
 HREF="book1.html"><LINK
 REL="PREVIOUS"
-TITLE="Miscellaneous macros and functions"
-HREF="gts-miscellaneous-macros-and-functions.html"><LINK
+TITLE="Basic Macros, functions and data structures"
+HREF="c4.html"><LINK
 REL="NEXT"
-TITLE="Object class"
-HREF="gts-object-class.html"><STYLE
+TITLE="Geometrical data structures"
+HREF="c12.html"><STYLE
 TYPE="text/css"
 >.synopsis, .classsynopsis {
     background: #eeeeee;
@@ -64,7 +64,7 @@ VALIGN="middle"
 ><TD
 ><A
 ACCESSKEY="p"
-HREF="gts-miscellaneous-macros-and-functions.html"
+HREF="c4.html"
 ><IMG
 SRC="left.png"
 WIDTH="24"
@@ -90,7 +90,7 @@ align="center"
 ><TD
 ><A
 ACCESSKEY="n"
-HREF="gts-object-class.html"
+HREF="c12.html"
 ><IMG
 SRC="right.png"
 WIDTH="24"
@@ -104,68 +104,9 @@ ALT="Next"></A
 CLASS="CHAPTER"
 ><H1
 ><A
-NAME="AEN2915"
+NAME="AEN6"
 ></A
 >Geometrical Object Hierarchy</H1
-><DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
-><A
-HREF="gts-object-class.html"
->Object class</A
-> -- parent class for all GTS objects.</DT
-><DT
-><A
-HREF="gts-container-classes.html"
->Container classes</A
-> -- </DT
-><DT
-><A
-HREF="gts-containee-classes.html"
->Containee classes</A
-> -- </DT
-><DT
-><A
-HREF="gts-points.html"
->Points</A
-> -- point object and related functions.</DT
-><DT
-><A
-HREF="gts-vertices.html"
->Vertices</A
-> -- vertex object and related functions.</DT
-><DT
-><A
-HREF="gts-segments.html"
->Segments</A
-> -- segment object and related functions.</DT
-><DT
-><A
-HREF="gts-edges.html"
->Edges</A
-> -- edge object and related functions.</DT
-><DT
-><A
-HREF="gts-triangles.html"
->Triangles</A
-> -- triangle object and related functions.</DT
-><DT
-><A
-HREF="gts-faces.html"
->Faces</A
-> -- face object and related functions.</DT
-><DT
-><A
-HREF="gts-surfaces.html"
->Surfaces</A
-> -- surface object and related functions.</DT
-></DL
-></DIV
 ><P
 >    GTS uses a simple object system implemented in C which allows all
     the basic paradigms of object-oriented programming: inheritance of
@@ -211,18 +152,18 @@ VALIGN="middle"
 ALIGN="left"
 ><A
 ACCESSKEY="p"
-HREF="gts-miscellaneous-macros-and-functions.html"
+HREF="c4.html"
 ><B
-><<< Miscellaneous macros and functions</B
+><<< Basic Macros, functions and data structures</B
 ></A
 ></TD
 ><TD
 ALIGN="right"
 ><A
 ACCESSKEY="n"
-HREF="gts-object-class.html"
+HREF="c12.html"
 ><B
->Object class >>></B
+>Geometrical data structures >>></B
 ></A
 ></TD
 ></TR
diff --git a/doc/html/gts-binary-heaps.html b/doc/html/gts-binary-heaps.html
deleted file mode 100644
index 463e39f..0000000
--- a/doc/html/gts-binary-heaps.html
+++ /dev/null
@@ -1,1071 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Binary heaps</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="PREVIOUS"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="NEXT"
-TITLE="Extended binary heaps"
-HREF="gts-extended-binary-heaps.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="c4.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c4.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-extended-binary-heaps.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-BINARY-HEAPS"
-></A
->Binary heaps</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN11"
-></A
-><H2
->Name</H2
->Binary heaps -- efficient data structure for priority heaps.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN14"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-            <A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
->;
-
-<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
->*    <A
-HREF="gts-binary-heaps.html#GTS-HEAP-NEW"
->gts_heap_new</A
->                    (<GTKDOCLINK
-HREF="GCOMPAREFUNC"
->GCompareFunc</GTKDOCLINK
-> compare_func);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-binary-heaps.html#GTS-HEAP-INSERT"
->gts_heap_insert</A
->                 (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-binary-heaps.html#GTS-HEAP-REMOVE-TOP"
->gts_heap_remove_top</A
->             (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-binary-heaps.html#GTS-HEAP-TOP"
->gts_heap_top</A
->                    (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-binary-heaps.html#GTS-HEAP-FREEZE"
->gts_heap_freeze</A
->                 (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-binary-heaps.html#GTS-HEAP-THAW"
->gts_heap_thaw</A
->                   (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-binary-heaps.html#GTS-HEAP-FOREACH"
->gts_heap_foreach</A
->                (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GFUNC"
->GFunc</GTKDOCLINK
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> user_data);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-binary-heaps.html#GTS-HEAP-SIZE"
->gts_heap_size</A
->                   (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-binary-heaps.html#GTS-HEAP-DESTROY"
->gts_heap_destroy</A
->                (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN48"
-></A
-><H2
->Description</H2
-><P
->The basic operations <A
-HREF="gts-binary-heaps.html#GTS-HEAP-INSERT"
-><CODE
-CLASS="FUNCTION"
->gts_heap_insert()</CODE
-></A
-> and <A
-HREF="gts-binary-heaps.html#GTS-HEAP-REMOVE-TOP"
-><CODE
-CLASS="FUNCTION"
->gts_heap_remove_top()</CODE
-></A
-> are performed in O(log n) time. Calling <A
-HREF="gts-binary-heaps.html#GTS-HEAP-FREEZE"
-><CODE
-CLASS="FUNCTION"
->gts_heap_freeze()</CODE
-></A
->, inserting elements using <A
-HREF="gts-binary-heaps.html#GTS-HEAP-INSERT"
-><CODE
-CLASS="FUNCTION"
->gts_heap_insert()</CODE
-></A
-> and calling <A
-HREF="gts-binary-heaps.html#GTS-HEAP-THAW"
-><CODE
-CLASS="FUNCTION"
->gts_heap_thaw()</CODE
-></A
-> allows to build the binary heap in O(n) time.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN61"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN63"
-></A
-><H3
-><A
-NAME="GTSHEAP"
-></A
->GtsHeap</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsHeap GtsHeap;</PRE
-><P
->An opaque data structure describing a binary heap.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN70"
-></A
-><H3
-><A
-NAME="GTS-HEAP-NEW"
-></A
->gts_heap_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
->*    gts_heap_new                    (<GTKDOCLINK
-HREF="GCOMPAREFUNC"
->GCompareFunc</GTKDOCLINK
-> compare_func);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN81"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->compare_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a GCompareFunc.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN86"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
-> using <CODE
-CLASS="PARAMETER"
->compare_func</CODE
-> as a sorting function.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN94"
-></A
-><H3
-><A
-NAME="GTS-HEAP-INSERT"
-></A
->gts_heap_insert ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_heap_insert                 (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p);</PRE
-><P
->Inserts a new element <CODE
-CLASS="PARAMETER"
->p</CODE
-> in the heap.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN107"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN114"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to add to the heap.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN119"
-></A
-><H3
-><A
-NAME="GTS-HEAP-REMOVE-TOP"
-></A
->gts_heap_remove_top ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_heap_remove_top             (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-><P
->Removes the element at the top of the heap.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN130"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN137"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the element at the top of the heap.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN142"
-></A
-><H3
-><A
-NAME="GTS-HEAP-TOP"
-></A
->gts_heap_top ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_heap_top                    (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN153"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN160"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the element at the top of the heap.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN165"
-></A
-><H3
-><A
-NAME="GTS-HEAP-FREEZE"
-></A
->gts_heap_freeze ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_heap_freeze                 (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-><P
->Freezes the heap. Any subsequent operation will not preserve the heap
-property. Used in conjunction with <A
-HREF="gts-binary-heaps.html#GTS-HEAP-INSERT"
-><CODE
-CLASS="FUNCTION"
->gts_heap_insert()</CODE
-></A
-> and <A
-HREF="gts-binary-heaps.html#GTS-HEAP-THAW"
-><CODE
-CLASS="FUNCTION"
->gts_heap_thaw()</CODE
-></A
->
-to create a heap in O(n) time.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN180"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN187"
-></A
-><H3
-><A
-NAME="GTS-HEAP-THAW"
-></A
->gts_heap_thaw ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_heap_thaw                   (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-><P
->If <CODE
-CLASS="PARAMETER"
->heap</CODE
-> has been frozen previously using <A
-HREF="gts-binary-heaps.html#GTS-HEAP-FREEZE"
-><CODE
-CLASS="FUNCTION"
->gts_heap_freeze()</CODE
-></A
->, reorder it
-in O(n) time and unfreeze it.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN201"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN208"
-></A
-><H3
-><A
-NAME="GTS-HEAP-FOREACH"
-></A
->gts_heap_foreach ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_heap_foreach                (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GFUNC"
->GFunc</GTKDOCLINK
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> user_data);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN221"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN228"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function to call for each element in the heap.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN233"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->user_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> to pass to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN239"
-></A
-><H3
-><A
-NAME="GTS-HEAP-SIZE"
-></A
->gts_heap_size ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_heap_size                   (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN250"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN257"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of items in <CODE
-CLASS="PARAMETER"
->heap</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN263"
-></A
-><H3
-><A
-NAME="GTS-HEAP-DESTROY"
-></A
->gts_heap_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_heap_destroy                (<A
-HREF="gts-binary-heaps.html#GTSHEAP"
->GtsHeap</A
-> *heap);</PRE
-><P
->Free all the memory allocated for <CODE
-CLASS="PARAMETER"
->heap</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN275"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="c4.html"
-><B
-><<< Basic Macros, functions and data structures</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-extended-binary-heaps.html"
-><B
->Extended binary heaps >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-boolean-operations.html b/doc/html/gts-boolean-operations.html
deleted file mode 100644
index 56226a3..0000000
--- a/doc/html/gts-boolean-operations.html
+++ /dev/null
@@ -1,1631 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Boolean operations</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="PREVIOUS"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="NEXT"
-TITLE="Surface simplification and refinement"
-HREF="gts-surface-simplification-and-refinement.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="c12206.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c12206.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-surface-simplification-and-refinement.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-BOOLEAN-OPERATIONS"
-></A
->Boolean operations</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN12213"
-></A
-><H2
->Name</H2
->Boolean operations -- set operations between surfaces: union, intersection, difference.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN12216"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTER-CLASS:CAPS"
->GTS_SURFACE_INTER_CLASS</A
->         (klass)
-#define     <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTER:CAPS"
->GTS_SURFACE_INTER</A
->               (obj)
-#define     <A
-HREF="gts-boolean-operations.html#GTS-IS-SURFACE-INTER:CAPS"
->GTS_IS_SURFACE_INTER</A
->            (obj)
-            <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
->GtsSurfaceInterClass</A
->;
-            <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
->;
-
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTERSECTION"
->gts_surface_intersection</A
->        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree1,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree2);
-<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
->GtsSurfaceInterClass</A
->* <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTER-CLASS"
->gts_surface_inter_class</A
->
-                                            (void);
-<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
->* <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTER-NEW"
->gts_surface_inter_new</A
->      (<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
->GtsSurfaceInterClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree1,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree2,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> is_open1,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> is_open2);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTER-CHECK"
->gts_surface_inter_check</A
->         (<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
-> *si,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> *closed);
-enum        <A
-HREF="gts-boolean-operations.html#GTSBOOLEANOPERATION"
->GtsBooleanOperation</A
->;
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-INTER-BOOLEAN"
->gts_surface_inter_boolean</A
->       (<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
-> *si,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-boolean-operations.html#GTSBOOLEANOPERATION"
->GtsBooleanOperation</A
-> op);
-<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* <A
-HREF="gts-boolean-operations.html#GTS-SURFACE-IS-SELF-INTERSECTING"
->gts_surface_is_self_intersecting</A
->
-                                            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN12254"
-></A
-><H2
->Description</H2
-><P
->The three-dimensional curve intersection of two surfaces is described by a <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
-> object. This object contains additional information which allows to compute all the set operations between the two surfaces.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN12259"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12261"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTER-CLASS:CAPS"
-></A
->GTS_SURFACE_INTER_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SURFACE_INTER_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInterClass</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12273"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a descendant of <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInterClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12280"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTER:CAPS"
-></A
->GTS_SURFACE_INTER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SURFACE_INTER(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12292"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a descendant of <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12299"
-></A
-><H3
-><A
-NAME="GTS-IS-SURFACE-INTER:CAPS"
-></A
->GTS_IS_SURFACE_INTER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_SURFACE_INTER(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12313"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12320"
-></A
-><H3
-><A
-NAME="GTSSURFACEINTERCLASS"
-></A
->GtsSurfaceInterClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsSurfaceInterClass;</PRE
-><P
->The surface intersection class.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12327"
-></A
-><H3
-><A
-NAME="GTSSURFACEINTER"
-></A
->GtsSurfaceInter</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsSurface * s1;
-  GtsSurface * s2;
-  GSList * edges;
-} GtsSurfaceInter;</PRE
-><P
->The surface intersection object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12335"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12341"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->s1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Local triangulation of the intersecting faces of the first surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12347"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->s2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Local triangulation of the intersecting faces of the second surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12353"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->edges</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->List of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> defining the 3D curve intersection of the two surfaces.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12361"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTERSECTION"
-></A
->gts_surface_intersection ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_surface_intersection        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree1,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12375"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12382"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12389"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->faces_tree1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree (see <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_new()</CODE
-></A
->) for
-the faces of <CODE
-CLASS="PARAMETER"
->s1</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12397"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->faces_tree2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree for the faces of <CODE
-CLASS="PARAMETER"
->s2</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12403"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> defining the curve intersection of the
-two surfaces.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12410"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTER-CLASS"
-></A
->gts_surface_inter_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
->GtsSurfaceInterClass</A
->* gts_surface_inter_class
-                                            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12420"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInterClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12427"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTER-NEW"
-></A
->gts_surface_inter_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
->* gts_surface_inter_new      (<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
->GtsSurfaceInterClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree1,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *faces_tree2,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> is_open1,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> is_open2);</PRE
-><P
->When triangulating the cut faces, the new faces inherit the
-attributes of these original faces through their <GTKDOCLINK
-HREF="ATTRIBUTES"
-><CODE
-CLASS="FUNCTION"
->attributes()</CODE
-></GTKDOCLINK
->
-method.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12446"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInterClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12453"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12460"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12467"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->faces_tree1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree (see <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_new()</CODE
-></A
->) for
-the faces of <CODE
-CLASS="PARAMETER"
->s1</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12475"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->faces_tree2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree for the faces of <CODE
-CLASS="PARAMETER"
->s2</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12481"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->is_open1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> whether <CODE
-CLASS="PARAMETER"
->s1</CODE
-> is an "open" surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12487"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->is_open2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> whether <CODE
-CLASS="PARAMETER"
->s2</CODE
-> is an "open" surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12493"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
-> describing the intersection of <CODE
-CLASS="PARAMETER"
->s1</CODE
->
-and <CODE
-CLASS="PARAMETER"
->s2</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12502"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTER-CHECK"
-></A
->gts_surface_inter_check ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_surface_inter_check         (<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
-> *si,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> *closed);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12514"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->si</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12521"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->closed</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> is set to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->si</CODE
->->edges is a closed curve, <TT
-CLASS="LITERAL"
->FALSE</TT
->
-otherwise.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12529"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the curve described by <CODE
-CLASS="PARAMETER"
->si</CODE
-> is an orientable
-manifold, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12537"
-></A
-><H3
-><A
-NAME="GTSBOOLEANOPERATION"
-></A
->enum GtsBooleanOperation</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef enum { GTS_1_OUT_2, 
-	       GTS_1_IN_2, 
-	       GTS_2_OUT_1, 
-	       GTS_2_IN_1 }             GtsBooleanOperation;</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12546"><SPAN
-STYLE="white-space: nowrap"
-><TT
-CLASS="LITERAL"
->GTS_1_OUT_2</TT
-></SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> identifies the part of the first surface which lies
-outside the second surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12551"><SPAN
-STYLE="white-space: nowrap"
-><TT
-CLASS="LITERAL"
->GTS_1_IN_2</TT
-></SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> identifies the part of the first surface which lies
-inside the second surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12556"><SPAN
-STYLE="white-space: nowrap"
-><TT
-CLASS="LITERAL"
->GTS_2_OUT_1</TT
-></SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> identifies the part of the second surface which lies
-outside the first surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12561"><SPAN
-STYLE="white-space: nowrap"
-><TT
-CLASS="LITERAL"
->GTS_2_IN_1</TT
-></SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> identifies the part of the second surface which lies
-inside the first surface.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12566"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-INTER-BOOLEAN"
-></A
->gts_surface_inter_boolean ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_inter_boolean       (<A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
->GtsSurfaceInter</A
-> *si,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-boolean-operations.html#GTSBOOLEANOPERATION"
->GtsBooleanOperation</A
-> op);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> the part of the surface described by <CODE
-CLASS="PARAMETER"
->si</CODE
-> and <CODE
-CLASS="PARAMETER"
->op</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12582"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->si</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-boolean-operations.html#GTSSURFACEINTER"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceInter</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12589"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12596"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->op</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-boolean-operations.html#GTSBOOLEANOPERATION"
-><SPAN
-CLASS="TYPE"
->GtsBooleanOperation</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12603"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-IS-SELF-INTERSECTING"
-></A
->gts_surface_is_self_intersecting ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* gts_surface_is_self_intersecting
-                                            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12614"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12621"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> containing the faces of <CODE
-CLASS="PARAMETER"
->s</CODE
-> which are
-self-intersecting or <TT
-CLASS="LITERAL"
->NULL</TT
-> if no faces of <CODE
-CLASS="PARAMETER"
->s</CODE
-> are self-intersecting.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="c12206.html"
-><B
-><<< Surface operations</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-surface-simplification-and-refinement.html"
-><B
->Surface simplification and refinement >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-bounding-boxes-trees.html b/doc/html/gts-bounding-boxes-trees.html
deleted file mode 100644
index 1823d00..0000000
--- a/doc/html/gts-bounding-boxes-trees.html
+++ /dev/null
@@ -1,5621 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Bounding boxes trees</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical data structures"
-HREF="c10545.html"><LINK
-REL="PREVIOUS"
-TITLE="Kd-Trees"
-HREF="gts-kd-trees.html"><LINK
-REL="NEXT"
-TITLE="Surface operations"
-HREF="c12206.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-kd-trees.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c10545.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="c12206.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-BOUNDING-BOXES-TREES"
-></A
->Bounding boxes trees</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN10663"
-></A
-><H2
->Name</H2
->Bounding boxes trees -- implementation of axis-aligned bounding-box trees.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN10666"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-CLASS:CAPS"
->GTS_BBOX_CLASS</A
->                  (klass)
-#define     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX:CAPS"
->GTS_BBOX</A
->                        (obj)
-#define     <A
-HREF="gts-bounding-boxes-trees.html#GTS-IS-BBOX:CAPS"
->GTS_IS_BBOX</A
->                     (obj)
-            <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
->;
-            <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->;
-
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
->* <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-CLASS"
->gts_bbox_class</A
->                (void);
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-NEW"
->gts_bbox_new</A
->                    (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-SET"
->gts_bbox_set</A
->                    (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z2);
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-SEGMENT"
->gts_bbox_segment</A
->                (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-TRIANGLE"
->gts_bbox_triangle</A
->               (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-SURFACE"
->gts_bbox_surface</A
->                (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-POINTS"
->gts_bbox_points</A
->                 (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *points);
-<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-BBOXES"
->gts_bbox_bboxes</A
->                 (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *bboxes);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-DRAW"
->gts_bbox_draw</A
->                   (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-#define     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-POINT-IS-INSIDE"
->gts_bbox_point_is_inside</A
->        (bbox, p)
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOXES-ARE-OVERLAPPING"
->gts_bboxes_are_overlapping</A
->      (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb1,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb2);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-DIAGONAL2"
->gts_bbox_diagonal2</A
->              (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-POINT-DISTANCE2"
->gts_bbox_point_distance2</A
->        (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *min,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *max);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-IS-STABBED"
->gts_bbox_is_stabbed</A
->             (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-OVERLAPS-TRIANGLE"
->gts_bbox_overlaps_triangle</A
->      (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
->*GtsBBTreeTraverseFunc</A
->)        (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb1,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb2,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
->*      <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-NEW"
->gts_bb_tree_new</A
->                 (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *bboxes);
-<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
->*      <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE"
->gts_bb_tree_surface</A
->             (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-OVERLAP"
->gts_bb_tree_overlap</A
->             (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-IS-OVERLAPPING"
->gts_bb_tree_is_overlapping</A
->      (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-TRAVERSE-OVERLAPPING"
->gts_bb_tree_traverse_overlapping</A
->
-                                            (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree1,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree2,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
->GtsBBTreeTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-DRAW"
->gts_bb_tree_draw</A
->                (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> depth,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-DESTROY"
->gts_bb_tree_destroy</A
->             (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> free_leaves);
-
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->*GtsBBoxDistFunc</A
->)              (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded);
-<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLOSESTFUNC"
->*GtsBBoxClosestFunc</A
->)           (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-POINT-DISTANCE"
->gts_bb_tree_point_distance</A
->      (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> **bbox);
-<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-POINT-CLOSEST"
->gts_bb_tree_point_closest</A
->       (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLOSESTFUNC"
->GtsBBoxClosestFunc</A
-> closest,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *distance);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SEGMENT-DISTANCE"
->gts_bb_tree_segment_distance</A
->    (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-TRIANGLE-DISTANCE"
->gts_bb_tree_triangle_distance</A
->   (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-POINT-CLOSEST-BBOXES"
->gts_bb_tree_point_closest_bboxes</A
->
-                                            (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE-BOUNDARY-DISTANCE"
->gts_bb_tree_surface_boundary_distance</A
->
-                                            (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE-DISTANCE"
->gts_bb_tree_surface_distance</A
->    (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);
-
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-STABBED"
->gts_bb_tree_stabbed</A
->             (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN10832"
-></A
-><H2
->Description</H2
-><P
->Axis-aligned bounding box trees can be used for intersection/collision detection using <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-TRAVERSE-OVERLAPPING"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_traverse_overlapping()</CODE
-></A
->, or to compute the minimum distance between an object and a collection of others using <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-POINT-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_point_distance()</CODE
-></A
->, <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SEGMENT-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_segment_distance()</CODE
-></A
->, <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-TRIANGLE-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_triangle_distance()</CODE
-></A
-> or <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_surface_distance()</CODE
-></A
->.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN10845"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10847"
-></A
-><H3
-><A
-NAME="GTS-BBOX-CLASS:CAPS"
-></A
->GTS_BBOX_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_BBOX_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10859"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a descendant of <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10866"
-></A
-><H3
-><A
-NAME="GTS-BBOX:CAPS"
-></A
->GTS_BBOX()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_BBOX(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10878"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10885"
-></A
-><H3
-><A
-NAME="GTS-IS-BBOX:CAPS"
-></A
->GTS_IS_BBOX()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_BBOX(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10899"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10906"
-></A
-><H3
-><A
-NAME="GTSBBOXCLASS"
-></A
->GtsBBoxClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsBBoxClass;</PRE
-><P
->The bounding box class derived from <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10915"
-></A
-><H3
-><A
-NAME="GTSBBOX"
-></A
->GtsBBox</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-  gpointer bounded;
-  gdouble x1, y1, z1;
-  gdouble x2, y2, z2;
-} GtsBBox;</PRE
-><P
->The bounding box structure.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10923"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10929"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->bounded</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Bounded object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10935"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->x1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->x coordinate of the lower-left front corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10941"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->y1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->y coordinate of the lower-left front corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10947"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->z1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->z coordinate of the lower-left front corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10953"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->x2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->x coordinate of the upper-right back corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10959"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->y2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->y coordinate of the upper-right back corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10965"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->z2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->z coordinate of the upper-right back corner.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10971"
-></A
-><H3
-><A
-NAME="GTS-BBOX-CLASS"
-></A
->gts_bbox_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
->* gts_bbox_class                (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10981"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10988"
-></A
-><H3
-><A
-NAME="GTS-BBOX-NEW"
-></A
->gts_bbox_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    gts_bbox_new                    (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11006"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11013"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bounded</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the object to be bounded.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11018"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> x-coordinate of the lower left corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11023"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> y-coordinate of the lower left corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11028"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> z-coordinate of the lower left corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11033"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> x-coordinate of the upper right corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11038"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> y-coordinate of the upper right corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11043"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> z-coordinate of the upper right corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11048"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11055"
-></A
-><H3
-><A
-NAME="GTS-BBOX-SET"
-></A
->gts_bbox_set ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bbox_set                    (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z2);</PRE
-><P
->Sets fields of <CODE
-CLASS="PARAMETER"
->bbox</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11074"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11081"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bounded</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the object to be bounded.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11086"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> x-coordinate of the lower left corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11091"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> y-coordinate of the lower left corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11096"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> z-coordinate of the lower left corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11101"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> x-coordinate of the upper right corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11106"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> y-coordinate of the upper right corner.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11111"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> z-coordinate of the upper right corner.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11116"
-></A
-><H3
-><A
-NAME="GTS-BBOX-SEGMENT"
-></A
->gts_bbox_segment ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    gts_bbox_segment                (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11128"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11135"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11142"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
-> bounding box of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11150"
-></A
-><H3
-><A
-NAME="GTS-BBOX-TRIANGLE"
-></A
->gts_bbox_triangle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    gts_bbox_triangle               (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11162"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11169"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11176"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
-> bounding box of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11184"
-></A
-><H3
-><A
-NAME="GTS-BBOX-SURFACE"
-></A
->gts_bbox_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    gts_bbox_surface                (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11196"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11203"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11210"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
-> bounding box of <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11218"
-></A
-><H3
-><A
-NAME="GTS-BBOX-POINTS"
-></A
->gts_bbox_points ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    gts_bbox_points                 (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *points);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11230"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11237"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->points</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11244"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
-> bounding box of <CODE
-CLASS="PARAMETER"
->points</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11252"
-></A
-><H3
-><A
-NAME="GTS-BBOX-BBOXES"
-></A
->gts_bbox_bboxes ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
->*    gts_bbox_bboxes                 (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
->GtsBBoxClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *bboxes);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11264"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11271"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bboxes</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11278"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
-> bounding box of all the bounding boxes in
-<CODE
-CLASS="PARAMETER"
->bboxes</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11286"
-></A
-><H3
-><A
-NAME="GTS-BBOX-DRAW"
-></A
->gts_bbox_draw ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bbox_draw                   (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes in file <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> an OOGL (Geomview) description of <CODE
-CLASS="PARAMETER"
->bb</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11300"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11307"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11312"
-></A
-><H3
-><A
-NAME="GTS-BBOX-POINT-IS-INSIDE"
-></A
->gts_bbox_point_is_inside()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_bbox_point_is_inside(bbox, p)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->p</CODE
-> is inside (or on the boundary) of <CODE
-CLASS="PARAMETER"
->bbox</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11325"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11332"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11339"
-></A
-><H3
-><A
-NAME="GTS-BBOXES-ARE-OVERLAPPING"
-></A
->gts_bboxes_are_overlapping ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_bboxes_are_overlapping      (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb1,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11351"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11358"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11365"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the bounding boxes <CODE
-CLASS="PARAMETER"
->bb1</CODE
-> and <CODE
-CLASS="PARAMETER"
->bb2</CODE
-> are overlapping
-(including just touching), <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11374"
-></A
-><H3
-><A
-NAME="GTS-BBOX-DIAGONAL2"
-></A
->gts_bbox_diagonal2 ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_bbox_diagonal2              (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11385"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11392"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the squared length of the diagonal of <CODE
-CLASS="PARAMETER"
->bb</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11398"
-></A
-><H3
-><A
-NAME="GTS-BBOX-POINT-DISTANCE2"
-></A
->gts_bbox_point_distance2 ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bbox_point_distance2        (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *min,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *max);</PRE
-><P
->Sets <CODE
-CLASS="PARAMETER"
->min</CODE
-> and <CODE
-CLASS="PARAMETER"
->max</CODE
-> to lower and upper bounds for the square of the
-Euclidean distance between the object contained in <CODE
-CLASS="PARAMETER"
->bb</CODE
-> and <CODE
-CLASS="PARAMETER"
->p</CODE
->. For these
-bounds to make any sense the bounding box must be "tight" i.e. each of the
-6 faces of the box must at least be touched by one point of the bounded
-object.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11416"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11423"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11430"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->min</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a gdouble.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11435"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->max</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a gdouble.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11440"
-></A
-><H3
-><A
-NAME="GTS-BBOX-IS-STABBED"
-></A
->gts_bbox_is_stabbed ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_bbox_is_stabbed             (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11452"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11459"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11466"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the ray starting at <CODE
-CLASS="PARAMETER"
->p</CODE
-> and ending at (+infty,
-<CODE
-CLASS="PARAMETER"
->p</CODE
->->y, <CODE
-CLASS="PARAMETER"
->p</CODE
->->z) intersects with <CODE
-CLASS="PARAMETER"
->bb</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11477"
-></A
-><H3
-><A
-NAME="GTS-BBOX-OVERLAPS-TRIANGLE"
-></A
->gts_bbox_overlaps_triangle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_bbox_overlaps_triangle      (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->This is a wrapper around the fast overlap test of Tomas
-Akenine-Moller (http://www.cs.lth.se/home/Tomas_Akenine_Moller/).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11489"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11496"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11503"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->bb</CODE
-> overlaps with <CODE
-CLASS="PARAMETER"
->t</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11512"
-></A
-><H3
-><A
-NAME="GTSBBTREETRAVERSEFUNC"
-></A
->GtsBBTreeTraverseFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (*GtsBBTreeTraverseFunc)        (<A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb1,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bb2,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->User function called for each pair of overlapping bounding
-boxes. See <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-TRAVERSE-OVERLAPPING"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_traverse_overlapping()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11527"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11534"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bb2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11541"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data passed to the function.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11546"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-NEW"
-></A
->gts_bb_tree_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
->*      gts_bb_tree_new                 (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *bboxes);</PRE
-><P
->Builds a new hierarchy of bounding boxes for <CODE
-CLASS="PARAMETER"
->bboxes</CODE
->. At each
-level, the GNode->data field contains a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
-> bounding box of
-all the children. The tree is binary and is built by repeatedly
-cutting in two approximately equal halves the bounding boxes at
-each level until a leaf node (i.e. a bounding box given in <CODE
-CLASS="PARAMETER"
->bboxes</CODE
->)
-is reached. In order to minimize the depth of the tree, the cutting
-direction is always chosen as perpendicular to the longest
-dimension of the bounding box.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11561"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bboxes</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11568"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new hierarchy of bounding boxes.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11573"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-SURFACE"
-></A
->gts_bb_tree_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
->*      gts_bb_tree_surface             (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11584"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11591"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new hierarchy of bounding boxes bounding the faces of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11597"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-OVERLAP"
-></A
->gts_bb_tree_overlap ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_bb_tree_overlap             (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11609"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11614"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11621"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of bounding boxes, leaves of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> which overlap <CODE
-CLASS="PARAMETER"
->bbox</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11628"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-IS-OVERLAPPING"
-></A
->gts_bb_tree_is_overlapping ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_bb_tree_is_overlapping      (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11640"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11645"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11652"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if any leaf of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> overlaps <CODE
-CLASS="PARAMETER"
->bbox</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11661"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-TRAVERSE-OVERLAPPING"
-></A
->gts_bb_tree_traverse_overlapping ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_traverse_overlapping
-                                            (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree1,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree2,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
->GtsBBTreeTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each overlapping pair of leaves of <CODE
-CLASS="PARAMETER"
->tree1</CODE
-> and <CODE
-CLASS="PARAMETER"
->tree2</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11678"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11683"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11688"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBTreeTraverseFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11695"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11701"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-DRAW"
-></A
->gts_bb_tree_draw ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_draw                (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> depth,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Write in <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> an OOGL (Geomview) description of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> for the
-depth specified by <CODE
-CLASS="PARAMETER"
->depth</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11717"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11722"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->depth</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a specified depth.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11727"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11732"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-DESTROY"
-></A
->gts_bb_tree_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_destroy             (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> free_leaves);</PRE
-><P
->Destroys all the bounding boxes created by <CODE
-CLASS="PARAMETER"
->tree</CODE
-> and destroys the
-tree itself. If <CODE
-CLASS="PARAMETER"
->free_leaves</CODE
-> is set to <TT
-CLASS="LITERAL"
->TRUE</TT
->, destroys boxes given
-by the user when creating the tree (i.e. leaves of the tree).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11747"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11752"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->free_leaves</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if <TT
-CLASS="LITERAL"
->TRUE</TT
-> the bounding boxes given by the user are freed.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11758"
-></A
-><H3
-><A
-NAME="GTSBBOXDISTFUNC"
-></A
->GtsBBoxDistFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     (*GtsBBoxDistFunc)              (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded);</PRE
-><P
->User function returning the (minimum) distance between the object
-defined by <CODE
-CLASS="PARAMETER"
->bounded</CODE
-> and point <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11772"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11779"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bounded</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> an object bounded by a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11786"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the distance between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and <CODE
-CLASS="PARAMETER"
->bounded</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11793"
-></A
-><H3
-><A
-NAME="GTSBBOXCLOSESTFUNC"
-></A
->GtsBBoxClosestFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   (*GtsBBoxClosestFunc)           (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> bounded);</PRE
-><P
->User function returning a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
-> belonging to the object defined
-by <CODE
-CLASS="PARAMETER"
->bounded</CODE
-> and closest to <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11809"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11816"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bounded</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> an object bounded by a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11823"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11830"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-POINT-DISTANCE"
-></A
->gts_bb_tree_point_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_bb_tree_point_distance      (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> **bbox);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11844"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11849"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11856"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->distance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBoxDistFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11863"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if not <TT
-CLASS="LITERAL"
->NULL</TT
-> is set to the bounding box containing the closest 
-object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11869"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the distance as evaluated by <CODE
-CLASS="PARAMETER"
->distance</CODE
-> between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and the closest
-object in <CODE
-CLASS="PARAMETER"
->tree</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11877"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-POINT-CLOSEST"
-></A
->gts_bb_tree_point_closest ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   gts_bb_tree_point_closest       (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLOSESTFUNC"
->GtsBBoxClosestFunc</A
-> closest,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *distance);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11891"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11896"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11903"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->closest</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXCLOSESTFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBoxClosestFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11910"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->distance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if not <TT
-CLASS="LITERAL"
->NULL</TT
-> is set to the distance between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and the 
-new <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11919"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->, closest point to <CODE
-CLASS="PARAMETER"
->p</CODE
-> and belonging to an object of
-<CODE
-CLASS="PARAMETER"
->tree</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11928"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-SEGMENT-DISTANCE"
-></A
->gts_bb_tree_segment_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_segment_distance    (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);</PRE
-><P
->Given a segment <CODE
-CLASS="PARAMETER"
->s</CODE
->, points are sampled regularly on its length
-using <CODE
-CLASS="PARAMETER"
->delta</CODE
-> as increment. The distance from each of these points
-to the closest object of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> is computed using <CODE
-CLASS="PARAMETER"
->distance</CODE
-> and the
-<A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-POINT-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_point_distance()</CODE
-></A
-> function. The fields of <CODE
-CLASS="PARAMETER"
->range</CODE
-> are
-filled with the number of points sampled, the minimum, average and
-maximum value and the standard deviation.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11950"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11955"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11962"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->distance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBoxDistFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11969"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->delta</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> spatial scale of the sampling to be used.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN11974"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->range</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
-> to be filled with the results.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11981"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-TRIANGLE-DISTANCE"
-></A
->gts_bb_tree_triangle_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_triangle_distance   (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);</PRE
-><P
->Given a triangle <CODE
-CLASS="PARAMETER"
->t</CODE
->, points are sampled regularly on its surface
-using <CODE
-CLASS="PARAMETER"
->delta</CODE
-> as increment. The distance from each of these points
-to the closest object of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> is computed using <CODE
-CLASS="PARAMETER"
->distance</CODE
-> and the
-<A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-POINT-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_point_distance()</CODE
-></A
-> function. The fields of <CODE
-CLASS="PARAMETER"
->range</CODE
-> are
-filled with the number of points sampled, the minimum, average and
-maximum value and the standard deviation.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12003"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12008"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12015"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->distance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBoxDistFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12022"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->delta</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> spatial scale of the sampling to be used.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12027"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->range</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
-> to be filled with the results.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12034"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-POINT-CLOSEST-BBOXES"
-></A
->gts_bb_tree_point_closest_bboxes ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_bb_tree_point_closest_bboxes
-                                            (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12046"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12051"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12058"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->. One of the bounding boxes is assured to contain
-the object of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> closest to <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12067"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-SURFACE-BOUNDARY-DISTANCE"
-></A
->gts_bb_tree_surface_boundary_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_surface_boundary_distance
-                                            (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);</PRE
-><P
->Calls <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SEGMENT-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_segment_distance()</CODE
-></A
-> for each edge boundary of <CODE
-CLASS="PARAMETER"
->s</CODE
->.
-The fields of <CODE
-CLASS="PARAMETER"
->range</CODE
-> are filled with the minimum, maximum and
-average distance. The average distance is defined as the sum of the
-average distances for each boundary edge weighthed by their length
-and divided by the total length of the boundaries. The standard
-deviation is defined accordingly. The <CODE
-CLASS="PARAMETER"
->n</CODE
-> field of <CODE
-CLASS="PARAMETER"
->range</CODE
-> is filled
-with the number of sampled points used.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12088"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12093"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12100"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->distance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBoxDistFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12107"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->delta</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a sampling increment defined as the percentage of the diagonal
-of the root bounding box of <CODE
-CLASS="PARAMETER"
->tree</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12113"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->range</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
-> to be filled with the results.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12120"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-SURFACE-DISTANCE"
-></A
->gts_bb_tree_surface_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_bb_tree_surface_distance    (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
->GtsBBoxDistFunc</A
-> distance,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *range);</PRE
-><P
->Calls <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-TRIANGLE-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_triangle_distance()</CODE
-></A
-> for each face of <CODE
-CLASS="PARAMETER"
->s</CODE
->. The
-fields of <CODE
-CLASS="PARAMETER"
->range</CODE
-> are filled with the minimum, maximum and average
-distance. The average distance is defined as the sum of the average
-distances for each triangle weighthed by their area and divided by
-the total area of the surface. The standard deviation is defined
-accordingly. The <CODE
-CLASS="PARAMETER"
->n</CODE
-> field of <CODE
-CLASS="PARAMETER"
->range</CODE
-> is filled with the number of
-sampled points used.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12141"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12146"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12153"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->distance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOXDISTFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBoxDistFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12160"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->delta</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a sampling increment defined as the percentage of the diagonal
-of the root bounding box of <CODE
-CLASS="PARAMETER"
->tree</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12166"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->range</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
-> to be filled with the results.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12173"
-></A
-><H3
-><A
-NAME="GTS-BB-TREE-STABBED"
-></A
->gts_bb_tree_stabbed ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_bb_tree_stabbed             (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12185"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12190"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12197"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of bounding boxes, leaves of <CODE
-CLASS="PARAMETER"
->tree</CODE
-> which are
-stabbed by the ray defined by <CODE
-CLASS="PARAMETER"
->p</CODE
-> (see <A
-HREF="gts-bounding-boxes-trees.html#GTS-BBOX-IS-STABBED"
-><CODE
-CLASS="FUNCTION"
->gts_bbox_is_stabbed()</CODE
-></A
->).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-kd-trees.html"
-><B
-><<< Kd-Trees</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="c12206.html"
-><B
->Surface operations >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-containee-classes.html b/doc/html/gts-containee-classes.html
deleted file mode 100644
index eeeea6c..0000000
--- a/doc/html/gts-containee-classes.html
+++ /dev/null
@@ -1,1075 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Containee classes</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Container classes"
-HREF="gts-container-classes.html"><LINK
-REL="NEXT"
-TITLE="Points"
-HREF="gts-points.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-container-classes.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-points.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-CONTAINEE-CLASSES"
-></A
->Containee classes</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN4086"
-></A
-><H2
->Name</H2
->Containee classes -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN4089"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-containee-classes.html#GTS-CONTAINEE-CLASS:CAPS"
->GTS_CONTAINEE_CLASS</A
->             (klass)
-#define     <A
-HREF="gts-containee-classes.html#GTS-CONTAINEE:CAPS"
->GTS_CONTAINEE</A
->                   (obj)
-#define     <A
-HREF="gts-containee-classes.html#GTS-IS-CONTAINEE:CAPS"
->GTS_IS_CONTAINEE</A
->                (obj)
-            <A
-HREF="gts-containee-classes.html#GTSCONTAINEECLASS"
->GtsContaineeClass</A
->;
-            <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
->;
-
-<A
-HREF="gts-containee-classes.html#GTSCONTAINEECLASS"
->GtsContaineeClass</A
->* <A
-HREF="gts-containee-classes.html#GTS-CONTAINEE-CLASS"
->gts_containee_class</A
->      (void);
-<A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
->* <A
-HREF="gts-containee-classes.html#GTS-CONTAINEE-NEW"
->gts_containee_new</A
->             (<A
-HREF="gts-containee-classes.html#GTSCONTAINEECLASS"
->GtsContaineeClass</A
-> *klass);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-containee-classes.html#GTS-CONTAINEE-IS-CONTAINED"
->gts_containee_is_contained</A
->      (<A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item,
-                                             <A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-containee-classes.html#GTS-CONTAINEE-REPLACE"
->gts_containee_replace</A
->           (<A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item,
-                                             <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *with);
-
-#define     <A
-HREF="gts-containee-classes.html#GTS-SLIST-CONTAINEE-CLASS:CAPS"
->GTS_SLIST_CONTAINEE_CLASS</A
->       (klass)
-#define     <A
-HREF="gts-containee-classes.html#GTS-SLIST-CONTAINEE:CAPS"
->GTS_SLIST_CONTAINEE</A
->             (obj)
-#define     <A
-HREF="gts-containee-classes.html#GTS-IS-SLIST-CONTAINEE:CAPS"
->GTS_IS_SLIST_CONTAINEE</A
->          (obj)
-            <A
-HREF="gts-containee-classes.html#GTSSLISTCONTAINEECLASS"
->GtsSListContaineeClass</A
->;
-            <A
-HREF="gts-containee-classes.html#GTSSLISTCONTAINEE"
->GtsSListContainee</A
->;
-
-<A
-HREF="gts-containee-classes.html#GTSSLISTCONTAINEECLASS"
->GtsSListContaineeClass</A
->* <A
-HREF="gts-containee-classes.html#GTS-SLIST-CONTAINEE-CLASS"
->gts_slist_containee_class</A
->
-                                            (void);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4117"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4120"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4122"
-></A
-><H3
-><A
-NAME="GTS-CONTAINEE-CLASS:CAPS"
-></A
->GTS_CONTAINEE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CONTAINEE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4130"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4135"
-></A
-><H3
-><A
-NAME="GTS-CONTAINEE:CAPS"
-></A
->GTS_CONTAINEE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CONTAINEE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4143"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4148"
-></A
-><H3
-><A
-NAME="GTS-IS-CONTAINEE:CAPS"
-></A
->GTS_IS_CONTAINEE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_CONTAINEE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4156"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4161"
-></A
-><H3
-><A
-NAME="GTSCONTAINEECLASS"
-></A
->GtsContaineeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-
-  void     (* add_container)    (GtsContainee *, GtsContainer *);
-  void     (* remove_container) (GtsContainee *, GtsContainer *);
-  void     (* foreach)          (GtsContainee *, GtsFunc, gpointer);
-  gboolean (* is_contained)     (GtsContainee *, GtsContainer *);
-  void     (* replace)          (GtsContainee *, GtsContainee *);
-} GtsContaineeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4168"
-></A
-><H3
-><A
-NAME="GTSCONTAINEE"
-></A
->GtsContainee</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-} GtsContainee;</PRE
-><P
->The containee object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4176"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4182"
-></A
-><H3
-><A
-NAME="GTS-CONTAINEE-CLASS"
-></A
->gts_containee_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-containee-classes.html#GTSCONTAINEECLASS"
->GtsContaineeClass</A
->* gts_containee_class      (void);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4191"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4196"
-></A
-><H3
-><A
-NAME="GTS-CONTAINEE-NEW"
-></A
->gts_containee_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
->* gts_containee_new             (<A
-HREF="gts-containee-classes.html#GTSCONTAINEECLASS"
->GtsContaineeClass</A
-> *klass);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4206"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4211"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4216"
-></A
-><H3
-><A
-NAME="GTS-CONTAINEE-IS-CONTAINED"
-></A
->gts_containee_is_contained ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_containee_is_contained      (<A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item,
-                                             <A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4227"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->item</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4232"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4237"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4242"
-></A
-><H3
-><A
-NAME="GTS-CONTAINEE-REPLACE"
-></A
->gts_containee_replace ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_containee_replace           (<A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item,
-                                             <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *with);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4253"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->item</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4258"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->with</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4263"
-></A
-><H3
-><A
-NAME="GTS-SLIST-CONTAINEE-CLASS:CAPS"
-></A
->GTS_SLIST_CONTAINEE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SLIST_CONTAINEE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4271"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4276"
-></A
-><H3
-><A
-NAME="GTS-SLIST-CONTAINEE:CAPS"
-></A
->GTS_SLIST_CONTAINEE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SLIST_CONTAINEE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4284"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4289"
-></A
-><H3
-><A
-NAME="GTS-IS-SLIST-CONTAINEE:CAPS"
-></A
->GTS_IS_SLIST_CONTAINEE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_SLIST_CONTAINEE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4297"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4302"
-></A
-><H3
-><A
-NAME="GTSSLISTCONTAINEECLASS"
-></A
->GtsSListContaineeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContaineeClass parent_class;
-} GtsSListContaineeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4309"
-></A
-><H3
-><A
-NAME="GTSSLISTCONTAINEE"
-></A
->GtsSListContainee</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContainee containee;
-
-  GSList * containers;
-} GtsSListContainee;</PRE
-><P
->The singly-linked list containee object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4317"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> <CODE
-CLASS="STRUCTFIELD"
->containee</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4323"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->containers</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->A list of <A
-HREF="gts-container-classes.html#GTSCONTAINER"
-><SPAN
-CLASS="TYPE"
->GtsContainer</SPAN
-></A
-> containing this object.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4331"
-></A
-><H3
-><A
-NAME="GTS-SLIST-CONTAINEE-CLASS"
-></A
->gts_slist_containee_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-containee-classes.html#GTSSLISTCONTAINEECLASS"
->GtsSListContaineeClass</A
->* gts_slist_containee_class
-                                            (void);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4340"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-container-classes.html"
-><B
-><<< Container classes</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-points.html"
-><B
->Points >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-container-classes.html b/doc/html/gts-container-classes.html
deleted file mode 100644
index 0c2e667..0000000
--- a/doc/html/gts-container-classes.html
+++ /dev/null
@@ -1,1447 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Container classes</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Object class"
-HREF="gts-object-class.html"><LINK
-REL="NEXT"
-TITLE="Containee classes"
-HREF="gts-containee-classes.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-object-class.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-containee-classes.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-CONTAINER-CLASSES"
-></A
->Container classes</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN3713"
-></A
-><H2
->Name</H2
->Container classes -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN3716"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-container-classes.html#GTS-CONTAINER-CLASS:CAPS"
->GTS_CONTAINER_CLASS</A
->             (klass)
-#define     <A
-HREF="gts-container-classes.html#GTS-CONTAINER:CAPS"
->GTS_CONTAINER</A
->                   (obj)
-#define     <A
-HREF="gts-container-classes.html#GTS-IS-CONTAINER:CAPS"
->GTS_IS_CONTAINER</A
->                (obj)
-            <A
-HREF="gts-container-classes.html#GTSCONTAINERCLASS"
->GtsContainerClass</A
->;
-            <A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
->;
-
-<A
-HREF="gts-container-classes.html#GTSCONTAINERCLASS"
->GtsContainerClass</A
->* <A
-HREF="gts-container-classes.html#GTS-CONTAINER-CLASS"
->gts_container_class</A
->      (void);
-<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
->* <A
-HREF="gts-container-classes.html#GTS-CONTAINER-NEW"
->gts_container_new</A
->             (<A
-HREF="gts-container-classes.html#GTSCONTAINERCLASS"
->GtsContainerClass</A
-> *klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-container-classes.html#GTS-CONTAINER-ADD"
->gts_container_add</A
->               (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c,
-                                             <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-container-classes.html#GTS-CONTAINER-REMOVE"
->gts_container_remove</A
->            (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c,
-                                             <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-container-classes.html#GTS-CONTAINER-SIZE"
->gts_container_size</A
->              (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-container-classes.html#GTS-CONTAINER-FOREACH"
->gts_container_foreach</A
->           (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-
-#define     <A
-HREF="gts-container-classes.html#GTS-HASH-CONTAINER-CLASS:CAPS"
->GTS_HASH_CONTAINER_CLASS</A
->        (klass)
-#define     <A
-HREF="gts-container-classes.html#GTS-HASH-CONTAINER:CAPS"
->GTS_HASH_CONTAINER</A
->              (obj)
-#define     <A
-HREF="gts-container-classes.html#GTS-IS-HASH-CONTAINER:CAPS"
->GTS_IS_HASH_CONTAINER</A
->           (obj)
-            <A
-HREF="gts-container-classes.html#GTSHASHCONTAINERCLASS"
->GtsHashContainerClass</A
->;
-            <A
-HREF="gts-container-classes.html#GTSHASHCONTAINER"
->GtsHashContainer</A
->;
-
-<A
-HREF="gts-container-classes.html#GTSHASHCONTAINERCLASS"
->GtsHashContainerClass</A
->* <A
-HREF="gts-container-classes.html#GTS-HASH-CONTAINER-CLASS"
->gts_hash_container_class</A
->
-                                            (void);
-
-#define     <A
-HREF="gts-container-classes.html#GTS-SLIST-CONTAINER-CLASS:CAPS"
->GTS_SLIST_CONTAINER_CLASS</A
->       (klass)
-#define     <A
-HREF="gts-container-classes.html#GTS-SLIST-CONTAINER:CAPS"
->GTS_SLIST_CONTAINER</A
->             (obj)
-#define     <A
-HREF="gts-container-classes.html#GTS-IS-SLIST-CONTAINER:CAPS"
->GTS_IS_SLIST_CONTAINER</A
->          (obj)
-            <A
-HREF="gts-container-classes.html#GTSSLISTCONTAINERCLASS"
->GtsSListContainerClass</A
->;
-            <A
-HREF="gts-container-classes.html#GTSSLISTCONTAINER"
->GtsSListContainer</A
->;
-
-<A
-HREF="gts-container-classes.html#GTSSLISTCONTAINERCLASS"
->GtsSListContainerClass</A
->* <A
-HREF="gts-container-classes.html#GTS-SLIST-CONTAINER-CLASS"
->gts_slist_container_class</A
->
-                                            (void);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3759"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3762"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3764"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-CLASS:CAPS"
-></A
->GTS_CONTAINER_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CONTAINER_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3772"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3777"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER:CAPS"
-></A
->GTS_CONTAINER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CONTAINER(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3785"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3790"
-></A
-><H3
-><A
-NAME="GTS-IS-CONTAINER:CAPS"
-></A
->GTS_IS_CONTAINER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_CONTAINER(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3798"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3803"
-></A
-><H3
-><A
-NAME="GTSCONTAINERCLASS"
-></A
->GtsContainerClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSListContaineeClass parent_class;
-
-  void  (* add)     (GtsContainer *, GtsContainee *);
-  void  (* remove)  (GtsContainer *, GtsContainee *);
-  void  (* foreach) (GtsContainer *, GtsFunc, gpointer);
-  guint (* size)    (GtsContainer *);
-} GtsContainerClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3810"
-></A
-><H3
-><A
-NAME="GTSCONTAINER"
-></A
->GtsContainer</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSListContainee object;
-} GtsContainer;</PRE
-><P
->The container object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3818"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-containee-classes.html#GTSSLISTCONTAINEE"
->GtsSListContainee</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3824"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-CLASS"
-></A
->gts_container_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-container-classes.html#GTSCONTAINERCLASS"
->GtsContainerClass</A
->* gts_container_class      (void);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3833"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3838"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-NEW"
-></A
->gts_container_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
->* gts_container_new             (<A
-HREF="gts-container-classes.html#GTSCONTAINERCLASS"
->GtsContainerClass</A
-> *klass);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3848"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3853"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3858"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-ADD"
-></A
->gts_container_add ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_container_add               (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c,
-                                             <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3869"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3874"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->item</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3879"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-REMOVE"
-></A
->gts_container_remove ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_container_remove            (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c,
-                                             <A
-HREF="gts-containee-classes.html#GTSCONTAINEE"
->GtsContainee</A
-> *item);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3890"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3895"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->item</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3900"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-SIZE"
-></A
->gts_container_size ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_container_size              (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3910"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3915"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3920"
-></A
-><H3
-><A
-NAME="GTS-CONTAINER-FOREACH"
-></A
->gts_container_foreach ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_container_foreach           (<A
-HREF="gts-container-classes.html#GTSCONTAINER"
->GtsContainer</A
-> *c,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3932"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3937"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3942"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3947"
-></A
-><H3
-><A
-NAME="GTS-HASH-CONTAINER-CLASS:CAPS"
-></A
->GTS_HASH_CONTAINER_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_HASH_CONTAINER_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3955"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3960"
-></A
-><H3
-><A
-NAME="GTS-HASH-CONTAINER:CAPS"
-></A
->GTS_HASH_CONTAINER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_HASH_CONTAINER(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3968"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3973"
-></A
-><H3
-><A
-NAME="GTS-IS-HASH-CONTAINER:CAPS"
-></A
->GTS_IS_HASH_CONTAINER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_HASH_CONTAINER(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3981"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3986"
-></A
-><H3
-><A
-NAME="GTSHASHCONTAINERCLASS"
-></A
->GtsHashContainerClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContainerClass parent_class;
-} GtsHashContainerClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3993"
-></A
-><H3
-><A
-NAME="GTSHASHCONTAINER"
-></A
->GtsHashContainer</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContainer c;
-
-  GHashTable * items;
-  gboolean frozen;
-} GtsHashContainer;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4000"
-></A
-><H3
-><A
-NAME="GTS-HASH-CONTAINER-CLASS"
-></A
->gts_hash_container_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-container-classes.html#GTSHASHCONTAINERCLASS"
->GtsHashContainerClass</A
->* gts_hash_container_class
-                                            (void);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4009"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4014"
-></A
-><H3
-><A
-NAME="GTS-SLIST-CONTAINER-CLASS:CAPS"
-></A
->GTS_SLIST_CONTAINER_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SLIST_CONTAINER_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4022"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4027"
-></A
-><H3
-><A
-NAME="GTS-SLIST-CONTAINER:CAPS"
-></A
->GTS_SLIST_CONTAINER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SLIST_CONTAINER(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4035"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4040"
-></A
-><H3
-><A
-NAME="GTS-IS-SLIST-CONTAINER:CAPS"
-></A
->GTS_IS_SLIST_CONTAINER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_SLIST_CONTAINER(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4048"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4053"
-></A
-><H3
-><A
-NAME="GTSSLISTCONTAINERCLASS"
-></A
->GtsSListContainerClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContainerClass parent_class;
-} GtsSListContainerClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4060"
-></A
-><H3
-><A
-NAME="GTSSLISTCONTAINER"
-></A
->GtsSListContainer</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContainer c;
-
-  GSList * items;
-  gboolean frozen;
-} GtsSListContainer;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4067"
-></A
-><H3
-><A
-NAME="GTS-SLIST-CONTAINER-CLASS"
-></A
->gts_slist_container_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-container-classes.html#GTSSLISTCONTAINERCLASS"
->GtsSListContainerClass</A
->* gts_slist_container_class
-                                            (void);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4076"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-object-class.html"
-><B
-><<< Object class</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-containee-classes.html"
-><B
->Containee classes >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-delaunay-and-constrained-delaunay-triangulations.html b/doc/html/gts-delaunay-and-constrained-delaunay-triangulations.html
deleted file mode 100644
index acba5c6..0000000
--- a/doc/html/gts-delaunay-and-constrained-delaunay-triangulations.html
+++ /dev/null
@@ -1,2046 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Delaunay and constrained Delaunay triangulations</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="PREVIOUS"
-TITLE="Isosurfaces from 3D functions"
-HREF="gts-isosurfaces-from-3d-functions.html"><LINK
-REL="NEXT"
-TITLE="Differential geometry operators"
-HREF="gts-differential-geometry-operators.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-isosurfaces-from-3d-functions.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c12206.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-differential-geometry-operators.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-DELAUNAY-AND-CONSTRAINED-DELAUNAY-TRIANGULATIONS"
-></A
->Delaunay and constrained Delaunay triangulations</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN14488"
-></A
-><H2
->Name</H2
->Delaunay and constrained Delaunay triangulations -- implementation of a dynamic Delaunay triangulation algorithm.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN14491"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-CONSTRAINT-CLASS:CAPS"
->GTS_CONSTRAINT_CLASS</A
->            (klass)
-#define     <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-CONSTRAINT:CAPS"
->GTS_CONSTRAINT</A
->                  (obj)
-#define     <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-IS-CONSTRAINT:CAPS"
->GTS_IS_CONSTRAINT</A
->               (obj)
-            <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINTCLASS"
->GtsConstraintClass</A
->;
-            <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
->GtsConstraint</A
->;
-
-<A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINTCLASS"
->GtsConstraintClass</A
->* <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-CONSTRAINT-CLASS"
->gts_constraint_class</A
->    (void);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-POINT-LOCATE"
->gts_point_locate</A
->                (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *guess);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-ADD-VERTEX"
->gts_delaunay_add_vertex</A
->         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *guess);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-ADD-VERTEX-TO-FACE"
->gts_delaunay_add_vertex_to_face</A
-> (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-REMOVE-VERTEX"
->gts_delaunay_remove_vertex</A
->      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-ADD-CONSTRAINT"
->gts_delaunay_add_constraint</A
->     (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
->GtsConstraint</A
-> *c);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-CHECK"
->gts_delaunay_check</A
->              (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-REMOVE-HULL"
->gts_delaunay_remove_hull</A
->        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-CONFORM"
->gts_delaunay_conform</A
->            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> steiner_max,
-                                             <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->GtsEncroachFunc</A
-> encroaches,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-REFINE"
->gts_delaunay_refine</A
->             (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> steiner_max,
-                                             <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->GtsEncroachFunc</A
-> encroaches,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> encroach_data,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN14544"
-></A
-><H2
->Description</H2
-><P
->The functions described in this section are useful to build two-dimensional Delaunay and constrained Delaunay triangulations. Only the <CODE
-CLASS="PARAMETER"
->x</CODE
-> and <CODE
-CLASS="PARAMETER"
->y</CODE
-> coordinates of the points are taken into account.</P
-><P
->The algorithm is fully dynamic (insertion and deletion) for Delaunay triangulation and semi-dynamic (insertion only of vertices and constraints) for constrained Delaunay triangulation. </P
-><P
->The insertion part uses a very simple jump-and-walk location algorithm which can be used on any (even non-Delaunay) 2D triangulation as long as its boundary is convex.</P
-><P
->The functions <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-CONFORM"
-><CODE
-CLASS="FUNCTION"
->gts_delaunay_conform()</CODE
-></A
-> and <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTS-DELAUNAY-REFINE"
-><CODE
-CLASS="FUNCTION"
->gts_delaunay_refine()</CODE
-></A
-> can be used to build Delaunay conforming constrained triangulations and to refine them.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN14556"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14558"
-></A
-><H3
-><A
-NAME="GTS-CONSTRAINT-CLASS:CAPS"
-></A
->GTS_CONSTRAINT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CONSTRAINT_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsConstraintClass</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14570"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a desscendant of <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsConstraintClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14577"
-></A
-><H3
-><A
-NAME="GTS-CONSTRAINT:CAPS"
-></A
->GTS_CONSTRAINT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CONSTRAINT(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
-><SPAN
-CLASS="TYPE"
->GtsConstraint</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14589"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a descendant of <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
-><SPAN
-CLASS="TYPE"
->GtsConstraint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14596"
-></A
-><H3
-><A
-NAME="GTS-IS-CONSTRAINT:CAPS"
-></A
->GTS_IS_CONSTRAINT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_CONSTRAINT(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
-><SPAN
-CLASS="TYPE"
->GtsConstraint</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14610"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14617"
-></A
-><H3
-><A
-NAME="GTSCONSTRAINTCLASS"
-></A
->GtsConstraintClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsConstraintClass GtsConstraintClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14624"
-></A
-><H3
-><A
-NAME="GTSCONSTRAINT"
-></A
->GtsConstraint</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsConstraint GtsConstraint;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14631"
-></A
-><H3
-><A
-NAME="GTS-CONSTRAINT-CLASS"
-></A
->gts_constraint_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINTCLASS"
->GtsConstraintClass</A
->* gts_constraint_class    (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14641"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsConstraintClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14648"
-></A
-><H3
-><A
-NAME="GTS-POINT-LOCATE"
-></A
->gts_point_locate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_point_locate                (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *guess);</PRE
-><P
->Locates the face of the planar projection of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> containing
-<CODE
-CLASS="PARAMETER"
->p</CODE
->. The planar projection of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> must define a connected set
-of triangles without holes and bounded by a convex boundary. The
-algorithm is randomized and performs in O(n^1/3) expected time
-where n is the number of triangles of <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-><P
->If a good <CODE
-CLASS="PARAMETER"
->guess</CODE
-> is given the point location can be significantly faster.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14667"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14674"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14681"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->guess</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->NULL</TT
-> or a face of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> close to <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14689"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> containing <CODE
-CLASS="PARAMETER"
->p</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->p</CODE
-> is not
-contained within the boundary of <CODE
-CLASS="PARAMETER"
->surface</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14701"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-ADD-VERTEX"
-></A
->gts_delaunay_add_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_delaunay_add_vertex         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *guess);</PRE
-><P
->Adds vertex <CODE
-CLASS="PARAMETER"
->v</CODE
-> to the Delaunay triangulation defined by
-<CODE
-CLASS="PARAMETER"
->surface</CODE
->. If <CODE
-CLASS="PARAMETER"
->v</CODE
-> is not contained in the convex hull bounding
-<CODE
-CLASS="PARAMETER"
->surface</CODE
->, <CODE
-CLASS="PARAMETER"
->v</CODE
-> is not added to the triangulation.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14719"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14726"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14733"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->guess</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->NULL</TT
-> or a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> to be used as an initial
-guess for point location.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14742"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->NULL</TT
-> is <CODE
-CLASS="PARAMETER"
->v</CODE
-> has been successfully added to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> or was
-already contained in <CODE
-CLASS="PARAMETER"
->surface</CODE
->, <CODE
-CLASS="PARAMETER"
->v</CODE
-> if <CODE
-CLASS="PARAMETER"
->v</CODE
-> is not contained in the
-convex hull bounding surface or a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> having the same x and
-y coordinates as <CODE
-CLASS="PARAMETER"
->v</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14756"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-ADD-VERTEX-TO-FACE"
-></A
->gts_delaunay_add_vertex_to_face ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_delaunay_add_vertex_to_face (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);</PRE
-><P
->Adds vertex <CODE
-CLASS="PARAMETER"
->v</CODE
-> to the face <CODE
-CLASS="PARAMETER"
->f</CODE
-> of the Delaunay triangulation defined
-by <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14772"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14779"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14786"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14794"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->NULL</TT
-> is <CODE
-CLASS="PARAMETER"
->v</CODE
-> has been successfully added to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> or was
-already contained in <CODE
-CLASS="PARAMETER"
->surface</CODE
-> or a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> having the same x and
-y coordinates as <CODE
-CLASS="PARAMETER"
->v</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14806"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-REMOVE-VERTEX"
-></A
->gts_delaunay_remove_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_delaunay_remove_vertex      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v);</PRE
-><P
->Removes <CODE
-CLASS="PARAMETER"
->v</CODE
-> from the Delaunay triangulation defined by <CODE
-CLASS="PARAMETER"
->surface</CODE
-> and
-restores the Delaunay property. Vertex <CODE
-CLASS="PARAMETER"
->v</CODE
-> must not be used by any
-constrained edge otherwise the triangulation is not guaranteed to
-be Delaunay.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14821"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14828"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14835"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-ADD-CONSTRAINT"
-></A
->gts_delaunay_add_constraint ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_delaunay_add_constraint     (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
->GtsConstraint</A
-> *c);</PRE
-><P
->Add constraint <CODE
-CLASS="PARAMETER"
->c</CODE
-> to the constrained Delaunay triangulation defined by
-<CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14849"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14856"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
-><SPAN
-CLASS="TYPE"
->GtsConstraint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14863"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html#GTSCONSTRAINT"
-><SPAN
-CLASS="TYPE"
->GtsConstraint</SPAN
-></A
-> conflicting (i.e. intersecting) with <CODE
-CLASS="PARAMETER"
->c</CODE
-> 
-which were removed from <CODE
-CLASS="PARAMETER"
->surface</CODE
-> (<TT
-CLASS="LITERAL"
->NULL</TT
-> if there was none).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14873"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-CHECK"
-></A
->gts_delaunay_check ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_delaunay_check              (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14884"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14891"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->NULL</TT
-> if the planar projection of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> is a Delaunay 
-triangulation (unconstrained), a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> violating the Delaunay
-property otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14900"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-REMOVE-HULL"
-></A
->gts_delaunay_remove_hull ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_delaunay_remove_hull        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
->Removes all the edges of the boundary of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> which are not
-constraints.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14912"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14919"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-CONFORM"
-></A
->gts_delaunay_conform ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_delaunay_conform            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> steiner_max,
-                                             <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->GtsEncroachFunc</A
-> encroaches,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Recursively split constraints of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> which are encroached by
-vertices of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> (see Shewchuk 96 for details). The split
-constraints are destroyed and replaced by a set of new constraints
-of the same class. If <A
-HREF="gts-vertices.html#GTS-VERTEX-ENCROACHES-EDGE"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_encroaches_edge()</CODE
-></A
-> is used for
-<CODE
-CLASS="PARAMETER"
->encroaches</CODE
->, the resulting surface will be Delaunay conforming.</P
-><P
->If <CODE
-CLASS="PARAMETER"
->steiner_max</CODE
-> is positive or nul, the recursive splitting
-procedure will stop when this maximum number of Steiner points is
-reached. In that case the resulting surface will not necessarily be
-Delaunay conforming.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14940"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> describing a constrained Delaunay triangulation.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14947"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->steiner_max</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> maximum number of Steiner points.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14952"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->encroaches</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
-><SPAN
-CLASS="TYPE"
->GtsEncroachFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14959"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user-data to pass to <CODE
-CLASS="PARAMETER"
->encroaches</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14965"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of remaining encroached edges. If <CODE
-CLASS="PARAMETER"
->steiner_max</CODE
->
-is set to a negative value and <A
-HREF="gts-vertices.html#GTS-VERTEX-ENCROACHES-EDGE"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_encroaches_edge()</CODE
-></A
-> is used
-for <CODE
-CLASS="PARAMETER"
->encroaches</CODE
-> this should always be zero. </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14974"
-></A
-><H3
-><A
-NAME="GTS-DELAUNAY-REFINE"
-></A
->gts_delaunay_refine ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_delaunay_refine             (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> steiner_max,
-                                             <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->GtsEncroachFunc</A
-> encroaches,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> encroach_data,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data);</PRE
-><P
->An implementation of the refinement algorithm described in Ruppert
-(1995) and Shewchuk (1996).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14990"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> describing a conforming Delaunay triangulation.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14997"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->steiner_max</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> maximum number of Steiner points.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15002"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->encroaches</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
-><SPAN
-CLASS="TYPE"
->GtsEncroachFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15009"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->encroach_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user-data to pass to <CODE
-CLASS="PARAMETER"
->encroaches</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15015"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
-><SPAN
-CLASS="TYPE"
->GtsKeyFunc</SPAN
-></A
-> used to sort the faces during refinement.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15022"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user-data to pass to <CODE
-CLASS="PARAMETER"
->cost</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15028"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of unrefined faces of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> left. Should be zero
-if <CODE
-CLASS="PARAMETER"
->steiner_max</CODE
-> is set to a negative value.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-isosurfaces-from-3d-functions.html"
-><B
-><<< Isosurfaces from 3D functions</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-differential-geometry-operators.html"
-><B
->Differential geometry operators >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-differential-geometry-operators.html b/doc/html/gts-differential-geometry-operators.html
deleted file mode 100644
index 708c40d..0000000
--- a/doc/html/gts-differential-geometry-operators.html
+++ /dev/null
@@ -1,960 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Differential geometry operators</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="PREVIOUS"
-TITLE="Delaunay and constrained Delaunay triangulations"
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"><LINK
-REL="NEXT"
-TITLE="Progressive and Hierarchical surfaces"
-HREF="c15264.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c12206.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="c15264.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-DIFFERENTIAL-GEOMETRY-OPERATORS"
-></A
->Differential geometry operators</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN15040"
-></A
-><H2
->Name</H2
->Differential geometry operators -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN15043"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-GAUSSIAN-CURVATURE"
->gts_vertex_gaussian_curvature</A
->   (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *Kg);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-MEAN-CURVATURE-NORMAL"
->gts_vertex_mean_curvature_normal</A
->
-                                            (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> Kh);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-PRINCIPAL-CURVATURES"
->gts_vertex_principal_curvatures</A
-> (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> Kh,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> Kg,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *K1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *K2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-PRINCIPAL-DIRECTIONS"
->gts_vertex_principal_directions</A
-> (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> Kh,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> Kg,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> e1,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> e2);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN15070"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN15073"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15075"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-GAUSSIAN-CURVATURE"
-></A
->gts_vertex_gaussian_curvature ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_vertex_gaussian_curvature   (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *Kg);</PRE
-><P
->Computes the Discrete Gaussian Curvature approximation at <CODE
-CLASS="PARAMETER"
->v</CODE
->.</P
-><P
->This approximation is from the paper:
-Discrete Differential-Geometry Operators for Triangulated 2-Manifolds
-Mark Meyer, Mathieu Desbrun, Peter Schroder, Alan H. Barr
-VisMath '02, Berlin (Germany) 
-http://www-grail.usc.edu/pubs.html</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15090"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15097"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15104"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->Kg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the Discrete Gaussian Curvature approximation at <CODE
-CLASS="PARAMETER"
->v</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15110"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the operator could be evaluated, <TT
-CLASS="LITERAL"
->FALSE</TT
-> if the
-evaluation failed for some reason (<CODE
-CLASS="PARAMETER"
->v</CODE
-> is boundary or is the
-endpoint of a non-manifold edge.)</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15118"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-MEAN-CURVATURE-NORMAL"
-></A
->gts_vertex_mean_curvature_normal ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_vertex_mean_curvature_normal
-                                            (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> Kh);</PRE
-><P
->Computes the Discrete Mean Curvature Normal approximation at <CODE
-CLASS="PARAMETER"
->v</CODE
->.
-The mean curvature at <CODE
-CLASS="PARAMETER"
->v</CODE
-> is half the magnitude of the vector <CODE
-CLASS="PARAMETER"
->Kh</CODE
->.</P
-><P
->Note: the normal computed is not unit length, and may point either
-into or out of the surface, depending on the curvature at <CODE
-CLASS="PARAMETER"
->v</CODE
->.  It
-is the responsibility of the caller of the function to use the mean
-curvature normal appropriately.</P
-><P
->This approximation is from the paper:
-Discrete Differential-Geometry Operators for Triangulated 2-Manifolds
-Mark Meyer, Mathieu Desbrun, Peter Schroder, Alan H. Barr
-VisMath '02, Berlin (Germany) 
-http://www-grail.usc.edu/pubs.html</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15137"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15144"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15151"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->Kh</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the Mean Curvature Normal at <CODE
-CLASS="PARAMETER"
->v</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15157"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the operator could be evaluated, <TT
-CLASS="LITERAL"
->FALSE</TT
-> if the
-evaluation failed for some reason (<CODE
-CLASS="PARAMETER"
->v</CODE
-> is boundary or is the
-endpoint of a non-manifold edge.)</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15165"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-PRINCIPAL-CURVATURES"
-></A
->gts_vertex_principal_curvatures ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_vertex_principal_curvatures (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> Kh,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> Kg,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *K1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *K2);</PRE
-><P
->Computes the principal curvatures at a point given the mean and
-Gaussian curvatures at that point.  </P
-><P
->The mean curvature can be computed as one-half the magnitude of the
-vector computed by <A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-MEAN-CURVATURE-NORMAL"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_mean_curvature_normal()</CODE
-></A
->.</P
-><P
->The Gaussian curvature can be computed with
-<A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-GAUSSIAN-CURVATURE"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_gaussian_curvature()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15185"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->Kh</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> mean curvature.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15190"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->Kg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> Gaussian curvature.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15195"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->K1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> first principal curvature.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15200"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->K2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> second principal curvature.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15205"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-PRINCIPAL-DIRECTIONS"
-></A
->gts_vertex_principal_directions ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_vertex_principal_directions (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> Kh,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> Kg,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> e1,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> e2);</PRE
-><P
->Computes the principal curvature directions at a point given <CODE
-CLASS="PARAMETER"
->Kh</CODE
->
-and <CODE
-CLASS="PARAMETER"
->Kg</CODE
->, the mean curvature normal and Gaussian curvatures at that
-point, computed with <A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-MEAN-CURVATURE-NORMAL"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_mean_curvature_normal()</CODE
-></A
-> and
-<A
-HREF="gts-differential-geometry-operators.html#GTS-VERTEX-GAUSSIAN-CURVATURE"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_gaussian_curvature()</CODE
-></A
->, respectively. </P
-><P
->Note that this computation is very approximate and tends to be
-unstable.  Smoothing of the surface or the principal directions may
-be necessary to achieve reasonable results.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15228"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15235"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15242"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->Kh</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> mean curvature normal (a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15249"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->Kg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> Gaussian curvature (a gdouble).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15254"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> first principal curvature direction (direction of largest curvature).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15259"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> second principal curvature direction.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"
-><B
-><<< Delaunay and constrained Delaunay triangulations</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="c15264.html"
-><B
->Progressive and Hierarchical surfaces >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-edges.html b/doc/html/gts-edges.html
deleted file mode 100644
index 6753189..0000000
--- a/doc/html/gts-edges.html
+++ /dev/null
@@ -1,2651 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Edges</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Segments"
-HREF="gts-segments.html"><LINK
-REL="NEXT"
-TITLE="Triangles"
-HREF="gts-triangles.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-segments.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-triangles.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-EDGES"
-></A
->Edges</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN6572"
-></A
-><H2
->Name</H2
->Edges -- edge object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN6575"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-edges.html#GTS-EDGE-CLASS:CAPS"
->GTS_EDGE_CLASS</A
->                  (klass)
-#define     <A
-HREF="gts-edges.html#GTS-EDGE:CAPS"
->GTS_EDGE</A
->                        (obj)
-#define     <A
-HREF="gts-edges.html#GTS-IS-EDGE:CAPS"
->GTS_IS_EDGE</A
->                     (obj)
-            <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
->;
-            <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->;
-
-<A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
->* <A
-HREF="gts-edges.html#GTS-EDGE-CLASS"
->gts_edge_class</A
->                (void);
-<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    <A
-HREF="gts-edges.html#GTS-EDGE-NEW"
->gts_edge_new</A
->                    (<A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-edges.html#GTS-EDGE-REPLACE"
->gts_edge_replace</A
->                (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *with);
-#define     <A
-HREF="gts-edges.html#GTS-EDGE-IS-UNATTACHED"
->gts_edge_is_unattached</A
->          (s)
-<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    <A
-HREF="gts-edges.html#GTS-EDGE-IS-DUPLICATE"
->gts_edge_is_duplicate</A
->           (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-edges.html#GTS-EDGE-HAS-PARENT-SURFACE"
->gts_edge_has_parent_surface</A
->     (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-edges.html#GTS-EDGE-HAS-ANY-PARENT-SURFACE"
->gts_edge_has_any_parent_surface</A
-> (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-edges.html#GTS-EDGE-IS-BOUNDARY"
->gts_edge_is_boundary</A
->            (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-edges.html#GTS-EDGE-IS-CONTACT"
->gts_edge_is_contact</A
->             (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-edges.html#GTS-EDGE-BELONGS-TO-TETRAHEDRON"
->gts_edge_belongs_to_tetrahedron</A
-> (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-edges.html#GTS-EDGE-FACE-NUMBER"
->gts_edge_face_number</A
->            (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-edges.html#GTS-EDGE-MANIFOLD-FACES"
->gts_edge_manifold_faces</A
->         (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> **f1,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> **f2);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    (<A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->*GtsEncroachFunc</A
->)              (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-edges.html#GTS-EDGE-IS-ENCROACHED"
->gts_edge_is_encroached</A
->          (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->GtsEncroachFunc</A
-> encroaches,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
->*      <A
-HREF="gts-edges.html#GTS-EDGES-MERGE"
->gts_edges_merge</A
->                 (<GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
-> *edges);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-edges.html#GTS-EDGES-FROM-VERTICES"
->gts_edges_from_vertices</A
->         (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *vertices,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *parent);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-edges.html#GTS-EDGE-SWAP"
->gts_edge_swap</A
->                   (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN6648"
-></A
-><H2
->Description</H2
-><P
->Edges are derived from <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->. They are used to define <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN6655"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6657"
-></A
-><H3
-><A
-NAME="GTS-EDGE-CLASS:CAPS"
-></A
->GTS_EDGE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_EDGE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6665"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6670"
-></A
-><H3
-><A
-NAME="GTS-EDGE:CAPS"
-></A
->GTS_EDGE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_EDGE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6678"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6683"
-></A
-><H3
-><A
-NAME="GTS-IS-EDGE:CAPS"
-></A
->GTS_IS_EDGE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_EDGE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6691"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6696"
-></A
-><H3
-><A
-NAME="GTSEDGECLASS"
-></A
->GtsEdgeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSegmentClass parent_class;
-} GtsEdgeClass;</PRE
-><P
->The edge class. No virtual function associated.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6703"
-></A
-><H3
-><A
-NAME="GTSEDGE"
-></A
->GtsEdge</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSegment segment;
-
-  GSList * triangles;
-} GtsEdge;</PRE
-><P
->The edge object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6711"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> <CODE
-CLASS="STRUCTFIELD"
->segment</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6717"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->triangles</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->List of <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> using this edge.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6725"
-></A
-><H3
-><A
-NAME="GTS-EDGE-CLASS"
-></A
->gts_edge_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
->* gts_edge_class                (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6735"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-edges.html#GTSEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6742"
-></A
-><H3
-><A
-NAME="GTS-EDGE-NEW"
-></A
->gts_edge_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    gts_edge_new                    (<A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6755"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6762"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6769"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6776"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> linking <CODE
-CLASS="PARAMETER"
->v1</CODE
-> and <CODE
-CLASS="PARAMETER"
->v2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6785"
-></A
-><H3
-><A
-NAME="GTS-EDGE-REPLACE"
-></A
->gts_edge_replace ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_edge_replace                (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *with);</PRE
-><P
->Replaces <CODE
-CLASS="PARAMETER"
->e</CODE
-> with <CODE
-CLASS="PARAMETER"
->with</CODE
->. For each triangle which uses <CODE
-CLASS="PARAMETER"
->e</CODE
-> as an
-edge, <CODE
-CLASS="PARAMETER"
->e</CODE
-> is replaced with <CODE
-CLASS="PARAMETER"
->with</CODE
->. The <CODE
-CLASS="PARAMETER"
->with</CODE
->->triangles list is
-updated appropriately and the <CODE
-CLASS="PARAMETER"
->e</CODE
->->triangles list is freed and set
-to <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6805"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6812"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->with</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6819"
-></A
-><H3
-><A
-NAME="GTS-EDGE-IS-UNATTACHED"
-></A
->gts_edge_is_unattached()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define       gts_edge_is_unattached(s) ((s)->triangles == NULL ? TRUE : FALSE)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if no triangles uses <CODE
-CLASS="PARAMETER"
->s</CODE
-> as an edge, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6831"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6838"
-></A
-><H3
-><A
-NAME="GTS-EDGE-IS-DUPLICATE"
-></A
->gts_edge_is_duplicate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    gts_edge_is_duplicate           (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6849"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6856"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the first <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> different from <CODE
-CLASS="PARAMETER"
->e</CODE
-> which shares the
-same endpoints or <TT
-CLASS="LITERAL"
->NULL</TT
-> if there is none.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6865"
-></A
-><H3
-><A
-NAME="GTS-EDGE-HAS-PARENT-SURFACE"
-></A
->gts_edge_has_parent_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_edge_has_parent_surface     (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6877"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6884"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6891"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> having <CODE
-CLASS="PARAMETER"
->e</CODE
-> as an edge, <TT
-CLASS="LITERAL"
->NULL</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6901"
-></A
-><H3
-><A
-NAME="GTS-EDGE-HAS-ANY-PARENT-SURFACE"
-></A
->gts_edge_has_any_parent_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_edge_has_any_parent_surface (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6912"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6919"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->e</CODE
-> is not an edge of any triangle or if all the
-faces having <CODE
-CLASS="PARAMETER"
->e</CODE
-> has an edge do not belong to any surface,
-a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> belonging to a surface and having <CODE
-CLASS="PARAMETER"
->e</CODE
-> as an edge.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6930"
-></A
-><H3
-><A
-NAME="GTS-EDGE-IS-BOUNDARY"
-></A
->gts_edge_is_boundary ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_edge_is_boundary            (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6942"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6949"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6957"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the unique <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> (which belongs to <CODE
-CLASS="PARAMETER"
->surface</CODE
->) and which
-has <CODE
-CLASS="PARAMETER"
->e</CODE
-> as an edge (i.e. <CODE
-CLASS="PARAMETER"
->e</CODE
-> is a boundary edge (of <CODE
-CLASS="PARAMETER"
->surface</CODE
->)) or <TT
-CLASS="LITERAL"
->NULL</TT
-> 
-if there is more than one or no faces (belonging to <CODE
-CLASS="PARAMETER"
->surface</CODE
->) and
-with <CODE
-CLASS="PARAMETER"
->e</CODE
-> as an edge.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6971"
-></A
-><H3
-><A
-NAME="GTS-EDGE-IS-CONTACT"
-></A
->gts_edge_is_contact ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_edge_is_contact             (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6982"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6989"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of sets of connected triangles sharing <CODE
-CLASS="PARAMETER"
->e</CODE
-> as a
-contact edge.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6995"
-></A
-><H3
-><A
-NAME="GTS-EDGE-BELONGS-TO-TETRAHEDRON"
-></A
->gts_edge_belongs_to_tetrahedron ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_edge_belongs_to_tetrahedron (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7006"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7013"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->e</CODE
-> is used by faces forming a tetrahedron, <TT
-CLASS="LITERAL"
->FALSE</TT
->
-otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7021"
-></A
-><H3
-><A
-NAME="GTS-EDGE-FACE-NUMBER"
-></A
->gts_edge_face_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_edge_face_number            (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7033"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7040"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7047"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of faces using <CODE
-CLASS="PARAMETER"
->e</CODE
-> and belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7054"
-></A
-><H3
-><A
-NAME="GTS-EDGE-MANIFOLD-FACES"
-></A
->gts_edge_manifold_faces ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_edge_manifold_faces         (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> **f1,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> **f2);</PRE
-><P
->If <CODE
-CLASS="PARAMETER"
->e</CODE
-> is a manifold edge of surface <CODE
-CLASS="PARAMETER"
->s</CODE
->, fills <CODE
-CLASS="PARAMETER"
->f1</CODE
-> and <CODE
-CLASS="PARAMETER"
->f2</CODE
-> with the
-faces belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
-> and sharing <CODE
-CLASS="PARAMETER"
->e</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7074"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7081"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7088"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> pointer for first face.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7093"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> pointer for second face.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7098"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->e</CODE
-> is a manifold edge, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7106"
-></A
-><H3
-><A
-NAME="GTSENCROACHFUNC"
-></A
->GtsEncroachFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    (*GtsEncroachFunc)              (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7119"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7124"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7129"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7134"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7139"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7144"
-></A
-><H3
-><A
-NAME="GTS-EDGE-IS-ENCROACHED"
-></A
->gts_edge_is_encroached ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_edge_is_encroached          (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
->GtsEncroachFunc</A
-> encroaches,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7158"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7165"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> describing a (constrained) Delaunay triangulation.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7172"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->encroaches</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSENCROACHFUNC"
-><SPAN
-CLASS="TYPE"
->GtsEncroachFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7179"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->encroaches</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7185"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
-> and encroaching upon <CODE
-CLASS="PARAMETER"
->e</CODE
->
-(as defined by <CODE
-CLASS="PARAMETER"
->encroaches</CODE
->) or <TT
-CLASS="LITERAL"
->NULL</TT
-> if there is none.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7196"
-></A
-><H3
-><A
-NAME="GTS-EDGES-MERGE"
-></A
->gts_edges_merge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
->*      gts_edges_merge                 (<GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
-> *edges);</PRE
-><P
->For each edge in <CODE
-CLASS="PARAMETER"
->edges</CODE
-> check if it is duplicated (as
-returned by <A
-HREF="gts-edges.html#GTS-EDGE-IS-DUPLICATE"
-><CODE
-CLASS="FUNCTION"
->gts_edge_is_duplicate()</CODE
-></A
->). If it is replace it by its
-duplicate, destroy it and remove it from the list.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7210"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edges</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7217"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the updated <CODE
-CLASS="PARAMETER"
->edges</CODE
-> list.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7223"
-></A
-><H3
-><A
-NAME="GTS-EDGES-FROM-VERTICES"
-></A
->gts_edges_from_vertices ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_edges_from_vertices         (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *vertices,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *parent);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7235"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vertices</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7242"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->parent</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7249"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of unique <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> which have one of their vertices in 
-<CODE
-CLASS="PARAMETER"
->vertices</CODE
-> and are used by a face of <CODE
-CLASS="PARAMETER"
->parent</CODE
->. </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7258"
-></A
-><H3
-><A
-NAME="GTS-EDGE-SWAP"
-></A
->gts_edge_swap ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_edge_swap                   (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
->Performs an "edge swap" on the two triangles sharing <CODE
-CLASS="PARAMETER"
->e</CODE
-> and
-belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7272"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7279"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-segments.html"
-><B
-><<< Segments</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-triangles.html"
-><B
->Triangles >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-extended-binary-heaps.html b/doc/html/gts-extended-binary-heaps.html
deleted file mode 100644
index ae3f6b6..0000000
--- a/doc/html/gts-extended-binary-heaps.html
+++ /dev/null
@@ -1,2091 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Extended binary heaps</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="PREVIOUS"
-TITLE="Binary heaps"
-HREF="gts-binary-heaps.html"><LINK
-REL="NEXT"
-TITLE="First In First Out heaps"
-HREF="gts-first-in-first-out-heaps.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-binary-heaps.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c4.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-first-in-first-out-heaps.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-EXTENDED-BINARY-HEAPS"
-></A
->Extended binary heaps</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN287"
-></A
-><H2
->Name</H2
->Extended binary heaps -- efficient data structure for priority heaps allowing removal of elements.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN290"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-            <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
->;
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     (<A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->*GtsKeyFunc</A
->)                   (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> item,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-            <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
->;
-
-<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
->*   <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-NEW"
->gts_eheap_new</A
->                   (<A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> key_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
->* <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-INSERT"
->gts_eheap_insert</A
->              (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p);
-<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
->* <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-INSERT-WITH-KEY"
->gts_eheap_insert_with_key</A
->     (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> key);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-TOP"
->gts_eheap_top</A
->                   (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *key);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-REMOVE-TOP"
->gts_eheap_remove_top</A
->            (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *key);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-REMOVE"
->gts_eheap_remove</A
->                (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
-> *p);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-DECREASE-KEY"
->gts_eheap_decrease_key</A
->          (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> new_key);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-KEY"
->gts_eheap_key</A
->                   (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-RANDOMIZED"
->gts_eheap_randomized</A
->            (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> randomized);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-UPDATE"
->gts_eheap_update</A
->                (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-FREEZE"
->gts_eheap_freeze</A
->                (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-THAW"
->gts_eheap_thaw</A
->                  (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-FOREACH"
->gts_eheap_foreach</A
->               (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GFUNC"
->GFunc</GTKDOCLINK
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-SIZE"
->gts_eheap_size</A
->                  (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-DESTROY"
->gts_eheap_destroy</A
->               (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN357"
-></A
-><H2
->Description</H2
-><P
->This data structure is similar to the binary heap implementation but adds the two operations <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-DECREASE-KEY"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_decrease_key()</CODE
-></A
-> and <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-REMOVE"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_remove()</CODE
-></A
->. Contrary to the binary heap implementation, keys are stored in a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
-><SPAN
-CLASS="TYPE"
->GtsEHeapPair</SPAN
-></A
-> structure and comparisons between keys are performed directly (thus saving a call to a comparison function). This structure consequently provides generally faster operations at the expense of memory use. If your comparison function is simple and you don't need the extra functionalities, it is usually better to use a <A
-HREF="gts-binary-heaps.html#GTSHEAP"
-><SPAN
-CLASS="TYPE"
->GtsHeap</SPAN
-></A
->.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN368"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN370"
-></A
-><H3
-><A
-NAME="GTSEHEAPPAIR"
-></A
->GtsEHeapPair</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  gpointer data;
-  gdouble key;
-  guint pos;
-} GtsEHeapPair;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN377"
-></A
-><H3
-><A
-NAME="GTSKEYFUNC"
-></A
->GtsKeyFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     (*GtsKeyFunc)                   (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> item,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN389"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->item</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> A pointer to an item to be stored in the heap.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN394"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> User data passed to <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_new()</CODE
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN401"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the value of the key for the given item.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN406"
-></A
-><H3
-><A
-NAME="GTSEHEAP"
-></A
->GtsEHeap</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsEHeap GtsEHeap;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN413"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-NEW"
-></A
->gts_eheap_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
->*   gts_eheap_new                   (<A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> key_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN425"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->key_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
-><SPAN
-CLASS="TYPE"
->GtsKeyFunc</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN433"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->key_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN439"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
-> using <CODE
-CLASS="PARAMETER"
->key_func</CODE
-> as key.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN447"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-INSERT"
-></A
->gts_eheap_insert ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
->* gts_eheap_insert              (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p);</PRE
-><P
->Inserts a new element <CODE
-CLASS="PARAMETER"
->p</CODE
-> in the heap.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN460"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN467"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to add to the heap.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN472"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
-><SPAN
-CLASS="TYPE"
->GtsEHeapPair</SPAN
-></A
-> describing the position of the element in the heap.
-This pointer is necessary for <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-REMOVE"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_remove()</CODE
-></A
-> and 
-<A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-DECREASE-KEY"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_decrease_key()</CODE
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN483"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-INSERT-WITH-KEY"
-></A
->gts_eheap_insert_with_key ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
->* gts_eheap_insert_with_key     (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> key);</PRE
-><P
->Inserts a new element <CODE
-CLASS="PARAMETER"
->p</CODE
-> in the heap.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN497"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN504"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to add to the heap.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN509"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->key</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the value of the key associated to <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN515"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
-><SPAN
-CLASS="TYPE"
->GtsEHeapPair</SPAN
-></A
-> describing the position of the element in the heap.
-This pointer is necessary for <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-REMOVE"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_remove()</CODE
-></A
-> and 
-<A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-DECREASE-KEY"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_decrease_key()</CODE
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN526"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-TOP"
-></A
->gts_eheap_top ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_eheap_top                   (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *key);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN538"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN545"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->key</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a gdouble or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN551"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the element at the top of the heap and optionally (if <CODE
-CLASS="PARAMETER"
->key</CODE
-> is not
-<TT
-CLASS="LITERAL"
->NULL</TT
->) its key.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN558"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-REMOVE-TOP"
-></A
->gts_eheap_remove_top ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_eheap_remove_top            (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *key);</PRE
-><P
->Removes the element at the top of the heap and optionally (if <CODE
-CLASS="PARAMETER"
->key</CODE
-> is not
-<TT
-CLASS="LITERAL"
->NULL</TT
->) returns the value of its key.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN572"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN579"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->key</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a gdouble or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN585"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the element at the top of the heap.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN590"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-REMOVE"
-></A
->gts_eheap_remove ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_eheap_remove                (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
-> *p);</PRE
-><P
->Removes element corresponding to <CODE
-CLASS="PARAMETER"
->p</CODE
-> from <CODE
-CLASS="PARAMETER"
->heap</CODE
-> in O(log n).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN604"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN611"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
-><SPAN
-CLASS="TYPE"
->GtsEHeapPair</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN618"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the element just removed from <CODE
-CLASS="PARAMETER"
->heap</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN624"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-DECREASE-KEY"
-></A
->gts_eheap_decrease_key ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_decrease_key          (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> new_key);</PRE
-><P
->Decreases the value of the key of the element at position <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN638"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN645"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
-><SPAN
-CLASS="TYPE"
->GtsEHeapPair</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN652"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->new_key</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new value of the key for this element. Must be smaller than
-the current key.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN657"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-KEY"
-></A
->gts_eheap_key ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_eheap_key                   (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> p);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN669"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN676"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to be tested;</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN681"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the value of the key for pointer <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN687"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-RANDOMIZED"
-></A
->gts_eheap_randomized ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_randomized            (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> randomized);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN699"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN706"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->randomized</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> whether <CODE
-CLASS="PARAMETER"
->heap</CODE
-> should be randomized.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN712"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-UPDATE"
-></A
->gts_eheap_update ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_update                (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-><P
->Updates the key of each element of <CODE
-CLASS="PARAMETER"
->heap</CODE
-> and reorders it.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN724"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN731"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-FREEZE"
-></A
->gts_eheap_freeze ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_freeze                (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-><P
->Freezes the heap. Any subsequent operation will not preserve the heap
-property. Used in conjunction with <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-INSERT"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_insert()</CODE
-></A
-> and <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-THAW"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_thaw()</CODE
-></A
->
-to create a heap in O(n) time.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN746"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN753"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-THAW"
-></A
->gts_eheap_thaw ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_thaw                  (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-><P
->If <CODE
-CLASS="PARAMETER"
->heap</CODE
-> has been frozen previously using <A
-HREF="gts-extended-binary-heaps.html#GTS-EHEAP-FREEZE"
-><CODE
-CLASS="FUNCTION"
->gts_eheap_freeze()</CODE
-></A
->, reorder it
-in O(n) time and unfreeze it.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN767"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN774"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-FOREACH"
-></A
->gts_eheap_foreach ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_foreach               (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap,
-                                             <GTKDOCLINK
-HREF="GFUNC"
->GFunc</GTKDOCLINK
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN787"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN794"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function to call for each element in the heap.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN799"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> to pass to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN805"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-SIZE"
-></A
->gts_eheap_size ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_eheap_size                  (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN816"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN823"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of items in <CODE
-CLASS="PARAMETER"
->heap</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN829"
-></A
-><H3
-><A
-NAME="GTS-EHEAP-DESTROY"
-></A
->gts_eheap_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_eheap_destroy               (<A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-><P
->Free all the memory allocated for <CODE
-CLASS="PARAMETER"
->heap</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN841"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-binary-heaps.html"
-><B
-><<< Binary heaps</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-first-in-first-out-heaps.html"
-><B
->First In First Out heaps >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-faces.html b/doc/html/gts-faces.html
deleted file mode 100644
index 0444323..0000000
--- a/doc/html/gts-faces.html
+++ /dev/null
@@ -1,1593 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Faces</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Triangles"
-HREF="gts-triangles.html"><LINK
-REL="NEXT"
-TITLE="Surfaces"
-HREF="gts-surfaces.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-triangles.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-surfaces.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-FACES"
-></A
->Faces</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN8556"
-></A
-><H2
->Name</H2
->Faces -- face object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN8559"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-faces.html#GTS-FACE-CLASS:CAPS"
->GTS_FACE_CLASS</A
->                  (klass)
-#define     <A
-HREF="gts-faces.html#GTS-FACE:CAPS"
->GTS_FACE</A
->                        (obj)
-#define     <A
-HREF="gts-faces.html#GTS-IS-FACE:CAPS"
->GTS_IS_FACE</A
->                     (obj)
-            <A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
->;
-            <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->;
-
-<A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
->* <A
-HREF="gts-faces.html#GTS-FACE-CLASS"
->gts_face_class</A
->                (void);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-faces.html#GTS-FACE-NEW"
->gts_face_new</A
->                    (<A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
-> *klass,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-faces.html#GTS-FACE-HAS-PARENT-SURFACE"
->gts_face_has_parent_surface</A
->     (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-faces.html#GTS-FACE-NEIGHBOR-NUMBER"
->gts_face_neighbor_number</A
->        (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-faces.html#GTS-FACE-NEIGHBORS"
->gts_face_neighbors</A
->              (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-faces.html#GTS-FACE-FOREACH-NEIGHBOR"
->gts_face_foreach_neighbor</A
->       (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-faces.html#GTS-FACE-IS-COMPATIBLE"
->gts_face_is_compatible</A
->          (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-faces.html#GTS-FACES-FROM-EDGES"
->gts_faces_from_edges</A
->            (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *edges,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN8601"
-></A
-><H2
->Description</H2
-><P
->Faces are derived from <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->. A collection of faces defined a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN8608"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8610"
-></A
-><H3
-><A
-NAME="GTS-FACE-CLASS:CAPS"
-></A
->GTS_FACE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_FACE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8618"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8623"
-></A
-><H3
-><A
-NAME="GTS-FACE:CAPS"
-></A
->GTS_FACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_FACE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8631"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8636"
-></A
-><H3
-><A
-NAME="GTS-IS-FACE:CAPS"
-></A
->GTS_IS_FACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_FACE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8644"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8649"
-></A
-><H3
-><A
-NAME="GTSFACECLASS"
-></A
->GtsFaceClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsTriangleClass parent_class;
-} GtsFaceClass;</PRE
-><P
->The face class derived from <A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
-><SPAN
-CLASS="TYPE"
->GtsTriangleClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8658"
-></A
-><H3
-><A
-NAME="GTSFACE"
-></A
->GtsFace</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsTriangle triangle;
-
-  GSList * surfaces;
-} GtsFace;</PRE
-><P
->The face object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8666"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> <CODE
-CLASS="STRUCTFIELD"
->triangle</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8672"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->surfaces</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->A list of <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> using this face.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8680"
-></A
-><H3
-><A
-NAME="GTS-FACE-CLASS"
-></A
->gts_face_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
->* gts_face_class                (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8690"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-faces.html#GTSFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsFaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8697"
-></A
-><H3
-><A
-NAME="GTS-FACE-NEW"
-></A
->gts_face_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_face_new                    (<A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
-> *klass,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8711"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsFaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8718"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8725"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8732"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8739"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> using <CODE
-CLASS="PARAMETER"
->e1</CODE
->, <CODE
-CLASS="PARAMETER"
->e2</CODE
-> and <CODE
-CLASS="PARAMETER"
->e3</CODE
-> as edges.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8749"
-></A
-><H3
-><A
-NAME="GTS-FACE-HAS-PARENT-SURFACE"
-></A
->gts_face_has_parent_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_face_has_parent_surface     (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8761"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8768"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8775"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->f</CODE
-> belongs to <CODE
-CLASS="PARAMETER"
->s</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8784"
-></A
-><H3
-><A
-NAME="GTS-FACE-NEIGHBOR-NUMBER"
-></A
->gts_face_neighbor_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_face_neighbor_number        (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8796"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8803"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8811"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of faces neighbors of <CODE
-CLASS="PARAMETER"
->f</CODE
-> and belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8818"
-></A
-><H3
-><A
-NAME="GTS-FACE-NEIGHBORS"
-></A
->gts_face_neighbors ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_face_neighbors              (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8830"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8837"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8845"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of unique <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> neighbors of <CODE
-CLASS="PARAMETER"
->f</CODE
-> and belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8854"
-></A
-><H3
-><A
-NAME="GTS-FACE-FOREACH-NEIGHBOR"
-></A
->gts_face_foreach_neighbor ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_face_foreach_neighbor       (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each neighbor of <CODE
-CLASS="PARAMETER"
->f</CODE
-> belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
-> (if not <TT
-CLASS="LITERAL"
->NULL</TT
->).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8872"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8879"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8887"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8894"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8900"
-></A
-><H3
-><A
-NAME="GTS-FACE-IS-COMPATIBLE"
-></A
->gts_face_is_compatible ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_face_is_compatible          (<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8912"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8919"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8926"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->f</CODE
-> is compatible with all its neighbors belonging
-to <CODE
-CLASS="PARAMETER"
->s</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8935"
-></A
-><H3
-><A
-NAME="GTS-FACES-FROM-EDGES"
-></A
->gts_faces_from_edges ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_faces_from_edges            (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *edges,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
->Builds a list of unique faces which belong to <CODE
-CLASS="PARAMETER"
->s</CODE
-> and have
-one of their edges in <CODE
-CLASS="PARAMETER"
->edges</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8949"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edges</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8956"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8964"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the list of faces.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-triangles.html"
-><B
-><<< Triangles</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-surfaces.html"
-><B
->Surfaces >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-first-in-first-out-heaps.html b/doc/html/gts-first-in-first-out-heaps.html
deleted file mode 100644
index 541576e..0000000
--- a/doc/html/gts-first-in-first-out-heaps.html
+++ /dev/null
@@ -1,1167 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->First In First Out heaps</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="PREVIOUS"
-TITLE="Extended binary heaps"
-HREF="gts-extended-binary-heaps.html"><LINK
-REL="NEXT"
-TITLE="Vectors and matrices"
-HREF="gts-vectors-and-matrices.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-extended-binary-heaps.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c4.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-vectors-and-matrices.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-FIRST-IN-FIRST-OUT-HEAPS"
-></A
->First In First Out heaps</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN853"
-></A
-><H2
->Name</H2
->First In First Out heaps -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN856"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-            <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
->;
-
-<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
->*    <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-NEW"
->gts_fifo_new</A
->                    (void);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-PUSH"
->gts_fifo_push</A
->                   (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-POP"
->gts_fifo_pop</A
->                    (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-TOP"
->gts_fifo_top</A
->                    (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-SIZE"
->gts_fifo_size</A
->                   (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-FOREACH"
->gts_fifo_foreach</A
->                (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-IS-EMPTY"
->gts_fifo_is_empty</A
->               (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-REVERSE"
->gts_fifo_reverse</A
->                (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-WRITE"
->gts_fifo_write</A
->                  (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-DESTROY"
->gts_fifo_destroy</A
->                (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN893"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN896"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN898"
-></A
-><H3
-><A
-NAME="GTSFIFO"
-></A
->GtsFifo</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsFifo GtsFifo;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN905"
-></A
-><H3
-><A
-NAME="GTS-FIFO-NEW"
-></A
->gts_fifo_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
->*    gts_fifo_new                    (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN915"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN922"
-></A
-><H3
-><A
-NAME="GTS-FIFO-PUSH"
-></A
->gts_fifo_push ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_fifo_push                   (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Push <CODE
-CLASS="PARAMETER"
->data</CODE
-> into <CODE
-CLASS="PARAMETER"
->fifo</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN936"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN943"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to add to <CODE
-CLASS="PARAMETER"
->fifo</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN949"
-></A
-><H3
-><A
-NAME="GTS-FIFO-POP"
-></A
->gts_fifo_pop ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_fifo_pop                    (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-><P
->Removes the first element from <CODE
-CLASS="PARAMETER"
->fifo</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN961"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN968"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the first element in <CODE
-CLASS="PARAMETER"
->fifo</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->fifo</CODE
-> is empty.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN976"
-></A
-><H3
-><A
-NAME="GTS-FIFO-TOP"
-></A
->gts_fifo_top ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_fifo_top                    (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN987"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN994"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the first element in <CODE
-CLASS="PARAMETER"
->fifo</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->fifo</CODE
-> is empty.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1002"
-></A
-><H3
-><A
-NAME="GTS-FIFO-SIZE"
-></A
->gts_fifo_size ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_fifo_size                   (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1013"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1020"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of elements in <CODE
-CLASS="PARAMETER"
->fifo</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1026"
-></A
-><H3
-><A
-NAME="GTS-FIFO-FOREACH"
-></A
->gts_fifo_foreach ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_fifo_foreach                (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> in order for each item in <CODE
-CLASS="PARAMETER"
->fifo</CODE
->, passing <CODE
-CLASS="PARAMETER"
->data</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1042"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1049"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1056"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1062"
-></A
-><H3
-><A
-NAME="GTS-FIFO-IS-EMPTY"
-></A
->gts_fifo_is_empty ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_fifo_is_empty               (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1073"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1080"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->fifo</CODE
-> is empty, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1088"
-></A
-><H3
-><A
-NAME="GTS-FIFO-REVERSE"
-></A
->gts_fifo_reverse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_fifo_reverse                (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-><P
->Reverses the order of elements in <CODE
-CLASS="PARAMETER"
->fifo</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1100"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1107"
-></A
-><H3
-><A
-NAME="GTS-FIFO-WRITE"
-></A
->gts_fifo_write ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_fifo_write                  (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);</PRE
-><P
->Writes the content of <CODE
-CLASS="PARAMETER"
->fifo</CODE
-> in <CODE
-CLASS="PARAMETER"
->fp</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1121"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1128"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1133"
-></A
-><H3
-><A
-NAME="GTS-FIFO-DESTROY"
-></A
->gts_fifo_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_fifo_destroy                (<A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
->GtsFifo</A
-> *fifo);</PRE
-><P
->Frees all the memory allocated for <CODE
-CLASS="PARAMETER"
->fifo</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1145"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fifo</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-first-in-first-out-heaps.html#GTSFIFO"
-><SPAN
-CLASS="TYPE"
->GtsFifo</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-extended-binary-heaps.html"
-><B
-><<< Extended binary heaps</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-vectors-and-matrices.html"
-><B
->Vectors and matrices >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-graph-class.html b/doc/html/gts-graph-class.html
deleted file mode 100644
index b14509e..0000000
--- a/doc/html/gts-graph-class.html
+++ /dev/null
@@ -1,5154 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Graph class</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Graph and operations on graphs"
-HREF="c17114.html"><LINK
-REL="PREVIOUS"
-TITLE="Graph and operations on graphs"
-HREF="c17114.html"><LINK
-REL="NEXT"
-TITLE="Weighted graph"
-HREF="gts-weighted-graph.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="c17114.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c17114.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-weighted-graph.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-GRAPH-CLASS"
-></A
->Graph class</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN17121"
-></A
-><H2
->Name</H2
->Graph class -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN17124"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-graph-class.html#GTS-GNODE-CLASS:CAPS"
->GTS_GNODE_CLASS</A
->                 (klass)
-#define     <A
-HREF="gts-graph-class.html#GTS-GNODE:CAPS"
->GTS_GNODE</A
->                       (obj)
-#define     <A
-HREF="gts-graph-class.html#GTS-IS-GNODE:CAPS"
->GTS_IS_GNODE</A
->                    (obj)
-#define     <A
-HREF="gts-graph-class.html#GTS-GNODE-NEIGHBOR:CAPS"
->GTS_GNODE_NEIGHBOR</A
->              (n,e)
-            <A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
->;
-            <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->;
-
-<A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
->* <A
-HREF="gts-graph-class.html#GTS-GNODE-CLASS"
->gts_gnode_class</A
->              (void);
-<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   <A
-HREF="gts-graph-class.html#GTS-GNODE-NEW"
->gts_gnode_new</A
->                   (<A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
-> *klass);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-graph-class.html#GTS-GNODE-DEGREE"
->gts_gnode_degree</A
->                (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GNODE-FOREACH-EDGE"
->gts_gnode_foreach_edge</A
->          (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GNODE-FOREACH-NEIGHBOR"
->gts_gnode_foreach_neighbor</A
->      (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-class.html#GTS-GNODE-WEIGHT"
->gts_gnode_weight</A
->                (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-class.html#GTS-GNODE-MOVE-COST"
->gts_gnode_move_cost</A
->             (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *src,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *dst);
-
-#define     <A
-HREF="gts-graph-class.html#GTS-GEDGE-CLASS:CAPS"
->GTS_GEDGE_CLASS</A
->                 (klass)
-#define     <A
-HREF="gts-graph-class.html#GTS-GEDGE:CAPS"
->GTS_GEDGE</A
->                       (obj)
-#define     <A
-HREF="gts-graph-class.html#GTS-IS-GEDGE:CAPS"
->GTS_IS_GEDGE</A
->                    (obj)
-            <A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
->;
-            <A
-HREF="gts-graph-class.html#GTSGEDGE"
->GtsGEdge</A
->;
-
-<A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
->* <A
-HREF="gts-graph-class.html#GTS-GEDGE-CLASS"
->gts_gedge_class</A
->              (void);
-<A
-HREF="gts-graph-class.html#GTSGEDGE"
->GtsGEdge</A
->*   <A
-HREF="gts-graph-class.html#GTS-GEDGE-NEW"
->gts_gedge_new</A
->                   (<A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n1,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n2);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-class.html#GTS-GEDGE-WEIGHT"
->gts_gedge_weight</A
->                (<A
-HREF="gts-graph-class.html#GTSGEDGE"
->GtsGEdge</A
-> *e);
-#define     <A
-HREF="gts-graph-class.html#GTS-GEDGE-CONNECTS"
->gts_gedge_connects</A
->              (e, a1, a2)
-
-#define     <A
-HREF="gts-graph-class.html#GTS-GRAPH-CLASS:CAPS"
->GTS_GRAPH_CLASS</A
->                 (klass)
-#define     <A
-HREF="gts-graph-class.html#GTS-GRAPH:CAPS"
->GTS_GRAPH</A
->                       (obj)
-#define     <A
-HREF="gts-graph-class.html#GTS-IS-GRAPH:CAPS"
->GTS_IS_GRAPH</A
->                    (obj)
-            <A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
->;
-            <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->;
-
-<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
->* <A
-HREF="gts-graph-class.html"
->gts_graph_class</A
->              (void);
-<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   <A
-HREF="gts-graph-class.html#GTS-GRAPH-NEW"
->gts_graph_new</A
->                   (<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
-> *node_class,
-                                             <A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
-> *edge_class);
-<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   <A
-HREF="gts-graph-class.html#GTS-GRAPH-READ"
->gts_graph_read</A
->                  (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *fp);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-graph-class.html#GTS-GRAPH-READ-JOSTLE"
->gts_graph_read_jostle</A
->           (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GRAPH-WRITE"
->gts_graph_write</A
->                 (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GRAPH-WRITE-DOT"
->gts_graph_write_dot</A
->             (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GRAPH-PRINT-STATS"
->gts_graph_print_stats</A
->           (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GRAPH-FOREACH-EDGE"
->gts_graph_foreach_edge</A
->          (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-            <A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
->;
-enum        <A
-HREF="gts-graph-class.html#GTSTRAVERSETYPE"
->GtsTraverseType</A
->;
-<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
->* <A
-HREF="gts-graph-class.html#GTS-GRAPH-TRAVERSE-NEW"
->gts_graph_traverse_new</A
->    (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSTRAVERSETYPE"
->GtsTraverseType</A
-> type,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> reinit);
-<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   <A
-HREF="gts-graph-class.html#GTS-GRAPH-TRAVERSE-NEXT"
->gts_graph_traverse_next</A
->         (<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
-> *t);
-<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   <A
-HREF="gts-graph-class.html#GTS-GRAPH-TRAVERSE-WHAT-NEXT"
->gts_graph_traverse_what_next</A
->    (<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
-> *t);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-class.html#GTS-GRAPH-TRAVERSE-DESTROY"
->gts_graph_traverse_destroy</A
->      (<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
-> *t);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-graph-class.html#GTS-GRAPH-EDGES-CUT"
->gts_graph_edges_cut</A
->             (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-class.html#GTS-GRAPH-EDGES-CUT-WEIGHT"
->gts_graph_edges_cut_weight</A
->      (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-graph-class.html#GTS-GRAPH-DISTANCE-SUM"
->gts_graph_distance_sum</A
->          (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *center);
-<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   <A
-HREF="gts-graph-class.html#GTS-GRAPH-FARTHEST"
->gts_graph_farthest</A
->              (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *gnodes);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-class.html#GTS-GRAPH-WEIGHT"
->gts_graph_weight</A
->                (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-
-#define     <A
-HREF="gts-graph-class.html#GTS-FNODE-CLASS:CAPS"
->GTS_FNODE_CLASS</A
->                 (klass)
-#define     <A
-HREF="gts-graph-class.html#GTS-FNODE:CAPS"
->GTS_FNODE</A
->                       (obj)
-#define     <A
-HREF="gts-graph-class.html#GTS-IS-FNODE:CAPS"
->GTS_IS_FNODE</A
->                    (obj)
-            <A
-HREF="gts-graph-class.html#GTSFNODE"
->GtsFNode</A
->;
-            <A
-HREF="gts-graph-class.html#GTSFNODECLASS"
->GtsFNodeClass</A
->;
-
-<A
-HREF="gts-graph-class.html#GTSFNODECLASS"
->GtsFNodeClass</A
->* <A
-HREF="gts-graph-class.html#GTS-FNODE-CLASS"
->gts_fnode_class</A
->              (void);
-<A
-HREF="gts-graph-class.html#GTSFNODE"
->GtsFNode</A
->*   <A
-HREF="gts-graph-class.html#GTS-FNODE-NEW"
->gts_fnode_new</A
->                   (<A
-HREF="gts-graph-class.html#GTSFNODECLASS"
->GtsFNodeClass</A
-> *klass,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);
-
-<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   <A
-HREF="gts-graph-class.html#GTS-SURFACE-GRAPH-NEW"
->gts_surface_graph_new</A
->           (<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* <A
-HREF="gts-graph-class.html#GTS-SURFACE-GRAPH-SURFACE"
->gts_surface_graph_surface</A
->       (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *surface_graph,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   <A
-HREF="gts-graph-class.html#GTS-SEGMENTS-GRAPH-NEW"
->gts_segments_graph_new</A
->          (<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *segments);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN17271"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN17274"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17276"
-></A
-><H3
-><A
-NAME="GTS-GNODE-CLASS:CAPS"
-></A
->GTS_GNODE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GNODE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17284"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17289"
-></A
-><H3
-><A
-NAME="GTS-GNODE:CAPS"
-></A
->GTS_GNODE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GNODE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17297"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17302"
-></A
-><H3
-><A
-NAME="GTS-IS-GNODE:CAPS"
-></A
->GTS_IS_GNODE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_GNODE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17310"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17315"
-></A
-><H3
-><A
-NAME="GTS-GNODE-NEIGHBOR:CAPS"
-></A
->GTS_GNODE_NEIGHBOR()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_GNODE_NEIGHBOR(n,e)   (GTS_GEDGE (e)->n1 == n ? GTS_GEDGE (e)->n2 : GTS_GEDGE (e)->n2 == n ? GTS_GEDGE (e)->n1 : NULL)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17323"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17328"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17333"
-></A
-><H3
-><A
-NAME="GTSGNODECLASS"
-></A
->GtsGNodeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSListContainerClass parent_class;
-
-  gfloat (* weight) (GtsGNode *);
-  void   (* write)  (GtsGNode *, FILE *);
-} GtsGNodeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17340"
-></A
-><H3
-><A
-NAME="GTSGNODE"
-></A
->GtsGNode</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSListContainer container;
-
-  guint level;
-} GtsGNode;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17347"
-></A
-><H3
-><A
-NAME="GTS-GNODE-CLASS"
-></A
->gts_gnode_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
->* gts_gnode_class              (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17357"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-graph-class.html#GTSGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17364"
-></A
-><H3
-><A
-NAME="GTS-GNODE-NEW"
-></A
->gts_gnode_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   gts_gnode_new                   (<A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
-> *klass);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17375"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17382"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17389"
-></A
-><H3
-><A
-NAME="GTS-GNODE-DEGREE"
-></A
->gts_gnode_degree ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_gnode_degree                (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17401"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17408"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17416"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of neighbors of <CODE
-CLASS="PARAMETER"
->n</CODE
-> (belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
-> if <CODE
-CLASS="PARAMETER"
->g</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
->).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17425"
-></A
-><H3
-><A
-NAME="GTS-GNODE-FOREACH-EDGE"
-></A
->gts_gnode_foreach_edge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_gnode_foreach_edge          (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each <A
-HREF="gts-graph-class.html#GTSGEDGE"
-><SPAN
-CLASS="TYPE"
->GtsGEdge</SPAN
-></A
-> connecting <CODE
-CLASS="PARAMETER"
->n</CODE
-> to another <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->
-(belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
-> if <CODE
-CLASS="PARAMETER"
->g</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17448"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17455"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17463"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17470"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17476"
-></A
-><H3
-><A
-NAME="GTS-GNODE-FOREACH-NEIGHBOR"
-></A
->gts_gnode_foreach_neighbor ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_gnode_foreach_neighbor      (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each neighbor <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->n</CODE
-> (belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
-> if
-<CODE
-CLASS="PARAMETER"
->g</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17497"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17504"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17512"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17519"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17525"
-></A
-><H3
-><A
-NAME="GTS-GNODE-WEIGHT"
-></A
->gts_gnode_weight ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_gnode_weight                (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17536"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17543"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the weight of <CODE
-CLASS="PARAMETER"
->n</CODE
-> as defined by the <GTKDOCLINK
-HREF="WEIGHT"
-><CODE
-CLASS="FUNCTION"
->weight()</CODE
-></GTKDOCLINK
-> method of the
-<A
-HREF="gts-graph-class.html#GTSGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeClass</SPAN
-></A
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17553"
-></A
-><H3
-><A
-NAME="GTS-GNODE-MOVE-COST"
-></A
->gts_gnode_move_cost ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_gnode_move_cost             (<A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *src,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *dst);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17566"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17573"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->src</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> containing <CODE
-CLASS="PARAMETER"
->n</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17581"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->dst</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17588"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the cost (increase in the sum of the weights of the edges cut) of
-moving <CODE
-CLASS="PARAMETER"
->n</CODE
-> from <CODE
-CLASS="PARAMETER"
->src</CODE
-> to <CODE
-CLASS="PARAMETER"
->dst</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17596"
-></A
-><H3
-><A
-NAME="GTS-GEDGE-CLASS:CAPS"
-></A
->GTS_GEDGE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GEDGE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17604"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17609"
-></A
-><H3
-><A
-NAME="GTS-GEDGE:CAPS"
-></A
->GTS_GEDGE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GEDGE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17617"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17622"
-></A
-><H3
-><A
-NAME="GTS-IS-GEDGE:CAPS"
-></A
->GTS_IS_GEDGE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_GEDGE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17630"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17635"
-></A
-><H3
-><A
-NAME="GTSGEDGECLASS"
-></A
->GtsGEdgeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContaineeClass parent_class;
-
-  GtsGEdge * (* link)   (GtsGEdge * e, GtsGNode * n1, GtsGNode * n2);
-  gfloat     (* weight) (GtsGEdge * e);
-  void       (* write)  (GtsGEdge * e, FILE * fp);
-} GtsGEdgeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17642"
-></A
-><H3
-><A
-NAME="GTSGEDGE"
-></A
->GtsGEdge</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsContainee containee;
-
-  GtsGNode * n1;
-  GtsGNode * n2;
-} GtsGEdge;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17649"
-></A
-><H3
-><A
-NAME="GTS-GEDGE-CLASS"
-></A
->gts_gedge_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
->* gts_gedge_class              (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17659"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17666"
-></A
-><H3
-><A
-NAME="GTS-GEDGE-NEW"
-></A
->gts_gedge_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGEDGE"
->GtsGEdge</A
->*   gts_gedge_new                   (<A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n1,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17679"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17686"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17693"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17700"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSGEDGE"
-><SPAN
-CLASS="TYPE"
->GtsGEdge</SPAN
-></A
-> linking <CODE
-CLASS="PARAMETER"
->n1</CODE
-> and <CODE
-CLASS="PARAMETER"
->n2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17709"
-></A
-><H3
-><A
-NAME="GTS-GEDGE-WEIGHT"
-></A
->gts_gedge_weight ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_gedge_weight                (<A
-HREF="gts-graph-class.html#GTSGEDGE"
->GtsGEdge</A
-> *e);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17720"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGEDGE"
-><SPAN
-CLASS="TYPE"
->GtsGEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17727"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the weight of edge <CODE
-CLASS="PARAMETER"
->e</CODE
-> as defined by the <GTKDOCLINK
-HREF="WEIGHT"
-><CODE
-CLASS="FUNCTION"
->weight()</CODE
-></GTKDOCLINK
-> method of
-<A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGEdgeClass</SPAN
-></A
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17737"
-></A
-><H3
-><A
-NAME="GTS-GEDGE-CONNECTS"
-></A
->gts_gedge_connects()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_gedge_connects(e, a1, a2)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17745"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17750"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17755"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17760"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-CLASS:CAPS"
-></A
->GTS_GRAPH_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GRAPH_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17768"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17773"
-></A
-><H3
-><A
-NAME="GTS-GRAPH:CAPS"
-></A
->GTS_GRAPH()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GRAPH(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17781"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17786"
-></A
-><H3
-><A
-NAME="GTS-IS-GRAPH:CAPS"
-></A
->GTS_IS_GRAPH()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_GRAPH(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17794"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17799"
-></A
-><H3
-><A
-NAME="GTSGRAPHCLASS"
-></A
->GtsGraphClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsHashContainerClass parent_class;
-
-  gfloat (* weight) (GtsGraph *);
-} GtsGraphClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17806"
-></A
-><H3
-><A
-NAME="GTSGRAPH"
-></A
->GtsGraph</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsHashContainer object;
-
-  GtsGraphClass * graph_class;
-  GtsGNodeClass * node_class;
-  GtsGEdgeClass * edge_class;
-} GtsGraph;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17813"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-CLASS"
-></A
->gts_graph_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
->* gts_graph_class              (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17823"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17830"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-NEW"
-></A
->gts_graph_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   gts_graph_new                   (<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODECLASS"
->GtsGNodeClass</A
-> *node_class,
-                                             <A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
->GtsGEdgeClass</A
-> *edge_class);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17843"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17850"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->node_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17857"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edge_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17864"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> using <CODE
-CLASS="PARAMETER"
->node_class</CODE
-> and <CODE
-CLASS="PARAMETER"
->edge_class</CODE
-> as node types.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17873"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-READ"
-></A
->gts_graph_read ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   gts_graph_read                  (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *fp);</PRE
-><P
->Reads a graph from a file.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17884"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17891"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if an error occured (in which
-case the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->fp</CODE
-> is set).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17901"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-READ-JOSTLE"
-></A
->gts_graph_read_jostle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_graph_read_jostle           (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *fp);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->g</CODE
-> the nodes and edges defined in the file pointed to by
-<CODE
-CLASS="PARAMETER"
->fp</CODE
->. This file must use the Jostle "graph" ASCII format.  
-The nodes created are of type <GTKDOCLINK
-HREF="GTSNGNODE"
-><SPAN
-CLASS="TYPE"
->GtsNGNode</SPAN
-></GTKDOCLINK
-> and their identities are the
-line number at which they appear in <CODE
-CLASS="PARAMETER"
->fp</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17918"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17925"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17932"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> 0 if the lecture was successful, the line number at which
-an error occured otherwise (in which case the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->fp</CODE
->
-is set).  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17939"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-WRITE"
-></A
->gts_graph_write ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_write                 (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);</PRE
-><P
->Writes in the file <CODE
-CLASS="PARAMETER"
->fp</CODE
-> an ASCII representation of <CODE
-CLASS="PARAMETER"
->g</CODE
->. The file
-format is as follows. </P
-><P
->All the lines beginning with <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-COMMENTS:CAPS"
-><SPAN
-CLASS="TYPE"
->GTS_COMMENTS</SPAN
-></A
-> are ignored. The first line
-contains two unsigned integers separated by spaces. The first
-integer is the number of nodes, nn, the second is the number of
-edges, ne.</P
-><P
->Follows nn lines containing node description.
-Follows ne lines containing the two indices (starting
-from one) of the nodes of each edge.</P
-><P
->The format described above is the least common denominator to all
-GTS files.  Consistent with an object-oriented approach, the GTS
-file format is extensible. Each of the lines of the file can be
-extended with user-specific attributes accessible through the
-<GTKDOCLINK
-HREF="READ"
-><CODE
-CLASS="FUNCTION"
->read()</CODE
-></GTKDOCLINK
-> and <GTKDOCLINK
-HREF="WRITE"
-><CODE
-CLASS="FUNCTION"
->write()</CODE
-></GTKDOCLINK
-> virtual methods of each of the objects written
-(graph, nodes or edges). When read with different object classes,
-these extra attributes are just ignored.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17962"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17969"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17974"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-WRITE-DOT"
-></A
->gts_graph_write_dot ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_write_dot             (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);</PRE
-><P
->Writes in the file <CODE
-CLASS="PARAMETER"
->fp</CODE
-> an ASCII representation of <CODE
-CLASS="PARAMETER"
->g</CODE
-> in the dot format of
-AT&T Bell Labs.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17988"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17995"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18000"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PRINT-STATS"
-></A
->gts_graph_print_stats ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_print_stats           (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);</PRE
-><P
->Writes to <CODE
-CLASS="PARAMETER"
->fp</CODE
-> a summary of the properties of <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18014"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18021"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18026"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-FOREACH-EDGE"
-></A
->gts_graph_foreach_edge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_foreach_edge          (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18043"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18050"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18057"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18063"
-></A
-><H3
-><A
-NAME="GTSGRAPHTRAVERSE"
-></A
->GtsGraphTraverse</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsGraphTraverse GtsGraphTraverse;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18070"
-></A
-><H3
-><A
-NAME="GTSTRAVERSETYPE"
-></A
->enum GtsTraverseType</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef enum   { GTS_BREADTH_FIRST
-               }   GtsTraverseType;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18077"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-TRAVERSE-NEW"
-></A
->gts_graph_traverse_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
->* gts_graph_traverse_new    (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-graph-class.html#GTSTRAVERSETYPE"
->GtsTraverseType</A
-> type,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> reinit);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18091"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18098"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18106"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->type</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the type of traversal.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18111"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->reinit</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if <TT
-CLASS="LITERAL"
->TRUE</TT
->, the traversal is reinitialized.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18117"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsGraphTraverse</SPAN
-></A
-> initialized for the traversal of
-<CODE
-CLASS="PARAMETER"
->g</CODE
-> of type <CODE
-CLASS="PARAMETER"
->type</CODE
->, starting from <CODE
-CLASS="PARAMETER"
->n</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18127"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-TRAVERSE-NEXT"
-></A
->gts_graph_traverse_next ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   gts_graph_traverse_next         (<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18138"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsGraphTraverse</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18145"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the next <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> of the traversal defined by <CODE
-CLASS="PARAMETER"
->t</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->
-if the traversal is complete.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18154"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-TRAVERSE-WHAT-NEXT"
-></A
->gts_graph_traverse_what_next ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   gts_graph_traverse_what_next    (<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18165"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsGraphTraverse</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18172"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the next <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> of the traversal defined by <CODE
-CLASS="PARAMETER"
->t</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->
-if the traversal is complete but without advancing the traversal.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18181"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-TRAVERSE-DESTROY"
-></A
->gts_graph_traverse_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_traverse_destroy      (<A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
->GtsGraphTraverse</A
-> *t);</PRE
-><P
->Frees all the memory allocated for <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18193"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPHTRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsGraphTraverse</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18200"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-EDGES-CUT"
-></A
->gts_graph_edges_cut ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_graph_edges_cut             (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18211"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18218"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of edges of <CODE
-CLASS="PARAMETER"
->g</CODE
-> connecting nodes belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
->
-to nodes not belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18226"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-EDGES-CUT-WEIGHT"
-></A
->gts_graph_edges_cut_weight ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_graph_edges_cut_weight      (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18237"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18244"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the sum of the weights of the edges of <CODE
-CLASS="PARAMETER"
->g</CODE
-> connecting nodes
-belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
-> to nodes not belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18252"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-DISTANCE-SUM"
-></A
->gts_graph_distance_sum ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_graph_distance_sum          (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *center);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18264"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18271"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->center</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18279"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the sum of the distances between all the other <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->
-of <CODE
-CLASS="PARAMETER"
->g</CODE
-> and <CODE
-CLASS="PARAMETER"
->center</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18288"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-FARTHEST"
-></A
->gts_graph_farthest ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
->*   gts_graph_farthest              (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *gnodes);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18300"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18307"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->gnodes</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18315"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
-> and farthest from all the nodes in
-<CODE
-CLASS="PARAMETER"
->gnodes</CODE
-> (hmmm, definition of "farthest"?).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18324"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-WEIGHT"
-></A
->gts_graph_weight ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_graph_weight                (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18335"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18342"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the weight of graph <CODE
-CLASS="PARAMETER"
->g</CODE
-> as defined by the <GTKDOCLINK
-HREF="WEIGHT"
-><CODE
-CLASS="FUNCTION"
->weight()</CODE
-></GTKDOCLINK
-> method
-of <A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGraphClass</SPAN
-></A
->. </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18352"
-></A
-><H3
-><A
-NAME="GTS-FNODE-CLASS:CAPS"
-></A
->GTS_FNODE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_FNODE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18360"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18365"
-></A
-><H3
-><A
-NAME="GTS-FNODE:CAPS"
-></A
->GTS_FNODE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_FNODE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18373"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18378"
-></A
-><H3
-><A
-NAME="GTS-IS-FNODE:CAPS"
-></A
->GTS_IS_FNODE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_FNODE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18386"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18391"
-></A
-><H3
-><A
-NAME="GTSFNODE"
-></A
->GtsFNode</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGNode node;
-
-  GtsFace * f;
-} GtsFNode;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18398"
-></A
-><H3
-><A
-NAME="GTSFNODECLASS"
-></A
->GtsFNodeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGNodeClass parent_class;
-} GtsFNodeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18405"
-></A
-><H3
-><A
-NAME="GTS-FNODE-CLASS"
-></A
->gts_fnode_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSFNODECLASS"
->GtsFNodeClass</A
->* gts_fnode_class              (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18415"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-graph-class.html#GTSFNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsFNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18422"
-></A
-><H3
-><A
-NAME="GTS-FNODE-NEW"
-></A
->gts_fnode_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSFNODE"
->GtsFNode</A
->*   gts_fnode_new                   (<A
-HREF="gts-graph-class.html#GTSFNODECLASS"
->GtsFNodeClass</A
-> *klass,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18434"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSFNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsFNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18441"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18448"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSFNODE"
-><SPAN
-CLASS="TYPE"
->GtsFNode</SPAN
-></A
-> associated with face <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18456"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-GRAPH-NEW"
-></A
->gts_surface_graph_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   gts_surface_graph_new           (<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18468"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18475"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18482"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> representing the connectivity of the faces
-of <CODE
-CLASS="PARAMETER"
->s</CODE
->. This graph uses <GTKDOCLINK
-HREF="GTSFGNODE"
-><SPAN
-CLASS="TYPE"
->GtsFGNode</SPAN
-></GTKDOCLINK
-> as nodes which allows to store
-the dependencies between nodes and faces of <CODE
-CLASS="PARAMETER"
->s</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18493"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-GRAPH-SURFACE"
-></A
->gts_surface_graph_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* gts_surface_graph_surface       (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *surface_graph,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18505"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface_graph</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> using <GTKDOCLINK
-HREF="GTSFGNODE"
-><SPAN
-CLASS="TYPE"
->GtsFGNode</SPAN
-></GTKDOCLINK
-> as nodes.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18514"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18521"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> using the same classes as <CODE
-CLASS="PARAMETER"
->s</CODE
-> and
-composed of the faces defined by <CODE
-CLASS="PARAMETER"
->surface_graph</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18530"
-></A
-><H3
-><A
-NAME="GTS-SEGMENTS-GRAPH-NEW"
-></A
->gts_segments_graph_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
->*   gts_segments_graph_new          (<A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
->GtsGraphClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *segments);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18542"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18549"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->segments</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18556"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> representing the connectivity of the segments
-in <CODE
-CLASS="PARAMETER"
->segments</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="c17114.html"
-><B
-><<< Graph and operations on graphs</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-weighted-graph.html"
-><B
->Weighted graph >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-graph-partitioning.html b/doc/html/gts-graph-partitioning.html
deleted file mode 100644
index 6db012d..0000000
--- a/doc/html/gts-graph-partitioning.html
+++ /dev/null
@@ -1,2392 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Graph partitioning</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Graph and operations on graphs"
-HREF="c17114.html"><LINK
-REL="PREVIOUS"
-TITLE="Progressive graph"
-HREF="gts-progressive-graph.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-progressive-graph.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c17114.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-GRAPH-PARTITIONING"
-></A
->Graph partitioning</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN19614"
-></A
-><H2
->Name</H2
->Graph partitioning -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN19617"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-            <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->;
-<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->* <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-NEW"
->gts_graph_bisection_new</A
->  (<A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
-> *wg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nmin,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> imbalance);
-<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->* <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-GGG-BISECTION"
->gts_graph_ggg_bisection</A
->  (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry);
-<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->* <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BFGG-BISECTION"
->gts_graph_bfgg_bisection</A
-> (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-CHECK"
->gts_graph_bisection_check</A
->       (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-KL-REFINE"
->gts_graph_bisection_kl_refine</A
->   (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-BKL-REFINE"
->gts_graph_bisection_bkl_refine</A
->  (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> imbalance);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-RECURSIVE-BISECTION"
->gts_graph_recursive_bisection</A
->   (<A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
-> *wg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nmin,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> imbalance);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-DESTROY"
->gts_graph_bisection_destroy</A
->     (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> destroy_graphs);
-
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BUBBLE-PARTITION"
->gts_graph_bubble_partition</A
->      (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> np,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> niter,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> step_info,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-graph-class.html#GTS-GRAPH-EDGES-CUT"
->gts_graph_edges_cut</A
->             (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-class.html#GTS-GRAPH-EDGES-CUT-WEIGHT"
->gts_graph_edges_cut_weight</A
->      (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-PARTITION-EDGES-CUT"
->gts_graph_partition_edges_cut</A
->   (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-PARTITION-BALANCE"
->gts_graph_partition_balance</A
->     (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-PARTITION-CLONE"
->gts_graph_partition_clone</A
->       (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-PARTITION-PRINT-STATS"
->gts_graph_partition_print_stats</A
-> (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-PARTITION-EDGES-CUT-WEIGHT"
->gts_graph_partition_edges_cut_weight</A
->
-                                            (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-PARTITION-DESTROY"
->gts_graph_partition_destroy</A
->     (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN19692"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN19695"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19697"
-></A
-><H3
-><A
-NAME="GTSGRAPHBISECTION"
-></A
->GtsGraphBisection</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGraph * g;
-  GtsGraph * g1;
-  GtsGraph * g2;
-  GHashTable * bg1;
-  GHashTable * bg2;
-} GtsGraphBisection;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19704"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BISECTION-NEW"
-></A
->gts_graph_bisection_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->* gts_graph_bisection_new  (<A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
-> *wg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nmin,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> imbalance);</PRE
-><P
->An implementation of a multilevel bisection algorithm as presented
-in Karypis and Kumar (1997). A multilevel hierarchy of graphs is
-created using the <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
-> object. The bisection of the coarsest
-graph is created using the <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-GGG-BISECTION"
-><CODE
-CLASS="FUNCTION"
->gts_graph_ggg_bisection()</CODE
-></A
-> function. The
-graph is then uncoarsened using <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-DOWN"
-><CODE
-CLASS="FUNCTION"
->gts_pgraph_down()</CODE
-></A
-> and at each level
-the bisection is refined using <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-BKL-REFINE"
-><CODE
-CLASS="FUNCTION"
->gts_graph_bisection_bkl_refine()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19727"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->wg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsWGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19734"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ntry</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of tries for the graph growing algorithm.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19739"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->mmax</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of unsucessful moves for the refinement algorithm.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19744"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nmin</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimum number of nodes of the coarsest graph.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19749"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->imbalance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum relative imbalance allowed between the
-weights of both halves of the partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19754"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->wg</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19762"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-GGG-BISECTION"
-></A
->gts_graph_ggg_bisection ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->* gts_graph_ggg_bisection  (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry);</PRE
-><P
->An implementation of the "Greedy Graph Growing" algorithm of
-Karypis and Kumar (1997).  </P
-><P
-><CODE
-CLASS="PARAMETER"
->ntry</CODE
-> randomly chosen seeds are used and the best partition is retained.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19776"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19783"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ntry</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of randomly selected initial seeds.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19788"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19796"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BFGG-BISECTION"
-></A
->gts_graph_bfgg_bisection ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
->* gts_graph_bfgg_bisection (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry);</PRE
-><P
->An implementation of a "Breadth-First Graph Growing" algorithm.</P
-><P
-><CODE
-CLASS="PARAMETER"
->ntry</CODE
-> randomly chosen seeds are used and the best partition is retained.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19810"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19817"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ntry</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of randomly selected initial seeds.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19822"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19830"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BISECTION-CHECK"
-></A
->gts_graph_bisection_check ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_graph_bisection_check       (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg);</PRE
-><P
->Checks that the boundary of <CODE
-CLASS="PARAMETER"
->bg</CODE
-> is correctly defined (used for
-debugging purposes).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19842"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19849"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->bg</CODE
-> is ok, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19857"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BISECTION-KL-REFINE"
-></A
->gts_graph_bisection_kl_refine ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_graph_bisection_kl_refine   (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax);</PRE
-><P
->An implementation of the simplified Kernighan-Lin algorithm for
-graph bisection refinement as described in Karypis and Kumar
-(1997).</P
-><P
->The algorithm stops if <CODE
-CLASS="PARAMETER"
->mmax</CODE
-> consecutive modes do not lead to a
-decrease in the number of edges cut. This last <CODE
-CLASS="PARAMETER"
->mmax</CODE
-> moves are
-undone.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19872"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19879"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->mmax</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum number of unsuccessful successive moves.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19884"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the decrease in the weight of the edges cut by the bisection.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19889"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BISECTION-BKL-REFINE"
-></A
->gts_graph_bisection_bkl_refine ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_graph_bisection_bkl_refine  (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> imbalance);</PRE
-><P
->An implementation of the simplified boundary Kernighan-Lin
-algorithm for graph bisection refinement as described in Karypis
-and Kumar (1997).</P
-><P
->The algorithm stops if <CODE
-CLASS="PARAMETER"
->mmax</CODE
-> consecutive modes do not lead to a
-decrease in the number of edges cut. This last <CODE
-CLASS="PARAMETER"
->mmax</CODE
-> moves are
-undone.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19905"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19912"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->mmax</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum number of unsuccessful successive moves.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19917"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->imbalance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum relative imbalance allowed between the
-weights of both halves of the partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19922"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the decrease in the weight of the edges cut by the bisection.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19927"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-RECURSIVE-BISECTION"
-></A
->gts_graph_recursive_bisection ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_graph_recursive_bisection   (<A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
-> *wg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ntry,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> mmax,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nmin,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> imbalance);</PRE
-><P
->Calls <A
-HREF="gts-graph-partitioning.html#GTS-GRAPH-BISECTION-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_graph_bisection_new()</CODE
-></A
-> recursively in order to obtain a
-2^<CODE
-CLASS="PARAMETER"
->n</CODE
-> partition of <CODE
-CLASS="PARAMETER"
->wg</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19947"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->wg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsWGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19954"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of bisection levels.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19959"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ntry</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of tries for the graph growing algorithm.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19964"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->mmax</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of unsucessful moves for the refinement algorithm.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19969"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nmin</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimum number of nodes of the coarsest graph.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19974"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->imbalance</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum relative imbalance allowed between the
-weights of both halves of the partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19979"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of 2^<CODE
-CLASS="PARAMETER"
->n</CODE
-> new <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> representing the partition.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19987"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BISECTION-DESTROY"
-></A
->gts_graph_bisection_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_bisection_destroy     (<A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
->GtsGraphBisection</A
-> *bg,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> destroy_graphs);</PRE
-><P
->Frees all the memory allocated for <CODE
-CLASS="PARAMETER"
->bg</CODE
->. If <CODE
-CLASS="PARAMETER"
->destroy_graphs</CODE
-> is <TT
-CLASS="LITERAL"
->TRUE</TT
->
-the graphs created by <CODE
-CLASS="PARAMETER"
->bg</CODE
-> are destroyed.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20003"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-partitioning.html#GTSGRAPHBISECTION"
-><SPAN
-CLASS="TYPE"
->GtsGraphBisection</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20010"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->destroy_graphs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> controls graph destruction.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20015"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-BUBBLE-PARTITION"
-></A
->gts_graph_bubble_partition ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_graph_bubble_partition      (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> np,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> niter,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> step_info,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->An implementation of the "bubble partitioning algorithm" of
-Diekmann, Preis, Schlimbach and Walshaw (2000). The maximum number
-of iteration on the positions of the graph growing seeds is
-controlled by <CODE
-CLASS="PARAMETER"
->niter</CODE
->.</P
-><P
->If not <TT
-CLASS="LITERAL"
->NULL</TT
-> <CODE
-CLASS="PARAMETER"
->step_info</CODE
-> is called after each iteration on the seeds
-positions passing the partition (a GSList) as argument.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20034"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20041"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->np</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> number of partitions.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20046"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->niter</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum number of iterations.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20051"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->step_info</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20059"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to <CODE
-CLASS="PARAMETER"
->step_info</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20065"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->np</CODE
-> new <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
-> representing the partition.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20073"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-EDGES-CUT"
-></A
->gts_graph_edges_cut ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_graph_edges_cut             (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20084"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20089"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20094"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-EDGES-CUT-WEIGHT"
-></A
->gts_graph_edges_cut_weight ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_graph_edges_cut_weight      (<A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20105"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20110"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20115"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PARTITION-EDGES-CUT"
-></A
->gts_graph_partition_edges_cut ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_graph_partition_edges_cut   (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20126"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->partition</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->GtsGraph</CODE
-> representing a partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20132"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of edges cut by the partition.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20137"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PARTITION-BALANCE"
-></A
->gts_graph_partition_balance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_graph_partition_balance     (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20148"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->partition</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->GtsGraph</CODE
-> representing a partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20154"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the difference between the maximum and the minimum weight
-of the graphs in <CODE
-CLASS="PARAMETER"
->partition</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20160"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PARTITION-CLONE"
-></A
->gts_graph_partition_clone ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_graph_partition_clone       (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20171"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->partition</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->GtsGraph</CODE
-> representing a partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20177"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new partition clone of <CODE
-CLASS="PARAMETER"
->partition</CODE
-> (i.e. a list of new
-graphs clones of the graphs in <CODE
-CLASS="PARAMETER"
->partition</CODE
->).  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20184"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PARTITION-PRINT-STATS"
-></A
->gts_graph_partition_print_stats ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_partition_print_stats (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);</PRE
-><P
->Writes to <CODE
-CLASS="PARAMETER"
->fp</CODE
-> a summary of the properties of <CODE
-CLASS="PARAMETER"
->partition</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20198"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->partition</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->GtsGraph</CODE
-> representing a partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20204"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20209"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PARTITION-EDGES-CUT-WEIGHT"
-></A
->gts_graph_partition_edges_cut_weight ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_graph_partition_edges_cut_weight
-                                            (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20220"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->partition</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->GtsGraph</CODE
-> representing a partition.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20226"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the total weight of the edges cut by the partition.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN20231"
-></A
-><H3
-><A
-NAME="GTS-GRAPH-PARTITION-DESTROY"
-></A
->gts_graph_partition_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_graph_partition_destroy     (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *partition);</PRE
-><P
->Destroys all the graphs in <CODE
-CLASS="PARAMETER"
->partition</CODE
-> and frees <CODE
-CLASS="PARAMETER"
->partition</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN20244"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->partition</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <CODE
-CLASS="PARAMETER"
->GtsGraph</CODE
-> representing a partition.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-progressive-graph.html"
-><B
-><<< Progressive graph</B
-></A
-></TD
-><TD
-ALIGN="right"
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-hierarchical-surfaces.html b/doc/html/gts-hierarchical-surfaces.html
deleted file mode 100644
index 19bade3..0000000
--- a/doc/html/gts-hierarchical-surfaces.html
+++ /dev/null
@@ -1,1520 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Hierarchical surfaces</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Progressive and Hierarchical surfaces"
-HREF="c15264.html"><LINK
-REL="PREVIOUS"
-TITLE="Hierarchical vertex split"
-HREF="gts-hierarchical-vertex-split.html"><LINK
-REL="NEXT"
-TITLE="Graph and operations on graphs"
-HREF="c17114.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-hierarchical-vertex-split.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c15264.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="c17114.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-HIERARCHICAL-SURFACES"
-></A
->Hierarchical surfaces</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN16727"
-></A
-><H2
->Name</H2
->Hierarchical surfaces -- extension of progressive surfaces allowing arbitrary sequences of vertex split or collapse.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN16730"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE-CLASS:CAPS"
->GTS_HSURFACE_CLASS</A
->              (klass)
-#define     <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE:CAPS"
->GTS_HSURFACE</A
->                    (obj)
-#define     <A
-HREF="gts-hierarchical-surfaces.html#GTS-IS-HSURFACE:CAPS"
->GTS_IS_HSURFACE</A
->                 (obj)
-            <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
->GtsHSurfaceClass</A
->;
-            <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
->;
-
-<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
->GtsHSurfaceClass</A
->* <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE-CLASS"
->gts_hsurface_class</A
->        (void);
-<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
->* <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE-NEW"
->gts_hsurface_new</A
->               (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
->GtsHSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
-> *hsplit_class,
-                                             <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *psurface,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> expand_key,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> expand_data,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> collapse_key,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> collapse_data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE-TRAVERSE"
->gts_hsurface_traverse</A
->           (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface,
-                                             <GTKDOCLINK
-HREF="GTRAVERSETYPE"
->GTraverseType</GTKDOCLINK
-> order,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> depth,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITTRAVERSEFUNC"
->GtsSplitTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE-HEIGHT"
->gts_hsurface_height</A
->             (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-hierarchical-surfaces.html#GTS-HSURFACE-FOREACH"
->gts_hsurface_foreach</A
->            (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface,
-                                             <GTKDOCLINK
-HREF="GTRAVERSETYPE"
->GTraverseType</GTKDOCLINK
-> order,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN16765"
-></A
-><H2
->Description</H2
-><P
->Hierarchical surfaces are used to manage sequences of vertex splits or collapses which can be different from the initial sequence described by the progressive surface. In this way different branches of the vertex split tree can be collapsed or expanded resulting in a level of detail varying across different parts of the surface. This is the fundamental mechanism of view-dependent level of detail.</P
-><P
->Hierarchical surfaces maintain two priority heaps one containing the next vertices (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->) ready to be expanded, the other the next vertices ready to be collapsed. By updating the priorities for these vertices as the view point changes and collapsing or expanding the top ones until a given criterium is verified, the level of detail can be dynamically adapted.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN16771"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16773"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE-CLASS:CAPS"
-></A
->GTS_HSURFACE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_HSURFACE_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSurfaceClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16784"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSurfaceClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16791"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE:CAPS"
-></A
->GTS_HSURFACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_HSURFACE(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16802"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16809"
-></A
-><H3
-><A
-NAME="GTS-IS-HSURFACE:CAPS"
-></A
->GTS_IS_HSURFACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_HSURFACE(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16821"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16826"
-></A
-><H3
-><A
-NAME="GTSHSURFACECLASS"
-></A
->GtsHSurfaceClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsHSurfaceClass;</PRE
-><P
->The hierarchical surface class derived from <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16835"
-></A
-><H3
-><A
-NAME="GTSHSURFACE"
-></A
->GtsHSurface</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsSurface * s;
-  GSList * roots;
-  GtsEHeap * expandable;
-  GtsEHeap * collapsable;
-  GPtrArray * split;
-  guint nvertex;
-} GtsHSurface;</PRE
-><P
->The hierarchical surface object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16843"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16849"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->s</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> being refined or coarsened.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16857"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->roots</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Private field.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16863"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *<CODE
-CLASS="STRUCTFIELD"
->expandable</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
-> of the expandable <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> sorted by priority.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16873"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *<CODE
-CLASS="STRUCTFIELD"
->collapsable</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
-> of the collapsable <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> sorted by priority.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16883"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GPTRARRAY"
->GPtrArray</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->split</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Private field.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16889"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->nvertex</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Private field.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16895"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE-CLASS"
-></A
->gts_hsurface_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
->GtsHSurfaceClass</A
->* gts_hsurface_class        (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16905"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16912"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE-NEW"
-></A
->gts_hsurface_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
->* gts_hsurface_new               (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
->GtsHSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
-> *hsplit_class,
-                                             <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *psurface,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> expand_key,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> expand_data,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> collapse_key,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> collapse_data);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16929"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16936"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsplit_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16943"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->psurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16950"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->expand_key</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
-><SPAN
-CLASS="TYPE"
->GtsKeyFunc</SPAN
-></A
-> used to order the priority heap of expandable 
-<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16959"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->expand_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to be passed to <CODE
-CLASS="PARAMETER"
->expand_key</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16965"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->collapse_key</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
-><SPAN
-CLASS="TYPE"
->GtsKeyFunc</SPAN
-></A
-> used to order the priority heap of collapsable
-<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16974"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->collapse_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to be passed to <CODE
-CLASS="PARAMETER"
->collapsed_key</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16980"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->, hierarchical extension of <CODE
-CLASS="PARAMETER"
->psurface</CODE
->
-and using <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> of class <CODE
-CLASS="PARAMETER"
->hsplit_class</CODE
->. Note that <CODE
-CLASS="PARAMETER"
->psurface</CODE
-> is
-destroyed in the process.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16992"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE-TRAVERSE"
-></A
->gts_hsurface_traverse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_hsurface_traverse           (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface,
-                                             <GTKDOCLINK
-HREF="GTRAVERSETYPE"
->GTraverseType</GTKDOCLINK
-> order,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> depth,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITTRAVERSEFUNC"
->GtsSplitTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Traverses a hierarchical surface starting from its roots. It calls
-the given function for each <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> visited. 
-See also <A
-HREF="gts-vertex-split.html#GTS-SPLIT-TRAVERSE"
-><CODE
-CLASS="FUNCTION"
->gts_split_traverse()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17011"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17018"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->order</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the order in which nodes are visited - G_PRE_ORDER or G_POST_ORDER.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17023"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->depth</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum depth of the traversal. Nodes below this depth
-will not be visited. If max_depth is -1 all nodes in the tree are
-visited. If depth is 1, only the root is visited. If depth is 2,
-the root and its children are visited. And so on.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17028"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function to call for each visited <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17035"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to the function.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17040"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE-HEIGHT"
-></A
->gts_hsurface_height ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_hsurface_height             (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17051"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17058"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum height of the tree described by <CODE
-CLASS="PARAMETER"
->hsurface</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN17064"
-></A
-><H3
-><A
-NAME="GTS-HSURFACE-FOREACH"
-></A
->gts_hsurface_foreach ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_hsurface_foreach            (<A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface,
-                                             <GTKDOCLINK
-HREF="GTRAVERSETYPE"
->GTraverseType</GTKDOCLINK
-> order,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Starts by expanding all the <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->hsurface</CODE
->. If <CODE
-CLASS="PARAMETER"
->order</CODE
-> is
-G_PRE_ORDER, calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> and collapses it. If
-order is G_POST_ORDER, collapses each <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> first and then
-calls <CODE
-CLASS="PARAMETER"
->func</CODE
->. The traversal can be halted at any point by returning
-TRUE from func.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17088"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17095"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->order</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the order in which <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
-> are visited - G_PRE_ORDER or 
-G_POST_ORDER.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17102"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function to call for each visited <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN17109"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to the function.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-hierarchical-vertex-split.html"
-><B
-><<< Hierarchical vertex split</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="c17114.html"
-><B
->Graph and operations on graphs >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-hierarchical-vertex-split.html b/doc/html/gts-hierarchical-vertex-split.html
deleted file mode 100644
index 9e91b7f..0000000
--- a/doc/html/gts-hierarchical-vertex-split.html
+++ /dev/null
@@ -1,1088 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Hierarchical vertex split</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Progressive and Hierarchical surfaces"
-HREF="c15264.html"><LINK
-REL="PREVIOUS"
-TITLE="Progressive surfaces"
-HREF="gts-progressive-surfaces.html"><LINK
-REL="NEXT"
-TITLE="Hierarchical surfaces"
-HREF="gts-hierarchical-surfaces.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-progressive-surfaces.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c15264.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-hierarchical-surfaces.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-HIERARCHICAL-VERTEX-SPLIT"
-></A
->Hierarchical vertex split</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN16450"
-></A
-><H2
->Name</H2
->Hierarchical vertex split -- hierarchical extension of the vertex split.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN16453"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT-CLASS:CAPS"
->GTS_HSPLIT_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT:CAPS"
->GTS_HSPLIT</A
->                      (obj)
-#define     <A
-HREF="gts-hierarchical-vertex-split.html#GTS-IS-HSPLIT:CAPS"
->GTS_IS_HSPLIT</A
->                   (obj)
-            <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
->;
-            <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
->;
-
-<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
->* <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT-CLASS"
->gts_hsplit_class</A
->            (void);
-<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
->*  <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT-NEW"
->gts_hsplit_new</A
->                  (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
-> *klass,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT-COLLAPSE"
->gts_hsplit_collapse</A
->             (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *hs,
-                                             <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT-EXPAND"
->gts_hsplit_expand</A
->               (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *hs,
-                                             <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-hierarchical-vertex-split.html#GTS-HSPLIT-FORCE-EXPAND"
->gts_hsplit_force_expand</A
->         (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *hs,
-                                             <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN16479"
-></A
-><H2
->Description</H2
-><P
->Hierarchical vertex splits are the building blocks of hierarchical surfaces. They are derived from <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> objects but add pointers to their parents in the vertex split tree and information on the state (collapsed or expanded) of their children.</P
-><P
->Together with <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
-><SPAN
-CLASS="TYPE"
->GtsEHeapPair</SPAN
-></A
-> fields these informations allow to manage any valid sequence of expansions or collapses.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN16487"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16489"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT-CLASS:CAPS"
-></A
->GTS_HSPLIT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_HSPLIT_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSplitClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16500"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSplitClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16507"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT:CAPS"
-></A
->GTS_HSPLIT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_HSPLIT(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16518"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16525"
-></A
-><H3
-><A
-NAME="GTS-IS-HSPLIT:CAPS"
-></A
->GTS_IS_HSPLIT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_HSPLIT(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16538"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16543"
-></A
-><H3
-><A
-NAME="GTSHSPLITCLASS"
-></A
->GtsHSplitClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSplitClass parent_class;
-} GtsHSplitClass;</PRE
-><P
->The hierarchical split vertex class derived from <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16552"
-></A
-><H3
-><A
-NAME="GTSHSPLIT"
-></A
->GtsHSplit</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsSplit split;
-
-  GtsEHeapPair * index;
-  GtsHSplit * parent;
-  guint nchild;
-} GtsHSplit;</PRE
-><P
->The hierarchical split vertex object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16560"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> <CODE
-CLASS="STRUCTFIELD"
->split</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16566"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-extended-binary-heaps.html#GTSEHEAPPAIR"
->GtsEHeapPair</A
-> *<CODE
-CLASS="STRUCTFIELD"
->index</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Used when managing priority heaps for vertex split and collapse.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16572"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *<CODE
-CLASS="STRUCTFIELD"
->parent</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Parent of this hierarchical split vertex in the split vertex tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16578"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->nchild</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of expanded children of this vertex split (0, 1, or 2).
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16584"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT-CLASS"
-></A
->gts_hsplit_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
->* gts_hsplit_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16594"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16601"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT-NEW"
-></A
->gts_hsplit_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
->*  gts_hsplit_new                  (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
->GtsHSplitClass</A
-> *klass,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16613"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsHSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16620"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16627"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->, hierarchical extension of <CODE
-CLASS="PARAMETER"
->vs</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16635"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT-COLLAPSE"
-></A
->gts_hsplit_collapse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_hsplit_collapse             (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *hs,
-                                             <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);</PRE
-><P
->Collapses the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> defined by <CODE
-CLASS="PARAMETER"
->hs</CODE
->, updates the expandable and
-collapsable priority heaps of <CODE
-CLASS="PARAMETER"
->hsurface</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16651"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16658"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16665"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT-EXPAND"
-></A
->gts_hsplit_expand ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_hsplit_expand               (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *hs,
-                                             <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);</PRE
-><P
->Expands the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> defined by <CODE
-CLASS="PARAMETER"
->hs</CODE
-> (which must be expandable)
-and updates the priority heaps of <CODE
-CLASS="PARAMETER"
->hsurface</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16681"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16688"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16695"
-></A
-><H3
-><A
-NAME="GTS-HSPLIT-FORCE-EXPAND"
-></A
->gts_hsplit_force_expand ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_hsplit_force_expand         (<A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
->GtsHSplit</A
-> *hs,
-                                             <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
->GtsHSurface</A
-> *hsurface);</PRE
-><P
->Forces the expansion of <CODE
-CLASS="PARAMETER"
->hs</CODE
-> by first expanding all its dependencies not
-already expanded.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16708"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16715"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->hsurface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-hierarchical-surfaces.html#GTSHSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsHSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-progressive-surfaces.html"
-><B
-><<< Progressive surfaces</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-hierarchical-surfaces.html"
-><B
->Hierarchical surfaces >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-isosurfaces-from-3d-functions.html b/doc/html/gts-isosurfaces-from-3d-functions.html
deleted file mode 100644
index cdcb76f..0000000
--- a/doc/html/gts-isosurfaces-from-3d-functions.html
+++ /dev/null
@@ -1,2550 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Isosurfaces from 3D functions</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="PREVIOUS"
-TITLE="Out-of-core simplification"
-HREF="gts-out-of-core-simplification.html"><LINK
-REL="NEXT"
-TITLE="Delaunay and constrained Delaunay triangulations"
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-out-of-core-simplification.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c12206.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-ISOSURFACES-FROM-3D-FUNCTIONS"
-></A
->Isosurfaces from 3D functions</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN13804"
-></A
-><H2
->Name</H2
->Isosurfaces from 3D functions -- computing triangulated isosurfaces of a given function f(x,y,z).</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN13807"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-            <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
->;
-            <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
->;
-
-<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
->* <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-GRID-PLANE-NEW"
->gts_grid_plane_new</A
->            (<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nx,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ny);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-GRID-PLANE-DESTROY"
->gts_grid_plane_destroy</A
->          (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
-> *g);
-
-            <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
->;
-
-<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
->* <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISO-SLICE-NEW"
->gts_iso_slice_new</A
->              (<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nx,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ny);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISO-SLICE-FILL"
->gts_iso_slice_fill</A
->              (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
-> *plane1,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
-> *plane2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISO-SLICE-FILL-CARTESIAN"
->gts_iso_slice_fill_cartesian</A
->    (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISO-SLICE-DESTROY"
->gts_iso_slice_destroy</A
->           (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-SLICE"
->gts_isosurface_slice</A
->            (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice1,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice2,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->*GtsIsoCartesianFunc</A
->)          (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **a,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> i,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-CARTESIAN"
->gts_isosurface_cartesian</A
->        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-TETRA"
->gts_isosurface_tetra</A
->            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-TETRA-BOUNDED"
->gts_isosurface_tetra_bounded</A
->    (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-TETRA-BCL"
->gts_isosurface_tetra_bcl</A
->        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN13883"
-></A
-><H2
->Description</H2
-><P
->Using the <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-CARTESIAN"
-><CODE
-CLASS="FUNCTION"
->gts_isosurface_cartesian()</CODE
-></A
-> function, it is possible to build a triangulated isosurface of a given user-defined function. As its name indicates this function assumes that the values of the user-defined function are defined for points located on a regular cartesian grid described by the <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
-> parameter. The triangles describing the isosurface are computed for each pair of successive planes z and z+dz in a pipelined manner. Consequently only two planes need to be stored in memory at any time. This allows to construct isosurfaces for datasets too large to fit in main memory.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN13890"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13892"
-></A
-><H3
-><A
-NAME="GTSCARTESIANGRID"
-></A
->GtsCartesianGrid</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  guint nx, ny, nz;
-  gdouble x, dx, y, dy, z, dz;
-} GtsCartesianGrid;</PRE
-><P
->A regular cartesian grid is defined by the number of points in each direction, the spatial increment in each direction and the coordinates of the first point.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13900"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->nx</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of points in direction x.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13906"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->ny</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of points in direction y.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13912"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->nz</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of points in direction z.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13918"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->x</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->x coordinate of the first point.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13924"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->dx</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Increment in direction x.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13930"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->y</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->y coordinate of the first point.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13936"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->dy</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Increment in direction y.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13942"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->z</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->z coordinate of the first point.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13948"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->dz</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Increment in direction z.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13954"
-></A
-><H3
-><A
-NAME="GTSGRIDPLANE"
-></A
->GtsGridPlane</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsPoint ** p;
-  guint nx, ny;
-} GtsGridPlane;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13961"
-></A
-><H3
-><A
-NAME="GTS-GRID-PLANE-NEW"
-></A
->gts_grid_plane_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
->* gts_grid_plane_new            (<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nx,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ny);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13973"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nx</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13978"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ny</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13983"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13988"
-></A
-><H3
-><A
-NAME="GTS-GRID-PLANE-DESTROY"
-></A
->gts_grid_plane_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_grid_plane_destroy          (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
-> *g);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13999"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14004"
-></A
-><H3
-><A
-NAME="GTSISOSLICE"
-></A
->GtsIsoSlice</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsIsoSlice GtsIsoSlice;</PRE
-><P
->A GtsIsoSlice is an opaque data structure containing the coordinates of the points located on the isosurface for a given slice of the user-defined function.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14011"
-></A
-><H3
-><A
-NAME="GTS-ISO-SLICE-NEW"
-></A
->gts_iso_slice_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
->* gts_iso_slice_new              (<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nx,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> ny);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14023"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nx</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> number of vertices in the x direction.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14028"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ny</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> number of vertices in the y direction.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14033"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
-><SPAN
-CLASS="TYPE"
->GtsIsoSlice</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14040"
-></A
-><H3
-><A
-NAME="GTS-ISO-SLICE-FILL"
-></A
->gts_iso_slice_fill ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_iso_slice_fill              (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
-> *plane1,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
->GtsGridPlane</A
-> *plane2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass);</PRE
-><P
->Fill <CODE
-CLASS="PARAMETER"
->slice</CODE
-> with the coordinates of the vertices defined by 
-f1 (x,y,z) = <CODE
-CLASS="PARAMETER"
->iso</CODE
-> and f2 (x, y, z) = <CODE
-CLASS="PARAMETER"
->iso</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14060"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->slice</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
-><SPAN
-CLASS="TYPE"
->GtsIsoSlice</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14067"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->plane1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
-><SPAN
-CLASS="TYPE"
->GtsGridPlane</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14074"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->plane2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSGRIDPLANE"
-><SPAN
-CLASS="TYPE"
->GtsGridPlane</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14081"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> values of the function corresponding to <CODE
-CLASS="PARAMETER"
->plane1</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14087"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> values of the function corresponding to <CODE
-CLASS="PARAMETER"
->plane2</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14093"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->iso</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> isosurface value.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14098"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
-> or one of its descendant to be used for the 
-new vertices.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14105"
-></A
-><H3
-><A
-NAME="GTS-ISO-SLICE-FILL-CARTESIAN"
-></A
->gts_iso_slice_fill_cartesian ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_iso_slice_fill_cartesian    (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **f2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass);</PRE
-><P
->Fill <CODE
-CLASS="PARAMETER"
->slice</CODE
-> with the coordinates of the vertices defined by 
-f1 (x,y,z) = <CODE
-CLASS="PARAMETER"
->iso</CODE
-> and f2 (x, y, z) = <CODE
-CLASS="PARAMETER"
->iso</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14124"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->slice</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
-><SPAN
-CLASS="TYPE"
->GtsIsoSlice</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14131"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14138"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> values of the function for plane z = <CODE
-CLASS="PARAMETER"
->g.z</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14144"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> values of the function for plane z = <CODE
-CLASS="PARAMETER"
->g.z</CODE
-> + <CODE
-CLASS="PARAMETER"
->g.dz</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14151"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->iso</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> isosurface value.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14156"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14163"
-></A
-><H3
-><A
-NAME="GTS-ISO-SLICE-DESTROY"
-></A
->gts_iso_slice_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_iso_slice_destroy           (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice);</PRE
-><P
->Free all memory allocated for <CODE
-CLASS="PARAMETER"
->slice</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14175"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->slice</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
-><SPAN
-CLASS="TYPE"
->GtsIsoSlice</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14182"
-></A
-><H3
-><A
-NAME="GTS-ISOSURFACE-SLICE"
-></A
->gts_isosurface_slice ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_isosurface_slice            (<A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice1,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
->GtsIsoSlice</A
-> *slice2,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
->Given two successive slices <CODE
-CLASS="PARAMETER"
->slice1</CODE
-> and <CODE
-CLASS="PARAMETER"
->slice2</CODE
-> link their vertices with
-segments and triangles which are added to <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14198"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->slice1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
-><SPAN
-CLASS="TYPE"
->GtsIsoSlice</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14205"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->slice2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOSLICE"
-><SPAN
-CLASS="TYPE"
->GtsIsoSlice</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14212"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14219"
-></A
-><H3
-><A
-NAME="GTSISOCARTESIANFUNC"
-></A
->GtsIsoCartesianFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (*GtsIsoCartesianFunc)          (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> **a,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> i,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->This user-defined function is passed to the <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-CARTESIAN"
-><CODE
-CLASS="FUNCTION"
->gts_isosurface_cartesian()</CODE
-></A
-> 
-function. Given a particular <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
-> <CODE
-CLASS="PARAMETER"
->g</CODE
-> it must fill the array <CODE
-CLASS="PARAMETER"
->a</CODE
->
-with the values of the function for the plane z=<CODE
-CLASS="PARAMETER"
->g.z</CODE
-> (or for the corresponding 
-index <CODE
-CLASS="PARAMETER"
->i</CODE
->). This function is always called in order by <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-CARTESIAN"
-><CODE
-CLASS="FUNCTION"
->gts_isosurface_cartesian()</CODE
-></A
->, i.e. <CODE
-CLASS="PARAMETER"
->i</CODE
-> varies from 0 to <CODE
-CLASS="PARAMETER"
->g.nz</CODE
-> - 1 with an increment of one (and similarly <CODE
-CLASS="PARAMETER"
->g.z</CODE
-> is incremented every time by <CODE
-CLASS="PARAMETER"
->g.dz</CODE
->).</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14246"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the 2D array to be filled.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14251"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14258"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->i</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the z direction index of the plane to be filled.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14263"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->user data.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14268"
-></A
-><H3
-><A
-NAME="GTS-ISOSURFACE-CARTESIAN"
-></A
->gts_isosurface_cartesian ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_isosurface_cartesian        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> new faces defining the isosurface f(x,y,z) = <CODE
-CLASS="PARAMETER"
->iso</CODE
->. By
-convention, the normals to the surface are pointing toward the positive
-values of f(x,y,z) - <CODE
-CLASS="PARAMETER"
->iso</CODE
->.</P
-><P
->The user function <CODE
-CLASS="PARAMETER"
->f</CODE
-> is called successively for each value of the z 
-coordinate defined by <CODE
-CLASS="PARAMETER"
->g</CODE
->. It must fill the corresponding (x,y) plane with
-the values of the function for which the isosurface is to be computed.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14289"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14296"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14303"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
-><SPAN
-CLASS="TYPE"
->GtsIsoCartesianFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14310"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14316"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->iso</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> isosurface value.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14321"
-></A
-><H3
-><A
-NAME="GTS-ISOSURFACE-TETRA"
-></A
->gts_isosurface_tetra ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_isosurface_tetra            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> new faces defining the isosurface f(x,y,z) =
-<CODE
-CLASS="PARAMETER"
->iso</CODE
->. By convention, the normals to the surface are pointing toward
-the positive values of f(x,y,z) - <CODE
-CLASS="PARAMETER"
->iso</CODE
->.</P
-><P
->The user function <CODE
-CLASS="PARAMETER"
->f</CODE
-> is called successively for each value of the z
-coordinate defined by <CODE
-CLASS="PARAMETER"
->g</CODE
->. It must fill the corresponding (x,y)
-plane with the values of the function for which the isosurface is
-to be computed.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14342"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14349"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14356"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
-><SPAN
-CLASS="TYPE"
->GtsIsoCartesianFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14363"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14369"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->iso</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> isosurface value.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14374"
-></A
-><H3
-><A
-NAME="GTS-ISOSURFACE-TETRA-BOUNDED"
-></A
->gts_isosurface_tetra_bounded ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_isosurface_tetra_bounded    (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> new faces defining the isosurface f(x,y,z) =
-<CODE
-CLASS="PARAMETER"
->iso</CODE
->. By convention, the normals to the surface are pointing toward
-the positive values of f(x,y,z) - <CODE
-CLASS="PARAMETER"
->iso</CODE
->. To ensure a closed object,
-a boundary of G_MINDOUBLE is added around the domain</P
-><P
->The user function <CODE
-CLASS="PARAMETER"
->f</CODE
-> is called successively for each value of the z
-coordinate defined by <CODE
-CLASS="PARAMETER"
->g</CODE
->. It must fill the corresponding (x,y)
-plane with the values of the function for which the isosurface is
-to be computed.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14395"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14402"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14409"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
-><SPAN
-CLASS="TYPE"
->GtsIsoCartesianFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14416"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14422"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->iso</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> isosurface value.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN14427"
-></A
-><H3
-><A
-NAME="GTS-ISOSURFACE-TETRA-BCL"
-></A
->gts_isosurface_tetra_bcl ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_isosurface_tetra_bcl        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
->GtsCartesianGrid</A
-> g,
-                                             <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
->GtsIsoCartesianFunc</A
-> f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> iso);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> new faces defining the isosurface f(x,y,z) =
-<CODE
-CLASS="PARAMETER"
->iso</CODE
->. By convention, the normals to the surface are pointing toward
-the positive values of f(x,y,z) - <CODE
-CLASS="PARAMETER"
->iso</CODE
->.</P
-><P
->The user function <CODE
-CLASS="PARAMETER"
->f</CODE
-> is called successively for each value of the z
-coordinate defined by <CODE
-CLASS="PARAMETER"
->g</CODE
->. It must fill the corresponding (x,y)
-plane with the values of the function for which the isosurface is
-to be computed.  </P
-><P
->This version produces the dual "body-centered" faces relative to
-the faces produced by <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTS-ISOSURFACE-TETRA"
-><CODE
-CLASS="FUNCTION"
->gts_isosurface_tetra()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14451"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14458"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSCARTESIANGRID"
-><SPAN
-CLASS="TYPE"
->GtsCartesianGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14465"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-isosurfaces-from-3d-functions.html#GTSISOCARTESIANFUNC"
-><SPAN
-CLASS="TYPE"
->GtsIsoCartesianFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14472"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN14478"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->iso</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> isosurface value.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-out-of-core-simplification.html"
-><B
-><<< Out-of-core simplification</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-delaunay-and-constrained-delaunay-triangulations.html"
-><B
->Delaunay and constrained Delaunay triangulations >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-kd-trees.html b/doc/html/gts-kd-trees.html
deleted file mode 100644
index bedcd2d..0000000
--- a/doc/html/gts-kd-trees.html
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Kd-Trees</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical data structures"
-HREF="c10545.html"><LINK
-REL="PREVIOUS"
-TITLE="Geometrical data structures"
-HREF="c10545.html"><LINK
-REL="NEXT"
-TITLE="Bounding boxes trees"
-HREF="gts-bounding-boxes-trees.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="c10545.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c10545.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-bounding-boxes-trees.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-KD-TREES"
-></A
->Kd-Trees</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN10552"
-></A
-><H2
->Name</H2
->Kd-Trees -- an efficient way of doing point location queries.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN10555"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
->*      <A
-HREF="gts-kd-trees.html#GTS-KDTREE-NEW"
->gts_kdtree_new</A
->                  (<GTKDOCLINK
-HREF="GPTRARRAY"
->GPtrArray</GTKDOCLINK
-> *points,
-                                             <GTKDOCLINK
-HREF="INT"
->int</GTKDOCLINK
-> (*compare) (const void *,const void *));
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-kd-trees.html#GTS-KDTREE-RANGE"
->gts_kdtree_range</A
->                (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox,
-                                             <GTKDOCLINK
-HREF="INT"
->int</GTKDOCLINK
-> (*compare) (const void *,const void *));
-#define     <A
-HREF="gts-kd-trees.html#GTS-KDTREE-DESTROY"
->gts_kdtree_destroy</A
->              (tree)</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN10568"
-></A
-><H2
->Description</H2
-><P
->Kd-Trees (in this case 3D-Trees) are a relatively efficient way of doing point location queries.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN10571"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10573"
-></A
-><H3
-><A
-NAME="GTS-KDTREE-NEW"
-></A
->gts_kdtree_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
->*      gts_kdtree_new                  (<GTKDOCLINK
-HREF="GPTRARRAY"
->GPtrArray</GTKDOCLINK
-> *points,
-                                             <GTKDOCLINK
-HREF="INT"
->int</GTKDOCLINK
-> (*compare) (const void *,const void *));</PRE
-><P
->Note that the order of the points in array <CODE
-CLASS="PARAMETER"
->points</CODE
-> is modified by this
-function.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10586"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->points</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> an array of <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10593"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->compare</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> always <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10599"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new 3D tree for <CODE
-CLASS="PARAMETER"
->points</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10605"
-></A
-><H3
-><A
-NAME="GTS-KDTREE-RANGE"
-></A
->gts_kdtree_range ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_kdtree_range                (<GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox,
-                                             <GTKDOCLINK
-HREF="INT"
->int</GTKDOCLINK
-> (*compare) (const void *,const void *));</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10618"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a 3D tree.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10623"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
-><SPAN
-CLASS="TYPE"
->GtsBBox</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10630"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->compare</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> always <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10636"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->tree</CODE
-> which are inside <CODE
-CLASS="PARAMETER"
->bbox</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10645"
-></A
-><H3
-><A
-NAME="GTS-KDTREE-DESTROY"
-></A
->gts_kdtree_destroy()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define       gts_kdtree_destroy(tree)               g_node_destroy(tree)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10653"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="c10545.html"
-><B
-><<< Geometrical data structures</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-bounding-boxes-trees.html"
-><B
->Bounding boxes trees >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-miscellaneous-macros-and-functions.html b/doc/html/gts-miscellaneous-macros-and-functions.html
deleted file mode 100644
index a9d2afb..0000000
--- a/doc/html/gts-miscellaneous-macros-and-functions.html
+++ /dev/null
@@ -1,1946 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Miscellaneous macros and functions</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="PREVIOUS"
-TITLE="Simple statistics"
-HREF="gts-simple-statistics.html"><LINK
-REL="NEXT"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-simple-statistics.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c4.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="c2915.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-MISCELLANEOUS-MACROS-AND-FUNCTIONS"
-></A
->Miscellaneous macros and functions</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN2394"
-></A
-><H2
->Name</H2
->Miscellaneous macros and functions -- Various utilities.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN2397"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-COMMENTS:CAPS"
->GTS_COMMENTS</A
->
-
-            <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
->;
-enum        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSTOKENTYPE"
->GtsTokenType</A
->;
-            <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
->;
-
-<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
->*    <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-NEW"
->gts_file_new</A
->                    (<GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-NEXT-TOKEN"
->gts_file_next_token</A
->             (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-FIRST-TOKEN-AFTER"
->gts_file_first_token_after</A
->      (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSTOKENTYPE"
->GtsTokenType</A
-> type);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-ASSIGN-START"
->gts_file_assign_start</A
->           (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars);
-<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
->* <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-ASSIGN-NEXT"
->gts_file_assign_next</A
->       (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-ASSIGN-VARIABLES"
->gts_file_assign_variables</A
->       (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars);
-<GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-GETC"
->gts_file_getc</A
->                   (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);
-<GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-GETC-SCOPE"
->gts_file_getc_scope</A
->             (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-READ"
->gts_file_read</A
->                   (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> ptr,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> size,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nmemb);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-VARIABLE-ERROR"
->gts_file_variable_error</A
->         (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *name,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *format,
-                                             ...);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-VERROR"
->gts_file_verror</A
->                 (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *format,
-                                             <GTKDOCLINK
-HREF="VA-LIST"
->va_list</GTKDOCLINK
-> args);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-ERROR"
->gts_file_error</A
->                  (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *format,
-                                             ...);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-DESTROY"
->gts_file_destroy</A
->                (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2456"
-></A
-><H2
->Description</H2
-><P
->The <GTKDOCLINK
-HREF="GTS-GET-TOKEN"
-><CODE
-CLASS="FUNCTION"
->gts_get_token()</CODE
-></GTKDOCLINK
-> and <GTKDOCLINK
-HREF="GTS-GET-NEWLINE"
-><CODE
-CLASS="FUNCTION"
->gts_get_newline()</CODE
-></GTKDOCLINK
-> functions are used for parsing GTS geometric files.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2463"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2465"
-></A
-><H3
-><A
-NAME="GTS-COMMENTS:CAPS"
-></A
->GTS_COMMENTS</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_COMMENTS  "#!"</PRE
-><P
->Set of characters used as comments identifiers in GTS geometric files.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2472"
-></A
-><H3
-><A
-NAME="GTSFILE"
-></A
->GtsFile</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  FILE * fp;
-  gchar * s, * s1;
-  guint line, pos;
-  GString * token;
-  GtsTokenType type;
-  gchar * error;
-
-  guint curline, curpos;
-  guint scope, scope_max;
-  gint next_token;
-  gchar * delimiters;
-  gchar * comments;
-  gchar * tokens;
-} GtsFile;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2479"
-></A
-><H3
-><A
-NAME="GTSTOKENTYPE"
-></A
->enum GtsTokenType</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef enum {
-  GTS_NONE   = 1 << 8,
-  GTS_INT    = 1 << 9,
-  GTS_UINT   = 1 << 10,
-  GTS_FLOAT  = 1 << 11,
-  GTS_DOUBLE = 1 << 12,
-  GTS_STRING = 1 << 13,
-  GTS_FILE   = 1 << 14,
-  GTS_ERROR  = 1 << 15
-} GtsTokenType;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2486"
-></A
-><H3
-><A
-NAME="GTSFILEVARIABLE"
-></A
->GtsFileVariable</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsTokenType type;
-  gchar name[30];
-  gboolean unique;
-  gpointer data;
-  gboolean set;
-  guint line, pos;
-} GtsFileVariable;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2493"
-></A
-><H3
-><A
-NAME="GTS-FILE-NEW"
-></A
->gts_file_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
->*    gts_file_new                    (<GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fp);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2504"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2509"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2516"
-></A
-><H3
-><A
-NAME="GTS-FILE-NEXT-TOKEN"
-></A
->gts_file_next_token ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_next_token             (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-><P
->Reads next token from <CODE
-CLASS="PARAMETER"
->f</CODE
-> and updates its <CODE
-CLASS="PARAMETER"
->token</CODE
-> and <CODE
-CLASS="PARAMETER"
->delim</CODE
-> fields.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2530"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2537"
-></A
-><H3
-><A
-NAME="GTS-FILE-FIRST-TOKEN-AFTER"
-></A
->gts_file_first_token_after ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_first_token_after      (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSTOKENTYPE"
->GtsTokenType</A
-> type);</PRE
-><P
->Finds and sets the first token of a type different from <CODE
-CLASS="PARAMETER"
->type</CODE
-> 
-occuring after a token of type <CODE
-CLASS="PARAMETER"
->type</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2551"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2558"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->type</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSTOKENTYPE"
-><SPAN
-CLASS="TYPE"
->GtsTokenType</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2565"
-></A
-><H3
-><A
-NAME="GTS-FILE-ASSIGN-START"
-></A
->gts_file_assign_start ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_assign_start           (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars);</PRE
-><P
->Opens a block delimited by braces to read a list of optional
-arguments specified by <CODE
-CLASS="PARAMETER"
->vars</CODE
->.  </P
-><P
->If an error is encountered the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> is set.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2581"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2588"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vars</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <TT
-CLASS="LITERAL"
->GTS_NONE</TT
-> terminated array of <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
-><SPAN
-CLASS="TYPE"
->GtsFileVariable</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2596"
-></A
-><H3
-><A
-NAME="GTS-FILE-ASSIGN-NEXT"
-></A
->gts_file_assign_next ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
->* gts_file_assign_next       (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars);</PRE
-><P
->Assigns the next optional argument of <CODE
-CLASS="PARAMETER"
->vars</CODE
-> read from <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2610"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2617"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vars</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <TT
-CLASS="LITERAL"
->GTS_NONE</TT
-> terminated array of <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
-><SPAN
-CLASS="TYPE"
->GtsFileVariable</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2625"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the variable of <CODE
-CLASS="PARAMETER"
->vars</CODE
-> which has been assigned or <TT
-CLASS="LITERAL"
->NULL</TT
-> if
-no variable has been assigned (if an error has been encountered the
-<CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> is set).  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2634"
-></A
-><H3
-><A
-NAME="GTS-FILE-ASSIGN-VARIABLES"
-></A
->gts_file_assign_variables ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_assign_variables       (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars);</PRE
-><P
->Assigns all the variables belonging to <CODE
-CLASS="PARAMETER"
->vars</CODE
-> found in <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-><P
->If an error is encountered the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> is set.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2651"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2658"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vars</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> an array of <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
-><SPAN
-CLASS="TYPE"
->GtsFileVariable</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2665"
-></A
-><H3
-><A
-NAME="GTS-FILE-GETC"
-></A
->gts_file_getc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        gts_file_getc                   (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2676"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2683"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the next character in <CODE
-CLASS="PARAMETER"
->f</CODE
-> or EOF if the end of the file is
-reached or if an error occured.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2689"
-></A
-><H3
-><A
-NAME="GTS-FILE-GETC-SCOPE"
-></A
->gts_file_getc_scope ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        gts_file_getc_scope             (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2700"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2707"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the next character in <CODE
-CLASS="PARAMETER"
->f</CODE
-> in the scope defined by
-<CODE
-CLASS="PARAMETER"
->f</CODE
->->scope_max or EOF if the end of the file is reached or if an
-error occured.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2714"
-></A
-><H3
-><A
-NAME="GTS-FILE-READ"
-></A
->gts_file_read ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_file_read                   (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> ptr,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> size,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nmemb);</PRE
-><P
->Reads <CODE
-CLASS="PARAMETER"
->nmemb</CODE
-> elements of data, each <CODE
-CLASS="PARAMETER"
->size</CODE
-> bytes long, from <CODE
-CLASS="PARAMETER"
->f</CODE
->,
-storing them at the location given by <CODE
-CLASS="PARAMETER"
->ptr</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2732"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2739"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2744"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->size</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> size of an element.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2749"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nmemb</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> number of elements.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2754"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of elements read.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2759"
-></A
-><H3
-><A
-NAME="GTS-FILE-VARIABLE-ERROR"
-></A
->gts_file_variable_error ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_variable_error         (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
->GtsFileVariable</A
-> *vars,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *name,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *format,
-                                             ...);</PRE
-><P
->Sets the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> using <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-VERROR"
-><CODE
-CLASS="FUNCTION"
->gts_file_verror()</CODE
-></A
->.</P
-><P
->String <CODE
-CLASS="PARAMETER"
->name</CODE
-> must match one of the variable names in <CODE
-CLASS="PARAMETER"
->vars</CODE
->.</P
-><P
->If variable <CODE
-CLASS="PARAMETER"
->name</CODE
-> has been assigned (using <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-ASSIGN-VARIABLES"
-><CODE
-CLASS="FUNCTION"
->gts_file_assign_variables()</CODE
-></A
->)
-sets the <CODE
-CLASS="PARAMETER"
->line</CODE
-> and <CODE
-CLASS="PARAMETER"
->pos</CODE
-> fields of <CODE
-CLASS="PARAMETER"
->f</CODE
-> to the line and position where
-it has been assigned.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2787"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2794"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vars</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> an array of <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILEVARIABLE"
-><SPAN
-CLASS="TYPE"
->GtsFileVariable</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2801"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->name</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the name of a variable in <CODE
-CLASS="PARAMETER"
->vars</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2807"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->format</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the standard <GTKDOCLINK
-HREF="SPRINTF"
-><CODE
-CLASS="FUNCTION"
->sprintf()</CODE
-></GTKDOCLINK
-> format string.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2814"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->...</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the parameters to insert into the format string.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2819"
-></A
-><H3
-><A
-NAME="GTS-FILE-VERROR"
-></A
->gts_file_verror ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_verror                 (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *format,
-                                             <GTKDOCLINK
-HREF="VA-LIST"
->va_list</GTKDOCLINK
-> args);</PRE
-><P
->Sets the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> using <GTKDOCLINK
-HREF="G-STRDUP-VPRINTF"
-><CODE
-CLASS="FUNCTION"
->g_strdup_vprintf()</CODE
-></GTKDOCLINK
->.</P
-><P
->This function can be called only once and disables any other
-operation on <CODE
-CLASS="PARAMETER"
->f</CODE
-> (<GTKDOCLINK
-HREF="GTS-FILE-CLOSE"
-><CODE
-CLASS="FUNCTION"
->gts_file_close()</CODE
-></GTKDOCLINK
-> excepted).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2840"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <CODE
-CLASS="PARAMETER"
->GtsFile</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2846"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->format</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the standard <GTKDOCLINK
-HREF="SPRINTF"
-><CODE
-CLASS="FUNCTION"
->sprintf()</CODE
-></GTKDOCLINK
-> format string.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2853"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->args</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the list of parameters to insert into the format string.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2858"
-></A
-><H3
-><A
-NAME="GTS-FILE-ERROR"
-></A
->gts_file_error ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_error                  (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f,
-                                             const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *format,
-                                             ...);</PRE
-><P
->Sets the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> using <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-FILE-VERROR"
-><CODE
-CLASS="FUNCTION"
->gts_file_verror()</CODE
-></A
->.</P
-><P
->This function can be called only once and disables any other
-operation on <CODE
-CLASS="PARAMETER"
->f</CODE
-> (<GTKDOCLINK
-HREF="GTS-FILE-CLOSE"
-><CODE
-CLASS="FUNCTION"
->gts_file_close()</CODE
-></GTKDOCLINK
-> excepted).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2878"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <CODE
-CLASS="PARAMETER"
->GtsFile</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2884"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->format</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the standard <GTKDOCLINK
-HREF="SPRINTF"
-><CODE
-CLASS="FUNCTION"
->sprintf()</CODE
-></GTKDOCLINK
-> format string.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2891"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->...</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the parameters to insert into the format string.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2896"
-></A
-><H3
-><A
-NAME="GTS-FILE-DESTROY"
-></A
->gts_file_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_file_destroy                (<A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-><P
->Frees all the memory allocated for <CODE
-CLASS="PARAMETER"
->f</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2908"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-simple-statistics.html"
-><B
-><<< Simple statistics</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="c2915.html"
-><B
->Geometrical Object Hierarchy >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-object-class.html b/doc/html/gts-object-class.html
deleted file mode 100644
index 0ed7607..0000000
--- a/doc/html/gts-object-class.html
+++ /dev/null
@@ -1,2838 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Object class</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="NEXT"
-TITLE="Container classes"
-HREF="gts-container-classes.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="c2915.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-container-classes.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-OBJECT-CLASS"
-></A
->Object class</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN2926"
-></A
-><H2
->Name</H2
->Object class -- parent class for all GTS objects.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN2929"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-object-class.html#GTS-CLASS-NAME-LENGTH:CAPS"
->GTS_CLASS_NAME_LENGTH</A
->
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-CLASS:CAPS"
->GTS_OBJECT_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT:CAPS"
->GTS_OBJECT</A
->                      (obj)
-#define     <A
-HREF="gts-object-class.html#GTS-IS-OBJECT:CAPS"
->GTS_IS_OBJECT</A
->                   (obj)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-CLASS-CAST:CAPS"
->GTS_OBJECT_CLASS_CAST</A
->           (objklass, type, klass)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-CAST:CAPS"
->GTS_OBJECT_CAST</A
->                 (obj, type, klass)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-FLAGS:CAPS"
->GTS_OBJECT_FLAGS</A
->                (obj)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-SET-FLAGS:CAPS"
->GTS_OBJECT_SET_FLAGS</A
->            (obj,flag)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-UNSET-FLAGS:CAPS"
->GTS_OBJECT_UNSET_FLAGS</A
->          (obj,flag)
-#define     <A
-HREF="gts-object-class.html#GTS-OBJECT-DESTROYED:CAPS"
->GTS_OBJECT_DESTROYED</A
->            (obj)
-
-            <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
->;
-            <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->;
-            <A
-HREF="gts-object-class.html#GTSOBJECTCLASSINFO"
->GtsObjectClassInfo</A
->;
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (<A
-HREF="gts-object-class.html#GTSOBJECTCLASSINITFUNC"
->*GtsObjectClassInitFunc</A
->)       (<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *objclass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (<A
-HREF="gts-object-class.html#GTSOBJECTINITFUNC"
->*GtsObjectInitFunc</A
->)            (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *obj);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (<A
-HREF="gts-object-class.html#GTSARGSETFUNC"
->*GtsArgSetFunc</A
->)                (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *obj);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (<A
-HREF="gts-object-class.html#GTSARGGETFUNC"
->*GtsArgGetFunc</A
->)                (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *obj);
-enum        <A
-HREF="gts-object-class.html#GTSOBJECTFLAGS"
->GtsObjectFlags</A
->;
-            <A
-HREF="gts-object-class.html#GTSCOLOR"
->GtsColor</A
->;
-
-<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
->* <A
-HREF="gts-object-class.html"
->gts_object_class</A
->            (void);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-object-class.html#GTS-OBJECT-CLASS-NEW"
->gts_object_class_new</A
->            (<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *parent_class,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECTCLASSINFO"
->GtsObjectClassInfo</A
-> *info);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-object-class.html#GTS-OBJECT-CLASS-CHECK-CAST"
->gts_object_class_check_cast</A
->     (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> from);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-object-class.html#GTS-OBJECT-CLASS-IS-FROM-CLASS"
->gts_object_class_is_from_class</A
->  (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> from);
-<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
->* <A
-HREF="gts-object-class.html#GTS-OBJECT-CLASS-FROM-NAME"
->gts_object_class_from_name</A
->  (const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *name);
-<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->*  <A
-HREF="gts-object-class.html#GTS-OBJECT-NEW"
->gts_object_new</A
->                  (<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-object-class.html#GTS-OBJECT-INIT"
->gts_object_init</A
->                 (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *klass);
-<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->*  <A
-HREF="gts-object-class.html#GTS-OBJECT-CLONE"
->gts_object_clone</A
->                (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-object-class.html#GTS-OBJECT-ATTRIBUTES"
->gts_object_attributes</A
->           (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *from);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-object-class.html#GTS-OBJECT-CHECK-CAST"
->gts_object_check_cast</A
->           (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> object,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass);
-<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    <A
-HREF="gts-object-class.html#GTS-OBJECT-IS-FROM-CLASS"
->gts_object_is_from_class</A
->        (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> object,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-object-class.html#GTS-OBJECT-RESET-RESERVED"
->gts_object_reset_reserved</A
->       (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-object-class.html#GTS-OBJECT-DESTROY"
->gts_object_destroy</A
->              (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-object-class.html#GTS-FINALIZE"
->gts_finalize</A
->                    (void);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3006"
-></A
-><H2
->Description</H2
-><P
->All GTS objects are derived from this base class. Objects of any class can be constructed using the <A
-HREF="gts-object-class.html#GTS-OBJECT-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_object_new()</CODE
-></A
-> function and destroyed using the <A
-HREF="gts-object-class.html#GTS-OBJECT-DESTROY"
-><CODE
-CLASS="FUNCTION"
->gts_object_destroy()</CODE
-></A
-> function. Default virtual methods include <GTKDOCLINK
-HREF="READ"
-><CODE
-CLASS="FUNCTION"
->read()</CODE
-></GTKDOCLINK
-> and <GTKDOCLINK
-HREF="WRITE"
-><CODE
-CLASS="FUNCTION"
->write()</CODE
-></GTKDOCLINK
-> functions which can be used to read or write associated objects attributes from or to GTS geometrical files.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3017"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3019"
-></A
-><H3
-><A
-NAME="GTS-CLASS-NAME-LENGTH:CAPS"
-></A
->GTS_CLASS_NAME_LENGTH</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_CLASS_NAME_LENGTH 40</PRE
-><P
->Maximum class name length for <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3028"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS:CAPS"
-></A
->GTS_OBJECT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_OBJECT_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3039"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3046"
-></A
-><H3
-><A
-NAME="GTS-OBJECT:CAPS"
-></A
->GTS_OBJECT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_OBJECT(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3057"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3064"
-></A
-><H3
-><A
-NAME="GTS-IS-OBJECT:CAPS"
-></A
->GTS_IS_OBJECT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_OBJECT(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3077"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3082"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS-CAST:CAPS"
-></A
->GTS_OBJECT_CLASS_CAST()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_OBJECT_CLASS_CAST(objklass, type, klass)</PRE
-><P
->This macro is used to define casting macros for object classes. You should need it only when writing new object class functions.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3090"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->objklass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3097"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->type</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The class type to cast <CODE
-CLASS="PARAMETER"
->objklass</CODE
-> to (example: GtsObjectClass).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3103"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the class to cast <CODE
-CLASS="PARAMETER"
->objklass</CODE
-> to (example: <A
-HREF="gts-object-class.html"
-><CODE
-CLASS="FUNCTION"
->gts_object_class()</CODE
-></A
->).
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3111"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CAST:CAPS"
-></A
->GTS_OBJECT_CAST()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_OBJECT_CAST(obj, type, klass)</PRE
-><P
->This macro is used to define casting macros for object. You should need it only when writing new object functions.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3119"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3126"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->type</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the object type to cast <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to (example: GtsObject).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3132"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the object class to cast <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to (example: <GTKDOCLINK
-HREF="GTS-OBJECT"
-><CODE
-CLASS="FUNCTION"
->gts_object()</CODE
-></GTKDOCLINK
->).
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3140"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-FLAGS:CAPS"
-></A
->GTS_OBJECT_FLAGS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_OBJECT_FLAGS(obj)             (GTS_OBJECT (obj)->flags)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3148"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3153"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-SET-FLAGS:CAPS"
-></A
->GTS_OBJECT_SET_FLAGS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_OBJECT_SET_FLAGS(obj,flag)	  G_STMT_START{ (GTS_OBJECT_FLAGS (obj) |= (flag)); }G_STMT_END</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3161"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3166"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->flag</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3171"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-UNSET-FLAGS:CAPS"
-></A
->GTS_OBJECT_UNSET_FLAGS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_OBJECT_UNSET_FLAGS(obj,flag)  G_STMT_START{ (GTS_OBJECT_FLAGS (obj) &= ~(flag)); }G_STMT_END</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3179"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3184"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->flag</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3189"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-DESTROYED:CAPS"
-></A
->GTS_OBJECT_DESTROYED()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_OBJECT_DESTROYED(obj)         ((GTS_OBJECT_FLAGS (obj) & GTS_DESTROYED) != 0)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3197"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3202"
-></A
-><H3
-><A
-NAME="GTSOBJECTCLASS"
-></A
->GtsObjectClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClassInfo info;
-  GtsObjectClass * parent_class;
-
-  void        (* clone)      (GtsObject *, GtsObject *);
-  void        (* destroy)    (GtsObject *);
-  void        (* read)       (GtsObject **, GtsFile *);
-  void        (* write)      (GtsObject *, FILE *);
-  GtsColor    (* color)      (GtsObject *);
-  void        (* attributes) (GtsObject *, GtsObject *);
-} GtsObjectClass;</PRE
-><P
->The base object class structure. All the virtual functions <CODE
-CLASS="PARAMETER"
->clone</CODE
->, <CODE
-CLASS="PARAMETER"
->destroy</CODE
->, <CODE
-CLASS="PARAMETER"
->read</CODE
-> and <CODE
-CLASS="PARAMETER"
->write</CODE
-> can be overloaded. The default <CODE
-CLASS="PARAMETER"
->read</CODE
-> and <CODE
-CLASS="PARAMETER"
->write</CODE
-> methods are undefined. The default <CODE
-CLASS="PARAMETER"
->clone</CODE
-> method just copies the object structure. The default <CODE
-CLASS="PARAMETER"
->destroy</CODE
-> method frees the memory allocated for a given object structure.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3217"
-></A
-><H3
-><A
-NAME="GTSOBJECT"
-></A
->GtsObject</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass * klass;
-
-  gpointer reserved;
-  guint32 flags;
-} GtsObject;</PRE
-><P
->The base object structure.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3225"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *<CODE
-CLASS="STRUCTFIELD"
->klass</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The object class.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3231"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->reserved</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Used internally by the library.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3237"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT32"
->guint32</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->flags</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Used internally.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3243"
-></A
-><H3
-><A
-NAME="GTSOBJECTCLASSINFO"
-></A
->GtsObjectClassInfo</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  gchar name[GTS_CLASS_NAME_LENGTH];
-  guint object_size;
-  guint class_size;
-  GtsObjectClassInitFunc class_init_func;
-  GtsObjectInitFunc object_init_func;
-  GtsArgSetFunc arg_set_func;
-  GtsArgGetFunc arg_get_func;
-} GtsObjectClassInfo;</PRE
-><P
->Informations about a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->, including name, size of the object structure to be allocated when constructing the object, size of the object class structure to be allocated when instanciating the object class, class initialization function, object initialization function.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3252"
-></A
-><H3
-><A
-NAME="GTSOBJECTCLASSINITFUNC"
-></A
->GtsObjectClassInitFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (*GtsObjectClassInitFunc)       (<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *objclass);</PRE
-><P
->A function to call to initialize an object class.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3262"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->objclass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
-> to be initialized.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3269"
-></A
-><H3
-><A
-NAME="GTSOBJECTINITFUNC"
-></A
->GtsObjectInitFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (*GtsObjectInitFunc)            (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *obj);</PRE
-><P
->A function to call to initialize an object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3279"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3286"
-></A
-><H3
-><A
-NAME="GTSARGSETFUNC"
-></A
->GtsArgSetFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (*GtsArgSetFunc)                (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *obj);</PRE
-><P
->Defined for future use.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3296"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3303"
-></A
-><H3
-><A
-NAME="GTSARGGETFUNC"
-></A
->GtsArgGetFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        (*GtsArgGetFunc)                (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *obj);</PRE
-><P
->Defined for future use.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3313"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3320"
-></A
-><H3
-><A
-NAME="GTSOBJECTFLAGS"
-></A
->enum GtsObjectFlags</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef enum
-{
-  GTS_DESTROYED         = 1 << 0,
-  GTS_USER_FLAG         = 1 /* user flags start from here */
-} GtsObjectFlags;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3327"
-></A
-><H3
-><A
-NAME="GTSCOLOR"
-></A
->GtsColor</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  gfloat r, g, b;
-} GtsColor;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3334"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS"
-></A
->gts_object_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
->* gts_object_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3344"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3351"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS-NEW"
-></A
->gts_object_class_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_object_class_new            (<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *parent_class,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECTCLASSINFO"
->GtsObjectClassInfo</A
-> *info);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3363"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->parent_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3370"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->info</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASSINFO"
-><SPAN
-CLASS="TYPE"
->GtsObjectClassInfo</SPAN
-></A
->, description of the new class to create.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3377"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
-> derived from <CODE
-CLASS="PARAMETER"
->parent_class</CODE
-> and described by
-<CODE
-CLASS="PARAMETER"
->info</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3386"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS-CHECK-CAST"
-></A
->gts_object_class_check_cast ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_object_class_check_cast     (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> from);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3398"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3405"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->from</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3412"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <CODE
-CLASS="PARAMETER"
->klass</CODE
-> while emitting warnings if <CODE
-CLASS="PARAMETER"
->klass</CODE
-> is not derived from
-<CODE
-CLASS="PARAMETER"
->from</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3420"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS-IS-FROM-CLASS"
-></A
->gts_object_class_is_from_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_object_class_is_from_class  (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> from);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3432"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3439"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->from</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3446"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <CODE
-CLASS="PARAMETER"
->klass</CODE
-> if <CODE
-CLASS="PARAMETER"
->klass</CODE
-> is equal to <CODE
-CLASS="PARAMETER"
->from</CODE
-> or if <CODE
-CLASS="PARAMETER"
->klass</CODE
-> is derived
-from <CODE
-CLASS="PARAMETER"
->from</CODE
->, <TT
-CLASS="LITERAL"
->NULL</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3457"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLASS-FROM-NAME"
-></A
->gts_object_class_from_name ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
->* gts_object_class_from_name  (const <GTKDOCLINK
-HREF="GCHAR"
->gchar</GTKDOCLINK
-> *name);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3468"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->name</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the name of a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3475"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
-> with name <CODE
-CLASS="PARAMETER"
->name</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if it hasn't been 
-instantiated yet.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3484"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-NEW"
-></A
->gts_object_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->*  gts_object_new                  (<A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *klass);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3495"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3502"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new initialized object of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3508"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-INIT"
-></A
->gts_object_init ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_object_init                 (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
->GtsObjectClass</A
-> *klass);</PRE
-><P
->Calls the init method of <CODE
-CLASS="PARAMETER"
->klass</CODE
-> with <CODE
-CLASS="PARAMETER"
->object</CODE
-> as argument. This is done 
-recursively in the correct order (from the base class to the top). You
-should rarely need this function as it is called automatically by the
-constructor for each class.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3522"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3529"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3536"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CLONE"
-></A
->gts_object_clone ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->*  gts_object_clone                (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object);</PRE
-><P
->Calls the clone method of <CODE
-CLASS="PARAMETER"
->object</CODE
->. The call to this function will fail
-if no clone method exists for the given object.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3548"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3555"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new object clone of <CODE
-CLASS="PARAMETER"
->object</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3561"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-ATTRIBUTES"
-></A
->gts_object_attributes ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_object_attributes           (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *from);</PRE
-><P
->Calls the <GTKDOCLINK
-HREF="ATTRIBUTES"
-><CODE
-CLASS="FUNCTION"
->attributes()</CODE
-></GTKDOCLINK
-> method of <CODE
-CLASS="PARAMETER"
->object</CODE
-> using <CODE
-CLASS="PARAMETER"
->from</CODE
-> as source.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3577"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3584"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->from</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3591"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-CHECK-CAST"
-></A
->gts_object_check_cast ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_object_check_cast           (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> object,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3603"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3610"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3617"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <CODE
-CLASS="PARAMETER"
->object</CODE
-> while emitting warnings if <CODE
-CLASS="PARAMETER"
->object</CODE
-> is not of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3625"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-IS-FROM-CLASS"
-></A
->gts_object_is_from_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
->    gts_object_is_from_class        (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> object,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> klass);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3637"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3644"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3651"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <CODE
-CLASS="PARAMETER"
->object</CODE
-> if <CODE
-CLASS="PARAMETER"
->object</CODE
-> is of class <CODE
-CLASS="PARAMETER"
->klass</CODE
-> or of a class derived from
-<CODE
-CLASS="PARAMETER"
->klass</CODE
->, <TT
-CLASS="LITERAL"
->NULL</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3661"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-RESET-RESERVED"
-></A
->gts_object_reset_reserved ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_object_reset_reserved       (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object);</PRE
-><P
->Reset the reserved field of <CODE
-CLASS="PARAMETER"
->object</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3673"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3680"
-></A
-><H3
-><A
-NAME="GTS-OBJECT-DESTROY"
-></A
->gts_object_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_object_destroy              (<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *object);</PRE
-><P
->Calls the destroy method of <CODE
-CLASS="PARAMETER"
->object</CODE
->, freeing all memory allocated for it.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN3692"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->object</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN3699"
-></A
-><H3
-><A
-NAME="GTS-FINALIZE"
-></A
->gts_finalize ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_finalize                    (void);</PRE
-><P
->Free all the memory allocated by the object system of GTS. No other
-GTS function can be called after this function has been called.</P
-><P
-></P
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="c2915.html"
-><B
-><<< Geometrical Object Hierarchy</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-container-classes.html"
-><B
->Container classes >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-out-of-core-simplification.html b/doc/html/gts-out-of-core-simplification.html
deleted file mode 100644
index a4c5eb1..0000000
--- a/doc/html/gts-out-of-core-simplification.html
+++ /dev/null
@@ -1,2086 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Out-of-core simplification</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="PREVIOUS"
-TITLE="Surface simplification and refinement"
-HREF="gts-surface-simplification-and-refinement.html"><LINK
-REL="NEXT"
-TITLE="Isosurfaces from 3D functions"
-HREF="gts-isosurfaces-from-3d-functions.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-surface-simplification-and-refinement.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c12206.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-isosurfaces-from-3d-functions.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-OUT-OF-CORE-SIMPLIFICATION"
-></A
->Out-of-core simplification</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN13242"
-></A
-><H2
->Name</H2
->Out-of-core simplification -- objects for simplification based on vertex clustering.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN13245"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-CLASS:CAPS"
->GTS_CLUSTER_CLASS</A
->               (klass)
-#define     <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER:CAPS"
->GTS_CLUSTER</A
->                     (obj)
-#define     <A
-HREF="gts-out-of-core-simplification.html#GTS-IS-CLUSTER:CAPS"
->GTS_IS_CLUSTER</A
->                  (obj)
-            <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
->;
-            <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
->;
-            <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERID"
->GtsClusterId</A
->;
-
-<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
->* <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-CLASS"
->gts_cluster_class</A
->          (void);
-<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
->* <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-NEW"
->gts_cluster_new</A
->                 (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
-> *klass,
-                                             <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERID"
->GtsClusterId</A
-> id,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *vklass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-ADD"
->gts_cluster_add</A
->                 (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
-> *c,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-UPDATE"
->gts_cluster_update</A
->              (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
-> *c);
-
-#define     <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-CLASS:CAPS"
->GTS_CLUSTER_GRID_CLASS</A
->          (klass)
-#define     <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID:CAPS"
->GTS_CLUSTER_GRID</A
->                (obj)
-#define     <A
-HREF="gts-out-of-core-simplification.html#GTS-IS-CLUSTER-GRID:CAPS"
->GTS_IS_CLUSTER_GRID</A
->             (obj)
-            <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
->GtsClusterGridClass</A
->;
-            <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
->;
-
-<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
->GtsClusterGridClass</A
->* <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-CLASS"
->gts_cluster_grid_class</A
-> (void);
-<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
->* <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-NEW"
->gts_cluster_grid_new</A
->        (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
->GtsClusterGridClass</A
-> *klass,
-                                             <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
-> *cluster_class,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-ADD-TRIANGLE"
->gts_cluster_grid_add_triangle</A
->   (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
-> *cluster_grid,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
->    <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-UPDATE"
->gts_cluster_grid_update</A
->         (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
-> *cluster_grid);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN13293"
-></A
-><H2
->Description</H2
-><P
->Using vertex clusters and vertex cluster grids it is easy to design out-of-core algorithms for surface simplification. This approach has been detailed in a recent paper by Lindstrom and Turk ("Out-of-core simplification of large polygonal models", 2000).</P
-><P
->Vertex clusters are just groups of vertices collapsed into a single vertex. The position of this single representative vertex can be derived with different techniques. The default GTS implementation <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
-> just takes the average of the positions of the vertices in a given cluster as the representative position. Clusters are created using <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_cluster_new()</CODE
-></A
->. The cluster is initially empty and the position of the representative vertex is set to the origin. Vertices are added using <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-ADD"
-><CODE
-CLASS="FUNCTION"
->gts_cluster_add()</CODE
-></A
-> which calls the <GTKDOCLINK
-HREF="ADD"
-><CODE
-CLASS="FUNCTION"
->add()</CODE
-></GTKDOCLINK
-> virtual method of <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->. Once all the vertices have been added <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-UPDATE"
-><CODE
-CLASS="FUNCTION"
->gts_cluster_update()</CODE
-></A
-> computes the position of the representative vertex.</P
-><P
->Clusters are grouped using the <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
-><SPAN
-CLASS="TYPE"
->GtsClusterGrid</SPAN
-></A
-> object which is just an implementation of the hash-table based regular grid of Lindstrom and Turk. This regular grid is created using <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_cluster_grid_new()</CODE
-></A
->. Once created triangles of the surface to be simplified can be added using <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-ADD-TRIANGLE"
-><CODE
-CLASS="FUNCTION"
->gts_cluster_grid_add_triangle()</CODE
-></A
-> which adds the vertices of the triangle to the <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
-> they belong to and adds the corresponding faces to the simplified surface. After all the triangles of the original surface have been added the position of the representative vertex of all the vertex clusters is computed using <A
-HREF="gts-out-of-core-simplification.html#GTS-CLUSTER-GRID-UPDATE"
-><CODE
-CLASS="FUNCTION"
->gts_cluster_grid_update()</CODE
-></A
->. The simplified surface is then complete and the cluster grid can be destroyed using <A
-HREF="gts-object-class.html#GTS-OBJECT-DESTROY"
-><CODE
-CLASS="FUNCTION"
->gts_object_destroy()</CODE
-></A
->.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN13322"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13324"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-CLASS:CAPS"
-></A
->GTS_CLUSTER_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CLUSTER_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13335"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13342"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER:CAPS"
-></A
->GTS_CLUSTER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CLUSTER(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13353"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13360"
-></A
-><H3
-><A
-NAME="GTS-IS-CLUSTER:CAPS"
-></A
->GTS_IS_CLUSTER()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_CLUSTER(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13373"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13378"
-></A
-><H3
-><A
-NAME="GTSCLUSTERCLASS"
-></A
->GtsClusterClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-
-  void (* add) (GtsCluster * c, GtsPoint * p, gpointer data);
-  void (* update) (GtsCluster * c);
-} GtsClusterClass;</PRE
-><P
->The cluster class derived from <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->. Virtual function <CODE
-CLASS="PARAMETER"
->add</CODE
-> adds point <CODE
-CLASS="PARAMETER"
->p</CODE
-> to the cluster while passing user-data <CODE
-CLASS="PARAMETER"
->data</CODE
->. Virtual function <CODE
-CLASS="PARAMETER"
->update</CODE
-> computes the position of the representative vertex.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13391"
-></A
-><H3
-><A
-NAME="GTSCLUSTER"
-></A
->GtsCluster</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject parent;
-
-  GtsClusterId id;
-  GtsVertex * v;
-  guint n;
-} GtsCluster;</PRE
-><P
->The cluster object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13399"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->parent</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13405"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERID"
->GtsClusterId</A
-> <CODE
-CLASS="STRUCTFIELD"
->id</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Unique identifier.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13411"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *<CODE
-CLASS="STRUCTFIELD"
->v</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-><A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> representative of all the vertices in the cluster.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13419"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of vertices added to the cluster.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13425"
-></A
-><H3
-><A
-NAME="GTSCLUSTERID"
-></A
->GtsClusterId</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  guint x, y, z;
-} GtsClusterId;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13432"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-CLASS"
-></A
->gts_cluster_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
->* gts_cluster_class          (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13442"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13449"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-NEW"
-></A
->gts_cluster_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
->* gts_cluster_new                 (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
-> *klass,
-                                             <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERID"
->GtsClusterId</A
-> id,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *vklass);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13462"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13469"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->id</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the id of the new cluster.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13474"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vklass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
-> for the representative vertex of the cluster.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13481"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13488"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-ADD"
-></A
->gts_cluster_add ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_cluster_add                 (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
-> *c,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Adds point <CODE
-CLASS="PARAMETER"
->p</CODE
-> to cluster <CODE
-CLASS="PARAMETER"
->c</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13503"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13510"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13517"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to pass to the <GTKDOCLINK
-HREF="ADD"
-><CODE
-CLASS="FUNCTION"
->add()</CODE
-></GTKDOCLINK
-> virtual method of <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13526"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-UPDATE"
-></A
->gts_cluster_update ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_cluster_update              (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
->GtsCluster</A
-> *c);</PRE
-><P
->Updates the position of the vertex representative of all the
-vertices added to <CODE
-CLASS="PARAMETER"
->c</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13538"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13545"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-GRID-CLASS:CAPS"
-></A
->GTS_CLUSTER_GRID_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CLUSTER_GRID_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterGridClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13556"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterGridClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13563"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-GRID:CAPS"
-></A
->GTS_CLUSTER_GRID()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_CLUSTER_GRID(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13574"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13581"
-></A
-><H3
-><A
-NAME="GTS-IS-CLUSTER-GRID:CAPS"
-></A
->GTS_IS_CLUSTER_GRID()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_CLUSTER_GRID(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTER"
-><SPAN
-CLASS="TYPE"
->GtsCluster</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13594"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13599"
-></A
-><H3
-><A
-NAME="GTSCLUSTERGRIDCLASS"
-></A
->GtsClusterGridClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsClusterGridClass;</PRE
-><P
->The cluster grid class derived from <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13608"
-></A
-><H3
-><A
-NAME="GTSCLUSTERGRID"
-></A
->GtsClusterGrid</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject parent;
-
-  GtsSurface * surface;
-  GtsBBox * bbox;
-  GtsVector size;
-
-  GtsClusterClass * cluster_class;
-  GHashTable * clusters;
-} GtsClusterGrid;</PRE
-><P
->The cluster grid object. </P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13616"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->parent</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13622"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->surface</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Surface being simplified.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13628"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *<CODE
-CLASS="STRUCTFIELD"
->bbox</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Bounding box of the original surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13634"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->size</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Size of the simplification grid.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13640"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
-> *<CODE
-CLASS="STRUCTFIELD"
->cluster_class</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Private.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13646"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GHASHTABLE"
->GHashTable</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->clusters</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Private.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13652"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-GRID-CLASS"
-></A
->gts_cluster_grid_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
->GtsClusterGridClass</A
->* gts_cluster_grid_class (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13662"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterGridClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13669"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-GRID-NEW"
-></A
->gts_cluster_grid_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
->* gts_cluster_grid_new        (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
->GtsClusterGridClass</A
-> *klass,
-                                             <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERCLASS"
->GtsClusterClass</A
-> *cluster_class,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBOX"
->GtsBBox</A
-> *bbox,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13684"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRIDCLASS"
-><SPAN
-CLASS="TYPE"
->GtsClusterGridClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13691"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cluster_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the klass to be used for the vertex clusters.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13696"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the simplified surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13701"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->bbox</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> bounding box of the surface to be simplified.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13706"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->delta</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the size of one grid cell of the simplification grid.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13711"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
-><SPAN
-CLASS="TYPE"
->GtsClusterGrid</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13718"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-GRID-ADD-TRIANGLE"
-></A
->gts_cluster_grid_add_triangle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_cluster_grid_add_triangle   (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
-> *cluster_grid,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Adds the triangle defined by <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
-> to the respective clusters
-of <CODE
-CLASS="PARAMETER"
->cluster_grid</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13737"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cluster_grid</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
-><SPAN
-CLASS="TYPE"
->GtsClusterGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13744"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13751"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13758"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13765"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to the cluster <GTKDOCLINK
-HREF="ADD"
-><CODE
-CLASS="FUNCTION"
->add()</CODE
-></GTKDOCLINK
-> method.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13772"
-></A
-><H3
-><A
-NAME="GTS-CLUSTER-GRID-UPDATE"
-></A
->gts_cluster_grid_update ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
->    gts_cluster_grid_update         (<A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
->GtsClusterGrid</A
-> *cluster_grid);</PRE
-><P
->Updates the representative vertices of all the clusters of <CODE
-CLASS="PARAMETER"
->cluster_grid</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13784"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cluster_grid</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-out-of-core-simplification.html#GTSCLUSTERGRID"
-><SPAN
-CLASS="TYPE"
->GtsClusterGrid</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13791"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
-> describing the statistics for the number of vertices
-added to each cluster of <CODE
-CLASS="PARAMETER"
->cluster_grid</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-surface-simplification-and-refinement.html"
-><B
-><<< Surface simplification and refinement</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-isosurfaces-from-3d-functions.html"
-><B
->Isosurfaces from 3D functions >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-points.html b/doc/html/gts-points.html
deleted file mode 100644
index 4582baf..0000000
--- a/doc/html/gts-points.html
+++ /dev/null
@@ -1,4021 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Points</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Containee classes"
-HREF="gts-containee-classes.html"><LINK
-REL="NEXT"
-TITLE="Vertices"
-HREF="gts-vertices.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-containee-classes.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-vertices.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-POINTS"
-></A
->Points</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN4350"
-></A
-><H2
->Name</H2
->Points -- point object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN4353"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-points.html#GTS-POINT-CLASS:CAPS"
->GTS_POINT_CLASS</A
->                 (klass)
-#define     <A
-HREF="gts-points.html#GTS-POINT:CAPS"
->GTS_POINT</A
->                       (obj)
-#define     <A
-HREF="gts-points.html#GTS-IS-POINT:CAPS"
->GTS_IS_POINT</A
->                    (obj)
-            <A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
->;
-            <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->;
-
-<A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
->* <A
-HREF="gts-points.html#GTS-POINT-CLASS"
->gts_point_class</A
->              (void);
-<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   <A
-HREF="gts-points.html#GTS-POINT-NEW"
->gts_point_new</A
->                   (<A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-points.html#GTS-POINT-SET"
->gts_point_set</A
->                   (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z);
-#define     <A
-HREF="gts-points.html#GTS-POINT-IS-IN-RECTANGLE"
->gts_point_is_in_rectangle</A
->       (p, p1, p2)
-<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   <A
-HREF="gts-points.html#GTS-SEGMENT-TRIANGLE-INTERSECTION"
->gts_segment_triangle_intersection</A
->
-                                            (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> boundary,
-                                             <A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
-> *klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-points.html#GTS-POINT-TRANSFORM"
->gts_point_transform</A
->             (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-DISTANCE"
->gts_point_distance</A
->              (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-DISTANCE2"
->gts_point_distance2</A
->             (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-ORIENTATION-3D"
->gts_point_orientation_3d</A
->        (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p4);
-<GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        <A
-HREF="gts-points.html#GTS-POINT-ORIENTATION-3D-SOS"
->gts_point_orientation_3d_sos</A
->    (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p4);
-enum        <A
-HREF="gts-points.html#GTSINTERSECT"
->GtsIntersect</A
->;
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-IN-CIRCLE"
->gts_point_in_circle</A
->             (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-IN-TRIANGLE-CIRCLE"
->gts_point_in_triangle_circle</A
->    (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<A
-HREF="gts-points.html#GTSINTERSECT"
->GtsIntersect</A
-> <A
-HREF="gts-points.html#GTS-POINT-IS-IN-TRIANGLE"
->gts_point_is_in_triangle</A
->       (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-ORIENTATION"
->gts_point_orientation</A
->           (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3);
-<GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        <A
-HREF="gts-points.html#GTS-POINT-ORIENTATION-SOS"
->gts_point_orientation_sos</A
->       (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-SEGMENT-DISTANCE2"
->gts_point_segment_distance2</A
->     (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-SEGMENT-DISTANCE"
->gts_point_segment_distance</A
->      (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-points.html#GTS-POINT-SEGMENT-CLOSEST"
->gts_point_segment_closest</A
->       (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *closest);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-TRIANGLE-DISTANCE"
->gts_point_triangle_distance</A
->     (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-points.html#GTS-POINT-TRIANGLE-CLOSEST"
->gts_point_triangle_closest</A
->      (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *closest);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-points.html#GTS-POINT-TRIANGLE-DISTANCE2"
->gts_point_triangle_distance2</A
->    (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-points.html#GTS-POINT-IS-INSIDE-SURFACE"
->gts_point_is_inside_surface</A
->     (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> is_open);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4462"
-></A
-><H2
->Description</H2
-><P
->Three-dimensional points and a few geometrical functions.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4465"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4467"
-></A
-><H3
-><A
-NAME="GTS-POINT-CLASS:CAPS"
-></A
->GTS_POINT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_POINT_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-points.html#GTSPOINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPointClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4478"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of the <A
-HREF="gts-points.html#GTSPOINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPointClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4485"
-></A
-><H3
-><A
-NAME="GTS-POINT:CAPS"
-></A
->GTS_POINT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_POINT(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4496"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of the <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4503"
-></A
-><H3
-><A
-NAME="GTS-IS-POINT:CAPS"
-></A
->GTS_IS_POINT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_POINT(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a descendant of a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4516"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4521"
-></A
-><H3
-><A
-NAME="GTSPOINTCLASS"
-></A
->GtsPointClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-  gboolean binary;
-} GtsPointClass;</PRE
-><P
->The class for <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->. No virtual functions are associated.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4530"
-></A
-><H3
-><A
-NAME="GTSPOINT"
-></A
->GtsPoint</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  gdouble x, y, z; /* must be contiguous (cast to robust functions) */
-} GtsPoint;</PRE
-><P
->The point object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4538"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4544"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->x</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->x coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4550"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->y</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->y coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4556"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->z</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->z coordinate.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4562"
-></A
-><H3
-><A
-NAME="GTS-POINT-CLASS"
-></A
->gts_point_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
->* gts_point_class              (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4572"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-points.html#GTSPOINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPointClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4579"
-></A
-><H3
-><A
-NAME="GTS-POINT-NEW"
-></A
->gts_point_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   gts_point_new                   (<A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4593"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPointClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4600"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the x-coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4605"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the y-coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4610"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the z-coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4615"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4622"
-></A
-><H3
-><A
-NAME="GTS-POINT-SET"
-></A
->gts_point_set ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_point_set                   (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z);</PRE
-><P
->Sets the coordinates of <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4637"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4644"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the x-coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4649"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the y-coordinate.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4654"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the z-coordinate.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4659"
-></A
-><H3
-><A
-NAME="GTS-POINT-IS-IN-RECTANGLE"
-></A
->gts_point_is_in_rectangle()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_point_is_in_rectangle(p, p1, p2)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->p</CODE
-> is contained in the box (boundary included) defined by its two corners <CODE
-CLASS="PARAMETER"
->p1</CODE
-> and <CODE
-CLASS="PARAMETER"
->p2</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4672"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4679"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the lower-left front corner of the box.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4684"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the upper-right back corner of the box.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4689"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-TRIANGLE-INTERSECTION"
-></A
->gts_segment_triangle_intersection ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   gts_segment_triangle_intersection
-                                            (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> boundary,
-                                             <A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
-> *klass);</PRE
-><P
->Checks if <CODE
-CLASS="PARAMETER"
->s</CODE
-> intersects <CODE
-CLASS="PARAMETER"
->t</CODE
->. If this is the case, creates a new
-point pi intersection of <CODE
-CLASS="PARAMETER"
->s</CODE
-> with <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
->This function is geometrically robust in the sense that it will not
-return a point if <CODE
-CLASS="PARAMETER"
->s</CODE
-> and <CODE
-CLASS="PARAMETER"
->t</CODE
-> do not intersect and will return a
-point if <CODE
-CLASS="PARAMETER"
->s</CODE
-> and <CODE
-CLASS="PARAMETER"
->t</CODE
-> do intersect. However, the point coordinates are
-subject to round-off errors.</P
-><P
->Note that this function will not return any point if <CODE
-CLASS="PARAMETER"
->s</CODE
-> is contained in
-the plane defined by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4715"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4722"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4729"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->boundary</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if <TT
-CLASS="LITERAL"
->TRUE</TT
->, the boundary of <CODE
-CLASS="PARAMETER"
->t</CODE
-> is taken into account.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4736"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPointClass</SPAN
-></A
-> to be used for the new point.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4743"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a summit of <CODE
-CLASS="PARAMETER"
->t</CODE
-> (if <CODE
-CLASS="PARAMETER"
->boundary</CODE
-> is set to <TT
-CLASS="LITERAL"
->TRUE</TT
->), one of the endpoints
-of <CODE
-CLASS="PARAMETER"
->s</CODE
-> or a new <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->, intersection of <CODE
-CLASS="PARAMETER"
->s</CODE
-> with <CODE
-CLASS="PARAMETER"
->t</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->s</CODE
-> 
-and <CODE
-CLASS="PARAMETER"
->t</CODE
-> don't intersect.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4759"
-></A
-><H3
-><A
-NAME="GTS-POINT-TRANSFORM"
-></A
->gts_point_transform ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_point_transform             (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
->Transform the coordinates of <CODE
-CLASS="PARAMETER"
->p</CODE
-> according to <CODE
-CLASS="PARAMETER"
->m</CODE
->. (p[] becomes m[][].p[]).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4773"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4780"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> representing the transformation to 
-apply to the coordinates of <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4788"
-></A
-><H3
-><A
-NAME="GTS-POINT-DISTANCE"
-></A
->gts_point_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_distance              (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4800"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4807"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4814"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the Euclidean distance between <CODE
-CLASS="PARAMETER"
->p1</CODE
-> and <CODE
-CLASS="PARAMETER"
->p2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4821"
-></A
-><H3
-><A
-NAME="GTS-POINT-DISTANCE2"
-></A
->gts_point_distance2 ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_distance2             (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4833"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4840"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4847"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the square of the Euclidean distance between <CODE
-CLASS="PARAMETER"
->p1</CODE
-> and <CODE
-CLASS="PARAMETER"
->p2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4854"
-></A
-><H3
-><A
-NAME="GTS-POINT-ORIENTATION-3D"
-></A
->gts_point_orientation_3d ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_orientation_3d        (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p4);</PRE
-><P
->Checks if <CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies above, below or on the plane passing through the
-points <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
->. Below is defined so that <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
->
-appear in counterclockwise order when viewed from above the
-plane. The returned value is an approximation of six times the
-signed volume of the tetrahedron defined by the four points. This
-function uses adaptive floating point arithmetic and is
-consequently geometrically robust.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4875"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4882"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4889"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4896"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p4</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4903"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a positive value if <CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies below, a negative value if
-<CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies above the plane, zero if the four points are coplanar.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4910"
-></A
-><H3
-><A
-NAME="GTS-POINT-ORIENTATION-3D-SOS"
-></A
->gts_point_orientation_3d_sos ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        gts_point_orientation_3d_sos    (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p4);</PRE
-><P
->Checks if <CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies above or below the plane passing through the
-points <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
->. Below is defined so that <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
->
-appear in counterclockwise order when viewed from above the
-plane. This function uses adaptive floating point arithmetic and is
-consequently geometrically robust.</P
-><P
->Simulation of Simplicity (SoS) is used to break ties when the
-orientation is degenerate (i.e. <CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies on the plane defined by
-<CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
->).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4936"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4943"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4950"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4957"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p4</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4964"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> +1 if <CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies below, -1 if <CODE
-CLASS="PARAMETER"
->p4</CODE
-> lies above the plane.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4971"
-></A
-><H3
-><A
-NAME="GTSINTERSECT"
-></A
->enum GtsIntersect</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef enum 
-{ 
-  GTS_OUT = -1,
-  GTS_ON = 0,
-  GTS_IN = 1
-} GtsIntersect;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN4978"
-></A
-><H3
-><A
-NAME="GTS-POINT-IN-CIRCLE"
-></A
->gts_point_in_circle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_in_circle             (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3);</PRE
-><P
->Tests if the planar projection (x, y) of <CODE
-CLASS="PARAMETER"
->p</CODE
-> is inside or outside the
-circle defined by the planar projection of <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN4996"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5003"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5010"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5017"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5024"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a positive number if <CODE
-CLASS="PARAMETER"
->p</CODE
-> lies inside,
-a negative number if <CODE
-CLASS="PARAMETER"
->p</CODE
-> lies outside and zero if <CODE
-CLASS="PARAMETER"
->p</CODE
-> lies on 
-the circle.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5032"
-></A
-><H3
-><A
-NAME="GTS-POINT-IN-TRIANGLE-CIRCLE"
-></A
->gts_point_in_triangle_circle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_in_triangle_circle    (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->Tests if the planar projection (x, y) of <CODE
-CLASS="PARAMETER"
->p</CODE
-> is inside or outside
-the circumcircle of the planar projection of <CODE
-CLASS="PARAMETER"
->t</CODE
->. This function is
-geometrically robust.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5046"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5053"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5060"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a positive number if <CODE
-CLASS="PARAMETER"
->p</CODE
-> lies inside,
-a negative number if <CODE
-CLASS="PARAMETER"
->p</CODE
-> lies outside and zero if <CODE
-CLASS="PARAMETER"
->p</CODE
-> lies on 
-the circumcircle of <CODE
-CLASS="PARAMETER"
->t</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5069"
-></A
-><H3
-><A
-NAME="GTS-POINT-IS-IN-TRIANGLE"
-></A
->gts_point_is_in_triangle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSINTERSECT"
->GtsIntersect</A
-> gts_point_is_in_triangle       (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->Tests if the planar projection (x, y) of <CODE
-CLASS="PARAMETER"
->p</CODE
-> is inside, outside or
-on the boundary of the planar projection of <CODE
-CLASS="PARAMETER"
->t</CODE
->.  This function is
-geometrically robust.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5083"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5090"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5097"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->GTS_IN</TT
-> if <CODE
-CLASS="PARAMETER"
->p</CODE
-> is inside <CODE
-CLASS="PARAMETER"
->t</CODE
->, <TT
-CLASS="LITERAL"
->GTS_ON</TT
-> if <CODE
-CLASS="PARAMETER"
->p</CODE
-> is on the boundary of
-<CODE
-CLASS="PARAMETER"
->t</CODE
->, <TT
-CLASS="LITERAL"
->GTS_OUT</TT
-> otherwise.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5109"
-></A
-><H3
-><A
-NAME="GTS-POINT-ORIENTATION"
-></A
->gts_point_orientation ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_orientation           (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3);</PRE
-><P
->Checks for orientation of the projection of three points on the
-(x,y) plane. The result is also an approximation of twice the
-signed area of the triangle defined by the three points. This
-function uses adaptive floating point arithmetic and is
-consequently geometrically robust.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5122"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5129"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5136"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5143"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a positive value if <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
-> appear in
-counterclockwise order, a negative value if they appear in
-clockwise order and zero if they are colinear.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5151"
-></A
-><H3
-><A
-NAME="GTS-POINT-ORIENTATION-SOS"
-></A
->gts_point_orientation_sos ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        gts_point_orientation_sos       (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p1,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p2,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p3);</PRE
-><P
->Checks for orientation of the projection of three points on the
-(x,y) plane.</P
-><P
->Simulation of Simplicity (SoS) is used to break ties when the
-orientation is degenerate (i.e. <CODE
-CLASS="PARAMETER"
->p3</CODE
-> lies on the line defined by
-<CODE
-CLASS="PARAMETER"
->p1</CODE
-> and <CODE
-CLASS="PARAMETER"
->p2</CODE
->).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5168"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5175"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5182"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5189"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a positive value if <CODE
-CLASS="PARAMETER"
->p1</CODE
->, <CODE
-CLASS="PARAMETER"
->p2</CODE
-> and <CODE
-CLASS="PARAMETER"
->p3</CODE
-> appear in
-counterclockwise order or a negative value if they appear in
-clockwise order.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5197"
-></A
-><H3
-><A
-NAME="GTS-POINT-SEGMENT-DISTANCE2"
-></A
->gts_point_segment_distance2 ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_segment_distance2     (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5209"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5216"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5223"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the square of the minimun Euclidean distance between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5230"
-></A
-><H3
-><A
-NAME="GTS-POINT-SEGMENT-DISTANCE"
-></A
->gts_point_segment_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_segment_distance      (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5242"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5249"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5256"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimun Euclidean distance between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5263"
-></A
-><H3
-><A
-NAME="GTS-POINT-SEGMENT-CLOSEST"
-></A
->gts_point_segment_closest ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_point_segment_closest       (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *closest);</PRE
-><P
->Set the coordinates of <CODE
-CLASS="PARAMETER"
->closest</CODE
-> to the coordinates of the point belonging
-to <CODE
-CLASS="PARAMETER"
->s</CODE
-> closest to <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5279"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5286"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5293"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->closest</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5300"
-></A
-><H3
-><A
-NAME="GTS-POINT-TRIANGLE-DISTANCE"
-></A
->gts_point_triangle_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_triangle_distance     (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5312"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5319"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5326"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimun Euclidean distance between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5333"
-></A
-><H3
-><A
-NAME="GTS-POINT-TRIANGLE-CLOSEST"
-></A
->gts_point_triangle_closest ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_point_triangle_closest      (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *closest);</PRE
-><P
->Set the coordinates of <CODE
-CLASS="PARAMETER"
->closest</CODE
-> to those of the point belonging to <CODE
-CLASS="PARAMETER"
->t</CODE
-> and 
-closest to <CODE
-CLASS="PARAMETER"
->p</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5349"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5356"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5363"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->closest</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5370"
-></A
-><H3
-><A
-NAME="GTS-POINT-TRIANGLE-DISTANCE2"
-></A
->gts_point_triangle_distance2 ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_point_triangle_distance2    (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5382"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5389"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5396"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the square of the minimun Euclidean distance between <CODE
-CLASS="PARAMETER"
->p</CODE
-> and <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5403"
-></A
-><H3
-><A
-NAME="GTS-POINT-IS-INSIDE-SURFACE"
-></A
->gts_point_is_inside_surface ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_point_is_inside_surface     (<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GNODE"
->GNode</GTKDOCLINK
-> *tree,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> is_open);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5416"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5423"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->tree</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a bounding box tree of the faces of a closed, orientable
-surface (see <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_surface()</CODE
-></A
->).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5430"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->is_open</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the surface defined by <CODE
-CLASS="PARAMETER"
->tree</CODE
-> is "open" i.e. its volume 
-is negative, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5438"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->p</CODE
-> is inside the surface defined by <CODE
-CLASS="PARAMETER"
->tree</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
->
-otherwise.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-containee-classes.html"
-><B
-><<< Containee classes</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-vertices.html"
-><B
->Vertices >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-progressive-graph.html b/doc/html/gts-progressive-graph.html
deleted file mode 100644
index b8c8f21..0000000
--- a/doc/html/gts-progressive-graph.html
+++ /dev/null
@@ -1,2498 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Progressive graph</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Graph and operations on graphs"
-HREF="c17114.html"><LINK
-REL="PREVIOUS"
-TITLE="Weighted graph"
-HREF="gts-weighted-graph.html"><LINK
-REL="NEXT"
-TITLE="Graph partitioning"
-HREF="gts-graph-partitioning.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-weighted-graph.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c17114.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-graph-partitioning.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-PROGRESSIVE-GRAPH"
-></A
->Progressive graph</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN18937"
-></A
-><H2
->Name</H2
->Progressive graph -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN18940"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-CLASS:CAPS"
->GTS_GNODE_SPLIT_CLASS</A
->           (klass)
-#define     <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT:CAPS"
->GTS_GNODE_SPLIT</A
->                 (obj)
-#define     <A
-HREF="gts-progressive-graph.html#GTS-IS-GNODE-SPLIT:CAPS"
->GTS_IS_GNODE_SPLIT</A
->              (obj)
-#define     <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-N1:CAPS"
->GTS_GNODE_SPLIT_N1</A
->              (ns)
-#define     <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-N2:CAPS"
->GTS_GNODE_SPLIT_N2</A
->              (ns)
-            <A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
->;
-            <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->;
-
-<A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
->* <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-CLASS"
->gts_gnode_split_class</A
->   (void);
-<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->* <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-NEW"
->gts_gnode_split_new</A
->          (<A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *n1,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *n2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-COLLAPSE"
->gts_gnode_split_collapse</A
->        (<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
-> *ns,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
-> *klass);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-graph.html#GTS-GNODE-SPLIT-EXPAND"
->gts_gnode_split_expand</A
->          (<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
-> *ns,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);
-
-#define     <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-CLASS:CAPS"
->GTS_PGRAPH_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH:CAPS"
->GTS_PGRAPH</A
->                      (obj)
-#define     <A
-HREF="gts-progressive-graph.html#GTS-IS-PGRAPH:CAPS"
->GTS_IS_PGRAPH</A
->                   (obj)
-            <A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
->GtsPGraphClass</A
->;
-            <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
->;
-
-<A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
->GtsPGraphClass</A
->* <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-CLASS"
->gts_pgraph_class</A
->            (void);
-<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
->*  <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-NEW"
->gts_pgraph_new</A
->                  (<A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
->GtsPGraphClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
-> *split_class,
-                                             <A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
-> *node_class,
-                                             <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
-> *edge_class,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> min);
-<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->* <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-ADD-NODE"
->gts_pgraph_add_node</A
->          (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);
-<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->* <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-REMOVE-NODE"
->gts_pgraph_remove_node</A
->       (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-DOWN"
->gts_pgraph_down</A
->                 (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-SET-NODE-NUMBER"
->gts_pgraph_set_node_number</A
->      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-GET-NODE-NUMBER"
->gts_pgraph_get_node_number</A
->      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-MAX-NODE-NUMBER"
->gts_pgraph_max_node_number</A
->      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-MIN-NODE-NUMBER"
->gts_pgraph_min_node_number</A
->      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-graph.html#GTS-PGRAPH-FOREACH-NODE"
->gts_pgraph_foreach_node</A
->         (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN19011"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN19014"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19016"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-CLASS:CAPS"
-></A
->GTS_GNODE_SPLIT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GNODE_SPLIT_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19024"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19029"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT:CAPS"
-></A
->GTS_GNODE_SPLIT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_GNODE_SPLIT(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19037"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19042"
-></A
-><H3
-><A
-NAME="GTS-IS-GNODE-SPLIT:CAPS"
-></A
->GTS_IS_GNODE_SPLIT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_GNODE_SPLIT(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19050"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19055"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-N1:CAPS"
-></A
->GTS_GNODE_SPLIT_N1()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_GNODE_SPLIT_N1(ns) (GTS_IS_GNODE_SPLIT ((ns)->n1) ? GTS_GNODE_SPLIT ((ns)->n1)->n : GTS_GNODE ((ns)->n1))</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19063"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ns</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19068"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-N2:CAPS"
-></A
->GTS_GNODE_SPLIT_N2()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_GNODE_SPLIT_N2(ns) (GTS_IS_GNODE_SPLIT ((ns)->n2) ? GTS_GNODE_SPLIT ((ns)->n2)->n : GTS_GNODE ((ns)->n2))</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19076"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ns</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19081"
-></A
-><H3
-><A
-NAME="GTSGNODESPLITCLASS"
-></A
->GtsGNodeSplitClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsGNodeSplitClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19088"
-></A
-><H3
-><A
-NAME="GTSGNODESPLIT"
-></A
->GtsGNodeSplit</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsGNode * n;
-  GtsObject * n1;
-  GtsObject * n2;
-} GtsGNodeSplit;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19095"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-CLASS"
-></A
->gts_gnode_split_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
->* gts_gnode_split_class   (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19105"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19112"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-NEW"
-></A
->gts_gnode_split_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->* gts_gnode_split_new          (<A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *n1,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *n2);</PRE
-><P
->Creates a new <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> which would collapse <CODE
-CLASS="PARAMETER"
->n1</CODE
-> and <CODE
-CLASS="PARAMETER"
->n2</CODE
-> into
-<CODE
-CLASS="PARAMETER"
->n</CODE
->. The collapse itself is not performed.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19131"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19138"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19145"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> or <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19154"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> or <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19163"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19170"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-COLLAPSE"
-></A
->gts_gnode_split_collapse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_gnode_split_collapse        (<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
-> *ns,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
-> *klass);</PRE
-><P
->Collapses the node split <CODE
-CLASS="PARAMETER"
->ns</CODE
->. Any new edge created during the
-process will be of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19185"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ns</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19192"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19199"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19206"
-></A
-><H3
-><A
-NAME="GTS-GNODE-SPLIT-EXPAND"
-></A
->gts_gnode_split_expand ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_gnode_split_expand          (<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
-> *ns,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g);</PRE
-><P
->Expands the node split ns adding the new nodes to <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19219"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ns</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19226"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19233"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-CLASS:CAPS"
-></A
->GTS_PGRAPH_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_PGRAPH_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19241"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19246"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH:CAPS"
-></A
->GTS_PGRAPH()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_PGRAPH(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19254"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19259"
-></A
-><H3
-><A
-NAME="GTS-IS-PGRAPH:CAPS"
-></A
->GTS_IS_PGRAPH()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_PGRAPH(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19267"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19272"
-></A
-><H3
-><A
-NAME="GTSPGRAPHCLASS"
-></A
->GtsPGraphClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsPGraphClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19279"
-></A
-><H3
-><A
-NAME="GTSPGRAPH"
-></A
->GtsPGraph</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsGraph * g;
-  GPtrArray * split;
-  GArray * levels;
-  GtsGNodeSplitClass * split_class;
-  GtsWGEdgeClass * edge_class;
-  guint pos, min, level;
-} GtsPGraph;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19286"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-CLASS"
-></A
->gts_pgraph_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
->GtsPGraphClass</A
->* gts_pgraph_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19296"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19303"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-NEW"
-></A
->gts_pgraph_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
->*  gts_pgraph_new                  (<A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
->GtsPGraphClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGRAPH"
->GtsGraph</A
-> *g,
-                                             <A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
->GtsGNodeSplitClass</A
-> *split_class,
-                                             <A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
-> *node_class,
-                                             <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
-> *edge_class,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> min);</PRE
-><P
->Creates a new multilevel approximation of graph <CODE
-CLASS="PARAMETER"
->g</CODE
->. At each level a
-maximal matching is created using the Heavy Edge Matching (HEM)
-technique of Karypis and Kumar (1997). The newly created nodes are
-of type <CODE
-CLASS="PARAMETER"
->node_class</CODE
-> and their weight is set to the sum of the
-weights of their children. The newly created edges are of type
-<CODE
-CLASS="PARAMETER"
->edge_class</CODE
-> and their weight is set to the sum of the weight of the
-collapsed edges. The last level is reached when the maximal
-matching obtained would lead to a graph with less than <CODE
-CLASS="PARAMETER"
->min</CODE
-> nodes.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19323"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19330"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->g</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19337"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->split_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSGNODESPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19344"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->node_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19351"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edge_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19358"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->min</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimum number of nodes.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19363"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
-> containing the multilevel
-representation of <CODE
-CLASS="PARAMETER"
->g</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19371"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-ADD-NODE"
-></A
->gts_pgraph_add_node ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->* gts_pgraph_add_node          (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);</PRE
-><P
->Adds one node to the multilevel graph <CODE
-CLASS="PARAMETER"
->pg</CODE
-> by expanding the next
-available <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19385"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19392"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the expanded <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> or <GTKDOCLINK
-HREF="NULL:CAPS"
-><SPAN
-CLASS="TYPE"
->NULL</SPAN
-></GTKDOCLINK
-> if all the
-<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> have already been expanded.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19403"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-REMOVE-NODE"
-></A
->gts_pgraph_remove_node ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
->GtsGNodeSplit</A
->* gts_pgraph_remove_node       (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);</PRE
-><P
->Removes one node from the multilevel graph <CODE
-CLASS="PARAMETER"
->pg</CODE
-> by collapsing the
-first available <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19417"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19424"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the collapsed <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if all the
-<A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> have already been collapsed.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19434"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-DOWN"
-></A
->gts_pgraph_down ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_pgraph_down                 (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Performs the required number of expansions to go from the current
-level to the level immediately below.</P
-><P
->If <CODE
-CLASS="PARAMETER"
->func</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
->, it is called after each <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> has
-been expanded.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19452"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19459"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19467"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19473"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->FALSE</TT
-> if it is not possible to go down one level, <TT
-CLASS="LITERAL"
->TRUE</TT
->
-otherwise.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19480"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-SET-NODE-NUMBER"
-></A
->gts_pgraph_set_node_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_pgraph_set_node_number      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n);</PRE
-><P
->Performs the required number of collapses or expansions to set the
-number of nodes of <CODE
-CLASS="PARAMETER"
->pg</CODE
-> to <CODE
-CLASS="PARAMETER"
->n</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19494"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19501"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a number of nodes.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19506"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-GET-NODE-NUMBER"
-></A
->gts_pgraph_get_node_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_pgraph_get_node_number      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19517"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19524"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the current number of nodes of <CODE
-CLASS="PARAMETER"
->pg</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19530"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-MAX-NODE-NUMBER"
-></A
->gts_pgraph_max_node_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_pgraph_max_node_number      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19541"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19548"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum number of nodes of <CODE
-CLASS="PARAMETER"
->pg</CODE
-> i.e. the number of
-nodes if all the <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> were expanded.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19556"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-MIN-NODE-NUMBER"
-></A
->gts_pgraph_min_node_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_pgraph_min_node_number      (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19567"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsPGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19574"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimum number of nodes of <CODE
-CLASS="PARAMETER"
->pg</CODE
-> i.e. the number of
-nodes if all the <A
-HREF="gts-progressive-graph.html#GTSGNODESPLIT"
-><SPAN
-CLASS="TYPE"
->GtsGNodeSplit</SPAN
-></A
-> were collapsed.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN19582"
-></A
-><H3
-><A
-NAME="GTS-PGRAPH-FOREACH-NODE"
-></A
->gts_pgraph_foreach_node ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_pgraph_foreach_node         (<A
-HREF="gts-progressive-graph.html#GTSPGRAPH"
->GtsPGraph</A
-> *pg,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19594"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->pg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19599"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN19604"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-weighted-graph.html"
-><B
-><<< Weighted graph</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-graph-partitioning.html"
-><B
->Graph partitioning >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-progressive-surfaces.html b/doc/html/gts-progressive-surfaces.html
deleted file mode 100644
index 5f60d7b..0000000
--- a/doc/html/gts-progressive-surfaces.html
+++ /dev/null
@@ -1,2559 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Progressive surfaces</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Progressive and Hierarchical surfaces"
-HREF="c15264.html"><LINK
-REL="PREVIOUS"
-TITLE="Vertex split"
-HREF="gts-vertex-split.html"><LINK
-REL="NEXT"
-TITLE="Hierarchical vertex split"
-HREF="gts-hierarchical-vertex-split.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-vertex-split.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c15264.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-hierarchical-vertex-split.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-PROGRESSIVE-SURFACES"
-></A
->Progressive surfaces</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN15757"
-></A
-><H2
->Name</H2
->Progressive surfaces -- continuous level-of-detail for surfaces.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN15760"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-CLASS:CAPS"
->GTS_PSURFACE_CLASS</A
->              (klass)
-#define     <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE:CAPS"
->GTS_PSURFACE</A
->                    (obj)
-#define     <A
-HREF="gts-progressive-surfaces.html#GTS-IS-PSURFACE:CAPS"
->GTS_IS_PSURFACE</A
->                 (obj)
-#define     <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-IS-CLOSED:CAPS"
->GTS_PSURFACE_IS_CLOSED</A
->          (ps)
-            <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
->;
-            <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
->;
-
-<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
->* <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-CLASS"
->gts_psurface_class</A
->        (void);
-<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
->* <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-NEW"
->gts_psurface_new</A
->               (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *split_class,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSCOARSENFUNC"
->GtsCoarsenFunc</A
-> coarsen_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> coarsen_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->GtsStopFunc</A
-> stop_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> stop_data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> minangle);
-<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-ADD-VERTEX"
->gts_psurface_add_vertex</A
->         (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);
-<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-REMOVE-VERTEX"
->gts_psurface_remove_vertex</A
->      (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-SET-VERTEX-NUMBER"
->gts_psurface_set_vertex_number</A
->  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-GET-VERTEX-NUMBER"
->gts_psurface_get_vertex_number</A
->  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-MIN-VERTEX-NUMBER"
->gts_psurface_min_vertex_number</A
->  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-MAX-VERTEX-NUMBER"
->gts_psurface_max_vertex_number</A
->  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-FOREACH-VERTEX"
->gts_psurface_foreach_vertex</A
->     (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
->* <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-OPEN"
->gts_psurface_open</A
->              (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *split_class,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);
-<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-READ-VERTEX"
->gts_psurface_read_vertex</A
->        (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *fp);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-CLOSE"
->gts_psurface_close</A
->              (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-WRITE"
->gts_psurface_write</A
->              (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN15824"
-></A
-><H2
->Description</H2
-><P
->Progressive surfaces allow you to control precisely and continuously the level of detail of a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->. They are built off-line by storing the sequence of edge collapses performed during surface simplification (see <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_new()</CODE
-></A
->). Fast traversal of the pre-built sequence allow on-line selection of the required level of detail.</P
-><P
->Using the <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-WRITE"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_write()</CODE
-></A
-> function a text representation of a progressive surface can be written to a file, pipe or socket. This text representation allows the progressive transmission of a surface, starting with the coarsest representation and progressively refining it as data is read or received (see <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-OPEN"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_open()</CODE
-></A
->, <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-READ-VERTEX"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_read_vertex()</CODE
-></A
-> and <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-CLOSE"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_close()</CODE
-></A
-> for details).</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN15840"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15842"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-CLASS:CAPS"
-></A
->GTS_PSURFACE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_PSURFACE_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsPSurfaceClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15853"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsPSurfaceClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15860"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE:CAPS"
-></A
->GTS_PSURFACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_PSURFACE(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15871"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15878"
-></A
-><H3
-><A
-NAME="GTS-IS-PSURFACE:CAPS"
-></A
->GTS_IS_PSURFACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_PSURFACE(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15891"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15896"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-IS-CLOSED:CAPS"
-></A
->GTS_PSURFACE_IS_CLOSED()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define GTS_PSURFACE_IS_CLOSED(ps)  (!(ps)->vertices)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->ps</CODE
-> has not been created with <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-OPEN"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_open()</CODE
-></A
-> or if
-it has been closed using <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-CLOSE"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_close()</CODE
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15910"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15917"
-></A
-><H3
-><A
-NAME="GTSPSURFACECLASS"
-></A
->GtsPSurfaceClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsPSurfaceClass;</PRE
-><P
->The progressive surface class derived from <A
-HREF="gts-object-class.html#GTSOBJECTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsObjectClass</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15926"
-></A
-><H3
-><A
-NAME="GTSPSURFACE"
-></A
->GtsPSurface</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsSurface * s;
-  GPtrArray * split;
-  GtsSplitClass * split_class;
-  guint pos, min;
-
-  GPtrArray * vertices;
-  GPtrArray * faces;
-} GtsPSurface;</PRE
-><P
->The progressive surface object.
-
- derived from <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->. The field <CODE
-CLASS="PARAMETER"
->s</CODE
-> is the <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> being refined or coarsened by operations on the progressive surface. All the other fields must be considered private and accessed only through the following functions.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15939"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15945"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->s</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> being refined or coarsened by operations on the progressive surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15953"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GPTRARRAY"
->GPtrArray</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->split</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15959"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *<CODE
-CLASS="STRUCTFIELD"
->split_class</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15965"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->pos</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15971"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->min</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15977"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GPTRARRAY"
->GPtrArray</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->vertices</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15983"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GPTRARRAY"
->GPtrArray</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->faces</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15989"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-CLASS"
-></A
->gts_psurface_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
->* gts_psurface_class        (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15999"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsPSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16006"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-NEW"
-></A
->gts_psurface_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
->* gts_psurface_new               (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *split_class,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSCOARSENFUNC"
->GtsCoarsenFunc</A
-> coarsen_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> coarsen_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->GtsStopFunc</A
-> stop_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> stop_data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> minangle);</PRE
-><P
->This function works in exactly the same way as the
-<A
-HREF="gts-surface-simplification-and-refinement.html#GTS-SURFACE-COARSEN"
-><CODE
-CLASS="FUNCTION"
->gts_surface_coarsen()</CODE
-></A
-> function, except that the history of edge
-collapse is saved in an array of <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> objects. This allows for
-dynamic continuous multiresolution control of the input <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16031"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsPSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16038"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16045"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->split_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
-> to use for the new progressive surface.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16052"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> cost function for the edge collapse algorithm.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16057"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to pass to <CODE
-CLASS="PARAMETER"
->cost_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16063"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->coarsen_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function returning the vertex replacement for the edge 
-collapse.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16068"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->coarsen_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to pass to <CODE
-CLASS="PARAMETER"
->coarsen_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16074"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function to call to decide whether to stop the coarsening
-process.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16079"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stop_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to pass to <CODE
-CLASS="PARAMETER"
->stop_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16085"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->minangle</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimum angle allowable between two neighboring triangles. 
-This is used to avoid introducing folds in the mesh during simplification.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16090"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new progressive surface.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16095"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-ADD-VERTEX"
-></A
->gts_psurface_add_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   gts_psurface_add_vertex         (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);</PRE
-><P
->Adds a vertex to the progressive surface <CODE
-CLASS="PARAMETER"
->ps</CODE
-> by expanding the next
-available <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16109"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16116"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the expanded <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if all the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> have already
-been expanded.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16126"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-REMOVE-VERTEX"
-></A
->gts_psurface_remove_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   gts_psurface_remove_vertex      (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);</PRE
-><P
->Removes one vertex from the progressive surface <CODE
-CLASS="PARAMETER"
->ps</CODE
-> by collapsing the first
-available <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16140"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16147"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the collapsed <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if all the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> have already
-been collapsed.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16157"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-SET-VERTEX-NUMBER"
-></A
->gts_psurface_set_vertex_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_psurface_set_vertex_number  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n);</PRE
-><P
->Performs the required number of collapses or expansions to set the number
-of vertices of <CODE
-CLASS="PARAMETER"
->ps</CODE
-> to <CODE
-CLASS="PARAMETER"
->n</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16171"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16178"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a number of vertices.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16183"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-GET-VERTEX-NUMBER"
-></A
->gts_psurface_get_vertex_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_psurface_get_vertex_number  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16194"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16201"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the current number of vertices of <CODE
-CLASS="PARAMETER"
->ps</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16207"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-MIN-VERTEX-NUMBER"
-></A
->gts_psurface_min_vertex_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_psurface_min_vertex_number  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16218"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16225"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the minimum number of vertices of <CODE
-CLASS="PARAMETER"
->ps</CODE
-> i.e. the number of vertices
-if all the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> were collapsed.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16233"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-MAX-VERTEX-NUMBER"
-></A
->gts_psurface_max_vertex_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_psurface_max_vertex_number  (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16244"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16251"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum number of vertices of <CODE
-CLASS="PARAMETER"
->ps</CODE
-> i.e. the number of vertices
-if all the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> were expanded.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16259"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-FOREACH-VERTEX"
-></A
->gts_psurface_foreach_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_psurface_foreach_vertex     (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each (potential) vertex of <CODE
-CLASS="PARAMETER"
->ps</CODE
->, whether actually used
-or not. The vertices are called in the order they were created during the
-edge collapse operation.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16274"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16281"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a function to call for each vertex of <CODE
-CLASS="PARAMETER"
->ps</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16287"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16293"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-OPEN"
-></A
->gts_psurface_open ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
->* gts_psurface_open              (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
->GtsPSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *split_class,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-><P
->Creates a new <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
-> prepared for input from the file <CODE
-CLASS="PARAMETER"
->f</CODE
-> 
-containing a valid GTS representation of a progressive surface. The initial
-shape of the progressive surface is loaded into <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
->Before being usable as such this progressive surface must be closed using
-<A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-CLOSE"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_close()</CODE
-></A
->. While open however, the functions
-<A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-GET-VERTEX-NUMBER"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_get_vertex_number()</CODE
-></A
->, <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-MIN-VERTEX-NUMBER"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_min_vertex_number()</CODE
-></A
-> and
-<A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-MAX-VERTEX-NUMBER"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_max_vertex_number()</CODE
-></A
-> can still be used.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16320"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsPSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16327"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16334"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->split_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
-> to use for the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16343"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16350"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if there was a format error while
-reading the file, in which case <CODE
-CLASS="PARAMETER"
->f</CODE
-> contains information about the error.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16359"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-READ-VERTEX"
-></A
->gts_psurface_read_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   gts_psurface_read_vertex        (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *fp);</PRE
-><P
->Reads in one vertex split operation from <CODE
-CLASS="PARAMETER"
->fp</CODE
-> and performs the expansion.</P
-><P
->If an error occurs while reading the file, the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->fp</CODE
-> is set.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16375"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
-> prealably created with <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-OPEN"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_open()</CODE
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16384"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fp</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16391"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the newly created <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if no vertex split could be
-read from <CODE
-CLASS="PARAMETER"
->fp</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16400"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-CLOSE"
-></A
->gts_psurface_close ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_psurface_close              (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps);</PRE
-><P
->Closes a progressive surface.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16411"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
-> prealably created with <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-OPEN"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_open()</CODE
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN16420"
-></A
-><H3
-><A
-NAME="GTS-PSURFACE-WRITE"
-></A
->gts_psurface_write ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_psurface_write              (<A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
->GtsPSurface</A
-> *ps,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes to <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> a GTS progressive surface description.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16433"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->ps</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-progressive-surfaces.html#GTSPSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsPSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN16440"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-vertex-split.html"
-><B
-><<< Vertex split</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-hierarchical-vertex-split.html"
-><B
->Hierarchical vertex split >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-segments.html b/doc/html/gts-segments.html
deleted file mode 100644
index 58bbc13..0000000
--- a/doc/html/gts-segments.html
+++ /dev/null
@@ -1,1647 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Segments</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Vertices"
-HREF="gts-vertices.html"><LINK
-REL="NEXT"
-TITLE="Edges"
-HREF="gts-edges.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-vertices.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-edges.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-SEGMENTS"
-></A
->Segments</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN6136"
-></A
-><H2
->Name</H2
->Segments -- segment object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN6139"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-segments.html#GTS-SEGMENT-CLASS:CAPS"
->GTS_SEGMENT_CLASS</A
->               (klass)
-#define     <A
-HREF="gts-segments.html#GTS-SEGMENT:CAPS"
->GTS_SEGMENT</A
->                     (obj)
-#define     <A
-HREF="gts-segments.html#GTS-IS-SEGMENT:CAPS"
->GTS_IS_SEGMENT</A
->                  (obj)
-            <A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
->GtsSegmentClass</A
->;
-            <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->;
-
-<A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
->GtsSegmentClass</A
->* <A
-HREF="gts-segments.html#GTS-SEGMENT-CLASS"
->gts_segment_class</A
->          (void);
-<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->* <A
-HREF="gts-segments.html#GTS-SEGMENT-NEW"
->gts_segment_new</A
->                 (<A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
->GtsSegmentClass</A
-> *klass,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v2);
-#define     <A
-HREF="gts-segments.html#GTS-SEGMENTS-ARE-IDENTICAL"
->gts_segments_are_identical</A
->      (s1, s2)
-<A
-HREF="gts-points.html#GTSINTERSECT"
->GtsIntersect</A
-> <A
-HREF="gts-segments.html#GTS-SEGMENTS-ARE-INTERSECTING"
->gts_segments_are_intersecting</A
->  (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s1,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s2);
-<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->* <A
-HREF="gts-segments.html#GTS-SEGMENT-IS-DUPLICATE"
->gts_segment_is_duplicate</A
->        (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-segments.html#GTS-SEGMENT-IS-OK"
->gts_segment_is_ok</A
->               (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);
-#define     <A
-HREF="gts-segments.html#GTS-SEGMENT-CONNECT"
->gts_segment_connect</A
->             (s, e1, e2)
-#define     <A
-HREF="gts-segments.html#GTS-SEGMENTS-TOUCH"
->gts_segments_touch</A
->              (s1, s2)
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-segments.html#GTS-SEGMENTS-FROM-VERTICES"
->gts_segments_from_vertices</A
->      (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *vertices);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-segments.html#GTS-SEGMENT-MIDVERTEX"
->gts_segment_midvertex</A
->           (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN6174"
-></A
-><H2
->Description</H2
-><P
->Segments are defined by their two <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->. They are not oriented.</P
-><P
->When destroying a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->, all the vertices not used by another edge are also destroyed. This default behaviour can be changed punctually by setting the global variable gts_allow_floating_vertices to <TT
-CLASS="LITERAL"
->TRUE</TT
->. You must not forget to set this variable back to <TT
-CLASS="LITERAL"
->FALSE</TT
-> as all the algorithms of GTS assume the default behaviour.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN6184"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6186"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-CLASS:CAPS"
-></A
->GTS_SEGMENT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SEGMENT_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSegmentClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6197"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSegmentClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6204"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT:CAPS"
-></A
->GTS_SEGMENT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SEGMENT(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6215"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6222"
-></A
-><H3
-><A
-NAME="GTS-IS-SEGMENT:CAPS"
-></A
->GTS_IS_SEGMENT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_SEGMENT(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a descendant of <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6235"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6240"
-></A
-><H3
-><A
-NAME="GTSSEGMENTCLASS"
-></A
->GtsSegmentClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsSegmentClass;</PRE
-><P
->The segment class. No virtual functions are assiocated.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6247"
-></A
-><H3
-><A
-NAME="GTSSEGMENT"
-></A
->GtsSegment</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsVertex * v1;
-  GtsVertex * v2;
-} GtsSegment;</PRE
-><P
->The segment object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6255"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6261"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *<CODE
-CLASS="STRUCTFIELD"
->v1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->First endpoint of the segment.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6267"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *<CODE
-CLASS="STRUCTFIELD"
->v2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Second endpoint of the segment.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6273"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-CLASS"
-></A
->gts_segment_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
->GtsSegmentClass</A
->* gts_segment_class          (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6283"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSegmentClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6290"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-NEW"
-></A
->gts_segment_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->* gts_segment_new                 (<A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
->GtsSegmentClass</A
-> *klass,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6303"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSegmentClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6310"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6317"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> different from <CODE
-CLASS="PARAMETER"
->v1</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6325"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> linking <CODE
-CLASS="PARAMETER"
->v1</CODE
-> and <CODE
-CLASS="PARAMETER"
->v2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6334"
-></A
-><H3
-><A
-NAME="GTS-SEGMENTS-ARE-IDENTICAL"
-></A
->gts_segments_are_identical()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_segments_are_identical(s1, s2)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->s1</CODE
-> and <CODE
-CLASS="PARAMETER"
->s2</CODE
-> link the same vertices, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6346"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6353"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->another <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6360"
-></A
-><H3
-><A
-NAME="GTS-SEGMENTS-ARE-INTERSECTING"
-></A
->gts_segments_are_intersecting ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSINTERSECT"
->GtsIntersect</A
-> gts_segments_are_intersecting  (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s1,
-                                             <A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6372"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6379"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6386"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->GTS_IN</TT
-> if <CODE
-CLASS="PARAMETER"
->s1</CODE
-> and <CODE
-CLASS="PARAMETER"
->s2</CODE
-> are intersecting, <TT
-CLASS="LITERAL"
->GTS_ON</TT
-> if one of the
-endpoints of <CODE
-CLASS="PARAMETER"
->s1</CODE
-> (resp. <CODE
-CLASS="PARAMETER"
->s2</CODE
->) lies on <CODE
-CLASS="PARAMETER"
->s2</CODE
-> (resp. <CODE
-CLASS="PARAMETER"
->s1</CODE
->), <TT
-CLASS="LITERAL"
->GTS_OUT</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6400"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-IS-DUPLICATE"
-></A
->gts_segment_is_duplicate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->* gts_segment_is_duplicate        (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6411"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6418"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the first <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> different from <CODE
-CLASS="PARAMETER"
->s</CODE
-> which shares the
-same endpoints or <TT
-CLASS="LITERAL"
->NULL</TT
-> if there is none.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6427"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-IS-OK"
-></A
->gts_segment_is_ok ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_segment_is_ok               (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6438"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6445"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->s</CODE
-> is not degenerate (i.e. <CODE
-CLASS="PARAMETER"
->s</CODE
->->v1 != <CODE
-CLASS="PARAMETER"
->s</CODE
->->v2) and not 
-duplicate, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6455"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-CONNECT"
-></A
->gts_segment_connect()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_segment_connect(s, e1, e2)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->s</CODE
-> connects <CODE
-CLASS="PARAMETER"
->e1</CODE
-> with <CODE
-CLASS="PARAMETER"
->e2</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6468"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6475"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6482"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->another <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6489"
-></A
-><H3
-><A
-NAME="GTS-SEGMENTS-TOUCH"
-></A
->gts_segments_touch()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_segments_touch(s1, s2)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6497"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6502"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6507"
-></A
-><H3
-><A
-NAME="GTS-SEGMENTS-FROM-VERTICES"
-></A
->gts_segments_from_vertices ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_segments_from_vertices      (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *vertices);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6518"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vertices</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6525"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of unique <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> which have one of their vertices in 
-<CODE
-CLASS="PARAMETER"
->vertices</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6533"
-></A
-><H3
-><A
-NAME="GTS-SEGMENT-MIDVERTEX"
-></A
->gts_segment_midvertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_segment_midvertex           (<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
-> *s,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6545"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6552"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
-> to be used for the new vertex.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6559"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, midvertex of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-vertices.html"
-><B
-><<< Vertices</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-edges.html"
-><B
->Edges >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-simple-statistics.html b/doc/html/gts-simple-statistics.html
deleted file mode 100644
index 4311998..0000000
--- a/doc/html/gts-simple-statistics.html
+++ /dev/null
@@ -1,823 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Simple statistics</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="PREVIOUS"
-TITLE="Vectors and matrices"
-HREF="gts-vectors-and-matrices.html"><LINK
-REL="NEXT"
-TITLE="Miscellaneous macros and functions"
-HREF="gts-miscellaneous-macros-and-functions.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-vectors-and-matrices.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c4.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-miscellaneous-macros-and-functions.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-SIMPLE-STATISTICS"
-></A
->Simple statistics</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN2193"
-></A
-><H2
->Name</H2
->Simple statistics -- a basic structure for computing min, max, average and variance.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN2196"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-            <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
->;
-
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-simple-statistics.html#GTS-RANGE-INIT"
->gts_range_init</A
->                  (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-simple-statistics.html#GTS-RANGE-ADD-VALUE"
->gts_range_add_value</A
->             (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> val);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-simple-statistics.html#GTS-RANGE-UPDATE"
->gts_range_update</A
->                (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-simple-statistics.html#GTS-RANGE-RESET"
->gts_range_reset</A
->                 (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-simple-statistics.html#GTS-RANGE-PRINT"
->gts_range_print</A
->                 (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2217"
-></A
-><H2
->Description</H2
-><P
->Using <A
-HREF="gts-simple-statistics.html#GTS-RANGE-INIT"
-><CODE
-CLASS="FUNCTION"
->gts_range_init()</CODE
-></A
->, <A
-HREF="gts-simple-statistics.html#GTS-RANGE-ADD-VALUE"
-><CODE
-CLASS="FUNCTION"
->gts_range_add_value()</CODE
-></A
-> and <A
-HREF="gts-simple-statistics.html#GTS-RANGE-UPDATE"
-><CODE
-CLASS="FUNCTION"
->gts_range_update()</CODE
-></A
->, you can easily maintain basic statistics about an ensemble of values.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2226"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2228"
-></A
-><H3
-><A
-NAME="GTSRANGE"
-></A
->GtsRange</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  gdouble min, max, sum, sum2, mean, stddev;
-  guint n;
-} GtsRange;</PRE
-><P
->A simple statistics structure.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2236"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->min</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Minimum value of the population.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2242"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->max</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Maximum value of the population.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2248"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->sum</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2254"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->sum2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2260"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->mean</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Average value of the population.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2266"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->stddev</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Standard deviation of the population.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2272"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of samples in the population.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2278"
-></A
-><H3
-><A
-NAME="GTS-RANGE-INIT"
-></A
->gts_range_init ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_range_init                  (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r);</PRE
-><P
->Initializes a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2291"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->r</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2298"
-></A
-><H3
-><A
-NAME="GTS-RANGE-ADD-VALUE"
-></A
->gts_range_add_value ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_range_add_value             (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> val);</PRE
-><P
->Adds <CODE
-CLASS="PARAMETER"
->val</CODE
-> to <CODE
-CLASS="PARAMETER"
->r</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2312"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->r</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2319"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->val</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a value to add to <CODE
-CLASS="PARAMETER"
->r</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2325"
-></A
-><H3
-><A
-NAME="GTS-RANGE-UPDATE"
-></A
->gts_range_update ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_range_update                (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r);</PRE
-><P
->Updates the fields of <CODE
-CLASS="PARAMETER"
->r</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2337"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->r</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2344"
-></A
-><H3
-><A
-NAME="GTS-RANGE-RESET"
-></A
->gts_range_reset ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_range_reset                 (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r);</PRE
-><P
->Sets all the fields of <CODE
-CLASS="PARAMETER"
->r</CODE
-> to 0.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2356"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->r</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2363"
-></A
-><H3
-><A
-NAME="GTS-RANGE-PRINT"
-></A
->gts_range_print ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_range_print                 (<A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *r,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes a text representation of <CODE
-CLASS="PARAMETER"
->r</CODE
-> in <CODE
-CLASS="PARAMETER"
->fptr</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2377"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->r</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2384"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-vectors-and-matrices.html"
-><B
-><<< Vectors and matrices</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-miscellaneous-macros-and-functions.html"
-><B
->Miscellaneous macros and functions >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-surface-simplification-and-refinement.html b/doc/html/gts-surface-simplification-and-refinement.html
deleted file mode 100644
index 9fecce2..0000000
--- a/doc/html/gts-surface-simplification-and-refinement.html
+++ /dev/null
@@ -1,2302 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Surface simplification and refinement</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Surface operations"
-HREF="c12206.html"><LINK
-REL="PREVIOUS"
-TITLE="Boolean operations"
-HREF="gts-boolean-operations.html"><LINK
-REL="NEXT"
-TITLE="Out-of-core simplification"
-HREF="gts-out-of-core-simplification.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-boolean-operations.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c12206.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-out-of-core-simplification.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-SURFACE-SIMPLIFICATION-AND-REFINEMENT"
-></A
->Surface simplification and refinement</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN12636"
-></A
-><H2
->Name</H2
->Surface simplification and refinement -- reducing or increasing the number of edges of a triangulated surface.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN12639"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-SURFACE-REFINE"
->gts_surface_refine</A
->              (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
->GtsRefineFunc</A
-> refine_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> refine_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->GtsStopFunc</A
-> stop_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> stop_data);
-
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  (<A
-HREF="gts-surface-simplification-and-refinement.html#GTSCOARSENFUNC"
->*GtsCoarsenFunc</A
->)               (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  (<A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
->*GtsRefineFunc</A
->)                (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    (<A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->*GtsStopFunc</A
->)                  (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> cost,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nedge,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-SURFACE-COARSEN"
->gts_surface_coarsen</A
->             (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSCOARSENFUNC"
->GtsCoarsenFunc</A
-> coarsen_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> coarsen_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->GtsStopFunc</A
-> stop_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> stop_data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> minangle);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-COARSEN-STOP-NUMBER"
->gts_coarsen_stop_number</A
->         (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> cost,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nedge,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> *min_number);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-COARSEN-STOP-COST"
->gts_coarsen_stop_cost</A
->           (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> cost,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nedge,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *max_cost);
-
-            <A
-HREF="gts-surface-simplification-and-refinement.html#GTSVOLUMEOPTIMIZEDPARAMS"
->GtsVolumeOptimizedParams</A
->;
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-VOLUME-OPTIMIZED-VERTEX"
->gts_volume_optimized_vertex</A
->     (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *edge,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSVOLUMEOPTIMIZEDPARAMS"
->GtsVolumeOptimizedParams</A
-> *params);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-VOLUME-OPTIMIZED-COST"
->gts_volume_optimized_cost</A
->       (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSVOLUMEOPTIMIZEDPARAMS"
->GtsVolumeOptimizedParams</A
-> *params);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-EDGE-COLLAPSE-IS-VALID"
->gts_edge_collapse_is_valid</A
->      (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-EDGE-COLLAPSE-CREATES-FOLD"
->gts_edge_collapse_creates_fold</A
->  (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> max);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN12704"
-></A
-><H2
->Description</H2
-><P
->The <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-SURFACE-COARSEN"
-><CODE
-CLASS="FUNCTION"
->gts_surface_coarsen()</CODE
-></A
-> function allows to reduce the number of edges (and of course faces and vertices) of a given surface. Each edge is collapsed according to an order described by a user-defined cost function. It is then replaced by a single vertex given by another user-defined function. Two sets of cost and replacement functions are provided with the library. The default uses the squared length of the segment as cost and replaces the segment with its midpoint.</P
-><P
->The functions <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-VOLUME-OPTIMIZED-COST"
-><CODE
-CLASS="FUNCTION"
->gts_volume_optimized_cost()</CODE
-></A
-> and <A
-HREF="gts-surface-simplification-and-refinement.html#GTS-VOLUME-OPTIMIZED-VERTEX"
-><CODE
-CLASS="FUNCTION"
->gts_volume_optimized_vertex()</CODE
-></A
-> are an implementation of an algorithm proposed by Lindstrom and Turk called "memoryless simplification". This algorithm has been shown to be both computationally efficient and very accurate in terms of error between the simplified surface and the original one. It also preserves the volume enclosed by the surface both globally and locally.</P
-><P
->Surface refinement is obtained by splitting the edges in two equal parts according to an order described by a user-defined cost function. The default is to use the squared length of the segments as cost.</P
-><P
->The coarsening or refinement processes are stopped using a user-defined stop function. Two functions are provided stopping either when the cost of collapsing an edge is too large (<A
-HREF="gts-surface-simplification-and-refinement.html#GTS-COARSEN-STOP-COST"
-><CODE
-CLASS="FUNCTION"
->gts_coarsen_stop_cost()</CODE
-></A
->) or when the number of edges is too small (<A
-HREF="gts-surface-simplification-and-refinement.html#GTS-COARSEN-STOP-NUMBER"
-><CODE
-CLASS="FUNCTION"
->gts_coarsen_stop_number()</CODE
-></A
->).</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN12720"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12722"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-REFINE"
-></A
->gts_surface_refine ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_refine              (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
->GtsRefineFunc</A
-> refine_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> refine_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->GtsStopFunc</A
-> stop_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> stop_data);</PRE
-><P
->Refine <CODE
-CLASS="PARAMETER"
->surface</CODE
-> using a midvertex insertion technique. All the
-edges of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> are ordered according to <CODE
-CLASS="PARAMETER"
->cost_func</CODE
->. The edges
-are then processed in order until <CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> returns <TT
-CLASS="LITERAL"
->TRUE</TT
->. Each
-edge is split in two and new edges and faces are created.</P
-><P
->If <CODE
-CLASS="PARAMETER"
->cost_func</CODE
-> is set to <TT
-CLASS="LITERAL"
->NULL</TT
->, the edges are sorted according 
-to their length squared (the longest is on top).</P
-><P
->If <CODE
-CLASS="PARAMETER"
->refine_func</CODE
-> is set to <TT
-CLASS="LITERAL"
->NULL</TT
-> <A
-HREF="gts-segments.html#GTS-SEGMENT-MIDVERTEX"
-><CODE
-CLASS="FUNCTION"
->gts_segment_midvertex()</CODE
-></A
-> is used.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12752"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12759"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a function returning the cost for a given edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12764"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->cost_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12770"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->refine_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
-><SPAN
-CLASS="TYPE"
->GtsRefineFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12777"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->refine_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->refine_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12783"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
-><SPAN
-CLASS="TYPE"
->GtsStopFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12790"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stop_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->stop_func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12796"
-></A
-><H3
-><A
-NAME="GTSCOARSENFUNC"
-></A
->GtsCoarsenFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  (*GtsCoarsenFunc)               (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->User-defined function taking an edge <CODE
-CLASS="PARAMETER"
->e</CODE
-> and returning a replacement vertex of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12810"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12817"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
-> of the replacement vertex.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12824"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->user data passed to the function.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12829"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a replacement vertex of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12835"
-></A
-><H3
-><A
-NAME="GTSREFINEFUNC"
-></A
->GtsRefineFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  (*GtsRefineFunc)                (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12847"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12852"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12857"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12862"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12867"
-></A
-><H3
-><A
-NAME="GTSSTOPFUNC"
-></A
->GtsStopFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    (*GtsStopFunc)                  (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> cost,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nedge,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->User-defined function used to stop the coarsening process.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12879"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the cost of collapse of the current edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12884"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nedge</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the number of edges of the surface after collapse of the current edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12889"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->user data passed to the function.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12894"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-><TT
-CLASS="LITERAL"
->TRUE</TT
-> if the collapse of the current edge is not to take place, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12901"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-COARSEN"
-></A
->gts_surface_coarsen ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_coarsen             (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSKEYFUNC"
->GtsKeyFunc</A
-> cost_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> cost_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSCOARSENFUNC"
->GtsCoarsenFunc</A
-> coarsen_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> coarsen_data,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
->GtsStopFunc</A
-> stop_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> stop_data,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> minangle);</PRE
-><P
->The edges of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> are sorted according to <CODE
-CLASS="PARAMETER"
->cost_func</CODE
-> to 
-create a priority heap (a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
->). The edges are extracted in
-turn from the top of the heap and collapsed (i.e. the vertices are
-replaced by the vertex returned by the <CODE
-CLASS="PARAMETER"
->coarsen_func</CODE
-> function)
-until the <CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> functions returns <TT
-CLASS="LITERAL"
->TRUE</TT
->.</P
-><P
->If <CODE
-CLASS="PARAMETER"
->cost_func</CODE
-> is set to <TT
-CLASS="LITERAL"
->NULL</TT
->, the edges are sorted according 
-to their length squared (the shortest is on top).</P
-><P
->If <CODE
-CLASS="PARAMETER"
->coarsen_func</CODE
-> is set to <TT
-CLASS="LITERAL"
->NULL</TT
-> <A
-HREF="gts-segments.html#GTS-SEGMENT-MIDVERTEX"
-><CODE
-CLASS="FUNCTION"
->gts_segment_midvertex()</CODE
-></A
-> is used.</P
-><P
->The minimum angle is used to avoid introducing faces which would be folded.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12935"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12942"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a function returning the cost for a given edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12947"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->cost_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12953"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->coarsen_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSCOARSENVERTEXFUNC"
-><SPAN
-CLASS="TYPE"
->GtsCoarsenVertexFunc</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12960"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->coarsen_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->coarsen_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12966"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surface-simplification-and-refinement.html#GTSSTOPFUNC"
-><SPAN
-CLASS="TYPE"
->GtsStopFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12973"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stop_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->stop_func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN12979"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->minangle</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> minimum angle between two neighboring triangles.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN12984"
-></A
-><H3
-><A
-NAME="GTS-COARSEN-STOP-NUMBER"
-></A
->gts_coarsen_stop_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_coarsen_stop_number         (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> cost,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nedge,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> *min_number);</PRE
-><P
->This function is to be used as the <CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> argument of 
-<A
-HREF="gts-surface-simplification-and-refinement.html#GTS-SURFACE-COARSEN"
-><CODE
-CLASS="FUNCTION"
->gts_surface_coarsen()</CODE
-></A
-> or <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_new()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13002"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the cost of the edge collapse considered.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13007"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nedge</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the current number of edges of the surface being simplified.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13012"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->min_number</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to the minimum number of edges desired for the 
-surface being simplified.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13017"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the edge collapse would create a surface with a smaller 
-number of edges than given by <CODE
-CLASS="PARAMETER"
->min_number</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13025"
-></A
-><H3
-><A
-NAME="GTS-COARSEN-STOP-COST"
-></A
->gts_coarsen_stop_cost ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_coarsen_stop_cost           (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> cost,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> nedge,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *max_cost);</PRE
-><P
->This function is to be used as the <CODE
-CLASS="PARAMETER"
->stop_func</CODE
-> argument of 
-<A
-HREF="gts-surface-simplification-and-refinement.html#GTS-SURFACE-COARSEN"
-><CODE
-CLASS="FUNCTION"
->gts_surface_coarsen()</CODE
-></A
-> or <A
-HREF="gts-progressive-surfaces.html#GTS-PSURFACE-NEW"
-><CODE
-CLASS="FUNCTION"
->gts_psurface_new()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13043"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cost</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the cost of the edge collapse considered.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13048"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->nedge</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the current number of edges of the surface being simplified.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13053"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->max_cost</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to the maximum cost allowed for an edge collapse.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13058"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the cost of the edge collapse considered is larger than
-given by <CODE
-CLASS="PARAMETER"
->max_cost</CODE
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13066"
-></A
-><H3
-><A
-NAME="GTSVOLUMEOPTIMIZEDPARAMS"
-></A
->GtsVolumeOptimizedParams</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  gdouble volume_weight;
-  gdouble boundary_weight;
-  gdouble shape_weight;
-} GtsVolumeOptimizedParams;</PRE
-><P
->The parameters for the volume optimization algorithm of Lindstrom and Turk. THey define the relative weight of the volume, boundary and shape optimization part of the algorithm. Lindstrom and Turk advice is to set them to 0.5, 0.5 and 0. You may want to experiment depending on your problem. Setting <CODE
-CLASS="PARAMETER"
->shape_weight</CODE
-> to a very small value (1e-10) for example might help improve the quality of the resulting triangulation.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13075"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->volume_weight</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Weight of the volume optimization.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13081"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->boundary_weight</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Weight of the boundary optimization.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13087"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->shape_weight</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Weight of the shape optimization.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13093"
-></A
-><H3
-><A
-NAME="GTS-VOLUME-OPTIMIZED-VERTEX"
-></A
->gts_volume_optimized_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_volume_optimized_vertex     (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *edge,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSVOLUMEOPTIMIZEDPARAMS"
->GtsVolumeOptimizedParams</A
-> *params);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13106"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edge</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13113"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
-> to be used for the new vertex.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13120"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->params</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVOLUMEOPTIMIZEDPARMS"
-><SPAN
-CLASS="TYPE"
->GtsVolumeOptimizedParms</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13127"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> which can be used to replace <CODE
-CLASS="PARAMETER"
->edge</CODE
-> for an
-edge collapse operation. The position of the vertex is optimized in
-order to minimize the changes in area and volume for the surface
-using <CODE
-CLASS="PARAMETER"
->edge</CODE
->. The volume enclosed by the surface is locally
-preserved. For more details see "Fast and memory efficient
-polygonal simplification" (1998) and "Evaluation of memoryless
-simplification" (1999) by Lindstrom and Turk.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13136"
-></A
-><H3
-><A
-NAME="GTS-VOLUME-OPTIMIZED-COST"
-></A
->gts_volume_optimized_cost ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_volume_optimized_cost       (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSVOLUMEOPTIMIZEDPARAMS"
->GtsVolumeOptimizedParams</A
-> *params);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13148"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13155"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->params</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surface-simplification-and-refinement.html#GTSVOLUMEOPTIMIZEDPARAMS"
-><SPAN
-CLASS="TYPE"
->GtsVolumeOptimizedParams</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13162"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the cost for the collapse of <CODE
-CLASS="PARAMETER"
->e</CODE
-> as minimized by the function
-<A
-HREF="gts-surface-simplification-and-refinement.html#GTS-VOLUME-OPTIMIZED-VERTEX"
-><CODE
-CLASS="FUNCTION"
->gts_volume_optimized_vertex()</CODE
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13170"
-></A
-><H3
-><A
-NAME="GTS-EDGE-COLLAPSE-IS-VALID"
-></A
->gts_edge_collapse_is_valid ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_edge_collapse_is_valid      (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
->An implementation of the topological constraints described in the 
-"Mesh Optimization" article of Hoppe et al (1993).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13181"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13188"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->e</CODE
-> can be collapsed without violation of the topological
-constraints, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN13196"
-></A
-><H3
-><A
-NAME="GTS-EDGE-COLLAPSE-CREATES-FOLD"
-></A
->gts_edge_collapse_creates_fold ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_edge_collapse_creates_fold  (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> max);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13209"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13216"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13223"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->max</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->  the maximum value of the square of the cosine of the angle between
-two triangles.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN13228"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if collapsing edge <CODE
-CLASS="PARAMETER"
->e</CODE
-> to vertex <CODE
-CLASS="PARAMETER"
->v</CODE
-> would create
-faces making an angle the cosine squared of which would be larger than max,
-<TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-boolean-operations.html"
-><B
-><<< Boolean operations</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-out-of-core-simplification.html"
-><B
->Out-of-core simplification >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-surfaces.html b/doc/html/gts-surfaces.html
deleted file mode 100644
index 9f9d463..0000000
--- a/doc/html/gts-surfaces.html
+++ /dev/null
@@ -1,5639 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Surfaces</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Faces"
-HREF="gts-faces.html"><LINK
-REL="NEXT"
-TITLE="Geometrical data structures"
-HREF="c10545.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-faces.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="c10545.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-SURFACES"
-></A
->Surfaces</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN8974"
-></A
-><H2
->Name</H2
->Surfaces -- surface object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN8977"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-surfaces.html#GTS-SURFACE-CLASS:CAPS"
->GTS_SURFACE_CLASS</A
->               (klass)
-#define     <A
-HREF="gts-surfaces.html#GTS-SURFACE:CAPS"
->GTS_SURFACE</A
->                     (obj)
-#define     <A
-HREF="gts-surfaces.html#GTS-IS-SURFACE:CAPS"
->GTS_IS_SURFACE</A
->                  (obj)
-            <A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
->GtsSurfaceClass</A
->;
-            <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->;
-
-<A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
->GtsSurfaceClass</A
->* <A
-HREF="gts-surfaces.html#GTS-SURFACE-CLASS"
->gts_surface_class</A
->          (void);
-<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* <A
-HREF="gts-surfaces.html#GTS-SURFACE-NEW"
->gts_surface_new</A
->                 (<A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
->GtsSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
-> *face_class,
-                                             <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *edge_class,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *vertex_class);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-ADD-FACE"
->gts_surface_add_face</A
->            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-REMOVE-FACE"
->gts_surface_remove_face</A
->         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);
-<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* <A
-HREF="gts-surfaces.html#GTS-SURFACE-COPY"
->gts_surface_copy</A
->                (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-MERGE"
->gts_surface_merge</A
->               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *with);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-surfaces.html#GTS-SURFACE-READ"
->gts_surface_read</A
->                (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surfaces.html#GTS-SURFACE-IS-MANIFOLD"
->gts_surface_is_manifold</A
->         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surfaces.html#GTS-SURFACE-IS-ORIENTABLE"
->gts_surface_is_orientable</A
->       (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surfaces.html#GTS-SURFACE-IS-CLOSED"
->gts_surface_is_closed</A
->           (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-surfaces.html#GTS-SURFACE-VERTEX-NUMBER"
->gts_surface_vertex_number</A
->       (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-surfaces.html#GTS-SURFACE-EDGE-NUMBER"
->gts_surface_edge_number</A
->         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-surfaces.html#GTS-SURFACE-FACE-NUMBER"
->gts_surface_face_number</A
->         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-surfaces.html#GTS-SURFACE-BOUNDARY"
->gts_surface_boundary</A
->            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-surfaces.html#GTS-SURFACE-AREA"
->gts_surface_area</A
->                (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-surfaces.html#GTS-SURFACE-VOLUME"
->gts_surface_volume</A
->              (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-surfaces.html#GTS-SURFACE-CENTER-OF-MASS"
->gts_surface_center_of_mass</A
->      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> cm);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-surfaces.html#GTS-SURFACE-CENTER-OF-AREA"
->gts_surface_center_of_area</A
->      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> cm);
-            <A
-HREF="gts-surfaces.html#GTSSURFACESTATS"
->GtsSurfaceStats</A
->;
-            <A
-HREF="gts-surfaces.html#GTSSURFACEQUALITYSTATS"
->GtsSurfaceQualityStats</A
->;
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-STATS"
->gts_surface_stats</A
->               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACESTATS"
->GtsSurfaceStats</A
-> *stats);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-QUALITY-STATS"
->gts_surface_quality_stats</A
->       (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACEQUALITYSTATS"
->GtsSurfaceQualityStats</A
-> *stats);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-PRINT-STATS"
->gts_surface_print_stats</A
->         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-WRITE"
->gts_surface_write</A
->               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-WRITE-OOGL"
->gts_surface_write_oogl</A
->          (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-WRITE-OOGL-BOUNDARY"
->gts_surface_write_oogl_boundary</A
-> (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-WRITE-VTK"
->gts_surface_write_vtk</A
->           (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        (<A
-HREF="gts-surfaces.html#GTSFUNC"
->*GtsFunc</A
->)                      (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> item,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-FOREACH-VERTEX"
->gts_surface_foreach_vertex</A
->      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-FOREACH-EDGE"
->gts_surface_foreach_edge</A
->        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-FOREACH-FACE"
->gts_surface_foreach_face</A
->        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-surfaces.html#GTS-SURFACE-FOREACH-FACE-REMOVE"
->gts_surface_foreach_face_remove</A
-> (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-surfaces.html#GTS-SURFACE-FOREACH-INTERSECTING-FACE"
->gts_surface_foreach_intersecting_face</A
->
-                                            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
->GtsBBTreeTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-            <A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
->;
-<A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
->* <A
-HREF="gts-surfaces.html#GTS-SURFACE-TRAVERSE-NEW"
->gts_surface_traverse_new</A
->
-                                            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);
-<A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    <A
-HREF="gts-surfaces.html#GTS-SURFACE-TRAVERSE-NEXT"
->gts_surface_traverse_next</A
->       (<A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
-> *t,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> *level);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-TRAVERSE-DESTROY"
->gts_surface_traverse_destroy</A
->    (<A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
-> *t);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-DISTANCE"
->gts_surface_distance</A
->            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *face_range,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *boundary_range);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-surfaces.html#GTS-SURFACE-STRIP"
->gts_surface_strip</A
->               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-surfaces.html#GTS-SURFACE-TESSELLATE"
->gts_surface_tessellate</A
->          (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
->GtsRefineFunc</A
-> refine_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> refine_data);
-<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* <A
-HREF="gts-surfaces.html#GTS-SURFACE-GENERATE-SPHERE"
->gts_surface_generate_sphere</A
->     (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> geodesation_order);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-surfaces.html#GTS-SURFACE-SPLIT"
->gts_surface_split</A
->               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN9141"
-></A
-><H2
->Description</H2
-><P
->A <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> is defined as a collection of <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->. No topological constraint is imposed: the surface may or may not be manifold, closed or orientable.</P
-><P
->When destroying a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->, all the faces not used by another surface are also destroyed. This default behaviour can be changed punctually by setting the global variable gts_allow_floating_faces to <TT
-CLASS="LITERAL"
->TRUE</TT
->. You must not forget to set this variable back to <TT
-CLASS="LITERAL"
->FALSE</TT
-> as all the algorithms of GTS assume the default behaviour.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN9153"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9155"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-CLASS:CAPS"
-></A
->GTS_SURFACE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SURFACE_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9166"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9173"
-></A
-><H3
-><A
-NAME="GTS-SURFACE:CAPS"
-></A
->GTS_SURFACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SURFACE(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9184"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9191"
-></A
-><H3
-><A
-NAME="GTS-IS-SURFACE:CAPS"
-></A
->GTS_IS_SURFACE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_SURFACE(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9204"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9209"
-></A
-><H3
-><A
-NAME="GTSSURFACECLASS"
-></A
->GtsSurfaceClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-
-  void (* add_face)    (GtsSurface *, GtsFace *);
-  void (* remove_face) (GtsSurface *, GtsFace *);
-} GtsSurfaceClass;</PRE
-><P
->The surface class. No virtual function is defined.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9216"
-></A
-><H3
-><A
-NAME="GTSSURFACE"
-></A
->GtsSurface</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-#ifdef USE_SURFACE_BTREE
-  GTree * faces;
-#else /* not USE_SURFACE_BTREE */
-  GHashTable * faces;
-#endif /* not USE_SURFACE_BTREE */
-  GtsFaceClass * face_class;
-  GtsEdgeClass * edge_class;
-  GtsVertexClass * vertex_class;
-  gboolean keep_faces;
-} GtsSurface;</PRE
-><P
->The surface structure derived from <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.
-This structure should only be accessed through the following functions.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9225"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-CLASS"
-></A
->gts_surface_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
->GtsSurfaceClass</A
->* gts_surface_class          (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9235"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9242"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-NEW"
-></A
->gts_surface_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* gts_surface_new                 (<A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
->GtsSurfaceClass</A
-> *klass,
-                                             <A
-HREF="gts-faces.html#GTSFACECLASS"
->GtsFaceClass</A
-> *face_class,
-                                             <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *edge_class,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *vertex_class);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9256"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9263"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->face_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACECLASS"
-><SPAN
-CLASS="TYPE"
->GtsFaceClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9270"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edge_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9277"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vertex_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9284"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new empty <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9291"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-ADD-FACE"
-></A
->gts_surface_add_face ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_add_face            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);</PRE
-><P
->Adds face <CODE
-CLASS="PARAMETER"
->f</CODE
-> to surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9305"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9312"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9319"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-REMOVE-FACE"
-></A
->gts_surface_remove_face ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_remove_face         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);</PRE
-><P
->Removes face <CODE
-CLASS="PARAMETER"
->f</CODE
-> from surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9333"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9340"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9347"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-COPY"
-></A
->gts_surface_copy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* gts_surface_copy                (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2);</PRE
-><P
->Add a copy of all the faces, edges and vertices of <CODE
-CLASS="PARAMETER"
->s2</CODE
-> to <CODE
-CLASS="PARAMETER"
->s1</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9361"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9368"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9375"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <CODE
-CLASS="PARAMETER"
->s1</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9381"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-MERGE"
-></A
->gts_surface_merge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_merge               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *with);</PRE
-><P
->Adds all the faces of <CODE
-CLASS="PARAMETER"
->with</CODE
-> which do not already belong to <CODE
-CLASS="PARAMETER"
->s</CODE
->
-to <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9396"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9403"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->with</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9410"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-READ"
-></A
->gts_surface_read ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_surface_read                (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
->GtsFile</A
-> *f);</PRE
-><P
->Add to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> the data read from <CODE
-CLASS="PARAMETER"
->f</CODE
->. The format of the file pointed to
-by <CODE
-CLASS="PARAMETER"
->f</CODE
-> is as described in <A
-HREF="gts-surfaces.html#GTS-SURFACE-WRITE"
-><CODE
-CLASS="FUNCTION"
->gts_surface_write()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9427"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9434"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTSFILE"
-><SPAN
-CLASS="TYPE"
->GtsFile</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9441"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> 0 if successful or the line number at which the parsing
-stopped in case of error (in which case the <CODE
-CLASS="PARAMETER"
->error</CODE
-> field of <CODE
-CLASS="PARAMETER"
->f</CODE
-> is
-set to a description of the error which occured).  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9448"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-IS-MANIFOLD"
-></A
->gts_surface_is_manifold ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_surface_is_manifold         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9459"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9466"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if the surface is a manifold, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9473"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-IS-ORIENTABLE"
-></A
->gts_surface_is_orientable ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_surface_is_orientable       (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9484"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9491"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if all the faces of <CODE
-CLASS="PARAMETER"
->s</CODE
-> have compatible orientation
-as checked by <GTKDOCLINK
-HREF="GTS-FACES-ARE-COMPATIBLE"
-><CODE
-CLASS="FUNCTION"
->gts_faces_are_compatible()</CODE
-></GTKDOCLINK
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise. Note that
-an orientable surface is also a manifold.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9501"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-IS-CLOSED"
-></A
->gts_surface_is_closed ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_surface_is_closed           (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9512"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9519"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->s</CODE
-> is a closed surface, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise. Note that a
-closed surface is also a manifold.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9527"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-VERTEX-NUMBER"
-></A
->gts_surface_vertex_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_surface_vertex_number       (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9538"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9545"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of vertices of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9551"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-EDGE-NUMBER"
-></A
->gts_surface_edge_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_surface_edge_number         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9562"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9569"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of edges of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9575"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-FACE-NUMBER"
-></A
->gts_surface_face_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_surface_face_number         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9586"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9593"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of faces of <CODE
-CLASS="PARAMETER"
->s</CODE
-></P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9599"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-BOUNDARY"
-></A
->gts_surface_boundary ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_surface_boundary            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9610"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9617"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> boundary of <CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9625"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-AREA"
-></A
->gts_surface_area ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_surface_area                (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9636"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9643"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the area of <CODE
-CLASS="PARAMETER"
->s</CODE
-> obtained as the sum of the signed areas of its
-faces.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9649"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-VOLUME"
-></A
->gts_surface_volume ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_surface_volume              (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9660"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9667"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the signed volume of the domain bounded by the surface <CODE
-CLASS="PARAMETER"
->s</CODE
->. It
-makes sense only if <CODE
-CLASS="PARAMETER"
->s</CODE
-> is a closed and orientable manifold.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9674"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-CENTER-OF-MASS"
-></A
->gts_surface_center_of_mass ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_surface_center_of_mass      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> cm);</PRE
-><P
->Fills <CODE
-CLASS="PARAMETER"
->cm</CODE
-> with the coordinates of the center of mass of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9688"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9695"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cm</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9702"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the signed volume of the domain bounded by the surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9708"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-CENTER-OF-AREA"
-></A
->gts_surface_center_of_area ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_surface_center_of_area      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> cm);</PRE
-><P
->Fills <CODE
-CLASS="PARAMETER"
->cm</CODE
-> with the coordinates of the center of area of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9722"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9729"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->cm</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9736"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the area of surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9742"
-></A
-><H3
-><A
-NAME="GTSSURFACESTATS"
-></A
->GtsSurfaceStats</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  guint n_faces;
-  guint n_incompatible_faces;
-  guint n_duplicate_faces;
-  guint n_duplicate_edges;
-  guint n_boundary_edges;
-  guint n_non_manifold_edges;
-  GtsRange edges_per_vertex, faces_per_edge;
-  GtsSurface * parent;
-} GtsSurfaceStats;</PRE
-><P
->Connectivity statistics.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9750"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n_faces</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of faces.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9756"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n_incompatible_faces</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of incompatible faces (see <A
-HREF="gts-triangles.html#GTS-TRIANGLES-ARE-COMPATIBLE"
-><CODE
-CLASS="FUNCTION"
->gts_triangles_are_compatible()</CODE
-></A
-> for details).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9764"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n_duplicate_faces</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of duplicate faces (see <A
-HREF="gts-triangles.html#GTS-TRIANGLE-IS-DUPLICATE"
-><CODE
-CLASS="FUNCTION"
->gts_triangle_is_duplicate()</CODE
-></A
-> for details).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9772"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n_duplicate_edges</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of duplicate edges (see <A
-HREF="gts-segments.html#GTS-SEGMENT-IS-DUPLICATE"
-><CODE
-CLASS="FUNCTION"
->gts_segment_is_duplicate()</CODE
-></A
-> for details).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9780"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n_boundary_edges</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of boundary edges.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9786"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->n_non_manifold_edges</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of non-manifold edges.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9792"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> <CODE
-CLASS="STRUCTFIELD"
->edges_per_vertex</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Statistics on the number of edges per vertex.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9798"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> <CODE
-CLASS="STRUCTFIELD"
->faces_per_edge</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Statistics on the number of faces per vertex.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9804"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->parent</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Surface from which these statistics have been obtained.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9810"
-></A
-><H3
-><A
-NAME="GTSSURFACEQUALITYSTATS"
-></A
->GtsSurfaceQualityStats</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsRange face_quality;
-  GtsRange face_area;
-  GtsRange edge_length;
-  GtsRange edge_angle;
-  GtsSurface * parent;
-} GtsSurfaceQualityStats;</PRE
-><P
->Quality and geometry statistics.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9818"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> <CODE
-CLASS="STRUCTFIELD"
->face_quality</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Statistics for face quality (see <A
-HREF="gts-triangles.html#GTS-TRIANGLE-QUALITY"
-><CODE
-CLASS="FUNCTION"
->gts_triangle_quality()</CODE
-></A
-> for details).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9826"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> <CODE
-CLASS="STRUCTFIELD"
->face_area</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Statistics for the face area.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9832"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> <CODE
-CLASS="STRUCTFIELD"
->edge_length</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Statistics for the edge length.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9838"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> <CODE
-CLASS="STRUCTFIELD"
->edge_angle</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Statistics for the edge angles.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9844"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *<CODE
-CLASS="STRUCTFIELD"
->parent</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Surface from which these statistics have been obtained.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9850"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-STATS"
-></A
->gts_surface_stats ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_stats               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACESTATS"
->GtsSurfaceStats</A
-> *stats);</PRE
-><P
->Fills <CODE
-CLASS="PARAMETER"
->stats</CODE
-> with the statistics relevant to surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9864"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9871"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stats</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACESTATS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceStats</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9878"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-QUALITY-STATS"
-></A
->gts_surface_quality_stats ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_quality_stats       (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACEQUALITYSTATS"
->GtsSurfaceQualityStats</A
-> *stats);</PRE
-><P
->Fills <CODE
-CLASS="PARAMETER"
->stats</CODE
-> with quality statistics relevant to surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9892"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9899"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->stats</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACEQUALITYSTATS"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceQualityStats</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9906"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-PRINT-STATS"
-></A
->gts_surface_print_stats ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_print_stats         (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes in the file pointed to by <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> the statistics for surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9920"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9927"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9932"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-WRITE"
-></A
->gts_surface_write ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_write               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes in the file <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> an ASCII representation of <CODE
-CLASS="PARAMETER"
->s</CODE
->. The file
-format is as follows. </P
-><P
->All the lines beginning with <A
-HREF="gts-miscellaneous-macros-and-functions.html#GTS-COMMENTS:CAPS"
-><SPAN
-CLASS="TYPE"
->GTS_COMMENTS</SPAN
-></A
-> are ignored. The first line
-contains three unsigned integers separated by spaces. The first
-integer is the number of vertices, nv, the second is the number of
-edges, ne and the third is the number of faces, nf.</P
-><P
->Follows nv lines containing the x, y and z coordinates of the
-vertices.  Follows ne lines containing the two indices (starting
-from one) of the vertices of each edge. Follows nf lines containing
-the three ordered indices (also starting from one) of the edges of
-each face.  </P
-><P
->The format described above is the least common denominator to all
-GTS files.  Consistent with an object-oriented approach, the GTS
-file format is extensible. Each of the lines of the file can be
-extended with user-specific attributes accessible through the
-<GTKDOCLINK
-HREF="READ"
-><CODE
-CLASS="FUNCTION"
->read()</CODE
-></GTKDOCLINK
-> and <GTKDOCLINK
-HREF="WRITE"
-><CODE
-CLASS="FUNCTION"
->write()</CODE
-></GTKDOCLINK
-> virtual methods of each of the objects written
-(surface, vertices, edges or faces). When read with different
-object classes, these extra attributes are just ignored.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9955"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9962"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9967"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-WRITE-OOGL"
-></A
->gts_surface_write_oogl ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_write_oogl          (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes in the file <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> an OOGL (Geomview) representation of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9981"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN9988"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN9993"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-WRITE-OOGL-BOUNDARY"
-></A
->gts_surface_write_oogl_boundary ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_write_oogl_boundary (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes in the file <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> an OOGL (Geomview) representation of the
-boundary of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10007"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10014"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10019"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-WRITE-VTK"
-></A
->gts_surface_write_vtk ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_write_vtk           (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Writes in the file <CODE
-CLASS="PARAMETER"
->fptr</CODE
-> a VTK representation of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10033"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10040"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file pointer.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10045"
-></A
-><H3
-><A
-NAME="GTSFUNC"
-></A
->GtsFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
->        (*GtsFunc)                      (<GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> item,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->A user function called for each item of a collection.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10056"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->item</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer this function is called for.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10061"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->user data passed to the function.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10066"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->if 0 the calling sequence continues, otherwise it stops.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10071"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-FOREACH-VERTEX"
-></A
->gts_surface_foreach_vertex ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_foreach_vertex      (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> once for each vertex of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10086"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10093"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10100"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10106"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-FOREACH-EDGE"
-></A
->gts_surface_foreach_edge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_foreach_edge        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> once for each edge of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10121"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10128"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10135"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10141"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-FOREACH-FACE"
-></A
->gts_surface_foreach_face ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_foreach_face        (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> once for each face of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10156"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10163"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10170"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10176"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-FOREACH-FACE-REMOVE"
-></A
->gts_surface_foreach_face_remove ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_surface_foreach_face_remove (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surfaces.html#GTSFUNC"
->GtsFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> once for each face of <CODE
-CLASS="PARAMETER"
->s</CODE
->. If <CODE
-CLASS="PARAMETER"
->func</CODE
-> returns <TT
-CLASS="LITERAL"
->TRUE</TT
-> the
-corresponding face is removed from <CODE
-CLASS="PARAMETER"
->s</CODE
-> (and destroyed if it does not
-belong to any other surface and <GTKDOCLINK
-HREF="GTS-ALLOW-FLOATING-FACES"
-><SPAN
-CLASS="TYPE"
->gts_allow_floating_faces</SPAN
-></GTKDOCLINK
-> is set to
-<TT
-CLASS="LITERAL"
->FALSE</TT
->).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10197"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10204"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSFUNC"
-><SPAN
-CLASS="TYPE"
->GtsFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10211"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10217"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of faces removed from <CODE
-CLASS="PARAMETER"
->s</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10223"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-FOREACH-INTERSECTING-FACE"
-></A
->gts_surface_foreach_intersecting_face ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_surface_foreach_intersecting_face
-                                            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
->GtsBBTreeTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each intersecting pair of faces of <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10238"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10245"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-bounding-boxes-trees.html#GTSBBTREETRAVERSEFUNC"
-><SPAN
-CLASS="TYPE"
->GtsBBTreeTraverseFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10252"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to <CODE
-CLASS="PARAMETER"
->func</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10258"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->func</CODE
-> was called at least once, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10266"
-></A
-><H3
-><A
-NAME="GTSSURFACETRAVERSE"
-></A
->GtsSurfaceTraverse</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsSurfaceTraverse GtsSurfaceTraverse;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10273"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-TRAVERSE-NEW"
-></A
->gts_surface_traverse_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
->* gts_surface_traverse_new
-                                            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
-> *f);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10285"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10292"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->f</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10300"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceTraverse</SPAN
-></A
->, initialized to start traversing
-from face <CODE
-CLASS="PARAMETER"
->f</CODE
-> of surface <CODE
-CLASS="PARAMETER"
->s</CODE
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10309"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-TRAVERSE-NEXT"
-></A
->gts_surface_traverse_next ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-faces.html#GTSFACE"
->GtsFace</A
->*    gts_surface_traverse_next       (<A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
-> *t,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> *level);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10321"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceTraverse</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10328"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->level</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to a guint or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10334"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the next face of the traversal in breadth-first order or
-<TT
-CLASS="LITERAL"
->NULL</TT
-> if no faces are left. If <CODE
-CLASS="PARAMETER"
->level</CODE
-> if not <TT
-CLASS="LITERAL"
->NULL</TT
->, it is filled
-with the level of the returned face (0 for the initial face, 1 for
-its neighbors and so on).  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10342"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-TRAVERSE-DESTROY"
-></A
->gts_surface_traverse_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_traverse_destroy    (<A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
->GtsSurfaceTraverse</A
-> *t);</PRE
-><P
->Frees all the memory allocated for <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10354"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACETRAVERSE"
-><SPAN
-CLASS="TYPE"
->GtsSurfaceTraverse</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10361"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-DISTANCE"
-></A
->gts_surface_distance ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_distance            (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s1,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s2,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> delta,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *face_range,
-                                             <A
-HREF="gts-simple-statistics.html#GTSRANGE"
->GtsRange</A
-> *boundary_range);</PRE
-><P
->Using the <A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_surface_distance()</CODE
-></A
-> and
-<A
-HREF="gts-bounding-boxes-trees.html#GTS-BB-TREE-SURFACE-BOUNDARY-DISTANCE"
-><CODE
-CLASS="FUNCTION"
->gts_bb_tree_surface_boundary_distance()</CODE
-></A
-> functions fills <CODE
-CLASS="PARAMETER"
->face_range</CODE
->
-and <CODE
-CLASS="PARAMETER"
->boundary_range</CODE
-> with the min, max and average Euclidean
-(minimum) distances between the faces of <CODE
-CLASS="PARAMETER"
->s1</CODE
-> and the faces of <CODE
-CLASS="PARAMETER"
->s2</CODE
->
-and between the boundary edges of <CODE
-CLASS="PARAMETER"
->s1</CODE
-> and <CODE
-CLASS="PARAMETER"
->s2</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10386"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10393"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10400"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->delta</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a spatial increment defined as the percentage of the diagonal
-of the bounding box of <CODE
-CLASS="PARAMETER"
->s2</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10406"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->face_range</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10413"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->boundary_range</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-simple-statistics.html#GTSRANGE"
-><SPAN
-CLASS="TYPE"
->GtsRange</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10420"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-STRIP"
-></A
->gts_surface_strip ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_surface_strip               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
->Decompose <CODE
-CLASS="PARAMETER"
->s</CODE
-> into triangle strips for fast-rendering.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10432"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10439"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of triangle strips containing all the triangles of <CODE
-CLASS="PARAMETER"
->s</CODE
->. 
-A triangle strip is itself a list of successive triangles having one edge
-in common.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10445"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-TESSELLATE"
-></A
->gts_surface_tessellate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_surface_tessellate          (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
->GtsRefineFunc</A
-> refine_func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> refine_data);</PRE
-><P
->Tessellate each triangle of <CODE
-CLASS="PARAMETER"
->s</CODE
-> with 4 triangles:   
-the number of triangles is increased by a factor of 4.
-http://mathworld.wolfram.com/GeodesicDome.html</P
-><P
->If <CODE
-CLASS="PARAMETER"
->refine_func</CODE
-> is set to <TT
-CLASS="LITERAL"
->NULL</TT
-> a mid arc function is used: if
-the surface is a polyhedron with the unit sphere as circum sphere,
-then <A
-HREF="gts-surfaces.html#GTS-SURFACE-TESSELLATE"
-><CODE
-CLASS="FUNCTION"
->gts_surface_tessellate()</CODE
-></A
-> corresponds to a geodesation step
-(see <A
-HREF="gts-surfaces.html#GTS-SURFACE-GENERATE-SPHERE"
-><CODE
-CLASS="FUNCTION"
->gts_surface_generate_sphere()</CODE
-></A
->).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10466"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10473"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->refine_func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surface-simplification-and-refinement.html#GTSREFINEFUNC"
-><SPAN
-CLASS="TYPE"
->GtsRefineFunc</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10480"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->refine_data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to be passed to <CODE
-CLASS="PARAMETER"
->refine_func</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10486"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-GENERATE-SPHERE"
-></A
->gts_surface_generate_sphere ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
->* gts_surface_generate_sphere     (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> geodesation_order);</PRE
-><P
->Add a triangulated unit sphere generated by recursive subdivision to <CODE
-CLASS="PARAMETER"
->s</CODE
->.
-First approximation is an isocahedron; each level of refinement
-(<CODE
-CLASS="PARAMETER"
->geodesation_order</CODE
->) increases the number of triangles by a factor of 4.
-http://mathworld.wolfram.com/GeodesicDome.html</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10500"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10507"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->geodesation_order</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GUINT"
-><SPAN
-CLASS="TYPE"
->guint</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10514"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <CODE
-CLASS="PARAMETER"
->s</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10520"
-></A
-><H3
-><A
-NAME="GTS-SURFACE-SPLIT"
-></A
->gts_surface_split ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_surface_split               (<A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s);</PRE
-><P
->Splits a surface into connected and manifold components.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10531"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN10538"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of new <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-faces.html"
-><B
-><<< Faces</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="c10545.html"
-><B
->Geometrical data structures >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-triangles.html b/doc/html/gts-triangles.html
deleted file mode 100644
index d6ab8a2..0000000
--- a/doc/html/gts-triangles.html
+++ /dev/null
@@ -1,4554 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Triangles</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Edges"
-HREF="gts-edges.html"><LINK
-REL="NEXT"
-TITLE="Faces"
-HREF="gts-faces.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-edges.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-faces.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-TRIANGLES"
-></A
->Triangles</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN7291"
-></A
-><H2
->Name</H2
->Triangles -- triangle object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN7294"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-CLASS:CAPS"
->GTS_TRIANGLE_CLASS</A
->              (klass)
-#define     <A
-HREF="gts-triangles.html#GTS-TRIANGLE:CAPS"
->GTS_TRIANGLE</A
->                    (obj)
-#define     <A
-HREF="gts-triangles.html#GTS-IS-TRIANGLE:CAPS"
->GTS_IS_TRIANGLE</A
->                 (obj)
-            <A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
->;
-            <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->;
-
-<A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
->* <A
-HREF="gts-triangles.html#GTS-TRIANGLE-CLASS"
->gts_triangle_class</A
->        (void);
-<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* <A
-HREF="gts-triangles.html#GTS-TRIANGLE-NEW"
->gts_triangle_new</A
->               (<A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
-> *klass,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-triangles.html#GTS-TRIANGLE-SET"
->gts_triangle_set</A
->                (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *triangle,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-AREA"
->gts_triangle_area</A
->               (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-PERIMETER"
->gts_triangle_perimeter</A
->          (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-QUALITY"
->gts_triangle_quality</A
->            (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-triangles.html#GTS-TRIANGLE-NORMAL"
->gts_triangle_normal</A
->             (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *z);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-triangles.html#GTS-TRIANGLE-REVERT"
->gts_triangle_revert</A
->             (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-ORIENTATION"
->gts_triangle_orientation</A
->        (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* <A
-HREF="gts-triangles.html#GTS-TRIANGLE-IS-DUPLICATE"
->gts_triangle_is_duplicate</A
->      (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-triangles.html#GTS-TRIANGLES-ANGLE"
->gts_triangles_angle</A
->             (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t1,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t2);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-triangles.html#GTS-TRIANGLES-ARE-COMPATIBLE"
->gts_triangles_are_compatible</A
->    (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t1,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* <A
-HREF="gts-triangles.html#GTS-TRIANGLE-ENCLOSING"
->gts_triangle_enclosing</A
->         (<A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *points,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> scale);
-<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    <A
-HREF="gts-triangles.html#GTS-TRIANGLES-COMMON-EDGE"
->gts_triangles_common_edge</A
->       (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t1,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t2);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-triangles.html#GTS-TRIANGLE-NEIGHBOR-NUMBER"
->gts_triangle_neighbor_number</A
->    (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-NEIGHBORS"
->gts_triangle_neighbors</A
->          (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-triangles.html#GTS-TRIANGLE-VERTICES-EDGES"
->gts_triangle_vertices_edges</A
->     (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v2,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v3,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> **e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> **e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> **e3);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-triangles.html#GTS-TRIANGLE-VERTEX-OPPOSITE"
->gts_triangle_vertex_opposite</A
->    (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    <A
-HREF="gts-triangles.html#GTS-TRIANGLE-EDGE-OPPOSITE"
->gts_triangle_edge_opposite</A
->      (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-triangles.html#GTS-TRIANGLE-VERTICES"
->gts_triangle_vertices</A
->           (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v2,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v3);
-#define     <A
-HREF="gts-triangles.html#GTS-TRIANGLE-VERTEX"
->gts_triangle_vertex</A
->             (t)
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-triangles.html#GTS-TRIANGLE-IS-OK"
->gts_triangle_is_ok</A
->              (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* <A
-HREF="gts-triangles.html#GTS-TRIANGLE-USE-EDGES"
->gts_triangle_use_edges</A
->         (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);
-<A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   <A
-HREF="gts-triangles.html#GTS-TRIANGLE-CIRCUMCIRCLE-CENTER"
->gts_triangle_circumcircle_center</A
->
-                                            (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
-> *point_class);
-<A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->*  <A
-HREF="gts-triangles.html#GTS-TRIANGLE-IS-STABBED"
->gts_triangle_is_stabbed</A
->         (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *orientation);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-triangles.html#GTS-TRIANGLES-ARE-FOLDED"
->gts_triangles_are_folded</A
->        (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *triangles,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *A,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *B,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> max);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-triangles.html#GTS-TRIANGLES-FROM-EDGES"
->gts_triangles_from_edges</A
->        (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *edges);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-triangles.html#GTS-TRIANGLE-INTERPOLATE-HEIGHT"
->gts_triangle_interpolate_height</A
-> (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN7419"
-></A
-><H2
->Description</H2
-><P
->A <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> is defined by three <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->. They are oriented, the normal to the triangle points toward an observer seing the three edges in counter-clockwise order.</P
-><P
->When destroying a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->, all the edges not used by another triangle are also destroyed. This default behaviour can be changed punctually by setting the global variable gts_allow_floating_edges to <TT
-CLASS="LITERAL"
->TRUE</TT
->. You must not forget to set this variable back to <TT
-CLASS="LITERAL"
->FALSE</TT
-> as all the algorithms of GTS assume the default behaviour.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN7431"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7433"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-CLASS:CAPS"
-></A
->GTS_TRIANGLE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_TRIANGLE_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
-><SPAN
-CLASS="TYPE"
->GtsTriangleClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7444"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
-><SPAN
-CLASS="TYPE"
->GtsTriangleClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7451"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE:CAPS"
-></A
->GTS_TRIANGLE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_TRIANGLE(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7462"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7469"
-></A
-><H3
-><A
-NAME="GTS-IS-TRIANGLE:CAPS"
-></A
->GTS_IS_TRIANGLE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_TRIANGLE(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a descendant of <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7482"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7487"
-></A
-><H3
-><A
-NAME="GTSTRIANGLECLASS"
-></A
->GtsTriangleClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsTriangleClass;</PRE
-><P
->The triangle class, just derived from <A
-HREF="gts-object-class.html#GTSOBJECT"
-><SPAN
-CLASS="TYPE"
->GtsObject</SPAN
-></A
->.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7496"
-></A
-><H3
-><A
-NAME="GTSTRIANGLE"
-></A
->GtsTriangle</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsEdge * e1;
-  GtsEdge * e2;
-  GtsEdge * e3;
-} GtsTriangle;</PRE
-><P
->The triangle object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7504"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7510"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *<CODE
-CLASS="STRUCTFIELD"
->e1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->First edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7516"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *<CODE
-CLASS="STRUCTFIELD"
->e2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Second edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7522"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *<CODE
-CLASS="STRUCTFIELD"
->e3</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Third edge.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7528"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-CLASS"
-></A
->gts_triangle_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
->* gts_triangle_class        (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7538"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
-><SPAN
-CLASS="TYPE"
->GtsTriangleClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7545"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-NEW"
-></A
->gts_triangle_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* gts_triangle_new               (<A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
-> *klass,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7559"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
-><SPAN
-CLASS="TYPE"
->GtsTriangleClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7566"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7573"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> touching <CODE
-CLASS="PARAMETER"
->e1</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7581"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> touching both <CODE
-CLASS="PARAMETER"
->e1</CODE
-> and <CODE
-CLASS="PARAMETER"
->e2</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7590"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> having <CODE
-CLASS="PARAMETER"
->e1</CODE
->, <CODE
-CLASS="PARAMETER"
->e2</CODE
-> and <CODE
-CLASS="PARAMETER"
->e3</CODE
-> as edges.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7600"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-SET"
-></A
->gts_triangle_set ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_triangle_set                (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *triangle,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);</PRE
-><P
->Sets the edge of <CODE
-CLASS="PARAMETER"
->triangle</CODE
-> to <CODE
-CLASS="PARAMETER"
->e1</CODE
->, <CODE
-CLASS="PARAMETER"
->e2</CODE
-> and <CODE
-CLASS="PARAMETER"
->e3</CODE
-> while checking that they
-define a valid triangle.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7618"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->triangle</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7625"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7632"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> touching <CODE
-CLASS="PARAMETER"
->e1</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7640"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> touching both <CODE
-CLASS="PARAMETER"
->e1</CODE
-> and <CODE
-CLASS="PARAMETER"
->e2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7649"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-AREA"
-></A
->gts_triangle_area ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_triangle_area               (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7660"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7667"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the area of the triangle <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7673"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-PERIMETER"
-></A
->gts_triangle_perimeter ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_triangle_perimeter          (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7684"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7691"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the perimeter of the triangle <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7697"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-QUALITY"
-></A
->gts_triangle_quality ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_triangle_quality            (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->The quality of a triangle is defined as the ratio of the square
-root of its surface area to its perimeter relative to this same
-ratio for an equilateral triangle with the same area. The quality
-is then one for an equilateral triangle and tends to zero for a
-very stretched triangle.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7708"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7715"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the quality of the triangle <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7721"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-NORMAL"
-></A
->gts_triangle_normal ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_triangle_normal             (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *z);</PRE
-><P
->Computes the coordinates of the oriented normal of <CODE
-CLASS="PARAMETER"
->t</CODE
-> as the
-cross-product of two edges, using the left-hand rule. The normal is
-not normalized.  If this triangle is part of a closed and oriented
-surface, the normal points to the outside of the surface.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7736"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7743"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the x coordinate of the normal.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7748"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the y coordinate of the normal.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7753"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the z coordinate of the normal.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7758"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-REVERT"
-></A
->gts_triangle_revert ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_triangle_revert             (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->Changes the orientation of triangle <CODE
-CLASS="PARAMETER"
->t</CODE
->, turning it inside out.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7770"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7777"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-ORIENTATION"
-></A
->gts_triangle_orientation ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_triangle_orientation        (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->Checks for the orientation of the plane (x,y) projection of a
-triangle. See <A
-HREF="gts-points.html#GTS-POINT-ORIENTATION"
-><CODE
-CLASS="FUNCTION"
->gts_point_orientation()</CODE
-></A
-> for details. This function
-is geometrically robust.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7790"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7797"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a number depending on the orientation of the vertices of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7803"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-IS-DUPLICATE"
-></A
->gts_triangle_is_duplicate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* gts_triangle_is_duplicate      (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7814"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7821"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> different from <CODE
-CLASS="PARAMETER"
->t</CODE
-> but sharing all its edges 
-with <CODE
-CLASS="PARAMETER"
->t</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if there is none.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7831"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLES-ANGLE"
-></A
->gts_triangles_angle ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_triangles_angle             (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t1,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7843"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7850"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7857"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the value (in radians) of the angle between <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and <CODE
-CLASS="PARAMETER"
->t2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7864"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLES-ARE-COMPATIBLE"
-></A
->gts_triangles_are_compatible ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_triangles_are_compatible    (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t1,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
->Checks if <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and <CODE
-CLASS="PARAMETER"
->t2</CODE
-> have compatible orientations i.e. if <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and
-<CODE
-CLASS="PARAMETER"
->t2</CODE
-> can be part of the same surface without conflict in the surface
-normal orientation.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7881"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7888"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7895"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> used by both <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and <CODE
-CLASS="PARAMETER"
->t2</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7904"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and <CODE
-CLASS="PARAMETER"
->t2</CODE
-> are compatible, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7913"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-ENCLOSING"
-></A
->gts_triangle_enclosing ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* gts_triangle_enclosing         (<A
-HREF="gts-triangles.html#GTSTRIANGLECLASS"
->GtsTriangleClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *points,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> scale);</PRE
-><P
->Builds a new triangle (including new vertices and edges) enclosing
-the plane projection of all the points in <CODE
-CLASS="PARAMETER"
->points</CODE
->. This triangle is
-equilateral and encloses a rectangle defined by the maximum and
-minimum x and y coordinates of the points. <CODE
-CLASS="PARAMETER"
->scale</CODE
-> is an homothetic
-scaling factor. If equal to one, the triangle encloses exactly the
-enclosing rectangle.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7928"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the class of the new triangle.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7933"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->points</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7940"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->scale</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a scaling factor (must be larger than one).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7945"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7952"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLES-COMMON-EDGE"
-></A
->gts_triangles_common_edge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    gts_triangles_common_edge       (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t1,
-                                             <A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7964"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7971"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN7978"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> common to both <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and <CODE
-CLASS="PARAMETER"
->t2</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->t1</CODE
-> and <CODE
-CLASS="PARAMETER"
->t2</CODE
->
-do not share any edge.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN7990"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-NEIGHBOR-NUMBER"
-></A
->gts_triangle_neighbor_number ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_triangle_neighbor_number    (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8001"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8008"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of triangles neighbors of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8014"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-NEIGHBORS"
-></A
->gts_triangle_neighbors ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_triangle_neighbors          (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8025"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8032"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> neighbors of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8040"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-VERTICES-EDGES"
-></A
->gts_triangle_vertices_edges ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_triangle_vertices_edges     (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v2,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v3,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> **e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> **e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> **e3);</PRE
-><P
->Given <CODE
-CLASS="PARAMETER"
->t</CODE
-> and <CODE
-CLASS="PARAMETER"
->e</CODE
->, returns <CODE
-CLASS="PARAMETER"
->v1</CODE
->, <CODE
-CLASS="PARAMETER"
->v2</CODE
->, <CODE
-CLASS="PARAMETER"
->v3</CODE
->, <CODE
-CLASS="PARAMETER"
->e1</CODE
->, <CODE
-CLASS="PARAMETER"
->e2</CODE
-> and <CODE
-CLASS="PARAMETER"
->e3</CODE
->. <CODE
-CLASS="PARAMETER"
->e1</CODE
->
-has <CODE
-CLASS="PARAMETER"
->v1</CODE
-> and <CODE
-CLASS="PARAMETER"
->v2</CODE
-> as vertices, <CODE
-CLASS="PARAMETER"
->e2</CODE
-> has <CODE
-CLASS="PARAMETER"
->v2</CODE
-> and <CODE
-CLASS="PARAMETER"
->v3</CODE
-> as vertices
-and <CODE
-CLASS="PARAMETER"
->e3</CODE
-> has <CODE
-CLASS="PARAMETER"
->v3</CODE
-> and <CODE
-CLASS="PARAMETER"
->v1</CODE
-> as vertices. <CODE
-CLASS="PARAMETER"
->v1</CODE
->, <CODE
-CLASS="PARAMETER"
->v2</CODE
-> and <CODE
-CLASS="PARAMETER"
->v3</CODE
-> respects
-the orientation of <CODE
-CLASS="PARAMETER"
->t</CODE
->. If <CODE
-CLASS="PARAMETER"
->e</CODE
-> is not NULL, <CODE
-CLASS="PARAMETER"
->e1</CODE
-> and <CODE
-CLASS="PARAMETER"
->e</CODE
-> are
-identical.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8082"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8089"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> belonging to the edges of <CODE
-CLASS="PARAMETER"
->t</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8098"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8106"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8114"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8122"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8130"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8138"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8146"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-VERTEX-OPPOSITE"
-></A
->gts_triangle_vertex_opposite ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_triangle_vertex_opposite    (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
->This function fails if <CODE
-CLASS="PARAMETER"
->e</CODE
-> is not an edge of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8160"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8167"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> used by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8175"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, vertex of <CODE
-CLASS="PARAMETER"
->t</CODE
-> which does not belong to <CODE
-CLASS="PARAMETER"
->e</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8184"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-EDGE-OPPOSITE"
-></A
->gts_triangle_edge_opposite ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
->*    gts_triangle_edge_opposite      (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8196"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8203"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8211"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the edge of <CODE
-CLASS="PARAMETER"
->t</CODE
-> opposite <CODE
-CLASS="PARAMETER"
->v</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->v</CODE
-> is not a vertice of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8221"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-VERTICES"
-></A
->gts_triangle_vertices ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_triangle_vertices           (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v2,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> **v3);</PRE
-><P
->Fills <CODE
-CLASS="PARAMETER"
->v1</CODE
->, <CODE
-CLASS="PARAMETER"
->v2</CODE
-> and <CODE
-CLASS="PARAMETER"
->v3</CODE
-> with the oriented set of vertices, summits of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8239"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8246"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8253"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8260"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer on a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8267"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-VERTEX"
-></A
->gts_triangle_vertex()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_triangle_vertex(t)</PRE
-><P
->Evaluates to the <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> of <CODE
-CLASS="PARAMETER"
->t</CODE
-> not used by <CODE
-CLASS="PARAMETER"
->t->e1</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8279"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8286"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-IS-OK"
-></A
->gts_triangle_is_ok ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_triangle_is_ok              (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8297"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8304"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->t</CODE
-> is a non-degenerate, non-duplicate triangle,
-<TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8312"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-USE-EDGES"
-></A
->gts_triangle_use_edges ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
->* gts_triangle_use_edges         (<A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e1,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e2,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e3);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8325"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8332"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8339"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e3</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8346"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> having <CODE
-CLASS="PARAMETER"
->e1</CODE
->, <CODE
-CLASS="PARAMETER"
->e2</CODE
-> and <CODE
-CLASS="PARAMETER"
->e3</CODE
-> as edges or <TT
-CLASS="LITERAL"
->NULL</TT
-> if <CODE
-CLASS="PARAMETER"
->e1</CODE
->,
-<CODE
-CLASS="PARAMETER"
->e2</CODE
-> and <CODE
-CLASS="PARAMETER"
->e3</CODE
-> are not part of any triangle.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8360"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-CIRCUMCIRCLE-CENTER"
-></A
->gts_triangle_circumcircle_center ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
->*   gts_triangle_circumcircle_center
-                                            (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINTCLASS"
->GtsPointClass</A
-> *point_class);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8372"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8379"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->point_class</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINTCLASS"
-><SPAN
-CLASS="TYPE"
->GtsPointClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8386"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->, center of the circumscribing circle of <CODE
-CLASS="PARAMETER"
->t</CODE
-> or
-<TT
-CLASS="LITERAL"
->NULL</TT
-> if the circumscribing circle is not defined.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8395"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-IS-STABBED"
-></A
->gts_triangle_is_stabbed ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
->*  gts_triangle_is_stabbed         (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> *orientation);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8408"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8415"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8422"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->orientation</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8428"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> one of the vertices of <CODE
-CLASS="PARAMETER"
->t</CODE
->, one of the edges of <CODE
-CLASS="PARAMETER"
->t</CODE
-> or <CODE
-CLASS="PARAMETER"
->t</CODE
-> if
-any of these are stabbed by the ray starting at <CODE
-CLASS="PARAMETER"
->p</CODE
-> (included) and
-ending at (<CODE
-CLASS="PARAMETER"
->p</CODE
->->x, <CODE
-CLASS="PARAMETER"
->p</CODE
->->y, +infty), <TT
-CLASS="LITERAL"
->NULL</TT
-> otherwise. If the ray is
-contained in the plane of the triangle <TT
-CLASS="LITERAL"
->NULL</TT
-> is also returned. If
-<CODE
-CLASS="PARAMETER"
->orientation</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
->, it is set to the value of the
-orientation of <CODE
-CLASS="PARAMETER"
->p</CODE
-> relative to <CODE
-CLASS="PARAMETER"
->t</CODE
-> (as given by
-<A
-HREF="gts-points.html#GTS-POINT-ORIENTATION-3D"
-><CODE
-CLASS="FUNCTION"
->gts_point_orientation_3d()</CODE
-></A
->).  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8447"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLES-ARE-FOLDED"
-></A
->gts_triangles_are_folded ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_triangles_are_folded        (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *triangles,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *A,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *B,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> max);</PRE
-><P
->Given a list of triangles sharing <CODE
-CLASS="PARAMETER"
->A</CODE
-> and <CODE
-CLASS="PARAMETER"
->B</CODE
-> as vertices, checks if any
-two triangles in the list make an angle larger than a given value defined
-by <CODE
-CLASS="PARAMETER"
->max</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8464"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->triangles</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8471"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->A</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8478"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->B</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8485"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->max</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum value of the square of the cosine of the angle between
-two triangles.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8490"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if any pair of triangles in <CODE
-CLASS="PARAMETER"
->triangles</CODE
-> makes an angle larger 
-than the maximum value, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8498"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLES-FROM-EDGES"
-></A
->gts_triangles_from_edges ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_triangles_from_edges        (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *edges);</PRE
-><P
->Builds a list of unique triangles which have one of their edges in <CODE
-CLASS="PARAMETER"
->edges</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8510"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->edges</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8517"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the list of triangles.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN8522"
-></A
-><H3
-><A
-NAME="GTS-TRIANGLE-INTERPOLATE-HEIGHT"
-></A
->gts_triangle_interpolate_height ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_triangle_interpolate_height (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t,
-                                             <A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> *p);</PRE
-><P
->Fills the z-coordinate of point <CODE
-CLASS="PARAMETER"
->p</CODE
-> belonging to the plane
-projection of triangle <CODE
-CLASS="PARAMETER"
->t</CODE
-> with the linearly interpolated value of
-the z-coordinates of the vertices of <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8537"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN8544"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-edges.html"
-><B
-><<< Edges</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-faces.html"
-><B
->Faces >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-vectors-and-matrices.html b/doc/html/gts-vectors-and-matrices.html
deleted file mode 100644
index ba32f98..0000000
--- a/doc/html/gts-vectors-and-matrices.html
+++ /dev/null
@@ -1,3819 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Vectors and matrices</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Basic Macros, functions and data structures"
-HREF="c4.html"><LINK
-REL="PREVIOUS"
-TITLE="First In First Out heaps"
-HREF="gts-first-in-first-out-heaps.html"><LINK
-REL="NEXT"
-TITLE="Simple statistics"
-HREF="gts-simple-statistics.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-first-in-first-out-heaps.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c4.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-simple-statistics.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-VECTORS-AND-MATRICES"
-></A
->Vectors and matrices</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN1157"
-></A
-><H2
->Name</H2
->Vectors and matrices -- simple operations on vectors and matrices.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN1160"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-
-#define     <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR-INIT"
->gts_vector_init</A
->                 (v, p1, p2)
-#define     <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR-SCALAR"
->gts_vector_scalar</A
->               (v1, v2)
-#define     <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR-CROSS"
->gts_vector_cross</A
->                (C,A,B)
-#define     <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR-NORM"
->gts_vector_norm</A
->                 (v)
-#define     <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR-NORMALIZE"
->gts_vector_normalize</A
->            (v)
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR-PRINT"
->gts_vector_print</A
->                (<GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> v,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vectors-and-matrices.html#GTS-VECTOR4-PRINT"
->gts_vector4_print</A
->               (<GTKDOCLINK
-HREF="GTSVECTOR4"
->GtsVector4</GTKDOCLINK
-> v,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-
-typedef     <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->;
-
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-NEW"
->gts_matrix_new</A
->                  (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a00,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a01,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a02,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a03,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a10,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a11,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a12,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a13,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a20,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a21,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a22,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a23,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a30,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a31,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a32,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a33);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-ASSIGN"
->gts_matrix_assign</A
->               (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a00,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a01,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a02,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a03,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a10,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a11,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a12,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a13,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a20,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a21,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a22,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a23,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a30,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a31,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a32,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a33);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-ZERO"
->gts_matrix_zero</A
->                 (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-IDENTITY"
->gts_matrix_identity</A
->             (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-PROJECTION"
->gts_matrix_projection</A
->           (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-SCALE"
->gts_matrix_scale</A
->                (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> s);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-TRANSLATE"
->gts_matrix_translate</A
->            (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> t);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-ROTATE"
->gts_matrix_rotate</A
->               (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> r,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> angle);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-TRANSPOSE"
->gts_matrix_transpose</A
->            (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-DETERMINANT"
->gts_matrix_determinant</A
->          (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-INVERSE"
->gts_matrix_inverse</A
->              (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX3-INVERSE"
->gts_matrix3_inverse</A
->             (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);
-<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-PRODUCT"
->gts_matrix_product</A
->              (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m1,
-                                             <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m2);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-COMPATIBLE-ROW"
->gts_matrix_compatible_row</A
->       (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *A,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> b,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> A1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> b1);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-QUADRATIC-OPTIMIZATION"
->gts_matrix_quadratic_optimization</A
->
-                                            (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *A,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> b,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n,
-                                             <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *H,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> c);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-PRINT"
->gts_matrix_print</A
->                (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-DESTROY"
->gts_matrix_destroy</A
->              (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1273"
-></A
-><H2
->Description</H2
-><P
->The functions described in this section allow to perform simple transformations on point coordinates. In particular projection onto a plane passing through the vertices of a given triangle or quadratic optimization problems.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1276"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1278"
-></A
-><H3
-><A
-NAME="GTS-VECTOR-INIT"
-></A
->gts_vector_init()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_vector_init(v, p1, p2)</PRE
-><P
->Given two points <CODE
-CLASS="PARAMETER"
->p1</CODE
-> and <CODE
-CLASS="PARAMETER"
->p2</CODE
->, fills <CODE
-CLASS="PARAMETER"
->v</CODE
-> with the coordinates of vector <CODE
-CLASS="PARAMETER"
->p1</CODE
->-><CODE
-CLASS="PARAMETER"
->p2</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1291"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1298"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1305"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->p2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->another <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1312"
-></A
-><H3
-><A
-NAME="GTS-VECTOR-SCALAR"
-></A
->gts_vector_scalar()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_vector_scalar(v1, v2)</PRE
-><P
->Given two vectors <CODE
-CLASS="PARAMETER"
->v1</CODE
-> and <CODE
-CLASS="PARAMETER"
->v2</CODE
-> evaluates to the scalar product <CODE
-CLASS="PARAMETER"
->v1</CODE
->.<CODE
-CLASS="PARAMETER"
->v2</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1324"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1331"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->another <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1338"
-></A
-><H3
-><A
-NAME="GTS-VECTOR-CROSS"
-></A
->gts_vector_cross()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_vector_cross(C,A,B)</PRE
-><P
->Given two vectors <CODE
-CLASS="PARAMETER"
->A</CODE
-> and <CODE
-CLASS="PARAMETER"
->B</CODE
-> fills <CODE
-CLASS="PARAMETER"
->C</CODE
-> with the coordinates of the cross-product <CODE
-CLASS="PARAMETER"
->A</CODE
->^<CODE
-CLASS="PARAMETER"
->B</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1351"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->C</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1358"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->A</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->another <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1365"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->B</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->and another.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1370"
-></A
-><H3
-><A
-NAME="GTS-VECTOR-NORM"
-></A
->gts_vector_norm()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_vector_norm(v)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1378"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1383"
-></A
-><H3
-><A
-NAME="GTS-VECTOR-NORMALIZE"
-></A
->gts_vector_normalize()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     gts_vector_normalize(v)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1391"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1396"
-></A
-><H3
-><A
-NAME="GTS-VECTOR-PRINT"
-></A
->gts_vector_print ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_vector_print                (<GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> v,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Print <CODE
-CLASS="PARAMETER"
->s</CODE
-> to file <CODE
-CLASS="PARAMETER"
->fptr</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1410"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1417"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file descriptor.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1422"
-></A
-><H3
-><A
-NAME="GTS-VECTOR4-PRINT"
-></A
->gts_vector4_print ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_vector4_print               (<GTKDOCLINK
-HREF="GTSVECTOR4"
->GtsVector4</GTKDOCLINK
-> v,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Print <CODE
-CLASS="PARAMETER"
->v</CODE
-> to file <CODE
-CLASS="PARAMETER"
->fptr</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1436"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR4"
-><SPAN
-CLASS="TYPE"
->GtsVector4</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1443"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file descriptor.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1448"
-></A
-><H3
-><A
-NAME="GTSMATRIX"
-></A
->GtsMatrix</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef GtsVector4               GtsMatrix;</PRE
-><P
->A <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> is a 3x3 matrix.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1457"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-NEW"
-></A
->gts_matrix_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_new                  (<GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a00,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a01,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a02,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a03,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a10,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a11,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a12,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a13,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a20,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a21,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a22,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a23,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a30,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a31,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a32,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a33);</PRE
-><P
->Allocates memory and initializes a new <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1485"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a00</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1490"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a01</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1495"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a02</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1500"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a03</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1505"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a10</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1510"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a11</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1515"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a12</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1520"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a13</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1525"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a20</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1530"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a21</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1535"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a22</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1540"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a23</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1545"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a30</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1550"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a31</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1555"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a32</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1560"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a33</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1565"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to the newly created <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1572"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-ASSIGN"
-></A
->gts_matrix_assign ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_matrix_assign               (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a00,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a01,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a02,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a03,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a10,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a11,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a12,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a13,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a20,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a21,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a22,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a23,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a30,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a31,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a32,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> a33);</PRE
-><P
->Set values of matrix elements.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1599"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1606"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a00</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1611"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a01</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1616"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a02</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1621"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a03</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [0][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1626"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a10</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1631"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a11</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1636"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a12</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1641"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a13</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [1][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1646"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a20</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1651"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a21</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1656"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a22</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1661"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a23</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [2][3].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1666"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a30</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][0].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1671"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a31</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][1].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1676"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a32</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][2].</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1681"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->a33</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> element [3][3].</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1686"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-ZERO"
-></A
->gts_matrix_zero ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_zero                 (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
->Initializes <CODE
-CLASS="PARAMETER"
->m</CODE
-> to zeros. Allocates a matrix if <CODE
-CLASS="PARAMETER"
->m</CODE
-> is <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1700"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> or $NULL.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1707"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the zero'ed matrix.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1712"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-IDENTITY"
-></A
->gts_matrix_identity ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_identity             (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
->Initializes <CODE
-CLASS="PARAMETER"
->m</CODE
-> to an identity matrix. Allocates a matrix if <CODE
-CLASS="PARAMETER"
->m</CODE
-> is <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1726"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1734"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the identity matrix.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1739"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-PROJECTION"
-></A
->gts_matrix_projection ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_projection           (<A
-HREF="gts-triangles.html#GTSTRIANGLE"
->GtsTriangle</A
-> *t);</PRE
-><P
->Creates a new <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> representing the projection onto a plane of normal
-given by <CODE
-CLASS="PARAMETER"
->t</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1753"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1760"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to the newly created <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1767"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-SCALE"
-></A
->gts_matrix_scale ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_scale                (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> s);</PRE
-><P
->Initializes <CODE
-CLASS="PARAMETER"
->m</CODE
-> to a scaling matrix for <CODE
-CLASS="PARAMETER"
->s</CODE
->. Allocates a matrix if <CODE
-CLASS="PARAMETER"
->m</CODE
->
-is <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1783"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1791"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the scaling vector.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1796"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the scaling matrix.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1801"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-TRANSLATE"
-></A
->gts_matrix_translate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_translate            (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> t);</PRE
-><P
->Initializes <CODE
-CLASS="PARAMETER"
->m</CODE
-> to a translation matrix for <CODE
-CLASS="PARAMETER"
->t</CODE
->.  Allocates a new
-matrix if <CODE
-CLASS="PARAMETER"
->m</CODE
-> is <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1817"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1825"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->t</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the translation vector.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1830"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the translation matix.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1835"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-ROTATE"
-></A
->gts_matrix_rotate ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_rotate               (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> r,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> angle);</PRE
-><P
->Initializes <CODE
-CLASS="PARAMETER"
->m</CODE
-> to a rotation matrix around <CODE
-CLASS="PARAMETER"
->r</CODE
-> by <CODE
-CLASS="PARAMETER"
->angle</CODE
->.
-Allocates a new matrix if <CODE
-CLASS="PARAMETER"
->m</CODE
-> is <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1853"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1861"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->r</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the rotation axis.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1866"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->angle</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the angle (in radians) to rotate by.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1871"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the rotation matrix.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1876"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-TRANSPOSE"
-></A
->gts_matrix_transpose ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_transpose            (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1887"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1894"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to a newly created <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> transposed of <CODE
-CLASS="PARAMETER"
->m</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1902"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-DETERMINANT"
-></A
->gts_matrix_determinant ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
->     gts_matrix_determinant          (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1913"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1920"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the value of det(<CODE
-CLASS="PARAMETER"
->m</CODE
->).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1926"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-INVERSE"
-></A
->gts_matrix_inverse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_inverse              (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1937"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1944"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to a newly created <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> inverse of <CODE
-CLASS="PARAMETER"
->m</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->
-if <CODE
-CLASS="PARAMETER"
->m</CODE
-> is not invertible.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1954"
-></A
-><H3
-><A
-NAME="GTS-MATRIX3-INVERSE"
-></A
->gts_matrix3_inverse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix3_inverse             (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1965"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a 3x3 <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1972"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a pointer to a newly created 3x3 <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
-> inverse of <CODE
-CLASS="PARAMETER"
->m</CODE
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->
-if <CODE
-CLASS="PARAMETER"
->m</CODE
-> is not invertible.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN1982"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-PRODUCT"
-></A
->gts_matrix_product ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
->*  gts_matrix_product              (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m1,
-                                             <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN1994"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2001"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2008"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->, product of <CODE
-CLASS="PARAMETER"
->m1</CODE
-> and <CODE
-CLASS="PARAMETER"
->m2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2017"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-COMPATIBLE-ROW"
-></A
->gts_matrix_compatible_row ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_matrix_compatible_row       (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *A,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> b,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> A1,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> b1);</PRE
-><P
->Given a system of <CODE
-CLASS="PARAMETER"
->n</CODE
-> constraints <CODE
-CLASS="PARAMETER"
->A.x</CODE
->=<CODE
-CLASS="PARAMETER"
->b</CODE
-> adds to it the compatible
-constraints defined by <CODE
-CLASS="PARAMETER"
->A1.x</CODE
->=<CODE
-CLASS="PARAMETER"
->b1</CODE
->. The compatibility is determined
-by insuring that the resulting system is well-conditioned (see
-Lindstrom and Turk (1998, 1999)).</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2037"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->A</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2044"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->b</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2051"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of previous constraints of <CODE
-CLASS="PARAMETER"
->A.x</CODE
->=<CODE
-CLASS="PARAMETER"
->b</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2058"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->A1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2065"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->b1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2072"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of constraints of the resulting system.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2077"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-QUADRATIC-OPTIMIZATION"
-></A
->gts_matrix_quadratic_optimization ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_matrix_quadratic_optimization
-                                            (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *A,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> b,
-                                             <GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> n,
-                                             <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *H,
-                                             <GTKDOCLINK
-HREF="GTSVECTOR"
->GtsVector</GTKDOCLINK
-> c);</PRE
-><P
->Solve a quadratic optimization problem: Given a quadratic objective function
-f which can be written as: f(x) = x^t.<CODE
-CLASS="PARAMETER"
->H.x</CODE
-> + <CODE
-CLASS="PARAMETER"
->c</CODE
->^t.x + k, where <CODE
-CLASS="PARAMETER"
->H</CODE
-> is the 
-symmetric positive definite Hessian of f and k is a constant, find the
-minimum of f subject to the set of <CODE
-CLASS="PARAMETER"
->n</CODE
-> prior linear constraints, defined by
-the first <CODE
-CLASS="PARAMETER"
->n</CODE
-> rows of <CODE
-CLASS="PARAMETER"
->A</CODE
-> and <CODE
-CLASS="PARAMETER"
->b</CODE
-> (<CODE
-CLASS="PARAMETER"
->A.x</CODE
-> = <CODE
-CLASS="PARAMETER"
->b</CODE
->). The new constraints given by
-the minimization are added to <CODE
-CLASS="PARAMETER"
->A</CODE
-> and <CODE
-CLASS="PARAMETER"
->b</CODE
-> only if they are linearly
-independent as determined by <A
-HREF="gts-vectors-and-matrices.html#GTS-MATRIX-COMPATIBLE-ROW"
-><CODE
-CLASS="FUNCTION"
->gts_matrix_compatible_row()</CODE
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2105"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->A</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2112"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->b</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2119"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of constraints (must be smaller than 3).</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2124"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->H</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a symmetric positive definite Hessian.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2129"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->c</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <GTKDOCLINK
-HREF="GTSVECTOR"
-><SPAN
-CLASS="TYPE"
->GtsVector</SPAN
-></GTKDOCLINK
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2136"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new number of constraints defined by <CODE
-CLASS="PARAMETER"
->A</CODE
-> and <CODE
-CLASS="PARAMETER"
->b</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2143"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-PRINT"
-></A
->gts_matrix_print ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_matrix_print                (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m,
-                                             <GTKDOCLINK
-HREF="FILE:CAPS"
->FILE</GTKDOCLINK
-> *fptr);</PRE
-><P
->Print <CODE
-CLASS="PARAMETER"
->m</CODE
-> to file <CODE
-CLASS="PARAMETER"
->fptr</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2157"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2164"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->fptr</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a file descriptor.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN2169"
-></A
-><H3
-><A
-NAME="GTS-MATRIX-DESTROY"
-></A
->gts_matrix_destroy ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_matrix_destroy              (<A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
->GtsMatrix</A
-> *m);</PRE
-><P
->Free all the memory allocated for <CODE
-CLASS="PARAMETER"
->m</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN2181"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->m</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vectors-and-matrices.html#GTSMATRIX"
-><SPAN
-CLASS="TYPE"
->GtsMatrix</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-first-in-first-out-heaps.html"
-><B
-><<< First In First Out heaps</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-simple-statistics.html"
-><B
->Simple statistics >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-vertex-split.html b/doc/html/gts-vertex-split.html
deleted file mode 100644
index b694aef..0000000
--- a/doc/html/gts-vertex-split.html
+++ /dev/null
@@ -1,1822 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Vertex split</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Progressive and Hierarchical surfaces"
-HREF="c15264.html"><LINK
-REL="PREVIOUS"
-TITLE="Progressive and Hierarchical surfaces"
-HREF="c15264.html"><LINK
-REL="NEXT"
-TITLE="Progressive surfaces"
-HREF="gts-progressive-surfaces.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="c15264.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c15264.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-progressive-surfaces.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-VERTEX-SPLIT"
-></A
->Vertex split</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN15271"
-></A
-><H2
->Name</H2
->Vertex split -- object encoding a reversible edge-collapse operation.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN15274"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-vertex-split.html#GTS-SPLIT-CLASS:CAPS"
->GTS_SPLIT_CLASS</A
->                 (klass)
-#define     <A
-HREF="gts-vertex-split.html#GTS-SPLIT:CAPS"
->GTS_SPLIT</A
->                       (obj)
-#define     <A
-HREF="gts-vertex-split.html#GTS-IS-SPLIT:CAPS"
->GTS_IS_SPLIT</A
->                    (obj)
-#define     <A
-HREF="gts-vertex-split.html#GTS-SPLIT-V1:CAPS"
->GTS_SPLIT_V1</A
->                    (vs)
-#define     <A
-HREF="gts-vertex-split.html#GTS-SPLIT-V2:CAPS"
->GTS_SPLIT_V2</A
->                    (vs)
-            <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
->;
-            <A
-HREF="gts-vertex-split.html#GTSSPLITCFACE"
->GtsSplitCFace</A
->;
-            <A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->;
-
-<A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
->* <A
-HREF="gts-vertex-split.html#GTS-SPLIT-CLASS"
->gts_split_class</A
->              (void);
-<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   <A
-HREF="gts-vertex-split.html#GTS-SPLIT-NEW"
->gts_split_new</A
->                   (<A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *klass,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *o1,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *o2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vertex-split.html#GTS-SPLIT-COLLAPSE"
->gts_split_collapse</A
->              (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs,
-                                             <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vertex-split.html#GTS-SPLIT-EXPAND"
->gts_split_expand</A
->                (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *klass);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-vertex-split.html#GTS-SPLIT-HEIGHT"
->gts_split_height</A
->                (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *root);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    (<A
-HREF="gts-vertex-split.html#GTSSPLITTRAVERSEFUNC"
->*GtsSplitTraverseFunc</A
->)         (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vertex-split.html#GTS-SPLIT-TRAVERSE"
->gts_split_traverse</A
->              (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *root,
-                                             <GTKDOCLINK
-HREF="GTRAVERSETYPE"
->GTraverseType</GTKDOCLINK
-> order,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> depth,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITTRAVERSEFUNC"
->GtsSplitTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN15317"
-></A
-><H2
->Description</H2
-><P
->The vertex split object is the building block of the progressive mesh representation proposed by Hoppe ("Progressive meshes", SIGGRAPH, 1996). It encodes an edge collapse operation and its inverse the "vertex split". The implementation of vertex split in GTS is somewhat more general than the original version of Hoppe. Non-manifold edges can be collapsed and non-manifold vertices can be split.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN15320"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15322"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-CLASS:CAPS"
-></A
->GTS_SPLIT_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SPLIT_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15333"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15340"
-></A
-><H3
-><A
-NAME="GTS-SPLIT:CAPS"
-></A
->GTS_SPLIT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SPLIT(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15351"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15358"
-></A
-><H3
-><A
-NAME="GTS-IS-SPLIT:CAPS"
-></A
->GTS_IS_SPLIT()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_SPLIT(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15370"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15375"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-V1:CAPS"
-></A
->GTS_SPLIT_V1()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SPLIT_V1(vs)</PRE
-><P
->Evaluates to the first vertex of the edge collapsed by <CODE
-CLASS="PARAMETER"
->vs</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15384"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15391"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-V2:CAPS"
-></A
->GTS_SPLIT_V2()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_SPLIT_V2(vs)</PRE
-><P
->Evaluates to the second vertex of the edge collapsed by <CODE
-CLASS="PARAMETER"
->vs</CODE
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15400"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15407"
-></A
-><H3
-><A
-NAME="GTSSPLITCLASS"
-></A
->GtsSplitClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObjectClass parent_class;
-} GtsSplitClass;</PRE
-><P
->The vertex split class.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15414"
-></A
-><H3
-><A
-NAME="GTSSPLITCFACE"
-></A
->GtsSplitCFace</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct _GtsSplitCFace GtsSplitCFace;</PRE
-><P
->An opaque structure describing the faces collapsed by a vertex split.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15421"
-></A
-><H3
-><A
-NAME="GTSSPLIT"
-></A
->GtsSplit</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsObject object;
-
-  GtsVertex * v;
-  GtsObject * v1;
-  GtsObject * v2;
-  GtsSplitCFace * cfaces;
-  guint ncf;
-} GtsSplit;</PRE
-><P
->The vertex split object. If <CODE
-CLASS="PARAMETER"
->v1</CODE
-> is a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> the corresponding vertex can be found in GTS_SPLIT(v1)->v. This conversion is performed directly by the two macros <A
-HREF="gts-vertex-split.html#GTS-SPLIT-V1:CAPS"
-><SPAN
-CLASS="TYPE"
->GTS_SPLIT_V1</SPAN
-></A
-> and <A
-HREF="gts-vertex-split.html#GTS-SPLIT-V2:CAPS"
-><SPAN
-CLASS="TYPE"
->GTS_SPLIT_V2</SPAN
-></A
->. Together with the current <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->, <CODE
-CLASS="PARAMETER"
->v1</CODE
-> and <CODE
-CLASS="PARAMETER"
->v2</CODE
-> define one level of a vertex split tree. If <CODE
-CLASS="PARAMETER"
->v1</CODE
-> or <CODE
-CLASS="PARAMETER"
->v2</CODE
-> are both <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, the current vertex split is a leaf of the tree.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15444"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> <CODE
-CLASS="STRUCTFIELD"
->object</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-></P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15450"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *<CODE
-CLASS="STRUCTFIELD"
->v</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Vertex to be split.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15456"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *<CODE
-CLASS="STRUCTFIELD"
->v1</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Either a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> or <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, first vertex of the edge to be expanded.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15466"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *<CODE
-CLASS="STRUCTFIELD"
->v2</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Either a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> or <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, second vertex of the edge to be expanded.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15476"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-vertex-split.html#GTSSPLITCFACE"
->GtsSplitCFace</A
-> *<CODE
-CLASS="STRUCTFIELD"
->cfaces</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->An array of <A
-HREF="gts-vertex-split.html#GTSSPLITCFACE"
-><SPAN
-CLASS="TYPE"
->GtsSplitCFace</SPAN
-></A
-> describing the faces collapsed by the vertex split.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15484"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
-> <CODE
-CLASS="STRUCTFIELD"
->ncf</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Number of faces collapsed in <CODE
-CLASS="PARAMETER"
->cfaces</CODE
->.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15491"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-CLASS"
-></A
->gts_split_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
->* gts_split_class              (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15501"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15508"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-NEW"
-></A
->gts_split_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
->*   gts_split_new                   (<A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
->GtsSplitClass</A
-> *klass,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *o1,
-                                             <A
-HREF="gts-object-class.html#GTSOBJECT"
->GtsObject</A
-> *o2);</PRE
-><P
->Creates a new <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> which would collapse <CODE
-CLASS="PARAMETER"
->o1</CODE
-> and <CODE
-CLASS="PARAMETER"
->o2</CODE
-> into <CODE
-CLASS="PARAMETER"
->v</CODE
->. The 
-collapse itself is not performed.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15527"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLITCLASS"
-><SPAN
-CLASS="TYPE"
->GtsSplitClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15534"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15541"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->o1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> either a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> or a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15550"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->o2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> either a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> or a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15559"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15566"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-COLLAPSE"
-></A
->gts_split_collapse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_split_collapse              (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs,
-                                             <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
->GtsEHeap</A
-> *heap);</PRE
-><P
->Collapses the vertex split <CODE
-CLASS="PARAMETER"
->vs</CODE
->. Any new edge created during the process will
-be of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->. If heap is not <TT
-CLASS="LITERAL"
->NULL</TT
->, the new edges will be inserted
-into it and the destroyed edges will be removed from it.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15582"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15589"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15596"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->heap</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-extended-binary-heaps.html#GTSEHEAP"
-><SPAN
-CLASS="TYPE"
->GtsEHeap</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15604"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-EXPAND"
-></A
->gts_split_expand ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_split_expand                (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *s,
-                                             <A
-HREF="gts-edges.html#GTSEDGECLASS"
->GtsEdgeClass</A
-> *klass);</PRE
-><P
->Expands the vertex split <CODE
-CLASS="PARAMETER"
->vs</CODE
-> adding the newly created faces to <CODE
-CLASS="PARAMETER"
->s</CODE
->. Any 
-new edge will be of class <CODE
-CLASS="PARAMETER"
->klass</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15620"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15627"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->s</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15634"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15641"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-HEIGHT"
-></A
->gts_split_height ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_split_height                (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *root);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15652"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->root</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15659"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum height of the vertex split tree having <CODE
-CLASS="PARAMETER"
->root</CODE
-> as root.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15665"
-></A
-><H3
-><A
-NAME="GTSSPLITTRAVERSEFUNC"
-></A
->GtsSplitTraverseFunc ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    (*GtsSplitTraverseFunc)         (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *vs,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->A user-defined function to be called when traversing a vertex split tree.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15676"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vs</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> for which this function is called.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15683"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->user data passed to the function.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15688"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-><TT
-CLASS="LITERAL"
->TRUE</TT
-> to stop the traversal, <TT
-CLASS="LITERAL"
->FALSE</TT
-> to continue.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN15695"
-></A
-><H3
-><A
-NAME="GTS-SPLIT-TRAVERSE"
-></A
->gts_split_traverse ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_split_traverse              (<A
-HREF="gts-vertex-split.html#GTSSPLIT"
->GtsSplit</A
-> *root,
-                                             <GTKDOCLINK
-HREF="GTRAVERSETYPE"
->GTraverseType</GTKDOCLINK
-> order,
-                                             <GTKDOCLINK
-HREF="GINT"
->gint</GTKDOCLINK
-> depth,
-                                             <A
-HREF="gts-vertex-split.html#GTSSPLITTRAVERSEFUNC"
->GtsSplitTraverseFunc</A
-> func,
-                                             <GTKDOCLINK
-HREF="GPOINTER"
->gpointer</GTKDOCLINK
-> data);</PRE
-><P
->Traverses the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> tree having <CODE
-CLASS="PARAMETER"
->root</CODE
-> as root. Calls <CODE
-CLASS="PARAMETER"
->func</CODE
-> for each
-<A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> of the tree in the order specified by <CODE
-CLASS="PARAMETER"
->order</CODE
->. If order is set
-to G_PRE_ORDER <CODE
-CLASS="PARAMETER"
->func</CODE
-> is called for the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> then its children, if order
-is set to G_POST_ORDER <CODE
-CLASS="PARAMETER"
->func</CODE
-> is called for the children and then for the
-<A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15723"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->root</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-vertex-split.html#GTSSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsSplit</SPAN
-></A
-> to start the traversal from.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15730"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->order</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the order in which nodes are visited - G_PRE_ORDER or G_POST_ORDER.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15735"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->depth</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum depth of the traversal. Nodes below this depth
-will not be visited. If depth is -1 all nodes in the tree are
-visited. If depth is 1, only the root is visited. If depth is 2,
-the root and its children are visited. And so on.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15740"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->func</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the function to call for each visited <A
-HREF="gts-hierarchical-vertex-split.html#GTSHSPLIT"
-><SPAN
-CLASS="TYPE"
->GtsHSplit</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN15747"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->data</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> user data to pass to the function.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="c15264.html"
-><B
-><<< Progressive and Hierarchical surfaces</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-progressive-surfaces.html"
-><B
->Progressive surfaces >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-vertices.html b/doc/html/gts-vertices.html
deleted file mode 100644
index 7fc1c2c..0000000
--- a/doc/html/gts-vertices.html
+++ /dev/null
@@ -1,2528 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Vertices</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Geometrical Object Hierarchy"
-HREF="c2915.html"><LINK
-REL="PREVIOUS"
-TITLE="Points"
-HREF="gts-points.html"><LINK
-REL="NEXT"
-TITLE="Segments"
-HREF="gts-segments.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-points.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c2915.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-segments.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-VERTICES"
-></A
->Vertices</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN5452"
-></A
-><H2
->Name</H2
->Vertices -- vertex object and related functions.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN5455"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-vertices.html#GTS-VERTEX-CLASS:CAPS"
->GTS_VERTEX_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-vertices.html#GTS-VERTEX:CAPS"
->GTS_VERTEX</A
->                      (obj)
-#define     <A
-HREF="gts-vertices.html#GTS-IS-VERTEX:CAPS"
->GTS_IS_VERTEX</A
->                   (obj)
-            <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
->;
-            <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->;
-
-<A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
->* <A
-HREF="gts-vertices.html#GTS-VERTEX-CLASS"
->gts_vertex_class</A
->            (void);
-<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  <A
-HREF="gts-vertices.html#GTS-VERTEX-NEW"
->gts_vertex_new</A
->                  (<A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-vertices.html#GTS-VERTEX-IS-UNATTACHED"
->gts_vertex_is_unattached</A
->        (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-vertices.html#GTS-VERTEX-IS-BOUNDARY"
->gts_vertex_is_boundary</A
->          (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       <A
-HREF="gts-vertices.html#GTS-VERTEX-IS-CONTACT"
->gts_vertex_is_contact</A
->           (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> sever);
-<A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->* <A
-HREF="gts-vertices.html#GTS-VERTICES-ARE-CONNECTED"
->gts_vertices_are_connected</A
->      (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v2);
-<GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        <A
-HREF="gts-vertices.html#GTS-VERTEX-REPLACE"
->gts_vertex_replace</A
->              (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *with);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-vertices.html#GTS-VERTEX-NEIGHBORS"
->gts_vertex_neighbors</A
->            (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *list,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-vertices.html#GTS-VERTEX-TRIANGLES"
->gts_vertex_triangles</A
->            (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *list);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-vertices.html#GTS-VERTEX-FACES"
->gts_vertex_faces</A
->                (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *list);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-vertices.html#GTS-VERTEX-FAN-ORIENTED"
->gts_vertex_fan_oriented</A
->         (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);
-<GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    <A
-HREF="gts-vertices.html#GTS-VERTEX-ENCROACHES-EDGE"
->gts_vertex_encroaches_edge</A
->      (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);
-<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     <A
-HREF="gts-vertices.html#GTS-VERTICES-FROM-SEGMENTS"
->gts_vertices_from_segments</A
->      (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *segments);
-<GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
->*      <A
-HREF="gts-vertices.html#GTS-VERTICES-MERGE"
->gts_vertices_merge</A
->              (<GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
-> *vertices,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> epsilon,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> (*check) (GtsVertex *, GtsVertex *));</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN5520"
-></A
-><H2
->Description</H2
-><P
->Vertices are points used as endpoints of <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->. They are derived from <A
-HREF="gts-points.html#GTSPOINT"
-><SPAN
-CLASS="TYPE"
->GtsPoint</SPAN
-></A
->.</P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN5527"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5529"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-CLASS:CAPS"
-></A
->GTS_VERTEX_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_VERTEX_CLASS(klass)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->klass</CODE
-> to <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5540"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5547"
-></A
-><H3
-><A
-NAME="GTS-VERTEX:CAPS"
-></A
->GTS_VERTEX()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_VERTEX(obj)</PRE
-><P
->Casts <CODE
-CLASS="PARAMETER"
->obj</CODE
-> to <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5558"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a descendant of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5565"
-></A
-><H3
-><A
-NAME="GTS-IS-VERTEX:CAPS"
-></A
->GTS_IS_VERTEX()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_VERTEX(obj)</PRE
-><P
->Evaluates to <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->obj</CODE
-> is a descendant of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5578"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->a pointer to test.
-
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5583"
-></A
-><H3
-><A
-NAME="GTSVERTEXCLASS"
-></A
->GtsVertexClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsPointClass parent_class;
-
-  void        (* intersection_attributes) (GtsVertex *, 
-					   GtsObject *, 
-					   GtsObject *);
-} GtsVertexClass;</PRE
-><P
->The vertex class. No virtual functions are associated.</P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5590"
-></A
-><H3
-><A
-NAME="GTSVERTEX"
-></A
->GtsVertex</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsPoint p;
-  
-  GSList * segments;
-} GtsVertex;</PRE
-><P
->The vertex object.</P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5598"><SPAN
-STYLE="white-space: nowrap"
-><A
-HREF="gts-points.html#GTSPOINT"
->GtsPoint</A
-> <CODE
-CLASS="STRUCTFIELD"
->p</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->The parent object.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5604"><SPAN
-STYLE="white-space: nowrap"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *<CODE
-CLASS="STRUCTFIELD"
->segments</CODE
->;</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->Contains all the <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> using this vertex as one of their endpoints.
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5612"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-CLASS"
-></A
->gts_vertex_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
->* gts_vertex_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5622"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5629"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-NEW"
-></A
->gts_vertex_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
->*  gts_vertex_new                  (<A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
->GtsVertexClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> x,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> y,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> z);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5643"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEXCLASS"
-><SPAN
-CLASS="TYPE"
->GtsVertexClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5650"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->x</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the x-coordinate of the vertex to create.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5655"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->y</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the y-coordinate of the vertex to create.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5660"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->z</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the y-coordinate of the vertex to create.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5665"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> with <CODE
-CLASS="PARAMETER"
->x</CODE
->, <CODE
-CLASS="PARAMETER"
->y</CODE
-> and <CODE
-CLASS="PARAMETER"
->z</CODE
-> as coordinates.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5675"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-IS-UNATTACHED"
-></A
->gts_vertex_is_unattached ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_vertex_is_unattached        (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5686"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5693"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->v</CODE
-> is not the endpoint of any <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->, 
-<TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5703"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-IS-BOUNDARY"
-></A
->gts_vertex_is_boundary ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_vertex_is_boundary          (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5715"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5722"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5730"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->v</CODE
-> is used by a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> boundary of <CODE
-CLASS="PARAMETER"
->surface</CODE
-> as
-determined by <A
-HREF="gts-edges.html#GTS-EDGE-IS-BOUNDARY"
-><CODE
-CLASS="FUNCTION"
->gts_edge_is_boundary()</CODE
-></A
->, <TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5743"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-IS-CONTACT"
-></A
->gts_vertex_is_contact ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GUINT"
->guint</GTKDOCLINK
->       gts_vertex_is_contact           (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> sever);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5755"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.  </P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5762"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->sever</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if <TT
-CLASS="LITERAL"
->TRUE</TT
-> and if <CODE
-CLASS="PARAMETER"
->v</CODE
-> is a contact vertex between two or more
-sets of connected triangles replaces it with as many vertices,
-clones of <CODE
-CLASS="PARAMETER"
->v</CODE
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5770"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the number of sets of connected triangles sharing <CODE
-CLASS="PARAMETER"
->v</CODE
-> as a
-contact vertex.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5776"
-></A
-><H3
-><A
-NAME="GTS-VERTICES-ARE-CONNECTED"
-></A
->gts_vertices_are_connected ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-segments.html#GTSSEGMENT"
->GtsSegment</A
->* gts_vertices_are_connected      (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v1,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v2);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5788"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5795"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5802"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> if <CODE
-CLASS="PARAMETER"
->v1</CODE
-> and <CODE
-CLASS="PARAMETER"
->v2</CODE
-> are the vertices of the same <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->
-this segment else <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5812"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-REPLACE"
-></A
->gts_vertex_replace ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="VOID"
->void</GTKDOCLINK
->        gts_vertex_replace              (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *with);</PRE
-><P
->Replaces vertex <CODE
-CLASS="PARAMETER"
->v</CODE
-> with vertex <CODE
-CLASS="PARAMETER"
->with</CODE
->. <CODE
-CLASS="PARAMETER"
->v</CODE
-> and <CODE
-CLASS="PARAMETER"
->with</CODE
-> must be
-different.  All the <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> which have <CODE
-CLASS="PARAMETER"
->v</CODE
-> has one of their
-vertices are updated.  The segments list of vertex <CODE
-CLASS="PARAMETER"
->v</CODE
-> is freed and
-<CODE
-CLASS="PARAMETER"
->v</CODE
->->segments is set to <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5834"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5841"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->with</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5848"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-NEIGHBORS"
-></A
->gts_vertex_neighbors ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_vertex_neighbors            (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *list,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
->Adds to <CODE
-CLASS="PARAMETER"
->list</CODE
-> all the <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
-> connected to <CODE
-CLASS="PARAMETER"
->v</CODE
-> by a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> and not
-already in <CODE
-CLASS="PARAMETER"
->list</CODE
->. If <CODE
-CLASS="PARAMETER"
->surface</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
-> only the vertices connected to
-<CODE
-CLASS="PARAMETER"
->v</CODE
-> by an edge belonging to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> are considered.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5872"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5879"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->list</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5886"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5894"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new list of unique <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5901"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-TRIANGLES"
-></A
->gts_vertex_triangles ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_vertex_triangles            (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *list);</PRE
-><P
->Adds all the <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> which share <CODE
-CLASS="PARAMETER"
->v</CODE
-> as a vertex and do not
-already belong to <CODE
-CLASS="PARAMETER"
->list</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5917"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5924"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->list</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5931"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new list of unique <A
-HREF="gts-triangles.html#GTSTRIANGLE"
-><SPAN
-CLASS="TYPE"
->GtsTriangle</SPAN
-></A
-> which share <CODE
-CLASS="PARAMETER"
->v</CODE
-> as a
-vertex.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5939"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-FACES"
-></A
->gts_vertex_faces ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_vertex_faces                (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface,
-                                             <GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *list);</PRE
-><P
->Adds all the <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> (if not <TT
-CLASS="LITERAL"
->NULL</TT
->) which share 
-<CODE
-CLASS="PARAMETER"
->v</CODE
-> as a vertex and do not already belong to <CODE
-CLASS="PARAMETER"
->list</CODE
->.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5958"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5965"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
-> or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5973"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->list</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN5980"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the new list of unique <A
-HREF="gts-faces.html#GTSFACE"
-><SPAN
-CLASS="TYPE"
->GtsFace</SPAN
-></A
-> belonging to <CODE
-CLASS="PARAMETER"
->surface</CODE
-> 
-which share <CODE
-CLASS="PARAMETER"
->v</CODE
-> as a vertex.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN5989"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-FAN-ORIENTED"
-></A
->gts_vertex_fan_oriented ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_vertex_fan_oriented         (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-surfaces.html#GTSSURFACE"
->GtsSurface</A
-> *surface);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6001"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6008"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->surface</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-surfaces.html#GTSSURFACE"
-><SPAN
-CLASS="TYPE"
->GtsSurface</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6015"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
-> describing in counterclockwise order the 
-boundary of the fan of summit <CODE
-CLASS="PARAMETER"
->v</CODE
->, the faces of the fan belonging to 
-<CODE
-CLASS="PARAMETER"
->surface</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6024"
-></A
-><H3
-><A
-NAME="GTS-VERTEX-ENCROACHES-EDGE"
-></A
->gts_vertex_encroaches_edge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
->    gts_vertex_encroaches_edge      (<A
-HREF="gts-vertices.html#GTSVERTEX"
->GtsVertex</A
-> *v,
-                                             <A
-HREF="gts-edges.html#GTSEDGE"
->GtsEdge</A
-> *e);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6036"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->v</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6043"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->e</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-edges.html#GTSEDGE"
-><SPAN
-CLASS="TYPE"
->GtsEdge</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6050"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> <TT
-CLASS="LITERAL"
->TRUE</TT
-> if <CODE
-CLASS="PARAMETER"
->v</CODE
-> is strictly contained in the diametral circle of <CODE
-CLASS="PARAMETER"
->e</CODE
->,
-<TT
-CLASS="LITERAL"
->FALSE</TT
-> otherwise.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6059"
-></A
-><H3
-><A
-NAME="GTS-VERTICES-FROM-SEGMENTS"
-></A
->gts_vertices_from_segments ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
->*     gts_vertices_from_segments      (<GTKDOCLINK
-HREF="GSLIST"
->GSList</GTKDOCLINK
-> *segments);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6070"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->segments</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6077"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->, vertices of a <A
-HREF="gts-segments.html#GTSSEGMENT"
-><SPAN
-CLASS="TYPE"
->GtsSegment</SPAN
-></A
-> in <CODE
-CLASS="PARAMETER"
->segments</CODE
->.
-Each element in the list is unique (no duplicates).</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN6087"
-></A
-><H3
-><A
-NAME="GTS-VERTICES-MERGE"
-></A
->gts_vertices_merge ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
->*      gts_vertices_merge              (<GTKDOCLINK
-HREF="GLIST"
->GList</GTKDOCLINK
-> *vertices,
-                                             <GTKDOCLINK
-HREF="GDOUBLE"
->gdouble</GTKDOCLINK
-> epsilon,
-                                             <GTKDOCLINK
-HREF="GBOOLEAN"
->gboolean</GTKDOCLINK
-> (*check) (GtsVertex *, GtsVertex *));</PRE
-><P
->For each vertex v in <CODE
-CLASS="PARAMETER"
->vertices</CODE
-> look if there are any vertex of
-<CODE
-CLASS="PARAMETER"
->vertices</CODE
-> contained in a box centered on v of size 2*<CODE
-CLASS="PARAMETER"
->epsilon</CODE
->. If
-there are and if <CODE
-CLASS="PARAMETER"
->check</CODE
-> is not <TT
-CLASS="LITERAL"
->NULL</TT
-> and returns <TT
-CLASS="LITERAL"
->TRUE</TT
->, replace
-them with v (using <A
-HREF="gts-vertices.html#GTS-VERTEX-REPLACE"
-><CODE
-CLASS="FUNCTION"
->gts_vertex_replace()</CODE
-></A
->), destroy them and remove
-them from list.  This is done efficiently using Kd-Trees.</P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6108"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->vertices</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a list of <A
-HREF="gts-vertices.html#GTSVERTEX"
-><SPAN
-CLASS="TYPE"
->GtsVertex</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6115"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->epsilon</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> half the size of the bounding box to consider for each vertex.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6120"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->check</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> function called for each pair of vertices about to be merged
-or <TT
-CLASS="LITERAL"
->NULL</TT
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN6126"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the updated list of vertices.  </P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-points.html"
-><B
-><<< Points</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-segments.html"
-><B
->Segments >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/gts-weighted-graph.html b/doc/html/gts-weighted-graph.html
deleted file mode 100644
index ccaa9af..0000000
--- a/doc/html/gts-weighted-graph.html
+++ /dev/null
@@ -1,1399 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-<HTML
-><HEAD
-><TITLE
->Weighted graph</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
-REL="HOME"
-TITLE="GTS Library Reference Manual"
-HREF="book1.html"><LINK
-REL="UP"
-TITLE="Graph and operations on graphs"
-HREF="c17114.html"><LINK
-REL="PREVIOUS"
-TITLE="Graph class"
-HREF="gts-graph-class.html"><LINK
-REL="NEXT"
-TITLE="Progressive graph"
-HREF="gts-progressive-graph.html"><STYLE
-TYPE="text/css"
->.synopsis, .classsynopsis {
-    background: #eeeeee;
-    border: solid 1px #aaaaaa;
-    padding: 0.5em;
-}
-.programlisting {
-    background: #eeeeff;
-    border: solid 1px #aaaaff;
-    padding: 0.5em;
-}
-.variablelist {
-    padding: 4px;
-    margin-left: 3em;
-}
-.navigation {
-    background: #ffeeee;
-    border: solid 1px #ffaaaa;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-}
-.navigation a {
-    color: #770000;
-}
-.navigation a:visited {
-    color: #550000;
-}
-.navigation .title {
-    font-size: 200%;
-}</STYLE
-></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><TABLE
-WIDTH="100%"
-CLASS="navigation"
-SUMMARY="Navigation header"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-><A
-ACCESSKEY="p"
-HREF="gts-graph-class.html"
-><IMG
-SRC="left.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Prev"></A
-></TD
-><TD
-><A
-ACCESSKEY="u"
-HREF="c17114.html"
-><IMG
-SRC="up.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Up"></A
-></TD
-><TD
-><A
-ACCESSKEY="h"
-HREF="book1.html"
-><IMG
-SRC="home.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Home"></A
-></TD
-><TH
-WIDTH="100%"
-align="center"
->GTS Library Reference Manual</TH
-><TD
-><A
-ACCESSKEY="n"
-HREF="gts-progressive-graph.html"
-><IMG
-SRC="right.png"
-WIDTH="24"
-HEIGHT="24"
-BORDER="0"
-ALT="Next"></A
-></TD
-></TR
-></TABLE
-><H1
-><A
-NAME="GTS-WEIGHTED-GRAPH"
-></A
->Weighted graph</H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN18569"
-></A
-><H2
->Name</H2
->Weighted graph -- </DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN18572"
-></A
-><H2
->Synopsis</H2
-><PRE
-CLASS="SYNOPSIS"
->
#include <gts.h>
-
-
-#define     <A
-HREF="gts-weighted-graph.html#GTS-WGEDGE-CLASS:CAPS"
->GTS_WGEDGE_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-weighted-graph.html#GTS-WGEDGE:CAPS"
->GTS_WGEDGE</A
->                      (obj)
-#define     <A
-HREF="gts-weighted-graph.html#GTS-IS-WGEDGE:CAPS"
->GTS_IS_WGEDGE</A
->                   (obj)
-            <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
->;
-            <A
-HREF="gts-weighted-graph.html#GTSWGEDGE"
->GtsWGEdge</A
->;
-
-<A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
->* <A
-HREF="gts-weighted-graph.html#GTS-WGEDGE-CLASS"
->gts_wgedge_class</A
->            (void);
-<A
-HREF="gts-weighted-graph.html#GTSWGEDGE"
->GtsWGEdge</A
->*  <A
-HREF="gts-weighted-graph.html#GTS-WGEDGE-NEW"
->gts_wgedge_new</A
->                  (<A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n1,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n2,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> weight);
-
-#define     <A
-HREF="gts-weighted-graph.html#GTS-WGNODE-CLASS:CAPS"
->GTS_WGNODE_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-weighted-graph.html#GTS-WGNODE:CAPS"
->GTS_WGNODE</A
->                      (obj)
-#define     <A
-HREF="gts-weighted-graph.html#GTS-IS-WGNODE:CAPS"
->GTS_IS_WGNODE</A
->                   (obj)
-            <A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
->;
-            <A
-HREF="gts-weighted-graph.html#GTSWGNODE"
->GtsWGNode</A
->;
-
-<A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
->* <A
-HREF="gts-weighted-graph.html#GTS-WGNODE-CLASS"
->gts_wgnode_class</A
->            (void);
-<A
-HREF="gts-weighted-graph.html#GTSWGNODE"
->GtsWGNode</A
->*  <A
-HREF="gts-weighted-graph.html#GTS-WGNODE-NEW"
->gts_wgnode_new</A
->                  (<A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> weight);
-
-#define     <A
-HREF="gts-weighted-graph.html#GTS-WGRAPH-CLASS:CAPS"
->GTS_WGRAPH_CLASS</A
->                (klass)
-#define     <A
-HREF="gts-weighted-graph.html#GTS-WGRAPH:CAPS"
->GTS_WGRAPH</A
->                      (obj)
-#define     <A
-HREF="gts-weighted-graph.html#GTS-IS-WGRAPH:CAPS"
->GTS_IS_WGRAPH</A
->                   (obj)
-            <A
-HREF="gts-weighted-graph.html#GTSWGRAPHCLASS"
->GtsWGraphClass</A
->;
-            <A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
->;
-
-<A
-HREF="gts-weighted-graph.html#GTSWGRAPHCLASS"
->GtsWGraphClass</A
->* <A
-HREF="gts-weighted-graph.html#GTS-WGRAPH-CLASS"
->gts_wgraph_class</A
->            (void);
-<GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      <A
-HREF="gts-weighted-graph.html#GTS-WGRAPH-WEIGHT-MAX"
->gts_wgraph_weight_max</A
->           (<A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
-> *wg);</PRE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN18609"
-></A
-><H2
->Description</H2
-><P
-></P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN18612"
-></A
-><H2
->Details</H2
-><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18614"
-></A
-><H3
-><A
-NAME="GTS-WGEDGE-CLASS:CAPS"
-></A
->GTS_WGEDGE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_WGEDGE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18622"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18627"
-></A
-><H3
-><A
-NAME="GTS-WGEDGE:CAPS"
-></A
->GTS_WGEDGE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_WGEDGE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18635"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18640"
-></A
-><H3
-><A
-NAME="GTS-IS-WGEDGE:CAPS"
-></A
->GTS_IS_WGEDGE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_WGEDGE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18648"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18653"
-></A
-><H3
-><A
-NAME="GTSWGEDGECLASS"
-></A
->GtsWGEdgeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGEdgeClass parent_class;
-} GtsWGEdgeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18660"
-></A
-><H3
-><A
-NAME="GTSWGEDGE"
-></A
->GtsWGEdge</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGEdge gedge;
-
-  gfloat weight;
-} GtsWGEdge;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18667"
-></A
-><H3
-><A
-NAME="GTS-WGEDGE-CLASS"
-></A
->gts_wgedge_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
->* gts_wgedge_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18677"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18684"
-></A
-><H3
-><A
-NAME="GTS-WGEDGE-NEW"
-></A
->gts_wgedge_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-weighted-graph.html#GTSWGEDGE"
->GtsWGEdge</A
->*  gts_wgedge_new                  (<A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
->GtsWGEdgeClass</A
-> *klass,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n1,
-                                             <A
-HREF="gts-graph-class.html#GTSGNODE"
->GtsGNode</A
-> *n2,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> weight);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18698"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGEDGECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGEdgeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18705"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n1</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18712"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->n2</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> another <A
-HREF="gts-graph-class.html#GTSGNODE"
-><SPAN
-CLASS="TYPE"
->GtsGNode</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18719"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->weight</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the weight of the new edge.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18724"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-weighted-graph.html#GTSWGEDGE"
-><SPAN
-CLASS="TYPE"
->GtsWGEdge</SPAN
-></A
-> of weight <CODE
-CLASS="PARAMETER"
->weight</CODE
-> linking <CODE
-CLASS="PARAMETER"
->n1</CODE
-> and <CODE
-CLASS="PARAMETER"
->n2</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18734"
-></A
-><H3
-><A
-NAME="GTS-WGNODE-CLASS:CAPS"
-></A
->GTS_WGNODE_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_WGNODE_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18742"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18747"
-></A
-><H3
-><A
-NAME="GTS-WGNODE:CAPS"
-></A
->GTS_WGNODE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_WGNODE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18755"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18760"
-></A
-><H3
-><A
-NAME="GTS-IS-WGNODE:CAPS"
-></A
->GTS_IS_WGNODE()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_WGNODE(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18768"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18773"
-></A
-><H3
-><A
-NAME="GTSWGNODECLASS"
-></A
->GtsWGNodeClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGNodeClass parent_class;
-} GtsWGNodeClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18780"
-></A
-><H3
-><A
-NAME="GTSWGNODE"
-></A
->GtsWGNode</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGNode node;
-  
-  gfloat weight;
-} GtsWGNode;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18787"
-></A
-><H3
-><A
-NAME="GTS-WGNODE-CLASS"
-></A
->gts_wgnode_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
->* gts_wgnode_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18797"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18804"
-></A
-><H3
-><A
-NAME="GTS-WGNODE-NEW"
-></A
->gts_wgnode_new ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-weighted-graph.html#GTSWGNODE"
->GtsWGNode</A
->*  gts_wgnode_new                  (<A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
->GtsWGNodeClass</A
-> *klass,
-                                             <GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
-> weight);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18816"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGNODECLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGNodeClass</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18823"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->weight</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the weight of the <A
-HREF="gts-weighted-graph.html#GTSWGNODE"
-><SPAN
-CLASS="TYPE"
->GtsWGNode</SPAN
-></A
-> to create.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18830"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a new <A
-HREF="gts-weighted-graph.html#GTSWGNODE"
-><SPAN
-CLASS="TYPE"
->GtsWGNode</SPAN
-></A
-> of weight <CODE
-CLASS="PARAMETER"
->weight</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18838"
-></A
-><H3
-><A
-NAME="GTS-WGRAPH-CLASS:CAPS"
-></A
->GTS_WGRAPH_CLASS()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_WGRAPH_CLASS(klass)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18846"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->klass</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18851"
-></A
-><H3
-><A
-NAME="GTS-WGRAPH:CAPS"
-></A
->GTS_WGRAPH()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_WGRAPH(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18859"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18864"
-></A
-><H3
-><A
-NAME="GTS-IS-WGRAPH:CAPS"
-></A
->GTS_IS_WGRAPH()</H3
-><PRE
-CLASS="PROGRAMLISTING"
->#define     GTS_IS_WGRAPH(obj)</PRE
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18872"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->obj</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
->
</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18877"
-></A
-><H3
-><A
-NAME="GTSWGRAPHCLASS"
-></A
->GtsWGraphClass</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGraphClass parent_class;
-} GtsWGraphClass;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18884"
-></A
-><H3
-><A
-NAME="GTSWGRAPH"
-></A
->GtsWGraph</H3
-><PRE
-CLASS="PROGRAMLISTING"
->typedef struct {
-  GtsGraph graph;
-
-  gfloat weight;
-} GtsWGraph;</PRE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18891"
-></A
-><H3
-><A
-NAME="GTS-WGRAPH-CLASS"
-></A
->gts_wgraph_class ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="gts-weighted-graph.html#GTSWGRAPHCLASS"
->GtsWGraphClass</A
->* gts_wgraph_class            (void);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18901"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the <A
-HREF="gts-weighted-graph.html#GTSWGRAPHCLASS"
-><SPAN
-CLASS="TYPE"
->GtsWGraphClass</SPAN
-></A
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN18908"
-></A
-><H3
-><A
-NAME="GTS-WGRAPH-WEIGHT-MAX"
-></A
->gts_wgraph_weight_max ()</H3
-><PRE
-CLASS="PROGRAMLISTING"
-><GTKDOCLINK
-HREF="GFLOAT"
->gfloat</GTKDOCLINK
->      gts_wgraph_weight_max           (<A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
->GtsWGraph</A
-> *wg);</PRE
-><P
-></P
-><P
-></P
-><P
-></P
-><TABLE
-CLASS="variablelist"
-BORDER="0"
-CELLSPACING="0"
-CELLPADDING="4"
-><TBODY
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18919"><SPAN
-STYLE="white-space: nowrap"
-><CODE
-CLASS="PARAMETER"
->wg</CODE
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> a <A
-HREF="gts-weighted-graph.html#GTSWGRAPH"
-><SPAN
-CLASS="TYPE"
->GtsWGraph</SPAN
-></A
->.</P
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><A
-NAME="AEN18926"><SPAN
-STYLE="white-space: nowrap"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Returns</I
-></SPAN
-> :</SPAN
-></TD
-><TD
-ALIGN="LEFT"
-VALIGN="TOP"
-><P
-> the maximum weight of any vertices belonging to <CODE
-CLASS="PARAMETER"
->g</CODE
->.</P
-></TD
-></TR
-></TBODY
-></TABLE
-></DIV
-></DIV
-><TABLE
-CLASS="navigation"
-WIDTH="100%"
-SUMMARY="Navigation footer"
-CELLPADDING="2"
-CELLSPACING="2"
-><TR
-VALIGN="middle"
-><TD
-ALIGN="left"
-><A
-ACCESSKEY="p"
-HREF="gts-graph-class.html"
-><B
-><<< Graph class</B
-></A
-></TD
-><TD
-ALIGN="right"
-><A
-ACCESSKEY="n"
-HREF="gts-progressive-graph.html"
-><B
->Progressive graph >>></B
-></A
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/html/index.sgml b/doc/html/index.sgml
new file mode 100644
index 0000000..e69de29
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 47962a8..62a5c3b 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -208,6 +208,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -242,16 +243,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -266,6 +265,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -278,17 +280,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/examples/cartesian.c b/examples/cartesian.c
index 219edd5..0ed821d 100644
--- a/examples/cartesian.c
+++ b/examples/cartesian.c
@@ -379,7 +379,8 @@ int main (int argc, char * argv[])
       {"holes", no_argument, NULL, 'H'},
       {"keep", no_argument, NULL, 'k'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvHk", 
diff --git a/examples/cleanup.c b/examples/cleanup.c
index 00a4a76..4d0f1a8 100644
--- a/examples/cleanup.c
+++ b/examples/cleanup.c
@@ -153,7 +153,8 @@ int main (int argc, char * argv[])
       {"merge", required_argument, NULL, 'm'},
       {"sever", no_argument, NULL, 's'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvsm:bc", 
diff --git a/examples/coarsen.c b/examples/coarsen.c
index c4efed5..799f7b2 100644
--- a/examples/coarsen.c
+++ b/examples/coarsen.c
@@ -160,7 +160,8 @@ int main (int argc, char * argv[])
       {"vweight", required_argument, NULL, 'w'},
       {"bweight", required_argument, NULL, 'b'},
       {"sweight", required_argument, NULL, 's'},
-      {"log", no_argument, NULL, 'L'}
+      {"log", no_argument, NULL, 'L'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvmc:n:lpf:w:b:s:La",
diff --git a/examples/delaunay.c b/examples/delaunay.c
index 7338652..4cf0e38 100644
--- a/examples/delaunay.c
+++ b/examples/delaunay.c
@@ -262,7 +262,8 @@ int main (int argc, char * argv[])
       {"conform", no_argument, NULL, 'o'},
       {"steiner", required_argument, NULL, 's'},
       {"quality", required_argument, NULL, 'q'},
-      {"area", required_argument, NULL, 'a'}
+      {"area", required_argument, NULL, 'a'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvbecf:os:q:a:HSrd",
diff --git a/examples/happrox.c b/examples/happrox.c
index 88770a8..029e11a 100644
--- a/examples/happrox.c
+++ b/examples/happrox.c
@@ -500,7 +500,8 @@ int main (int argc, char * argv[])
       {"number", required_argument, NULL, 'n'},
       {"cost", required_argument, NULL, 'c'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvn:c:lfr:kC",
diff --git a/examples/iso.c b/examples/iso.c
index f30d954..5a25e9e 100644
--- a/examples/iso.c
+++ b/examples/iso.c
@@ -116,7 +116,8 @@ int main (int argc, char * argv[])
       {"barth", no_argument, NULL, 'b'},
       {"clebsch", no_argument, NULL, 'c'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvbctd",
diff --git a/examples/merge.c b/examples/merge.c
index f2441b4..f3f0aed 100644
--- a/examples/merge.c
+++ b/examples/merge.c
@@ -44,6 +44,7 @@ int main (int argc, char * argv[])
     static struct option long_options[] = {
       {"help", no_argument, NULL, 'h'},
       {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hv",
diff --git a/examples/optimize.c b/examples/optimize.c
index 29298ea..f6488f9 100644
--- a/examples/optimize.c
+++ b/examples/optimize.c
@@ -208,7 +208,8 @@ int main (int argc, char * argv[])
 #ifdef HAVE_GETOPT_LONG
     static struct option long_options[] = {
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hv", 
diff --git a/examples/partition.c b/examples/partition.c
index ae8497d..e82c0dc 100644
--- a/examples/partition.c
+++ b/examples/partition.c
@@ -87,7 +87,8 @@ int main (int argc, char * argv[])
       {"try", required_argument, NULL, 't'},
       {"mmax", required_argument, NULL, 'm'},
       {"nmin", required_argument, NULL, 'n'},
-      {"imbalance", required_argument, NULL, 'i'}
+      {"imbalance", required_argument, NULL, 'i'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvt:m:n:i:", 
diff --git a/examples/refine.c b/examples/refine.c
index 9a16da2..4ee514a 100644
--- a/examples/refine.c
+++ b/examples/refine.c
@@ -148,7 +148,8 @@ int main (int argc, char * argv[])
       {"verbose", no_argument, NULL, 'v'},
       {"number", required_argument, NULL, 'n'},
       {"cost", required_argument, NULL, 'c'},
-      {"log", no_argument, NULL, 'L'}
+      {"log", no_argument, NULL, 'L'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvc:n:L",
diff --git a/examples/set.c b/examples/set.c
index 715aa00..95ae09c 100644
--- a/examples/set.c
+++ b/examples/set.c
@@ -65,7 +65,8 @@ int main (int argc, char * argv[])
       {"inter", no_argument, NULL, 'i'},
       {"self", no_argument, NULL, 's'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvis", 
@@ -86,7 +87,7 @@ int main (int argc, char * argv[])
       fprintf (stderr,
              "Usage: set [OPTION] OPERATION FILE1 FILE2\n"
              "Compute set operations between surfaces, where OPERATION is either.\n"
-             "union, inter, diff.\n"
+             "union, inter, diff, all.\n"
 	     "\n"
              "  -i      --inter    output an OOGL (Geomview) representation of the curve\n"
              "                     intersection of the surfaces\n"
@@ -242,6 +243,47 @@ int main (int argc, char * argv[])
     gts_surface_foreach_face (si->s2, (GtsFunc) gts_triangle_revert, NULL);
     gts_surface_foreach_face (s2, (GtsFunc) gts_triangle_revert, NULL);
   }
+  else if (!strcmp (operation, "all")) {
+    GtsSurface * s1out2, * s1in2, * s2out1, * s2in1;
+    FILE * fp;
+
+    s1out2 = gts_surface_new (gts_surface_class (),
+			      gts_face_class (),
+			      gts_edge_class (),
+			      gts_vertex_class ());
+    s1in2 = gts_surface_new (gts_surface_class (),
+			     gts_face_class (),
+			     gts_edge_class (),
+			     gts_vertex_class ());
+    s2out1 = gts_surface_new (gts_surface_class (),
+			      gts_face_class (),
+			      gts_edge_class (),
+			      gts_vertex_class ());
+    s2in1 = gts_surface_new (gts_surface_class (),
+			     gts_face_class (),
+			     gts_edge_class (),
+			     gts_vertex_class ());
+    gts_surface_inter_boolean (si, s1out2, GTS_1_OUT_2);
+    gts_surface_inter_boolean (si, s1in2, GTS_1_IN_2);  
+    gts_surface_inter_boolean (si, s2out1, GTS_2_OUT_1);
+    gts_surface_inter_boolean (si, s2in1, GTS_2_IN_1);
+    fp = fopen ("s1out2.gts", "w");
+    gts_surface_write (s1out2, fp);
+    fclose (fp);
+    fp = fopen ("s1in2.gts", "w");
+    gts_surface_write (s1in2, fp);
+    fclose (fp);
+    fp = fopen ("s2out1.gts", "w");
+    gts_surface_write (s2out1, fp);
+    fclose (fp);
+    fp = fopen ("s2in1.gts", "w");
+    gts_surface_write (s2in1, fp);
+    fclose (fp);
+    gts_object_destroy (GTS_OBJECT (s1out2));
+    gts_object_destroy (GTS_OBJECT (s1in2));
+    gts_object_destroy (GTS_OBJECT (s2out1));
+    gts_object_destroy (GTS_OBJECT (s2in1));
+  }
   else {
     fprintf (stderr, 
 	     "set: operation `%s' unknown\n"
diff --git a/examples/smooth.c b/examples/smooth.c
index aad2b7e..f9a4c68 100644
--- a/examples/smooth.c
+++ b/examples/smooth.c
@@ -107,7 +107,8 @@ int main (int argc, char * argv[])
     static struct option long_options[] = {
       {"fold", required_argument, NULL, 'f'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvf:", 
diff --git a/examples/sphere.c b/examples/sphere.c
index 156e8f3..2b1ccdd 100644
--- a/examples/sphere.c
+++ b/examples/sphere.c
@@ -47,7 +47,8 @@ int main (int argc, char * argv[])
 #ifdef HAVE_GETOPT_LONG
     static struct option long_options[] = {
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hv", 
diff --git a/examples/split.c b/examples/split.c
index 17e4ec8..a0c1780 100644
--- a/examples/split.c
+++ b/examples/split.c
@@ -48,7 +48,8 @@ int main (int argc, char * argv[])
 #ifdef HAVE_GETOPT_LONG
     static struct option long_options[] = {
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hv", 
diff --git a/examples/stripe.c b/examples/stripe.c
index eff0474..1bfc9d6 100644
--- a/examples/stripe.c
+++ b/examples/stripe.c
@@ -46,7 +46,8 @@ int main (int argc, char * argv[])
 #ifdef HAVE_GETOPT_LONG
     static struct option long_options[] = {
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hv", 
diff --git a/examples/transform.c b/examples/transform.c
index 3d45e22..242b0ac 100644
--- a/examples/transform.c
+++ b/examples/transform.c
@@ -66,6 +66,7 @@ int main (int argc, char * argv[])
       {"normalize", no_argument, NULL, 'o'},
       {"help", no_argument, NULL, 'h'},
       {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvr:m:n:s:R:M:N:it:u:w:o",
diff --git a/examples/traverse.c b/examples/traverse.c
index afa3d9a..d960fcd 100644
--- a/examples/traverse.c
+++ b/examples/traverse.c
@@ -192,7 +192,8 @@ int main (int argc, char * argv[])
     static struct option long_options[] = {
       {"cmap", required_argument, NULL, 'c'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvc:", 
diff --git a/examples/volume.c b/examples/volume.c
index 5bb97aa..ddee498 100644
--- a/examples/volume.c
+++ b/examples/volume.c
@@ -47,7 +47,8 @@ int main (int argc, char * argv[])
     static struct option long_options[] = {
       {"cm", no_argument, NULL, 'c'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvc", 
@@ -64,7 +65,7 @@ int main (int argc, char * argv[])
     case 'h': /* help */
       fprintf (stderr,
              "Usage: volume [OPTION] < file.gts\n"
-	     "Compute the volume of the domain bounded by the surface defined by file.srf.\n"
+	     "Compute the volume of the domain bounded by the surface defined by file.gts.\n"
 	     "Print the volume and exit successfully if the surface is a closed orientable\n"
 	     "manifold. Exit unsuccessfully otherwise.\n"
 	     "\n"
@@ -96,8 +97,10 @@ int main (int argc, char * argv[])
   }
 
   /* if verbose on print stats */
-  if (verbose)
+  if (verbose) {
     gts_surface_print_stats (s, stdout);
+    printf ("#   Total area: %g\n", gts_surface_area (s));
+  }
 
   /* test if surface is a closed and orientable manifold.
      we don't need to test if s is a manifold since both tests below
diff --git a/gts.pc.in b/gts.pc.in
index bcd4014..39626d7 100644
--- a/gts.pc.in
+++ b/gts.pc.in
@@ -7,5 +7,5 @@ Name: GTS
 Description: GNU Triangulated Surface Library
 Version: @VERSION@
 Requires: glib-2.0,gthread-2.0,gmodule-2.0
-Libs: -L${libdir} @LIBS@ -lgts
+Libs: -L${libdir} @LIBS@ -lgts -lm
 Cflags: -I${includedir}
diff --git a/ltmain.sh b/ltmain.sh
index db4982d..2160ef7 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,8 +1,8 @@
 # ltmain.sh - Provide generalized library-building support services.
 # NOTE: Changing this file will not affect anything until you rerun configure.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007  Free Software Foundation, Inc.
 # Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 #
 # This program is free software; you can redistribute it and/or modify
@@ -43,14 +43,22 @@ EXIT_FAILURE=1
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION="1.5.20 Debian 1.5.20-2"
-TIMESTAMP=" (1.1220.2.287 2005/08/31 18:54:15)"
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes.
-if test -n "${ZSH_VERSION+set}" ; then
+VERSION="1.5.24 Debian 1.5.24-1ubuntu1"
+TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
 
 # Check that we have a working $echo.
 if test "X$1" = X--no-reexec; then
@@ -105,12 +113,14 @@ esac
 # These must not be set unconditionally because not all systems understand
 # e.g. LANG=C (notably SCO).
 # We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
+for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+	  save_$lt_var=\$$lt_var
+	  $lt_var=C
+	  export $lt_var
+	fi"
+done
 
 # Make sure IFS has a sensible default
 lt_nl='
@@ -132,13 +142,54 @@ run=
 show="$echo"
 show_help=
 execute_dlfiles=
+duplicate_deps=no
+preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
 
 #####################################
 # Shell function definitions:
 # This seems to be the best place for them
 
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+	# Failing that, at least try and use $RANDOM to avoid a race
+	my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+	save_mktempdir_umask=`umask`
+	umask 0077
+	$mkdir "$my_tmpdir"
+	umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || {
+        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
+	exit $EXIT_FAILURE
+      }
+    fi
+
+    $echo "X$my_tmpdir" | $Xsed
+}
+
+
 # func_win32_libid arg
 # return the library type of file 'arg'
 #
@@ -157,12 +208,17 @@ func_win32_libid ()
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
       $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
       win32_nmres=`eval $NM -f posix -A $1 | \
-	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
-      if test "X$win32_nmres" = "Ximport" ; then
-        win32_libid_type="x86 archive import"
-      else
-        win32_libid_type="x86 archive static"
-      fi
+	$SED -n -e '1,100{
+		/ I /{
+			s,.*,import,
+			p
+			q
+			}
+		}'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
     fi
     ;;
   *DLL*)
@@ -289,15 +345,25 @@ func_extract_archives ()
 	*) my_xabs=`pwd`"/$my_xlib" ;;
       esac
       my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
-      my_xdir="$my_gentop/$my_xlib"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  extracted_serial=`expr $extracted_serial + 1`
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
 
       $show "${rm}r $my_xdir"
       $run ${rm}r "$my_xdir"
       $show "$mkdir $my_xdir"
       $run $mkdir "$my_xdir"
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$my_xdir"; then
-	exit $status
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
+	exit $exit_status
       fi
       case $host in
       *-darwin*)
@@ -352,6 +418,8 @@ func_extract_archives ()
 # Darwin sucks
 eval std_shrext=\"$shrext_cmds\"
 
+disable_libs=no
+
 # Parse our command line options once, thoroughly.
 while test "$#" -gt 0
 do
@@ -414,11 +482,12 @@ do
     ;;
 
   --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    echo "\
+$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
+
+Copyright (C) 2007  Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
     exit $?
     ;;
 
@@ -468,7 +537,11 @@ do
     preserve_args="$preserve_args $arg"
     ;;
 
-  --tag) prevopt="--tag" prev=tag ;;
+  --tag)
+    prevopt="--tag"
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
   --tag=*)
     set tag "$optarg" ${1+"$@"}
     shift
@@ -500,6 +573,18 @@ if test -n "$prevopt"; then
   exit $EXIT_FAILURE
 fi
 
+case $disable_libs in
+no) 
+  ;;
+shared)
+  build_libtool_libs=no
+  build_old_libs=yes
+  ;;
+static)
+  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+  ;;
+esac
+
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
@@ -699,9 +784,10 @@ if test -z "$show_help"; then
     *.class) xform=class ;;
     *.cpp) xform=cpp ;;
     *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
+    *.[fF][09]?) xform=[fF][09]. ;;
     *.for) xform=for ;;
     *.java) xform=java ;;
+    *.obj) xform=obj ;;
     esac
 
     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
@@ -856,9 +942,9 @@ EOF
       if test ! -d "${xdir}$objdir"; then
 	$show "$mkdir ${xdir}$objdir"
 	$run $mkdir ${xdir}$objdir
-	status=$?
-	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $status
+	exit_status=$?
+	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $exit_status
 	fi
       fi
 
@@ -1061,6 +1147,7 @@ EOF
     no_install=no
     objs=
     non_pic_objects=
+    notinst_path= # paths that contain not-installed libtool libraries
     precious_files_regex=
     prefer_static_libs=no
     preload=no
@@ -1081,22 +1168,32 @@ EOF
     for arg
     do
       case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
 	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
 	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
 	  fi
 	  if test -n "$link_static_flag"; then
 	    dlopen_self=$dlopen_self_static
 	  fi
-	else
+	  prefer_static_libs=yes
+	  ;;
+	-static)
 	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
 	    dlopen_self=$dlopen_self_static
 	  fi
-	fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
 	build_libtool_libs=no
 	build_old_libs=yes
-	prefer_static_libs=yes
 	break
 	;;
       esac
@@ -1271,6 +1368,11 @@ EOF
 		  if test -z "$pic_object" || test "$pic_object" = none ; then
 		    arg="$non_pic_object"
 		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
 		fi
 	      else
 		# Only an error if not doing a dry-run.
@@ -1354,8 +1456,8 @@ EOF
 	  prev=
 	  continue
 	  ;;
-        darwin_framework)
-	  compiler_flags="$compiler_flags $arg"
+	darwin_framework|darwin_framework_skip)
+	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
 	  compile_command="$compile_command $arg"
 	  finalize_command="$finalize_command $arg"
 	  prev=
@@ -1419,13 +1521,17 @@ EOF
 	continue
 	;;
 
-      -framework|-arch)
-        prev=darwin_framework
-        compiler_flags="$compiler_flags $arg"
+      -framework|-arch|-isysroot)
+	case " $CC " in
+	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
+		prev=darwin_framework_skip ;;
+	  *) compiler_flags="$compiler_flags $arg"
+	     prev=darwin_framework ;;
+	esac
 	compile_command="$compile_command $arg"
 	finalize_command="$finalize_command $arg"
-        continue
-        ;;
+	continue
+	;;
 
       -inst-prefix-dir)
 	prev=inst_prefix
@@ -1453,7 +1559,8 @@ EOF
 	  absdir=`cd "$dir" && pwd`
 	  if test -z "$absdir"; then
 	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    exit $EXIT_FAILURE
+	    absdir="$dir"
+	    notinst_path="$notinst_path $dir"
 	  fi
 	  dir="$absdir"
 	  ;;
@@ -1467,10 +1574,15 @@ EOF
 	esac
 	case $host in
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
 	  case :$dllsearchpath: in
 	  *":$dir:"*) ;;
 	  *) dllsearchpath="$dllsearchpath:$dir";;
 	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
 	  ;;
 	esac
 	continue
@@ -1479,11 +1591,11 @@ EOF
       -l*)
 	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 	  case $host in
-	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
 	    # These systems don't actually have a C or math library (as such)
 	    continue
 	    ;;
-	  *-*-mingw* | *-*-os2*)
+	  *-*-os2*)
 	    # These systems don't actually have a C library (as such)
 	    test "X$arg" = "X-lc" && continue
 	    ;;
@@ -1495,6 +1607,15 @@ EOF
 	    # Rhapsody C and math libraries are in the System framework
 	    deplibs="$deplibs -framework System"
 	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
 	  esac
 	elif test "X$arg" = "X-lc_r"; then
 	 case $host in
@@ -1518,7 +1639,7 @@ EOF
 	continue
 	;;
 
-     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 	compiler_flags="$compiler_flags $arg"
 	compile_command="$compile_command $arg"
 	finalize_command="$finalize_command $arg"
@@ -1536,7 +1657,13 @@ EOF
       # +DA*, +DD* enable 64-bit mode on the HP compiler
       # -q* pass through compiler args for the IBM compiler
       # -m* pass through architecture-specific compiler args for GCC
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 
 	# Unknown arguments in both finalize_command and compile_command need
 	# to be aesthetically quoted because they are evaled later.
@@ -1548,9 +1675,7 @@ EOF
 	esac
         compile_command="$compile_command $arg"
         finalize_command="$finalize_command $arg"
-        if test "$with_gcc" = "yes" ; then
-          compiler_flags="$compiler_flags $arg"
-        fi
+        compiler_flags="$compiler_flags $arg"
         continue
         ;;
 
@@ -1566,9 +1691,9 @@ EOF
 
       -no-install)
 	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
 	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
+	  # and Darwin in order for the loader to find any dlls it needs.
 	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
 	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
 	  fast_install=no
@@ -1627,7 +1752,7 @@ EOF
 	continue
 	;;
 
-      -static)
+      -static | -static-libtool-libs)
 	# The effects of -static are defined in a previous loop.
 	# We used to do the same as -all-static on platforms that
 	# didn't have a PIC flag, but the assumption that the effects
@@ -1788,6 +1913,11 @@ EOF
 	    if test -z "$pic_object" || test "$pic_object" = none ; then
 	      arg="$non_pic_object"
 	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
 	  fi
 	else
 	  # Only an error if not doing a dry-run.
@@ -1893,9 +2023,9 @@ EOF
     if test ! -d "$output_objdir"; then
       $show "$mkdir $output_objdir"
       $run $mkdir $output_objdir
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $status
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $exit_status
       fi
     fi
 
@@ -1958,7 +2088,6 @@ EOF
     newlib_search_path=
     need_relink=no # whether we're linking any uninstalled libtool libraries
     notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
     case $linkmode in
     lib)
 	passes="conv link"
@@ -2008,7 +2137,7 @@ EOF
 	lib=
 	found=no
 	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
 	  if test "$linkmode,$pass" = "prog,link"; then
 	    compile_deplibs="$deplib $compile_deplibs"
 	    finalize_deplibs="$deplib $finalize_deplibs"
@@ -2197,7 +2326,7 @@ EOF
 	esac # case $deplib
 	if test "$found" = yes || test -f "$lib"; then :
 	else
-	  $echo "$modename: cannot find the library \`$lib'" 1>&2
+	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
 	  exit $EXIT_FAILURE
 	fi
 
@@ -2404,7 +2533,9 @@ EOF
 
 	if test "$linkmode,$pass" = "prog,link"; then
 	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	     { { test "$prefer_static_libs" = no ||
+		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	       test -z "$old_library"; }; then
 	    # We need to hardcode the library path
 	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
 	      # Make sure the rpath contains only unique directories.
@@ -2448,8 +2579,12 @@ EOF
 	fi
 
 	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes ; then
+	  use_static_libs=no
+	fi
 	if test -n "$library_names" &&
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
 	  if test "$installed" = no; then
 	    notinst_deplibs="$notinst_deplibs $lib"
 	    need_relink=yes
@@ -2562,11 +2697,15 @@ EOF
 	      if test "$hardcode_direct" = no; then
 		add="$dir/$linklib"
 		case $host in
-		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
 		  *-*-darwin* )
 		    # if the lib is a module then we can not link against
 		    # it, someone is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
+		    if /usr/bin/file -L $add 2> /dev/null |
+                      $EGREP ": [^:]* bundle" >/dev/null ; then
 		      $echo "** Warning, lib $linklib is a module, not a shared library"
 		      if test -z "$old_library" ; then
 		        $echo
@@ -3092,7 +3231,7 @@ EOF
 	  # which has an extra 1 added just for fun
 	  #
 	  case $version_type in
-	  darwin|linux|osf|windows)
+	  darwin|linux|osf|windows|none)
 	    current=`expr $number_major + $number_minor`
 	    age="$number_minor"
 	    revision="$number_revision"
@@ -3103,9 +3242,10 @@ EOF
 	    age="0"
 	    ;;
 	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
+	    current=`expr $number_major + $number_minor`
 	    age="$number_minor"
 	    revision="$number_minor"
+	    lt_irix_increment=no
 	    ;;
 	  *)
 	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
@@ -3169,7 +3309,8 @@ EOF
 	  versuffix="$major.$age.$revision"
 	  # Darwin ld doesn't like 0 for these options...
 	  minor_current=`expr $current + 1`
-	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
 	  ;;
 
 	freebsd-aout)
@@ -3183,8 +3324,11 @@ EOF
 	  ;;
 
 	irix | nonstopux)
-	  major=`expr $current - $age + 1`
-
+	  if test "X$lt_irix_increment" = "Xno"; then
+	    major=`expr $current - $age`
+	  else
+	    major=`expr $current - $age + 1`
+	  fi
 	  case $version_type in
 	    nonstopux) verstring_prefix=nonstopux ;;
 	    *)         verstring_prefix=sgi ;;
@@ -3321,11 +3465,11 @@ EOF
       fi
 
       # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
-	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
-      done
+      #for path in $notinst_path; do
+      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+      #done
 
       if test -n "$xrpath"; then
 	# If the user specified any rpath flags, then add them.
@@ -3377,7 +3521,12 @@ EOF
 	    ;;
 	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
 	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
 	    ;;
  	  *)
 	    # Add libc to deplibs on all other systems if necessary.
@@ -3421,13 +3570,12 @@ EOF
 	  int main() { return 0; }
 EOF
 	  $rm conftest
-	  $LTCC -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
 	    ldd_output=`ldd conftest`
 	    for i in $deplibs; do
 	      name=`expr $i : '-l\(.*\)'`
 	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
+              if test "$name" != "" && test "$name" != "0"; then
 		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		  case " $predeps $postdeps " in
 		  *" $i "*)
@@ -3466,9 +3614,7 @@ EOF
 	      # If $name is empty we are operating on a -L argument.
               if test "$name" != "" && test "$name" != "0"; then
 		$rm conftest
-		$LTCC -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
 		  ldd_output=`ldd conftest`
 		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		    case " $predeps $postdeps " in
@@ -3500,7 +3646,7 @@ EOF
 		  droppeddeps=yes
 		  $echo
 		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
-		  $echo "***  make it link in!  You will probably need to install it or some"
+		  $echo "*** make it link in!  You will probably need to install it or some"
 		  $echo "*** library that it depends on before this library will be fully"
 		  $echo "*** functional.  Installing it before continuing would be even better."
 		fi
@@ -3713,6 +3859,35 @@ EOF
 	deplibs=$newdeplibs
       fi
 
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+
       # All the library-specific variables (install_libdir is set above).
       library_names=
       old_library=
@@ -3757,7 +3932,10 @@ EOF
 	     test -n "$hardcode_libdirs"; then
 	    libdir="$hardcode_libdirs"
 	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	      case $archive_cmds in
+	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
+	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
+	      esac
 	    else
 	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
 	    fi
@@ -3796,6 +3974,7 @@ EOF
 	fi
 
 	lib="$output_objdir/$realname"
+	linknames=
 	for link
 	do
 	  linknames="$linknames $link"
@@ -4115,12 +4294,14 @@ EOF
       reload_conv_objs=
       gentop=
       # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
       wl=
 
       if test -n "$convenience"; then
 	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
 	else
 	  gentop="$output_objdir/${obj}x"
 	  generated="$generated $gentop"
@@ -4227,6 +4408,35 @@ EOF
         ;;
       esac
 
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
       compile_command="$compile_command $compile_deplibs"
       finalize_command="$finalize_command $finalize_deplibs"
 
@@ -4271,10 +4481,15 @@ EOF
 	fi
 	case $host in
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
 	  case :$dllsearchpath: in
 	  *":$libdir:"*) ;;
 	  *) dllsearchpath="$dllsearchpath:$libdir";;
 	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
 	  ;;
 	esac
       done
@@ -4391,10 +4606,22 @@ extern \"C\" {
 	      export_symbols="$output_objdir/$outputname.exp"
 	      $run $rm $export_symbols
 	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
 	    else
-	      $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
 	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 	      $run eval 'mv "$nlist"T "$nlist"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
 	    fi
 	  fi
 
@@ -4511,16 +4738,29 @@ static const void *lt_preloaded_setup() {
 	  esac
 
 	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
 
 	  # Clean up the generated files.
 	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
 	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
 
 	  # Transform the symbol file into the correct name.
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+          case $host in
+          *cygwin* | *mingw* )
+            if test -f "$output_objdir/${outputname}.def" ; then
+              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            else
+              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+             fi
+            ;;
+          * )
+            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            ;;
+          esac
 	  ;;
 	*)
 	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
@@ -4533,19 +4773,19 @@ static const void *lt_preloaded_setup() {
 	# really was required.
 
 	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
       fi
 
       if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
 	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
 	link_command="$compile_command$compile_rpath"
 
 	# We have no uninstalled library dependencies, so finalize right now.
 	$show "$link_command"
 	$run eval "$link_command"
-	status=$?
+	exit_status=$?
 
 	# Delete the generated files.
 	if test -n "$dlsyms"; then
@@ -4553,7 +4793,7 @@ static const void *lt_preloaded_setup() {
 	  $run $rm "$output_objdir/${outputname}S.${objext}"
 	fi
 
-	exit $status
+	exit $exit_status
       fi
 
       if test -n "$shlibpath_var"; then
@@ -4626,7 +4866,7 @@ static const void *lt_preloaded_setup() {
 	if test "$fast_install" != no; then
 	  link_command="$finalize_var$compile_command$finalize_rpath"
 	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
 	  else
 	    # fast_install is set to needless
 	    relink_command=
@@ -4663,7 +4903,7 @@ static const void *lt_preloaded_setup() {
 	  fi
 	done
 	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
       fi
 
       # Quote $echo for shipping.
@@ -4693,10 +4933,12 @@ static const void *lt_preloaded_setup() {
 	esac
 	case $host in
 	  *cygwin* | *mingw* )
-	    cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
-	    cwrapper=`$echo ${output}.exe`
-	    $rm $cwrappersource $cwrapper
-	    trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+            output_name=`basename $output`
+            output_path=`dirname $output`
+            cwrappersource="$output_path/$objdir/lt-$output_name.c"
+            cwrapper="$output_path/$output_name.exe"
+            $rm $cwrappersource $cwrapper
+            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
 	    cat > $cwrappersource <<EOF
 
@@ -4721,6 +4963,9 @@ EOF
 #include <malloc.h>
 #include <stdarg.h>
 #include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/stat.h>
 
 #if defined(PATH_MAX)
 # define LT_PATHMAX PATH_MAX
@@ -4731,15 +4976,19 @@ EOF
 #endif
 
 #ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
 #endif
 
 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
   defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2
-#define DIR_SEPARATOR_2 '\\'
-#endif
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
 #endif
 
 #ifndef DIR_SEPARATOR_2
@@ -4749,17 +4998,32 @@ EOF
         (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
 #endif /* DIR_SEPARATOR_2 */
 
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
 #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
 #define XFREE(stale) do { \
   if (stale) { free ((void *) stale); stale = 0; } \
 } while (0)
 
+/* -DDEBUG is fairly common in CFLAGS.  */
+#undef DEBUG
+#if defined DEBUGWRAPPER
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
+#else
+# define DEBUG(format, ...)
+#endif
+
 const char *program_name = NULL;
 
 void * xmalloc (size_t num);
 char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
+const char * base_name (const char *name);
+char * find_executable(const char *wrapper);
+int    check_executable(const char *path);
 char * strendzap(char *str, const char *pat);
 void lt_fatal (const char *message, ...);
 
@@ -4769,29 +5033,50 @@ main (int argc, char *argv[])
   char **newargz;
   int i;
 
-  program_name = (char *) xstrdup ((char *) basename (argv[0]));
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  DEBUG("(main) argv[0]      : %s\n",argv[0]);
+  DEBUG("(main) program_name : %s\n",program_name);
   newargz = XMALLOC(char *, argc+2);
 EOF
 
-	    cat >> $cwrappersource <<EOF
-  newargz[0] = "$SHELL";
+            cat >> $cwrappersource <<EOF
+  newargz[0] = (char *) xstrdup("$SHELL");
 EOF
 
-	    cat >> $cwrappersource <<"EOF"
-  newargz[1] = fnqualify(argv[0]);
+            cat >> $cwrappersource <<"EOF"
+  newargz[1] = find_executable(argv[0]);
+  if (newargz[1] == NULL)
+    lt_fatal("Couldn't find %s", argv[0]);
+  DEBUG("(main) found exe at : %s\n",newargz[1]);
   /* we know the script has the same name, without the .exe */
   /* so make sure newargz[1] doesn't end in .exe */
   strendzap(newargz[1],".exe");
   for (i = 1; i < argc; i++)
     newargz[i+1] = xstrdup(argv[i]);
   newargz[argc+1] = NULL;
+
+  for (i=0; i<argc+1; i++)
+  {
+    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
+    ;
+  }
+
 EOF
 
-	    cat >> $cwrappersource <<EOF
+            case $host_os in
+              mingw*)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",(char const **)newargz);
+EOF
+              ;;
+              *)
+                cat >> $cwrappersource <<EOF
   execv("$SHELL",newargz);
 EOF
+              ;;
+            esac
 
-	    cat >> $cwrappersource <<"EOF"
+            cat >> $cwrappersource <<"EOF"
   return 127;
 }
 
@@ -4812,48 +5097,148 @@ xstrdup (const char *string)
 ;
 }
 
-char *
-basename (const char *name)
+const char *
+base_name (const char *name)
 {
   const char *base;
 
 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
   /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':')
+  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
     name += 2;
 #endif
 
   for (base = name; *name; name++)
     if (IS_DIR_SEPARATOR (*name))
       base = name + 1;
-  return (char *) base;
+  return base;
 }
 
+int
+check_executable(const char * path)
+{
+  struct stat st;
+
+  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0) &&
+      (
+        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
+#if defined (S_IXOTH)
+       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
+#endif
+#if defined (S_IXGRP)
+       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
+#endif
+       ((st.st_mode & S_IXUSR) == S_IXUSR))
+      )
+    return 1;
+  else
+    return 0;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise */
 char *
-fnqualify(const char *path)
+find_executable (const char* wrapper)
 {
-  size_t size;
-  char *p;
+  int has_slash = 0;
+  const char* p;
+  const char* p_next;
+  /* static buffer for getcwd */
   char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char* concat_name;
+
+  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
 
-  assert(path != NULL);
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
 
-  /* Is it qualified already? */
+  /* Absolute path? */
 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha (path[0]) && path[1] == ':')
-    return xstrdup (path);
+  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
+  {
+    concat_name = xstrdup (wrapper);
+    if (check_executable(concat_name))
+      return concat_name;
+    XFREE(concat_name);
+  }
+  else
+  {
+#endif
+    if (IS_DIR_SEPARATOR (wrapper[0]))
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable(concat_name))
+        return concat_name;
+      XFREE(concat_name);
+    }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  }
 #endif
-  if (IS_DIR_SEPARATOR (path[0]))
-    return xstrdup (path);
 
-  /* prepend the current directory */
-  /* doesn't handle '~' */
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+    {
+      has_slash = 1;
+      break;
+    }
+  if (!has_slash)
+  {
+    /* no slashes; search PATH */
+    const char* path = getenv ("PATH");
+    if (path != NULL)
+    {
+      for (p = path; *p; p = p_next)
+      {
+        const char* q;
+        size_t p_len;
+        for (q = p; *q; q++)
+          if (IS_PATH_SEPARATOR(*q))
+            break;
+        p_len = q - p;
+        p_next = (*q == '\0' ? q : q + 1);
+        if (p_len == 0)
+        {
+          /* empty path: current directory */
+          if (getcwd (tmp, LT_PATHMAX) == NULL)
+            lt_fatal ("getcwd failed");
+          tmp_len = strlen(tmp);
+          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, tmp, tmp_len);
+          concat_name[tmp_len] = '/';
+          strcpy (concat_name + tmp_len + 1, wrapper);
+        }
+        else
+        {
+          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, p, p_len);
+          concat_name[p_len] = '/';
+          strcpy (concat_name + p_len + 1, wrapper);
+        }
+        if (check_executable(concat_name))
+          return concat_name;
+        XFREE(concat_name);
+      }
+    }
+    /* not found in PATH; assume curdir */
+  }
+  /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
     lt_fatal ("getcwd failed");
-  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
-  p = XMALLOC(char, size);
-  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
-  return p;
+  tmp_len = strlen(tmp);
+  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable(concat_name))
+    return concat_name;
+  XFREE(concat_name);
+  return NULL;
 }
 
 char *
@@ -4897,16 +5282,16 @@ lt_fatal (const char *message, ...)
   va_end (ap);
 }
 EOF
-	  # we should really use a build-platform specific compiler
-	  # here, but OTOH, the wrappers (shell script and this C one)
-	  # are only useful if you want to execute the "real" binary.
-	  # Since the "real" binary is built for $host, then this
-	  # wrapper might as well be built for $host, too.
-	  $run $LTCC -s -o $cwrapper $cwrappersource
-	  ;;
-	esac
-	$rm $output
-	trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+          # we should really use a build-platform specific compiler
+          # here, but OTOH, the wrappers (shell script and this C one)
+          # are only useful if you want to execute the "real" binary.
+          # Since the "real" binary is built for $host, then this
+          # wrapper might as well be built for $host, too.
+          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
+          ;;
+        esac
+        $rm $output
+        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
 
 	$echo > $output "\
 #! $SHELL
@@ -4925,6 +5310,20 @@ EOF
 Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
 # The HP-UX ksh and POSIX shell print the target directory to stdout
 # if CDPATH is set.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
@@ -5067,7 +5466,7 @@ else
 	  ;;
 	esac
 	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+      \$echo \"\$0: cannot exec \$program \$*\"
       exit $EXIT_FAILURE
     fi
   else
@@ -5136,9 +5535,9 @@ fi\
 	    $run ${rm}r "$gentop"
 	    $show "$mkdir $gentop"
 	    $run $mkdir "$gentop"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$gentop"; then
-	      exit $status
+	    exit_status=$?
+	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
+	      exit $exit_status
 	    fi
 	  fi
 
@@ -5253,7 +5652,7 @@ fi\
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
       if test "$hardcode_automatic" = yes ; then
 	relink_command=
       fi
@@ -5598,9 +5997,9 @@ relink_command=\"$relink_command\""
 
 	  if test -n "$inst_prefix_dir"; then
 	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
 	  else
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
 	  fi
 
 	  $echo "$modename: warning: relinking \`$file'" 1>&2
@@ -5805,22 +6204,11 @@ relink_command=\"$relink_command\""
 	  outputname=
 	  if test "$fast_install" = no && test -n "$relink_command"; then
 	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir="/tmp"
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
-	      tmpdir="$tmpdir/libtool-$$"
-	      save_umask=`umask`
-	      umask 0077
-	      if $mkdir "$tmpdir"; then
-	        umask $save_umask
-	      else
-	        umask $save_umask
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-		continue
-	      fi
+	      tmpdir=`func_mktempdir`
 	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
 	      outputname="$tmpdir/$file"
 	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
 
 	      $show "$relink_command"
 	      if $run eval "$relink_command"; then :
@@ -5940,7 +6328,7 @@ relink_command=\"$relink_command\""
     # Exit here if they wanted silent mode.
     test "$show" = : && exit $EXIT_SUCCESS
 
-    $echo "----------------------------------------------------------------------"
+    $echo "X----------------------------------------------------------------------" | $Xsed
     $echo "Libraries have been installed in:"
     for libdir in $libdirs; do
       $echo "   $libdir"
@@ -5973,7 +6361,7 @@ relink_command=\"$relink_command\""
     $echo
     $echo "See any operating system documentation about shared libraries for"
     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "----------------------------------------------------------------------"
+    $echo "X----------------------------------------------------------------------" | $Xsed
     exit $EXIT_SUCCESS
     ;;
 
@@ -6031,8 +6419,10 @@ relink_command=\"$relink_command\""
 	if test -f "$dir/$objdir/$dlname"; then
 	  dir="$dir/$objdir"
 	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit $EXIT_FAILURE
+	  if test ! -f "$dir/$dlname"; then
+	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
 	fi
 	;;
 
@@ -6096,12 +6486,12 @@ relink_command=\"$relink_command\""
       fi
 
       # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
+      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+		$lt_var=\$save_$lt_var; export $lt_var
+	      fi"
+      done
 
       # Now prepare to actually exec the command.
       exec_cmd="\$cmd$args"
@@ -6190,9 +6580,17 @@ relink_command=\"$relink_command\""
 	    rmfiles="$rmfiles $objdir/$n"
 	  done
 	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 
-	  if test "$mode" = uninstall; then
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
 	    if test -n "$library_names"; then
 	      # Do each command in the postuninstall commands.
 	      cmds=$postuninstall_cmds
@@ -6225,7 +6623,8 @@ relink_command=\"$relink_command\""
 	      IFS="$save_ifs"
 	    fi
 	    # FIXME: should reinstall the best remaining shared library.
-	  fi
+	    ;;
+	  esac
 	fi
 	;;
 
@@ -6449,9 +6848,9 @@ The following components of LINK-COMMAND are treated specially:
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
   -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
+                    try to export only the symbols listed in SYMFILE
   -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
+                    try to export only the symbols matching REGEX
   -LLIBDIR          search LIBDIR for required installed libraries
   -lNAME            OUTPUT-FILE requires the installed library libNAME
   -module           build a library that can dlopened
@@ -6465,9 +6864,11 @@ The following components of LINK-COMMAND are treated specially:
   -release RELEASE  specify package release information
   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
   -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
+                    specify library version info [each variable defaults to 0]
 
 All other options (arguments beginning with \`-') are ignored.
 
@@ -6524,12 +6925,11 @@ exit $?
 # configuration.  But we'll never go from static-only to shared-only.
 
 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
+disable_libs=shared
 # ### END LIBTOOL TAG CONFIG: disable-shared
 
 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+disable_libs=static
 # ### END LIBTOOL TAG CONFIG: disable-static
 
 # Local Variables:
diff --git a/src/Makefile.in b/src/Makefile.in
index 5881bea..0ce708f 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -137,6 +137,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -171,16 +172,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -195,6 +194,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -207,17 +209,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/src/edge.c b/src/edge.c
index f92af35..72b2722 100644
--- a/src/edge.c
+++ b/src/edge.c
@@ -490,7 +490,7 @@ guint gts_edge_is_contact (GtsEdge * e)
  */
 void gts_edge_swap (GtsEdge * e, GtsSurface * s)
 {
-  GtsTriangle * t1 = NULL, * t2 = NULL, * t = NULL;
+  GtsTriangle * t1 = NULL, * t2 = NULL, * t;
   GtsFace * f;
   GSList * i;
   GtsVertex * v1, * v2, * v3, * v4, * v5, * v6;
@@ -522,7 +522,7 @@ void gts_edge_swap (GtsEdge * e, GtsSurface * s)
   if (!GTS_IS_EDGE (v3v6))
     v3v6 = GTS_SEGMENT (gts_edge_new (s->edge_class, v3, v6));
   f = gts_face_new (s->face_class, e1, GTS_EDGE (v3v6), e4);
-  if ((t == gts_triangle_is_duplicate (GTS_TRIANGLE (f))) &&
+  if ((t = gts_triangle_is_duplicate (GTS_TRIANGLE (f))) &&
       GTS_IS_FACE (t)) {
     gts_object_destroy (GTS_OBJECT (f));
     f = GTS_FACE (t);
@@ -530,7 +530,7 @@ void gts_edge_swap (GtsEdge * e, GtsSurface * s)
   gts_surface_add_face (s, f);
 
   f = gts_face_new (s->face_class, GTS_EDGE (v3v6), e2, e3);
-  if ((t == gts_triangle_is_duplicate (GTS_TRIANGLE (f))) &&
+  if ((t = gts_triangle_is_duplicate (GTS_TRIANGLE (f))) &&
       GTS_IS_FACE (t)) {
     gts_object_destroy (GTS_OBJECT (f));
     f = GTS_FACE (t);
diff --git a/src/eheap.c b/src/eheap.c
index d9a2a70..9c3c52f 100644
--- a/src/eheap.c
+++ b/src/eheap.c
@@ -29,7 +29,6 @@ struct _GtsEHeap {
   GtsKeyFunc func;
   gpointer data;
   gboolean frozen, randomized;
-  GMemChunk * mem_chunk;
 };
 
 /**
@@ -50,7 +49,6 @@ GtsEHeap * gts_eheap_new (GtsKeyFunc key_func,
   heap->data = data;
   heap->frozen = FALSE;
   heap->randomized = FALSE;
-  heap->mem_chunk = g_mem_chunk_create (GtsEHeapPair, 512, G_ALLOC_AND_FREE);
   return heap;
 }
 
@@ -98,7 +96,7 @@ GtsEHeapPair * gts_eheap_insert (GtsEHeap * heap, gpointer p)
   g_return_val_if_fail (heap->func != NULL, NULL);
 
   elts = heap->elts;
-  pair = g_chunk_new (GtsEHeapPair, heap->mem_chunk);
+  pair = g_malloc (sizeof (GtsEHeapPair));
   g_ptr_array_add (elts, pair);
   pair->data = p;
   pair->pos = elts->len;
@@ -130,7 +128,7 @@ GtsEHeapPair * gts_eheap_insert_with_key (GtsEHeap * heap,
   g_return_val_if_fail (heap != NULL, NULL);
 
   elts = heap->elts;
-  pair = g_chunk_new (GtsEHeapPair, heap->mem_chunk);
+  pair = g_malloc (sizeof (GtsEHeapPair));
   g_ptr_array_add (elts, pair);
   pair->data = p;
   pair->pos = elts->len;
@@ -209,7 +207,7 @@ gpointer gts_eheap_remove_top (GtsEHeap * heap, gdouble * key)
     root = pair->data;
     if (key) 
       *key = pair->key;
-    g_mem_chunk_free (heap->mem_chunk, pair);
+    g_free (pair);
     return root;
   }
 
@@ -217,7 +215,7 @@ gpointer gts_eheap_remove_top (GtsEHeap * heap, gdouble * key)
   root = pair->data;
   if (key) 
     *key = pair->key;
-  g_mem_chunk_free (heap->mem_chunk, pair);
+  g_free (pair);
   pair = g_ptr_array_remove_index (elts, len - 1);
   elts->pdata[0] = pair;
   pair->pos = 1;
@@ -259,10 +257,13 @@ gpointer gts_eheap_top (GtsEHeap * heap, gdouble * key)
  */
 void gts_eheap_destroy (GtsEHeap * heap)
 {
+  guint i;
+
   g_return_if_fail (heap != NULL);
 
+  for (i = 0; i < heap->elts->len; i++)
+    g_free (heap->elts->pdata[i]);
   g_ptr_array_free (heap->elts, TRUE);
-  g_mem_chunk_destroy (heap->mem_chunk);
   g_free (heap);
 }
 
diff --git a/src/gts.def b/src/gts.def
index cff9bd5..4ae8ed9 100644
--- a/src/gts.def
+++ b/src/gts.def
@@ -15,6 +15,7 @@ EXPORTS
     gts_point_distance
     gts_point_distance2
     gts_point_in_circle
+    gts_point_in_sphere
     gts_point_in_triangle_circle
     gts_point_is_in_triangle
     gts_point_is_inside_surface
diff --git a/src/gts.h b/src/gts.h
index 1b76915..91b5823 100644
--- a/src/gts.h
+++ b/src/gts.h
@@ -258,15 +258,8 @@ gpointer         gts_object_check_cast     (gpointer object,
 					    gpointer klass);
 gpointer         gts_object_class_check_cast (gpointer klass, 
 					      gpointer from);
-G_INLINE_FUNC
-gpointer         gts_object_is_from_class  (gpointer object,
-					    gpointer klass);
-G_INLINE_FUNC
-gpointer         gts_object_class_is_from_class (gpointer klass,
-						 gpointer from);
 
-#ifdef	G_CAN_INLINE
-G_INLINE_FUNC
+static inline
 gpointer gts_object_is_from_class (gpointer object,
 				   gpointer klass)
 {
@@ -290,7 +283,7 @@ gpointer gts_object_is_from_class (gpointer object,
   return NULL;
 }
 
-G_INLINE_FUNC
+static inline
 gpointer gts_object_class_is_from_class (gpointer klass,
 					 gpointer from)
 {
@@ -308,7 +301,6 @@ gpointer gts_object_class_is_from_class (gpointer klass,
 
   return NULL;
 }
-#endif /* G_CAN_INLINE */
 
 GtsObjectClass * gts_object_class_from_name     (const gchar * name);
 
@@ -399,6 +391,11 @@ gdouble       gts_point_in_circle                    (GtsPoint * p,
 						      GtsPoint * p1,
 						      GtsPoint * p2,
 						      GtsPoint * p3);
+gdouble       gts_point_in_sphere                    (GtsPoint * p, 
+						      GtsPoint * p1,
+						      GtsPoint * p2,
+						      GtsPoint * p3,
+						      GtsPoint * p4);
 gdouble       gts_point_in_triangle_circle           (GtsPoint * p, 
 						      GtsTriangle * t);
 gdouble       gts_point_orientation                  (GtsPoint * p1,
diff --git a/src/object.c b/src/object.c
index 8d04a45..5970e50 100644
--- a/src/object.c
+++ b/src/object.c
@@ -144,65 +144,6 @@ GtsObjectClass * gts_object_class (void)
   return klass;
 }
 
-#ifndef G_CAN_INLINE
-/**
- * gts_object_is_from_class:
- * @object: a #GtsObject.
- * @klass: a #GtsObjectClass.
- *
- * Returns: @object if @object is of class @klass or of a class derived from
- * @klass, %NULL otherwise.
- */
-gpointer gts_object_is_from_class (gpointer object,
-				   gpointer klass)
-{
-  GtsObjectClass * c;
-
-  g_return_val_if_fail (klass != NULL, NULL);
-
-  if (object == NULL)
-    return NULL;
-
-  c = ((GtsObject *) object)->klass;
-
-  g_return_val_if_fail (c != NULL, NULL);
-
-  while (c) {
-    if (c == klass)
-      return object;
-    c = c->parent_class;
-  }
-
-  return NULL;
-}
-
-/**
- * gts_object_class_is_from_class:
- * @klass: a #GtsObjectClass.
- * @from: a #GtsObjectClass.
- *
- * Returns: @klass if @klass is equal to @from or if @klass is derived
- * from @from, %NULL otherwise.
- */
-gpointer gts_object_class_is_from_class (gpointer klass,
-					 gpointer from)
-{
-  GtsObjectClass * c;
-
-  g_return_val_if_fail (klass != NULL, NULL);
-  g_return_val_if_fail (from != NULL, NULL);
-
-  c = (GtsObjectClass *) klass;
-  while (c) {
-    if (c == from)
-      return klass;
-    c = c->parent_class;
-  }
-
-  return NULL;
-}
-#endif /* not G_CAN_INLINE */
-
 /**
  * gts_object_check_cast:
  * @object: a #GtsObject.
diff --git a/src/partition.c b/src/partition.c
index 1f88986..16dc0e1 100644
--- a/src/partition.c
+++ b/src/partition.c
@@ -579,7 +579,9 @@ GtsGraphBisection * gts_graph_ggg_bisection (GtsGraph * g, guint ntry)
 	   gts_container_size (GTS_CONTAINER (bestg2)));
 #endif
 
+  g_assert (bestg1 != NULL);
   bg->g1 = bestg1;
+  g_assert (bestg2 != NULL);
   bg->g2 = bestg2;
   
   /* boundary nodes */
diff --git a/src/point.c b/src/point.c
index c57e89f..42fce69 100644
--- a/src/point.c
+++ b/src/point.c
@@ -307,6 +307,34 @@ gdouble gts_point_in_circle (GtsPoint * p,
 }
 
 /**
+ * gts_point_in_sphere:
+ * @p: a #GtsPoint.
+ * @p1: a #GtsPoint.
+ * @p2: a #GtsPoint.
+ * @p3: a #GtsPoint.
+ * @p4: a #GtsPoint.
+ *
+ * Tests if @p is inside or outside the sphere defined by @p1, @p2,
+ * @p3 and @p4.
+ * 
+ * Returns: a positive number if @p lies inside,
+ * a negative number if @p lies outside and zero if @p lies on 
+ * the sphere.
+ */
+gdouble gts_point_in_sphere (GtsPoint * p, 
+			     GtsPoint * p1, GtsPoint * p2, GtsPoint * p3, GtsPoint * p4)
+{
+  g_return_val_if_fail (p != NULL && p1 != NULL && p2 != NULL && p3 != NULL && p4 != NULL, 
+			0.0);
+
+  return insphere ((gdouble *) &p1->x, 
+		   (gdouble *) &p2->x, 
+		   (gdouble *) &p3->x, 
+		   (gdouble *) &p4->x, 
+		   (gdouble *) &p->x);
+}
+
+/**
  * gts_point_segment_distance2:
  * @p: a #GtsPoint.
  * @s: a #GtsSegment.
diff --git a/test/Makefile.in b/test/Makefile.in
index 0cbbf3e..813e542 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -92,6 +92,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -126,16 +127,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -150,6 +149,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -162,17 +164,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/test/boolean/Makefile.in b/test/boolean/Makefile.in
index fa68701..8a3b9d5 100644
--- a/test/boolean/Makefile.in
+++ b/test/boolean/Makefile.in
@@ -113,6 +113,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -147,16 +148,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -171,6 +170,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -183,17 +185,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/test/coarsen/Makefile.in b/test/coarsen/Makefile.in
index 901ad91..42a7deb 100644
--- a/test/coarsen/Makefile.in
+++ b/test/coarsen/Makefile.in
@@ -123,6 +123,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -157,16 +158,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -181,6 +180,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -193,17 +195,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/test/delaunay/Makefile.in b/test/delaunay/Makefile.in
index 2344dd2..11df974 100644
--- a/test/delaunay/Makefile.in
+++ b/test/delaunay/Makefile.in
@@ -108,6 +108,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -142,16 +143,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -166,6 +165,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -178,17 +180,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index d42ebab..c0f56bf 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -136,6 +136,7 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_MKENUMS = @GLIB_MKENUMS@
 GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
 GTS_MAJOR_VERSION = @GTS_MAJOR_VERSION@
 GTS_MICRO_VERSION = @GTS_MICRO_VERSION@
 GTS_MINOR_VERSION = @GTS_MINOR_VERSION@
@@ -170,16 +171,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
@@ -194,6 +193,9 @@ build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 glib_cflags = @glib_cflags@
 glib_libs = @glib_libs@
@@ -206,17 +208,21 @@ host_alias = @host_alias@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
diff --git a/tools/gts2oogl.c b/tools/gts2oogl.c
index 89f5239..a252668 100644
--- a/tools/gts2oogl.c
+++ b/tools/gts2oogl.c
@@ -682,7 +682,8 @@ int main (int argc, char * argv[])
       {"max", required_argument, NULL, 'M'},
       {"nosurface", no_argument, NULL, 'n'},
       {"reverse", no_argument, NULL, 'r'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "c:hm:M:rvf:i:nF:e:H:CgI:tG",
diff --git a/tools/gts2stl.c b/tools/gts2stl.c
index 97bf1ee..24581fa 100644
--- a/tools/gts2stl.c
+++ b/tools/gts2stl.c
@@ -64,7 +64,8 @@ int main (int argc, char * argv[])
     static struct option long_options[] = {
       {"revert", no_argument, NULL, 'r'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvr",
diff --git a/tools/gtscheck.c b/tools/gtscheck.c
index 8615389..9e29fad 100644
--- a/tools/gtscheck.c
+++ b/tools/gtscheck.c
@@ -49,7 +49,8 @@ int main (int argc, char * argv[])
 #ifdef HAVE_GETOPT_LONG
     static struct option long_options[] = {
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hv", 
diff --git a/tools/gtscompare.c b/tools/gtscompare.c
index 6d79276..5930315 100644
--- a/tools/gtscompare.c
+++ b/tools/gtscompare.c
@@ -239,7 +239,8 @@ int main (int argc, char * argv[])
       {"help", no_argument, NULL, 'h'},
       {"min", required_argument, NULL, 'm'},
       {"max", required_argument, NULL, 'M'},
-      {"reverse", no_argument, NULL, 'r'}
+      {"reverse", no_argument, NULL, 'r'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "c:hm:M:risl",
diff --git a/tools/stl2gts.c b/tools/stl2gts.c
index 1e3dbf9..c5f287a 100644
--- a/tools/stl2gts.c
+++ b/tools/stl2gts.c
@@ -264,7 +264,8 @@ int main (int argc, char * argv[])
       {"revert", no_argument, NULL, 'r'},
       {"nomerge", no_argument, NULL, 'n'},
       {"help", no_argument, NULL, 'h'},
-      {"verbose", no_argument, NULL, 'v'}
+      {"verbose", no_argument, NULL, 'v'},
+      { NULL }
     };
     int option_index = 0;
     switch ((c = getopt_long (argc, argv, "hvnr",

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/gts.git



More information about the debian-science-commits mailing list